From b507163e6fd8350b6ae535213c720aa0cd75ccaa Mon Sep 17 00:00:00 2001 From: DimAng <48101220+BebehCodes@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:19:03 +0300 Subject: [PATCH 001/127] Added nanprod to ivy experimental API (#21198) --- .../array/experimental/statistical.py | 60 ++++++++ .../container/experimental/statistical.py | 134 ++++++++++++++++++ .../backends/jax/experimental/statistical.py | 20 +++ .../numpy/experimental/statistical.py | 25 ++++ .../paddle/experimental/statistical.py | 45 +++++- .../tensorflow/experimental/statistical.py | 31 ++++ .../torch/experimental/statistical.py | 36 +++++ .../ivy/experimental/statistical.py | 68 +++++++++ .../test_ivy/helpers/function_testing.py | 3 +- .../test_core/test_statistical.py | 59 ++++++++ 10 files changed, 479 insertions(+), 2 deletions(-) diff --git a/ivy/data_classes/array/experimental/statistical.py b/ivy/data_classes/array/experimental/statistical.py index 857fd61d3f37c..0a2ab13449157 100644 --- a/ivy/data_classes/array/experimental/statistical.py +++ b/ivy/data_classes/array/experimental/statistical.py @@ -180,6 +180,66 @@ def nanmean( self._data, axis=axis, keepdims=keepdims, dtype=dtype, out=out ) + def nanprod( + self: ivy.Array, + /, + *, + axis: Optional[Union[Tuple[int], int]] = None, + dtype: Optional[Union[ivy.Dtype, ivy.NativeDtype]] = None, + out: Optional[ivy.Array] = None, + keepdims: Optional[bool] = False, + initial: Optional[Union[int, float, complex]] = None, + where: Optional[ivy.Array] = None, + ) -> ivy.Array: + """ + ivy.Array instance method variant of ivy.nanprod. This method simply wraps the + function, and so the docstring for ivy.prod also applies to this method with + minimal changes. + + Parameters + ---------- + self + Input array. + axis + Axis or axes along which the product is computed. + The default is to compute the product of the flattened array. + dtype + The desired data type of returned array. Default is None. + out + optional output array, for writing the result to. + keepdims + If this is set to True, the axes which are reduced are left in the result + as dimensions with size one. With this option, the result will broadcast + correctly against the original a. + initial + The starting value for this product. + where + Elements to include in the product + + Returns + ------- + ret + The product of array elements over a given axis treating + Not a Numbers (NaNs) as ones + + Examples + -------- + >>> a = ivy.array([[1, 2], [3, ivy.nan]]) + >>> a.nanprod(a) + 6.0 + >>> a.nanprod(a, axis=0) + ivy.array([3., 2.]) + """ + return ivy.nanprod( + self._data, + axis=axis, + keepdims=keepdims, + dtype=dtype, + out=out, + initial=initial, + where=where, + ) + def quantile( self: ivy.Array, q: Union[ivy.Array, float], diff --git a/ivy/data_classes/container/experimental/statistical.py b/ivy/data_classes/container/experimental/statistical.py index f4f61e636ea94..c5b3a7beb4c53 100644 --- a/ivy/data_classes/container/experimental/statistical.py +++ b/ivy/data_classes/container/experimental/statistical.py @@ -444,6 +444,140 @@ def nanmean( self, axis=axis, keepdims=keepdims, dtype=dtype, out=out ) + @staticmethod + def static_nanprod( + input: ivy.Container, + /, + *, + axis: Optional[Union[Tuple[int], int, ivy.Container]] = None, + dtype: Optional[Union[ivy.Dtype, ivy.NativeDtype, ivy.Container]] = None, + keepdims: Optional[Union[bool, ivy.Container]] = False, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[Union[ivy.Array, ivy.Container]] = None, + initial: Optional[Union[int, float, complex, ivy.Container]] = 1, + where: Optional[Union[ivy.Array, ivy.Container]] = None, + ) -> ivy.Container: + """ + ivy.Container static method variant of ivy.nanprod. This method simply wraps the + function, and so the docstring for ivy.nanprod also applies to this method with + minimal changes. + + Parameters + ---------- + input + Input container including arrays. + axis + Axis or axes along which the product is computed. + The default is to compute the product of the flattened array. + dtype + The desired data type of returned array. Default is None. + out + optional output array, for writing the result to. + keepdims + If this is set to True, the axes which are reduced are left in the result + as dimensions with size one. With this option, the result will broadcast + correctly against the original a. + initial + The starting value for this product. + where + Elements to include in the product + + Returns + ------- + ret + The product of array elements over a given axis treating + Not a Numbers (NaNs) as ones + + Examples + -------- + >>> a = ivy.Container(x=ivy.array([[1, 2], [3, ivy.nan]]),\ + y=ivy.array([[ivy.nan, 1, 2], [1, 2, 3]]) + >>> ivy.Container.static_nanprod(a) + { + x: 12.0 + y: 12.0 + } + """ + return ContainerBase.cont_multi_map_in_function( + "nanprod", + input, + axis=axis, + keepdims=keepdims, + dtype=dtype, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + initial=initial, + where=where, + ) + + def nanprod( + self: ivy.Container, + /, + *, + axis: Optional[Union[Tuple[int], int, ivy.Container]] = None, + dtype: Optional[Union[ivy.Dtype, ivy.NativeDtype, ivy.Container]] = None, + keepdims: Optional[Union[bool, ivy.Container]] = False, + out: Optional[ivy.Container] = None, + initial: Optional[Union[int, float, complex, ivy.Container]] = None, + where: Optional[Union[ivy.Array, ivy.Container]] = None, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.nanprod. This method simply wraps + the function, and so the docstring for ivy.nanprod also applies to this method + with minimal changes. + + Parameters + ---------- + self + Input container including arrays. + axis + Axis or axes along which the product is computed. + The default is to compute the product of the flattened array. + dtype + The desired data type of returned array. Default is None. + out + optional output array, for writing the result to. + keepdims + If this is set to True, the axes which are reduced are left in the result + as dimensions with size one. With this option, the result will broadcast + correctly against the original a. + initial + The starting value for this product. + where + Elements to include in the product + + Returns + ------- + ret + The product of array elements over a given axis treating + Not a Numbers (NaNs) as ones + + Examples + -------- + >>> a = ivy.Container(x=ivy.array([[1, 2], [3, ivy.nan]]),\ + y=ivy.array([[ivy.nan, 1, 2], [1, 2, 3]]) + >>> a.nanprod() + { + x: 12.0 + y: 12.0 + } + """ + return self.static_nanprod( + self, + axis=axis, + keepdims=keepdims, + dtype=dtype, + out=out, + initial=initial, + where=where, + ) + @staticmethod def static_quantile( a: Union[ivy.Container, ivy.Array, ivy.NativeArray], diff --git a/ivy/functional/backends/jax/experimental/statistical.py b/ivy/functional/backends/jax/experimental/statistical.py index 64f1bfc031973..9d35e51ae6017 100644 --- a/ivy/functional/backends/jax/experimental/statistical.py +++ b/ivy/functional/backends/jax/experimental/statistical.py @@ -162,6 +162,26 @@ def nanmean( return jnp.nanmean(a, axis=axis, keepdims=keepdims, dtype=dtype, out=out) +def nanprod( + a: JaxArray, + /, + *, + axis: Optional[Union[int, Sequence[int]]] = None, + dtype: Optional[jnp.dtype] = None, + keepdims: Optional[bool] = False, + out: Optional[JaxArray] = None, + initial: Optional[Union[int, float, complex]] = None, + where: Optional[JaxArray] = None, +) -> JaxArray: + dtype = ivy.as_native_dtype(dtype) + if dtype is None: + dtype = _infer_dtype(a.dtype) + axis = tuple(axis) if isinstance(axis, list) else axis + return jnp.nanprod( + a, axis=axis, keepdims=keepdims, dtype=dtype, out=out, initial=initial + ) + + def quantile( a: JaxArray, q: Union[float, JaxArray], diff --git a/ivy/functional/backends/numpy/experimental/statistical.py b/ivy/functional/backends/numpy/experimental/statistical.py index 12c3565148ec7..667c6106c61a3 100644 --- a/ivy/functional/backends/numpy/experimental/statistical.py +++ b/ivy/functional/backends/numpy/experimental/statistical.py @@ -167,6 +167,31 @@ def nanmean( nanmean.support_native_out = True +def nanprod( + a: np.ndarray, + /, + *, + axis: Optional[Union[int, Sequence[int]]] = None, + dtype: Optional[np.dtype] = None, + keepdims: Optional[bool] = False, + out: Optional[np.ndarray] = None, + initial: Optional[Union[int, float, complex]] = None, + where: Optional[np.ndarray] = None, +) -> np.ndarray: + dtype = ivy.as_native_dtype(dtype) + if dtype is None: + dtype = _infer_dtype(a.dtype) + axis = tuple(axis) if isinstance(axis, list) else axis + return np.asarray( + np.nanprod( + a=a, axis=axis, dtype=dtype, keepdims=keepdims, out=out, initial=initial + ) + ) + + +nanprod.support_native_out = True + + def _validate_quantile(q): if isinstance(q, float): q = np.asarray(q) diff --git a/ivy/functional/backends/paddle/experimental/statistical.py b/ivy/functional/backends/paddle/experimental/statistical.py index 0cc4e40739733..336fe507f94bc 100644 --- a/ivy/functional/backends/paddle/experimental/statistical.py +++ b/ivy/functional/backends/paddle/experimental/statistical.py @@ -6,7 +6,7 @@ from copy import deepcopy # local -from ivy.func_wrapper import with_unsupported_device_and_dtypes +from ivy.func_wrapper import with_unsupported_device_and_dtypes, with_supported_dtypes from ivy.utils.exceptions import IvyNotImplementedException from . import backend_version @@ -96,6 +96,13 @@ def nanmean( return ret.astype(ret_dtype) +def _infer_dtype(dtype: paddle.dtype): + default_dtype = ivy.infer_default_dtype(dtype) + if ivy.dtype_bits(dtype) < ivy.dtype_bits(default_dtype): + return default_dtype + return dtype + + def _validate_quantile(q): if isinstance(q, float): q = paddle.to_tensor(q) @@ -109,6 +116,42 @@ def _validate_quantile(q): return True +@with_supported_dtypes( + {"2.5.1 and below": ("float64", "float32")}, + backend_version, +) +def nanprod( + a: paddle.Tensor, + /, + *, + axis: Optional[Union[int, Tuple[int]]] = None, + keepdims: Optional[bool] = False, + dtype: Optional[paddle.dtype] = None, + out: Optional[paddle.Tensor] = None, + initial: Optional[Union[int, float, complex]] = None, + where: Optional[paddle.Tensor] = None, +) -> paddle.Tensor: + dtype = ivy.as_native_dtype(dtype) + if dtype is None: + dtype = _infer_dtype(a.dtype) + a = a.cast(dtype) + if initial is None: + initial = 1 + if a.dtype not in [paddle.int32, paddle.int64, paddle.float32, paddle.float64]: + a = paddle.nan_to_num(a.cast("float64"), nan=1.0) + ret = paddle.prod(a, axis=axis, keepdim=keepdims) * initial + else: + a = paddle.nan_to_num(a, nan=1.0) + ret = paddle.prod(a, axis=axis, keepdim=keepdims) * initial + + if isinstance(axis, Sequence): + if len(axis) == a.ndim: + axis = None + if (a.ndim == 1 or axis is None) and not keepdims: + ret = ret.squeeze() + return ret.cast(dtype) + + def _to_positive_axis(axis, ndim): if not isinstance(axis, (list, tuple)): axis = [axis] diff --git a/ivy/functional/backends/tensorflow/experimental/statistical.py b/ivy/functional/backends/tensorflow/experimental/statistical.py index 9cd91437a5f4a..7c7d45204ff3f 100644 --- a/ivy/functional/backends/tensorflow/experimental/statistical.py +++ b/ivy/functional/backends/tensorflow/experimental/statistical.py @@ -115,6 +115,37 @@ def nanmean( return tf.experimental.numpy.nanmean(a, axis=axis, keepdims=keepdims, dtype=dtype) +def _infer_dtype(dtype: tf.DType): + default_dtype = ivy.infer_default_dtype(dtype) + if ivy.dtype_bits(dtype) < ivy.dtype_bits(default_dtype): + return default_dtype + return dtype + + +def nanprod( + a: Union[tf.Tensor, tf.Variable], + /, + *, + axis: Optional[Union[int, Sequence[int]]] = None, + dtype: Optional[tf.DType] = None, + keepdims: Optional[bool] = False, + out: Optional[Union[tf.Tensor, tf.Variable]] = None, + initial: Optional[Union[int, float, complex]] = None, + where: Optional[Union[tf.Tensor, tf.Variable]] = None, +) -> Union[tf.Tensor, tf.Variable]: + np_math_ops.enable_numpy_methods_on_tensor() + dtype = ivy.as_native_dtype(dtype) + if dtype is None: + dtype = _infer_dtype(a.dtype) + if initial is None: + initial = 1 + axis = tuple(axis) if isinstance(axis, list) else axis + return ( + tf.experimental.numpy.nanprod(a, axis=axis, keepdims=keepdims, dtype=dtype) + * initial + ) + + def _validate_quantile(q): if tf.experimental.numpy.ndim(q) == 1 and tf.size(q) < 10: for i in range(tf.size(q)): diff --git a/ivy/functional/backends/torch/experimental/statistical.py b/ivy/functional/backends/torch/experimental/statistical.py index 2cdc576eec124..b2aee02bcd414 100644 --- a/ivy/functional/backends/torch/experimental/statistical.py +++ b/ivy/functional/backends/torch/experimental/statistical.py @@ -185,6 +185,42 @@ def nanmean( nanmean.support_native_out = True +def nanprod( + a: torch.Tensor, + /, + *, + axis: Optional[Union[int, Sequence[int]]] = None, + dtype: Optional[torch.dtype] = None, + keepdims: Optional[bool] = False, + out: Optional[torch.Tensor] = None, + initial: Optional[Union[int, float, complex, ivy.Container]] = None, + where: Optional[torch.Tensor] = None, +) -> torch.Tensor: + dtype = ivy.as_native_dtype(dtype) + if dtype is None: + dtype = _infer_dtype(a.dtype) + if initial is None: + initial = 1 + a = a.type(dtype) + a = torch.nan_to_num(a, nan=1.0) + if a.dtype == torch.float16: + a = a.type(torch.float32) + if axis == (): + return a.type(dtype) + if axis is None: + return torch.prod(input=a, out=out).type(dtype) * initial + if isinstance(axis, tuple) or isinstance(axis, list): + for i in axis: + a = torch.prod(a, dim=i, keepdim=keepdims, out=out).type(dtype) + if a.dtype == torch.float16: + a = a.type(torch.float32) + return a.type(dtype) * initial + return torch.prod(a, dim=axis, keepdim=keepdims, out=out).type(dtype) * initial + + +nanprod.support_native_out = True + + def _validate_quantile(q): if isinstance(q, float): q = torch.as_tensor(q) diff --git a/ivy/functional/ivy/experimental/statistical.py b/ivy/functional/ivy/experimental/statistical.py index d76cfd1a334e4..3c998de8656e8 100644 --- a/ivy/functional/ivy/experimental/statistical.py +++ b/ivy/functional/ivy/experimental/statistical.py @@ -258,6 +258,74 @@ def nanmean( @handle_nestable @handle_out_argument @to_native_arrays_and_back +@infer_dtype +@handle_device_shifting +def nanprod( + a: ivy.Array, + /, + *, + axis: Optional[Union[Tuple[int], int]] = None, + keepdims: Optional[bool] = False, + dtype: Optional[Union[ivy.Dtype, ivy.NativeDtype]] = None, + out: Optional[ivy.Array] = None, + initial: Optional[Union[int, float, complex]] = None, + where: Optional[ivy.Array] = None, +) -> ivy.Array: + """ + Compute the product of array elements over a given axis treating Not a Numbers + (NaNs) as ones. + + Parameters + ---------- + a + Input array. + axis + Axis or axes along which the product is computed. + The default is to compute the product of the flattened array. + dtype + The desired data type of returned array. Default is None. + out + optional output array, for writing the result to. + keepdims + If this is set to True, the axes which are reduced are left in the result + as dimensions with size one. With this option, the result will broadcast + correctly against the original a. + initial + The starting value for this product. + where + Elements to include in the product + + Returns + ------- + ret + The product of array elements over a given axis treating + Not a Numbers (NaNs) as ones + + Functional Examples + ------------------- + >>> a = ivy.array([[1, ivy.nan], [3, 4]]) + >>> ivy.nanprod(a) + 12.0 + >>> ivy.nanprod(a, axis=0) + [3. 4.] + >>> ivy.nanprod(a, axis=0, keepdims=True) + [[3. 4.]] + """ + return ivy.current_backend(a).nanprod( + a, + axis=axis, + keepdims=keepdims, + dtype=dtype, + out=out, + initial=initial, + where=where, + ) + + +@handle_exceptions +@handle_nestable +@handle_out_argument +@to_native_arrays_and_back @handle_device_shifting def quantile( a: ivy.Array, diff --git a/ivy_tests/test_ivy/helpers/function_testing.py b/ivy_tests/test_ivy/helpers/function_testing.py index 19a3044fcb961..c3041c4c053d5 100644 --- a/ivy_tests/test_ivy/helpers/function_testing.py +++ b/ivy_tests/test_ivy/helpers/function_testing.py @@ -2340,7 +2340,8 @@ def flatten_and_to_np(*, backend: str, ret): # flatten the return ret_flat = flatten(backend=backend, ret=ret) with BackendHandler.update_backend(backend) as ivy_backend: - return [ivy_backend.to_numpy(x) for x in ret_flat] + ret = [ivy_backend.to_numpy(x) for x in ret_flat] + return ret def flatten_frontend_to_np(*, backend: str, ret, frontend_array_fn=None): diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_statistical.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_statistical.py index 1b3f7b173043e..716ff0ae7353c 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_statistical.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_statistical.py @@ -15,6 +15,30 @@ # --------------- # +@st.composite +def _get_castable_float_dtype_nan(draw, min_value=None, max_value=None): + available_dtypes = helpers.get_dtypes("float") + shape = draw(helpers.get_shape(min_num_dims=1, max_num_dims=4, max_dim_size=6)) + dtype, values = draw( + helpers.dtype_and_values( + available_dtypes=available_dtypes, + num_arrays=1, + large_abs_safety_factor=6, + small_abs_safety_factor=24, + safety_factor_scale="log", + shape=shape, + min_value=min_value, + max_value=max_value, + allow_nan=True, + ) + ) + axis = draw(helpers.get_axis(shape=shape, force_int=True)) + dtype1, values, dtype2 = draw( + helpers.get_castable_dtype(draw(available_dtypes), dtype[0], values[0]) + ) + return dtype1, [values], axis, dtype2 + + @st.composite def _get_dtype_value1_value2_cov( draw, @@ -622,6 +646,41 @@ def test_nanmedian( ) +@handle_test( + fn_tree="functional.ivy.experimental.nanprod", + dtype_x_axis_castable=_get_castable_float_dtype_nan(), + keep_dims=st.booleans(), + test_gradients=st.just(False), + initial=st.integers(min_value=-5, max_value=5), +) +def test_nanprod( + *, + dtype_x_axis_castable, + keep_dims, + test_flags, + initial, + backend_fw, + fn_name, + on_device, +): + input_dtype, x, axis, castable_dtype = dtype_x_axis_castable + x = x[0] + helpers.test_function( + input_dtypes=[input_dtype], + test_flags=test_flags, + rtol_=1e-1, + atol_=1e-1, + backend_to_test=backend_fw, + fn_name=fn_name, + on_device=on_device, + a=x, + axis=axis, + keepdims=keep_dims, + dtype=castable_dtype, + initial=initial, + ) + + # quantile @handle_test( fn_tree="functional.ivy.experimental.quantile", From 001c9f0b0ac22149907a3a1e43be77a8071f7ca2 Mon Sep 17 00:00:00 2001 From: Mohammed Ayman Date: Tue, 5 Sep 2023 17:16:29 +0300 Subject: [PATCH 002/127] Extend ivy functional API With mel_weight_matrix (#22078) Co-authored-by: Mohammed --- .../array/experimental/creation.py | 53 ++++++++++ .../container/experimental/creation.py | 99 +++++++++++++++++++ .../backends/jax/experimental/creation.py | 30 ++++++ .../backends/numpy/experimental/creation.py | 30 ++++++ .../backends/paddle/experimental/creation.py | 18 ++++ .../tensorflow/experimental/creation.py | 16 +++ .../backends/torch/experimental/creation.py | 32 ++++++ ivy/functional/ivy/experimental/creation.py | 52 ++++++++++ .../test_core/test_creation.py | 40 ++++++++ 9 files changed, 370 insertions(+) diff --git a/ivy/data_classes/array/experimental/creation.py b/ivy/data_classes/array/experimental/creation.py index 8942f95f39706..1bd85ba5170c3 100644 --- a/ivy/data_classes/array/experimental/creation.py +++ b/ivy/data_classes/array/experimental/creation.py @@ -211,3 +211,56 @@ def trilu( on the same device as ``self``. """ return ivy.trilu(self._data, k=k, upper=upper, out=out) + + @staticmethod + def mel_weight_matrix( + num_mel_bins: Union[int, ivy.Array], + dft_length: Union[int, ivy.Array], + sample_rate: Union[int, ivy.Array], + lower_edge_hertz: Optional[Union[float, ivy.Array]] = 0.0, + upper_edge_hertz: Optional[Union[float, ivy.Array]] = 3000.0, + ): + """ + Generate a MelWeightMatrix that can be used to re-weight a Tensor containing a + linearly sampled frequency spectra (from DFT or STFT) into num_mel_bins + frequency information based on the [lower_edge_hertz, upper_edge_hertz] + + range on the mel scale. This function defines the mel scale + in terms of a frequency in hertz according to the following + formula: mel(f) = 2595 * log10(1 + f/700) + + Parameters + ---------- + num_mel_bins + The number of bands in the mel spectrum. + dft_length + The size of the original DFT obtained from (n_fft / 2 + 1). + sample_rate + Samples per second of the input signal. + lower_edge_hertz + Lower bound on the frequencies to be included in the mel spectrum. + upper_edge_hertz + The desired top edge of the highest frequency band. + + Returns + ------- + ret + MelWeightMatrix of shape: [frames, num_mel_bins]. + + Examples + -------- + >>> x = ivy.array([[1, 2, 3], + >>> [1, 1, 1], + >>> [5,6,7 ]]) + >>> x.mel_weight_matrix(3, 3, 8000) + ivy.array([[0. ,0. , 0.], + [0. ,0. , 0.75694758], + [0. ,0. , 0. ]]) + """ + return ivy.mel_weight_matrix( + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz, + upper_edge_hertz, + ) diff --git a/ivy/data_classes/container/experimental/creation.py b/ivy/data_classes/container/experimental/creation.py index 8dd5ac76ad3a3..63eb416191d7b 100644 --- a/ivy/data_classes/container/experimental/creation.py +++ b/ivy/data_classes/container/experimental/creation.py @@ -1101,3 +1101,102 @@ def trilu( upper=upper, out=out, ) + + @staticmethod + def static_mel_weight_matrix( + num_mel_bins: Union[int, ivy.Container], + dft_length: Union[int, ivy.Container], + sample_rate: Union[int, ivy.Container], + lower_edge_hertz: Optional[Union[float, ivy.Container]] = 0.0, + upper_edge_hertz: Optional[Union[float, ivy.Container]] = 3000.0, + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + ) -> ivy.Container: + r""" + ivy.Container instance method variant of ivy.mel_weight_matrix. This method + simply wraps the function, and so the docstring for ivy.mel_weight_matrix also + applies to this method with minimal changes. + + Parameters + ---------- + num_mel_bins + The number of bands in the mel spectrum. + dft_length + The size of the original DFT obtained from (n_fft / 2 + 1). + sample_rate + Samples per second of the input signal. + lower_edge_hertz + Lower bound on the frequencies to be included in the mel spectrum. + upper_edge_hertz + The desired top edge of the highest frequency band. + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If True, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``True``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + + Returns + ------- + ret + MelWeightMatrix of shape: [frames, num_mel_bins] + """ + return ContainerBase.cont_multi_map_in_function( + "mel_weight_matrix", + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz, + upper_edge_hertz, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + ) + + def mel_weight_matrix( + self: ivy.Container, + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: Optional[float] = 0.0, + upper_edge_hertz: Optional[float] = 3000.0, + ): + r""" + ivy.Container instance method variant of ivy.mel_weight_matrix. This method + simply wraps the function, and so the docstring for ivy.mel_weight_matrix also + applies to this method with minimal changes. + + Parameters + ---------- + num_mel_bins + The number of bands in the mel spectrum. + dft_length + The size of the original DFT obtained from (n_fft / 2 + 1). + sample_rate + Samples per second of the input signal. + lower_edge_hertz + Lower bound on the frequencies to be included in the mel spectrum. + upper_edge_hertz + The desired top edge of the highest frequency band. + + Returns + ------- + ret + MelWeightMatrix of shape: [frames, num_mel_bins] + """ + return self.static_mel_weight_matrix( + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz, + upper_edge_hertz, + ) diff --git a/ivy/functional/backends/jax/experimental/creation.py b/ivy/functional/backends/jax/experimental/creation.py index 2bbc0b1b895e6..341d4f378c8a1 100644 --- a/ivy/functional/backends/jax/experimental/creation.py +++ b/ivy/functional/backends/jax/experimental/creation.py @@ -129,3 +129,33 @@ def trilu( if upper: return jnp.triu(x, k) return jnp.tril(x, k) + + +def mel_weight_matrix( + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: float = 0.0, + upper_edge_hertz: float = 3000.0, +): + lower_edge_hertz = jnp.array(lower_edge_hertz) + upper_edge_hertz = jnp.array(upper_edge_hertz) + zero = jnp.array(0.0) + hz_to_mel = lambda f: 2595 * jnp.log10(1 + f / 700) + nyquist_hz = sample_rate / 2 + linear_freqs = jnp.linspace(0, nyquist_hz, dft_length, dtype=jnp.float32)[1:] + spec_bin_mels = hz_to_mel(linear_freqs)[..., None] + mel_edges = jnp.linspace( + hz_to_mel(lower_edge_hertz), + hz_to_mel(upper_edge_hertz), + num_mel_bins + 2, + dtype=jnp.float32, + ) + mel_edges = jnp.stack([mel_edges[i : i + 3] for i in range(num_mel_bins)]) + lower_edge_mel, center_mel, upper_edge_mel = [ + t.reshape((1, num_mel_bins)) for t in jnp.split(mel_edges, 3, axis=1) + ] + lower_slopes = (spec_bin_mels - lower_edge_mel) / (center_mel - lower_edge_mel) + upper_slopes = (upper_edge_mel - spec_bin_mels) / (upper_edge_mel - center_mel) + mel_weights = jnp.maximum(zero, jnp.minimum(lower_slopes, upper_slopes)) + return jnp.pad(mel_weights, [[1, 0], [0, 0]]) diff --git a/ivy/functional/backends/numpy/experimental/creation.py b/ivy/functional/backends/numpy/experimental/creation.py index c2e01f77c55e8..6b111ca513bcb 100644 --- a/ivy/functional/backends/numpy/experimental/creation.py +++ b/ivy/functional/backends/numpy/experimental/creation.py @@ -171,3 +171,33 @@ def trilu( if upper: return np.triu(x, k) return np.tril(x, k) + + +def mel_weight_matrix( + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: float = 125.0, + upper_edge_hertz: float = 3000.0, +): + lower_edge_hertz = np.array(lower_edge_hertz) + upper_edge_hertz = np.array(upper_edge_hertz) + zero = np.array(0.0) + hz_to_mel = lambda f: 2595 * np.log10(1 + f / 700) + nyquist_hz = sample_rate / 2 + linear_freqs = np.linspace(0, nyquist_hz, dft_length, dtype=np.float32)[1:] + spec_bin_mels = hz_to_mel(linear_freqs)[..., None] + mel_edges = np.linspace( + hz_to_mel(lower_edge_hertz), + hz_to_mel(upper_edge_hertz), + num_mel_bins + 2, + dtype=np.float32, + ) + mel_edges = np.stack([mel_edges[i : i + 3] for i in range(num_mel_bins)]) + lower_edge_mel, center_mel, upper_edge_mel = [ + t.reshape((1, num_mel_bins)) for t in np.split(mel_edges, 3, axis=1) + ] + lower_slopes = (spec_bin_mels - lower_edge_mel) / (center_mel - lower_edge_mel) + upper_slopes = (upper_edge_mel - spec_bin_mels) / (upper_edge_mel - center_mel) + mel_weights = np.maximum(zero, np.minimum(lower_slopes, upper_slopes)) + return np.pad(mel_weights, [[1, 0], [0, 0]]) diff --git a/ivy/functional/backends/paddle/experimental/creation.py b/ivy/functional/backends/paddle/experimental/creation.py index 04d15e026a29d..1de567c08e0bc 100644 --- a/ivy/functional/backends/paddle/experimental/creation.py +++ b/ivy/functional/backends/paddle/experimental/creation.py @@ -212,3 +212,21 @@ def trilu( if upper: return paddle.triu(x=x, diagonal=k) return paddle.tril(x=x, diagonal=k) + + +def mel_weight_matrix( + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: float = 0.0, + upper_edge_hertz: float = 3000.0, +): + n_fft = (dft_length - 1) * 2 + mel_mat = paddle.audio.functional.compute_fbank_matrix( + sample_rate, + n_fft, + num_mel_bins, + lower_edge_hertz, + upper_edge_hertz, + ) + return paddle.transpose(mel_mat, (1, 0)) diff --git a/ivy/functional/backends/tensorflow/experimental/creation.py b/ivy/functional/backends/tensorflow/experimental/creation.py index 96cd0c15b84be..6546675630211 100644 --- a/ivy/functional/backends/tensorflow/experimental/creation.py +++ b/ivy/functional/backends/tensorflow/experimental/creation.py @@ -138,3 +138,19 @@ def trilu( if upper: return tf.experimental.numpy.triu(x, k) return tf.experimental.numpy.tril(x, k) + + +def mel_weight_matrix( + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: float = 125.0, + upper_edge_hertz: float = 3000.0, +): + return tf.signal.linear_to_mel_weight_matrix( + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz=lower_edge_hertz, + upper_edge_hertz=upper_edge_hertz, + ) diff --git a/ivy/functional/backends/torch/experimental/creation.py b/ivy/functional/backends/torch/experimental/creation.py index a1b94a8a894cf..ff46646abc6b5 100644 --- a/ivy/functional/backends/torch/experimental/creation.py +++ b/ivy/functional/backends/torch/experimental/creation.py @@ -210,3 +210,35 @@ def trilu( trilu.support_native_out = True + + +def mel_weight_matrix( + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: float = 125.0, + upper_edge_hertz: float = 3000.0, +): + # transform the inputs to tensors + lower_edge_hertz = torch.tensor(lower_edge_hertz) + upper_edge_hertz = torch.tensor(upper_edge_hertz) + zero = torch.tensor(0.0) + # mel transform lambda function + hz_to_mel = lambda f: 2595 * torch.log10(1 + f / 700) + nyquist_hz = sample_rate / 2 + # define a range of frequencies in HZ + linear_freqs = torch.linspace(0, nyquist_hz, dft_length)[1:] + # transform the frequencies from HZ to mels + spec_bin_mels = hz_to_mel(linear_freqs).unsqueeze(1) + mel_edges = torch.linspace( + hz_to_mel(lower_edge_hertz), hz_to_mel(upper_edge_hertz), num_mel_bins + 2 + ) + # create overlapping frames of size 3 + mel_edges = mel_edges.unfold(0, size=3, step=1) + lower_edge_mel, center_mel, upper_edge_mel = [ + t.reshape((1, num_mel_bins)) for t in mel_edges.split(1, dim=1) + ] + lower_slopes = (spec_bin_mels - lower_edge_mel) / (center_mel - lower_edge_mel) + upper_slopes = (upper_edge_mel - spec_bin_mels) / (upper_edge_mel - center_mel) + mel_weights = torch.maximum(zero, torch.minimum(lower_slopes, upper_slopes)) + return torch.nn.functional.pad(mel_weights, (0, 0, 1, 0)) diff --git a/ivy/functional/ivy/experimental/creation.py b/ivy/functional/ivy/experimental/creation.py index fc57537624d08..a5fae484d71c6 100644 --- a/ivy/functional/ivy/experimental/creation.py +++ b/ivy/functional/ivy/experimental/creation.py @@ -910,3 +910,55 @@ def trilu( instances in place of any of the arguments. """ return current_backend(x).trilu(x, k=k, upper=upper, out=out) + + +@handle_exceptions +@handle_nestable +@to_native_arrays_and_back +def mel_weight_matrix( + num_mel_bins: int, + dft_length: int, + sample_rate: int, + lower_edge_hertz: float = 0.0, + upper_edge_hertz: float = 3000.0, +): + """ + Generate a MelWeightMatrix that can be used to re-weight a Tensor containing a + linearly sampled frequency spectra (from DFT or STFT) into num_mel_bins frequency + information based on the [lower_edge_hertz, upper_edge_hertz] + + range on the mel scale. This function defines the mel scale in terms of a frequency + in hertz according to the following formula: mel(f) = 2595 * log10(1 + f/700) + + Parameters + ---------- + num_mel_bins + The number of bands in the mel spectrum. + dft_length + The size of the original DFT obtained from (n_fft / 2 + 1). + sample_rate + Samples per second of the input signal. + lower_edge_hertz + Lower bound on the frequencies to be included in the mel spectrum. + upper_edge_hertz + The desired top edge of the highest frequency band. + + Returns + ------- + ret + MelWeightMatrix of shape: [frames, num_mel_bins]. + + Examples + -------- + >>> ivy.mel_weight_matrix(3,3,8000) + ivy.array([[0. ,0. , 0.], + [0. ,0. , 0.75694758], + [0. ,0. , 0. ]]) + """ + return ivy.current_backend().mel_weight_matrix( + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz, + upper_edge_hertz, + ) diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py index eabf25027caee..b9850c7431d4a 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py @@ -580,3 +580,43 @@ def test_vorbis_window( window_length=int(x[0]), dtype=dtype[0], ) + + +# mel_weight_matrix +@handle_test( + fn_tree="functional.ivy.experimental.mel_weight_matrix", + num_mel_bins=helpers.ints(min_value=5, max_value=10), + dft_length=helpers.ints(min_value=5, max_value=10), + sample_rate=helpers.ints(min_value=1000, max_value=2000), + lower_edge_hertz=helpers.floats(min_value=0.0, max_value=5.0), + upper_edge_hertz=helpers.floats(min_value=5.0, max_value=10.0), + test_with_out=st.just(False), + test_gradients=st.just(False), + test_instance_method=st.just(False), +) +def test_mel_weight_matrix( + *, + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz, + upper_edge_hertz, + test_flags, + backend_fw, + fn_name, + on_device, +): + helpers.test_function( + input_dtypes=[], + test_flags=test_flags, + on_device=on_device, + backend_to_test=backend_fw, + rtol_=0.05, + atol_=0.05, + fn_name=fn_name, + num_mel_bins=num_mel_bins, + dft_length=dft_length, + sample_rate=sample_rate, + lower_edge_hertz=lower_edge_hertz, + upper_edge_hertz=upper_edge_hertz, + ) From 545b93cfbca47f3395e60a824620fe5a84a7a011 Mon Sep 17 00:00:00 2001 From: Nitesh Kesharwani <141853536+NiteshK84@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:23:10 +0530 Subject: [PATCH 003/127] feat: paddle frontend - lerp_ (#22845) Co-authored-by: juliagsy <67888047+juliagsy@users.noreply.github.com> --- .../frontends/paddle/tensor/math.py | 6 ++++ .../test_paddle/test_tensor/test_math.py | 36 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/math.py b/ivy/functional/frontends/paddle/tensor/math.py index f28334cfcefe8..5c28704a9e30c 100644 --- a/ivy/functional/frontends/paddle/tensor/math.py +++ b/ivy/functional/frontends/paddle/tensor/math.py @@ -307,6 +307,12 @@ def lerp(x, y, weight, name=None): return ivy.lerp(x, y, weight) +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def lerp_(x, y, weight, name=None): + return ivy.inplace_update(x, lerp(x, y, weight)) + + @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back def lgamma(x, name=None): diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py index 387200e0c8590..3e54a09ab79ed 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py @@ -1308,6 +1308,42 @@ def test_paddle_lerp( ) +# lerp_ +@handle_frontend_test( + fn_tree="paddle.tensor.math.lerp_", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=3, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_lerp_( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + weight=x[2], + ) + + # lgamma @handle_frontend_test( fn_tree="paddle.tensor.math.lgamma", From f4319478a3a5422ea0965a0edae50fcf69a7518d Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:03:24 +0100 Subject: [PATCH 004/127] fix(ivy): Corrects the typehints of ivy.multi_head_attention. Only the None arguments should be Optional --- ivy/data_classes/array/layers.py | 28 +++++++-------- ivy/data_classes/container/layers.py | 51 ++++++++++++++-------------- ivy/functional/ivy/layers.py | 18 +++++----- 3 files changed, 47 insertions(+), 50 deletions(-) diff --git a/ivy/data_classes/array/layers.py b/ivy/data_classes/array/layers.py index 7d635d97f8fa3..5c2b1796eb063 100644 --- a/ivy/data_classes/array/layers.py +++ b/ivy/data_classes/array/layers.py @@ -393,12 +393,12 @@ def scaled_dot_product_attention( ) def multi_head_attention( - self: Union[ivy.Array, ivy.NativeArray], - key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, - value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + self: ivy.Array, /, *, - num_heads: Optional[int] = 8, + key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + num_heads: int = 8, scale: Optional[float] = None, attention_mask: Optional[Union[ivy.Array, ivy.NativeArray]] = None, in_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, @@ -408,21 +408,17 @@ def multi_head_attention( out_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, in_proj_bias: Optional[Union[ivy.Array, ivy.NativeArray]] = None, out_proj_bias: Optional[Union[ivy.Array, ivy.NativeArray]] = None, - is_causal: Optional[bool] = False, - return_attention_weights: Optional[bool] = False, - average_attention_weights: Optional[bool] = True, - dropout: Optional[float] = 0.0, - training: Optional[bool] = False, - key_chains: Optional[Union[List[str], Dict[str, str]]] = None, - to_apply: bool = True, - prune_unapplied: bool = False, - map_sequences: bool = False, - out: Optional[Union[ivy.Array, ivy.Container]] = None, + is_causal: bool = False, + return_attention_weights: bool = False, + average_attention_weights: bool = True, + dropout: float = 0.0, + training: bool = False, + out: Optional[Union[ivy.Array, ivy.NativeArray]] = None, ) -> ivy.Array: return ivy.multi_head_attention( self._data, - key, - value, + key=key, + value=value, num_heads=num_heads, scale=scale, attention_mask=attention_mask, diff --git a/ivy/data_classes/container/layers.py b/ivy/data_classes/container/layers.py index d094de5ac4a64..6f9d090bc27d1 100644 --- a/ivy/data_classes/container/layers.py +++ b/ivy/data_classes/container/layers.py @@ -1026,11 +1026,11 @@ def scaled_dot_product_attention( @staticmethod def _static_multi_head_attention( query: Union[ivy.Array, ivy.NativeArray, ivy.Container], - key: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, - value: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, /, *, - num_heads: Optional[Union[int, ivy.Container]] = 8, + key: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + value: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + num_heads: Union[int, ivy.Container] = 8, scale: Optional[Union[float, ivy.Container]] = None, attention_mask: Optional[ Union[ivy.Array, ivy.NativeArray, ivy.Container] @@ -1054,22 +1054,23 @@ def _static_multi_head_attention( out_proj_bias: Optional[ Union[ivy.Array, ivy.NativeArray, ivy.Container] ] = None, - is_causal: Optional[Union[bool, ivy.Container]] = False, - return_attention_weights: Optional[Union[bool, ivy.Container]] = False, - average_attention_weights: Optional[Union[bool, ivy.Container]] = True, - dropout: Optional[Union[float, ivy.Container]] = 0.0, - training: Optional[Union[bool, ivy.Container]] = False, - key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + is_causal: Union[bool, ivy.Container] = False, + return_attention_weights: Union[bool, ivy.Container] = False, + average_attention_weights: Union[bool, ivy.Container] = True, + dropout: Union[float, ivy.Container] = 0.0, + training: Union[bool, ivy.Container] = False, + key_chains: Optional[ + Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, - out: Optional[Union[ivy.Array, ivy.Container]] = None, - ) -> Union[ivy.Array, ivy.NativeArray, ivy.Container]: + out: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + ) -> ivy.Container: return ContainerBase.cont_multi_map_in_function( "multi_head_attention", query, - key, - value, + key=key, + value=value, num_heads=num_heads, scale=scale, attention_mask=attention_mask, @@ -1094,11 +1095,11 @@ def _static_multi_head_attention( def multi_head_attention( self: ivy.Container, - key: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, - value: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, /, *, - num_heads: Optional[Union[int, ivy.Container]] = 8, + key: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + value: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + num_heads: Union[int, ivy.Container] = 8, scale: Optional[Union[float, ivy.Container]] = None, attention_mask: Optional[ Union[ivy.Array, ivy.NativeArray, ivy.Container] @@ -1122,21 +1123,21 @@ def multi_head_attention( out_proj_bias: Optional[ Union[ivy.Array, ivy.NativeArray, ivy.Container] ] = None, - is_causal: Optional[Union[bool, ivy.Container]] = False, - return_attention_weights: Optional[Union[bool, ivy.Container]] = False, - average_attention_weights: Optional[Union[bool, ivy.Container]] = True, - dropout: Optional[Union[float, ivy.Container]] = 0.0, - training: Optional[Union[bool, ivy.Container]] = False, + is_causal: Union[bool, ivy.Container] = False, + return_attention_weights: Union[bool, ivy.Container] = False, + average_attention_weights: Union[bool, ivy.Container] = True, + dropout: Union[float, ivy.Container] = 0.0, + training: Union[bool, ivy.Container] = False, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, - out: Optional[Union[ivy.Array, ivy.Container]] = None, - ) -> Union[ivy.Array, ivy.NativeArray, ivy.Container]: + out: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + ) -> ivy.Container: return self._static_multi_head_attention( self, - key, - value, + key=key, + value=value, num_heads=num_heads, scale=scale, attention_mask=attention_mask, diff --git a/ivy/functional/ivy/layers.py b/ivy/functional/ivy/layers.py index c8096d4d1fe26..b32629185d576 100644 --- a/ivy/functional/ivy/layers.py +++ b/ivy/functional/ivy/layers.py @@ -710,12 +710,12 @@ def scaled_dot_product_attention( @handle_array_function def multi_head_attention( query: Union[ivy.Array, ivy.NativeArray], - key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, - value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, /, *, - num_heads: Optional[int] = 8, - scale: Optional[float] = None, + key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + num_heads: int = 8, + scale: float = None, attention_mask: Optional[Union[ivy.Array, ivy.NativeArray]] = None, in_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, q_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, @@ -724,11 +724,11 @@ def multi_head_attention( out_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, in_proj_bias: Optional[Union[ivy.Array, ivy.NativeArray]] = None, out_proj_bias: Optional[Union[ivy.Array, ivy.NativeArray]] = None, - is_causal: Optional[bool] = False, - return_attention_weights: Optional[bool] = False, - average_attention_weights: Optional[bool] = True, - dropout: Optional[float] = 0.0, - training: Optional[bool] = False, + is_causal: bool = False, + return_attention_weights: bool = False, + average_attention_weights: bool = True, + dropout: float = 0.0, + training: bool = False, out: Optional[Union[ivy.Array, ivy.NativeArray]] = None, ) -> Union[ivy.Array, ivy.NativeArray]: """ From 615d1bc6c93ea3444c66dfc53a454f64cd2b7e3d Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:13:12 +0100 Subject: [PATCH 005/127] fix(ivy): Continues f431947; typehint corrections --- ivy/data_classes/array/layers.py | 2 +- ivy/data_classes/container/layers.py | 7 +++---- ivy/functional/ivy/layers.py | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ivy/data_classes/array/layers.py b/ivy/data_classes/array/layers.py index 5c2b1796eb063..0c1d0aacb0505 100644 --- a/ivy/data_classes/array/layers.py +++ b/ivy/data_classes/array/layers.py @@ -413,7 +413,7 @@ def multi_head_attention( average_attention_weights: bool = True, dropout: float = 0.0, training: bool = False, - out: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + out: Optional[ivy.Array] = None, ) -> ivy.Array: return ivy.multi_head_attention( self._data, diff --git a/ivy/data_classes/container/layers.py b/ivy/data_classes/container/layers.py index 6f9d090bc27d1..964e9e52b680d 100644 --- a/ivy/data_classes/container/layers.py +++ b/ivy/data_classes/container/layers.py @@ -1059,12 +1059,11 @@ def _static_multi_head_attention( average_attention_weights: Union[bool, ivy.Container] = True, dropout: Union[float, ivy.Container] = 0.0, training: Union[bool, ivy.Container] = False, - key_chains: Optional[ - Union[List[str], Dict[str, str], ivy.Container]] = None, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, - out: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + out: Optional[Union[ivy.Array, ivy.Container]] = None, ) -> ivy.Container: return ContainerBase.cont_multi_map_in_function( "multi_head_attention", @@ -1132,7 +1131,7 @@ def multi_head_attention( to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, - out: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + out: Optional[Union[ivy.Array, ivy.Container]] = None, ) -> ivy.Container: return self._static_multi_head_attention( self, diff --git a/ivy/functional/ivy/layers.py b/ivy/functional/ivy/layers.py index b32629185d576..a471d62d08a78 100644 --- a/ivy/functional/ivy/layers.py +++ b/ivy/functional/ivy/layers.py @@ -715,7 +715,7 @@ def multi_head_attention( key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, num_heads: int = 8, - scale: float = None, + scale: Optional[float] = None, attention_mask: Optional[Union[ivy.Array, ivy.NativeArray]] = None, in_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, q_proj_weights: Optional[Union[ivy.Array, ivy.NativeArray]] = None, @@ -729,7 +729,7 @@ def multi_head_attention( average_attention_weights: bool = True, dropout: float = 0.0, training: bool = False, - out: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + out: Optional[ivy.Array] = None, ) -> Union[ivy.Array, ivy.NativeArray]: """ Apply multi-head attention to inputs x. This is an implementation of multi-headed From 7c8695d0ab455d9bccec794abb911de817447518 Mon Sep 17 00:00:00 2001 From: DHANUSH N Date: Tue, 5 Sep 2023 22:18:52 +0530 Subject: [PATCH 006/127] fix(paddle-frontend) : fixed the bug in paddle.solve frontend function(#23027) Co-authored-by: hirwa-nshuti --- .../frontends/paddle/tensor/linalg.py | 6 ++-- .../test_paddle/test_tensor/test_linalg.py | 32 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/ivy/functional/frontends/paddle/tensor/linalg.py b/ivy/functional/frontends/paddle/tensor/linalg.py index 4ae10e9824324..34eff9474cb1b 100644 --- a/ivy/functional/frontends/paddle/tensor/linalg.py +++ b/ivy/functional/frontends/paddle/tensor/linalg.py @@ -183,10 +183,10 @@ def qr(x, mode="reduced", name=None): # solve -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back -def solve(x1, x2, name=None): - return ivy.solve(x1, x2) +def solve(x, y, name=None): + return ivy.solve(x, y) # transpose diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py index 1290c944bef8d..9712e8fede1d4 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py @@ -12,6 +12,7 @@ ) from ivy_tests.test_ivy.test_frontends.test_tensorflow.test_linalg import ( + _get_first_matrix, _get_second_matrix, _get_cholesky_matrix, ) @@ -872,36 +873,35 @@ def test_paddle_qr( # solve @handle_frontend_test( - fn_tree="paddle.solve", - dtype_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - shared_dtype=True, - min_value=-10, - max_value=10, - ), - aliases=["paddle.tensor.linalg.solve"], + fn_tree="paddle.tensor.linalg.solve", + aliases=["paddle.linalg.solve"], + x=_get_first_matrix(), + y=_get_second_matrix(), test_with_out=st.just(False), ) def test_paddle_solve( *, - dtype_x, + x, + y, frontend, - test_flags, backend_fw, + test_flags, fn_tree, on_device, ): - input_dtype, x = dtype_x + input_dtype1, x1 = x + input_dtype2, x2 = y helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, + input_dtypes=[input_dtype1, input_dtype2], backend_to_test=backend_fw, + frontend=frontend, test_flags=test_flags, fn_tree=fn_tree, on_device=on_device, - x=x[0], - y=x[1], + rtol=1e-3, + atol=1e-3, + x=x1, + y=x2, ) From f83f37f16d6f420c7a804de0e5d380100d72fb4f Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Tue, 5 Sep 2023 21:41:01 +0300 Subject: [PATCH 007/127] feat: Integrate demos in the docs (#23096) --- .gitmodules | 3 +++ docs/demos | 1 + docs/index.rst | 2 +- docs/partial_conf.py | 2 ++ install_dependencies.sh | 1 + 5 files changed, 8 insertions(+), 1 deletion(-) create mode 160000 docs/demos diff --git a/.gitmodules b/.gitmodules index 7aebe443b29c1..3f06491476bf6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,6 @@ [submodule "ivy_tests/array_api_testing/test_array_api"] path = ivy_tests/array_api_testing/test_array_api url = https://github.com/data-apis/array-api-tests.git +[submodule "docs/demos"] + path = docs/demos + url = https://github.com/unifyai/demos.git diff --git a/docs/demos b/docs/demos new file mode 160000 index 0000000000000..f4c194709add9 --- /dev/null +++ b/docs/demos @@ -0,0 +1 @@ +Subproject commit f4c194709add928343ac0b2ef77583f6188daed1 diff --git a/docs/index.rst b/docs/index.rst index dbfd99969b2bb..08d0aea3db8c7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -9,7 +9,7 @@ :caption: Overview overview/get_started.rst - Examples + Examples overview/glossary.rst overview/faq.rst diff --git a/docs/partial_conf.py b/docs/partial_conf.py index ce4ade7c51ba7..cb577f2abfc2f 100644 --- a/docs/partial_conf.py +++ b/docs/partial_conf.py @@ -48,3 +48,5 @@ html_theme_options["switcher"]["json_url"] = "https://unify.ai/docs/versions/ivy.json" repo_name = "ivy" + +from docs.demos.demos_conf import * # noqa diff --git a/install_dependencies.sh b/install_dependencies.sh index 40115a8571594..590955330b49c 100755 --- a/install_dependencies.sh +++ b/install_dependencies.sh @@ -1,3 +1,4 @@ +sudo apt-get install pandoc -y pip install -r requirements/requirements.txt if [[ $(arch) == 'arm64' ]]; then pip install -r requirements/optional_apple_silicon_1.txt From 251126dcf24632cd4d694a6471c5152e9a8b1194 Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Tue, 5 Sep 2023 18:54:01 +0000 Subject: [PATCH 008/127] fix: update submodule --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index f4c194709add9..d545c777792a2 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit f4c194709add928343ac0b2ef77583f6188daed1 +Subproject commit d545c777792a2112d552d73b54d39ed8d6edcd9f From 531233536a564a145b8f6021518a46aa697e6ec2 Mon Sep 17 00:00:00 2001 From: ivy-seed Date: Tue, 5 Sep 2023 19:17:25 +0000 Subject: [PATCH 009/127] =?UTF-8?q?Update=20submodules=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index d545c777792a2..d5b9659fc0ac4 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit d545c777792a2112d552d73b54d39ed8d6edcd9f +Subproject commit d5b9659fc0ac4e6de37867db878b1d068e2c9a76 From 61ad0aa613bdc0c6fcd0a9dd2fb4fd0c5fe85bbd Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Wed, 6 Sep 2023 08:41:22 +0800 Subject: [PATCH 010/127] Update norms.py --- ivy/functional/backends/jax/experimental/norms.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ivy/functional/backends/jax/experimental/norms.py b/ivy/functional/backends/jax/experimental/norms.py index 68a0060cc5802..42464322a10c6 100644 --- a/ivy/functional/backends/jax/experimental/norms.py +++ b/ivy/functional/backends/jax/experimental/norms.py @@ -1,11 +1,9 @@ import jax.numpy as jnp from typing import Optional from ivy.functional.backends.jax import JaxArray -from ivy.func_wrapper import with_unsupported_dtypes from . import backend_version -@with_unsupported_dtypes({"0.4.14 and below": "uint8"}, backend_version) def l1_normalize( x: JaxArray, /, From e1da972dafaa17f3a481736b5ed83740fd902efe Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Wed, 6 Sep 2023 08:43:19 +0800 Subject: [PATCH 011/127] fix: add uint8 as unsupported dtype for l1_normalize of tensorflow backend --- ivy/functional/backends/tensorflow/experimental/norms.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ivy/functional/backends/tensorflow/experimental/norms.py b/ivy/functional/backends/tensorflow/experimental/norms.py index 5fc38b60283af..cdaafba905637 100644 --- a/ivy/functional/backends/tensorflow/experimental/norms.py +++ b/ivy/functional/backends/tensorflow/experimental/norms.py @@ -4,6 +4,7 @@ from . import backend_version +@with_unsupported_dtypes({"2.13.0 and below": ("uint8")}, backend_version) def l1_normalize( x: Union[tf.Tensor, tf.Variable], /, From d63822b5f82e237920f17c452d4ad678f69c45a3 Mon Sep 17 00:00:00 2001 From: Nitesh Kesharwani <141853536+NiteshK84@users.noreply.github.com> Date: Wed, 6 Sep 2023 07:25:26 +0530 Subject: [PATCH 012/127] triu (#22739) --- ivy/functional/frontends/torch/tensor.py | 18 ++++++++ .../test_frontends/test_torch/test_tensor.py | 42 +++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/ivy/functional/frontends/torch/tensor.py b/ivy/functional/frontends/torch/tensor.py index ad750eb9aedb1..d3b7f0b405655 100644 --- a/ivy/functional/frontends/torch/tensor.py +++ b/ivy/functional/frontends/torch/tensor.py @@ -1964,6 +1964,24 @@ def unique_consecutive(self, return_inverse, return_counts, dim): ) def cummax(self, dim): return torch_frontend.cummax(self, dim) + @with_unsupported_dtypes( + { + "2.0.1 and below": ( + "bfloat16", + "int8", + "uint8", + "uint32", + "uint16", + "uint64", + "int16", + "complex128", + "complex64", + ) + }, + "torch", + ) + def triu(self, diagonal=0): + return torch_frontend.triu(self, diagonal) @with_unsupported_dtypes( {"2.0.1 and below": ("bfloat16",)}, diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py index bbca3cff7ec10..75ebe56bfd724 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py @@ -12905,3 +12905,45 @@ def test_torch_unique_consecutive( frontend=frontend, on_device=on_device, ) + + +# triu +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="torch.tensor", + method_name="triu", + dtype_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("numeric"), + min_num_dims=2, + max_num_dims=5, + min_dim_size=1, + max_dim_size=5, + ), + diagonal=st.integers( + min_value=-4, + max_value=4, + ), +) +def test_torch_triu( + dtype_x, + diagonal, + frontend, + frontend_method_data, + init_flags, + method_flags, + on_device, + backend_fw, +): + input_dtype, x = dtype_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + backend_to_test=backend_fw, + init_all_as_kwargs_np={"data": x[0]}, + method_input_dtypes=input_dtype, + method_all_as_kwargs_np={"diagonal": diagonal}, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + frontend=frontend, + on_device=on_device, + ) From 2d4da3ce7defc131cddfe798ae5ab0f1a3ca2725 Mon Sep 17 00:00:00 2001 From: Akshay <59740725+Killua7362@users.noreply.github.com> Date: Wed, 6 Sep 2023 12:38:14 +0530 Subject: [PATCH 013/127] fix: nested maps on torch.compile for torch tensors (#23108) --- ivy/data_classes/array/conversions.py | 8 ++++---- ivy/data_classes/container/conversions.py | 8 ++++---- ivy/func_wrapper.py | 6 +++--- ivy/functional/frontends/jax/func_wrapper.py | 8 ++++---- ivy/functional/frontends/mxnet/func_wrapper.py | 6 +++--- ivy/functional/frontends/numpy/func_wrapper.py | 10 +++++----- ivy/functional/frontends/onnx/func_wrapper.py | 6 +++--- ivy/functional/frontends/paddle/func_wrapper.py | 6 +++--- .../frontends/tensorflow/func_wrapper.py | 2 +- ivy/functional/frontends/torch/func_wrapper.py | 6 +++--- ivy/functional/ivy/nest.py | 14 +++++++------- 11 files changed, 40 insertions(+), 40 deletions(-) diff --git a/ivy/data_classes/array/conversions.py b/ivy/data_classes/array/conversions.py index 30ac4445c0192..8da2954f31249 100644 --- a/ivy/data_classes/array/conversions.py +++ b/ivy/data_classes/array/conversions.py @@ -53,7 +53,7 @@ def _to_ivy(x: Any) -> Any: def to_ivy( x: Union[ivy.Array, ivy.NativeArray, Iterable], nested: bool = False, - include_derived: Optional[Dict[type, bool]] = None, + include_derived: Optional[Dict[str, bool]] = None, ) -> Union[ivy.Array, ivy.NativeArray, Iterable]: """ Return the input array converted to an ivy.Array instance if it is a native array @@ -84,7 +84,7 @@ def to_ivy( def args_to_ivy( *args: Iterable[Any], - include_derived: Optional[Dict[type, bool]] = None, + include_derived: Optional[Dict[str, bool]] = None, **kwargs: Dict[str, Any], ) -> Tuple[Iterable[Any], Dict[str, Any]]: """ @@ -115,7 +115,7 @@ def args_to_ivy( def to_native( x: Union[ivy.Array, ivy.NativeArray, Iterable], nested: bool = False, - include_derived: Optional[Dict[type, bool]] = None, + include_derived: Optional[Dict[str, bool]] = None, cont_inplace: bool = False, to_ignore: Optional[Union[type, Tuple[type]]] = None, ) -> Union[ivy.Array, ivy.NativeArray, Iterable]: @@ -157,7 +157,7 @@ def to_native( def args_to_native( *args: Iterable[Any], - include_derived: Dict[type, bool] = None, + include_derived: Dict[str, bool] = None, cont_inplace: bool = False, to_ignore: Optional[Union[type, Tuple[type]]] = None, **kwargs: Dict[str, Any], diff --git a/ivy/data_classes/container/conversions.py b/ivy/data_classes/container/conversions.py index 910729cc613fe..00cdf6cdcfef8 100644 --- a/ivy/data_classes/container/conversions.py +++ b/ivy/data_classes/container/conversions.py @@ -18,7 +18,7 @@ class _ContainerWithConversions(ContainerBase): def _static_to_native( x: Union[ivy.Array, ivy.NativeArray, ivy.Container], nested: Union[bool, ivy.Container] = False, - include_derived: Optional[Union[Dict[type, bool], ivy.Container]] = None, + include_derived: Optional[Union[Dict[str, bool], ivy.Container]] = None, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, @@ -78,7 +78,7 @@ def _static_to_native( def to_native( self: ivy.Container, nested: Union[bool, ivy.Container] = False, - include_derived: Optional[Union[Dict[type, bool], ivy.Container]] = None, + include_derived: Optional[Union[Dict[str, bool], ivy.Container]] = None, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, @@ -138,7 +138,7 @@ def to_native( def _static_to_ivy( x: Union[ivy.Array, ivy.NativeArray, ivy.Container], nested: Union[bool, ivy.Container] = False, - include_derived: Optional[Union[Dict[type, bool], ivy.Container]] = None, + include_derived: Optional[Union[Dict[str, bool], ivy.Container]] = None, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, @@ -199,7 +199,7 @@ def _static_to_ivy( def to_ivy( self: ivy.Container, nested: Union[bool, ivy.Container] = False, - include_derived: Optional[Union[Dict[type, bool], ivy.Container]] = None, + include_derived: Optional[Union[Dict[str, bool], ivy.Container]] = None, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, diff --git a/ivy/func_wrapper.py b/ivy/func_wrapper.py index 6ff998368f2e6..e7fa2ca9acce7 100644 --- a/ivy/func_wrapper.py +++ b/ivy/func_wrapper.py @@ -494,7 +494,7 @@ def _inputs_to_ivy_arrays(*args, **kwargs): has_out = True # convert all arrays in the inputs to ivy.Array instances ivy_args, ivy_kwargs = ivy.args_to_ivy( - *args, **kwargs, include_derived={tuple: True} + *args, **kwargs, include_derived={"tuple": True} ) if has_out: ivy_kwargs["out"] = out @@ -564,7 +564,7 @@ def _outputs_to_ivy_arrays(*args, **kwargs): ret = fn(*args, **kwargs) # convert all arrays in the return to `ivy.Array` instances return ( - ivy.to_ivy(ret, nested=True, include_derived={tuple: True}) + ivy.to_ivy(ret, nested=True, include_derived={"tuple": True}) if ivy.array_mode else ret ) @@ -594,7 +594,7 @@ def output_to_native_arrays(fn: Callable) -> Callable: @functools.wraps(fn) def _output_to_native_arrays(*args, **kwargs): ret = fn(*args, **kwargs) - return ivy.to_native(ret, nested=True, include_derived={tuple: True}) + return ivy.to_native(ret, nested=True, include_derived={"tuple": True}) _output_to_native_arrays.outputs_to_native_arrays = True return _output_to_native_arrays diff --git a/ivy/functional/frontends/jax/func_wrapper.py b/ivy/functional/frontends/jax/func_wrapper.py index cace90dd4fe33..ba89504f7243c 100644 --- a/ivy/functional/frontends/jax/func_wrapper.py +++ b/ivy/functional/frontends/jax/func_wrapper.py @@ -111,10 +111,10 @@ def _inputs_to_ivy_arrays_jax(*args, **kwargs): has_out = True # convert all arrays in the inputs to ivy.Array instances new_args = ivy.nested_map( - args, _to_ivy_array, include_derived={tuple: True}, shallow=False + args, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) new_kwargs = ivy.nested_map( - kwargs, _to_ivy_array, include_derived={tuple: True}, shallow=False + kwargs, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) # add the original out argument back to the keyword arguments if has_out: @@ -153,10 +153,10 @@ def _outputs_to_frontend_arrays_jax(*args, **kwargs): return _from_ivy_array_to_jax_frontend_array_weak_type( ret, nested=True, - include_derived={tuple: True}, + include_derived={"tuple": True}, ) return _from_ivy_array_to_jax_frontend_array( - ret, nested=True, include_derived={tuple: True} + ret, nested=True, include_derived={"tuple": True} ) return _outputs_to_frontend_arrays_jax diff --git a/ivy/functional/frontends/mxnet/func_wrapper.py b/ivy/functional/frontends/mxnet/func_wrapper.py index 20b358488ea89..9beab9f42365d 100644 --- a/ivy/functional/frontends/mxnet/func_wrapper.py +++ b/ivy/functional/frontends/mxnet/func_wrapper.py @@ -81,10 +81,10 @@ def _inputs_to_ivy_arrays_mxnet(*args, **kwargs): """ # convert all arrays in the inputs to ivy.Array instances new_args = ivy.nested_map( - args, _to_ivy_array, include_derived={tuple: True}, shallow=False + args, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) new_kwargs = ivy.nested_map( - kwargs, _to_ivy_array, include_derived={tuple: True}, shallow=False + kwargs, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) return fn(*new_args, **new_kwargs) @@ -105,7 +105,7 @@ def _outputs_to_frontend_arrays_mxnet(*args, **kwargs): ret = fn(*args, **kwargs) # convert all arrays in the return to `frontend.Tensorflow.tensor` instances - return ivy.nested_map(ret, _ivy_array_to_mxnet, include_derived={tuple: True}) + return ivy.nested_map(ret, _ivy_array_to_mxnet, include_derived={"tuple": True}) _outputs_to_frontend_arrays_mxnet.outputs_to_frontend_arrays = True return _outputs_to_frontend_arrays_mxnet diff --git a/ivy/functional/frontends/numpy/func_wrapper.py b/ivy/functional/frontends/numpy/func_wrapper.py index 495820f649e0f..a001f245ec3d5 100644 --- a/ivy/functional/frontends/numpy/func_wrapper.py +++ b/ivy/functional/frontends/numpy/func_wrapper.py @@ -194,7 +194,7 @@ def _set_order(args, order): ) if order in ["K", "A", None]: check_order = ivy.nested_map( - args, _check_C_order, include_derived={tuple: True}, shallow=False + args, _check_C_order, include_derived={"tuple": True}, shallow=False ) if all(v is None for v in check_order) or any( ivy.multi_index_nest(check_order, ivy.all_nested_indices(check_order)) @@ -447,9 +447,9 @@ def _inputs_to_ivy_arrays_np(*args, **kwargs): The return of the function, with ivy arrays passed in the arguments. """ # convert all arrays in the inputs to ivy.Array instances - ivy_args = ivy.nested_map(args, _to_ivy_array, include_derived={tuple: True}) + ivy_args = ivy.nested_map(args, _to_ivy_array, include_derived={"tuple": True}) ivy_kwargs = ivy.nested_map( - kwargs, _to_ivy_array, include_derived={tuple: True} + kwargs, _to_ivy_array, include_derived={"tuple": True} ) return fn(*ivy_args, **ivy_kwargs) @@ -509,10 +509,10 @@ def _outputs_to_frontend_arrays(*args, order="K", **kwargs): # convert all returned arrays to `ndarray` instances if order == "F": return ivy.nested_map( - ret, _ivy_to_numpy_order_F, include_derived={tuple: True} + ret, _ivy_to_numpy_order_F, include_derived={"tuple": True} ) else: - return ivy.nested_map(ret, _ivy_to_numpy, include_derived={tuple: True}) + return ivy.nested_map(ret, _ivy_to_numpy, include_derived={"tuple": True}) if "order" in list(inspect.signature(fn).parameters.keys()): contains_order = True diff --git a/ivy/functional/frontends/onnx/func_wrapper.py b/ivy/functional/frontends/onnx/func_wrapper.py index ced490f7f96a1..d1e784c7a197e 100644 --- a/ivy/functional/frontends/onnx/func_wrapper.py +++ b/ivy/functional/frontends/onnx/func_wrapper.py @@ -58,10 +58,10 @@ def _inputs_to_ivy_arrays_onnx(*args, **kwargs): """ # convert all arrays in the inputs to ivy.Array instances new_args = ivy.nested_map( - args, _to_ivy_array, include_derived={tuple: True}, shallow=False + args, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) new_kwargs = ivy.nested_map( - kwargs, _to_ivy_array, include_derived={tuple: True}, shallow=False + kwargs, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) return fn(*new_args, **new_kwargs) @@ -82,7 +82,7 @@ def _outputs_to_frontend_arrays_onnx(*args, **kwargs): # convert all arrays in the return to `frontend.onnx.Tensor` instances return _from_ivy_array_to_onnx_frontend_tensor( - ret, nested=True, include_derived={tuple: True} + ret, nested=True, include_derived={"tuple": True} ) return _outputs_to_frontend_arrays_onnx diff --git a/ivy/functional/frontends/paddle/func_wrapper.py b/ivy/functional/frontends/paddle/func_wrapper.py index 1af63572cc413..b0ddb992e05e9 100644 --- a/ivy/functional/frontends/paddle/func_wrapper.py +++ b/ivy/functional/frontends/paddle/func_wrapper.py @@ -50,10 +50,10 @@ def new_fn(*args, **kwargs): """ # convert all input arrays to ivy.Array instances new_args = ivy.nested_map( - args, _to_ivy_array, include_derived={tuple: True}, shallow=False + args, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) new_kwargs = ivy.nested_map( - kwargs, _to_ivy_array, include_derived={tuple: True}, shallow=False + kwargs, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) return fn(*new_args, **new_kwargs) @@ -82,7 +82,7 @@ def new_fn(*args, **kwargs): ivy.unset_default_float_dtype() # convert all arrays in the return to `paddle_frontend.Tensor` instances return _from_ivy_array_to_paddle_frontend_tensor( - ret, nested=True, include_derived={tuple: True} + ret, nested=True, include_derived={"tuple": True} ) return new_fn diff --git a/ivy/functional/frontends/tensorflow/func_wrapper.py b/ivy/functional/frontends/tensorflow/func_wrapper.py index ca14f5fc1845a..06fee643e81e0 100644 --- a/ivy/functional/frontends/tensorflow/func_wrapper.py +++ b/ivy/functional/frontends/tensorflow/func_wrapper.py @@ -217,7 +217,7 @@ def _outputs_to_frontend_arrays_tf(*args, **kwargs): # convert all arrays in the return to `frontend.Tensorflow.tensor` instances return ivy.nested_map( - ret, _ivy_array_to_tensorflow, include_derived={tuple: True} + ret, _ivy_array_to_tensorflow, include_derived={"tuple": True} ) _outputs_to_frontend_arrays_tf.outputs_to_frontend_arrays = True diff --git a/ivy/functional/frontends/torch/func_wrapper.py b/ivy/functional/frontends/torch/func_wrapper.py index 84e16bb9d797d..da2fad9b18517 100644 --- a/ivy/functional/frontends/torch/func_wrapper.py +++ b/ivy/functional/frontends/torch/func_wrapper.py @@ -145,10 +145,10 @@ def _inputs_to_ivy_arrays_torch(*args, **kwargs): ) # convert all input arrays to ivy.Array instances new_args = ivy.nested_map( - args, _to_ivy_array, include_derived={tuple: True}, shallow=False + args, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) new_kwargs = ivy.nested_map( - kwargs, _to_ivy_array, include_derived={tuple: True}, shallow=False + kwargs, _to_ivy_array, include_derived={"tuple": True}, shallow=False ) return fn(*new_args, **new_kwargs) @@ -202,7 +202,7 @@ def outputs_to_frontend_arrays_torch(*args, **kwargs): ret = _from_ivy_array_to_torch_frontend_tensor( ret, nested=True, - include_derived={tuple: True}, + include_derived={"tuple": True}, requires_grad=kwargs.get( "requires_grad", any( diff --git a/ivy/functional/ivy/nest.py b/ivy/functional/ivy/nest.py index 5965c48416e08..c0826e5e8d653 100644 --- a/ivy/functional/ivy/nest.py +++ b/ivy/functional/ivy/nest.py @@ -1036,7 +1036,7 @@ def nested_map( x: Union[ivy.Array, ivy.NativeArray, Iterable], /, fn: Callable, - include_derived: Optional[Union[Dict[type, bool], bool]] = None, + include_derived: Optional[Union[Dict[str, bool], bool]] = None, to_ignore: Optional[Union[type, Tuple[type]]] = None, to_mutable: bool = False, max_depth: Optional[int] = None, @@ -1160,12 +1160,13 @@ def nested_map( to_ignore = ivy.default(to_ignore, ()) extra_nest_types = ivy.default(extra_nest_types, ()) if include_derived is True: - include_derived = {tuple: True, list: True, dict: True} + include_derived = {"tuple": True, "list": True, "dict": True} elif not include_derived: include_derived = {} - for t in (tuple, list, dict): + for t in ("tuple", "list", "dict"): if t not in include_derived: include_derived[t] = False + # to ensure all keys are strings if ivy.exists(max_depth) and _depth > max_depth: return x class_instance = type(x) @@ -1182,7 +1183,7 @@ def nested_map( _tuple_check_fn, ( (lambda x_, t_: isinstance(x_, t_)) - if include_derived[tuple] + if include_derived["tuple"] else (lambda x_, t_: type(x_) is t_) ), ) @@ -1190,7 +1191,7 @@ def nested_map( _list_check_fn, ( (lambda x_, t_: isinstance(x_, t_)) - if include_derived[list] + if include_derived["list"] else (lambda x_, t_: type(x_) is t_) ), ) @@ -1198,11 +1199,10 @@ def nested_map( _dict_check_fn, ( (lambda x_, t_: isinstance(x_, t_)) - if include_derived[dict] + if include_derived["dict"] else (lambda x_, t_: type(x_) is t_) ), ) - if tuple_check_fn(x, tuple) and not isinstance(x, to_ignore): ret_list = [ nested_map( From 053c23d1ab2ff554f1f1c38358cf3cf68fbf253e Mon Sep 17 00:00:00 2001 From: Sai-Suraj-27 Date: Wed, 6 Sep 2023 13:17:05 +0530 Subject: [PATCH 014/127] config(lint): Updated autoflake to latest version in pre-commit configuration file. (#22973) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 07e0419aad0eb..95088f8c387fc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: args: - "--preview" - repo: https://github.com/PyCQA/autoflake - rev: v2.2.0 + rev: v2.2.1 hooks: - id: autoflake - repo: https://github.com/pycqa/flake8 From d78a00eb2045311ba56acb2d6153be354843b751 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Wed, 6 Sep 2023 08:07:12 +0000 Subject: [PATCH 015/127] =?UTF-8?q?=F0=9F=A4=96=20Lint=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ivy/data_classes/array/layers.py | 2 +- .../backends/jax/experimental/norms.py | 1 - .../backends/tensorflow/experimental/norms.py | 2 +- .../other_special_functions.py | 14 ++-- .../frontends/paddle/tensor/math.py | 12 +-- ivy/functional/frontends/torch/tensor.py | 1 + .../test_paddle/test_tensor/test_math.py | 70 ++++++++-------- .../test_frontends/test_torch/test_tensor.py | 84 +++++++++---------- .../test_core/test_creation.py | 80 +++++++++--------- 9 files changed, 133 insertions(+), 133 deletions(-) diff --git a/ivy/data_classes/array/layers.py b/ivy/data_classes/array/layers.py index 0c1d0aacb0505..550a225b7e798 100644 --- a/ivy/data_classes/array/layers.py +++ b/ivy/data_classes/array/layers.py @@ -1,6 +1,6 @@ # global import abc -from typing import Optional, Tuple, Union, List, Sequence, Dict +from typing import Optional, Tuple, Union, List, Sequence # local import ivy diff --git a/ivy/functional/backends/jax/experimental/norms.py b/ivy/functional/backends/jax/experimental/norms.py index 42464322a10c6..ad616122fec3d 100644 --- a/ivy/functional/backends/jax/experimental/norms.py +++ b/ivy/functional/backends/jax/experimental/norms.py @@ -1,7 +1,6 @@ import jax.numpy as jnp from typing import Optional from ivy.functional.backends.jax import JaxArray -from . import backend_version def l1_normalize( diff --git a/ivy/functional/backends/tensorflow/experimental/norms.py b/ivy/functional/backends/tensorflow/experimental/norms.py index cdaafba905637..bd3a1abb624fa 100644 --- a/ivy/functional/backends/tensorflow/experimental/norms.py +++ b/ivy/functional/backends/tensorflow/experimental/norms.py @@ -4,7 +4,7 @@ from . import backend_version -@with_unsupported_dtypes({"2.13.0 and below": ("uint8")}, backend_version) +@with_unsupported_dtypes({"2.13.0 and below": "uint8"}, backend_version) def l1_normalize( x: Union[tf.Tensor, tf.Variable], /, diff --git a/ivy/functional/frontends/numpy/mathematical_functions/other_special_functions.py b/ivy/functional/frontends/numpy/mathematical_functions/other_special_functions.py index 6d2c7685519fb..1a13fe4964081 100644 --- a/ivy/functional/frontends/numpy/mathematical_functions/other_special_functions.py +++ b/ivy/functional/frontends/numpy/mathematical_functions/other_special_functions.py @@ -8,6 +8,13 @@ ) +@to_ivy_arrays_and_back +def sinc(x): + if ivy.get_num_dims(x) == 0: + x = ivy.astype(x, ivy.float64) + return ivy.sinc(x) + + @to_ivy_arrays_and_back @from_zero_dim_arrays_to_scalar def unwrap(p, discont=None, axis=-1, *, period=2 * ivy.pi): @@ -35,10 +42,3 @@ def unwrap(p, discont=None, axis=-1, *, period=2 * ivy.pi): up = ivy.array(p, copy=True, dtype=dtype) up[slice1] = p[slice1] + ph_correct.cumsum(axis) return up - - -@to_ivy_arrays_and_back -def sinc(x): - if ivy.get_num_dims(x) == 0: - x = ivy.astype(x, ivy.float64) - return ivy.sinc(x) diff --git a/ivy/functional/frontends/paddle/tensor/math.py b/ivy/functional/frontends/paddle/tensor/math.py index 5c28704a9e30c..733c4675ad323 100644 --- a/ivy/functional/frontends/paddle/tensor/math.py +++ b/ivy/functional/frontends/paddle/tensor/math.py @@ -217,6 +217,12 @@ def floor(x, name=None): return ivy.floor(x) +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def floor_divide(x, y, name=None): + return ivy.floor_divide(x, y) + + @with_unsupported_dtypes({"2.5.1 and below": "bfloat16"}, "paddle") @to_ivy_arrays_and_back def fmax(x, y, name=None): @@ -514,12 +520,6 @@ def square(x, name=None): return ivy.square(x) -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def floor_divide(x, y, name=None): - return ivy.floor_divide(x, y) - - @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back def stanh(x, scale_a=0.67, scale_b=1.7159, name=None): diff --git a/ivy/functional/frontends/torch/tensor.py b/ivy/functional/frontends/torch/tensor.py index d3b7f0b405655..0caec65281ba1 100644 --- a/ivy/functional/frontends/torch/tensor.py +++ b/ivy/functional/frontends/torch/tensor.py @@ -1964,6 +1964,7 @@ def unique_consecutive(self, return_inverse, return_counts, dim): ) def cummax(self, dim): return torch_frontend.cummax(self, dim) + @with_unsupported_dtypes( { "2.0.1 and below": ( diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py index 3e54a09ab79ed..69f19e2ccdb96 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py @@ -932,6 +932,41 @@ def test_paddle_floor( ) +# floor_divide +@handle_frontend_test( + fn_tree="paddle.tensor.math.floor_divide", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_value=-10, + max_value=10, + num_arrays=2, + allow_inf=False, + shared_dtype=True, + ), +) +def test_paddle_floor_divide( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + atol=1e-5, + ) + + @handle_frontend_test( fn_tree="paddle.fmax", dtypes_and_x=helpers.dtype_and_values( @@ -2167,41 +2202,6 @@ def test_paddle_sin( ) -# floor_divide -@handle_frontend_test( - fn_tree="paddle.tensor.math.floor_divide", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_value=-10, - max_value=10, - num_arrays=2, - allow_inf=False, - shared_dtype=True, - ), -) -def test_paddle_floor_divide( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - atol=1e-5, - ) - - # diff # sinh @handle_frontend_test( diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py index 75ebe56bfd724..53c056b9ae711 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py @@ -12774,6 +12774,48 @@ def test_torch_tensor_zero_( ) +# triu +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="torch.tensor", + method_name="triu", + dtype_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("numeric"), + min_num_dims=2, + max_num_dims=5, + min_dim_size=1, + max_dim_size=5, + ), + diagonal=st.integers( + min_value=-4, + max_value=4, + ), +) +def test_torch_triu( + dtype_x, + diagonal, + frontend, + frontend_method_data, + init_flags, + method_flags, + on_device, + backend_fw, +): + input_dtype, x = dtype_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + backend_to_test=backend_fw, + init_all_as_kwargs_np={"data": x[0]}, + method_input_dtypes=input_dtype, + method_all_as_kwargs_np={"diagonal": diagonal}, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + frontend=frontend, + on_device=on_device, + ) + + # triu_ @handle_frontend_method( class_tree=CLASS_TREE, @@ -12905,45 +12947,3 @@ def test_torch_unique_consecutive( frontend=frontend, on_device=on_device, ) - - -# triu -@handle_frontend_method( - class_tree=CLASS_TREE, - init_tree="torch.tensor", - method_name="triu", - dtype_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("numeric"), - min_num_dims=2, - max_num_dims=5, - min_dim_size=1, - max_dim_size=5, - ), - diagonal=st.integers( - min_value=-4, - max_value=4, - ), -) -def test_torch_triu( - dtype_x, - diagonal, - frontend, - frontend_method_data, - init_flags, - method_flags, - on_device, - backend_fw, -): - input_dtype, x = dtype_x - helpers.test_frontend_method( - init_input_dtypes=input_dtype, - backend_to_test=backend_fw, - init_all_as_kwargs_np={"data": x[0]}, - method_input_dtypes=input_dtype, - method_all_as_kwargs_np={"diagonal": diagonal}, - frontend_method_data=frontend_method_data, - init_flags=init_flags, - method_flags=method_flags, - frontend=frontend, - on_device=on_device, - ) diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py index b9850c7431d4a..ab63755d69bcb 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_creation.py @@ -292,6 +292,46 @@ def test_kaiser_window( ) +# mel_weight_matrix +@handle_test( + fn_tree="functional.ivy.experimental.mel_weight_matrix", + num_mel_bins=helpers.ints(min_value=5, max_value=10), + dft_length=helpers.ints(min_value=5, max_value=10), + sample_rate=helpers.ints(min_value=1000, max_value=2000), + lower_edge_hertz=helpers.floats(min_value=0.0, max_value=5.0), + upper_edge_hertz=helpers.floats(min_value=5.0, max_value=10.0), + test_with_out=st.just(False), + test_gradients=st.just(False), + test_instance_method=st.just(False), +) +def test_mel_weight_matrix( + *, + num_mel_bins, + dft_length, + sample_rate, + lower_edge_hertz, + upper_edge_hertz, + test_flags, + backend_fw, + fn_name, + on_device, +): + helpers.test_function( + input_dtypes=[], + test_flags=test_flags, + on_device=on_device, + backend_to_test=backend_fw, + rtol_=0.05, + atol_=0.05, + fn_name=fn_name, + num_mel_bins=num_mel_bins, + dft_length=dft_length, + sample_rate=sample_rate, + lower_edge_hertz=lower_edge_hertz, + upper_edge_hertz=upper_edge_hertz, + ) + + # ndenumerate @handle_test( fn_tree="functional.ivy.experimental.ndenumerate", @@ -580,43 +620,3 @@ def test_vorbis_window( window_length=int(x[0]), dtype=dtype[0], ) - - -# mel_weight_matrix -@handle_test( - fn_tree="functional.ivy.experimental.mel_weight_matrix", - num_mel_bins=helpers.ints(min_value=5, max_value=10), - dft_length=helpers.ints(min_value=5, max_value=10), - sample_rate=helpers.ints(min_value=1000, max_value=2000), - lower_edge_hertz=helpers.floats(min_value=0.0, max_value=5.0), - upper_edge_hertz=helpers.floats(min_value=5.0, max_value=10.0), - test_with_out=st.just(False), - test_gradients=st.just(False), - test_instance_method=st.just(False), -) -def test_mel_weight_matrix( - *, - num_mel_bins, - dft_length, - sample_rate, - lower_edge_hertz, - upper_edge_hertz, - test_flags, - backend_fw, - fn_name, - on_device, -): - helpers.test_function( - input_dtypes=[], - test_flags=test_flags, - on_device=on_device, - backend_to_test=backend_fw, - rtol_=0.05, - atol_=0.05, - fn_name=fn_name, - num_mel_bins=num_mel_bins, - dft_length=dft_length, - sample_rate=sample_rate, - lower_edge_hertz=lower_edge_hertz, - upper_edge_hertz=upper_edge_hertz, - ) From b3842790087c6d76cdbdee685ee12db07ce275e0 Mon Sep 17 00:00:00 2001 From: Gad Cooper <46457344+SpyingEnvelope@users.noreply.github.com> Date: Wed, 6 Sep 2023 02:41:38 -0600 Subject: [PATCH 016/127] Refactor exists (#22993) Co-authored-by: @AnnaTz --- ivy/data_classes/array/general.py | 4 +- ivy/data_classes/container/general.py | 124 ++++++++++++++++++++++++++ ivy/functional/ivy/general.py | 2 +- 3 files changed, 127 insertions(+), 3 deletions(-) diff --git a/ivy/data_classes/array/general.py b/ivy/data_classes/array/general.py index 7c94e779a673f..62c1454211d72 100644 --- a/ivy/data_classes/array/general.py +++ b/ivy/data_classes/array/general.py @@ -988,7 +988,7 @@ def value_is_nan(self: ivy.Array, /, *, include_infs: bool = True) -> bool: """ return ivy.value_is_nan(self, include_infs=include_infs) - def exists(self: ivy.Array) -> bool: + def exists(self: ivy.Array, /) -> bool: """ ivy.Array instance method variant of ivy.exists. This method simply wraps the function, and so the docstring for ivy.exists also applies to this method with @@ -1002,7 +1002,7 @@ def exists(self: ivy.Array) -> bool: Returns ------- ret - True if x is not None, else False. + True if input is not None, else False. Examples -------- diff --git a/ivy/data_classes/container/general.py b/ivy/data_classes/container/general.py index 8f094f546ade0..6b7dc87e08a66 100644 --- a/ivy/data_classes/container/general.py +++ b/ivy/data_classes/container/general.py @@ -4245,3 +4245,127 @@ def strides( A tuple containing the strides. """ return self.static_strides(self) + + @staticmethod + def _static_exists( + x: ivy.Container, + /, + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.exists. This method simply wraps + the function, and so the docstring for ivy.exists also applies to this method + with minimal changes. + + Parameters + ---------- + x + The input container. + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If True, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``True``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + + Returns + ------- + ret + A boolean container detaling if any of the leaf nodes are None. + True if not None, False if None. + + Examples + -------- + >>> x = ivy.Container(a=ivy.array([0,4,5]), b=ivy.array([2,2,0])) + >>> y = x._static_exists(x) + >>> print(y) + { a: True, b: True } + + >>> x = ivy.Container(a=[1,2], b=None) + >>> y = x._static_exists(x) + >>> print(y) + { a: True, b: False } + + >>> x = ivy.Container(a={"d": 1, "c": 3}, b={"d": 20, "c": None}) + >>> y = x._static_exists(x) + >>> print(y) + { a: { c: True, d: True }, b: { c: False, d: True } } + """ + return ContainerBase.cont_multi_map_in_function( + "exists", + x, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + ) + + def exists( + self: ivy.Container, + /, + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.exists. This method simply wraps + the function, and so the docstring for ivy.exists also applies to this method + with minimal changes. + + Parameters + ---------- + self + The input container. + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If True, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``True``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + + Returns + ------- + ret + A boolean container detaling if any of the leaf nodes are None. + True if not None, False if None. + + Examples + -------- + >>> x = ivy.Container(a=[1,2,3,4], b=[]) + >>> y = x.exists() + >>> print(y) + { a: True, b: True } + + >>> x = ivy.Container(a=None, b=[1,2]) + >>> y = x.exists() + >>> print(y) + { a: False, b: True } + + >>> x = ivy.Container(a={"d": 1, "c": 3}, b=None) + >>> y = x.exists() + >>> print(y) + { a: { c: True, d: True }, b: False } + """ + return self._static_exists( + self, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + ) diff --git a/ivy/functional/ivy/general.py b/ivy/functional/ivy/general.py index f80a3fae31133..8df26f4055af4 100644 --- a/ivy/functional/ivy/general.py +++ b/ivy/functional/ivy/general.py @@ -1351,7 +1351,7 @@ def has_nans( @handle_exceptions -def exists(x: Any) -> bool: +def exists(x: Any, /) -> bool: """ Check as to whether the input is None or not. From 2cb79613f32681015f5b80551db0503289dcb36c Mon Sep 17 00:00:00 2001 From: ivy-seed Date: Wed, 6 Sep 2023 08:46:11 +0000 Subject: [PATCH 017/127] =?UTF-8?q?Update=20demos=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index d5b9659fc0ac4..5a5ee810c4174 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit d5b9659fc0ac4e6de37867db878b1d068e2c9a76 +Subproject commit 5a5ee810c41742972c612641ec445e97b24770d9 From 9fa28ee26d4ebe4b8e4eab0e6bba5846e9bfbd6f Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Wed, 6 Sep 2023 08:47:26 +0000 Subject: [PATCH 018/127] =?UTF-8?q?Update=20demos=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index 5a5ee810c4174..6e754503f8e02 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit 5a5ee810c41742972c612641ec445e97b24770d9 +Subproject commit 6e754503f8e02432406baac9caddffa9a9327184 From 49dde668d5a3428cb7cd1daa101248da6b28ac49 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Wed, 6 Sep 2023 08:51:12 +0000 Subject: [PATCH 019/127] =?UTF-8?q?Update=20demos=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index 6e754503f8e02..7ba3395d8dc86 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit 6e754503f8e02432406baac9caddffa9a9327184 +Subproject commit 7ba3395d8dc864acc19d493976d0831a6afcd1ff From cef05210efa07e819c0ea083ddbcd2b5155e4544 Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Wed, 6 Sep 2023 08:59:35 +0000 Subject: [PATCH 020/127] fix: update `apt-get` before installing dependencies --- install_dependencies.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install_dependencies.sh b/install_dependencies.sh index 590955330b49c..b620d7d381e3e 100755 --- a/install_dependencies.sh +++ b/install_dependencies.sh @@ -1,3 +1,4 @@ +sudo apt-get update sudo apt-get install pandoc -y pip install -r requirements/requirements.txt if [[ $(arch) == 'arm64' ]]; then From 8cf4dc738f29c0d9611b36e7e123e35a063eb827 Mon Sep 17 00:00:00 2001 From: Justin Fung <83911295+Deepdive543443@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:53:11 +0100 Subject: [PATCH 021/127] Add torch frontend grid_sample and test (#22539) Co-authored-by: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> --- .../torch/nn/functional/vision_functions.py | 282 +++++++++++++++++- .../test_functional/test_vision_functions.py | 91 ++++++ 2 files changed, 372 insertions(+), 1 deletion(-) diff --git a/ivy/functional/frontends/torch/nn/functional/vision_functions.py b/ivy/functional/frontends/torch/nn/functional/vision_functions.py index 80f93ebbc52de..5803993aeed29 100644 --- a/ivy/functional/frontends/torch/nn/functional/vision_functions.py +++ b/ivy/functional/frontends/torch/nn/functional/vision_functions.py @@ -3,7 +3,7 @@ # local import ivy -from ivy import with_unsupported_dtypes +from ivy import with_unsupported_dtypes, with_supported_dtypes from ivy.functional.frontends.torch.func_wrapper import to_ivy_arrays_and_back from ivy.utils.exceptions import IvyNotImplementedException @@ -355,3 +355,283 @@ def upsample_bilinear(input, size=None, scale_factor=None): @to_ivy_arrays_and_back def upsample_nearest(input, size=None, scale_factor=None): return interpolate(input, size=size, scale_factor=scale_factor, mode="nearest") + + +def reflect(x, low2, high2): + min = low2 / 2 + span = (high2 - low2) / 2 + x = ivy.abs(x - min) + frac_in = ivy.abs(x / span) + extra = (frac_in - ivy.floor(frac_in)) * ivy.abs(span) + flips = ivy.floor(x / span) + x[flips % 2 == 0] = (extra + min)[flips % 2 == 0] + x[flips % 2 != 0] = (span - extra + min)[flips % 2 != 0] + return x + + +def grid_sample_padding(grid, padding_mode, align_corners, borders=None): + if padding_mode == "reflection": + if align_corners: + for idx, border in enumerate(borders): + grid[..., idx] = reflect(grid[..., idx], 0, 2 * (border - 1)) + grid[..., idx] = ivy.clip(grid[..., idx], 0, border - 1) + + else: + for idx, border in enumerate(borders): + grid[..., idx] = reflect(grid[..., idx], -1, 2 * border - 1) + grid[..., idx] = ivy.clip(grid[..., idx], 0, border - 1) + + elif padding_mode == "border": + for idx, border in enumerate(borders): + grid[..., idx] = ivy.clip(grid[..., idx], 0, border - 1) + + masks = [] + for idx, border in enumerate(borders): + masks.append(ivy.bitwise_or(grid[..., idx] < -4, grid[..., idx] > border + 2)) + borders[idx] += 1 + + zeros_mask = masks[0] + for i in range(1, len(borders)): + zeros_mask = ivy.bitwise_or(zeros_mask, masks[i]) + + if grid[zeros_mask].shape[0] > 0: + grid[zeros_mask] = ivy.array(borders) + return grid + + +def bicubic_interp(x, t, alpha=-0.75): + n, h, w = t.shape + coeffs = [] + coeffs.append(ivy.reshape(cubic_conv2(alpha, t + 1), (n, 1, h, w))) + coeffs.append(ivy.reshape(cubic_conv1(alpha, t), (n, 1, h, w))) + coeffs.append(ivy.reshape(cubic_conv1(alpha, 1 - t), (n, 1, h, w))) + coeffs.append(ivy.reshape(cubic_conv2(alpha, 2 - t), (n, 1, h, w))) + return x[0] * coeffs[0] + x[1] * coeffs[1] + x[2] * coeffs[2] + x[3] * coeffs[3] + + +cubic_conv1 = lambda A, x: ((A + 2) * x - (A + 3)) * x * x + 1 +cubic_conv2 = lambda A, x: (((A * x) - (5 * A)) * x + (8 * A)) * x - (4 * A) + + +@with_supported_dtypes({"2.0.1 and below": ("float32", "float64")}, "torch") +@to_ivy_arrays_and_back +def grid_sample( + input, grid, mode="bilinear", padding_mode="zeros", align_corners=False +): + input_clone = ivy.copy_array(input) + grid_clone = ivy.copy_array(grid) + + if ivy.get_num_dims(input_clone) == 4: # sample from 2D images + n, c, h, w = input_clone.shape + n, to_h, to_w, gc = grid_clone.shape + + # Un-normalize 2D grid + if align_corners: # to range[0, size - 1] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) / 2) * (w - 1) + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) / 2) * (h - 1) + + elif not align_corners: # to range[0.5, size - 0.5] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) * w - 1) / 2 + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) * h - 1) / 2 + + batch_coor = ivy.reshape(ivy.arange(n), (-1, 1)) + batch_coor = ivy.repeat(batch_coor, to_h * to_w, axis=1) + batch_coor = ivy.reshape(batch_coor, (n, to_h, to_w)) + padding = [(0, 0) for _ in range(2)] + [(4, 4) for _ in range(2)] + input_clone = ivy.pad(input_clone, padding, mode="constant", constant_values=0) + + if mode == "bicubic": + grid_floor = ivy.floor(grid_clone) + distance = grid_clone - grid_floor + + tx, ty = distance[..., 0], distance[..., 1] + + grid_floor -= 1 + grid_floor = [ + grid_sample_padding( + grid_floor + i, padding_mode, align_corners, borders=[w, h] + ) + for i in range(4) + ] + + w_cubic = [ + ivy.astype(grid_floor[i][..., 0] + 4, ivy.int64) for i in range(4) + ] + h_cubic = [ + ivy.astype(grid_floor[i][..., 1] + 4, ivy.int64) for i in range(4) + ] + + coeffs = [ + bicubic_interp( + [ + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[0]], + (0, 3, 1, 2), + ), + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[1]], + (0, 3, 1, 2), + ), + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[2]], + (0, 3, 1, 2), + ), + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[3]], + (0, 3, 1, 2), + ), + ], + tx, + ) + for i in range(4) + ] + return bicubic_interp(coeffs, ty) + + else: + grid_clone = grid_sample_padding( + grid_clone, padding_mode, align_corners, borders=[w, h] + ) + + if mode == "bilinear": + grid_clone += 4 + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_h, to_w)) + + w0 = ivy.astype(ivy.floor(w_coor), ivy.int64) + h0 = ivy.astype(ivy.floor(h_coor), ivy.int64) + w1 = w0 + 1 + h1 = h0 + 1 + + v00 = ivy.permute_dims(input_clone[batch_coor, :, h0, w0], (0, 3, 1, 2)) + v01 = ivy.permute_dims(input_clone[batch_coor, :, h0, w1], (0, 3, 1, 2)) + v10 = ivy.permute_dims(input_clone[batch_coor, :, h1, w0], (0, 3, 1, 2)) + v11 = ivy.permute_dims(input_clone[batch_coor, :, h1, w1], (0, 3, 1, 2)) + + alpha = ivy.reshape(w_coor - w0, (n, 1, to_h, to_w)) + beta = ivy.reshape(h_coor - h0, (n, 1, to_h, to_w)) + + alpha = ivy.astype(alpha, ivy.float32) + beta = ivy.astype(beta, ivy.float32) + + v0 = v00 * (1 - alpha) + v01 * alpha + v1 = v10 * (1 - alpha) + v11 * alpha + + return v0 * (1 - beta) + v1 * beta + + elif mode == "nearest": + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_h, to_w)) + + w_coor = ivy.astype(ivy.round(w_coor), ivy.int64) + 4 + h_coor = ivy.astype(ivy.round(h_coor), ivy.int64) + 4 + return ivy.permute_dims( + input_clone[batch_coor, :, h_coor, w_coor], (0, 3, 1, 2) + ) + + else: + raise ivy.exceptions.IvyError(f"Not supported mode {mode}") + + elif ivy.get_num_dims(input_clone) == 5: # sample from 3D images + n, c, d, h, w = input_clone.shape + n, to_d, to_h, to_w, gc = grid_clone.shape + + # Un-normalize 3D grid + if align_corners: # to range[0, size - 1] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) / 2) * (w - 1) + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) / 2) * (h - 1) + grid_clone[..., 2] = ((grid_clone[..., 2] + 1) / 2) * (d - 1) + elif not align_corners: # to range[0.5, size - 0.5] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) * w - 1) / 2 + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) * h - 1) / 2 + grid_clone[..., 2] = ((grid_clone[..., 2] + 1) * d - 1) / 2 + + batch_coor = ivy.reshape(ivy.arange(n), (-1, 1)) + batch_coor = ivy.repeat(batch_coor, to_d * to_h * to_w, axis=1) + batch_coor = ivy.reshape(batch_coor, (n, to_d, to_h, to_w)) + padding = [(0, 0) for _ in range(2)] + [(3, 3) for _ in range(3)] + input_clone = ivy.pad(input_clone, padding, mode="constant", constant_values=0) + + grid_clone = grid_sample_padding( + grid_clone, padding_mode, align_corners, borders=[w, h, d] + ) + + if mode == "bilinear": + grid_clone += 3 + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_d, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_d, to_h, to_w)) + d_coor = ivy.reshape(grid_clone[..., 2], (n, to_d, to_h, to_w)) + + w0 = ivy.astype(ivy.floor(w_coor), ivy.int64) + h0 = ivy.astype(ivy.floor(h_coor), ivy.int64) + d0 = ivy.astype(ivy.floor(d_coor), ivy.int64) + w1 = w0 + 1 + h1 = h0 + 1 + d1 = d0 + 1 + + v000 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h0, w0], (0, 4, 1, 2, 3) + ) # tnw + v001 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h0, w1], (0, 4, 1, 2, 3) + ) # tne + v010 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h1, w0], (0, 4, 1, 2, 3) + ) # tsw + v011 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h1, w1], (0, 4, 1, 2, 3) + ) # tse + v100 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h0, w0], (0, 4, 1, 2, 3) + ) # bnw + v101 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h0, w1], (0, 4, 1, 2, 3) + ) # bne + v110 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h1, w0], (0, 4, 1, 2, 3) + ) # bsw + v111 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h1, w1], (0, 4, 1, 2, 3) + ) # bse + + alpha = ivy.reshape(w_coor - w0, (n, 1, to_d, to_h, to_w)) + beta = ivy.reshape(h_coor - h0, (n, 1, to_d, to_h, to_w)) + gamma = ivy.reshape(d_coor - d0, (n, 1, to_d, to_h, to_w)) + + alpha = ivy.astype(alpha, ivy.float32) + beta = ivy.astype(beta, ivy.float32) + gamma = ivy.astype(gamma, ivy.float32) + + v = (alpha * beta * gamma) * v111 + v += ((1 - alpha) * beta * gamma) * v110 + v += (alpha * (1 - beta) * gamma) * v101 + v += ((1 - alpha) * (1 - beta) * gamma) * v100 + + v += (alpha * beta * (1 - gamma)) * v011 + v += ((1 - alpha) * beta * (1 - gamma)) * v010 + v += (alpha * (1 - beta) * (1 - gamma)) * v001 + v += ((1 - alpha) * (1 - beta) * (1 - gamma)) * v000 + return v + + elif mode == "nearest": + ceil_mask = grid_clone % 1 == 0.5 + grid_clone[ceil_mask] = ivy.astype( + ivy.ceil(grid_clone[ceil_mask]), ivy.int64 + ) + + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_d, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_d, to_h, to_w)) + d_coor = ivy.reshape(grid_clone[..., 2], (n, to_d, to_h, to_w)) + + w_coor = ivy.astype(ivy.round(w_coor), ivy.int64) + 3 + h_coor = ivy.astype(ivy.round(h_coor), ivy.int64) + 3 + d_coor = ivy.astype(ivy.round(d_coor), ivy.int64) + 3 + return ivy.permute_dims( + input_clone[batch_coor, :, d_coor, h_coor, w_coor], (0, 4, 1, 2, 3) + ) + + elif mode == "bicubic": + raise ivy.exceptions.IvyError(f"Bicubic is not support in 3D grid sampling") + + else: + raise ivy.exceptions.IvyError(f"Not supported input shape {input_clone.shape}") + diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_nn/test_functional/test_vision_functions.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_nn/test_functional/test_vision_functions.py index 5dbf4104d5d95..9c34752b567e5 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_nn/test_functional/test_vision_functions.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_nn/test_functional/test_vision_functions.py @@ -112,6 +112,63 @@ def _pad_helper(draw): return dtype, input[0], padding, value, mode +@st.composite +def grid_sample_helper(draw, dtype, mode, mode_3d, padding_mode): + dtype = draw(dtype) + align_corners = draw(st.booleans()) + dims = draw(st.integers(4, 5)) + height = draw(helpers.ints(min_value=5, max_value=10)) + width = draw(helpers.ints(min_value=5, max_value=10)) + channels = draw(helpers.ints(min_value=1, max_value=3)) + + grid_h = draw(helpers.ints(min_value=2, max_value=4)) + grid_w = draw(helpers.ints(min_value=2, max_value=4)) + batch = draw(helpers.ints(min_value=1, max_value=5)) + + padding_mode = draw(st.sampled_from(padding_mode)) + if dims == 4: + mode = draw(st.sampled_from(mode)) + x = draw( + helpers.array_values( + dtype=dtype[0], + shape=[batch, channels, height, width], + min_value=-1, + max_value=1, + ) + ) + + grid = draw( + helpers.array_values( + dtype=dtype[0], + shape=[batch, grid_h, grid_w, 2], + min_value=-1, + max_value=1, + ) + ) + elif dims == 5: + mode = draw(st.sampled_from(mode_3d)) + depth = draw(helpers.ints(min_value=10, max_value=15)) + grid_d = draw(helpers.ints(min_value=5, max_value=10)) + x = draw( + helpers.array_values( + dtype=dtype[0], + shape=[batch, channels, depth, height, width], + min_value=-1, + max_value=1, + ) + ) + + grid = draw( + helpers.array_values( + dtype=dtype[0], + shape=[batch, grid_d, grid_h, grid_w, 3], + min_value=-1, + max_value=1, + ) + ) + return dtype, x, grid, mode, padding_mode, align_corners + + # --- Main --- # # ------------ # @@ -144,6 +201,40 @@ def test_torch_affine_grid( ) +@handle_frontend_test( + fn_tree="torch.nn.functional.grid_sample", + dtype_x_grid_modes=grid_sample_helper( + dtype=helpers.get_dtypes("valid", full=False), + mode=["nearest", "bilinear", "bicubic"], + mode_3d=["nearest", "bilinear"], + padding_mode=["border", "zeros", "reflection"], + ), +) +def test_torch_grid_sample( + *, + dtype_x_grid_modes, + on_device, + backend_fw, + fn_tree, + frontend, + test_flags, +): + dtype, x, grid, mode, padding_mode, align_corners = dtype_x_grid_modes + helpers.test_frontend_function( + input_dtypes=dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + input=x, + grid=grid, + mode=mode, + padding_mode=padding_mode, + align_corners=align_corners, + ) + + @handle_frontend_test( fn_tree="torch.nn.functional.interpolate", dtype_and_input_and_other=_interp_args( From b1f78efa1681b199cc6547e086ebd8dd35a66d48 Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Wed, 6 Sep 2023 12:57:45 +0300 Subject: [PATCH 022/127] refactor(docs): Reorganize docs (#23072) --- docs/index.rst | 8 ++++---- docs/overview/{background.rst => motivation.rst} | 8 ++++---- docs/overview/{background => motivation}/ml_explosion.rst | 0 .../{background => motivation}/standardization.rst | 0 docs/overview/{background => motivation}/why_unify.rst | 0 5 files changed, 8 insertions(+), 8 deletions(-) rename docs/overview/{background.rst => motivation.rst} (77%) rename docs/overview/{background => motivation}/ml_explosion.rst (100%) rename docs/overview/{background => motivation}/standardization.rst (100%) rename docs/overview/{background => motivation}/why_unify.rst (100%) diff --git a/docs/index.rst b/docs/index.rst index 08d0aea3db8c7..83925717fcd0f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,16 +10,14 @@ overview/get_started.rst Examples - overview/glossary.rst - overview/faq.rst .. toctree:: :hidden: :maxdepth: -1 - :caption: Users + :caption: Background - overview/background.rst + overview/motivation.rst overview/related_work.rst overview/extensions.rst @@ -32,6 +30,8 @@ overview/design.rst overview/contributing.rst overview/deep_dive.rst + overview/glossary.rst + overview/faq.rst .. toctree:: diff --git a/docs/overview/background.rst b/docs/overview/motivation.rst similarity index 77% rename from docs/overview/background.rst rename to docs/overview/motivation.rst index d203a51b18c52..d8ebea99d15f5 100644 --- a/docs/overview/background.rst +++ b/docs/overview/motivation.rst @@ -1,4 +1,4 @@ -Background +Motivation ========== | (a) :ref:`ML Explosion` @@ -15,6 +15,6 @@ Background :maxdepth: -1 :caption: Background - background/ml_explosion.rst - background/why_unify.rst - background/standardization.rst + motivation/ml_explosion.rst + motivation/why_unify.rst + motivation/standardization.rst diff --git a/docs/overview/background/ml_explosion.rst b/docs/overview/motivation/ml_explosion.rst similarity index 100% rename from docs/overview/background/ml_explosion.rst rename to docs/overview/motivation/ml_explosion.rst diff --git a/docs/overview/background/standardization.rst b/docs/overview/motivation/standardization.rst similarity index 100% rename from docs/overview/background/standardization.rst rename to docs/overview/motivation/standardization.rst diff --git a/docs/overview/background/why_unify.rst b/docs/overview/motivation/why_unify.rst similarity index 100% rename from docs/overview/background/why_unify.rst rename to docs/overview/motivation/why_unify.rst From 5783e7f228e794bf083df6e300ad0f807050226f Mon Sep 17 00:00:00 2001 From: Simranjeet Singh Date: Wed, 6 Sep 2023 16:38:10 +0530 Subject: [PATCH 023/127] feat(functional API): add general_inner_product and its test (#22610) --- .../array/experimental/linear_algebra.py | 56 ++++++++++ ivy/data_classes/container/linear_algebra.py | 103 ++++++++++++++++++ .../ivy/experimental/linear_algebra.py | 87 +++++++++++++++ .../test_core/test_linalg.py | 39 +++++++ 4 files changed, 285 insertions(+) diff --git a/ivy/data_classes/array/experimental/linear_algebra.py b/ivy/data_classes/array/experimental/linear_algebra.py index ffc50ed222021..75c56cdf9c9da 100644 --- a/ivy/data_classes/array/experimental/linear_algebra.py +++ b/ivy/data_classes/array/experimental/linear_algebra.py @@ -728,3 +728,59 @@ def dot( ivy.array([[-15.28]]) """ return ivy.dot(self._data, b, out=out) + + def general_inner_product( + self: Union[ivy.Array, ivy.NativeArray], + b: Union[ivy.Array, ivy.NativeArray], + n_modes: Optional[int] = None, + /, + *, + out: Optional[ivy.Array] = None, + ) -> ivy.Array: + """ + ivy.Array instance method variant of ivy.general_inner_product. This method + simply wraps the function, and so the docstring for ivy.general_inner_product + also applies to this method with minimal changes. + + Parameters + ---------- + self + first input tensor. + b + second input tensor. + n_modes + int, default is None. If None, the traditional inner product is returned + (i.e. a float) otherwise, the product between the `n_modes` last modes of + `a` and the `n_modes` first modes of `b` is returned. The resulting tensor's + order is `len(a) - n_modes`. + out + Optional output array. If provided, the output array to store the result. + + Returns + ------- + The inner product of the input arrays. + + Examples + -------- + With :class:`ivy.Array` inputs: + + >>> a = ivy.array([1, 2, 3]) + >>> b = ivy.array([4, 5, 6]) + >>> result = a.general_inner_product(b, n_modes=1) + >>> print(result) + ivy.array(32) + + >>> a = ivy.array([1, 2]) + >>> b = ivy.array([4, 5]) + >>> result = a.general_inner_product(b) + >>> print(result) + ivy.array(14) + + >>> a = ivy.array([[1, 1], [1, 1]]) + >>> b = ivy.array([[1, 2, 3, 4],[1, 1, 1, 1]]) + >>> result = a.general_inner_product(b, n_modes=1) + >>> print(result) + ivy.array([[2, 3, 4, 5], + [2, 3, 4, 5]]) + """ + return ivy.general_inner_product(self, b, n_modes, out=out) diff --git a/ivy/data_classes/container/linear_algebra.py b/ivy/data_classes/container/linear_algebra.py index e68d1e92d86b6..c2aa9d6f86905 100644 --- a/ivy/data_classes/container/linear_algebra.py +++ b/ivy/data_classes/container/linear_algebra.py @@ -3313,3 +3313,106 @@ def vander( increasing=increasing, out=out, ) + + @staticmethod + def static_general_inner_product( + x1: Union[ivy.Container, ivy.Array, ivy.NativeArray], + x2: Union[ivy.Container, ivy.Array, ivy.NativeArray], + n_modes: Optional[Union[int, ivy.Container]] = None, + /, + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container static method variant of ivy.general_inner_product. This method + simply wraps the function, and so the docstring for ivy.general_inner_product + also applies to this method with minimal changes. + + Parameters + ---------- + x1 + First input container containing input array. + x2 + First input container containing input array. + n_modes + int, default is None. If None, the traditional inner product is returned + (i.e. a float) otherwise, the product between the `n_modes` last modes of + `x1` and the `n_modes` first modes of `x2` is returned. The resulting + tensor's order is `len(x1) - n_modes`. + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If True, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``True``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + out + Alternate output container in which to place the result. + The default is None. + + Returns + ------- + ret + Container including the inner product tensor. + + Examples + -------- + >>> x = ivy.Container( + a=ivy.reshape(ivy.arange(4), (2, 2)), + b=ivy.reshape(ivy.arange(8), (2, 4)), + ) + >>> ivy.Container.general_inner_product(x, 1) + { + a: ivy.array(6), + b: ivy.array(28) + } + """ + return ContainerBase.cont_multi_map_in_function( + "general_inner_product", + x1, + x2, + n_modes, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) + + def general_inner_product( + self: Union[ivy.Container, ivy.Array, ivy.NativeArray], + x2: Union[ivy.Container, ivy.Array, ivy.NativeArray], + n_modes: Optional[Union[int, ivy.Container]] = None, + /, + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.general_inner_product. + + This method simply wraps the function, and so the docstring for + ivy.general_inner_product also applies to this method with + minimal changes. + """ + return self.static_general_inner_product( + self, + x2, + n_modes, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) diff --git a/ivy/functional/ivy/experimental/linear_algebra.py b/ivy/functional/ivy/experimental/linear_algebra.py index 405ad8bc46e3c..d4a511c30353a 100644 --- a/ivy/functional/ivy/experimental/linear_algebra.py +++ b/ivy/functional/ivy/experimental/linear_algebra.py @@ -1666,3 +1666,90 @@ def dot( ivy.array([[-15.28]]) """ return current_backend(a, b).dot(a, b, out=out) + + +@handle_exceptions +@handle_nestable +@handle_array_like_without_promotion +@inputs_to_ivy_arrays +@handle_array_function +@handle_device_shifting +def general_inner_product( + a: Union[ivy.Array, ivy.NativeArray], + b: Union[ivy.Array, ivy.NativeArray], + n_modes: Optional[int] = None, + /, + *, + out: Optional[ivy.Array] = None, +) -> ivy.Array: + """ + Generalised inner products between tensors. + + Takes the inner product between the last (respectively first) + `n_modes` of `a` (respectively `b`) + + Parameters + ---------- + a + first input tensor. + b + second input tensor. + n_modes + int, default is None. If None, the traditional inner product is returned + (i.e. a float) otherwise, the product between the `n_modes` last modes of + `a` and the `n_modes` first modes of `b` is returned. The resulting tensor's + order is `len(a) - n_modes`. + out + Optional output array. If provided, the output array to store the result. + + Returns + ------- + The inner product of the input arrays. + + Examples + -------- + With :class:`ivy.Array` inputs: + + >>> a = ivy.array([1, 2, 3]) + >>> b = ivy.array([4, 5, 6]) + >>> result = ivy.general_inner_product(a, b, n_modes=1) + >>> print(result) + ivy.array(32) + + >>> a = ivy.array([1, 2]) + >>> b = ivy.array([4, 5]) + >>> result = ivy.general_inner_product(a, b) + >>> print(result) + ivy.array(14) + + >>> a = ivy.array([[1, 1], [1, 1]]) + >>> b = ivy.array([[1, 2, 3, 4],[1, 1, 1, 1]]) + >>> result = ivy.general_inner_product(a, b, n_modes=1) + >>> print(result) + ivy.array([[2, 3, 4, 5], + [2, 3, 4, 5]]) + """ + shape_a = a.shape + shape_b = b.shape + if n_modes is None: + if shape_a != shape_b: + raise ValueError( + "Taking a generalised product between two tensors without specifying" + " common modes is equivalent to taking inner product.This requires" + f" a.shape == b.shape.However, got shapes {a.shape} and {b.shape}" + ) + return ivy.sum(ivy.multiply(a, b), out=out) + + common_modes = shape_a[len(shape_a) - n_modes :] + if common_modes != shape_b[:n_modes]: + raise ValueError( + f"Incorrect shapes for inner product along {n_modes} common modes." + f"Shapes {shape_a.shape} and {shape_b.shape}" + ) + + common_size = int(ivy.prod(common_modes)) if len(common_modes) != 0 else 0 + output_shape = shape_a[:-n_modes] + shape_b[n_modes:] + inner_product = ivy.dot( + ivy.reshape(a, (-1, common_size)), ivy.reshape(b, (common_size, -1)) + ) + return ivy.reshape(inner_product, output_shape, out=out) diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_linalg.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_linalg.py index 80e0317124486..b1b01c92b0a53 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_linalg.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_linalg.py @@ -233,6 +233,25 @@ def _generate_eigh_tridiagonal_args(draw): return dtype, alpha, beta, eigvals_only, select, select_range, tol +@st.composite +def _generate_general_inner_product_args(draw): + dim = draw(st.integers(min_value=1, max_value=3)) + x_dtype, x = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + shape=(dim, dim), + min_value=1, + max_value=10.0, + num_arrays=2, + shared_dtype=True, + allow_nan=False, + ) + ) + max_value = dim - 1 if dim > 1 else dim + n_modes = draw(st.integers(min_value=1, max_value=max_value) | st.just(None)) + return x_dtype, x, n_modes + + # multi_dot @st.composite def _generate_multi_dot_dtype_and_arrays(draw): @@ -995,6 +1014,26 @@ def test_eigvals(dtype_x, test_flags, backend_fw, fn_name): ) +@handle_test( + fn_tree="functional.ivy.experimental.general_inner_product", + data=_generate_general_inner_product_args(), +) +def test_general_inner_product(*, data, test_flags, backend_fw, fn_name, on_device): + input_dtypes, x, n_modes = data + helpers.test_function( + backend_to_test=backend_fw, + test_flags=test_flags, + fn_name=fn_name, + on_device=on_device, + rtol_=1e-1, + atol_=1e-1, + input_dtypes=input_dtypes, + a=x[0], + b=x[1], + n_modes=n_modes, + ) + + @handle_test( fn_tree="functional.ivy.experimental.initialize_tucker", data=_initialize_tucker_data(), From 1688f0776797a084d967793b3b9158bcf13fddf0 Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:39:14 +0530 Subject: [PATCH 024/127] fix(ivy): updated order of except blocks in handle_exceotions (#23121) --- ivy/utils/exceptions.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ivy/utils/exceptions.py b/ivy/utils/exceptions.py index 2d77f18ae6de9..ae7691b05ace2 100644 --- a/ivy/utils/exceptions.py +++ b/ivy/utils/exceptions.py @@ -391,14 +391,14 @@ def _handle_exceptions(*args, **kwargs): except InvalidBackendException as e: _configure_stack_trace(e.__traceback__) raise e - except (Exception, IvyBackendException) as e: + except InplaceUpdateException as e: _configure_stack_trace(e.__traceback__) - raise ivy.utils.exceptions.IvyBackendException( + raise ivy.utils.exceptions.InplaceUpdateException( fn.__name__, str(e), include_backend=True ) - except InplaceUpdateException as e: + except (Exception, IvyBackendException) as e: _configure_stack_trace(e.__traceback__) - raise ivy.utils.exceptions.InplaceUpdateException( + raise ivy.utils.exceptions.IvyBackendException( fn.__name__, str(e), include_backend=True ) From 9043a9222cbb2e936a77408dfbab23c60f7b9d9d Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:50:13 +0530 Subject: [PATCH 025/127] refactor(ivy): updated `with_backend` to avoid throwing duplicate warnings (#23122) --- ivy/utils/backend/handler.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ivy/utils/backend/handler.py b/ivy/utils/backend/handler.py index 1442205401e99..5fadb1f95f1c6 100644 --- a/ivy/utils/backend/handler.py +++ b/ivy/utils/backend/handler.py @@ -626,8 +626,6 @@ def with_backend(backend: str, cached: bool = True): # Use already compiled object if cached and backend in compiled_backends.keys(): cached_backend = compiled_backends[backend][-1] - if not cached_backend.native_inplace_support: - _handle_inplace_mode() return cached_backend with _importlib.LocalIvyImporter(): ivy_pack = _importlib._import_module("ivy") @@ -657,5 +655,7 @@ def with_backend(backend: str, cached: bool = True): compiled_backends[backend].append(ivy_pack) except KeyError: compiled_backends[backend] = [ivy_pack] - _handle_inplace_mode() + if ivy.backend != backend: + # to avoid warning users when not using set_backend with ivy.Array.__repr__ + _handle_inplace_mode() return ivy_pack From d579982d3153b76ee72d5af9948c96db5751252d Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:51:15 +0530 Subject: [PATCH 026/127] refactor: removed the redundant test_set_framework (#23123) --- .../test_ivy/test_functional/test_core/test_general.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ivy_tests/test_ivy/test_functional/test_core/test_general.py b/ivy_tests/test_ivy/test_functional/test_core/test_general.py index 7f22a60bf9d39..65a1114e4c653 100644 --- a/ivy_tests/test_ivy/test_functional/test_core/test_general.py +++ b/ivy_tests/test_ivy/test_functional/test_core/test_general.py @@ -1621,12 +1621,6 @@ def test_scatter_nd(x, reduction, test_flags, backend_fw, fn_name, on_device): # ------# -@given(fw_str=st.sampled_from(["numpy", "jax", "torch", "tensorflow"])) -def test_set_framework(fw_str): - ivy.set_backend(fw_str) - ivy.previous_backend() - - @pytest.mark.parametrize("mode", ["lenient", "strict"]) def test_set_inplace_mode(mode): ivy.set_inplace_mode(mode) From 8b6d96ddfa4e2efd1ef47002844728c35ff1acef Mon Sep 17 00:00:00 2001 From: Mahmoud Ashraf Date: Wed, 6 Sep 2023 14:32:56 +0300 Subject: [PATCH 027/127] docs: add documentation to precise mode (#22762) Co-authored-by: Kareem Morsy --- docs/overview/deep_dive/data_types.rst | 38 ++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/docs/overview/deep_dive/data_types.rst b/docs/overview/deep_dive/data_types.rst index aecaebd30e9b2..f95c394cb27d7 100644 --- a/docs/overview/deep_dive/data_types.rst +++ b/docs/overview/deep_dive/data_types.rst @@ -95,8 +95,7 @@ Data Type Promotion In order to ensure that the same data type is always returned when operations are performed on arrays with different data types, regardless of which backend framework is set, Ivy has it's own set of data type promotion rules and corresponding functions. These rules build directly on top of the `rules `_ outlined in the `Array API Standard`_. -The rules are simple: all data type promotions in Ivy should adhere to this `promotion table `_, -which is the union of the Array API Standard `promotion table `_ and an extra `promotion table `_. +The rules are simple: all data type promotions in Ivy should adhere a promotion table that extends Array API Standard `promotion table `_ using this `promotion table `_, and one of two extra `promotion tables `_ depending on precision mode that will be explained in the following section. In order to ensure adherence to this promotion table, many backend functions make use of the functions `ivy.promote_types `_, `ivy.type_promote_arrays `_, or `ivy.promote_types_of_inputs `_. These functions: promote data types in the inputs and return the new data types, promote the data types of the arrays in the input and return new arrays, and promote the data types of the numeric or array values inputs and return new type promoted values, respectively. @@ -182,10 +181,39 @@ Whenever the user defines data with a specific data type, they expect a certain The user expects specific behaviour and memory constraints whenever they specify and use concrete data types, and those decisions should be respected. Therefore, Ivy does not upcast specific values to improve the stability or precision of the computation. +Precise Mode +~~~~~~~~~~~~~~~ -Arguments in other Functions ----------------------------- +There are cases that arise in mixed promotion (Integer and Float, Complex and Float) that aren't covered by the Array API Standard promotion table, and depending on each use case, +the mixed promotion rules differ as observed in different frameworks, for example Tensorflow leaves integer/floating mixed promotion undefined to make behavior utterly predictable (at some cost to user convenience), while Numpy avoids precision loss at all costs even if that meant casting the arrays to wider-than-necessary dtypes + +Precise Promotion Table +""""""""""""""""""""""""" + +This table focuses on numerical accuracy at the cost of a higher memory footprint. A 16-bit signed or unsigned integer cannot be represented at full precision by a 16-bit float, which has only 10 bits of mantissa. Therefore, it might make sense to promote integers to floats represented by twice the number of bits. There are two disadvantages of this approach: + +#. It still leaves int64 and uint64 promotion undefined, because there is no standard floating point type with enough bits of mantissa to represent their full range of values. We could relax the precision constraint and use ``float64`` as the upper bound for this case. +#. Some operations result in types that are much wider than necessary; for example mixed operations between ``uint16`` and float16 would promote all the way to ``float64``, which is not ideal. + +.. code-block:: python + + with ivy.PreciseMode(True): + print(ivy.promote_types("float32","int32")) + # float64 +Non-Precise Promotion Table +""""""""""""""""""""""""""""""""" +The advantage of this approach is that, outside unsigned ints, it avoids all wider-than-necessary promotions: you can never get an f64 output without a 64-bit input, and you can never get an ``float32`` output without a 32-bit input: this results in convenient semantics for working on accelerators while avoiding unwanted 64-bit values. This feature of giving primacy to floating point types resembles the type promotion behavior of PyTorch. +the disadvantage of this approach is that mixed float/integer promotion is very prone to precision loss: for example, ``int64`` (with a maximum value of 9.2*10^18 can be promoted to ``float16`` (with a maximum value of 6.5*10^4, meaning most representable values will become inf, but we are fine accepting potential loss of precision (but not loss of magnitude) in mixed type promotion which satisfies most of the use cases in deep learning scenarios. + +.. code-block:: python + + with ivy.PreciseMode(False): + print(ivy.promote_types("float32","int32")) + # float32 + +Arguments in other Functions +------------------- All ``dtype`` arguments are keyword-only. All creation functions include the ``dtype`` argument, for specifying the data type of the created array. Some other non-creation functions also support the ``dtype`` argument, such as :func:`ivy.prod` and :func:`ivy.sum`, but most functions do not include it. @@ -653,4 +681,4 @@ If you have any questions, please feel free to reach out on `discord`_ in the `d \ No newline at end of file + From 564ac849139ec37f13d1d4a7300bd1403ed03ae5 Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Wed, 6 Sep 2023 17:26:51 +0530 Subject: [PATCH 028/127] fix(ivy): uncommented handle_device_shifting from inplace update (#23124) --- ivy/functional/ivy/general.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/functional/ivy/general.py b/ivy/functional/ivy/general.py index 8df26f4055af4..284418141fe1c 100644 --- a/ivy/functional/ivy/general.py +++ b/ivy/functional/ivy/general.py @@ -2940,7 +2940,7 @@ def _broadcast_to(input, target_shape): @handle_nestable @inputs_to_ivy_arrays @handle_array_function -# @handle_device_shifting +@handle_device_shifting def inplace_update( x: Union[ivy.Array, ivy.NativeArray], val: Union[ivy.Array, ivy.NativeArray], From b5213d6ce44ee2c4362e69c01ce8e55c29646816 Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Wed, 6 Sep 2023 15:31:24 +0300 Subject: [PATCH 029/127] docs: documentation restructuring (#23130) --- docs/compiler/setting_up.rst | 35 ------ docs/index.rst | 30 +++-- .../deep_dive/ivy_frontends_tests.rst | 3 +- docs/overview/extensions.rst | 15 --- .../overview/extensions/applied_libraries.rst | 113 ------------------ docs/overview/get_started.rst | 39 +++++- docs/overview/one_liners.rst | 29 +++++ .../one_liners/compile.rst} | 4 +- .../one_liners/transpile.rst} | 6 +- 9 files changed, 95 insertions(+), 179 deletions(-) delete mode 100644 docs/compiler/setting_up.rst delete mode 100644 docs/overview/extensions.rst delete mode 100644 docs/overview/extensions/applied_libraries.rst create mode 100644 docs/overview/one_liners.rst rename docs/{compiler/compiler.rst => overview/one_liners/compile.rst} (99%) rename docs/{compiler/transpiler.rst => overview/one_liners/transpile.rst} (98%) diff --git a/docs/compiler/setting_up.rst b/docs/compiler/setting_up.rst deleted file mode 100644 index 8fb9a17bbcb2c..0000000000000 --- a/docs/compiler/setting_up.rst +++ /dev/null @@ -1,35 +0,0 @@ -Setting Up -========== - -To use Ivy's compiler and transpiler, you'll need an **API key**. We are starting to -grant pilot access to certain users, so you can `join the waitlist `_ -if you want to get one! - -Ivy Folder ----------- - -When importing Ivy for the first time, a ``.ivy`` folder will be created in your -working directory. If you want to keep this folder in a different location, -you can set an ``IVY_ROOT`` environment variable with the path of your ``.ivy`` folder. - -Setting Up the API key ----------------------- - -Once the ``.ivy`` folder has been created (either manually or automatically by -importing Ivy), you will have to paste your API key as the content of the ``key.pem`` file. -For reference, this would be equivalent to: - -.. code-block:: console - - echo -n API_KEY > .ivy/key.pem - -Issues and Questions --------------------- - -If you find any issue or bug while using the compiler and/or the transpiler, please -raise an `issue in GitHub `_ and add the ``compiler`` -or the ``transpiler`` label accordingly. A member of the team will get back to you ASAP! - -Otherwise, if you haven't found a bug but want to ask a question, suggest something, or get help -from the team directly, feel free to open a new post at the ``pilot-access`` forum in -`Ivy's discord server! `_ \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index 83925717fcd0f..e88f08969b560 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,13 +3,31 @@ .. include:: ../README.md :parser: myst_parser.sphinx_ + +.. toctree:: + :hidden: + :maxdepth: -1 + + Home + + .. toctree:: :hidden: :maxdepth: -1 - :caption: Overview + :caption: The Basics overview/get_started.rst - Examples + demos/quickstart.ipynb + + +.. toctree:: + :hidden: + :maxdepth: -1 + :caption: Demos + + demos/learn_the_basics.rst + demos/guides.rst + demos/examples_and_demos.rst .. toctree:: @@ -19,7 +37,6 @@ overview/motivation.rst overview/related_work.rst - overview/extensions.rst .. toctree:: @@ -37,17 +54,14 @@ .. toctree:: :hidden: :maxdepth: -1 - :caption: Compiling and Transpiling + :caption: API Reference - compiler/setting_up.rst - compiler/compiler.rst - compiler/transpiler.rst + overview/one_liners.rst .. autosummary:: :toctree: docs/functional :template: top_functional_toc.rst - :caption: API Reference :recursive: :hide-table: diff --git a/docs/overview/deep_dive/ivy_frontends_tests.rst b/docs/overview/deep_dive/ivy_frontends_tests.rst index 5b27829d9e5ff..c3333472e2833 100644 --- a/docs/overview/deep_dive/ivy_frontends_tests.rst +++ b/docs/overview/deep_dive/ivy_frontends_tests.rst @@ -11,7 +11,6 @@ Ivy Frontend Tests .. _`Ivy Tests`: https://unify.ai/docs/ivy/overview/deep_dive/ivy_tests.html .. _`Function Testing Helpers`: https://github.com/unifyai/ivy/blob/bf0becd459004ae6cffeb3c38c02c94eab5b7721/ivy_tests/test_ivy/helpers/function_testing.py .. _`CI Pipeline`: https://unify.ai/docs/ivy/overview/deep_dive/continuous_integration.html -.. _`setting up`: https://unify.ai/docs/ivy/compiler/setting_up.html#setting-up-testing Introduction @@ -802,7 +801,7 @@ The CI Pipeline runs the entire collection of Frontend Tests for the frontend th You will need to make sure the Frontend Test is passing for each Ivy Frontend function you introduce/modify. If a test fails on the CI, you can see details about the failure under `Details -> Run Frontend Tests` as shown in `CI Pipeline`_. -You can also run the tests locally before making a PR. See the relevant `setting up`_ section for instructions on how to do so. +You can also run the tests locally before making a PR. See the relevant :ref:`Setting Up Testing in PyCharm` section for instructions on how to do so. Frontend Framework Testing Configuration ---------------------------------------- diff --git a/docs/overview/extensions.rst b/docs/overview/extensions.rst deleted file mode 100644 index dce2922e795d8..0000000000000 --- a/docs/overview/extensions.rst +++ /dev/null @@ -1,15 +0,0 @@ -Extensions -========== - -| (a) :ref:`Applied Libraries` ✅ -| Ivy libraries in mechanics, vision, robotics, memory and other areas -| -| (b) **Builder [page coming soon!]** ✅ -| :code:`ivy.Trainer`, :code:`ivy.Dataset`, :code:`ivy.Dataloader` and other helpful classes and functions for creating training workflows in only a few lines of code - -.. toctree:: - :hidden: - :maxdepth: -1 - :caption: Extensions - - extensions/applied_libraries.rst diff --git a/docs/overview/extensions/applied_libraries.rst b/docs/overview/extensions/applied_libraries.rst deleted file mode 100644 index 3798463466737..0000000000000 --- a/docs/overview/extensions/applied_libraries.rst +++ /dev/null @@ -1,113 +0,0 @@ -Applied Libraries -================= - -In other parts of the overview, we have focused on the the Ivy framework itself. -Here, we explore how Ivy has been used to create a suite of libraries in various fields related to ML. -Aside from being useful tools for ML developers in any framework, these libraries are a perfect showcase of what is possible using Ivy! - -Currently, there are Ivy libraries for: Mechanics, 3D Vision, Robotics, Gym Environments, and Differentiable Memory. -We run through some demos from these libraries now, and encourage you to pip install the libraries and run the demos yourself if you like what you see! - -Ivy Mechanics -------------- - -`Ivy Mechanics `_ provides functions for conversions of orientation, pose, and positional representations, as well as transformations, and some other more applied functions. -The orientation module is the largest, with conversions to and from all Euler conventions, quaternions, rotation matrices, rotation vectors, and axis-angle representations. - -For example, this demo shows the use of :code:`ivy_mech.target_facing_rotation_matrix`: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_mech/demo_a.gif?raw=true - :align: center - :width: 100% - -This demo shows the use of :code:`ivy_mech.polar_to_cartesian_coords`: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_mech/demo_b.gif?raw=true - :align: center - :width: 100% - -Ivy Vision ----------- - -`Ivy Vision `_ focuses predominantly on 3D vision, with functions for image projections, co-ordinate frame transformation, forward warping, inverse warping, optical flow, depth generation, voxel grids, point clouds, and others. - -For example, this demo shows the use of :code:`ivy_vision.coords_to_voxel_grid`: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_vision/voxel_grid_demo.gif?raw=true - :align: center - :width: 100% - -This demo shows the use of :code:`ivy_vision.render_pixel_coords`: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_vision/point_render_demo.gif?raw=true - :align: center - :width: 100% - -This demo shows Neural Radiance Fields (NeRF): - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_vision/nerf_demo.gif?raw=true - :align: center - :width: 100% - - -Ivy Robot ---------- - -`Ivy Robot `_ provides functions and classes for gradient-based trajectory optimization and motion planning. -Classes are provided both for mobile robots and robot manipulators. - -For example, this demo shows the use of :code:`ivy_robot.sample_spline_path` and :code:`ivy_robot.RigidMobile.sample_body` for gradient-based motion planning of a drone. - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_robot/demo_a.gif?raw=true - :align: center - :width: 100% - -This demo shows the use of :code:`ivy_robot.sample_spline_path` and :code:`ivy_robot.Manipulator.sample_links` for gradient-based motion planning of a robot manipulator: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_robot/demo_b.gif?raw=true - :align: center - :width: 100% - -Ivy Gym -------- - -`Ivy Gym `_ provides differentiable implementations of the control environments provided by OpenAI Gym, as well as a new “Swimmer” task which illustrates the simplicity of creating new tasks. -The differentiable nature of the environments means that the cumulative reward can be directly optimized in a supervised manner, without the need for reinforcement learning. -Ivy Gym opens the door for intersectional research between supervised learning, trajectory optimization, and reinforcement learning. - -For example, we show demos of each of the environments :code:`cartpole`, :code:`mountain_car`, :code:`pendulum`, :code:`reacher`, and :code:`swimmer` solved using direct trajectory optimization below. -We optimize for a specific starting state of the environment: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_gym/demo_a.gif?raw=true - :align: center - :width: 100% - -We show demos of each of the environments :code:`cartpole`, :code:`mountain_car`, :code:`pendulum`, :code:`reacher`, and :code:`swimmer` solved using supervised learning via a policy network. -We train a policy which is conditioned on the environment state, and the starting state is then randomized between training steps: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_gym/demo_b.gif?raw=true - :align: center - :width: 100% - -Ivy Memory ----------- - -`Ivy Memory `_ provides differentiable memory modules, including learnt modules such as Neural Turing Machines (NTM), but also parameter-free modules such as End-to-End Egospheric Spatial Memory (ESM). - -For example, in this demo we learn to copy a sequence using :code:`ivy_memory.NTM`: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_memory/demo_a.gif?raw=true - :align: center - :width: 100% - -In this demo we create an egocentric 3D map of a room using :code:`ivy_memory.ESM`: - -.. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/ivy_memory/demo_b.gif?raw=true - :align: center - :width: 100% - -**Round Up** - -Hopefully, this has given you an idea of what’s possible using Ivy’s collection of applied libraries, and more importantly, given you inspiration for what’s possible using Ivy 🙂 - -Please reach out on `discord `_ if you have any questions! diff --git a/docs/overview/get_started.rst b/docs/overview/get_started.rst index 5e850df91bb20..30e274ec9e26f 100644 --- a/docs/overview/get_started.rst +++ b/docs/overview/get_started.rst @@ -4,7 +4,7 @@ Get Started .. If you want to use **Ivy's compiler and transpiler**, make sure to follow the - `setting up instructions for the API key `_ + :ref:`setting up instructions for the API key ` after installing Ivy! @@ -54,3 +54,40 @@ If you are planning to contribute, you want to run the tests, or you are looking for more in-depth instructions, it's probably best to check out the `Contributing - Setting Up `_ page, where OS-specific and IDE-specific instructions and video tutorials to install Ivy are available! + + +Ivy's compiler and transpiler +----------------------------- + +To use Ivy's compiler and transpiler, you'll need an **API key**. We are starting to +grant pilot access to certain users, so you can `join the waitlist `_ +if you want to get one! + +Ivy Folder +~~~~~~~~~~ + +When importing Ivy for the first time, a ``.ivy`` folder will be created in your +working directory. If you want to keep this folder in a different location, +you can set an ``IVY_ROOT`` environment variable with the path of your ``.ivy`` folder. + +Setting Up the API key +~~~~~~~~~~~~~~~~~~~~~~ + +Once the ``.ivy`` folder has been created (either manually or automatically by +importing Ivy), you will have to paste your API key as the content of the ``key.pem`` file. +For reference, this would be equivalent to: + +.. code-block:: bash + + echo -n API_KEY > .ivy/key.pem + +Issues and Questions +~~~~~~~~~~~~~~~~~~~~ + +If you find any issue or bug while using the compiler and/or the transpiler, please +raise an `issue in GitHub `_ and add the ``compiler`` +or the ``transpiler`` label accordingly. A member of the team will get back to you ASAP! + +Otherwise, if you haven't found a bug but want to ask a question, suggest something, or get help +from the team directly, feel free to open a new post at the ``pilot-access`` forum in +`Ivy's discord server! `_ diff --git a/docs/overview/one_liners.rst b/docs/overview/one_liners.rst new file mode 100644 index 0000000000000..98f59695ffcc4 --- /dev/null +++ b/docs/overview/one_liners.rst @@ -0,0 +1,29 @@ +One liners +---------- + +.. grid:: 1 1 3 3 + :gutter: 4 + + .. grid-item-card:: ``ivy.compile()`` + :link: one_liners/compile.rst + + Compiles a ``Callable`` or set of them into an Ivy graph. + + .. grid-item-card:: ``ivy.transpile()`` + :link: one_liners/transpile.rst + + Transpiles a ``Callable`` or set of them from a ``source`` framework to another + framework. + + .. grid-item-card:: ``ivy.unify()`` + :link: one_liners/transpile.rst + + Transpiles an object into Ivy code. It's an alias to + ``ivy.transpile(..., to="ivy", ...)`` + +.. toctree:: + :hidden: + :maxdepth: -1 + + one_liners/compile.rst + one_liners/transpile.rst diff --git a/docs/compiler/compiler.rst b/docs/overview/one_liners/compile.rst similarity index 99% rename from docs/compiler/compiler.rst rename to docs/overview/one_liners/compile.rst index f6f0b5ab2a9e4..2ac7cb461c829 100644 --- a/docs/compiler/compiler.rst +++ b/docs/overview/one_liners/compile.rst @@ -1,5 +1,5 @@ -Graph Compiler -============== +``ivy.compile()`` +================= .. diff --git a/docs/compiler/transpiler.rst b/docs/overview/one_liners/transpile.rst similarity index 98% rename from docs/compiler/transpiler.rst rename to docs/overview/one_liners/transpile.rst index 92e55711364b9..d24c631997fd0 100644 --- a/docs/compiler/transpiler.rst +++ b/docs/overview/one_liners/transpile.rst @@ -1,5 +1,5 @@ -Transpiler -========== +``ivy.transpile`` / ``ivy.unify`` +================================= .. @@ -241,7 +241,7 @@ still working on some rough edges. These include: the inference to be correct. Keep in mind that the transpiler uses the graph compiler under the hood, so the -`sharp bits of the compiler `_ +`sharp bits of the compiler `_ apply here as well! Examples From 8b3e357490649f48e9a1247a987023c175849fd6 Mon Sep 17 00:00:00 2001 From: Eddy Oyieko <67474838+mobley-trent@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:43:37 +0300 Subject: [PATCH 030/127] `jax.numpy.ifft` frontend (#23142) --- ivy/functional/frontends/jax/numpy/fft.py | 7 ++++ .../test_jax/test_numpy/test_fft.py | 42 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/ivy/functional/frontends/jax/numpy/fft.py b/ivy/functional/frontends/jax/numpy/fft.py index 7a62b524d67e8..16d9cb97e67b2 100644 --- a/ivy/functional/frontends/jax/numpy/fft.py +++ b/ivy/functional/frontends/jax/numpy/fft.py @@ -27,3 +27,10 @@ def fftshift(x, axes=None, name=None): roll = ivy.roll(x, shifts, axis=axes) return roll + + +@to_ivy_arrays_and_back +def ifft(a, n=None, axis=-1, norm=None): + if norm is None: + norm = "backward" + return ivy.ifft(a, axis, norm=norm, n=n) diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py index ed316ca5a544e..7fd9f00f3f135 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py @@ -70,3 +70,45 @@ def test_jax_numpy_fftshift( x=arr[0], axes=None, ) + + +# ifft +@handle_frontend_test( + fn_tree="jax.numpy.fft.ifft", + dtype_values_axis=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("complex"), + num_arrays=1, + min_value=-1e5, + max_value=1e5, + min_num_dims=1, + max_num_dims=5, + min_dim_size=1, + max_dim_size=5, + allow_inf=False, + large_abs_safety_factor=2.5, + small_abs_safety_factor=2.5, + safety_factor_scale="log", + valid_axis=True, + force_int_axis=True, + ), + n=st.integers(min_value=2, max_value=10), + norm=st.sampled_from(["backward", "ortho", "forward", None]), +) +def test_jax_numpy_ifft( + dtype_values_axis, n, norm, frontend, backend_fw, test_flags, fn_tree, on_device +): + dtype, values, axis = dtype_values_axis + helpers.test_frontend_function( + input_dtypes=dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + a=values[0], + n=n, + axis=axis, + norm=norm, + atol=1e-02, + rtol=1e-02, + ) From 0cb630cc2356469b66d5a938dd4e7551211a0c1d Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Wed, 6 Sep 2023 19:32:30 +0530 Subject: [PATCH 031/127] fix(ivy): updated the as_native_dev implementation for torch to account for the availability of mps (#23147) --- ivy/functional/backends/torch/device.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/functional/backends/torch/device.py b/ivy/functional/backends/torch/device.py index 0a0832e371615..ebf677c06d728 100644 --- a/ivy/functional/backends/torch/device.py +++ b/ivy/functional/backends/torch/device.py @@ -74,7 +74,7 @@ def as_native_dev( ) -> Optional[torch.device]: if not isinstance(device, str): return device - if device == "mps": + if torch.backends.mps.is_available(): return torch.device(ivy.Device(device).replace("gpu", "mps")) return torch.device(ivy.Device(device).replace("gpu", "cuda")) From 8237dfec397325f6ae2c66ddb3f68f380f91a671 Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Wed, 6 Sep 2023 15:59:04 +0100 Subject: [PATCH 032/127] fix(docs): Corrects reference of removed section --- docs/overview/contributing/open_tasks.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview/contributing/open_tasks.rst b/docs/overview/contributing/open_tasks.rst index 186b3ee912cc0..99f82155b9898 100644 --- a/docs/overview/contributing/open_tasks.rst +++ b/docs/overview/contributing/open_tasks.rst @@ -128,7 +128,7 @@ At some point, a member of our team will assess whether it should be added, and After this, you then have two options for how to proceed: -#. Try to implement the function as a composition of currently present ivy functions, as explained in the "Temporary Compositions" sub-section of the :ref:`Ivy Frontends` guide, and add the :code:`#ToDo` comment in the implementation as explained. +#. Try to implement the function as a composition of currently present ivy functions, as explained in the :ref:`Short Frontend Implementations` sub-section of the :ref:`Ivy Frontends` guide, and add the :code:`#ToDo` comment in the implementation as explained. Once the PR is merged, your sub-task issue will then be closed as normal. #. Alternatively, if you do not want to try and implement the frontend function compositionally, or if this is not feasible, then you can simply choose another frontend function to work on. You could also choose to work on another open task entirely at this point if you wanted to. From 7758110b2495f9a238ce2a626967dbe117e74c92 Mon Sep 17 00:00:00 2001 From: Akshay <59740725+Killua7362@users.noreply.github.com> Date: Wed, 6 Sep 2023 21:11:51 +0530 Subject: [PATCH 033/127] Added ivy.Array support to jax native compile (#23159) --- ivy/functional/backends/jax/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ivy/functional/backends/jax/__init__.py b/ivy/functional/backends/jax/__init__.py index 036fe96894758..9ad6e9403b338 100644 --- a/ivy/functional/backends/jax/__init__.py +++ b/ivy/functional/backends/jax/__init__.py @@ -23,6 +23,19 @@ ) +# make ivy.Array compatible with jax pytree traversal +def _array_flatten(tree): + return ((tree.data,), None) + + +def _array_unflatten(aux_data, children): + if type(*children) == object: + return children + return ivy.Array(*children) + + +register_pytree_node(ivy.Array, _array_flatten, _array_unflatten) + # noinspection PyUnresolvedReferences if not ivy.is_local(): _module_in_memory = sys.modules[__name__] From fb7f334c0eb9f2f8568192bd28d632dd2022214e Mon Sep 17 00:00:00 2001 From: RashulChutani Date: Thu, 31 Aug 2023 20:35:49 +0530 Subject: [PATCH 034/127] Resolve issues in synchronize_db.py script [skip ci] --- run_tests_CLI/synchronize_db.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/run_tests_CLI/synchronize_db.py b/run_tests_CLI/synchronize_db.py index fad171323d6ba..b81b8379a3cd9 100644 --- a/run_tests_CLI/synchronize_db.py +++ b/run_tests_CLI/synchronize_db.py @@ -20,7 +20,9 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): - """Recursively navigate and identify keys not in the list.""" + """ + Recursively navigate and identify keys not in the list. + """ keys_for_deletion = [] for key, value in data.items(): @@ -56,7 +58,7 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore", "test_onnx", "test_sklearn", - "test_xgboost", + "test_xgboost" ) db_dict = { "test_functional/test_core": ["core", 10], @@ -75,10 +77,8 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore": ["mindspore", 23], "test_onnx": ["onnx", 24], "test_sklearn": ["sklearn", 25], - "test_xgboost": ["xgboost", 26], + "test_xgboost": ["xgboost", 26] } - - def get_submodule(test_path): test_path = test_path.split("/") for name in submodules: @@ -113,13 +113,12 @@ def main(): for collection_name in db.list_collection_names(): collection = db[collection_name] for document in collection.find({}): - undesired_keys = keys_to_delete_from_db( - all_tests, module_map[collection_name], document - ) + print(document) + undesired_keys = keys_to_delete_from_db(all_tests, module_map[collection_name], document) for key in undesired_keys: print(key) # collection.update_one({"_id": document["_id"]}, {"$unset": {key: 1}}) if __name__ == "__main__": - main() + main() \ No newline at end of file From ae8ebdf4b589d102751a8ae21087f553b52d1259 Mon Sep 17 00:00:00 2001 From: RashulChutani Date: Wed, 6 Sep 2023 22:24:40 +0530 Subject: [PATCH 035/127] Incorporate the change of directory test_experimental to test_functional/test_experimental in the run_tests.py script [skip ci] --- run_tests.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/run_tests.py b/run_tests.py index c67e3dbdab35c..05bf96bf7bbca 100644 --- a/run_tests.py +++ b/run_tests.py @@ -46,9 +46,10 @@ def get_submodule(test_path): for name in submodules: if name in test_path: if name == "test_functional": - coll = db_dict["test_functional/" + test_path[-2]] - elif name == "test_experimental": - coll = db_dict["test_experimental/" + test_path[-2]] + if len(test_path) > 3 and test_path[3] == "test_experimental": + coll = db_dict["test_experimental/" + test_path[4]] + else: + coll = db_dict["test_functional/" + test_path[-2]] else: coll = db_dict[name] break From fb7cf3159722799fb7557e885f4c2c116d6dd22c Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Wed, 6 Sep 2023 19:57:57 +0300 Subject: [PATCH 036/127] docs: set `autosectionlabel_prefix_document` to `True` (#23163) --- docs/overview/contributing.rst | 16 +++--- .../contributing/applied_libraries.rst | 2 +- .../contributing/building_the_docs.rst | 3 +- docs/overview/contributing/open_tasks.rst | 53 ++++++++++--------- docs/overview/contributing/setting_up.rst | 2 +- docs/overview/contributing/the_basics.rst | 3 +- docs/overview/deep_dive.rst | 52 +++++++++--------- docs/overview/deep_dive/array_api_tests.rst | 10 ++-- docs/overview/deep_dive/arrays.rst | 6 +-- docs/overview/deep_dive/backend_setting.rst | 2 +- ...ine.rst => building_the_docs_pipeline.rst} | 6 +-- docs/overview/deep_dive/containers.rst | 6 +-- .../deep_dive/continuous_integration.rst | 2 +- docs/overview/deep_dive/data_types.rst | 4 +- docs/overview/deep_dive/devices.rst | 8 +-- docs/overview/deep_dive/formatting.rst | 3 +- .../overview/deep_dive/function_arguments.rst | 8 +-- docs/overview/deep_dive/function_types.rst | 12 ++--- docs/overview/deep_dive/function_wrapping.rst | 32 ++++++----- docs/overview/deep_dive/inplace_updates.rst | 17 +++--- docs/overview/deep_dive/ivy_frontends.rst | 13 +++-- .../deep_dive/ivy_frontends_tests.rst | 12 ++--- docs/overview/deep_dive/ivy_tests.rst | 24 +++++---- .../deep_dive/navigating_the_code.rst | 1 - .../overview/deep_dive/superset_behaviour.rst | 14 ++--- docs/overview/design.rst | 12 +++-- docs/overview/design/building_blocks.rst | 6 +-- docs/overview/design/ivy_as_a_framework.rst | 10 ++-- .../design/ivy_as_a_framework/ivy_array.rst | 2 +- .../ivy_as_a_framework/ivy_container.rst | 4 +- .../ivy_as_a_framework/ivy_stateful_api.rst | 2 +- docs/overview/design/ivy_as_a_transpiler.rst | 2 +- docs/overview/get_started.rst | 4 +- docs/overview/motivation.rst | 6 +-- docs/overview/one_liners/transpile.rst | 2 +- docs/overview/related_work.rst | 36 ++++++++----- .../related_work/compiler_infrastructure.rst | 2 +- .../related_work/what_does_ivy_add.rst | 6 +-- docs/partial_conf.py | 3 ++ 39 files changed, 215 insertions(+), 193 deletions(-) rename docs/overview/deep_dive/{building_the_docs_pipline.rst => building_the_docs_pipeline.rst} (98%) diff --git a/docs/overview/contributing.rst b/docs/overview/contributing.rst index c5b3b1aca787c..8372cf661a277 100644 --- a/docs/overview/contributing.rst +++ b/docs/overview/contributing.rst @@ -15,28 +15,28 @@ We want our ML unification journey to be as inclusive as possible, this is all o The contributor guide is split into the sections below, it's best to go from start to finish, but you can also dive in at any stage! We're excited for you to get involved! 🦾 -| (a) `Setting Up `_ +| (a) `Setting Up `_ | Building the right environment 🏛️ | -| (b) :ref:`The Basics` +| (b) `The Basics `_ | Managing your fork 🇾, creating issues ⭕, and creating pull-requests ⬆️ | -| (c) :ref:`Building the Docs` +| (c) `Building the Docs `_ | How to build the documentation locally 🏗️ | -| (d) :ref:`Deep Dive` +| (d) `Deep Dive `_ | Take a deep dive into the codebase 🤿 | -| (e) :ref:`Open Tasks` +| (e) `Open Tasks `_ | See where you can help us out! 🙋 | -| (f) :ref:`Applied Libraries` +| (f) `Applied Libraries `_ | Getting started with our applied libraries! 📚 | -| (g) :ref:`Helpful Resources` +| (g) `Helpful Resources `_ | Resources you would find useful when learning Ivy 📖 | -| (g) :ref:`Error Handling` +| (g) `Error Handling `_ | Common errors you will be facing contributing to Ivy ❌ .. toctree:: diff --git a/docs/overview/contributing/applied_libraries.rst b/docs/overview/contributing/applied_libraries.rst index 11de60c24d5cb..12fa1803f25b7 100644 --- a/docs/overview/contributing/applied_libraries.rst +++ b/docs/overview/contributing/applied_libraries.rst @@ -139,4 +139,4 @@ Example - Ivy Robot These examples should hopefully give you a good understanding of what is required when developing the Ivy applied libraries. -If you have any questions, please feel free to reach out on `discord`_ in the `pycharm channel`_, `docker channel`_, `pre-commit channel`_, `pip packages channel`_ or `other channel`_, depending on the question! +If you have any questions, please feel free to reach out on `discord`_ in the `pycharm channel`_, `docker channel`_, `pre-commit channel`_ or `pip packages channel`_, depending on the question! diff --git a/docs/overview/contributing/building_the_docs.rst b/docs/overview/contributing/building_the_docs.rst index 680e21b099089..fb03ce01d5e80 100644 --- a/docs/overview/contributing/building_the_docs.rst +++ b/docs/overview/contributing/building_the_docs.rst @@ -2,7 +2,8 @@ Building the Docs ================= This document describes how to build the Ivy docs. If you want to know more about how -our custom building pipeline work, check our :ref:`Building the Docs Pipeline` deep dive +our custom building pipeline work, check our `Building the Docs Pipeline +<../deep_dive/building_the_docs_pipline.rst>`_ deep dive Building the Docs using Docker ------------------------------ diff --git a/docs/overview/contributing/open_tasks.rst b/docs/overview/contributing/open_tasks.rst index 99f82155b9898..ee2e7602d8f50 100644 --- a/docs/overview/contributing/open_tasks.rst +++ b/docs/overview/contributing/open_tasks.rst @@ -7,13 +7,14 @@ Open Tasks .. _`issue description`: https://github.com/unifyai/ivy/issues/1526 .. _`reference API`: https://numpy.org/doc/stable/reference/routines.linalg.html .. _`imports`: https://github.com/unifyai/ivy/blob/38dbb607334cb32eb513630c4496ad0024f80e1c/ivy/functional/frontends/numpy/__init__.py#L27 +.. _`Deep Dive`: ../deep_dive.rst Here, we explain all tasks which are currently open for contributions from the community! This section of the docs will be updated frequently, whereby new tasks will be added and completed tasks will be removed. The tasks outlined here are generally broad high-level tasks, each of which is made up of many individual sub-tasks, distributed across task-specific `ToDo List Issues `_. -Please read about `ToDo List Issues `_ in detail before continuing. +Please read about :ref:`overview/contributing/the_basics:ToDo List Issues` in detail before continuing. All tasks should be selected and allocated as described in the ToDo List Issues section. We make no mention of task selection and allocation in the explanations below, which instead focus on the steps to complete only once a sub-task has been allocated to you. @@ -32,7 +33,7 @@ Function Formatting Currently, we have many ToDo list issues `open `_ for a general function formatting task, which is explained below. -Each function in each submodule should be updated to follow the implementation instructions given in the :ref:`Deep Dive` section. +Each function in each submodule should be updated to follow the implementation instructions given in the `Deep Dive`_ section. The updates should be applied for the: #. ivy API @@ -44,25 +45,25 @@ The updates should be applied for the: #. container operators #. container reverse operators -The :ref:`Deep Dive` is an **essential** resource for learning how each of these functions/methods should be implemented. -Before starting any contribution task, you should go through the :ref:`Deep Dive`, and familiarize yourself with the content. +The `Deep Dive`_ is an **essential** resource for learning how each of these functions/methods should be implemented. +Before starting any contribution task, you should go through the `Deep Dive`_, and familiarize yourself with the content. At the time of writing, many of the functions are not implemented as they should be. -You will need to make changes to the current implementations, but you do not need to address *all* sections of the :ref:`Deep Dive` in detail. +You will need to make changes to the current implementations, but you do not need to address *all* sections of the `Deep Dive`_ in detail. Specifically, you **do not** need to address the following: #. Implement the hypothesis testing for the function #. Get the tests passing for your function, if they are failing before you start -However, everything else covered in the :ref:`Deep Dive` must be addressed. +However, everything else covered in the `Deep Dive`_ must be addressed. Some common important tasks are: #. Remove all :code:`lambda` and direct bindings for the backend functions (in :code:`ivy.functional.backends`), with each function instead defined using :code:`def`. #. Implement the following if they don't exist but should do: :class:`ivy.Array` instance method, :class:`ivy.Container` instance method, :class:`ivy.Array` special method, :class:`ivy.Array` reverse special method, :class:`ivy.Container` special method, :class:`ivy.Container` reverse special method. #. Make sure that the aforementioned methods are added into the correct category-specific parent class, such as :class:`ivy.ArrayWithElementwise`, :class:`ivy.ContainerWithManipulation` etc. -#. Correct all of the :ref:`Function Arguments` and the type hints for every function **and** its *relevant methods*, including those you did not implement yourself. -#. Add the correct :ref:`Docstrings` to every function **and** its *relevant methods*, including those you did not implement yourself. -#. Add thorough :ref:`Docstring Examples` for every function **and** its *relevant methods* and ensure they pass the docstring tests. +#. Correct all of the `Function Arguments <../deep_dive/function_arguments.rst>`_ and the type hints for every function **and** its *relevant methods*, including those you did not implement yourself. +#. Add the correct `Docstrings <../deep_dive/docstrings.rst>`_ to every function **and** its *relevant methods*, including those you did not implement yourself. +#. Add thorough `Docstring Examples <../deep_dive/docstring_examples.rst>`_ for every function **and** its *relevant methods* and ensure they pass the docstring tests. Formatting checklist ~~~~~~~~~~~~~~~~~~~~ @@ -106,15 +107,15 @@ The PR assignee will then see this comment and address your issues. Frontend APIs ------------- -For this task, the goal will be to implement functions for each of the frontend functional APIs (see :ref:`Ivy as a Transpiler`), with frontend APIs implemented for: :code:`JAX`, :code:`NumPy`, :code:`TensorFlow` :code:`PyTorch`, :code:`Paddle`, :code:`Scipy`, :code:`MXNet` and :code:`MindSpore`. +For this task, the goal will be to implement functions for each of the frontend functional APIs (see `Ivy as a Transpiler <../design/ivy_as_a_transpiler.rst>`_), with frontend APIs implemented for: :code:`JAX`, :code:`NumPy`, :code:`TensorFlow` :code:`PyTorch`, :code:`Paddle`, :code:`Scipy`, :code:`MXNet` and :code:`MindSpore`. Currently, we have many ToDo list issues `open `_ for this task. The general workflow for this task is: -#. Find the correct location for the function by following the :ref:`Where to place a frontend function` subsection below -#. Implement the function by following the :ref:`Ivy Frontends` guide -#. Write tests for your function by following the :ref:`Ivy Frontend Tests` guide +#. Find the correct location for the function by following the :ref:`overview/contributing/open_tasks:Where to place a frontend function` subsection below +#. Implement the function by following the `Ivy Frontends <../deep_dive/ivy_frontends.rst>`_ guide +#. Write tests for your function by following the `Ivy Frontend Tests <../deep_dive/ivy_frontends_tests.rst>`_ guide #. Verify that the tests for your function are passing If you feel as though there is an ivy function :code:`ivy.` clearly missing, which would make your frontend function much simpler to implement, then you should first do the following: @@ -128,7 +129,7 @@ At some point, a member of our team will assess whether it should be added, and After this, you then have two options for how to proceed: -#. Try to implement the function as a composition of currently present ivy functions, as explained in the :ref:`Short Frontend Implementations` sub-section of the :ref:`Ivy Frontends` guide, and add the :code:`#ToDo` comment in the implementation as explained. +#. Try to implement the function as a composition of currently present ivy functions, as explained in the :ref:`overview/deep_dive/ivy_frontends:Short Frontend Implementations` sub-section of the `Ivy Frontends <../deep_dive/ivy_frontends.rst>`_ guide, and add the :code:`#ToDo` comment in the implementation as explained. Once the PR is merged, your sub-task issue will then be closed as normal. #. Alternatively, if you do not want to try and implement the frontend function compositionally, or if this is not feasible, then you can simply choose another frontend function to work on. You could also choose to work on another open task entirely at this point if you wanted to. @@ -217,7 +218,7 @@ However, you can still use the checklist as a reference in cases where you do un **Notes**: -1. More details on how to update the checklist items can be found in the :ref:`Formatting checklist` part of our docs. +1. More details on how to update the checklist items can be found in the :ref:`overview/contributing/open_tasks:Formatting checklist` part of our docs. 2. Do not edit the checklist text, only the emoji symbols. 3. Please refrain from using the checkboxes next to checklist items. @@ -233,11 +234,11 @@ There is only one central ToDo list `issue `_ -#. Every function will have a different file structure according to the function type, refer to :ref:`Where to place a backend function` subsection below. +#. Analyze the function type, we have a very detailed section for it in the deep dive `Function Types Guide <../deep_dive/function_types.rst>`_ +#. Every function will have a different file structure according to the function type, refer to :ref:`overview/contributing/open_tasks:Where to place a backend function` subsection below. #. Implement the container instance method in :mod:`ivy/container/experimental/[relevant_submodule].py` and the array instance method in :mod:`ivy/array/experimental/[relevant_submodule].py` -#. Write tests for the function using the :ref:`Ivy Tests` guide, and make sure they are passing. +#. Write tests for the function using the `Ivy Tests <../deep_dive/ivy_tests.rst>`_ guide, and make sure they are passing. A few points to keep in mind while doing this: @@ -249,13 +250,13 @@ If you’re stuck on a function which requires complex compositions, feel free t Extending the Ivy API ~~~~~~~~~~~~~~~~~~~~~~~ -We primarily invite contributors to work on the tasks listed as :ref:`Open Tasks`, as these are on our current roadmap. As a result of this, we prompt everyone interested in contributing to our Experimental API to do so under the `Ivy Experimental API Open Task`_. +We primarily invite contributors to work on the tasks listed as :ref:`overview/contributing/open_tasks:Open Tasks`, as these are on our current roadmap. As a result of this, we prompt everyone interested in contributing to our Experimental API to do so under the :ref:`Ivy Experimental API Open Task `. -However, if you would like to extend Ivy's functionality with a new function, you are invited to open an issue using the *Missing Function Suggestion* template as described in `Creating an Issue on Ivy’s GitHub using a Template `_. +However, if you would like to extend Ivy's functionality with a new function, you are invited to open an issue using the *Missing Function Suggestion* template as described in :ref:`overview/contributing/open_tasks:Creating an Issue on Ivy's GitHub using a Template`. In this template form, you'll be asked to fill in the reason you think we should implement the suggested function, as well as the links to any native implementations of the suggested function. -We will review your issue as soon as possible and let you know if it's been accepted or not. In case we deem that the suggested function fits our roadmap, we will add it as a subtask to the `Ivy Experimental API Open Task`_. +We will review your issue as soon as possible and let you know if it's been accepted or not. In case we deem that the suggested function fits our roadmap, we will add it as a subtask to the `Ivy Experimental API Open Task `_. Where to place a backend function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -267,15 +268,15 @@ There are multiple types of backend functions as discussed above, we will go thr **Primary Functions** Implement the function in :mod:`ivy/functional/ivy/experimental/[relevant_submodule].py` simply deferring to their backend-specific implementation -(where ivy.current_backend(x).function_name() is called), refer to the `Ivy API Guide `_ +(where ivy.current_backend(x).function_name() is called), refer to the :ref:`Ivy API Guide ` to get a clearer picture of how this must be done. Then, implement the functions in each of the backend files :mod:`ivy/functional/backends/backend_name/experimental/[relevant_submodule].py`, -you can refer to the `Backend API Guide `_ for this. +you can refer to the :ref:`Backend API Guide ` for this. **Compositional Functions** Implement the function in :mod:`ivy/functional/ivy/experimental/[relevant_submodule].py`, we will not use the primary function approach in this case, the implementation will be a composition of functions from Ivy's functional API. You can refer to -`Compositional Functions Guide `_ for a better understanding of this. +:ref:`overview/deep_dive/function_types:Compositional Functions` for a better understanding of this. You don't need to add any implementation in any other file in this case. **Mixed Functions** @@ -287,8 +288,8 @@ will be a composition of functions from Ivy's functional API. After you are done **Other Function Types** -`Standalone Functions `_, `Nestable Functions `_ and -`Convenience Functions `_ are the ones which you will rarely come across +:ref:`overview/deep_dive/function_types:Standalone Functions`, :ref:`overview/deep_dive/function_types:Nestable Functions` and +:ref:`overview/deep_dive/function_types:Convenience Functions` are the ones which you will rarely come across while implementing a function from the ToDo List but they are an essential part of the Ivy API. diff --git a/docs/overview/contributing/setting_up.rst b/docs/overview/contributing/setting_up.rst index 6987e5e046ee1..0847d5708ce4b 100644 --- a/docs/overview/contributing/setting_up.rst +++ b/docs/overview/contributing/setting_up.rst @@ -638,7 +638,7 @@ the steps explained below will help you in setting up a less resource-intensive pip install git+https://github.com/unifyai/ivy.git -#. If you want to set up a local repository, you can do so by following `this guide `_ +#. If you want to set up a local repository, you can do so by following :ref:`this guide ` as explained above and install the required development dependencies by running: .. code-block:: none diff --git a/docs/overview/contributing/the_basics.rst b/docs/overview/contributing/the_basics.rst index 2965789636ba0..7c1a91a5db936 100644 --- a/docs/overview/contributing/the_basics.rst +++ b/docs/overview/contributing/the_basics.rst @@ -10,7 +10,6 @@ The Basics .. _`commit frequency channel`: https://discord.com/channels/799879767196958751/982728822317256712 .. _`PyCharm blog`: https://www.jetbrains.com/help/pycharm/finding-and-replacing-text-in-file.html .. _`Debugging`: https://www.jetbrains.com/help/pycharm/debugging-code.html -.. _`Ivy Experimental API Open Task`: https://unify.ai/docs/ivy/overview/contributing/open_tasks.html#ivy-experimental-api Getting Help ------------ @@ -54,7 +53,7 @@ We make extensive use of `ToDo list issues `_, `frontend APIs `_ and `ivy experimental API `_. +a. Find a task to work on which (i) is not marked as completed with a tick (ii) does not have an issue created and (iii) is not mentioned in the comments. Currently, there are three open tasks: :ref:`overview/contributing/open_tasks:Function Formatting`, :ref:`overview/contributing/open_tasks:Frontend APIs` and :ref:`overview/contributing/open_tasks:Ivy Experimental API`. b. Create a new issue with the title being just the name of the sub-task you would like to work on. diff --git a/docs/overview/deep_dive.rst b/docs/overview/deep_dive.rst index e92fc8e1a7688..1fe0354d93881 100644 --- a/docs/overview/deep_dive.rst +++ b/docs/overview/deep_dive.rst @@ -4,7 +4,7 @@ Deep Dive .. _`issues`: https://github.com/unifyai/ivy/issues .. _`pull-requests`: https://github.com/unifyai/ivy/pulls -For general users of the framework, who are mainly concerned with learning how to *use* Ivy, then the :ref:`Design` section is the best place to start 🙂 +For general users of the framework, who are mainly concerned with learning how to *use* Ivy, then the `Design `_ section is the best place to start 🙂 This *deep dive* section is more targeted at people who would like to dive deeper into how Ivy actually works under the hood 🔧 @@ -13,74 +13,76 @@ Going through the sections outlined below will get you right into the weeds of t It's best to go through the sub-sections from start to finish, but you can also dive in at any stage! We're excited for you to get involved! 🦾 -| (a) :ref:`Navigating the Code` 🧭 +| (a) `Navigating the Code `_ 🧭 | A quick tour through the codebase | -| (b) :ref:`Function Types` 🧮 +| (b) `Function Types `_ 🧮 | Primary, compositional, mixed, and nestable functions | -| (c) :ref:`Superset Behaviour` ⊃ +| (c) `Superset Behaviour `_ ⊃ | Ivy goes for the superset when unifying the backend functions | -| (d) :ref:`Backend Setting` ⚙ +| (d) `Backend Setting `_ ⚙ | How the backend is set, and what this means for each function type️ | -| (e) :ref:`Arrays` 🔢 +| (e) `Arrays `_ 🔢 | Different types of arrays, and how they're handled | -| (f) :ref:`Containers` 🗂 +| (f) `Containers `_ 🗂 | What the :class:`ivy.Container` does | -| (g) :ref:`Data Types` 💾 +| (g) `Data Types `_ 💾 | How functions infer the correct data type | -| (h) :ref:`Devices` 📱 +| (h) `Devices `_ 📱 | How functions infer the correct device | -| (i) :ref:`Inplace Updates` 🎯 +| (i) `Inplace Updates `_ 🎯 | How the :code:`out` argument is used to specify the output target | -| (j) :ref:`Function Wrapping` 🎁 +| (j) `Function Wrapping `_ 🎁 | How functions are dynamically wrapped at runtime | -| (k) :ref:`Formatting` 📋 +| (k) `Formatting `_ 📋 | How the code is automatically formatted | -| (l) :ref:`Function Arguments` 📑 +| (l) `Function Arguments `_ 📑 | How to add the correct function arguments | -| (m) :ref:`Docstrings` 📄 +| (m) `Docstrings `_ 📄 | How to properly write docstrings | -| (n) :ref:`Docstring Examples` 💯 +| (n) `Docstring Examples `_ 💯 | How to add useful examples to the docstrings | -| (o) :ref:`Array API Tests` 🤝 +| (o) `Array API Tests `_ 🤝 | How we're borrowing the test suite from the Array API Standard | -| (p) :ref:`Ivy Tests` 🧪 +| (p) `Ivy Tests `_ 🧪 | How to add new tests for each Ivy function | -| (q) :ref:`Ivy Frontends` ➡ +| (q) `Ivy Frontends `_ ➡ | How to implement frontend functions | -| (r) :ref:`Ivy Frontend Tests` 🧪 +| (r) `Ivy Frontend Tests `_ 🧪 | How to add new tests for each frontend function | -| (s) :ref:`Exception Handling` ⚠ +| (s) `Exception Handling `_ ⚠ | How to handle exceptions and assertions in a function | -| (t) :ref:`Continuous Integration` 🔁 +| (t) `Continuous Integration `_ 🔁 | Ivy Tests running on the Repository | -| (u) :ref:`Gradients` 🔁 +| (u) `Gradients `_ 🔁 | Everything about our Gradients API | -| (v) :ref:`Operating Modes` 🧮 +| (v) `Operating Modes `_ 🧮 | Everything about modes Ivy can operate in, along with their purposes | -| (w) :ref:`Building the Docs Pipeline` 📚 +| (w) `Building the Docs Pipeline `_ 📚 | How are we building our docs + + .. toctree:: :hidden: :maxdepth: -1 @@ -108,4 +110,4 @@ We're excited for you to get involved! 🦾 deep_dive/continuous_integration.rst deep_dive/gradients.rst deep_dive/operating_modes.rst - deep_dive/building_the_docs_pipline.rst + deep_dive/building_the_docs_pipeline.rst diff --git a/docs/overview/deep_dive/array_api_tests.rst b/docs/overview/deep_dive/array_api_tests.rst index 6bc203297d22b..e9225fedc5c83 100644 --- a/docs/overview/deep_dive/array_api_tests.rst +++ b/docs/overview/deep_dive/array_api_tests.rst @@ -12,12 +12,10 @@ Array API Tests .. _`array-api test repository`: https://github.com/data-apis/array-api/tree/main .. _`issue`: https://github.com/numpy/numpy/issues/21213 .. _`ivy_tests/array_api_testing/test_array_api/array_api_tests/test_special_cases.py`: https://github.com/data-apis/array-api-tests/blob/ddd3b7a278cd0c0b68c0e4666b2c9f4e67b7b284/array_api_tests/test_special_cases.py -.. _`here`: https://unify.ai/docs/ivy/overview/contributing/the_basics.html#running-tests-locally .. _`git website`: https://www.git-scm.com/book/en/v2/Git-Tools-Submodules .. _`hypothesis`: https://hypothesis.readthedocs.io/en/latest/ -.. _`ivy tests`: https://unify.ai/docs/ivy/overview/deep_dive/ivy_tests.html -.. _`final section`: https://unify.ai/docs/ivy/overview/deep_dive/ivy_tests.html#re-running-failed-ivy-tests -.. _`CI Pipeline`: https://unify.ai/docs/ivy/overview/deep_dive/continuous_integration.html +.. _`ivy tests`: ivy_tests.rst +.. _`CI Pipeline`: continuous_integration.html In conjunction with our own ivy unit tests, we import the array-api `test suite`_. These tests check that all ivy backend libraries behave according to the `Array API Standard`_ which was established in May 2020 by a group of maintainers. @@ -99,7 +97,7 @@ Using the IDE You can also run a specific test or test file by using your IDE. To make this work, you should set the backend explicitly in the `_array_module.py` file as explained in the previous subsection. After that, you can run the API test files as you typically would with other tests. -See `here`_ for instructions on how to run tests in ivy more generally. +See :ref:`here ` for instructions on how to run tests in ivy more generally. *NB*: make sure to not add any changes to the array-api files to your commit. @@ -107,7 +105,7 @@ Regenerating Test Failures -------------------------- Array-API tests are written using `hypothesis`_ to perform property-based testing, just like the `ivy tests`_. However, unlike the ivy tests, the Array-API tests make liberal use of :code:`data.draw` in the main body of the test function instead of generating the data in the :code:`@given` decorator that wraps it. -This means that failed tests cannot be re-run with the :code:`@example` decorator, as explained in the `final section`_ of the ivy tests deep dive. +This means that failed tests cannot be re-run with the :code:`@example` decorator, as explained in the :ref:`final section ` of the ivy tests deep dive. Fortunately, it is possible to regenerate test failures using a unique decorator that appears in the final line of the falsifying example in the error stack trace: .. code-block:: none diff --git a/docs/overview/deep_dive/arrays.rst b/docs/overview/deep_dive/arrays.rst index 7029354e696a5..551dfe46ba1e5 100644 --- a/docs/overview/deep_dive/arrays.rst +++ b/docs/overview/deep_dive/arrays.rst @@ -85,7 +85,7 @@ Therefore, most functions in Ivy must adopt the following pipeline: #. call the backend-specific function, passing in these :class:`ivy.NativeArray` instances #. convert all of the :class:`ivy.NativeArray` instances which are returned from the backend function back into :class:`ivy.Array` instances, and return -Given the repeating nature of these steps, this is all entirely handled in the `inputs_to_native_arrays`_ and `outputs_to_ivy_arrays`_ wrappers, as explained in the :ref:`Function Wrapping` section. +Given the repeating nature of these steps, this is all entirely handled in the `inputs_to_native_arrays`_ and `outputs_to_ivy_arrays`_ wrappers, as explained in the `Function Wrapping `_ section. All Ivy functions *also* accept :class:`ivy.NativeArray` instances in the input. This is for a couple of reasons. @@ -93,11 +93,11 @@ Firstly, :class:`ivy.Array` instances must be converted to :class:`ivy.NativeArr Secondly, this makes it easier to combine backend-specific code with Ivy code, without needing to explicitly wrap any arrays before calling sections of Ivy code. Therefore, all input arrays to Ivy functions have type :code:`Union[ivy.Array, ivy.NativeArray]`, whereas the output arrays have type :class:`ivy.Array`. -This is further explained in the :ref:`Function Arguments` section. +This is further explained in the `Function Arguments `_ section. However, :class:`ivy.NativeArray` instances are not permitted for the :code:`out` argument, which is used in most functions. This is because the :code:`out` argument dictates the array to which the result should be written, and so it effectively serves the same purpose as the function return. -This is further explained in the :ref:`Inplace Updates` section. +This is further explained in the `Inplace Updates `_ section. As a final point, extra attention is required for *compositional* functions, as these do not directly defer to a backend implementation. If the first line of code in a compositional function performs operations on the input array, then this will call the special methods on an :class:`ivy.NativeArray` and not on an :class:`ivy.Array`. diff --git a/docs/overview/deep_dive/backend_setting.rst b/docs/overview/deep_dive/backend_setting.rst index ac42524e05c80..5a9334acac4fd 100644 --- a/docs/overview/deep_dive/backend_setting.rst +++ b/docs/overview/deep_dive/backend_setting.rst @@ -23,7 +23,7 @@ When calling `this function`_ for setting the backend, the following steps are p #. loop through the original :code:`ivy_original_dict` (which has all functions, including compositional), and (a) add the primary function from the backend if it exists, (b) else add the compositional function from :code:`ivy_original_dict`. #. `wrap the functions`_ where necessary, extending them with shared repeated functionality and `writing the function`_ to :attr:`ivy.__dict__`. Wrapping is used in order to avoid excessive code duplication in every backend function implementation. - This is explained in more detail in the next section: :ref:`Function Wrapping`. + This is explained in more detail in the next section: `Function Wrapping `_. It's helpful to look at an example: diff --git a/docs/overview/deep_dive/building_the_docs_pipline.rst b/docs/overview/deep_dive/building_the_docs_pipeline.rst similarity index 98% rename from docs/overview/deep_dive/building_the_docs_pipline.rst rename to docs/overview/deep_dive/building_the_docs_pipeline.rst index 464bfa63eb372..d81bbc5c9b591 100644 --- a/docs/overview/deep_dive/building_the_docs_pipline.rst +++ b/docs/overview/deep_dive/building_the_docs_pipeline.rst @@ -84,7 +84,7 @@ To build the docs through docker you use this command: docker run -v /path/to/project:/project unifyai/doc-builder -You can also add options described in the :ref:`The convenience script` section. +You can also add options described in the :ref:`overview/deep_dive/building_the_docs_pipeline:The convenience script` section. .. code-block:: bash @@ -167,7 +167,7 @@ The last directive is ``autosummary``, which is used to automatically generate a of contents for a module, as well as the documentation itself automatically by discovering the docstrings of the module. This is a custom directive, built on the original `autosummary`_ -extension. We will explain in detail how did we change it, in :ref:`Custom Extensions`. +extension. We will explain in detail how did we change it, in :ref:`overview/deep_dive/building_the_docs_pipeline:Custom Extensions`. ``partial_conf.py`` ~~~~~~~~~~~~~~~~~~~ @@ -194,7 +194,7 @@ Here we are overriding the ``ivy_toctree_caption_map`` configuration, which is u customize the title of the table of contents for each module. ``ivy_toctree_caption_map`` is one of the configuration options we have in our ``custom_autosummary`` extension, which will be covered extensively in -:ref:`Custom Extensions`. +:ref:`overview/deep_dive/building_the_docs_pipeline:Custom Extensions`. ``prebuild.sh`` ~~~~~~~~~~~~~~~ diff --git a/docs/overview/deep_dive/containers.rst b/docs/overview/deep_dive/containers.rst index 0b975eb990421..a35f5e41f1365 100644 --- a/docs/overview/deep_dive/containers.rst +++ b/docs/overview/deep_dive/containers.rst @@ -185,7 +185,7 @@ As for the special methods which are `implemented`_ in the main :class:`ivy.Cont As a result, the operator functions will make use of the special methods of the lefthand passed input objects if available, otherwise it will make use of the reverse special method of the righthand operand. For instance, if the lefthand operand at any given leaf of the container in an :class:`ivy.Array`, then the operator function will make calls to the special methods of this array object. -As explained in the :ref:`Arrays` section of the Deep Dive, these special methods will in turn call the corresponding functions from the ivy functional API. +As explained in the `Arrays `_ section of the Deep Dive, these special methods will in turn call the corresponding functions from the ivy functional API. Examples include `__add__`_, `__sub__`_, `__mul__`_ and `__truediv__`_ which will make calls to :func:`ivy.add`, :func:`ivy.subtract`, :func:`ivy.multiply` and :func:`ivy.divide` respectively if the lefthand operand is an :class:`ivy.Array` object. Otherwise, these special methods will be called on whatever objects are at the leaves of the container, such as int, float, :class:`ivy.NativeArray` etc. @@ -193,10 +193,10 @@ Otherwise, these special methods will be called on whatever objects are at the l Nestable Functions ------------------ -As introduced in the :ref:`Function Types` section, most functions in Ivy are *nestable*, which means that they can accept :class:`ivy.Container` instances in place of **any** of the arguments. +As introduced in the `Function Types `_ section, most functions in Ivy are *nestable*, which means that they can accept :class:`ivy.Container` instances in place of **any** of the arguments. Here, we expand on this explanation. -Please check out the explanation in the :ref:`Function Types` section first. +Please check out the explanation in the `Function Types `_ section first. **Explicitly Nestable Functions** diff --git a/docs/overview/deep_dive/continuous_integration.rst b/docs/overview/deep_dive/continuous_integration.rst index bfabdc6973c00..e639efa7bcfca 100644 --- a/docs/overview/deep_dive/continuous_integration.rst +++ b/docs/overview/deep_dive/continuous_integration.rst @@ -289,7 +289,7 @@ Array API Tests --------------- The `array-api-intelligent-tests.yml (Push) `_ and the `array-api-intelligent-tests-pr.yml (Pull Request) `_ workflows run the Array API Tests. Similar to Ivy Tests, The Array API tests are also determined intelligently and only relevant tests are triggered on each commit. -More details about the Array API Tests are available `here `_. +More details about the Array API Tests are available `here `_. Periodic Testing ---------------- diff --git a/docs/overview/deep_dive/data_types.rst b/docs/overview/deep_dive/data_types.rst index f95c394cb27d7..f2f72dea820c2 100644 --- a/docs/overview/deep_dive/data_types.rst +++ b/docs/overview/deep_dive/data_types.rst @@ -80,7 +80,7 @@ Data Type Module The `data_type.py`_ module provides a variety of functions for working with data types. A few examples include :func:`ivy.astype` which copies an array to a specified data type, :func:`ivy.broadcast_to` which broadcasts an array to a specified shape, and :func:`ivy.result_type` which returns the dtype that results from applying the type promotion rules to the arguments. -Many functions in the :mod:`data_type.py` module are *convenience* functions, which means that they do not directly modify arrays, as explained in the :ref:`Function Types` section. +Many functions in the :mod:`data_type.py` module are *convenience* functions, which means that they do not directly modify arrays, as explained in the `Function Types `_ section. For example, the following are all convenience functions: `ivy.can_cast`_, which determines if one data type can be cast to another data type according to type-promotion rules, `ivy.dtype `__, which gets the data type for the input array, `ivy.set_default_dtype`_, which sets the global default data dtype, and `ivy.default_dtype`_, which returns the correct data type to use. @@ -221,7 +221,7 @@ The non-creation functions which do support it are generally functions that invo The ``dtype`` argument is handled in the `infer_dtype`_ wrapper, for all functions which have the decorator :code:`@infer_dtype`. This function calls `ivy.default_dtype`_ in order to determine the correct data type. -As discussed in the :ref:`Function Wrapping` section, this is applied to all applicable functions dynamically during `backend setting`_. +As discussed in the `Function Wrapping `_ section, this is applied to all applicable functions dynamically during `backend setting`_. Overall, `ivy.default_dtype`_ infers the data type as follows: diff --git a/docs/overview/deep_dive/devices.rst b/docs/overview/deep_dive/devices.rst index 4f2cbbbcf24ce..ac2ab5efd62d0 100644 --- a/docs/overview/deep_dive/devices.rst +++ b/docs/overview/deep_dive/devices.rst @@ -33,7 +33,7 @@ The devices currently supported by Ivy are as follows: * gpu:idx * tpu:idx -In a similar manner to the :class:`ivy.Dtype` and :class:`ivy.NativeDtype` classes (see :ref:`Data Types`), there is both an `ivy.Device`_ class and an :class:`ivy.NativeDevice` class, with :class:`ivy.NativeDevice` initially set as an `empty class`_. +In a similar manner to the :class:`ivy.Dtype` and :class:`ivy.NativeDtype` classes (see `Data Types `_), there is both an `ivy.Device`_ class and an :class:`ivy.NativeDevice` class, with :class:`ivy.NativeDevice` initially set as an `empty class`_. The :class:`ivy.Device` class derives from :code:`str`, and has simple logic in the constructor to verify that the string formatting is correct. When a backend is set, the :class:`ivy.NativeDevice` is replaced with the backend-specific `device class`_. @@ -43,7 +43,7 @@ Device Module The `device.py`_ module provides a variety of functions for working with devices. A few examples include :func:`ivy.get_all_ivy_arrays_on_dev` which gets all arrays which are currently alive on the specified device, :func:`ivy.dev` which gets the device for input array, and :func:`ivy.num_gpus` which determines the number of available GPUs for use with the backend framework. -Many functions in the :mod:`device.py` module are *convenience* functions, which means that they do not directly modify arrays, as explained in the :ref:`Function Types` section. +Many functions in the :mod:`device.py` module are *convenience* functions, which means that they do not directly modify arrays, as explained in the `Function Types `_ section. For example, the following are all convenience functions: `ivy.total_mem_on_dev`_, which gets the total amount of memory for a given device, `ivy.dev_util`_, which gets the current utilization (%) for a given device, `ivy.num_cpu_cores`_, which determines the number of cores available in the CPU, and `ivy.default_device`_, which returns the correct device to use. @@ -64,7 +64,7 @@ In cases where the input arrays are located on different devices, an error will The :code:`device` argument is handled in `infer_device`_ for all functions which have the :code:`@infer_device` decorator, similar to how :code:`dtype` is handled. This function calls `ivy.default_device`_ in order to determine the correct device. -As discussed in the :ref:`Function Wrapping` section, this is applied to all applicable functions dynamically during `backend setting`_. +As discussed in the `Function Wrapping `_ section, this is applied to all applicable functions dynamically during `backend setting`_. Overall, `ivy.default_device`_ infers the device as follows: @@ -77,7 +77,7 @@ Overall, `ivy.default_device`_ infers the device as follows: For the majority of functions which defer to `infer_device`_ for handling the device, these steps will have been followed and the :code:`device` argument will be populated with the correct value before the backend-specific implementation is even entered into. Therefore, whereas the :code:`device` argument is listed as optional in the ivy API at :mod:`ivy/functional/ivy/category_name.py`, the argument is listed as required in the backend-specific implementations at :mod:`ivy/functional/backends/backend_name/category_name.py`. -This is exactly the same as with the :code:`dtype` argument, as explained in the :ref:`Data Types` section. +This is exactly the same as with the :code:`dtype` argument, as explained in the `Data Types `_ section. Let's take a look at the function :func:`ivy.zeros` as an example. diff --git a/docs/overview/deep_dive/formatting.rst b/docs/overview/deep_dive/formatting.rst index 307f059575dd3..ce64246f684dd 100644 --- a/docs/overview/deep_dive/formatting.rst +++ b/docs/overview/deep_dive/formatting.rst @@ -3,7 +3,6 @@ Formatting .. _`flake8`: https://flake8.pycqa.org/en/latest/index.html .. _`black`: https://black.readthedocs.io/en/stable/index.html -.. _`pre-commit guide`: https://unify.ai/docs/ivy/overview/contributing/setting_up.html#pre-commit .. _`formatting channel`: https://discord.com/channels/799879767196958751/1028266706436624456 .. _`discord`: https://discord.gg/sXyFF8tDtm @@ -19,7 +18,7 @@ Lint Checks In addition to `black`_ and `flake8`_, Ivy uses other linters to help automate the formatting process, especially for issues `flake8`_ detects but doesn't fix automatically. In addition to that, we validate docstring as part of our -linting process. You can learn more about our docstring formatting in the :ref:`Docstrings` section. +linting process. You can learn more about our docstring formatting in the `Docstrings `_ section. We use the following linters: diff --git a/docs/overview/deep_dive/function_arguments.rst b/docs/overview/deep_dive/function_arguments.rst index 537b45dcb9bf5..988db211600ec 100644 --- a/docs/overview/deep_dive/function_arguments.rst +++ b/docs/overview/deep_dive/function_arguments.rst @@ -10,7 +10,7 @@ Function Arguments Here, we explain how the function arguments differ between the placeholder implementation at :mod:`ivy/functional/ivy/category_name.py`, and the backend-specific implementation at :mod:`ivy/functional/backends/backend_name/category_name.py`. -Many of these points are already addressed in the previous sections: :ref:`Arrays`, :ref:`Data Types`, :ref:`Devices` and :ref:`Inplace Updates`. +Many of these points are already addressed in the previous sections: `Arrays `_, `Data Types `_, `Devices `_ and `Inplace Updates `_. However, we thought it would be convenient to revisit all of these considerations in a single section, dedicated to function arguments. As for type-hints, all functions in the Ivy API at :mod:`ivy/functional/ivy/category_name.py` should have full and thorough type-hints. @@ -161,13 +161,13 @@ For example, calling any of (:code:`+`, :code:`-`, :code:`*`, :code:`/` etc.) on :class:`ivy.NativeArray` instances are also not permitted for the :code:`out` argument, which is used in many functions. This is because the :code:`out` argument dictates the array to which the result should be written, and so it effectively serves the same purpose as the function return when no :code:`out` argument is specified. -This is all explained in more detail in the :ref:`Arrays` section. +This is all explained in more detail in the `Arrays `_ section. out Argument ------------ The :code:`out` argument should always be provided as a keyword-only argument, and it should be added to all functions in the Ivy API and backend API which support inplace updates, with a default value of :code:`None` in all cases. -The :code:`out` argument is explained in more detail in the :ref:`Inplace Updates` section. +The :code:`out` argument is explained in more detail in the `Inplace Updates `_ section. dtype and device arguments -------------------------- @@ -175,7 +175,7 @@ dtype and device arguments In the Ivy API at :mod:`ivy/functional/ivy/category_name.py`, the :code:`dtype` and :code:`device` arguments should both always be provided as keyword-only arguments, with a default value of :code:`None`. In contrast, these arguments should both be added as required arguments in the backend implementation at :mod:`ivy/functional/backends/backend_name/category_name.py`. In a nutshell, by the time the backend implementation is entered, the correct :code:`dtype` and :code:`device` to use have both already been correctly handled by code which is wrapped around the backend implementation. -This is further explained in the :ref:`Data Types` and :ref:`Devices` sections respectively. +This is further explained in the `Data Types `_ and `Devices `_ sections respectively. Numbers in Operator Functions ----------------------------- diff --git a/docs/overview/deep_dive/function_types.rst b/docs/overview/deep_dive/function_types.rst index 9765d6383aee6..d788f8cd0403b 100644 --- a/docs/overview/deep_dive/function_types.rst +++ b/docs/overview/deep_dive/function_types.rst @@ -81,8 +81,8 @@ The backend-specific implementation of :func:`ivy.tan` for PyTorch in :mod:`ivy x = _cast_for_unary_op(x) return torch.tan(x, out=out) -The reason that the Ivy implementation has type hint :code:`Union[ivy.Array, ivy.NativeArray]` but PyTorch implementation has :class:`torch.Tensor` is explained in the :ref:`Arrays` section. -Likewise, the reason that the :code:`out` argument in the Ivy implementation has array type hint :class:`ivy.Array` whereas :code:`x` has :code:`Union[ivy.Array, ivy.NativeArray]` is also explained in the :ref:`Arrays` section. +The reason that the Ivy implementation has type hint :code:`Union[ivy.Array, ivy.NativeArray]` but PyTorch implementation has :class:`torch.Tensor` is explained in the `Arrays `_ section. +Likewise, the reason that the :code:`out` argument in the Ivy implementation has array type hint :class:`ivy.Array` whereas :code:`x` has :code:`Union[ivy.Array, ivy.NativeArray]` is also explained in the `Arrays `_ section. Compositional Functions ----------------------- @@ -135,7 +135,7 @@ One example of this is :code:`ivy.linear` for which the torch native function :c to be a 2 dimensional tensor while as ivy also allows the :code:`weight` argument to be 3 dimensional. While achieving the objective of having superset behaviour across the backends, the native functionality of frameworks should be made use of as much as possible. Even if a framework-specific function doesn't provide complete superset behaviour, we should still make use of the partial behaviour that it provides and then add more logic for the -remaining part. This is explained in detail in the :ref:`Maximizing Usage of Native Functionality` section. Ivy allows this partial support with the help of the `partial_mixed_handler`_ +remaining part. This is explained in detail in the :ref:`overview/deep_dive/superset_behaviour:Maximizing Usage of Native Functionality` section. Ivy allows this partial support with the help of the `partial_mixed_handler`_ attribute which should be added to the backend implementation with a boolean function that specifies some condition on the inputs to switch between the compositional and primary implementations. For example, the :code:`torch` backend implementation of :code:`linear`` looks like: @@ -159,7 +159,7 @@ the :code:`handle_partial_mixed_function` decorator first evaluates the boolean is `True` and the compositional implementation otherwise. -For further information on decorators, please refer to the :ref:`Function Wrapping` section. +For further information on decorators, please refer to the `Function Wrapping `_ section. For all mixed functions, we must add the :code:`mixed_backend_wrappers` attribute to the compositional implementation of mixed functions to specify which additional wrappers need to be applied to the primary implementation and which ones from the compositional implementation should be skipped. We do this by creating a dictionary of two keys, :code:`to_add` and :code:`to_skip`, each containing the tuple of wrappers to be added or skipped respectively. In general, :code:`handle_out_argument`, :code:`inputs_to_native_arrays` and :code:`outputs_to_ivy_arrays` @@ -215,9 +215,9 @@ This *nestable* property of Ivy functions means that the same function can be us This added support for handling :class:`ivy.Container` instances is all handled automatically when `_wrap_function`_ is applied to every function in the :code:`ivy` module during `backend setting`_. This will add the `handle_nestable`_ wrapping to the function if it has the :code:`@handle_nestable` decorator. -This function wrapping process is covered in a bit more detail in the :ref:`Function Wrapping` section. +This function wrapping process is covered in a bit more detail in the `Function Wrapping `_ section. -Nestable functions are explained in more detail in the :ref:`Containers` section. +Nestable functions are explained in more detail in the `Containers ` section. Convenience Functions --------------------- diff --git a/docs/overview/deep_dive/function_wrapping.rst b/docs/overview/deep_dive/function_wrapping.rst index c07c0132298a1..532ea347815ec 100644 --- a/docs/overview/deep_dive/function_wrapping.rst +++ b/docs/overview/deep_dive/function_wrapping.rst @@ -17,6 +17,7 @@ Function Wrapping .. _`handle_nestable`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L896 .. _`inputs_to_native_shapes`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L488 .. _`outputs_to_ivy_shapes`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L501 +.. _`to_native_shapes_and_back`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L514 .. _`handle_view`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L627 .. _`handle_view_indexing`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L659 .. _`handle_array_function`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L299 @@ -29,6 +30,11 @@ Function Wrapping .. _`ivy.linear`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/functional/ivy/layers.py#L81 .. _`handle_exceptions`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/utils/exceptions.py#L189 .. _`example`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/functional/backends/torch/layers.py#L30 +.. _`Arrays`: arrays.rst +.. _`Inplace Updates`: inplace_updates.rst +.. _`Data Types`: data_types.rst +.. _`Devices`: devices.rst +.. _`Backend Setting`: backend_setting.rst When a backend framework is set by calling :code:`ivy.set_backend(backend_name)`, then all Ivy functions are `wrapped`_. This is achieved by calling `_wrap_function`_, which will apply the appropriate wrapping to the given function, based on what decorators it has. @@ -37,7 +43,7 @@ For example, `abs`_ has the decorators :code:`@to_native_arrays_and_back` and :c The new function returned by :code:`_wrap_function` is a replacement of the original function with extra code added to support requirements common to many functions in the API. This is the main purpose of the wrapping, to avoid code duplication which would exist if we added identical logic in every single function independently. -Depending on the function being wrapped, the new function might handle :ref:`Arrays`, :ref:`Inplace Updates`, :ref:`Data Types` and/or :ref:`Devices`. +Depending on the function being wrapped, the new function might handle `Arrays`_, `Inplace Updates`_, `Data Types`_ and/or `Devices`_. Our test decorators actually transforms to :code:`@given` decorators at Pytest collecting time, therefore this allows us to use other **Hypothesis** decorators like, :code:`@reproduce_failure`, :code:`@settings`, :code:`@seed`. @@ -74,11 +80,11 @@ This recommended order is followed to ensure that tests are efficient and accura Conversion Wrappers ^^^^^^^^^^^^^^^^^^^ -#. `inputs_to_native_arrays`_ : This wrapping function converts all :class:`ivy.Array` instances in the arguments to their :class:`ivy.NativeArray` counterparts, based on the :ref:`Backend Setting` before calling the function. -#. `inputs_to_ivy_arrays`_ : This wrapping function converts all :class:`ivy.NativeArray` instances in the arguments to their :class:`ivy.Array` counterparts, based on the :ref:`Backend Setting` before calling the function. -#. `outputs_to_ivy_arrays`_ : This wrapping function converts all :class:`ivy.NativeArray` instances in the outputs to their :class:`ivy.Array` counterparts, based on the :ref:`Backend Setting` before calling the function. +#. `inputs_to_native_arrays`_ : This wrapping function converts all :class:`ivy.Array` instances in the arguments to their :class:`ivy.NativeArray` counterparts, based on the `Backend Setting`_ before calling the function. +#. `inputs_to_ivy_arrays`_ : This wrapping function converts all :class:`ivy.NativeArray` instances in the arguments to their :class:`ivy.Array` counterparts, based on the `Backend Setting`_ before calling the function. +#. `outputs_to_ivy_arrays`_ : This wrapping function converts all :class:`ivy.NativeArray` instances in the outputs to their :class:`ivy.Array` counterparts, based on the `Backend Setting`_ before calling the function. #. `to_native_arrays_and_back`_ : This wrapping function converts all :class:`ivy.Array` instances in the arguments to their :class:`ivy.NativeArray` counterparts, calls the function with those arguments and then converts the :class:`ivy.NativeArray` instances in the output back to :class:`ivy.Array`. - This wrapping function is heavily used because it enables achieving the objective of ensuring that every ivy function could accept an :class:`ivy.Array` and return an :class:`ivy.Array`, making it independent of the :ref:`Backend Setting`. + This wrapping function is heavily used because it enables achieving the objective of ensuring that every ivy function could accept an :class:`ivy.Array` and return an :class:`ivy.Array`, making it independent of the `Backend Setting`_. Inference Wrappers ^^^^^^^^^^^^^^^^^^ @@ -95,7 +101,7 @@ Out Argument Support #. `handle_out_argument`_ : This wrapping function is used in nearly all ivy functions. It enables appropriate handling of the :code:`out` argument of functions. In cases where the backend framework natively supports the :code:`out` argument for a function, we prefer to use it as it's a more efficient implementation of the :code:`out` argument for that particular backend framework. - But in cases when it isn't supported, we support it anyway with :ref:`Inplace Updates`. + But in cases when it isn't supported, we support it anyway with `Inplace Updates`_. Nestable Support ^^^^^^^^^^^^^^^^ @@ -105,7 +111,7 @@ Nestable Support Partial Mixed Function Support ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -#. `handle_partial_mixed_function`_: This wrapping function enables switching between compositional and primary implementations of :ref:`Mixed Functions` based on some condition on the arguments of the function. +#. `handle_partial_mixed_function`_: This wrapping function enables switching between compositional and primary implementations of :ref:`overview/deep_dive/function_types:Mixed Functions` based on some condition on the arguments of the function. #. The condition is specified through a lambda function which when evaluates to `True` the primary implementation is run and otherwise the compositional implementation is executed. #. For backends that have a primary implementation of a mixed function, the reference to the compositional implementation is `stored as an attribute`_ inside the backend function during backend setting. To make use of this decorator, one must #. add the :code:`partial_mixed_handler` attribute containing the lambda function to the backend implementation. Here's an `example`_ from the torch backend implementation of linear. @@ -113,29 +119,29 @@ Partial Mixed Function Support Shape Conversion ^^^^^^^^^^^^^^^^ -#. `inputs_to_native_shapes`_ : This wrapping function converts all :class:`ivy.Shape` instances in the arguments to their :class:`ivy.NativeShape` counterparts, based on the :ref:`Backend Setting` before calling the function. -#. `outputs_to_ivy_shapes`_ : This wrapping function converts all :class:`ivy.NativeShape` instances in the outputs to their :class:`ivy.Shape` counterparts, based on the :ref:`Backend Setting` before calling the function. +#. `inputs_to_native_shapes`_ : This wrapping function converts all :class:`ivy.Shape` instances in the arguments to their :class:`ivy.NativeShape` counterparts, based on the `Backend Setting`_ before calling the function. +#. `outputs_to_ivy_shapes`_ : This wrapping function converts all :class:`ivy.NativeShape` instances in the outputs to their :class:`ivy.Shape` counterparts, based on the `Backend Setting`_ before calling the function. #. `to_native_shapes_and_back`_ : This wrapping function converts all :class:`ivy.Shape` instances in the arguments to their :class:`ivy.NativeShape` counterparts, calls the function with those arguments and then converts the :class:`ivy.NativeShape` instances in the output back to :class:`ivy.Shape`. View Handling ^^^^^^^^^^^^^ -#. `handle_view`_ : This wrapping function performs view handling based on our :ref:`Views` policy. +#. `handle_view`_ : This wrapping function performs view handling based on our :ref:`overview/deep_dive/inplace_updates:Views` policy. #. `handle_view_indexing`_ : This wrapping function is aimed at handling views for indexing. Exception Handling ^^^^^^^^^^^^^^^^^^ -#. `handle_exceptions`_ : This wrapping function helps in catching native exceptions and unifying them into `IvyException` or the relevant subclasses. More information can be found in the :ref:`Exception Handling` section. +#. `handle_exceptions`_ : This wrapping function helps in catching native exceptions and unifying them into `IvyException` or the relevant subclasses. More information can be found in the :ref:`overview/deep_dive/function_wrapping:Exception Handling` section. Miscellaneous Wrappers ^^^^^^^^^^^^^^^^^^^^^^ -#. `handle_array_function`_ : This wrapping function enables :ref:`Integrating custom classes with Ivy` +#. `handle_array_function`_ : This wrapping function enables :ref:`overview/deep_dive/arrays:Integrating custom classes with Ivy` #. `handle_complex_input`_ : This wrapping function enables handling of complex numbers. It introduces a keyword argument :code:`complex_mode`, which is used to choose the function's behaviour as per the wrapper's docstring. -When calling `_wrap_function`_ during :ref:`Backend Setting`, firstly the attributes of the functions are checked to get all the wrapping functions for a particular function. +When calling `_wrap_function`_ during `Backend Setting`_, firstly the attributes of the functions are checked to get all the wrapping functions for a particular function. Then all the wrapping functions applicable to a function are used to wrap the function. Each of these topics and each associated piece of logic added by the various wrapper functions are covered in more detail in the next sections. diff --git a/docs/overview/deep_dive/inplace_updates.rst b/docs/overview/deep_dive/inplace_updates.rst index 2faaf7c9b3a77..e70ae3ec1c613 100644 --- a/docs/overview/deep_dive/inplace_updates.rst +++ b/docs/overview/deep_dive/inplace_updates.rst @@ -9,7 +9,6 @@ Inplace Updates .. _`jax.numpy.tan`: https://jax.readthedocs.io/en/latest/_autosummary/jax.numpy.tan.html?highlight=tan .. _`presence of this attribute`: https://github.com/unifyai/ivy/blob/8ded4a5fc13a278bcbf2d76d1fa58ab41f5797d0/ivy/func_wrapper.py#L341 .. _`by the backend function`: https://github.com/unifyai/ivy/blob/8ded4a5fc13a278bcbf2d76d1fa58ab41f5797d0/ivy/func_wrapper.py#L372 -.. _`by the wrapper`: https://github.com/unifyai/ivy/blob/8ded4a5fc13a278bcbf2d76d1fa58ab41f5797d0/ivy/func_wrapper.py#L377 .. _`handled by the wrapper`: https://github.com/unifyai/ivy/blob/8ded4a5fc13a278bcbf2d76d1fa58ab41f5797d0/ivy/func_wrapper.py#L373 .. _`_wrap_fn`: https://github.com/unifyai/ivy/blob/6497b8a3d6b0d8aac735a158cd03c8f98eb288c2/ivy/container/wrapping.py#L69 .. _`NON_WRAPPED_FUNCTIONS`: https://github.com/unifyai/ivy/blob/fdaea62380c9892e679eba37f26c14a7333013fe/ivy/func_wrapper.py#L9 @@ -17,8 +16,6 @@ Inplace Updates .. _`ivy.reshape`: https://github.com/unifyai/ivy/blob/633eb420c5006a0a17c238bfa794cf5b6add8598/ivy/functional/ivy/manipulation.py#L418 .. _`ivy.astype`: https://github.com/unifyai/ivy/blob/8482eb3fcadd0721f339a1a55c3f3b9f5c86d8ba/ivy/functional/ivy/data_type.py#L46 .. _`ivy.asarray`: https://github.com/unifyai/ivy/blob/8482eb3fcadd0721f339a1a55c3f3b9f5c86d8ba/ivy/functional/ivy/creation.py#L114 -.. _`wrapping`: -.. _`ivy.inplace_update`: https://github.com/unifyai/ivy/blob/3a21a6bef52b93989f2fa2fa90e3b0f08cc2eb1b/ivy/functional/ivy/general.py#L1137 .. _`repo`: https://github.com/unifyai/ivy .. _`discord`: https://discord.gg/sXyFF8tDtm .. _`inplace updates channel`: https://discord.com/channels/799879767196958751/1028681763947552778 @@ -28,7 +25,7 @@ Inplace Updates Inplace updates enable users to overwrite the contents of existing arrays with new data. This enables much more control over the memory-efficiency of the program, preventing old unused arrays from being kept in memory for any longer than is strictly necessary. -The function `ivy.inplace_update`_ enables explicit inplace updates. +The function :func:`ivy.inplace_update` enables explicit inplace updates. :func:`ivy.inplace_update` is a *primary* function, and the backend-specific implementations for each backend are presented below. We also explain the rationale for why each implementation is the way it is, and the important differences. @@ -256,14 +253,14 @@ This could for example be the input array itself, but can also be any other arra All Ivy functions which return a single array should support inplace updates via the :code:`out` argument. The type hint of the :code:`out` argument is :code:`Optional[ivy.Array]`. However, as discussed above, if the function is *nestable* then :class:`ivy.Container` instances are also supported. -:class:`ivy.Container` is omitted from the type hint in such cases, as explained in the :ref:`Function Arguments` section. +:class:`ivy.Container` is omitted from the type hint in such cases, as explained in the `Function Arguments `_ section. When the :code:`out` argument is unspecified, then the return is simply provided in a newly created :class:`ivy.Array` (or :class:`ivy.Container` if *nestable*). However, when :code:`out` is specified, then the return is provided as an inplace update of the :code:`out` argument provided. This can for example be the same as the input to the function, resulting in a simple inplace update of the input. In the case of :class:`ivy.Array` return types, the :code:`out` argument is predominantly handled in `handle_out_argument`_. -As explained in the :ref:`Function Wrapping` section, this wrapping is applied to every function with the :code:`@handle_out_argument` decorator dynamically during `backend setting`_. +As explained in the `Function Wrapping `_ section, this wrapping is applied to every function with the :code:`@handle_out_argument` decorator dynamically during `backend setting`_. **Primary Functions** @@ -313,7 +310,7 @@ The implementations of :func:`ivy.tan` for each backend are as follows. tan.support_native_out = True -It's very important to ensure the :code:`support_native_out` attribute is not added to backend implementations that do not handle the :code:`out` argument, as the `presence of this attribute`_ dictates whether the argument should be handled `by the backend function`_ or `by the wrapper`_. +It's very important to ensure the :code:`support_native_out` attribute is not added to backend implementations that do not handle the :code:`out` argument, as the `presence of this attribute`_ dictates whether the argument should be handled `by the backend function`_ or `by the wrapper `_. This distinction only concerns how the inplace update is applied to the native array, which is operated upon directly by the backend. If :code:`out` is specified in an Ivy function, then an inplace update is always **also** performed on the :class:`ivy.Array` instance itself, which is how :code:`out` is provided to the function originally. @@ -351,7 +348,7 @@ Here we still have the :attr:`support_native_out` attribute since we want to tak However, in the :code:`else` statement, the last operation is :func:`torch.transpose` which does not support the :code:`out` argument, and so the native inplace update can't be performed by torch here. This is why we need to call :func:`ivy.inplace_update` explicitly here, to ensure the native inplace update is performed, as well as the :class:`ivy.Array` inplace update. -Another case where we need to use :func:`ivy.inplace_update`_ with a function that has :attr:`support_native_out` is for the example of the :code:`torch` backend implementation of the :func:`ivy.remainder` function +Another case where we need to use :func:`ivy.inplace_update` with a function that has :attr:`support_native_out` is for the example of the :code:`torch` backend implementation of the :func:`ivy.remainder` function .. code-block:: python @@ -435,7 +432,7 @@ Technically, this could be handled using the `handle_out_argument`_ wrapping, bu **Mixed Functions** -As explained in the :ref:`Function Types` section, *mixed* functions can effectively behave as either compositional or primary functions, depending on the backend that is selected. We must add the :code:`handle_out_argument` to the :code:`add_wrappers`key of +As explained in the `Function Types `_ section, *mixed* functions can effectively behave as either compositional or primary functions, depending on the backend that is selected. We must add the :code:`handle_out_argument` to the :code:`add_wrappers`key of the :code:`mixed_backend_wrappers` attribute so that the decorator gets added to the primary implementation when the backend is set. Here's an `example`_ from the linear function. @@ -451,7 +448,7 @@ When :code:`copy` is not specified explicitly, then an inplace update is perform Setting :code:`copy=False` is equivalent to passing :code:`out=input_array`. If only one of :code:`copy` or :code:`out` is specified, then this specified argument is given priority. If both are specified, then priority is given to the more general :code:`out` argument. -As with the :code:`out` argument, the :code:`copy` argument is also handled `by the wrapper `_. +As with the :code:`out` argument, the :code:`copy` argument is also handled `by the wrapper `_. Views diff --git a/docs/overview/deep_dive/ivy_frontends.rst b/docs/overview/deep_dive/ivy_frontends.rst index 4954ba12d1611..2a12b0c6c4d15 100644 --- a/docs/overview/deep_dive/ivy_frontends.rst +++ b/docs/overview/deep_dive/ivy_frontends.rst @@ -17,7 +17,6 @@ Ivy Frontends .. _`YouTube tutorial series`: https://www.youtube.com/watch?v=72kBVJTpzIw&list=PLwNuX3xB_tv-wTpVDMSJr7XW6IP_qZH0t .. _`discord`: https://discord.gg/sXyFF8tDtm .. _`ivy frontends channel`: https://discord.com/channels/799879767196958751/998782045494976522 -.. _`open task`: https://unify.ai/docs/ivy/overview/contributing/open_tasks.html#frontend-apis .. _`Array manipulation routines`: https://numpy.org/doc/stable/reference/routines.array-manipulation.html# .. _`Array creation routines`: https://numpy.org/doc/stable/reference/routines.array-creation.html @@ -62,7 +61,7 @@ Therefore, in order to avoid this potential conflict: * You should ensure that the tests are passing before merging any frontend PRs. The only exception to this rule is if the test is failing due to a bug in the Ivy functional API, which does not need to be solved as part of the frontend task. -There will be some implicit discussion of the locations of frontend functions in these examples, however an explicit explanation of how to place a frontend function can be found in a sub-section of the Frontend APIs `open task`_. +There will be some implicit discussion of the locations of frontend functions in these examples, however an explicit explanation of how to place a frontend function can be found in a sub-section of the Frontend APIs :ref:`open task `. **NOTE:** Type hints, docstrings, and examples are not required when working on frontend functions. @@ -73,7 +72,7 @@ There will be some implicit discussion of the locations of frontend functions in The native arrays of each framework have their own attributes and instance methods which differ from the attributes and instance methods of :class:`ivy.Array`. As such we have implemented framework-specific array classes: :class:`tf_frontend.Tensor`, :class:`torch_frontend.Tensor`, :class:`numpy_frontend.ndarray`, and :class:`jax_frontend.DeviceArray`. These classes simply wrap an :class:`ivy.Array`, which is stored in the :code:`ivy_array` attribute, and behave as closely as possible to the native framework array classes. -This is explained further in the `Classes and Instance Methods `_ section. +This is explained further in the :ref:`overview/deep_dive/ivy_frontends:Classes and Instance Methods` section. As we aim to replicate the frontend frameworks as closely as possible, all functions accept their frontend array class (as well as :class:`ivy.Array` and :class:`ivy.NativeArray`) and return a frontend array. However, since most logic in each function is handled by Ivy, the :class:`ivy.Array` must be extracted from any frontend array inputs. @@ -318,7 +317,7 @@ Short Frontend Implementations Ideally, all frontend functions should call the equivalent Ivy function and only be one line long. This is mainly because compositional implementations are bound to be slower than direct backend implementation calls. -In case a frontend function is complex and there is no equivalent Ivy function to use, it is strongly advised to add that function to our Experimental API. To do so, you are invited to open a *Missing Function Suggestion* issue as described in the `Open Tasks `_ section. A member of our team will then review your issue, and if the proposed addition is deemed to be timely and sensible, we will add the function to the "Extend Ivy Functional API" `ToDo list issue `_. +In case a frontend function is complex and there is no equivalent Ivy function to use, it is strongly advised to add that function to our Experimental API. To do so, you are invited to open a *Missing Function Suggestion* issue as described in the `Open Tasks <../contributing/open_tasks.rst>`_ section. A member of our team will then review your issue, and if the proposed addition is deemed to be timely and sensible, we will add the function to the "Extend Ivy Functional API" `ToDo list issue `_. If you would rather not wait around for a member of our team to review your suggestion, you can instead go straight ahead and add the frontend function as a heavy composition of the existing Ivy functions, with a :code:`#ToDo` comment included, explaining that this frontend implementation will be simplified when :func:`ivy.func_name` is added. @@ -348,7 +347,7 @@ The native TensorFlow function :func:`tf.reduce_logsumexp` does not have an equi Through compositions, we can easily meet the required input-output behaviour for the TensorFlow frontend function. -The entire workflow for extending the Ivy Frontends as an external contributor is explained in more detail in the `Open Tasks `_ section. +The entire workflow for extending the Ivy Frontends as an external contributor is explained in more detail in the :ref:`Open Tasks ` section. Unused Arguments ---------------- @@ -409,7 +408,7 @@ Classes and Instance Methods ---------------------------- Most frameworks include instance methods and special methods on their array class for common array processing functions, such as :func:`reshape`, :func:`expand_dims` and :func:`add`. -This simple design choice comes with many advantages, some of which are explained in our :ref:`Ivy Array` section. +This simple design choice comes with many advantages, some of which are explained in our `Ivy Array <../design/ivy_as_a_framework/ivy_array.rst>`_ section. **Important Note** Before implementing the instance method or special method, make sure that the regular function in the specific frontend is already implemented. @@ -516,7 +515,7 @@ For example, :class:`numpy.matrix` has an instance method of :meth:`any`: return any(self.A, axis=axis, out=out) We need to create these frontend array classes and all of their instance methods and also their special methods such that we are able to transpile code which makes use of these methods. -As explained in :ref:`Ivy as a Transpiler`, when transpiling code we first extract the computation graph in the source framework. +As explained in `Ivy as a Transpiler <../design/ivy_as_a_transpiler.rst>`_, when transpiling code we first extract the computation graph in the source framework. In the case of instance methods, we then replace each of the original instance methods in the extracted computation graph with these new instance methods defined in the Ivy frontend class. Frontend Data Type Promotion Rules diff --git a/docs/overview/deep_dive/ivy_frontends_tests.rst b/docs/overview/deep_dive/ivy_frontends_tests.rst index c3333472e2833..474c4a78d6d78 100644 --- a/docs/overview/deep_dive/ivy_frontends_tests.rst +++ b/docs/overview/deep_dive/ivy_frontends_tests.rst @@ -1,16 +1,16 @@ Ivy Frontend Tests ================== -.. _`here`: https://unify.ai/docs/ivy/design/ivy_as_a_transpiler.html +.. _`here`: ../design/ivy_as_a_transpiler.rst .. _`ivy frontends tests channel`: https://discord.com/channels/799879767196958751/1028267758028337193 .. _`test ivy`: https://github.com/unifyai/ivy/tree/db9a22d96efd3820fb289e9997eb41dda6570868/ivy_tests/test_ivy .. _`test_frontend_function`: https://github.com/unifyai/ivy/blob/591ac37a664ebdf2ca50a5b0751a3a54ee9d5934/ivy_tests/test_ivy/helpers.py#L1047 .. _`discord`: https://discord.gg/sXyFF8tDtm -.. _`Function Wrapping`: https://unify.ai/docs/ivy/overview/deep_dive/function_wrapping.html -.. _`open task`: https://unify.ai/docs/ivy/overview/contributing/open_tasks.html -.. _`Ivy Tests`: https://unify.ai/docs/ivy/overview/deep_dive/ivy_tests.html +.. _`Function Wrapping`: function_wrapping.rst +.. _`open task`: ../contributing/open_tasks.rst +.. _`Ivy Tests`: ivy_tests.rst .. _`Function Testing Helpers`: https://github.com/unifyai/ivy/blob/bf0becd459004ae6cffeb3c38c02c94eab5b7721/ivy_tests/test_ivy/helpers/function_testing.py -.. _`CI Pipeline`: https://unify.ai/docs/ivy/overview/deep_dive/continuous_integration.html +.. _`CI Pipeline`: continuous_integration.rst Introduction @@ -801,7 +801,7 @@ The CI Pipeline runs the entire collection of Frontend Tests for the frontend th You will need to make sure the Frontend Test is passing for each Ivy Frontend function you introduce/modify. If a test fails on the CI, you can see details about the failure under `Details -> Run Frontend Tests` as shown in `CI Pipeline`_. -You can also run the tests locally before making a PR. See the relevant :ref:`Setting Up Testing in PyCharm` section for instructions on how to do so. +You can also run the tests locally before making a PR. See the relevant :ref:`overview/contributing/setting_up:Setting Up Testing in PyCharm` section for instructions on how to do so. Frontend Framework Testing Configuration ---------------------------------------- diff --git a/docs/overview/deep_dive/ivy_tests.rst b/docs/overview/deep_dive/ivy_tests.rst index c151c7a7e8fb7..e2396a8b3d8ac 100644 --- a/docs/overview/deep_dive/ivy_tests.rst +++ b/docs/overview/deep_dive/ivy_tests.rst @@ -13,7 +13,7 @@ Ivy Tests .. _`methods`: https://hypothesis.readthedocs.io/en/latest/data.html .. _`finfo`: https://github.com/unifyai/ivy/blob/d8f1ffe8ebf38fa75161c1a9459170e95f3c82b6/ivy/functional/ivy/data_type.py#L276 .. _`data generation`: https://github.com/unifyai/ivy/blob/7063bf4475b93f87a4a96ef26c56c2bd309a2338/ivy_tests/test_ivy/test_functional/test_core/test_dtype.py#L337 -.. _`Function Types`: https://unify.ai/docs/ivy/overview/deep_dive/function_types.html +.. _`Function Types`: function_types.rst .. _`test_default_int_dtype`: https://github.com/unifyai/ivy/blob/7063bf4475b93f87a4a96ef26c56c2bd309a2338/ivy_tests/test_ivy/test_functional/test_core/test_dtype.py#L835 .. _`sampled_from`: https://hypothesis.readthedocs.io/en/latest/data.html#hypothesis.strategies.sampled_from .. _`lists`: https://hypothesis.readthedocs.io/en/latest/data.html#hypothesis.strategies.lists @@ -53,9 +53,15 @@ Ivy Tests .. _`dtype_and_values`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py#L83 .. _`dtype_values_axis`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py#L235 .. _`array_values`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py#L543 -.. _`CI Pipeline`: https://unify.ai/docs/ivy/overview/deep_dive/continuous_integration.html -.. _`Setting Up Testing in PyCharm`: https://unify.ai/docs/ivy/overview/contributing/setting_up.html#setting-up-testing-in-pycharm -.. _`Setting up for Free`: https://unify.ai/docs/ivy/overview/contributing/setting_up.html#setting-up-for-free +.. _`array_dtypes`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py#L15 +.. _`array_bools`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py#L17 +.. _`reshape_shapes`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/general_helpers.py#L16 +.. _`get_axis`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/general_helpers.py#L178 +.. _`get_shape`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/general_helpers.py#L67 +.. _`get_bounds`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/general_helpers.py#L145 +.. _`subsets`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/hypothesis_helpers/general_helpers.py#L48 +.. _`num_positional_args`: https://github.com/unifyai/ivy/blob/e50f71e283313caa9737f3c284496022ac67b58b/ivy_tests/test_ivy/helpers/testing_helpers.py#L78 +.. _`CI Pipeline`: continuous_integration.rst .. _`Hypothesis docs`: https://hypothesis.readthedocs.io/en/latest/data.html#core-strategies On top of the Array API `test suite`_, which is included as a submodule mapped to the folder :code:`test_array_api`, there is also a collection of Ivy tests, located in subfolder `test_ivy`_. @@ -252,7 +258,7 @@ Writing Ivy Tests ^^^^^^^^^^^^^^^^^ As mentioned previously, testing Ivy functions needs a lot of pre-processing and past-processing, using only :code:`given` decorator would not be sufficient -to write an effective test, the following example describes how to implement a test for the function :code:`ivy.abs, using our test decorators and test helpers. +to write an effective test, the following example describes how to implement a test for the function :code:`ivy.abs`, using our test decorators and test helpers. .. code-block:: python @handle_test( @@ -485,7 +491,7 @@ Meaning if the input is to be treated as a container, at the same time, is it a The generated values are then passed to the array creation functions inside the test function as tuples. -9. `valid_axes`_ - This function generates valid axes for a given array dimension. +9. valid_axes - This function generates valid axes for a given array dimension. For example -: .. code-block:: python @@ -561,7 +567,7 @@ This function should be used in places where the result doesn’t depend on the **Note** - Under the hood, **array_values** strategy is called if the data type is *integer*, and **none_or_list_of_floats** is called when the data type is *float*. -15. `get_probs`_ - This is used to generate a tuple containing two values. +15. get_probs - This is used to generate a tuple containing two values. The first one being the *unnormalized probabilities* for all elements in a population, the second one being the *population size*. For example-: @@ -616,7 +622,7 @@ It would be helpful to keep in mind the following points while writing test -: Testing Partial Mixed Functions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As explained in the :ref:`Function Types` section, partial mixed functions are a special type of mixed functions that either utilize the compositional implementation +As explained in the `Function Types `_ section, partial mixed functions are a special type of mixed functions that either utilize the compositional implementation or the primary implementation depending on some conditions on the input. Therefore, the data-types supported by partial mixed functions depend on which implementation will be used for the given input. For example, when :code:`function_supported_dtypes` is called with respect to `ivy.linear` with torch backend, the following output is returned: @@ -843,7 +849,7 @@ You will need to make sure the Ivy Test is passing for each Ivy function you int If a test fails on the CI, you can see details about the failure under `Details -> Run Ivy Tests` as shown in `CI Pipeline`_. You can also run the tests locally before making a PR. The instructions differ according to the IDE you are using. For -PyCharm and Visual Studio Code you can refer to the `Setting Up Testing in PyCharm`_ section and `Setting up for Free`_ +PyCharm and Visual Studio Code you can refer to the :ref:`overview/contributing/setting_up:Setting Up Testing in PyCharm` section and :ref:`overview/contributing/setting_up:Setting up for Free` section respectively. Re-Running Failed Ivy Tests diff --git a/docs/overview/deep_dive/navigating_the_code.rst b/docs/overview/deep_dive/navigating_the_code.rst index 29049c1bd6748..1bd9b0ae9dd7d 100644 --- a/docs/overview/deep_dive/navigating_the_code.rst +++ b/docs/overview/deep_dive/navigating_the_code.rst @@ -7,7 +7,6 @@ Navigating the Code .. _`navigating the code channel`: https://discord.com/channels/799879767196958751/982737793476345888 .. _`Array API Standard convention`: https://data-apis.org/array-api/2021.12/API_specification/array_object.html#api-specification-array-object--page-root .. _`flake8`: https://flake8.pycqa.org/en/latest/index.html -.. _`pre-commit guide`: https://unify.ai/docs/ivy/overview/contributing/setting_up.html#pre-commit Categorization -------------- diff --git a/docs/overview/deep_dive/superset_behaviour.rst b/docs/overview/deep_dive/superset_behaviour.rst index 446544c9fb936..5e232c7ceabd3 100644 --- a/docs/overview/deep_dive/superset_behaviour.rst +++ b/docs/overview/deep_dive/superset_behaviour.rst @@ -73,7 +73,7 @@ We explore this through the examples of :func:`softplus`. **ivy.softplus** -When looking at the :func:`softplus` (or closest equivalent) implementations for `Ivy `_, `JAX `_, `TensorFlow `_, and `PyTorch `_, we can see that torch is the only framework which supports the inclusion of the :code:`beta` and :code:`threshold` arguments, which are added for improved numerical stability. +When looking at the :func:`softplus` (or closest equivalent) implementations for `Ivy <../../docs/functional/ivy/activations/ivy.functional.ivy.activations.softplus.rst>`_, `JAX `_, `TensorFlow `_, and `PyTorch `_, we can see that torch is the only framework which supports the inclusion of the :code:`beta` and :code:`threshold` arguments, which are added for improved numerical stability. We can also see that numpy does not support a :func:`softplus` function at all. Ivy should also support the :code:`beta` and :code:`threshold` arguments, in order to provide the generalized superset implementation among the backend frameworks. @@ -143,25 +143,25 @@ The first three examples are more-or-less superset examples, while the last exam **ivy.linspace** -When looking at the :func:`linspace` (or closest equivalent) implementations for `Ivy `_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that torch does not support arrays for the :code:`start` and :code:`end` arguments, while JAX, numpy, and tensorflow all do. +When looking at the :func:`linspace` (or closest equivalent) implementations for `Ivy <../../docs/functional/ivy/creation/ivy.functional.ivy.creation.linspace.rst>`_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that torch does not support arrays for the :code:`start` and :code:`end` arguments, while JAX, numpy, and tensorflow all do. Likewise, Ivy also supports arrays for the :code:`start` and :code:`stop` arguments, and in doing so provides the generalized superset implementation among the backend frameworks. **ivy.eye** -When looking at the :func:`eye` (or closest equivalent) implementations for `Ivy `_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that tensorflow is the only framework which supports a :code:`batch_shape` argument. +When looking at the :func:`eye` (or closest equivalent) implementations for `Ivy <../../docs/functional/ivy/creation/ivy.functional.ivy.creation.eye.rst>`_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that tensorflow is the only framework which supports a :code:`batch_shape` argument. Likewise, Ivy also supports a :code:`batch_shape` argument, and in doing so provides the generalized superset implementation among the backend frameworks. **ivy.scatter_nd** -When looking at the :func:`scatter_nd` (or closest equivalent) implementations for `Ivy `_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that torch only supports scattering along a single dimension, while all other frameworks support scattering across multiple dimensions at once. +When looking at the :func:`scatter_nd` (or closest equivalent) implementations for `Ivy <../../docs/functional/ivy/general/ivy.functional.ivy.general.scatter_nd.rst>`_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that torch only supports scattering along a single dimension, while all other frameworks support scattering across multiple dimensions at once. Likewise, Ivy also supports scattering across multiple dimensions at once, and in doing so provides the generalized superset implementation among the backend frameworks. **ivy.logical_and** -When looking at the :func:`logical_and` (or closest equivalent) implementations for `Ivy `_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that numpy and torch support the :code:`out` argument for performing inplace updates, while JAX and tensorflow do not. +When looking at the :func:`logical_and` (or closest equivalent) implementations for `Ivy <../../docs/functional/ivy/elementwise/ivy.functional.ivy.elementwise.logical_and.rst>`_, `JAX `_, `NumPy `_, `TensorFlow `_, and `PyTorch `_, we can see that numpy and torch support the :code:`out` argument for performing inplace updates, while JAX and tensorflow do not. With regards to the supported data types, JAX, numpy, and torch support numeric arrays, while tensorflow supports only boolean arrays. With regards to both of these points, Ivy provides the generalized superset implementation among the backend frameworks, with support for the :code:`out` argument and also support for both numeric and boolean arrays in the input. @@ -174,8 +174,8 @@ Maximizing Usage of Native Functionality While achieving the objective of having superset behaviour across the backends, the native functionality of frameworks should be made use of as much as possible. Even if a framework-specific function doesn't provide complete superset behaviour, we should still make use of the partial behaviour that it provides and then add more logic for the remaining part. -This is for efficiency reasons and is more explained under the `Mixed Function `_ section. -In cases when a framework-specific function exists for one or two backends but not the others, we implement a `Mixed Function `_. +This is for efficiency reasons and is more explained under the :ref:`Mixed Function ` section. +In cases when a framework-specific function exists for one or two backends but not the others, we implement a :ref:`Mixed Function `. But when the framework-specific functions do not cover all superset functionality, Ivy also allows for a mixed-compositional hybrid approach. Consider the example of :func:`interpolate`. diff --git a/docs/overview/design.rst b/docs/overview/design.rst index d487262d5f4d2..ea32c66512596 100644 --- a/docs/overview/design.rst +++ b/docs/overview/design.rst @@ -1,11 +1,13 @@ Design ====== +.. _`Deep Dive`: deep_dive.rst + This section is aimed at general users, who would like to learn how to use Ivy, and are less concerned about how it all works under the hood 🔧 -The :ref:`Deep Dive` section is more targeted at potential contributors, and at users who would like to dive deeper into the weeds of the framework🌱, and gain a better understanding of what is actually going on behind the scenes 🎬 +The `Deep Dive`_ section is more targeted at potential contributors, and at users who would like to dive deeper into the weeds of the framework🌱, and gain a better understanding of what is actually going on behind the scenes 🎬 -If that sounds like you, feel free to check out the :ref:`Deep Dive` section after you've gone through the higher level overview which is covered in this *design* section! +If that sounds like you, feel free to check out the `Deep Dive`_ section after you've gone through the higher level overview which is covered in this *design* section! | So, starting off with our higher level *design* section, Ivy can fulfill two distinct purposes: | @@ -23,16 +25,16 @@ If that sounds like you, feel free to check out the :ref:`Deep Dive` section aft :align: center :width: 100% -| (a) :ref:`Building Blocks` +| (a) `Building Blocks `_ | back-end functional APIs ✅ | Ivy functional API ✅ | Framework Handler ✅ | Ivy Compiler 🚧 | -| (b) :ref:`Ivy as a Transpiler` +| (b) `Ivy as a Transpiler `_ | front-end functional APIs 🚧 | -| (c) :ref:`Ivy as a Framework` +| (c) `Ivy as a Framework `_ | Ivy stateful API ✅ | Ivy Container ✅ | Ivy Array ✅ diff --git a/docs/overview/design/building_blocks.rst b/docs/overview/design/building_blocks.rst index 3b77f3b1d26aa..0d1e2b22250d8 100644 --- a/docs/overview/design/building_blocks.rst +++ b/docs/overview/design/building_blocks.rst @@ -1,8 +1,6 @@ Building Blocks =============== -.. _`out argument`: https://unify.ai/docs/ivy/overview/deep_dive/inplace_updates.html#out-argument - Here we explain the components of Ivy which are fundamental to its usage either as a code converter or as a fully-fledged framework-agnostic ML framework. These are the 4 parts labelled as (a) in the image below: @@ -73,7 +71,7 @@ There are separate backend modules for JAX, TensorFlow, PyTorch, and NumPy, and stack.support_native_out = True -There were no changes required for this function, however NumPy and PyTorch both had to be marked as supporting the `out argument`_ natively. +There were no changes required for this function, however NumPy and PyTorch both had to be marked as supporting the :ref:`overview/deep_dive/inplace_updates:out argument` natively. For more complicated functions, we need to do more than simply wrap and maybe change the name. For functions with differing behavior then we must modify the function to fit the unified in-out behavior of Ivy’s API. @@ -491,7 +489,7 @@ The example above further emphasizes that the graph compiler creates a computati Specifically, the same Ivy code compiles to different graphs depending on the selected backend. However, when compiling native framework code, we are only able to compile a graph for that same framework. For example, we cannot take torch code and compile this into tensorflow code. -However, we can transpile torch code into tensorflow code (see :ref:`Ivy as a Transpiler` for more details). +However, we can transpile torch code into tensorflow code (see `Ivy as a Transpiler `_ for more details). The graph compiler does not compile to C++, CUDA, or any other lower level language. It simply traces the backend functional methods in the graph, stores this graph, and then efficiently traverses this graph at execution time, all in Python. diff --git a/docs/overview/design/ivy_as_a_framework.rst b/docs/overview/design/ivy_as_a_framework.rst index 5d5e5cb73b0ec..bf1201048a94b 100644 --- a/docs/overview/design/ivy_as_a_framework.rst +++ b/docs/overview/design/ivy_as_a_framework.rst @@ -1,10 +1,10 @@ Ivy as a Framework ================== -On the :ref:`Building Blocks` page, we explored the role of the backend functional APIs, the Ivy functional API, the framework handler, and the graph compiler. +On the `Building Blocks `_ page, we explored the role of the backend functional APIs, the Ivy functional API, the framework handler, and the graph compiler. These are parts labeled as (a) in the image below. -On the :ref:`Ivy as a Transpiler` page, we explained the role of the backend-specific frontends in Ivy, and how these enable automatic code conversions between different ML frameworks. +On the `Ivy as a Transpiler `_ page, we explained the role of the backend-specific frontends in Ivy, and how these enable automatic code conversions between different ML frameworks. This part is labeled as (b) in the image below. So far, by considering parts (a) and (b), we have mainly treated Ivy as a fully functional framework with code conversion abilities. @@ -19,13 +19,13 @@ These parts are labeled as (c) in the image below. You may choose from the following upcoming discussions or click next. -| (a) :ref:`Ivy Container` +| (a) `Ivy Container `_ | Hierarchical container solving almost everything behind the scenes in Ivy | -| (b) :ref:`Ivy Stateful API` +| (b) `Ivy Stateful API `_ | Trainable Layers, Modules, Optimizers, and more built on the functional API and the Ivy Container | -| (c) :ref:`Ivy Array` +| (c) `Ivy Array `_ | Bringing methods as array attributes to Ivy, cleaning up and simplifying code .. toctree:: diff --git a/docs/overview/design/ivy_as_a_framework/ivy_array.rst b/docs/overview/design/ivy_as_a_framework/ivy_array.rst index cdce00d179a58..96d0ba2e6ef76 100644 --- a/docs/overview/design/ivy_as_a_framework/ivy_array.rst +++ b/docs/overview/design/ivy_as_a_framework/ivy_array.rst @@ -197,7 +197,7 @@ API Monkey Patching All ivy functions with array inputs/outputs have been wrapped to return :class:`ivy.Array` instances while accepting both :class:`ivy.Array` and :class:`ivy.NativeArray` instances. This allows for the control required to provide a unified array interface. -For more details on wrapping, see the `Function Wrapping `_ page in deep dive. +For more details on wrapping, see the `Function Wrapping <../../deep_dive/function_wrapping.rst>`_ page in deep dive. Instance Methods diff --git a/docs/overview/design/ivy_as_a_framework/ivy_container.rst b/docs/overview/design/ivy_as_a_framework/ivy_container.rst index f566472a6147d..fad13c67f9f26 100644 --- a/docs/overview/design/ivy_as_a_framework/ivy_container.rst +++ b/docs/overview/design/ivy_as_a_framework/ivy_container.rst @@ -145,7 +145,7 @@ Or we can flip each sub-array: } } -There are about 200 such functions for the :class:`ivy.Container` class in total, check out the `code `_ or `docs `_ to see what they are! +There are about 200 such functions for the :class:`ivy.Container` class in total, check out the `code `_ or `docs <../../../docs/data_classes/data_classes/ivy.data_classes.container.rst>`_ to see what they are! Built-ins ---------- @@ -458,7 +458,7 @@ All nested structures above this height are truncated into single keys with a These are very useful methods when stepping through code and debugging complex nested structures such as the weights of a network. There are also methods: :code:`cont_with_print_limit` for controlling the printable size of arrays before the shape is instead displayed, :code:`cont_with_key_length_limit` for setting the maximum key length before string clipping, :code:`cont_with_print_indent` for controlling the nested indent, and many more. -Check out the `docs `_ for more details! +Check out the `docs <../../../docs/data_classes/data_classes/ivy.data_classes.container.rst>`_ for more details! Use Cases --------- diff --git a/docs/overview/design/ivy_as_a_framework/ivy_stateful_api.rst b/docs/overview/design/ivy_as_a_framework/ivy_stateful_api.rst index 2993a8f5279e2..3c6574b884d04 100644 --- a/docs/overview/design/ivy_as_a_framework/ivy_stateful_api.rst +++ b/docs/overview/design/ivy_as_a_framework/ivy_stateful_api.rst @@ -370,7 +370,7 @@ The actual implementation for the :class:`ivy.Linear` layer exposed in the Ivy s self.v.b if self._with_bias else None) The :class:`ivy.Initializer` class has a single abstract method, :code:`create_variables(var_shape, dev, fan_out=None, fan_in=None, *args, **kwargs)`. -Check out the `code `_ or `docs `_ for more details. +Check out the `code `_ or :ref:`docs ` for more details. The default initializer for the weights is :class:`ivy.GlorotUniform` and for this bias is :class:`ivy.Zeros`. Let’s take a quick look at what these look like. :class:`ivy.GlorotUniform` derives from a more general :class:`ivy.Uniform` initializer class, and is then simply implemented as follows: diff --git a/docs/overview/design/ivy_as_a_transpiler.rst b/docs/overview/design/ivy_as_a_transpiler.rst index 56467a8d6e53b..50dd33d747ada 100644 --- a/docs/overview/design/ivy_as_a_transpiler.rst +++ b/docs/overview/design/ivy_as_a_transpiler.rst @@ -1,7 +1,7 @@ Ivy as a Transpiler =================== -On the :ref:`Building Blocks` page, we explored the role of the backend functional APIs, the Ivy functional API, the backend handler, and the graph compiler. +On the `Building Blocks `_ page, we explored the role of the backend functional APIs, the Ivy functional API, the backend handler, and the graph compiler. These parts are labelled (a) in the image below. Here, we explain the role of the backend-specific frontends in Ivy, and how these enable automatic code conversions between different ML frameworks. diff --git a/docs/overview/get_started.rst b/docs/overview/get_started.rst index 30e274ec9e26f..5141c90eea1e3 100644 --- a/docs/overview/get_started.rst +++ b/docs/overview/get_started.rst @@ -4,7 +4,7 @@ Get Started .. If you want to use **Ivy's compiler and transpiler**, make sure to follow the - :ref:`setting up instructions for the API key ` + :ref:`setting up instructions for the API key ` after installing Ivy! @@ -52,7 +52,7 @@ changes, but we can't ensure everything will work as expected! If you are planning to contribute, you want to run the tests, or you are looking for more in-depth instructions, it's probably best to check out -the `Contributing - Setting Up `_ page, +the `Contributing - Setting Up `_ page, where OS-specific and IDE-specific instructions and video tutorials to install Ivy are available! diff --git a/docs/overview/motivation.rst b/docs/overview/motivation.rst index d8ebea99d15f5..a6f9278225af7 100644 --- a/docs/overview/motivation.rst +++ b/docs/overview/motivation.rst @@ -1,13 +1,13 @@ Motivation ========== -| (a) :ref:`ML Explosion` +| (a) `ML Explosion `_ | A huge number of ML tools have exploded onto the scene! | -| (b) :ref:`Why Unify?` +| (b) `Why Unify? `_ | Why should we try to unify them? | -| (c) :ref:`Standardization` +| (c) `Standardization `_ | We’re collaborating with The `Consortium for Python Data API Standards `_ .. toctree:: diff --git a/docs/overview/one_liners/transpile.rst b/docs/overview/one_liners/transpile.rst index d24c631997fd0..6e2f056a49110 100644 --- a/docs/overview/one_liners/transpile.rst +++ b/docs/overview/one_liners/transpile.rst @@ -241,7 +241,7 @@ still working on some rough edges. These include: the inference to be correct. Keep in mind that the transpiler uses the graph compiler under the hood, so the -`sharp bits of the compiler `_ +:ref:`sharp bits of the compiler ` apply here as well! Examples diff --git a/docs/overview/related_work.rst b/docs/overview/related_work.rst index 1d82f83fcbe0c..51b6b10746179 100644 --- a/docs/overview/related_work.rst +++ b/docs/overview/related_work.rst @@ -1,11 +1,23 @@ Related Work ============ +.. _`RWorks API Standards`: related_work/api_standards.rst +.. _`RWorks Wrapper Frameworks`: related_work/wrapper_frameworks.rst +.. _`RWorks Frameworks`: related_work/frameworks.rst +.. _`RWorks Graph Tracers`: related_work/graph_tracers.rst +.. _`RWorks Exchange Formats`: related_work/exchange_formats.rst +.. _`RWorks Compiler Infrastructure`: related_work/compiler_infrastructure.rst +.. _`RWorks Multi-Vendor Compiler Frameworks`: related_work/multi_vendor_compiler_frameworks.rst +.. _`RWorks Vendor-Specific APIs`: related_work/vendor_specific_apis.rst +.. _`RWorks Vendor-Specific Compilers`: related_work/vendor_specific_compilers.rst +.. _`RWorks ML-Unifying Companies`: related_work/ml_unifying_companies.rst +.. _`RWorks What does Ivy Add?`: related_work/what_does_ivy_add.rst + In this section, we explain how Ivy compares to many other very important and related pieces of work, which also address fragmentation but at other areas within the ML stack. Firstly, we need to look at the overall ML stack, and understand how the high level frameworks relate to the low level components. -In order to conceptualize this rather complex hierarchy, we have broken the ML stack into 9 groups, which are: :ref:`RWorks API Standards`, :ref:`RWorks Wrapper Frameworks`, :ref:`RWorks Frameworks`, :ref:`RWorks Graph Tracers`, :ref:`RWorks Exchange Formats`, :ref:`RWorks Compiler Infrastructure`, :ref:`RWorks Multi-Vendor Compiler Frameworks`, :ref:`RWorks Vendor-Specific APIs` and :ref:`RWorks Vendor-Specific Compilers`, going from high level to low level respectively. +In order to conceptualize this rather complex hierarchy, we have broken the ML stack into 9 groups, which are: `RWorks API Standards`_, `RWorks Wrapper Frameworks`_, `RWorks Frameworks`_, `RWorks Graph Tracers`_, `RWorks Exchange Formats`_, `RWorks Compiler Infrastructure`_, `RWorks Multi-Vendor Compiler Frameworks`_, `RWorks Vendor-Specific APIs`_ and `RWorks Vendor-Specific Compilers`_, going from high level to low level respectively. .. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/related_work/ml_stack.png?raw=true :width: 100% @@ -18,37 +30,37 @@ We see these efforts as being very complimentary to Ivy's vision for high level Finally, we discuss how Ivy compares to each of these important works at all levels within the ML stack. -| (a) :ref:`RWorks API Standards` 🤝🏽 +| (a) `RWorks API Standards`_ 🤝🏽 | Standardized APIs which similar libraries should adhere to | -| (b) :ref:`RWorks Wrapper Frameworks` 🎁 +| (b) `RWorks Wrapper Frameworks`_ 🎁 | Frameworks which wrap other ML frameworks | -| (c) :ref:`RWorks Frameworks` 🔢 +| (c) `RWorks Frameworks`_ 🔢 | Standalone ML Frameworks | -| (d) :ref:`RWorks Graph Tracers` 🕸️ +| (d) `RWorks Graph Tracers`_ 🕸️ | Extracting acyclic directed computation graphs from code | -| (e) :ref:`RWorks Exchange Formats` 💱 +| (e) `RWorks Exchange Formats`_ 💱 | File formats to exchange neural networks between frameworks | -| (f) :ref:`RWorks Compiler Infrastructure` 🔟️🏗️ +| (f) `RWorks Compiler Infrastructure`_ 🔟️🏗️ | Infrastructure and standards to simplify the lives of compiler designers | -| (g) :ref:`RWorks Multi-Vendor Compiler Frameworks` 🖥️💻🔟 +| (g) `RWorks Multi-Vendor Compiler Frameworks`_ 🖥️💻🔟 | Executing ML code on a variety of hardware targets | -| (h) :ref:`RWorks Vendor-Specific APIs` 💻🔢 +| (h) `RWorks Vendor-Specific APIs`_ 💻🔢 | Interfacing with specific hardware in an intuitive manner | -| (i) :ref:`RWorks Vendor-Specific Compilers` 💻🔟 +| (i) `RWorks Vendor-Specific Compilers`_ 💻🔟 | Compiling code to specific hardware | -| (j) :ref:`RWorks ML-Unifying Companies` 📈 +| (j) `RWorks ML-Unifying Companies`_ 📈 | Companies working towards unification in ML | -| (k) :ref:`RWorks What does Ivy Add?` 🟢 +| (k) `RWorks What does Ivy Add?`_ 🟢 | How does Ivy fit into all of this? .. toctree:: diff --git a/docs/overview/related_work/compiler_infrastructure.rst b/docs/overview/related_work/compiler_infrastructure.rst index a0ff2ee411b32..b5a11bb113493 100644 --- a/docs/overview/related_work/compiler_infrastructure.rst +++ b/docs/overview/related_work/compiler_infrastructure.rst @@ -39,7 +39,7 @@ OneAPI The set of APIs spans several domains that benefit from acceleration, including libraries for linear algebra math, deep learning, machine learning, video processing, and others. `OneDNN`_ is particularly relevant, focusing on neural network functions for deep learning training and inference. Intel CPUs and GPUs have accelerators for Deep Learning software, and OneDNN provides a unified interface to utilize these accelerators, with much of the hardware-specific complexity abstracted away. -In a similar manner to `MLIR`_, OneAPI is also designed to operate at a lower level than the Neural Network :ref:`Exchange Formats`. +In a similar manner to `MLIR`_, OneAPI is also designed to operate at a lower level than the Neural Network :ref:`overview/related_work/what_does_ivy_add:Exchange Formats`. The interface is lower level and more primitive than the neural network exchange formats, with a focus on the core low-level operations such as convolutions, matrix multiplications, batch normalization etc. This makes OneDNN very much complementary to these formats, where OneDNN can sit below the exchange formats in the overall stack, enabling accelerators to be fully leveraged with minimal hardware-specific considerations, with this all helpfully being abstracted by the OneDNN API. Indeed, OneAPI and MLIR can work together in tandem, and OneDNN is working to `integrate Tensor Possessing Primitives in the MLIR compilers used underneath TensorFlow `_. diff --git a/docs/overview/related_work/what_does_ivy_add.rst b/docs/overview/related_work/what_does_ivy_add.rst index 475f2c6a1ff62..14a407d24a751 100644 --- a/docs/overview/related_work/what_does_ivy_add.rst +++ b/docs/overview/related_work/what_does_ivy_add.rst @@ -38,7 +38,7 @@ However, for the time being, we are focusing exclusively on Python, in order to Wrapper Frameworks ------------------ Ivy is itself a Python Wrapper Framework. -The biggest difference between Ivy and all others listed in the :ref:`Wrapper Frameworks` section is that Ivy supports transpilations between frameworks, while all other frameworks only enable the creation of entirely new code which itself is framework-agnostic. +The biggest difference between Ivy and all others listed in the `Wrapper Frameworks `_ section is that Ivy supports transpilations between frameworks, while all other frameworks only enable the creation of entirely new code which itself is framework-agnostic. There are also other more subtle differences. For example, Ivy includes both a low level fully functional API and a high level stateful API, offering both low level control and high level convenience. In contrast, `EagerPy`_ and `TensorLy`_ both only include functional APIs, `Thinc`_ only includes a high level stateful API, and `NeuroPod`_ only supports an even higher level wrapper for deployment. @@ -51,7 +51,7 @@ It therefore extends what is possible in any of the specific individual framewor Graph Tracers ------------- -Ivy’s :ref:`Graph Compiler` exhibits similar properties to many of the framework-specific graph tracers. +Ivy’s `Graph Compiler <../one_liners/compile>`_ exhibits similar properties to many of the framework-specific graph tracers. Ivy’s graph compiler employs function tracing for computing the graph, and uses this graph as an intermediate representation during the transpilation process. Of all the graph tracers, Ivy’s graph compiler is most similar to `torch.fx`_. This is because :code:`torch.fx` also operates entirely in Python, without deferring to lower level languages for tracing and extracting the computation graph or the intermediate representation. @@ -99,7 +99,7 @@ However, again they do nothing to address the challenge of running code from one ML-Unifying Companies --------------------- -The ML-unifying companies `Quansight`_, `OctoML`_ and `Modular`_ are/were directly involved with the `Array API Standard`_, `Apache TVM`_ and `MLIR`_ respectively, as explained in the :ref:`ML-Unifying Companies` section. +The ML-unifying companies `Quansight`_, `OctoML`_ and `Modular`_ are/were directly involved with the `Array API Standard`_, `Apache TVM`_ and `MLIR`_ respectively, as explained in the `ML-Unifying Companies `_ section. For the same reasons that Ivy as a framework is complementary to these three frameworks, Ivy as a company is also complementary to these three companies. Firstly, we are adhering to the `Array API Standard`_ defined by Quansight. In essence, they have written the standard and we have implemented it, which is pretty much as complementary as it gets. diff --git a/docs/partial_conf.py b/docs/partial_conf.py index cb577f2abfc2f..fa46420c87526 100644 --- a/docs/partial_conf.py +++ b/docs/partial_conf.py @@ -42,6 +42,8 @@ skippable_method_attributes = [{"__qualname__": "_wrap_function..new_function"}] +autosectionlabel_prefix_document = True + # Retrieve html_theme_options from docs/conf.py from docs.conf import html_theme_options @@ -49,4 +51,5 @@ repo_name = "ivy" +# Retrieve demos specific configuration from docs.demos.demos_conf import * # noqa From 3e998e9abb28803e32317006a47c5bceee63aca0 Mon Sep 17 00:00:00 2001 From: RashulChutani Date: Wed, 6 Sep 2023 22:34:06 +0530 Subject: [PATCH 037/127] Incorporate pandas, mindspore, onnx, sklearn, and xgboost tests in the run_tests.py script [skip ci] --- run_tests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/run_tests.py b/run_tests.py index 05bf96bf7bbca..926278fb7b3dd 100644 --- a/run_tests.py +++ b/run_tests.py @@ -14,6 +14,11 @@ "test_stateful", "test_misc", "test_scipy", + "test_pandas", + "test_mindspore", + "test_onnx", + "test_sklearn", + "test_xgboost" ) db_dict = { "test_functional/test_core": ["core", 10], @@ -28,6 +33,11 @@ "test_misc": ["misc", 19], "test_paddle": ["paddle", 20], "test_scipy": ["scipy", 21], + "test_pandas": ["pandas", 22], + "test_mindspore": ["mindspore", 23], + "test_onnx": ["onnx", 24], + "test_sklearn": ["sklearn", 25], + "test_xgboost": ["xgboost", 26] } result_config = { "success": "https://img.shields.io/badge/-success-success", From ef71504e42144d40c2e10b601d44f188ebd19c55 Mon Sep 17 00:00:00 2001 From: Abdullah Sabry Date: Thu, 7 Sep 2023 07:40:38 +0300 Subject: [PATCH 038/127] Added fft2 to Jax frontend (#22309) --- ivy/functional/frontends/jax/numpy/fft.py | 7 +++ .../test_jax/test_numpy/test_fft.py | 51 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/ivy/functional/frontends/jax/numpy/fft.py b/ivy/functional/frontends/jax/numpy/fft.py index 16d9cb97e67b2..0ba0fa31f9c94 100644 --- a/ivy/functional/frontends/jax/numpy/fft.py +++ b/ivy/functional/frontends/jax/numpy/fft.py @@ -11,6 +11,13 @@ def fft(a, n=None, axis=-1, norm=None): return ivy.fft(a, axis, norm=norm, n=n) +@to_ivy_arrays_and_back +def fft2(a, s=None, axes=(-2, -1), norm=None): + if norm is None: + norm = "backward" + return ivy.array(ivy.fft2(a, s=s, dim=axes, norm=norm), dtype=ivy.dtype(a)) + + @to_ivy_arrays_and_back @with_unsupported_dtypes({"2.4.2 and below": ("float16", "bfloat16")}, "paddle") def fftshift(x, axes=None, name=None): diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py index 7fd9f00f3f135..f4fc0911ae534 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py @@ -48,6 +48,57 @@ def test_jax_numpy_fft( ) +# fft2 +@handle_frontend_test( + fn_tree="jax.numpy.fft.fft2", + dtype_values=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("complex"), + num_arrays=1, + min_value=-1e5, + max_value=1e5, + min_num_dims=2, + max_num_dims=5, + min_dim_size=2, + max_dim_size=5, + allow_inf=False, + large_abs_safety_factor=2.5, + small_abs_safety_factor=2.5, + safety_factor_scale="log", + ), + axes=st.sampled_from([(0, 1), (-1, -2), (1, 0)]), + s=st.tuples( + st.integers(min_value=2, max_value=256), st.integers(min_value=2, max_value=256) + ), + norm=st.sampled_from(["backward", "ortho", "forward", None]), +) +def test_jax_numpy_fft2( + dtype_values, + s, + axes, + norm, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + dtype, values = dtype_values + helpers.test_frontend_function( + input_dtypes=dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + a=values[0], + s=s, + axes=axes, + norm=norm, + atol=1e-02, + rtol=1e-02, + ) + + # fftshift @handle_frontend_test( fn_tree="jax.numpy.fft.fftshift", From 1961e27800bd006215865230c0d8791b660d9129 Mon Sep 17 00:00:00 2001 From: Madjid Chergui <100947451+Madjid-CH@users.noreply.github.com> Date: Thu, 7 Sep 2023 06:40:17 +0100 Subject: [PATCH 039/127] Adding normalize to paddle frontend (#19716) (feat)(frontends): added normalize to the paddle frontends --- .../frontends/paddle/nn/functional/norm.py | 8 ++++ .../test_nn/test_functional/test_norm.py | 41 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/ivy/functional/frontends/paddle/nn/functional/norm.py b/ivy/functional/frontends/paddle/nn/functional/norm.py index 6c6fad6a1f439..76bc210cabbb6 100644 --- a/ivy/functional/frontends/paddle/nn/functional/norm.py +++ b/ivy/functional/frontends/paddle/nn/functional/norm.py @@ -8,3 +8,11 @@ @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") def layer_norm(x, normalized_shape, weight=None, bias=None, epsilon=1e-05, name=None): return ivy.layer_norm(x, normalized_shape, weight, bias, epsilon) + + +@to_ivy_arrays_and_back +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +def normalize(x, p=2, axis=1, epsilon=1e-12, name=None): + if axis < 0: + axis = ivy.get_num_dims(x) + axis + return ivy.lp_normalize(x, p=p, axis=axis) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_norm.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_norm.py index aae30f98f79c5..9a311dd8e526d 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_norm.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_norm.py @@ -43,3 +43,44 @@ def test_paddle_layer_norm( bias=offset[0], epsilon=eps, ) + + +# normalize +@handle_frontend_test( + fn_tree="paddle.nn.functional.normalize", + dtype_and_x_and_axis=helpers.arrays_and_axes( + available_dtypes=helpers.get_dtypes(kind="valid"), + num=1, + return_dtype=True, + force_int_axis=True, + ), + p=st.floats(min_value=0.1, max_value=2), + negative_axis=st.booleans(), +) +def test_paddle_normalize( + *, + dtype_and_x_and_axis, + p, + negative_axis, + test_flags, + frontend, + backend_fw, + on_device, + fn_tree, +): + dtype, x, axis = dtype_and_x_and_axis + if axis: + axis = -axis if negative_axis else axis + else: + axis = 0 + helpers.test_frontend_function( + input_dtypes=dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + on_device=on_device, + fn_tree=fn_tree, + x=x[0], + p=p, + axis=axis, + ) From 80e8bdd49fcbeb5be6f27ceffab0a3e25bd01267 Mon Sep 17 00:00:00 2001 From: Shreyansh Bardia <104841983+ShreyanshBardia@users.noreply.github.com> Date: Thu, 7 Sep 2023 11:40:57 +0530 Subject: [PATCH 040/127] making asarray decorators private (#23161) --- ivy/functional/backends/jax/creation.py | 20 ++++++------ ivy/functional/backends/mxnet/creation.py | 16 +++++----- ivy/functional/backends/numpy/creation.py | 20 ++++++------ ivy/functional/backends/paddle/creation.py | 20 ++++++------ .../backends/tensorflow/creation.py | 20 ++++++------ ivy/functional/backends/torch/creation.py | 20 ++++++------ ivy/functional/ivy/creation.py | 32 +++++++++---------- 7 files changed, 74 insertions(+), 74 deletions(-) diff --git a/ivy/functional/backends/jax/creation.py b/ivy/functional/backends/jax/creation.py index 4fbc39f493756..06240484f03b9 100644 --- a/ivy/functional/backends/jax/creation.py +++ b/ivy/functional/backends/jax/creation.py @@ -13,13 +13,13 @@ from ivy import as_native_dtype from ivy.functional.backends.jax import JaxArray from ivy.functional.ivy.creation import ( - asarray_to_native_arrays_and_back, - asarray_infer_device, - asarray_infer_dtype, - asarray_handle_nestable, + _asarray_to_native_arrays_and_back, + _asarray_infer_device, + _asarray_infer_dtype, + _asarray_handle_nestable, NestedSequence, SupportsBufferProtocol, - asarray_inputs_to_native_shapes, + _asarray_inputs_to_native_shapes, ) @@ -49,11 +49,11 @@ def arange( return res -@asarray_to_native_arrays_and_back -@asarray_infer_device -@asarray_handle_nestable -@asarray_inputs_to_native_shapes -@asarray_infer_dtype +@_asarray_to_native_arrays_and_back +@_asarray_infer_device +@_asarray_handle_nestable +@_asarray_inputs_to_native_shapes +@_asarray_infer_dtype def asarray( obj: Union[ JaxArray, diff --git a/ivy/functional/backends/mxnet/creation.py b/ivy/functional/backends/mxnet/creation.py index 632b1daca8f9e..1575fbb463349 100644 --- a/ivy/functional/backends/mxnet/creation.py +++ b/ivy/functional/backends/mxnet/creation.py @@ -8,12 +8,12 @@ import ivy from ivy.utils.exceptions import IvyNotImplementedException from ivy.functional.ivy.creation import ( - asarray_to_native_arrays_and_back, - asarray_infer_device, - asarray_handle_nestable, + _asarray_to_native_arrays_and_back, + _asarray_infer_device, + _asarray_handle_nestable, NestedSequence, SupportsBufferProtocol, - asarray_inputs_to_native_shapes, + _asarray_inputs_to_native_shapes, ) @@ -30,10 +30,10 @@ def arange( raise IvyNotImplementedException() -@asarray_to_native_arrays_and_back -@asarray_infer_device -@asarray_handle_nestable -@asarray_inputs_to_native_shapes +@_asarray_to_native_arrays_and_back +@_asarray_infer_device +@_asarray_handle_nestable +@_asarray_inputs_to_native_shapes def asarray( obj: Union[ ( diff --git a/ivy/functional/backends/numpy/creation.py b/ivy/functional/backends/numpy/creation.py index 7600f3cf9dba0..3835ce807cae1 100644 --- a/ivy/functional/backends/numpy/creation.py +++ b/ivy/functional/backends/numpy/creation.py @@ -8,13 +8,13 @@ import ivy from ivy.functional.backends.numpy.device import _to_device from ivy.functional.ivy.creation import ( - asarray_to_native_arrays_and_back, - asarray_infer_device, - asarray_infer_dtype, - asarray_handle_nestable, + _asarray_to_native_arrays_and_back, + _asarray_infer_device, + _asarray_infer_dtype, + _asarray_handle_nestable, NestedSequence, SupportsBufferProtocol, - asarray_inputs_to_native_shapes, + _asarray_inputs_to_native_shapes, ) from .data_type import as_native_dtype @@ -44,11 +44,11 @@ def arange( return res -@asarray_to_native_arrays_and_back -@asarray_infer_device -@asarray_handle_nestable -@asarray_inputs_to_native_shapes -@asarray_infer_dtype +@_asarray_to_native_arrays_and_back +@_asarray_infer_device +@_asarray_handle_nestable +@_asarray_inputs_to_native_shapes +@_asarray_infer_dtype def asarray( obj: Union[ np.ndarray, bool, int, float, tuple, NestedSequence, SupportsBufferProtocol diff --git a/ivy/functional/backends/paddle/creation.py b/ivy/functional/backends/paddle/creation.py index 7b01cae902d53..ffbb017068a8f 100644 --- a/ivy/functional/backends/paddle/creation.py +++ b/ivy/functional/backends/paddle/creation.py @@ -13,13 +13,13 @@ with_unsupported_device_and_dtypes, ) from ivy.functional.ivy.creation import ( - asarray_to_native_arrays_and_back, - asarray_infer_device, - asarray_handle_nestable, - asarray_infer_dtype, + _asarray_to_native_arrays_and_back, + _asarray_infer_device, + _asarray_handle_nestable, + _asarray_infer_dtype, NestedSequence, SupportsBufferProtocol, - asarray_inputs_to_native_shapes, + _asarray_inputs_to_native_shapes, _remove_np_bfloat16, ) from . import backend_version @@ -64,11 +64,11 @@ def arange( return paddle.arange(start, stop, step).cast(dtype) -@asarray_to_native_arrays_and_back -@asarray_infer_device -@asarray_handle_nestable -@asarray_inputs_to_native_shapes -@asarray_infer_dtype +@_asarray_to_native_arrays_and_back +@_asarray_infer_device +@_asarray_handle_nestable +@_asarray_inputs_to_native_shapes +@_asarray_infer_dtype def asarray( obj: Union[ paddle.Tensor, diff --git a/ivy/functional/backends/tensorflow/creation.py b/ivy/functional/backends/tensorflow/creation.py index 25ce085eb766d..4ee6f22cced5c 100644 --- a/ivy/functional/backends/tensorflow/creation.py +++ b/ivy/functional/backends/tensorflow/creation.py @@ -9,13 +9,13 @@ import ivy from ivy.func_wrapper import with_unsupported_dtypes from ivy.functional.ivy.creation import ( - asarray_to_native_arrays_and_back, - asarray_infer_device, - asarray_infer_dtype, - asarray_handle_nestable, + _asarray_to_native_arrays_and_back, + _asarray_infer_device, + _asarray_infer_dtype, + _asarray_handle_nestable, NestedSequence, SupportsBufferProtocol, - asarray_inputs_to_native_shapes, + _asarray_inputs_to_native_shapes, ) from . import backend_version @@ -65,11 +65,11 @@ def arange( return tf.range(start, stop, delta=step, dtype=dtype) -@asarray_to_native_arrays_and_back -@asarray_infer_device -@asarray_handle_nestable -@asarray_inputs_to_native_shapes -@asarray_infer_dtype +@_asarray_to_native_arrays_and_back +@_asarray_infer_device +@_asarray_handle_nestable +@_asarray_inputs_to_native_shapes +@_asarray_infer_dtype def asarray( obj: Union[ tf.Tensor, diff --git a/ivy/functional/backends/torch/creation.py b/ivy/functional/backends/torch/creation.py index 7c5a41482e44c..80a063961e0e1 100644 --- a/ivy/functional/backends/torch/creation.py +++ b/ivy/functional/backends/torch/creation.py @@ -13,13 +13,13 @@ with_unsupported_device_and_dtypes, ) from ivy.functional.ivy.creation import ( - asarray_to_native_arrays_and_back, - asarray_infer_device, - asarray_infer_dtype, - asarray_handle_nestable, + _asarray_to_native_arrays_and_back, + _asarray_infer_device, + _asarray_infer_dtype, + _asarray_handle_nestable, NestedSequence, SupportsBufferProtocol, - asarray_inputs_to_native_shapes, + _asarray_inputs_to_native_shapes, _remove_np_bfloat16, ) from . import backend_version @@ -96,11 +96,11 @@ def _stack_tensors(x, dtype): @with_unsupported_dtypes({"2.0.1 and below": ("bfloat16",)}, backend_version) -@asarray_to_native_arrays_and_back -@asarray_infer_device -@asarray_handle_nestable -@asarray_inputs_to_native_shapes -@asarray_infer_dtype +@_asarray_to_native_arrays_and_back +@_asarray_infer_device +@_asarray_handle_nestable +@_asarray_inputs_to_native_shapes +@_asarray_infer_dtype def asarray( obj: Union[ torch.Tensor, diff --git a/ivy/functional/ivy/creation.py b/ivy/functional/ivy/creation.py index 23ac94a9d5e3d..046fd2fd9699a 100644 --- a/ivy/functional/ivy/creation.py +++ b/ivy/functional/ivy/creation.py @@ -39,11 +39,11 @@ # --------# -def asarray_handle_nestable(fn: Callable) -> Callable: +def _asarray_handle_nestable(fn: Callable) -> Callable: fn_name = fn.__name__ @functools.wraps(fn) - def _asarray_handle_nestable(*args, **kwargs): + def _asarray_handle_nestable_wrapper(*args, **kwargs): """ Call `fn` with the *nestable* property of the function correctly handled. This means mapping the function to the container leaves if any containers are passed @@ -71,8 +71,8 @@ def _asarray_handle_nestable(*args, **kwargs): # the passed arguments, returning an ivy or a native array. return fn(*args, **kwargs) - _asarray_handle_nestable.handle_nestable = True - return _asarray_handle_nestable + _asarray_handle_nestable_wrapper.handle_nestable = True + return _asarray_handle_nestable_wrapper def _ivy_to_native(x): @@ -126,9 +126,9 @@ def _remove_np_bfloat16(obj): return obj -def asarray_to_native_arrays_and_back(fn: Callable) -> Callable: +def _asarray_to_native_arrays_and_back(fn: Callable) -> Callable: @functools.wraps(fn) - def _asarray_to_native_arrays_and_back(*args, dtype=None, **kwargs): + def _asarray_to_native_arrays_and_back_wrapper(*args, dtype=None, **kwargs): """ Wrap `fn` so that input arrays are all converted to `ivy.NativeArray` instances and return arrays are all converted to `ivy.Array` instances. @@ -147,12 +147,12 @@ def _asarray_to_native_arrays_and_back(*args, dtype=None, **kwargs): dtype = ivy.default_dtype(dtype=dtype, as_native=True) return to_ivy(fn(*new_args, dtype=dtype, **kwargs)) - return _asarray_to_native_arrays_and_back + return _asarray_to_native_arrays_and_back_wrapper -def asarray_infer_dtype(fn: Callable) -> Callable: +def _asarray_infer_dtype(fn: Callable) -> Callable: @functools.wraps(fn) - def _asarray_infer_dtype(*args, dtype=None, **kwargs): + def _asarray_infer_dtype_wrapper(*args, dtype=None, **kwargs): """ Determine the correct `dtype`, and then calls the function with the `dtype` passed explicitly. This wrapper is specifically for the backend implementations @@ -204,13 +204,13 @@ def _infer_dtype(obj): # call the function with dtype provided explicitly return fn(*args, dtype=dtype, **kwargs) - _asarray_infer_dtype.infer_dtype = True - return _asarray_infer_dtype + _asarray_infer_dtype_wrapper.infer_dtype = True + return _asarray_infer_dtype_wrapper -def asarray_infer_device(fn: Callable) -> Callable: +def _asarray_infer_device(fn: Callable) -> Callable: @functools.wraps(fn) - def _asarray_infer_device(*args, device=None, **kwargs): + def _asarray_infer_device_wrapper(*args, device=None, **kwargs): """ Determine the correct `device`, and then calls the function with the `device` passed explicitly. This wrapper is specifically for the backend implementations @@ -243,11 +243,11 @@ def _asarray_infer_device(*args, device=None, **kwargs): # call the function with device provided explicitly return fn(*args, device=device, **kwargs) - _asarray_infer_device.infer_device = True - return _asarray_infer_device + _asarray_infer_device_wrapper.infer_device = True + return _asarray_infer_device_wrapper -def asarray_inputs_to_native_shapes(fn: Callable) -> Callable: +def _asarray_inputs_to_native_shapes(fn: Callable) -> Callable: @functools.wraps(fn) def _inputs_to_native_shapes(*args, **kwargs): new_arg = _shape_to_native(args[0]) From 08dec60c4b41807aaf0a24b2488de2e617847589 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Thu, 7 Sep 2023 08:07:27 +0000 Subject: [PATCH 041/127] =?UTF-8?q?=F0=9F=A4=96=20Lint=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../torch/nn/functional/vision_functions.py | 907 +++++++++--------- run_tests.py | 4 +- run_tests_CLI/synchronize_db.py | 16 +- 3 files changed, 464 insertions(+), 463 deletions(-) diff --git a/ivy/functional/frontends/torch/nn/functional/vision_functions.py b/ivy/functional/frontends/torch/nn/functional/vision_functions.py index 5803993aeed29..56aeb000e4f84 100644 --- a/ivy/functional/frontends/torch/nn/functional/vision_functions.py +++ b/ivy/functional/frontends/torch/nn/functional/vision_functions.py @@ -8,6 +8,10 @@ from ivy.utils.exceptions import IvyNotImplementedException +cubic_conv1 = lambda A, x: ((A + 2) * x - (A + 3)) * x * x + 1 +cubic_conv2 = lambda A, x: (((A * x) - (5 * A)) * x + (8 * A)) * x - (4 * A) + + # --- Helpers --- # # --------------- # @@ -78,295 +82,237 @@ def affine_grid(theta, size, align_corners=False): return grid.view((N, D, H, W, 3)) -@with_unsupported_dtypes( - { - "2.0.1 and below": ( - "bfloat16", - "float16", - ) - }, - "torch", -) +def bicubic_interp(x, t, alpha=-0.75): + n, h, w = t.shape + coeffs = [] + coeffs.append(ivy.reshape(cubic_conv2(alpha, t + 1), (n, 1, h, w))) + coeffs.append(ivy.reshape(cubic_conv1(alpha, t), (n, 1, h, w))) + coeffs.append(ivy.reshape(cubic_conv1(alpha, 1 - t), (n, 1, h, w))) + coeffs.append(ivy.reshape(cubic_conv2(alpha, 2 - t), (n, 1, h, w))) + return x[0] * coeffs[0] + x[1] * coeffs[1] + x[2] * coeffs[2] + x[3] * coeffs[3] + + +@with_supported_dtypes({"2.0.1 and below": ("float32", "float64")}, "torch") @to_ivy_arrays_and_back -def interpolate( - input, - size=None, - scale_factor=None, - mode="nearest", - align_corners=None, - recompute_scale_factor=None, - antialias=False, +def grid_sample( + input, grid, mode="bilinear", padding_mode="zeros", align_corners=False ): - if mode in ["nearest", "area", "nearest-exact"]: - ivy.utils.assertions.check_exists( - align_corners, - inverse=True, - message=( - "align_corners option can only be set with the interpolating modes:" - " linear | bilinear | bicubic | trilinear" - ), - ) - else: - if not ivy.exists(align_corners): - align_corners = False + input_clone = ivy.copy_array(input) + grid_clone = ivy.copy_array(grid) - dim = ivy.get_num_dims(input) - 2 # Number of spatial dimensions. + if ivy.get_num_dims(input_clone) == 4: # sample from 2D images + n, c, h, w = input_clone.shape + n, to_h, to_w, gc = grid_clone.shape - if ivy.exists(size) and ivy.exists(scale_factor): - raise ivy.utils.exceptions.IvyException( - "only one of size or scale_factor should be defined" - ) + # Un-normalize 2D grid + if align_corners: # to range[0, size - 1] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) / 2) * (w - 1) + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) / 2) * (h - 1) - elif ivy.exists(size) and not ivy.exists(scale_factor): - scale_factors = None + elif not align_corners: # to range[0.5, size - 0.5] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) * w - 1) / 2 + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) * h - 1) / 2 - if isinstance(size, (list, tuple)): - ivy.utils.assertions.check_equal( - len(size), - dim, - inverse=False, - message=( - "Input and output must have the " - "same number of spatial dimensions," - f" but got input with spatial dimensions of {list(input.shape[2:])}" - f" and output size of {size}. " - "Please provide input tensor in (N, C, d1, d2, ...,dK) format" - " and output size in (o1, o2, ...,oK) format." - ), - as_array=False, - ) - output_size = size - else: - output_size = [size for _ in range(dim)] + batch_coor = ivy.reshape(ivy.arange(n), (-1, 1)) + batch_coor = ivy.repeat(batch_coor, to_h * to_w, axis=1) + batch_coor = ivy.reshape(batch_coor, (n, to_h, to_w)) + padding = [(0, 0) for _ in range(2)] + [(4, 4) for _ in range(2)] + input_clone = ivy.pad(input_clone, padding, mode="constant", constant_values=0) - elif ivy.exists(scale_factor) and not ivy.exists(size): - output_size = None + if mode == "bicubic": + grid_floor = ivy.floor(grid_clone) + distance = grid_clone - grid_floor - if isinstance(scale_factor, (list, tuple)): - ivy.utils.assertions.check_equal( - len(scale_factor), - dim, - inverse=False, - message=( - "Input and scale_factor must have the " - "same number of spatial dimensions," - f" but got input with spatial dimensions of {list(input.shape[2:])}" - f" and scale_factor of shape {scale_factor}. " - "Please provide input tensor in (N, C, d1, d2, ...,dK) format" - " and scale_factor in (s1, s2, ...,sK) format." - ), - as_array=False, - ) - scale_factors = scale_factor - else: - scale_factors = [scale_factor for _ in range(dim)] + tx, ty = distance[..., 0], distance[..., 1] - else: - ivy.utils.assertions.check_any( - [ivy.exists(size), ivy.exists(scale_factor)], - message="either size or scale_factor should be defined", - as_array=False, - ) + grid_floor -= 1 + grid_floor = [ + grid_sample_padding( + grid_floor + i, padding_mode, align_corners, borders=[w, h] + ) + for i in range(4) + ] - if ( - ivy.exists(size) - and ivy.exists(recompute_scale_factor) - and bool(recompute_scale_factor) - ): - raise ivy.utils.exceptions.IvyException( - "recompute_scale_factor is not meaningful with an explicit size." - ) + w_cubic = [ + ivy.astype(grid_floor[i][..., 0] + 4, ivy.int64) for i in range(4) + ] + h_cubic = [ + ivy.astype(grid_floor[i][..., 1] + 4, ivy.int64) for i in range(4) + ] - if ivy.exists(scale_factors): - output_size = [ - math.floor(ivy.shape(input)[i + 2] * scale_factors[i]) for i in range(dim) - ] + coeffs = [ + bicubic_interp( + [ + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[0]], + (0, 3, 1, 2), + ), + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[1]], + (0, 3, 1, 2), + ), + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[2]], + (0, 3, 1, 2), + ), + ivy.permute_dims( + input_clone[batch_coor, :, h_cubic[i], w_cubic[3]], + (0, 3, 1, 2), + ), + ], + tx, + ) + for i in range(4) + ] + return bicubic_interp(coeffs, ty) - if ( - bool(antialias) - and not (mode in ["bilinear", "bicubic"]) - and ivy.get_num_dims(input) == 4 - ): - raise ivy.utils.exceptions.IvyException( - "recompute_scale_factor is not meaningful with an explicit size." - ) + else: + grid_clone = grid_sample_padding( + grid_clone, padding_mode, align_corners, borders=[w, h] + ) - if ivy.get_num_dims(input) == 3 and mode == "bilinear": - raise IvyNotImplementedException( - "Got 3D input, but bilinear mode needs 4D input" - ) - if ivy.get_num_dims(input) == 3 and mode == "trilinear": - raise IvyNotImplementedException( - "Got 3D input, but trilinear mode needs 5D input" - ) - if ivy.get_num_dims(input) == 4 and mode == "linear": - raise IvyNotImplementedException("Got 4D input, but linear mode needs 3D input") - if ivy.get_num_dims(input) == 4 and mode == "trilinear": - raise IvyNotImplementedException( - "Got 4D input, but trilinear mode needs 5D input" - ) - if ivy.get_num_dims(input) == 5 and mode == "linear": - raise IvyNotImplementedException("Got 5D input, but linear mode needs 3D input") - if ivy.get_num_dims(input) == 5 and mode == "bilinear": - raise IvyNotImplementedException( - "Got 5D input, but bilinear mode needs 4D input" - ) + if mode == "bilinear": + grid_clone += 4 + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_h, to_w)) - ivy.utils.assertions.check_elem_in_list( - ivy.get_num_dims(input), - range(3, 6), - message=( - "Input Error: Only 3D, 4D and 5D input Tensors supported (got" - f" {ivy.get_num_dims(input)}D) for the modes: nearest | linear | bilinear |" - f" bicubic | trilinear | area | nearest-exact (got {mode})" - ), - ) + w0 = ivy.astype(ivy.floor(w_coor), ivy.int64) + h0 = ivy.astype(ivy.floor(h_coor), ivy.int64) + w1 = w0 + 1 + h1 = h0 + 1 - return ivy.interpolate( - input, output_size, mode=mode, align_corners=align_corners, antialias=antialias - ) + v00 = ivy.permute_dims(input_clone[batch_coor, :, h0, w0], (0, 3, 1, 2)) + v01 = ivy.permute_dims(input_clone[batch_coor, :, h0, w1], (0, 3, 1, 2)) + v10 = ivy.permute_dims(input_clone[batch_coor, :, h1, w0], (0, 3, 1, 2)) + v11 = ivy.permute_dims(input_clone[batch_coor, :, h1, w1], (0, 3, 1, 2)) + alpha = ivy.reshape(w_coor - w0, (n, 1, to_h, to_w)) + beta = ivy.reshape(h_coor - h0, (n, 1, to_h, to_w)) -@to_ivy_arrays_and_back -def pad(input, pad, mode="constant", value=0): - mode_dict = { - "constant": "constant", - "reflect": "reflect", - "replicate": "edge", - "circular": "wrap", - } - if mode not in mode_dict: - raise ValueError(f"Unsupported padding mode: {mode}") - pad = _handle_padding_shape(pad, len(input.shape), mode) - return ivy.pad(input, pad, mode=mode_dict[mode], constant_values=value) + alpha = ivy.astype(alpha, ivy.float32) + beta = ivy.astype(beta, ivy.float32) + v0 = v00 * (1 - alpha) + v01 * alpha + v1 = v10 * (1 - alpha) + v11 * alpha -@to_ivy_arrays_and_back -def pixel_shuffle(input, upscale_factor): - input_shape = ivy.shape(input) + return v0 * (1 - beta) + v1 * beta - ivy.utils.assertions.check_equal( - ivy.get_num_dims(input), - 4, - message="pixel_shuffle expects 4D input, but got input with sizes " - + str(input_shape), - as_array=False, - ) - b = input_shape[0] - c = input_shape[1] - h = input_shape[2] - w = input_shape[3] - upscale_factor_squared = upscale_factor * upscale_factor - ivy.utils.assertions.check_equal( - c % upscale_factor_squared, - 0, - message="pixel_shuffle expects input channel to be divisible by square " - + "of upscale_factor, but got input with sizes " - + str(input_shape) - + ", upscale_factor=" - + str(upscale_factor) - + ", and self.size(1)=" - + str(c) - + " is not divisible by " - + str(upscale_factor_squared), - as_array=False, - ) - oc = int(c / upscale_factor_squared) - oh = h * upscale_factor - ow = w * upscale_factor + elif mode == "nearest": + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_h, to_w)) - input_reshaped = ivy.reshape(input, (b, oc, upscale_factor, upscale_factor, h, w)) - return ivy.reshape( - ivy.permute_dims(input_reshaped, (0, 1, 4, 2, 5, 3)), (b, oc, oh, ow) - ) + w_coor = ivy.astype(ivy.round(w_coor), ivy.int64) + 4 + h_coor = ivy.astype(ivy.round(h_coor), ivy.int64) + 4 + return ivy.permute_dims( + input_clone[batch_coor, :, h_coor, w_coor], (0, 3, 1, 2) + ) + else: + raise ivy.exceptions.IvyError(f"Not supported mode {mode}") -@to_ivy_arrays_and_back -def pixel_unshuffle(input, downscale_factor): - input_shape = ivy.shape(input) + elif ivy.get_num_dims(input_clone) == 5: # sample from 3D images + n, c, d, h, w = input_clone.shape + n, to_d, to_h, to_w, gc = grid_clone.shape - ivy.utils.assertions.check_equal( - ivy.get_num_dims(input), - 4, - message=( - f"pixel_unshuffle expects 4D input, but got input with sizes {input_shape}" - ), - as_array=False, - ), + # Un-normalize 3D grid + if align_corners: # to range[0, size - 1] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) / 2) * (w - 1) + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) / 2) * (h - 1) + grid_clone[..., 2] = ((grid_clone[..., 2] + 1) / 2) * (d - 1) + elif not align_corners: # to range[0.5, size - 0.5] + grid_clone[..., 0] = ((grid_clone[..., 0] + 1) * w - 1) / 2 + grid_clone[..., 1] = ((grid_clone[..., 1] + 1) * h - 1) / 2 + grid_clone[..., 2] = ((grid_clone[..., 2] + 1) * d - 1) / 2 - b = input_shape[0] - c = input_shape[1] - h = input_shape[2] - w = input_shape[3] - downscale_factor_squared = downscale_factor * downscale_factor + batch_coor = ivy.reshape(ivy.arange(n), (-1, 1)) + batch_coor = ivy.repeat(batch_coor, to_d * to_h * to_w, axis=1) + batch_coor = ivy.reshape(batch_coor, (n, to_d, to_h, to_w)) + padding = [(0, 0) for _ in range(2)] + [(3, 3) for _ in range(3)] + input_clone = ivy.pad(input_clone, padding, mode="constant", constant_values=0) - ivy.utils.assertions.check_equal( - [h % downscale_factor, w % downscale_factor], - [0, 0], # Assert h % downscale_factor == 0 and w % downscale_factor == 0 - message=( - "pixel_unshuffle expects input height and width to be divisible by " - f"downscale_factor, but got input with sizes {input_shape}" - f", downscale_factor= {downscale_factor}" - f", and either self.size(2)= {h}" - f" or self.size(3)= {w}" - f" is not divisible by {downscale_factor}" - ), - as_array=False, - ) - oc = c * downscale_factor_squared - oh = int(h / downscale_factor) - ow = int(w / downscale_factor) + grid_clone = grid_sample_padding( + grid_clone, padding_mode, align_corners, borders=[w, h, d] + ) - input_reshaped = ivy.reshape( - input, (b, c, oh, downscale_factor, ow, downscale_factor) - ) - return ivy.reshape( - ivy.permute_dims(input_reshaped, (0, 1, 3, 5, 2, 4)), (b, oc, oh, ow) - ) + if mode == "bilinear": + grid_clone += 3 + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_d, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_d, to_h, to_w)) + d_coor = ivy.reshape(grid_clone[..., 2], (n, to_d, to_h, to_w)) + w0 = ivy.astype(ivy.floor(w_coor), ivy.int64) + h0 = ivy.astype(ivy.floor(h_coor), ivy.int64) + d0 = ivy.astype(ivy.floor(d_coor), ivy.int64) + w1 = w0 + 1 + h1 = h0 + 1 + d1 = d0 + 1 -@with_unsupported_dtypes({"2.0.1 and below": ("float16", "bfloat16")}, "torch") -@to_ivy_arrays_and_back -def upsample( - input, - size=None, - scale_factor=None, - mode="nearest", - align_corners=None, -): - return interpolate( - input, - size=size, - scale_factor=scale_factor, - mode=mode, - align_corners=align_corners, - ) + v000 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h0, w0], (0, 4, 1, 2, 3) + ) # tnw + v001 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h0, w1], (0, 4, 1, 2, 3) + ) # tne + v010 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h1, w0], (0, 4, 1, 2, 3) + ) # tsw + v011 = ivy.permute_dims( + input_clone[batch_coor, :, d0, h1, w1], (0, 4, 1, 2, 3) + ) # tse + v100 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h0, w0], (0, 4, 1, 2, 3) + ) # bnw + v101 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h0, w1], (0, 4, 1, 2, 3) + ) # bne + v110 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h1, w0], (0, 4, 1, 2, 3) + ) # bsw + v111 = ivy.permute_dims( + input_clone[batch_coor, :, d1, h1, w1], (0, 4, 1, 2, 3) + ) # bse + alpha = ivy.reshape(w_coor - w0, (n, 1, to_d, to_h, to_w)) + beta = ivy.reshape(h_coor - h0, (n, 1, to_d, to_h, to_w)) + gamma = ivy.reshape(d_coor - d0, (n, 1, to_d, to_h, to_w)) -@with_unsupported_dtypes({"2.0.1 and below": ("float16", "bfloat16")}, "torch") -@to_ivy_arrays_and_back -def upsample_bilinear(input, size=None, scale_factor=None): - return interpolate( - input, size=size, scale_factor=scale_factor, mode="bilinear", align_corners=True - ) + alpha = ivy.astype(alpha, ivy.float32) + beta = ivy.astype(beta, ivy.float32) + gamma = ivy.astype(gamma, ivy.float32) + v = (alpha * beta * gamma) * v111 + v += ((1 - alpha) * beta * gamma) * v110 + v += (alpha * (1 - beta) * gamma) * v101 + v += ((1 - alpha) * (1 - beta) * gamma) * v100 -@with_unsupported_dtypes({"2.0.1 and below": ("float16", "bfloat16")}, "torch") -@to_ivy_arrays_and_back -def upsample_nearest(input, size=None, scale_factor=None): - return interpolate(input, size=size, scale_factor=scale_factor, mode="nearest") + v += (alpha * beta * (1 - gamma)) * v011 + v += ((1 - alpha) * beta * (1 - gamma)) * v010 + v += (alpha * (1 - beta) * (1 - gamma)) * v001 + v += ((1 - alpha) * (1 - beta) * (1 - gamma)) * v000 + return v + elif mode == "nearest": + ceil_mask = grid_clone % 1 == 0.5 + grid_clone[ceil_mask] = ivy.astype( + ivy.ceil(grid_clone[ceil_mask]), ivy.int64 + ) -def reflect(x, low2, high2): - min = low2 / 2 - span = (high2 - low2) / 2 - x = ivy.abs(x - min) - frac_in = ivy.abs(x / span) - extra = (frac_in - ivy.floor(frac_in)) * ivy.abs(span) - flips = ivy.floor(x / span) - x[flips % 2 == 0] = (extra + min)[flips % 2 == 0] - x[flips % 2 != 0] = (span - extra + min)[flips % 2 != 0] - return x + w_coor = ivy.reshape(grid_clone[..., 0], (n, to_d, to_h, to_w)) + h_coor = ivy.reshape(grid_clone[..., 1], (n, to_d, to_h, to_w)) + d_coor = ivy.reshape(grid_clone[..., 2], (n, to_d, to_h, to_w)) + + w_coor = ivy.astype(ivy.round(w_coor), ivy.int64) + 3 + h_coor = ivy.astype(ivy.round(h_coor), ivy.int64) + 3 + d_coor = ivy.astype(ivy.round(d_coor), ivy.int64) + 3 + return ivy.permute_dims( + input_clone[batch_coor, :, d_coor, h_coor, w_coor], (0, 4, 1, 2, 3) + ) + + elif mode == "bicubic": + raise ivy.exceptions.IvyError(f"Bicubic is not support in 3D grid sampling") + + else: + raise ivy.exceptions.IvyError(f"Not supported input shape {input_clone.shape}") def grid_sample_padding(grid, padding_mode, align_corners, borders=None): @@ -399,239 +345,292 @@ def grid_sample_padding(grid, padding_mode, align_corners, borders=None): return grid -def bicubic_interp(x, t, alpha=-0.75): - n, h, w = t.shape - coeffs = [] - coeffs.append(ivy.reshape(cubic_conv2(alpha, t + 1), (n, 1, h, w))) - coeffs.append(ivy.reshape(cubic_conv1(alpha, t), (n, 1, h, w))) - coeffs.append(ivy.reshape(cubic_conv1(alpha, 1 - t), (n, 1, h, w))) - coeffs.append(ivy.reshape(cubic_conv2(alpha, 2 - t), (n, 1, h, w))) - return x[0] * coeffs[0] + x[1] * coeffs[1] + x[2] * coeffs[2] + x[3] * coeffs[3] - - -cubic_conv1 = lambda A, x: ((A + 2) * x - (A + 3)) * x * x + 1 -cubic_conv2 = lambda A, x: (((A * x) - (5 * A)) * x + (8 * A)) * x - (4 * A) - - -@with_supported_dtypes({"2.0.1 and below": ("float32", "float64")}, "torch") +@with_unsupported_dtypes( + { + "2.0.1 and below": ( + "bfloat16", + "float16", + ) + }, + "torch", +) @to_ivy_arrays_and_back -def grid_sample( - input, grid, mode="bilinear", padding_mode="zeros", align_corners=False +def interpolate( + input, + size=None, + scale_factor=None, + mode="nearest", + align_corners=None, + recompute_scale_factor=None, + antialias=False, ): - input_clone = ivy.copy_array(input) - grid_clone = ivy.copy_array(grid) - - if ivy.get_num_dims(input_clone) == 4: # sample from 2D images - n, c, h, w = input_clone.shape - n, to_h, to_w, gc = grid_clone.shape + if mode in ["nearest", "area", "nearest-exact"]: + ivy.utils.assertions.check_exists( + align_corners, + inverse=True, + message=( + "align_corners option can only be set with the interpolating modes:" + " linear | bilinear | bicubic | trilinear" + ), + ) + else: + if not ivy.exists(align_corners): + align_corners = False - # Un-normalize 2D grid - if align_corners: # to range[0, size - 1] - grid_clone[..., 0] = ((grid_clone[..., 0] + 1) / 2) * (w - 1) - grid_clone[..., 1] = ((grid_clone[..., 1] + 1) / 2) * (h - 1) + dim = ivy.get_num_dims(input) - 2 # Number of spatial dimensions. - elif not align_corners: # to range[0.5, size - 0.5] - grid_clone[..., 0] = ((grid_clone[..., 0] + 1) * w - 1) / 2 - grid_clone[..., 1] = ((grid_clone[..., 1] + 1) * h - 1) / 2 - - batch_coor = ivy.reshape(ivy.arange(n), (-1, 1)) - batch_coor = ivy.repeat(batch_coor, to_h * to_w, axis=1) - batch_coor = ivy.reshape(batch_coor, (n, to_h, to_w)) - padding = [(0, 0) for _ in range(2)] + [(4, 4) for _ in range(2)] - input_clone = ivy.pad(input_clone, padding, mode="constant", constant_values=0) - - if mode == "bicubic": - grid_floor = ivy.floor(grid_clone) - distance = grid_clone - grid_floor - - tx, ty = distance[..., 0], distance[..., 1] + if ivy.exists(size) and ivy.exists(scale_factor): + raise ivy.utils.exceptions.IvyException( + "only one of size or scale_factor should be defined" + ) - grid_floor -= 1 - grid_floor = [ - grid_sample_padding( - grid_floor + i, padding_mode, align_corners, borders=[w, h] - ) - for i in range(4) - ] + elif ivy.exists(size) and not ivy.exists(scale_factor): + scale_factors = None - w_cubic = [ - ivy.astype(grid_floor[i][..., 0] + 4, ivy.int64) for i in range(4) - ] - h_cubic = [ - ivy.astype(grid_floor[i][..., 1] + 4, ivy.int64) for i in range(4) - ] + if isinstance(size, (list, tuple)): + ivy.utils.assertions.check_equal( + len(size), + dim, + inverse=False, + message=( + "Input and output must have the " + "same number of spatial dimensions," + f" but got input with spatial dimensions of {list(input.shape[2:])}" + f" and output size of {size}. " + "Please provide input tensor in (N, C, d1, d2, ...,dK) format" + " and output size in (o1, o2, ...,oK) format." + ), + as_array=False, + ) + output_size = size + else: + output_size = [size for _ in range(dim)] - coeffs = [ - bicubic_interp( - [ - ivy.permute_dims( - input_clone[batch_coor, :, h_cubic[i], w_cubic[0]], - (0, 3, 1, 2), - ), - ivy.permute_dims( - input_clone[batch_coor, :, h_cubic[i], w_cubic[1]], - (0, 3, 1, 2), - ), - ivy.permute_dims( - input_clone[batch_coor, :, h_cubic[i], w_cubic[2]], - (0, 3, 1, 2), - ), - ivy.permute_dims( - input_clone[batch_coor, :, h_cubic[i], w_cubic[3]], - (0, 3, 1, 2), - ), - ], - tx, - ) - for i in range(4) - ] - return bicubic_interp(coeffs, ty) + elif ivy.exists(scale_factor) and not ivy.exists(size): + output_size = None - else: - grid_clone = grid_sample_padding( - grid_clone, padding_mode, align_corners, borders=[w, h] + if isinstance(scale_factor, (list, tuple)): + ivy.utils.assertions.check_equal( + len(scale_factor), + dim, + inverse=False, + message=( + "Input and scale_factor must have the " + "same number of spatial dimensions," + f" but got input with spatial dimensions of {list(input.shape[2:])}" + f" and scale_factor of shape {scale_factor}. " + "Please provide input tensor in (N, C, d1, d2, ...,dK) format" + " and scale_factor in (s1, s2, ...,sK) format." + ), + as_array=False, ) + scale_factors = scale_factor + else: + scale_factors = [scale_factor for _ in range(dim)] - if mode == "bilinear": - grid_clone += 4 - w_coor = ivy.reshape(grid_clone[..., 0], (n, to_h, to_w)) - h_coor = ivy.reshape(grid_clone[..., 1], (n, to_h, to_w)) + else: + ivy.utils.assertions.check_any( + [ivy.exists(size), ivy.exists(scale_factor)], + message="either size or scale_factor should be defined", + as_array=False, + ) - w0 = ivy.astype(ivy.floor(w_coor), ivy.int64) - h0 = ivy.astype(ivy.floor(h_coor), ivy.int64) - w1 = w0 + 1 - h1 = h0 + 1 + if ( + ivy.exists(size) + and ivy.exists(recompute_scale_factor) + and bool(recompute_scale_factor) + ): + raise ivy.utils.exceptions.IvyException( + "recompute_scale_factor is not meaningful with an explicit size." + ) - v00 = ivy.permute_dims(input_clone[batch_coor, :, h0, w0], (0, 3, 1, 2)) - v01 = ivy.permute_dims(input_clone[batch_coor, :, h0, w1], (0, 3, 1, 2)) - v10 = ivy.permute_dims(input_clone[batch_coor, :, h1, w0], (0, 3, 1, 2)) - v11 = ivy.permute_dims(input_clone[batch_coor, :, h1, w1], (0, 3, 1, 2)) + if ivy.exists(scale_factors): + output_size = [ + math.floor(ivy.shape(input)[i + 2] * scale_factors[i]) for i in range(dim) + ] - alpha = ivy.reshape(w_coor - w0, (n, 1, to_h, to_w)) - beta = ivy.reshape(h_coor - h0, (n, 1, to_h, to_w)) + if ( + bool(antialias) + and not (mode in ["bilinear", "bicubic"]) + and ivy.get_num_dims(input) == 4 + ): + raise ivy.utils.exceptions.IvyException( + "recompute_scale_factor is not meaningful with an explicit size." + ) - alpha = ivy.astype(alpha, ivy.float32) - beta = ivy.astype(beta, ivy.float32) + if ivy.get_num_dims(input) == 3 and mode == "bilinear": + raise IvyNotImplementedException( + "Got 3D input, but bilinear mode needs 4D input" + ) + if ivy.get_num_dims(input) == 3 and mode == "trilinear": + raise IvyNotImplementedException( + "Got 3D input, but trilinear mode needs 5D input" + ) + if ivy.get_num_dims(input) == 4 and mode == "linear": + raise IvyNotImplementedException("Got 4D input, but linear mode needs 3D input") + if ivy.get_num_dims(input) == 4 and mode == "trilinear": + raise IvyNotImplementedException( + "Got 4D input, but trilinear mode needs 5D input" + ) + if ivy.get_num_dims(input) == 5 and mode == "linear": + raise IvyNotImplementedException("Got 5D input, but linear mode needs 3D input") + if ivy.get_num_dims(input) == 5 and mode == "bilinear": + raise IvyNotImplementedException( + "Got 5D input, but bilinear mode needs 4D input" + ) - v0 = v00 * (1 - alpha) + v01 * alpha - v1 = v10 * (1 - alpha) + v11 * alpha + ivy.utils.assertions.check_elem_in_list( + ivy.get_num_dims(input), + range(3, 6), + message=( + "Input Error: Only 3D, 4D and 5D input Tensors supported (got" + f" {ivy.get_num_dims(input)}D) for the modes: nearest | linear | bilinear |" + f" bicubic | trilinear | area | nearest-exact (got {mode})" + ), + ) - return v0 * (1 - beta) + v1 * beta + return ivy.interpolate( + input, output_size, mode=mode, align_corners=align_corners, antialias=antialias + ) - elif mode == "nearest": - w_coor = ivy.reshape(grid_clone[..., 0], (n, to_h, to_w)) - h_coor = ivy.reshape(grid_clone[..., 1], (n, to_h, to_w)) - w_coor = ivy.astype(ivy.round(w_coor), ivy.int64) + 4 - h_coor = ivy.astype(ivy.round(h_coor), ivy.int64) + 4 - return ivy.permute_dims( - input_clone[batch_coor, :, h_coor, w_coor], (0, 3, 1, 2) - ) +@to_ivy_arrays_and_back +def pad(input, pad, mode="constant", value=0): + mode_dict = { + "constant": "constant", + "reflect": "reflect", + "replicate": "edge", + "circular": "wrap", + } + if mode not in mode_dict: + raise ValueError(f"Unsupported padding mode: {mode}") + pad = _handle_padding_shape(pad, len(input.shape), mode) + return ivy.pad(input, pad, mode=mode_dict[mode], constant_values=value) - else: - raise ivy.exceptions.IvyError(f"Not supported mode {mode}") - elif ivy.get_num_dims(input_clone) == 5: # sample from 3D images - n, c, d, h, w = input_clone.shape - n, to_d, to_h, to_w, gc = grid_clone.shape +@to_ivy_arrays_and_back +def pixel_shuffle(input, upscale_factor): + input_shape = ivy.shape(input) - # Un-normalize 3D grid - if align_corners: # to range[0, size - 1] - grid_clone[..., 0] = ((grid_clone[..., 0] + 1) / 2) * (w - 1) - grid_clone[..., 1] = ((grid_clone[..., 1] + 1) / 2) * (h - 1) - grid_clone[..., 2] = ((grid_clone[..., 2] + 1) / 2) * (d - 1) - elif not align_corners: # to range[0.5, size - 0.5] - grid_clone[..., 0] = ((grid_clone[..., 0] + 1) * w - 1) / 2 - grid_clone[..., 1] = ((grid_clone[..., 1] + 1) * h - 1) / 2 - grid_clone[..., 2] = ((grid_clone[..., 2] + 1) * d - 1) / 2 + ivy.utils.assertions.check_equal( + ivy.get_num_dims(input), + 4, + message="pixel_shuffle expects 4D input, but got input with sizes " + + str(input_shape), + as_array=False, + ) + b = input_shape[0] + c = input_shape[1] + h = input_shape[2] + w = input_shape[3] + upscale_factor_squared = upscale_factor * upscale_factor + ivy.utils.assertions.check_equal( + c % upscale_factor_squared, + 0, + message="pixel_shuffle expects input channel to be divisible by square " + + "of upscale_factor, but got input with sizes " + + str(input_shape) + + ", upscale_factor=" + + str(upscale_factor) + + ", and self.size(1)=" + + str(c) + + " is not divisible by " + + str(upscale_factor_squared), + as_array=False, + ) + oc = int(c / upscale_factor_squared) + oh = h * upscale_factor + ow = w * upscale_factor - batch_coor = ivy.reshape(ivy.arange(n), (-1, 1)) - batch_coor = ivy.repeat(batch_coor, to_d * to_h * to_w, axis=1) - batch_coor = ivy.reshape(batch_coor, (n, to_d, to_h, to_w)) - padding = [(0, 0) for _ in range(2)] + [(3, 3) for _ in range(3)] - input_clone = ivy.pad(input_clone, padding, mode="constant", constant_values=0) + input_reshaped = ivy.reshape(input, (b, oc, upscale_factor, upscale_factor, h, w)) + return ivy.reshape( + ivy.permute_dims(input_reshaped, (0, 1, 4, 2, 5, 3)), (b, oc, oh, ow) + ) - grid_clone = grid_sample_padding( - grid_clone, padding_mode, align_corners, borders=[w, h, d] - ) - if mode == "bilinear": - grid_clone += 3 - w_coor = ivy.reshape(grid_clone[..., 0], (n, to_d, to_h, to_w)) - h_coor = ivy.reshape(grid_clone[..., 1], (n, to_d, to_h, to_w)) - d_coor = ivy.reshape(grid_clone[..., 2], (n, to_d, to_h, to_w)) +@to_ivy_arrays_and_back +def pixel_unshuffle(input, downscale_factor): + input_shape = ivy.shape(input) - w0 = ivy.astype(ivy.floor(w_coor), ivy.int64) - h0 = ivy.astype(ivy.floor(h_coor), ivy.int64) - d0 = ivy.astype(ivy.floor(d_coor), ivy.int64) - w1 = w0 + 1 - h1 = h0 + 1 - d1 = d0 + 1 + ivy.utils.assertions.check_equal( + ivy.get_num_dims(input), + 4, + message=( + f"pixel_unshuffle expects 4D input, but got input with sizes {input_shape}" + ), + as_array=False, + ), - v000 = ivy.permute_dims( - input_clone[batch_coor, :, d0, h0, w0], (0, 4, 1, 2, 3) - ) # tnw - v001 = ivy.permute_dims( - input_clone[batch_coor, :, d0, h0, w1], (0, 4, 1, 2, 3) - ) # tne - v010 = ivy.permute_dims( - input_clone[batch_coor, :, d0, h1, w0], (0, 4, 1, 2, 3) - ) # tsw - v011 = ivy.permute_dims( - input_clone[batch_coor, :, d0, h1, w1], (0, 4, 1, 2, 3) - ) # tse - v100 = ivy.permute_dims( - input_clone[batch_coor, :, d1, h0, w0], (0, 4, 1, 2, 3) - ) # bnw - v101 = ivy.permute_dims( - input_clone[batch_coor, :, d1, h0, w1], (0, 4, 1, 2, 3) - ) # bne - v110 = ivy.permute_dims( - input_clone[batch_coor, :, d1, h1, w0], (0, 4, 1, 2, 3) - ) # bsw - v111 = ivy.permute_dims( - input_clone[batch_coor, :, d1, h1, w1], (0, 4, 1, 2, 3) - ) # bse + b = input_shape[0] + c = input_shape[1] + h = input_shape[2] + w = input_shape[3] + downscale_factor_squared = downscale_factor * downscale_factor - alpha = ivy.reshape(w_coor - w0, (n, 1, to_d, to_h, to_w)) - beta = ivy.reshape(h_coor - h0, (n, 1, to_d, to_h, to_w)) - gamma = ivy.reshape(d_coor - d0, (n, 1, to_d, to_h, to_w)) + ivy.utils.assertions.check_equal( + [h % downscale_factor, w % downscale_factor], + [0, 0], # Assert h % downscale_factor == 0 and w % downscale_factor == 0 + message=( + "pixel_unshuffle expects input height and width to be divisible by " + f"downscale_factor, but got input with sizes {input_shape}" + f", downscale_factor= {downscale_factor}" + f", and either self.size(2)= {h}" + f" or self.size(3)= {w}" + f" is not divisible by {downscale_factor}" + ), + as_array=False, + ) + oc = c * downscale_factor_squared + oh = int(h / downscale_factor) + ow = int(w / downscale_factor) - alpha = ivy.astype(alpha, ivy.float32) - beta = ivy.astype(beta, ivy.float32) - gamma = ivy.astype(gamma, ivy.float32) + input_reshaped = ivy.reshape( + input, (b, c, oh, downscale_factor, ow, downscale_factor) + ) + return ivy.reshape( + ivy.permute_dims(input_reshaped, (0, 1, 3, 5, 2, 4)), (b, oc, oh, ow) + ) - v = (alpha * beta * gamma) * v111 - v += ((1 - alpha) * beta * gamma) * v110 - v += (alpha * (1 - beta) * gamma) * v101 - v += ((1 - alpha) * (1 - beta) * gamma) * v100 - v += (alpha * beta * (1 - gamma)) * v011 - v += ((1 - alpha) * beta * (1 - gamma)) * v010 - v += (alpha * (1 - beta) * (1 - gamma)) * v001 - v += ((1 - alpha) * (1 - beta) * (1 - gamma)) * v000 - return v +def reflect(x, low2, high2): + min = low2 / 2 + span = (high2 - low2) / 2 + x = ivy.abs(x - min) + frac_in = ivy.abs(x / span) + extra = (frac_in - ivy.floor(frac_in)) * ivy.abs(span) + flips = ivy.floor(x / span) + x[flips % 2 == 0] = (extra + min)[flips % 2 == 0] + x[flips % 2 != 0] = (span - extra + min)[flips % 2 != 0] + return x - elif mode == "nearest": - ceil_mask = grid_clone % 1 == 0.5 - grid_clone[ceil_mask] = ivy.astype( - ivy.ceil(grid_clone[ceil_mask]), ivy.int64 - ) - w_coor = ivy.reshape(grid_clone[..., 0], (n, to_d, to_h, to_w)) - h_coor = ivy.reshape(grid_clone[..., 1], (n, to_d, to_h, to_w)) - d_coor = ivy.reshape(grid_clone[..., 2], (n, to_d, to_h, to_w)) +@with_unsupported_dtypes({"2.0.1 and below": ("float16", "bfloat16")}, "torch") +@to_ivy_arrays_and_back +def upsample( + input, + size=None, + scale_factor=None, + mode="nearest", + align_corners=None, +): + return interpolate( + input, + size=size, + scale_factor=scale_factor, + mode=mode, + align_corners=align_corners, + ) - w_coor = ivy.astype(ivy.round(w_coor), ivy.int64) + 3 - h_coor = ivy.astype(ivy.round(h_coor), ivy.int64) + 3 - d_coor = ivy.astype(ivy.round(d_coor), ivy.int64) + 3 - return ivy.permute_dims( - input_clone[batch_coor, :, d_coor, h_coor, w_coor], (0, 4, 1, 2, 3) - ) - elif mode == "bicubic": - raise ivy.exceptions.IvyError(f"Bicubic is not support in 3D grid sampling") +@with_unsupported_dtypes({"2.0.1 and below": ("float16", "bfloat16")}, "torch") +@to_ivy_arrays_and_back +def upsample_bilinear(input, size=None, scale_factor=None): + return interpolate( + input, size=size, scale_factor=scale_factor, mode="bilinear", align_corners=True + ) - else: - raise ivy.exceptions.IvyError(f"Not supported input shape {input_clone.shape}") +@with_unsupported_dtypes({"2.0.1 and below": ("float16", "bfloat16")}, "torch") +@to_ivy_arrays_and_back +def upsample_nearest(input, size=None, scale_factor=None): + return interpolate(input, size=size, scale_factor=scale_factor, mode="nearest") diff --git a/run_tests.py b/run_tests.py index 926278fb7b3dd..8013eaf7a9cab 100644 --- a/run_tests.py +++ b/run_tests.py @@ -18,7 +18,7 @@ "test_mindspore", "test_onnx", "test_sklearn", - "test_xgboost" + "test_xgboost", ) db_dict = { "test_functional/test_core": ["core", 10], @@ -37,7 +37,7 @@ "test_mindspore": ["mindspore", 23], "test_onnx": ["onnx", 24], "test_sklearn": ["sklearn", 25], - "test_xgboost": ["xgboost", 26] + "test_xgboost": ["xgboost", 26], } result_config = { "success": "https://img.shields.io/badge/-success-success", diff --git a/run_tests_CLI/synchronize_db.py b/run_tests_CLI/synchronize_db.py index b81b8379a3cd9..fc309e961c998 100644 --- a/run_tests_CLI/synchronize_db.py +++ b/run_tests_CLI/synchronize_db.py @@ -20,9 +20,7 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): - """ - Recursively navigate and identify keys not in the list. - """ + """Recursively navigate and identify keys not in the list.""" keys_for_deletion = [] for key, value in data.items(): @@ -58,7 +56,7 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore", "test_onnx", "test_sklearn", - "test_xgboost" + "test_xgboost", ) db_dict = { "test_functional/test_core": ["core", 10], @@ -77,8 +75,10 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore": ["mindspore", 23], "test_onnx": ["onnx", 24], "test_sklearn": ["sklearn", 25], - "test_xgboost": ["xgboost", 26] + "test_xgboost": ["xgboost", 26], } + + def get_submodule(test_path): test_path = test_path.split("/") for name in submodules: @@ -114,11 +114,13 @@ def main(): collection = db[collection_name] for document in collection.find({}): print(document) - undesired_keys = keys_to_delete_from_db(all_tests, module_map[collection_name], document) + undesired_keys = keys_to_delete_from_db( + all_tests, module_map[collection_name], document + ) for key in undesired_keys: print(key) # collection.update_one({"_id": document["_id"]}, {"$unset": {key: 1}}) if __name__ == "__main__": - main() \ No newline at end of file + main() From 8bb5b357fe7d77e71c98fb090aff966b020af3fd Mon Sep 17 00:00:00 2001 From: Sai-Suraj-27 Date: Thu, 7 Sep 2023 14:28:17 +0530 Subject: [PATCH 042/127] Added few simple checks to enhance the codebase. (#22974) Co-authored-by: Kareem Morsy --- .devcontainer/build/devcontainer.json | 2 +- .devcontainer/build_gpu/devcontainer.json | 2 +- .devcontainer/image/devcontainer.json | 8 +- .devcontainer/image_gpu/devcontainer.json | 10 +- .github/pull_request_template.md | 18 +-- .../workflows/array-api-intelligent-tests.yml | 2 +- .github/workflows/auto-comment.yml | 2 +- .github/workflows/checklist_actions.yml | 2 +- .github/workflows/dockerfile-push.yml | 2 +- .github/workflows/intelligent-tests.yml | 2 +- .github/workflows/manual-tests-pr.yml | 2 +- .github/workflows/manual-tests.yml | 4 +- .pre-commit-config.yaml | 6 + LICENSE | 6 +- README.md | 6 +- .../checklists/frontend_checklist.md | 8 +- .../checklists/reformat_checklist.md | 52 ++++----- docs/_templates/top_data_toc.rst | 6 +- docs/overview/contributing.rst | 4 +- .../contributing/building_the_docs.rst | 12 +- docs/overview/contributing/error_handling.rst | 22 ++-- docs/overview/contributing/open_tasks.rst | 8 +- docs/overview/contributing/setting_up.rst | 62 +++++----- docs/overview/contributing/the_basics.rst | 66 +++++------ docs/overview/deep_dive/arrays.rst | 12 +- docs/overview/deep_dive/backend_setting.rst | 2 +- .../deep_dive/building_the_docs_pipeline.rst | 72 ++++++------ docs/overview/deep_dive/containers.rst | 2 +- docs/overview/deep_dive/devices.rst | 6 +- .../overview/deep_dive/exception_handling.rst | 20 ++-- docs/overview/deep_dive/formatting.rst | 20 ++-- docs/overview/deep_dive/function_types.rst | 2 +- docs/overview/deep_dive/function_wrapping.rst | 6 +- docs/overview/deep_dive/gradients.rst | 18 +-- docs/overview/deep_dive/inplace_updates.rst | 6 +- docs/overview/deep_dive/ivy_frontends.rst | 2 +- .../deep_dive/ivy_frontends_tests.rst | 6 +- docs/overview/deep_dive/ivy_tests.rst | 8 +- docs/overview/faq.rst | 2 +- docs/overview/get_started.rst | 34 +++--- docs/overview/one_liners.rst | 2 +- docs/overview/one_liners/compile.rst | 108 +++++++++--------- docs/overview/one_liners/transpile.rst | 80 ++++++------- docs/prebuild.sh | 2 +- ivy/data_classes/array/general.py | 2 +- ivy/data_classes/container/creation.py | 18 +-- ivy/data_classes/container/elementwise.py | 2 +- .../container/experimental/manipulation.py | 4 +- .../container/experimental/random.py | 12 +- .../container/experimental/statistical.py | 16 +-- ivy/data_classes/container/layers.py | 4 +- ivy/data_classes/container/linear_algebra.py | 12 +- .../frontends/torch/comparison_ops.py | 2 +- ivy/functional/ivy/creation.py | 8 +- .../ivy/experimental/manipulation.py | 4 +- ivy/functional/ivy/linear_algebra.py | 4 +- 56 files changed, 409 insertions(+), 403 deletions(-) diff --git a/.devcontainer/build/devcontainer.json b/.devcontainer/build/devcontainer.json index 5debe40f27a6c..d92b7a8595881 100644 --- a/.devcontainer/build/devcontainer.json +++ b/.devcontainer/build/devcontainer.json @@ -23,7 +23,7 @@ }, "postCreateCommand": { - "post_create": "bash .devcontainer/post_create_commands.sh", + "post_create": "bash .devcontainer/post_create_commands.sh", "bashrc": "echo \"alias python=python3\" >> ~/.bashrc" }, diff --git a/.devcontainer/build_gpu/devcontainer.json b/.devcontainer/build_gpu/devcontainer.json index cbe6ee4d3ecfe..9dd6e95b2d1bf 100644 --- a/.devcontainer/build_gpu/devcontainer.json +++ b/.devcontainer/build_gpu/devcontainer.json @@ -24,7 +24,7 @@ }, "postCreateCommand": { - "post_create": "bash .devcontainer/post_create_commands.sh", + "post_create": "bash .devcontainer/post_create_commands.sh", "bashrc": "echo \"alias python=python3\" >> ~/.bashrc" }, diff --git a/.devcontainer/image/devcontainer.json b/.devcontainer/image/devcontainer.json index f5ef5400a41e9..4e54acc447657 100644 --- a/.devcontainer/image/devcontainer.json +++ b/.devcontainer/image/devcontainer.json @@ -14,20 +14,20 @@ }, "postCreateCommand": { - "post_create": "bash .devcontainer/post_create_commands.sh", + "post_create": "bash .devcontainer/post_create_commands.sh", "bashrc": "echo \"alias python=python3\" >> ~/.bashrc" }, "initializeCommand": "docker pull unifyai/ivy:latest", // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], - + // Uncomment when using a ptrace-based debugger like C++, Go, and Rust // "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], - + // Uncomment to use the Docker CLI from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker. // "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ], - + // Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root. // "remoteUser": "vscode", "features": { diff --git a/.devcontainer/image_gpu/devcontainer.json b/.devcontainer/image_gpu/devcontainer.json index a3bbfba0c34a4..c932c92507b2f 100644 --- a/.devcontainer/image_gpu/devcontainer.json +++ b/.devcontainer/image_gpu/devcontainer.json @@ -16,20 +16,20 @@ "runArgs": ["--gpus","all"], "postCreateCommand": { - "post_create": "bash .devcontainer/post_create_commands.sh", + "post_create": "bash .devcontainer/post_create_commands.sh", "bashrc": "echo \"alias python=python3\" >> ~/.bashrc" }, "initializeCommand": "docker pull unifyai/ivy:latest", - + // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], - + // Uncomment when using a ptrace-based debugger like C++, Go, and Rust // "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], - + // Uncomment to use the Docker CLI from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker. // "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ], - + // Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root. // "remoteUser": "vscode", "features": { diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index aeae956c725f6..b1d1b60abc1ca 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,31 +1,31 @@ - -# PR Description +# PR Description - -## Related Issue +## Related Issue - Close # -## Checklist +## Checklist - [ ] Did you add a function? - [ ] Did you add the tests? - [ ] Did you follow the steps we provided? -### Socials: +### Socials: - diff --git a/.github/workflows/array-api-intelligent-tests.yml b/.github/workflows/array-api-intelligent-tests.yml index 604448e4750dd..5d18b3e64c9a3 100644 --- a/.github/workflows/array-api-intelligent-tests.yml +++ b/.github/workflows/array-api-intelligent-tests.yml @@ -30,7 +30,7 @@ jobs: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} run: | source ./ivy/clone_mapping.sh main - pip install pydriller pymongo + pip install pydriller pymongo cp Mapping/tests.pbz2 ivy/ cd ivy python run_tests_CLI/array_api_determine_tests.py diff --git a/.github/workflows/auto-comment.yml b/.github/workflows/auto-comment.yml index c66bce4507e22..178124f651f00 100644 --- a/.github/workflows/auto-comment.yml +++ b/.github/workflows/auto-comment.yml @@ -16,7 +16,7 @@ jobs: issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - + body: `Thanks for contributing to Ivy! 😊👏 Here are some of the important points from our Contributing Guidelines 📝: 1. Feel free to ignore the \`run_tests (1)\`, \`run_tests (2)\`, … jobs, and only look at the \`display_test_results\` job. 👀 It contains the following two sections: diff --git a/.github/workflows/checklist_actions.yml b/.github/workflows/checklist_actions.yml index 6bfc557186be7..fcba0e24baa74 100644 --- a/.github/workflows/checklist_actions.yml +++ b/.github/workflows/checklist_actions.yml @@ -38,7 +38,7 @@ jobs: comment-id: ${{ github.event.comment.id }} body: ${{ steps.template.outputs.result }} edit-mode: replace - + frontend_pr_commented: name: Frontend PR comment if: ${{ github.event.issue.pull_request && github.event.comment.body == 'add_frontend_checklist' }} diff --git a/.github/workflows/dockerfile-push.yml b/.github/workflows/dockerfile-push.yml index 7b61ef63b6c3b..06be15ea1e427 100644 --- a/.github/workflows/dockerfile-push.yml +++ b/.github/workflows/dockerfile-push.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-20.04 steps: - - + - name: Checkout 🛎 Ivy uses: actions/checkout@v3 diff --git a/.github/workflows/intelligent-tests.yml b/.github/workflows/intelligent-tests.yml index 6c87d170816b1..41a8c4b7e7cbe 100644 --- a/.github/workflows/intelligent-tests.yml +++ b/.github/workflows/intelligent-tests.yml @@ -63,7 +63,7 @@ jobs: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} run: | source ./ivy/clone_mapping.sh master${{ matrix.branch }} - pip install pydriller pymongo + pip install pydriller pymongo cp Mapping/tests.pbz2 ivy/ cd ivy mkdir .ivy diff --git a/.github/workflows/manual-tests-pr.yml b/.github/workflows/manual-tests-pr.yml index b818bd37e614a..1e74fbff6d274 100644 --- a/.github/workflows/manual-tests-pr.yml +++ b/.github/workflows/manual-tests-pr.yml @@ -34,7 +34,7 @@ jobs: mkdir .ivy touch .ivy/key.pem echo -n ${{ secrets.USER_API_KEY }} > .ivy/key.pem - python setup_tests.py ${{ github.event.inputs.test }} + python setup_tests.py ${{ github.event.inputs.test }} python run_tests_pr.py new_failures.txt continue-on-error: true diff --git a/.github/workflows/manual-tests.yml b/.github/workflows/manual-tests.yml index 24f2c92ee2f4f..099de5b4c4d53 100644 --- a/.github/workflows/manual-tests.yml +++ b/.github/workflows/manual-tests.yml @@ -52,7 +52,7 @@ jobs: mkdir .ivy touch .ivy/key.pem echo -n ${{ secrets.USER_API_KEY }} > .ivy/key.pem - python3 setup_tests.py ${{ github.event.inputs.test }} + python3 setup_tests.py ${{ github.event.inputs.test }} python3 run_tests.py ${{ secrets.REDIS_CONNECTION_URL }} ${{ secrets.REDIS_PASSWORD }} ${{ secrets.MONGODB_PASSWORD }} 'false' ${{ github.event.inputs.gpu }} ${{ github.run_id }} 'false' ${{ steps.jobs.outputs.html_url }} continue-on-error: true @@ -86,7 +86,7 @@ jobs: mkdir .ivy touch .ivy/key.pem echo -n ${{ secrets.USER_API_KEY }} > .ivy/key.pem - python setup_tests.py "${{ github.event.inputs.test }}" + python setup_tests.py "${{ github.event.inputs.test }}" python run_tests.py ${{ secrets.REDIS_CONNECTION_URL }} ${{ secrets.REDIS_PASSWORD }} ${{ secrets.MONGODB_PASSWORD }} ${{ github.event.inputs.version}} 'false' ${{ github.run_id }} 'false' ${{ steps.jobs.outputs.html_url }} continue-on-error: true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 95088f8c387fc..19bd018094670 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,10 @@ repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-yaml + - id: trailing-whitespace + - id: check-toml - repo: https://github.com/psf/black rev: 23.7.0 hooks: diff --git a/LICENSE b/LICENSE index 1bed16118cb75..0c0c4b97e0b30 100644 --- a/LICENSE +++ b/LICENSE @@ -174,9 +174,9 @@ Copyright 2021 The Ivy Authors. All rights reserved. defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - - 10. The software in this directory and its subdirectories is licensed under the Apache License, - Version 2.0, except for the software contained within the ivy/compiler directory, + + 10. The software in this directory and its subdirectories is licensed under the Apache License, + Version 2.0, except for the software contained within the ivy/compiler directory, which is subject to the license set forth in the LICENSE file located within that directory. END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md index be051879882f0..0a6702365d24b 100644 --- a/README.md +++ b/README.md @@ -437,7 +437,7 @@ expected. :sweat_smile: ``` bash git clone https://github.com/unifyai/ivy.git -cd ivy +cd ivy pip install --user -e . ``` @@ -1526,7 +1526,7 @@ device = "cuda:0" if ivy.gpu_is_available() else "cpu" # training hyperparams optimizer= ivy.Adam(1e-4) -batch_size = 64 +batch_size = 64 num_epochs = 20 num_classes = 10 @@ -1600,7 +1600,7 @@ def train(images, classes, epochs, model, device, num_classes=10, batch_size=32) f.writerows(metrics) -# assuming the dataset(images and classes) are already prepared in a folder +# assuming the dataset(images and classes) are already prepared in a folder train(images, classes, num_epochs, model, device, num_classes = num_classes, batch_size = batch_size) ``` diff --git a/automation_tools/checklists/frontend_checklist.md b/automation_tools/checklists/frontend_checklist.md index ecfe3226b0dc7..53fc5f25e99b1 100644 --- a/automation_tools/checklists/frontend_checklist.md +++ b/automation_tools/checklists/frontend_checklist.md @@ -6,7 +6,7 @@ The [Ivy Docs](https://unify.ai/docs/ivy/) represent the ground truth for the ta Please note that the contributor is not expected to understand everything in the checklist. It's mainly here for the reviewer to make sure everything has been done correctly 🙂 #### LEGEND 🗺: -- ❌ : Check item is not completed. +- ❌ : Check item is not completed. - ✅ : Check item is ready for review. - 🆘 : Stuck/Doubting implementation (PR author should add comments explaining why). - ⏩ : Check is not applicable to function (skip). @@ -24,15 +24,15 @@ Please note that the contributor is not expected to understand everything in the 2. - [ ] ❌: A ToDo comment has been added prompting to pass the frontend argument to the ivy function whose behavior is to be extended. 6. - [ ] ❌: In case a frontend function is being added: 1. - [ ] ❌: It is a composition of ivy functions. - 2. - [ ] ❌: In case the needed composition is long (using numerous ivy functions), a `Missing Function Suggestion` issue has been opened to suggest a new ivy function should be added to shorten the frontend implementation. + 2. - [ ] ❌: In case the needed composition is long (using numerous ivy functions), a `Missing Function Suggestion` issue has been opened to suggest a new ivy function should be added to shorten the frontend implementation. 3. - [ ] ❌: `@to_ivy_arrays_and_back` has been added to the function. 7. - [ ] ❌: In case a frontend method is being added: - 1. - [ ] ❌: It is composed of existing frontend functions or methods. + 1. - [ ] ❌: It is composed of existing frontend functions or methods. 2. - [ ] ❌: If a required frontend function has not yet been added, the method may be implemented as a composition of ivy functions, making sure that: - [ ] ❌: `@to_ivy_arrays_and_back` has been added to the method. - [ ] ❌: A ToDo comment has been made prompting to remove the decorator and update the implementation as soon as the missing function has been added. 8. - [ ] ❌: The function/method's test has been added (except in the alias case mentioned in <2>): - 1. - [ ] ❌: All supported arguments are being generated in `handle_frontend_test`/`handle_frontend_method` and passed to `test_frontend_function`/`test_frontend_method`. + 1. - [ ] ❌: All supported arguments are being generated in `handle_frontend_test`/`handle_frontend_method` and passed to `test_frontend_function`/`test_frontend_method`. 2. - [ ] ❌: The argument generation covers all possible supported values. Array sizes, dimensions, and axes adhere to the full supported set of the original function/method. 3. - [ ] ❌: The `available_dtypes` parameter passed to the helper generating the function/method's input array is set to `helpers.get_dtypes("valid")`. If there are unsupported dtypes that cause the test to fail, they should be handled by adding `@with_supported_dtypes`/`@with_unsupported_dtype` to the function/method. 9. - [ ] ❌: The PR is not introducing any test failures. diff --git a/automation_tools/checklists/reformat_checklist.md b/automation_tools/checklists/reformat_checklist.md index d3b185224f6fd..0e40e9804211a 100644 --- a/automation_tools/checklists/reformat_checklist.md +++ b/automation_tools/checklists/reformat_checklist.md @@ -4,7 +4,7 @@ The [Ivy Docs](https://unify.ai/docs/ivy/) represent the ground truth for the task descriptions and this checklist should only be used as a supplementary item to aid with the review process. #### LEGEND 🗺: -- ❌ : Check item is not completed. +- ❌ : Check item is not completed. - ✅ : Check item is ready for review. - 🆘 : Stuck/Doubting implementation (PR author should add comments explaining why). - ⏩ : Check is not applicable to function (skip). @@ -16,7 +16,7 @@ The [Ivy Docs](https://unify.ai/docs/ivy/) represent the ground truth for the ta - [ ] ❌: [ivy/functional/backends/numpy/{{ .category_name }}.py](https://github.com/unifyai/ivy/tree/main/ivy/functional/backends/numpy/{{ .category_name }}.py). - [ ] ❌: [ivy/functional/backends/tensorflow/{{ .category_name }}.py](https://github.com/unifyai/ivy/tree/main/ivy/functional/backends/tensorflow/{{ .category_name }}.py). - [ ] ❌: [ivy/functional/backends/torch/{{ .category_name }}.py](https://github.com/unifyai/ivy/tree/main/ivy/functional/backends/torch/{{ .category_name }}.py). -2. - [ ] ❌: Implement the following if they don't exist: +2. - [ ] ❌: Implement the following if they don't exist: 1. - [ ] ❌: The `ivy.Array` instance method in [ivy/data_classes/array/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/array/{{ .category_name }}.py). 2. - [ ] ❌: The `ivy.Array` special method in [ivy/data_classes/array/array.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/array/array.py). 3. - [ ] ❌: The `ivy.Array` reverse special method in [ivy/data_classes/array/array.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/array/array.py). @@ -25,11 +25,11 @@ The [Ivy Docs](https://unify.ai/docs/ivy/) represent the ground truth for the ta 6. - [ ] ❌: The `ivy.Container` special method in [ivy/data_classes/container/container.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/container.py). 7. - [ ] ❌: The `ivy.Container` reverse special method in [ivy/data_classes/container/container.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/container.py). 3. - [ ] ❌: Make sure that the aforementioned methods are added into the correct category-specific parent class, such as `ivy.ArrayWithElementwise`, `ivy.ContainerWithManipulation` etc. -4. - [ ] ❌: Correct all of the [Function Arguments and the type hints](https://unify.ai/docs/ivy/overview/deep_dive/function_arguments.html#function-arguments) for every function **and** its _relevant methods_, including those you did not implement yourself. -5. - [ ] ❌: Add the correct [Docstrings](https://unify.ai/docs/ivy/overview/deep_dive/docstrings.html#docstrings) to every function **and** its _relevant methods_, including those you did not implement yourself. The following should be added: - 1. - [ ] ❌: The function's [Array API standard](https://data-apis.org/array-api/latest/index.html) description in [ivy/functional/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/functional/ivy/{{ .category_name }}.py). If the function is not part of the Array API standard then a description of similar style should be added to the same file. +4. - [ ] ❌: Correct all of the [Function Arguments and the type hints](https://unify.ai/docs/ivy/overview/deep_dive/function_arguments.html#function-arguments) for every function **and** its _relevant methods_, including those you did not implement yourself. +5. - [ ] ❌: Add the correct [Docstrings](https://unify.ai/docs/ivy/overview/deep_dive/docstrings.html#docstrings) to every function **and** its _relevant methods_, including those you did not implement yourself. The following should be added: + 1. - [ ] ❌: The function's [Array API standard](https://data-apis.org/array-api/latest/index.html) description in [ivy/functional/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/functional/ivy/{{ .category_name }}.py). If the function is not part of the Array API standard then a description of similar style should be added to the same file. The following modifications should be made to the description: - - [ ] ❌: Remove type definitions in the `Parameters` and `Returns` sections. + - [ ] ❌: Remove type definitions in the `Parameters` and `Returns` sections. - [ ] ❌: Add `out` to the `Parameters` section if function accepts an `out` argument. - [ ] ❌: Replace `out` with `ret` in the `Returns` section. 2. - [ ] ❌: Reference to docstring for ivy.function_name ([5.a](#ref1)) for the function description **and** modified `Parameters` and `Returns` sections as described in [the docs](https://unify.ai/docs/ivy/overview/deep_dive/docstrings.html#docstrings) in: @@ -40,48 +40,48 @@ The [Ivy Docs](https://unify.ai/docs/ivy/) represent the ground truth for the ta - [ ] ❌: [ivy/container/container.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/container.py) if the function has a special method ( like `__function_name__` ). - [ ] ❌: [ivy/container/container.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/container.py) if the function has a reverse special method ( like `__rfunction_name__` ). 6. - [ ] ❌: Add thorough [Docstring Examples](https://unify.ai/docs/ivy/overview/deep_dive/docstring_examples.html#docstring-examples) for every function **and** its _relevant methods_ and ensure they pass the docstring tests. - + **Functional Examples** in [ivy/functional/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/functional/ivy/{{ .category_name }}.py). - 1. - [ ] ❌: Cover all possible variants for each of the arguments independently (not combinatorily). + 1. - [ ] ❌: Cover all possible variants for each of the arguments independently (not combinatorily). 2. - [ ] ❌: Vary the values and input shapes considerably between examples. 3. - [ ] ❌: Start out simple and get more complex with each example. - 4. - [ ] ❌: Show an example with: - - [ ] ❌: `out` unused. + 4. - [ ] ❌: Show an example with: + - [ ] ❌: `out` unused. - [ ] ❌: `out` used to update a new array y. - - [ ] ❌: `out` used to inplace update the input array x (if x has the same dtype and shape as the return). - 5. - [ ] ❌: If broadcasting is relevant for the function, then show examples which highlight this. - + - [ ] ❌: `out` used to inplace update the input array x (if x has the same dtype and shape as the return). + 5. - [ ] ❌: If broadcasting is relevant for the function, then show examples which highlight this. + **Nestable Function Examples** in [ivy/functional/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/functional/ivy/{{ .category_name }}.py). Only if the function supports nestable operations. - - 6. - [ ] ❌: Add an example that passes in an `ivy.Container` instance in place of one of the arguments. + + 6. - [ ] ❌: Add an example that passes in an `ivy.Container` instance in place of one of the arguments. 7. - [ ] ❌: Add an example passes in `ivy.Container` instances for multiple arguments. - + **Container Static Method Examples** in [ivy/container/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/{{ .category_name }}.py). 8. - [ ] ❌: The example from point ([6.f](#ref2)) should be replicated, but added to the `ivy.Container` **static method** docstring in with `ivy.` replaced with `ivy.Container.static_` in the example. 9. - [ ] ❌: The example from point ([6.g](#ref3)) should be replicated, but added to the `ivy.Container` **static method** docstring, with `ivy.` replaced with `ivy.Container.static_` in the example. - + **Array Instance Method Example** in [ivy/array/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/array/{{ .category_name }}). - + 10. - [ ] ❌: Call this instance method of the `ivy.Array` class. - + **Container Instance Method Example** in [ivy/container/{{ .category_name }}.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/{{ .category_name }}.py). - + 11. - [ ] ❌: Call this instance method of the `ivy.Container` class. - + **Array Operator Examples** in [ivy/array/array.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/array/array.py). - + 12. - [ ] ❌: Call the operator on two `ivy.Array` instances. 13. - [ ] ❌: Call the operator with an `ivy.Array` instance on the left and `ivy.Container` on the right. - + **Array Reverse Operator Example** in [ivy/array/array.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/array/array.py). - + 14. - [ ] ❌: Call the operator with a `Number` on the left and an `ivy.Array` instance on the right. - + **Container Operator Examples** in [ivy/container/container.py](https://github.com/unifyai/ivy/blob/main/ivy/data_classes/container/container.py). - + 15. - [ ] ❌: Call the operator on two `ivy.Container` instances containing Number instances at the leaves. 16. - [ ] ❌: Call the operator on two `ivy.Container` instances containing `ivy.Array` instances at the leaves. 17. - [ ] ❌: Call the operator with an `ivy.Container` instance on the left and `ivy.Array` on the right. diff --git a/docs/_templates/top_data_toc.rst b/docs/_templates/top_data_toc.rst index fd991a4641b6c..5d6c8bb764121 100644 --- a/docs/_templates/top_data_toc.rst +++ b/docs/_templates/top_data_toc.rst @@ -6,9 +6,9 @@ {% block options %}{{ super() }} :hide-table: {% endblock %} -{# - As this toc generates files a little differently, we added this to fix linking - issues +{# + As this toc generates files a little differently, we added this to fix linking + issues #} {% block custom_content %} .. autosummary:: diff --git a/docs/overview/contributing.rst b/docs/overview/contributing.rst index 8372cf661a277..1f106cc66d795 100644 --- a/docs/overview/contributing.rst +++ b/docs/overview/contributing.rst @@ -32,10 +32,10 @@ The contributor guide is split into the sections below, it's best to go from sta | | (f) `Applied Libraries `_ | Getting started with our applied libraries! 📚 -| +| | (g) `Helpful Resources `_ | Resources you would find useful when learning Ivy 📖 -| +| | (g) `Error Handling `_ | Common errors you will be facing contributing to Ivy ❌ diff --git a/docs/overview/contributing/building_the_docs.rst b/docs/overview/contributing/building_the_docs.rst index fb03ce01d5e80..202d6dbff5748 100644 --- a/docs/overview/contributing/building_the_docs.rst +++ b/docs/overview/contributing/building_the_docs.rst @@ -2,7 +2,7 @@ Building the Docs ================= This document describes how to build the Ivy docs. If you want to know more about how -our custom building pipeline work, check our `Building the Docs Pipeline +our custom building pipeline work, check our `Building the Docs Pipeline <../deep_dive/building_the_docs_pipline.rst>`_ deep dive Building the Docs using Docker @@ -23,11 +23,11 @@ This script will build the docs for Ivy and store it in ``docs/build``. Using existing image on Docker Hub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -You can also use the ``unifyai/doc-builder`` image hosted on -`Docker Hub `_ to build the +You can also use the ``unifyai/doc-builder`` image hosted on +`Docker Hub `_ to build the docs. This will be helpful if you want to build the docs for Ivy applied libraries. -Run ``docker run`` to build the docs. The following command will build the docs for +Run ``docker run`` to build the docs. The following command will build the docs for the project in the current directory and output them to ``docs/build``. .. code-block:: bash @@ -67,7 +67,7 @@ Building the Docs without Docker -------------------------------- You can also build the docs without Docker. You will first need to clone the -``unifyai/doc-builder`` repository. Then use the convenience script +``unifyai/doc-builder`` repository. Then use the convenience script ``make_docs_without_docker.sh``. Run this command if you are using HTTPS: @@ -90,5 +90,5 @@ Then, run the following command to build the docs: ./make_docs_without_docker.sh The script will install the required dependencies for `sphinx `_ -which is used to build the docs, as well as dependencies required by Ivy or the Ivy +which is used to build the docs, as well as dependencies required by Ivy or the Ivy applied library. Then it will build the docs for Ivy and store it in ``docs/build``. diff --git a/docs/overview/contributing/error_handling.rst b/docs/overview/contributing/error_handling.rst index 44f4df41fee1b..ff4bbefbf7d8d 100644 --- a/docs/overview/contributing/error_handling.rst +++ b/docs/overview/contributing/error_handling.rst @@ -10,7 +10,7 @@ Error Handling This section, "Error Handling" aims to assist you in navigating through some common errors you might encounter while working with the Ivy's Functional API. We'll go through some common errors which you might encounter while working as a contributor or a developer. -#. This is the case where we pass in a dtype to `torch` which is not actually supported by the torch's native framework itself. The function which was +#. This is the case where we pass in a dtype to `torch` which is not actually supported by the torch's native framework itself. The function which was .. code-block:: python @@ -33,17 +33,17 @@ This section, "Error Handling" aims to assist you in navigating through some com E ), E fn_name='logaddexp2', E ) - E + E E You can reproduce this example by temporarily adding @reproduce_failure('6.82.4', b'AXicY2BkAAMoBaaR2WAAAACVAAY=') as a decorator on your test case #. This is the case where the value from the ground-truth backend(tensorflow) does not match the value of the backend(jax) we are testing for this case. .. code-block:: python - + E AssertionError: the results from backend jax and ground truth framework tensorflow do not match - E 0.25830078125!=0.258544921875 - E - E + E 0.25830078125!=0.258544921875 + E + E E Falsifying example: test_acosh( E backend_fw='jax', E on_device='cpu', @@ -61,7 +61,7 @@ This section, "Error Handling" aims to assist you in navigating through some com E ), E fn_name='acosh', E ) - E + E E You can reproduce this example by temporarily adding @reproduce_failure('6.82.4', b'AXicY2BAABYQwQgiAABDAAY=') as a decorator on your test case #. This is a similar assertion as stated in point 2 but with torch and ground-truth tensorflow not matching but the matrices are quite different so there should be an issue in the backends rather than a numerical instability here: @@ -73,9 +73,9 @@ This section, "Error Handling" aims to assist you in navigating through some com E [1.41421356 1.41421356 1.41421356] E [1.41421356 inf 1.41421356]]!=[[1.41421356e+000 1.41421356e+000 1.41421356e+000] E [1.41421356e+000 1.41421356e+000 1.41421356e+000] - E [1.41421356e+000 1.34078079e+154 1.41421356e+000]] - E - E + E [1.41421356e+000 1.34078079e+154 1.41421356e+000]] + E + E E Falsifying example: test_abs( E backend_fw='torch', E on_device='cpu', @@ -96,7 +96,7 @@ This section, "Error Handling" aims to assist you in navigating through some com E container=[False], E ), E ) - E + E E You can reproduce this example by temporarily adding @reproduce_failure('6.82.4', b'AXicY2ZkYAIiBiBgZIAAxqHEXsAAB7jUQAAAMtEAzQ==') as a decorator on your test case diff --git a/docs/overview/contributing/open_tasks.rst b/docs/overview/contributing/open_tasks.rst index ee2e7602d8f50..081f7946d6488 100644 --- a/docs/overview/contributing/open_tasks.rst +++ b/docs/overview/contributing/open_tasks.rst @@ -68,7 +68,7 @@ Some common important tasks are: Formatting checklist ~~~~~~~~~~~~~~~~~~~~ -After creating your Pull Request on github, you should then produce the checklist for the formatting task as follows: +After creating your Pull Request on github, you should then produce the checklist for the formatting task as follows: 1. Add a comment with the following format: :code:`add_reformatting_checklist_` on your PR, where ** is the name of the category that the function belongs to. An example of this is shown below. @@ -95,7 +95,7 @@ The PR assignee will then see this comment and address your issues. .. image:: https://github.com/unifyai/unifyai.github.io/blob/main/img/externally_linked/contributing/open_tasks/checklist_SOS.png?raw=true :width: 420 -**Notes**: +**Notes**: 1. It is important that the PR author is the one to add the checklist generating comment in order to ensure they will have access to edit and update it later. 2. The checklist items' statuses should be manually updated by the PR author. @@ -236,7 +236,7 @@ A general workflow for these tasks would be: #. Analyze the function type, we have a very detailed section for it in the deep dive `Function Types Guide <../deep_dive/function_types.rst>`_ #. Every function will have a different file structure according to the function type, refer to :ref:`overview/contributing/open_tasks:Where to place a backend function` subsection below. -#. Implement the container instance method in :mod:`ivy/container/experimental/[relevant_submodule].py` and the array instance method +#. Implement the container instance method in :mod:`ivy/container/experimental/[relevant_submodule].py` and the array instance method in :mod:`ivy/array/experimental/[relevant_submodule].py` #. Write tests for the function using the `Ivy Tests <../deep_dive/ivy_tests.rst>`_ guide, and make sure they are passing. @@ -245,7 +245,7 @@ A few points to keep in mind while doing this: #. Make sure all the positional arguments are positional-only and optional arguments are keyword-only. #. In case some tests require function-specific parameters, you can create composite hypothesis strategies using the :code:`draw` function in the hypothesis library. -If you’re stuck on a function which requires complex compositions, feel free to reselect a function +If you’re stuck on a function which requires complex compositions, feel free to reselect a function Extending the Ivy API ~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/overview/contributing/setting_up.rst b/docs/overview/contributing/setting_up.rst index 0847d5708ce4b..188f1d04d095b 100644 --- a/docs/overview/contributing/setting_up.rst +++ b/docs/overview/contributing/setting_up.rst @@ -107,7 +107,7 @@ Using miniconda #. Create the environment by running the command (:code:`ivy_dev` is the name of the environment) .. code-block:: none - + conda create --name ivy_dev python=3.10.0 #. Activate the environment by: @@ -129,27 +129,27 @@ Using miniconda a. Going to settings -> project -> Python Interpreter b. Clicking add interpreter (currently by clicking the ⚙ icon on the right side) which should open a new window. - + c. Choosing "conda environment" from the left panel. Choose the existing environment and select the drop down and you should find the path python in the environment. #. VSCode a. Go to the command palette (Ctrl+Shift+P) or (⌘+shift+p) for Mac and type "Python: Select Interpreter" and select the environment you created. - + If you don't find a path to your created python environment, you can run :code:`where python` in the conda command line while the environment is activate and it should give the path which can be added manually. #. Installing the development dependencies. a. On Linux, Windows, or Intel Mac, you will need to use the `optional.txt` requirements file. To install dependencies. - + .. code-block:: none - + pip install -r requirements/optional.txt - + b. On M1 Mac, you will need to use the optional_apple_silicon_1 and optional_apple_silicon_2 requirements files. To install dependencies. - + .. code-block:: none - + pip install -r requirements/optional_apple_silicon_1.txt pip install -r requirements/optional_apple_silicon_2.txt @@ -208,26 +208,26 @@ This is a builtin package and doesn't require explicit installation. a. Go to the command palette (Ctrl+Shift+P) or (⌘+shift+p) for Mac and type `Python: Select Interpreter` and select the environment you created. #. Installing the development dependencies. - + a. On Linux, Windows, or Intel Mac, you will need to use the `optional.txt` requirements file. To install dependencies. - + .. code-block:: none - + pip install -r requirements/optional.txt - Note: In case you are using Ubuntu 22.04, PaddlePaddle won't install properly. You have to download it from the source. - + Note: In case you are using Ubuntu 22.04, PaddlePaddle won't install properly. You have to download it from the source. + .. code-block:: none - + wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb - + PS: If the link gets expired at some point in the future, check http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/?C=M;O=D for a valid one. b. On M1 Mac, you will need to use the optional_apple_silicon_1 and optional_apple_silicon_2 requirements files. To install dependencies. - + .. code-block:: none - + pip install -r requirements/optional_apple_silicon_1.txt pip install -r requirements/optional_apple_silicon_2.txt @@ -423,14 +423,14 @@ Ubuntu **Docker Connection not Successfull** This is a common error which you might face. If you are not successfully able to connect docker with Pycharm(point 4a) and your docker is also running, the issue is that you are not able to use your docker socket. So, executing the below two commands should solve this. - + .. code-block:: none - + sudo chmod a+rwx /var/run/docker.sock - + .. code-block:: none - - sudo chmod a+rwx /var/run/docker.pid + + sudo chmod a+rwx /var/run/docker.pid For questions, please reach out on `discord`_ in the `docker channel`_! @@ -601,14 +601,14 @@ For windows users, the file path should be entered with "/" (forward-slashes), f WSL *** - + It is understandable that working with computationally heavy tools like Docker and PyCharm is not always comfortable for developers. -By utilizing WSL, you can run a Linux distribution on your Windows machine, and in addition, venv is leveraged to create -isolated Python environments eliminating the need for a full-fledged containerization solution like Docker, and with VSCode being an appropriate alternative to PyCharm, +By utilizing WSL, you can run a Linux distribution on your Windows machine, and in addition, venv is leveraged to create +isolated Python environments eliminating the need for a full-fledged containerization solution like Docker, and with VSCode being an appropriate alternative to PyCharm, the steps explained below will help you in setting up a less resource-intensive Ivy environment. #. Install `WSL `_. -#. Install `Visual Studio Code `_. +#. Install `Visual Studio Code `_. You can follow `this guide `_ to integrate WSL into VSCode. #. Open the WSL terminal by typing in the name of your Linux distribution in the windows start menu (e.g. :code:`Ubuntu`). #. Create a virtual environment by following the steps below: @@ -650,12 +650,12 @@ the steps explained below will help you in setting up a less resource-intensive pip install -r requirements/requirements.txt #. Once done, you can now open VSCode right from your terminal and get started with your development by just running: - + .. code-block:: none code . -#. To set up the Python Interpreter in VSCode, go to the command palette (Ctrl+Shift+P) and type **Python: Select Interpreter** and select the environment you created. +#. To set up the Python Interpreter in VSCode, go to the command palette (Ctrl+Shift+P) and type **Python: Select Interpreter** and select the environment you created. For a more detailed explanation, you can follow `this guide `_. #. Now that your development environment is set up, you can now run tests locally by running :code:`pytest test_fle_path::test_fn_name` in the terminal or if you want to set up testing in VSCode, you may follow the guide **Setting Up Testing** for VSCode as explained below, next to this subsection. @@ -700,14 +700,14 @@ Just follow the steps outlined below: :width: 420 3. Then you will head to the dropdown of "Dev container configuration", then select an image to set up with. As there are six options available as of now - + - :code:`Default project configuration` - This is the default option, it will set up with the default codespaces environment. - :code:`Ivy Development Environment (build)` - This will set up the development environment of ivy for CPU and build image from :code:`ivy/docker/Dockerfile`. - :code:`Ivy GPU Development Environment (build)` - This will set up the development environment of ivy for GPU and build image from :code:`ivy/docker/DockerfileGPU`. - :code:`Ivv Development Environment for Multiver...` - This will set up the development environment of multiversion support with ivy and build image from :code:`ivy/docker/DockerfileMultiversion`. - :code:`Ivy Development Environment (image)` - This will set up the development environment of ivy for CPU and build image from the latest image from dockerhub. - :code:`Ivy GPU Development Environment (image)` - This will set up the development environment of ivy for GPU and build image from the latest image from dockerhub. - + For now, we will select :code:`Ivy Development Environment (image)`. Select your region and preferred machine type, then click on "Create Codespace". @@ -745,7 +745,7 @@ The configuration files install all the required packages, and extensions for yo If you want to setup a GPU instance on codespaces and also have access to it, kindly follow the guidelines below: -1. Points 1 and 2 are the same from ref:`Setting up Codespaces` section above. You will be on a screen shown below. Just select the Machine Type to be "6-Core (1 GPU)". +1. Points 1 and 2 are the same from ref:`Setting up Codespaces` section above. You will be on a screen shown below. Just select the Machine Type to be "6-Core (1 GPU)". .. image:: https://raw.githubusercontent.com/unifyai/unifyai.github.io/main/img/externally_linked/contributing/setting_up/github_codespaces/Selecting_the_GPU.png?raw=true :width: 420 diff --git a/docs/overview/contributing/the_basics.rst b/docs/overview/contributing/the_basics.rst index 7c1a91a5db936..96de0bfc02e9c 100644 --- a/docs/overview/contributing/the_basics.rst +++ b/docs/overview/contributing/the_basics.rst @@ -70,7 +70,7 @@ d. Start working on the task, and open a PR as soon as you have a full or partia :code:`Close #Issue_number` - This is important, so that the merging of your PR will automatically close the associated issue. Make sure this is in the + This is important, so that the merging of your PR will automatically close the associated issue. Make sure this is in the description of the PR, otherwise it might not link correctly. If you have a partial solution, the Ivy team can help to guide you through the process of getting it working 🙂 Also, remember to make the PR name well described and if there are some details that can support your changes add them to the description of the PR. @@ -339,16 +339,16 @@ With Docker #. With PyCharm (With or without docker): 1. PyCharm enables users to run pytest using the green button present near every function declaration inside the :code:`ivy_tests` folder. - + .. image:: https://raw.githubusercontent.com/unifyai/unifyai.github.io/main/img/externally_linked/contributing/the_basics/pytest_with_pycharm/pytest_button_pycharm.png?raw=true :width: 420 - + 2. Testing can be done for the entire project, individual submodules, individual files, and individual tests. This can be done by selecting the appropriate configuration from the top pane in PyCharm. - + .. image:: https://raw.githubusercontent.com/unifyai/unifyai.github.io/main/img/externally_linked/contributing/the_basics/pytest_with_pycharm/pytest_with_pycharm.png?raw=true :width: 420 - + #. Through the command line (With docker): 1. We need to replace the folder inside the container with the current local ivy directory to run tests on the current local code. @@ -356,29 +356,29 @@ With Docker .. code-block:: none docker exec rm -rf ivy - docker cp ivy :/ + docker cp ivy :/ 2. We need to then enter inside the docker container and change into the :code:`ivy` directory using the following command. .. code-block:: none - docker exec -it ivy_container bash + docker exec -it ivy_container bash cd ivy 3. Run the test using the pytest command. 1. Ivy Tests: - 1. For a single function: + 1. For a single function: .. code-block:: none - + pytest ivy_tests/test_ivy/test_functional/test_core/test_image.py::test_random_crop --no-header --no-summary -q - + 2. For a single file: .. code-block:: none - + pytest ivy_tests/test_ivy/test_functional/test_core/test_image.py --no-header --no-summary -q 3. For all tests: @@ -389,28 +389,28 @@ With Docker 2. Array API Tests: - 1. For a single function: + 1. For a single function: .. code-block:: none - + pytest ivy_tests/array_api_testing/test_array_api/array_api_tests/test_creation_functions.py::test_arange --no-header --no-summary -q - + 2. For a single file: .. code-block:: none - + pytest ivy_tests/array_api_testing/test_array_api/array_api_tests/test_creation_functions.py --no-header --no-summary -q - + 3. For all tests: .. code-block:: none pytest ivy_tests/array_api_testing/test_array_api/ --no-header --no-summary -q - + 3. For the entire project: .. code-block:: none - + pytest ivy_tests/ --no-header --no-summary -q #. Through the command line (Without docker): @@ -434,16 +434,16 @@ With Docker 1. Ivy Tests: - 1. For a single function: + 1. For a single function: .. code-block:: none - + python -m pytest ivy_tests/test_ivy/test_functional/test_core/test_image.py::test_random_crop --no-header --no-summary -q - + 2. For a single file: .. code-block:: none - + python -m pytest ivy_tests/test_ivy/test_functional/test_core/test_image.py --no-header --no-summary -q 3. For all tests: @@ -452,34 +452,34 @@ With Docker python -m pytest ivy_tests/test_ivy/ --no-header --no-summary -q - 2. Array API Tests + 2. Array API Tests - 1. For a single function: + 1. For a single function: .. code-block:: none - + python -m pytest ivy_tests/array_api_testing/test_array_api/array_api_tests/test_creation_functions.py::test_arange --no-header --no-summary -q - + 2. For a single file: .. code-block:: none - + python -m pytest ivy_tests/array_api_testing/test_array_api/array_api_tests/test_creation_functions.py --no-header --no-summary -q - + 3. For all tests: .. code-block:: none python -m pytest ivy_tests/array_api_testing/test_array_api/ --no-header --no-summary -q - + 3. For the entire project .. code-block:: none - + python -m pytest ivy_tests/ --no-header --no-summary -q #. Optional Flags: Various optional flags are available for running the tests such as :code:`device`, :code:`backend`, etc. - 1. :code:`device`: + 1. :code:`device`: 1. This flag enables the setting of the device where the tests would be run. 2. Possible values being :code:`cpu` and :code:`gpu`. 3. Default value is :code:`cpu` @@ -541,7 +541,7 @@ with PyCharm :align: center 3. Stepping through the code: - 1. Step over: + 1. Step over: Steps over the current line of code and takes you to the next line even if the highlighted line has method calls in it. 1. Click the Step Over button or press :code:`F8` @@ -567,7 +567,7 @@ with PyCharm 2. Click the desired method. - 4. Python Console: + 4. Python Console: 1. Click the Console option on Debug Tool Window: This currently stores variables and their values upto which the code has been executed. You can print outputs and debug the code further on. diff --git a/docs/overview/deep_dive/arrays.rst b/docs/overview/deep_dive/arrays.rst index 551dfe46ba1e5..02dccc5352c56 100644 --- a/docs/overview/deep_dive/arrays.rst +++ b/docs/overview/deep_dive/arrays.rst @@ -113,7 +113,7 @@ Ivy's functional API and its functions can easily be integrated with non-Ivy cla To make use of that feature, the class must contain an implementation for these functions and it must contain an implementation for the function :code:`__ivy_array_function__`. If a non-Ivy class is passed to an Ivy function, a call to this class's :code:`__ivy_array_function__` is made which directs Ivy's function to handle that input type correctly. This allows users to define custom implementations for any of the functions that can be found in Ivy's functional API which would further make it easy to integrate those classes with other Ivy projects. **Note** -This functionality is inspired by `NumPy's`_ :code:`__ivy_array_function__` and `PyTorch's`_ :code:`__torch_function__`. +This functionality is inspired by `NumPy's`_ :code:`__ivy_array_function__` and `PyTorch's`_ :code:`__torch_function__`. As an example, consider the following class :code:`MyArray` with the following definition: @@ -138,12 +138,12 @@ There are different ways to do so. One way is to use a global dict :code:`HANDLE return NotImplemented if not all(issubclass(t, (MyArray, ivy.Array, ivy.NativeArray)) for t in types): return NotImplemented - return HANDLED_FUNCTIONS[func](*args, **kwargs) + return HANDLED_FUNCTIONS[func](*args, **kwargs) -:code:`__ivy_array_function__` accepts four parameters: :code:`func` representing a reference to the array API function being +:code:`__ivy_array_function__` accepts four parameters: :code:`func` representing a reference to the array API function being overridden, :code:`types` a list of the types of objects implementing :code:`__ivy_array_function__`, :code:`args` a tuple of arguments supplied to the function, and :code:`kwargs` being a dictionary of keyword arguments passed to the function. While this class contains an implementation for :code:`__ivy_array_function__`, it is still not enough as it is necessary to implement any needed Ivy functions with the new :code:`MyArray` class as input(s) for the code to run successfully. -We will define a decorator function :code:`implements` that can be used to add functions to :code:`HANDLED_FUNCTIONS`: +We will define a decorator function :code:`implements` that can be used to add functions to :code:`HANDLED_FUNCTIONS`: .. code-block:: python @@ -151,7 +151,7 @@ We will define a decorator function :code:`implements` that can be used to add f def decorator(func): HANDLED_FUNCTIONS[ivy_function] = func return func - return decorator + return decorator Lastly, we need to apply that decorator to the override function. Let’s consider for example a function that overrides :code:`ivy.abs`: @@ -168,7 +168,7 @@ Now that we have added the function to :code:`HANDLED_FUNCTIONS`, we can now use X = MyArray(-3) X = ivy.abs(X) -Of course :code:`ivy.abs` is an example of a function that is easy to override since it only requires one operand. The same approach can be used to override functions with multiple operands, including arrays or array-like objects that define :code:`__ivy_array_function__`. +Of course :code:`ivy.abs` is an example of a function that is easy to override since it only requires one operand. The same approach can be used to override functions with multiple operands, including arrays or array-like objects that define :code:`__ivy_array_function__`. It is relevant to mention again that any function not stored inside the dict :code:`HANDLED_FUNCTIONS` will not work and it is also important to notice that the operands passed to the function must match that of the function stored in the dict. For instance :code:`my_abs` takes only one parameter which is a :code:`MyArray` object. So, passing any other operands to the function will result in an exception :code:`IvyBackendException` being thrown. Lastly, for a custom class to be covered completely with Ivy's functional API, it is necessary to create an implementation for all the relevant functions within the API that will be used by this custom class. That can be all the functions in the API or only a subset of them. diff --git a/docs/overview/deep_dive/backend_setting.rst b/docs/overview/deep_dive/backend_setting.rst index 5a9334acac4fd..3777089cfd13b 100644 --- a/docs/overview/deep_dive/backend_setting.rst +++ b/docs/overview/deep_dive/backend_setting.rst @@ -74,7 +74,7 @@ Essentially, when the user calls :code:`ivy.set_backend(, dynamic=True) #. Next, the global :code:`ivy.__dict__` is updated to the new backend as mentioned in the Backend Setting section above. #. Finally, the objects are `converted from numpy`_ to the target backend using the newly set backend. -By default, the dynamic backend attribute is set to True when you create an ivy array (e.g., :code:`x = ivy.array([1,2,3])`), but the attribute is mutable and can be changed after the ivy array is created (e.g., :code:`x.dynamic_backend= True`). +By default, the dynamic backend attribute is set to True when you create an ivy array (e.g., :code:`x = ivy.array([1,2,3])`), but the attribute is mutable and can be changed after the ivy array is created (e.g., :code:`x.dynamic_backend= True`). Here's an example to illustrate how this works in practice: .. code-block:: python diff --git a/docs/overview/deep_dive/building_the_docs_pipeline.rst b/docs/overview/deep_dive/building_the_docs_pipeline.rst index d81bbc5c9b591..e38f01b892941 100644 --- a/docs/overview/deep_dive/building_the_docs_pipeline.rst +++ b/docs/overview/deep_dive/building_the_docs_pipeline.rst @@ -7,7 +7,7 @@ Building the Docs Pipeline .. _doc-builder repository: https://github.com/unifyai/doc-builder To build our docs, we use `Sphinx`_. Sphinx is an extendable documentation generator -for Python. As our building pipeline is complex, we heavily customize Sphinx using +for Python. As our building pipeline is complex, we heavily customize Sphinx using custom and third party extensions. As well as having a convenience script to build the docs. @@ -43,7 +43,7 @@ document. The project should have the following characteristics: 5. It can contain an optional ``docs/partial_conf.py`` which is a partial `Sphinx configuration file`_. - This file will be imported with the default ``conf.py`` file located in the + This file will be imported with the default ``conf.py`` file located in the ``doc-builder`` repo. Running the script: @@ -52,7 +52,7 @@ Running the script: ./make_docs_without_docker.sh /path/to/project -will result in the creation of documentation for the project in the directory +will result in the creation of documentation for the project in the directory ``docs/build``. Options @@ -62,7 +62,7 @@ Options -C, --no-cleanup Disable the backup/cleanup procedure -g, --git-add Stage changed files before generating the docs -s, --skip-dependencies-install Skip installing dependencies using pip --j, --jobs N Build in parallel with N processes where possible +-j, --jobs N Build in parallel with N processes where possible (special value ``auto`` will set N to cpu-count) -D setting Override a setting in ``conf.py`` @@ -71,7 +71,7 @@ The Docker image The Docker image `unifyai/doc-builder `_ works as a wrapper around the ``make_docs_without_docker.sh`` script. It runs the script -on the ``/project`` directory, located in the container `as shown here +on the ``/project`` directory, located in the container `as shown here `_: .. code-block:: bash @@ -87,7 +87,7 @@ To build the docs through docker you use this command: You can also add options described in the :ref:`overview/deep_dive/building_the_docs_pipeline:The convenience script` section. .. code-block:: bash - + docker run -v /path/to/project:/project unifyai/doc-builder --no-cleanup How Ivy's docs is structured @@ -160,7 +160,7 @@ the files that should be included in the table of contents. Which in recursively to every page in this documentation, for example this page is included in the ``toctree`` of ``overview/deep_dive.rst``, which is included in the ``toctree`` of ``index.rst``. You can read more about the ``toctree`` directive in `sphinx docs -`_, from +`_, from now on we'll only explain the directives that are custom to Ivy's doc-builder. The last directive is ``autosummary``, which is used to automatically generate a table @@ -172,10 +172,10 @@ extension. We will explain in detail how did we change it, in :ref:`overview/dee ``partial_conf.py`` ~~~~~~~~~~~~~~~~~~~ -This is a partial `Sphinx configuration file`_. Which is being imported in the +This is a partial `Sphinx configuration file`_. Which is being imported in the `conf.py `_, it's used to customize options that are specific to the project being documented. -While importing common configurations such as the theme, the extensions, etc in the +While importing common configurations such as the theme, the extensions, etc in the original ``conf.py``. This is a part of ``partial_conf.py``: @@ -190,18 +190,18 @@ This is a part of ``partial_conf.py``: "ivy_tests.test_ivy.helpers": "Testing", } -Here we are overriding the ``ivy_toctree_caption_map`` configuration, which is used to -customize the title of the table of contents for each module. +Here we are overriding the ``ivy_toctree_caption_map`` configuration, which is used to +customize the title of the table of contents for each module. ``ivy_toctree_caption_map`` is one of the configuration options we have in our -``custom_autosummary`` extension, which will be covered extensively in +``custom_autosummary`` extension, which will be covered extensively in :ref:`overview/deep_dive/building_the_docs_pipeline:Custom Extensions`. ``prebuild.sh`` ~~~~~~~~~~~~~~~ This is an optional file, which is executed before the docs are built. This is useful -if you need to install some dependencies for the docs to build. In Ivy's case, we -install ``torch`` then ``torch-scatter`` sequentially to avoid a bug in +if you need to install some dependencies for the docs to build. In Ivy's case, we +install ``torch`` then ``torch-scatter`` sequentially to avoid a bug in ``torch-scatter``'s setup. And if we want to make any changes to the docker container before building the docs. @@ -250,7 +250,7 @@ The directive is included like this: .. discussion-links:: module.foo -First it will look for the ``discussion_channel_map`` configuration, in Ivy it looks like +First it will look for the ``discussion_channel_map`` configuration, in Ivy it looks like this: .. code-block:: python @@ -263,15 +263,15 @@ this: } The key is the module name, if it's not found the ``discussion-link`` directive will -render an empty node. The first and only value in the list is the channel id of the +render an empty node. The first and only value in the list is the channel id of the module, it is in a list as we used to have forums as well but they are removed now. The output string is generated by a series of replaces on template strings, which are customizable using the config. To understand how it works, let's look at the default configurations and their values: -- ``discussion_paragraph``: ``"This should have hopefully given you an overview of the - {{submodule}} submodule, if you have any questions, please feel free to reach out on +- ``discussion_paragraph``: ``"This should have hopefully given you an overview of the + {{submodule}} submodule, if you have any questions, please feel free to reach out on our [discord]({{discord_link}}) in the [{{submodule}} channel]({{channel_link}})!"`` - ``discord_link``: ``"https://discord.gg/ZVQdvbzNQJ"`` - ``channel_link``: ``"https://discord.com/channels/799879767196958751/{{channel_id}}"`` @@ -283,39 +283,39 @@ Here is an example of how it works for ``ivy.functional.ivy.creation``: The result will be like this: - This should have hopefully given you an overview of the - **creation** submodule, if you have any questions, please feel free to reach out on + This should have hopefully given you an overview of the + **creation** submodule, if you have any questions, please feel free to reach out on our [discord]({{discord_link}}) in the [**creation** channel]({{channel_link}})! 2. Then we resolve the ``{{discord_link}}`` template string. The result will be like this: - - This should have hopefully given you an overview of the - creation submodule, if you have any questions, please feel free to reach out on + + This should have hopefully given you an overview of the + creation submodule, if you have any questions, please feel free to reach out on our [discord](**https://discord.gg/ZVQdvbzNQJ**) in the [creation channel]({{channel_link}})! 3. Then we resolve the ``{{channel_link}}`` template string. The result will be like this: - - This should have hopefully given you an overview of the - creation submodule, if you have any questions, please feel free to reach out on + + This should have hopefully given you an overview of the + creation submodule, if you have any questions, please feel free to reach out on our [discord](\https://discord.gg/ZVQdvbzNQJ) in the [creation channel](**https://discord.com/channels/799879767196958751/{{channel_id}}**)! 4. We finally resolve ``{{channel_id}}`` template strings. The result will be like this: - - This should have hopefully given you an overview of the - creation submodule, if you have any questions, please feel free to reach out on + + This should have hopefully given you an overview of the + creation submodule, if you have any questions, please feel free to reach out on our [discord](\https://discord.gg/ZVQdvbzNQJ) in the [creation channel](\https://discord.com/channels/799879767196958751/**1000043690254946374**)! 5. After that we render the node paragraph as if it's a Markdown text resulting this: - This should have hopefully given you an overview of the - creation submodule, if you have any questions, please feel free to reach out on - our `discord `_ in the `creation channel + This should have hopefully given you an overview of the + creation submodule, if you have any questions, please feel free to reach out on + our `discord `_ in the `creation channel `_! All of the above template strings can be customized using the configuration, so feel free @@ -324,7 +324,7 @@ to change them to your liking. ``skippable_function`` ~~~~~~~~~~~~~~~~~~~~~~ -This extension provides a custom auto documenter ``autoskippablemethod`` that skip +This extension provides a custom auto documenter ``autoskippablemethod`` that skip functions that match values in ``skippable_method_attributes`` configuration. This is an example of ``skippable_method_attributes`` configuration in @@ -338,14 +338,14 @@ This is an example of ``skippable_method_attributes`` configuration in } ] -This will remove any function that has ``__qualname__`` attribute equal to +This will remove any function that has ``__qualname__`` attribute equal to ``_wrap_function..new_function``. ``ivy_data`` ~~~~~~~~~~~~ This is a custom documenter for ``autodoc`` that documents Ivy data attributes that live -in ``ivy.functional.ivy``, it will replace the module to ``ivy.`` instead of +in ``ivy.functional.ivy``, it will replace the module to ``ivy.`` instead of ``ivy.functional.ivy.``. It's used instead of simply using ``ivy.`` because data attributes have @@ -353,6 +353,6 @@ no ``__doc__`` atribute, instead docs are discovered by parsing the source code So for Sphinx to find the required docs, it needs to be supplied the full module name, then using the ``autoivydata`` directive will replace the module name to ``ivy.``. -Please refer to the `auto documenter guide in sphinx documentation +Please refer to the `auto documenter guide in sphinx documentation `_ for more info. diff --git a/docs/overview/deep_dive/containers.rst b/docs/overview/deep_dive/containers.rst index a35f5e41f1365..13521ec772f17 100644 --- a/docs/overview/deep_dive/containers.rst +++ b/docs/overview/deep_dive/containers.rst @@ -186,7 +186,7 @@ As for the special methods which are `implemented`_ in the main :class:`ivy.Cont As a result, the operator functions will make use of the special methods of the lefthand passed input objects if available, otherwise it will make use of the reverse special method of the righthand operand. For instance, if the lefthand operand at any given leaf of the container in an :class:`ivy.Array`, then the operator function will make calls to the special methods of this array object. As explained in the `Arrays `_ section of the Deep Dive, these special methods will in turn call the corresponding functions from the ivy functional API. - + Examples include `__add__`_, `__sub__`_, `__mul__`_ and `__truediv__`_ which will make calls to :func:`ivy.add`, :func:`ivy.subtract`, :func:`ivy.multiply` and :func:`ivy.divide` respectively if the lefthand operand is an :class:`ivy.Array` object. Otherwise, these special methods will be called on whatever objects are at the leaves of the container, such as int, float, :class:`ivy.NativeArray` etc. diff --git a/docs/overview/deep_dive/devices.rst b/docs/overview/deep_dive/devices.rst index ac2ab5efd62d0..92b8cd8f66964 100644 --- a/docs/overview/deep_dive/devices.rst +++ b/docs/overview/deep_dive/devices.rst @@ -155,7 +155,7 @@ doesn't care about this, it moves all the tensors to the same device before perf **Controlling Device Handling Behaviour** -In Ivy, users can control the device on which the operation is to be executed using `ivy.set_soft_device_mode`_ flag. There are two cases for this, +In Ivy, users can control the device on which the operation is to be executed using `ivy.set_soft_device_mode`_ flag. There are two cases for this, either the soft device mode is set to :code:`True` or :code:`False`. **When ivy.set_soft_device_mode(True)**: @@ -167,7 +167,7 @@ In the example below, even though the input arrays :code:`x` and :code:`y` are c are moved to :code:`ivy.default_device()` while performing :code:`ivy.add` operation, and the output array will be on this device. .. code-block:: python - + ivy.set_backend("torch") ivy.set_soft_device_mode(True) x = ivy.array([1], device="cpu") @@ -214,7 +214,7 @@ This is the exception you will get while running the code above: File "/content/ivy/ivy/func_wrapper.py", line 863, in _handle_device_shifting raise ivy.utils.exceptions.IvyException( During the handling of the above exception, another exception occurred: - Expected all input arrays to be on the same device, but found atleast two devices - ('cpu', 'gpu:0'), + Expected all input arrays to be on the same device, but found atleast two devices - ('cpu', 'gpu:0'), set `ivy.set_soft_device_mode(True)` to handle this problem. b. If all the input arrays are on the same device, the operation is executed without raising any device exceptions. diff --git a/docs/overview/deep_dive/exception_handling.rst b/docs/overview/deep_dive/exception_handling.rst index 9c192a3f0e3a7..8695c318fe42d 100644 --- a/docs/overview/deep_dive/exception_handling.rst +++ b/docs/overview/deep_dive/exception_handling.rst @@ -57,14 +57,14 @@ For a more general case, the :code:`IvyError` class can be used. def __init__(self, *messages, include_backend=False): super().__init__(*messages, include_backend=include_backend) -More Custom Exception classes were created to unify sub-categories of errors. We try our best to ensure that the same type of +More Custom Exception classes were created to unify sub-categories of errors. We try our best to ensure that the same type of Exception is raised for the same type of Error regardless of the backend. This will ensure that the exceptions are truly unified for all the different types of errors. The implementations of these custom classes are exactly the same as :code:`IvyError` class. Currently there are 5 custom exception classes in ivy. 1. :code:`IvyIndexError`: This Error is raised for anything Indexing related. For Instance, providing out of bound axis in any function. -2. :code:`IvyValueError`: This is for anything related to providing wrong values. For instance, passing :code:`high` value +2. :code:`IvyValueError`: This is for anything related to providing wrong values. For instance, passing :code:`high` value smaller than :code:`low` value in :code:`ivy.random_uniform`. 3. :code:`IvyAttributeError`: This is raised when an undefined attribute is referenced. 4. :code:`IvyBroadcastShapeError`: This is raised whenever 2 shapes are expected to be broadcastable but are not. @@ -75,12 +75,12 @@ The correct type of Exception class should be used for the corresponding type of Configurable Mode for Stack Trace --------------------------------- -Ivy's transpilation nature allows users to write code in their preferred frontend -framework and then execute it with a different backend framework. For example, a -user who is comfortable with NumPy can use Ivy's NumPy frontend to run their code -with a JAX backend. However, since they may have no prior experience with JAX or -other backend frameworks, they may not want to encounter stack traces that traverse -Ivy and JAX functions. In such cases, it may be preferable for the user to avoid +Ivy's transpilation nature allows users to write code in their preferred frontend +framework and then execute it with a different backend framework. For example, a +user who is comfortable with NumPy can use Ivy's NumPy frontend to run their code +with a JAX backend. However, since they may have no prior experience with JAX or +other backend frameworks, they may not want to encounter stack traces that traverse +Ivy and JAX functions. In such cases, it may be preferable for the user to avoid encountering stack traces that extend through Ivy and JAX functions. Therefore, options are made available for the stack traces to either truncate @@ -400,7 +400,7 @@ Let's look at the comparison of before and after adding the decorator. In NumPy, .. code-block:: none - + >>> x = ivy.array([0,0,1]) >>> ivy.all(x, axis=2) @@ -449,7 +449,7 @@ and for Numpy, :code:`AxisError` is raised. To unify the behaviour, we raise :co In Numpy, .. code-block:: python - + # in ivy/functional/backends/numpy/utility.py def all( x: np.ndarray, diff --git a/docs/overview/deep_dive/formatting.rst b/docs/overview/deep_dive/formatting.rst index ce64246f684dd..fa52cd490f053 100644 --- a/docs/overview/deep_dive/formatting.rst +++ b/docs/overview/deep_dive/formatting.rst @@ -167,22 +167,22 @@ We have a GitHub action that runs: 1. Every day at 08:00 UTC 2. Manually invoked by making a comment with ``ivy-gardener`` on a PR -The first action is to ensure that the code in the whole codebase is always formatted correctly. The second action -is to reformat the files you changed in your PR directly on GitHub. This is useful in case if you didn't setup +The first action is to ensure that the code in the whole codebase is always formatted correctly. The second action +is to reformat the files you changed in your PR directly on GitHub. This is useful in case if you didn't setup pre-commit correctly or if you or one of our maintainers want to reformat your code remotely. -Under the hood, when ``ivy-gardener`` is found in a comment, an ivy bot will trigger the same set of lint checks +Under the hood, when ``ivy-gardener`` is found in a comment, an ivy bot will trigger the same set of lint checks as in the pre-commit process. Then the suggested changes produced in the checks will be applied automatically as -a new commit if there is any. +a new commit if there is any. -However, it is possible for the linters run in the ``ivy-gardener`` and the GitHub action every day to face -formatting errors that need human intervention like typos and uninitialized arguments. In this case, errors will -be thrown by the linters and by the lint checks that runs later, while fixes to other simpler errors will still +However, it is possible for the linters run in the ``ivy-gardener`` and the GitHub action every day to face +formatting errors that need human intervention like typos and uninitialized arguments. In this case, errors will +be thrown by the linters and by the lint checks that runs later, while fixes to other simpler errors will still be applied by the ``ivy-gardener`` properly. -On the other hand, ``ivy-gardener`` itself can fail if the bot handling it (ivy-branch) can not apply the changes -suggested by the linters, for example, when it does not have access to edit the target branch. In this case, you -should try to give the maintainer bot the access to your branch (which is an option shown in GitHub UI) and give it +On the other hand, ``ivy-gardener`` itself can fail if the bot handling it (ivy-branch) can not apply the changes +suggested by the linters, for example, when it does not have access to edit the target branch. In this case, you +should try to give the maintainer bot the access to your branch (which is an option shown in GitHub UI) and give it another try, or manually resolve the formatting errors by commiting the changes yourself. **Round Up** diff --git a/docs/overview/deep_dive/function_types.rst b/docs/overview/deep_dive/function_types.rst index d788f8cd0403b..aba496df485d1 100644 --- a/docs/overview/deep_dive/function_types.rst +++ b/docs/overview/deep_dive/function_types.rst @@ -116,7 +116,7 @@ Mixed Functions --------------- --------------- -Sometimes, a function may only be provided by some of the supported backends. In this case, we have to take a mixed approach. We should always have a backend-specific implementation if there is a similar function provided by a certain backend. This maximises runtime efficiency, as the function in the backend will be implemented directly in C or C++. Such functions have some backend-specific implementations in :mod:`ivy/functional/backends/backend_name/category_name.py`, but not for all backends. To support backends that do not have a backend-specific implementation, a compositional implementation is also provided in :mod:`ivy/functional/ivy/category_name.py`. Compositional functions should only be used when there is no similar function to wrap in the backend. +Sometimes, a function may only be provided by some of the supported backends. In this case, we have to take a mixed approach. We should always have a backend-specific implementation if there is a similar function provided by a certain backend. This maximises runtime efficiency, as the function in the backend will be implemented directly in C or C++. Such functions have some backend-specific implementations in :mod:`ivy/functional/backends/backend_name/category_name.py`, but not for all backends. To support backends that do not have a backend-specific implementation, a compositional implementation is also provided in :mod:`ivy/functional/ivy/category_name.py`. Compositional functions should only be used when there is no similar function to wrap in the backend. Because these functions include both a compositional implementation and also at least one backend-specific implementation, these functions are referred to as *mixed*. diff --git a/docs/overview/deep_dive/function_wrapping.rst b/docs/overview/deep_dive/function_wrapping.rst index 532ea347815ec..8a585244222e6 100644 --- a/docs/overview/deep_dive/function_wrapping.rst +++ b/docs/overview/deep_dive/function_wrapping.rst @@ -19,7 +19,7 @@ Function Wrapping .. _`outputs_to_ivy_shapes`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L501 .. _`to_native_shapes_and_back`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L514 .. _`handle_view`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L627 -.. _`handle_view_indexing`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L659 +.. _`handle_view_indexing`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L659 .. _`handle_array_function`: https://github.com/unifyai/ivy/blob/5658401b266352d3bf72c95e4af6ae9233115722/ivy/func_wrapper.py#L299 .. _`handle_complex_input`: https://github.com/unifyai/ivy/blob/bd9b5b1080d33004e821a48c486b3a879b9d6616/ivy/func_wrapper.py#L1393 .. _`repo`: https://github.com/unifyai/ivy @@ -129,12 +129,12 @@ View Handling #. `handle_view`_ : This wrapping function performs view handling based on our :ref:`overview/deep_dive/inplace_updates:Views` policy. #. `handle_view_indexing`_ : This wrapping function is aimed at handling views for indexing. -Exception Handling +Exception Handling ^^^^^^^^^^^^^^^^^^ #. `handle_exceptions`_ : This wrapping function helps in catching native exceptions and unifying them into `IvyException` or the relevant subclasses. More information can be found in the :ref:`overview/deep_dive/function_wrapping:Exception Handling` section. -Miscellaneous Wrappers +Miscellaneous Wrappers ^^^^^^^^^^^^^^^^^^^^^^ #. `handle_array_function`_ : This wrapping function enables :ref:`overview/deep_dive/arrays:Integrating custom classes with Ivy` diff --git a/docs/overview/deep_dive/gradients.rst b/docs/overview/deep_dive/gradients.rst index 5ec644aa6a015..d33d17a7d2e7d 100644 --- a/docs/overview/deep_dive/gradients.rst +++ b/docs/overview/deep_dive/gradients.rst @@ -7,7 +7,7 @@ Gradients Overview -------- -Gradients are a crucial aspect of all modern deep learning workflows. +Gradients are a crucial aspect of all modern deep learning workflows. Different frameworks provide different APIs for gradient computation and there were a few considerations to be made while building a unified gradients API in Ivy. There are a number of functions added in ivy to allow gradient computation, but we'll mainly focus on the most commonly used and the most general function :func:`ivy.execute_with_gradients`. This is because the other gradient functions such as :func:`ivy.value_and_grad` and :func:`ivy.grad` can be considered as providing a subset of the functionality that :func:`ivy.execute_with_gradients` provides. @@ -21,13 +21,13 @@ The :func:`ivy.execute_with_gradients` function signature Following is the pseudo function signature for the :func:`ivy.execute_with_gradients` function, .. code-block:: python - + def execute_with_gradients ( func : Callable, xs : Any arbitrary nest, xs_grad_idxs : Input indices, ret_grad_idxs : Output indices, - ) : + ) : return func_ret, grads The :code:`func` in the input can be any user-defined function that returns a single scalar or any arbitrary nest of scalars. @@ -36,13 +36,13 @@ By scalars, we are referring to zero-dimensional arrays. So for example, the following are some valid outputs by the :code:`func`, .. code-block:: python - + ivy.array(12.) - + # OR ivy.Container( - a=ivy.array(12.), + a=ivy.array(12.), b=ivy.Container( c=ivy.array(15.), d=ivy.array(32.) @@ -74,8 +74,8 @@ An example using :func:`ivy.execute_with_gradients` xs = [x, y] ret, grads = ivy.execute_with_gradients( - func, - xs, + func, + xs, xs_grad_idxs=[[0]], ret_grad_idxs=[["a"]] ) @@ -126,7 +126,7 @@ Our policy on gradients * The gradient API is fully-functional in ivy. * There is no explicit variable class or any public-facing function for adding gradient support to an ivy.Array. * The gradient functions in ivy implicitly convert all arrays to support gradient computation before computing gradients and detach all arrays after computing gradients. -* We don't retain any previously tracked computations in arrays by frameworks like torch for e.g. +* We don't retain any previously tracked computations in arrays by frameworks like torch for e.g. * This makes our gradient API disambiguous, flexible, and easy to debug. * Any framework-specific tracking of computations or variable classes should be handled in the corresponding frontends. diff --git a/docs/overview/deep_dive/inplace_updates.rst b/docs/overview/deep_dive/inplace_updates.rst index e70ae3ec1c613..42df6520a9668 100644 --- a/docs/overview/deep_dive/inplace_updates.rst +++ b/docs/overview/deep_dive/inplace_updates.rst @@ -303,7 +303,7 @@ The implementations of :func:`ivy.tan` for each backend are as follows. **PyTorch** (includes :code:`support_native_out` attribute): .. code-block:: python - + def tan(x: torch.Tensor, /, *, out: Optional[torch.Tensor] = None) -> torch.Tensor: x = _cast_for_unary_op(x) return torch.tan(x, out=out) @@ -351,7 +351,7 @@ This is why we need to call :func:`ivy.inplace_update` explicitly here, to ensur Another case where we need to use :func:`ivy.inplace_update` with a function that has :attr:`support_native_out` is for the example of the :code:`torch` backend implementation of the :func:`ivy.remainder` function .. code-block:: python - + def remainder( x1: Union[float, torch.Tensor], x2: Union[float, torch.Tensor], @@ -481,7 +481,7 @@ Here's a brief description of the additional attributes added to :class:`ivy.Arr #. PyTorch reference stack (:code:`._torch_view_refs`): Functional views referencing this array in its PyTorch base, only populated for original arrays or functional views. #. PyTorch manipulation cache (:code:`._torch_manipulation`): Tuple storing array or view and function which made the functional view, only populated for functional views -.. note:: +.. note:: Parts of an arrays metadata like :code:`stride` are attributed to the low-level memory layout of arrays while views in :code:`ivy` operate at a higher level of abstraction. As a result, :func:`ivy.strides` isn't guaranteed to produce an output reflective of the underlying memory layout if the :class:`ivy.Array` passed in is a view (or in other words has a :code:`_base`). diff --git a/docs/overview/deep_dive/ivy_frontends.rst b/docs/overview/deep_dive/ivy_frontends.rst index 2a12b0c6c4d15..8214423af7e3b 100644 --- a/docs/overview/deep_dive/ivy_frontends.rst +++ b/docs/overview/deep_dive/ivy_frontends.rst @@ -261,7 +261,7 @@ However, these functions are specified to have key-word only arguments and in so In order to tackle these variations in behaviour, the :code:`map_raw_ops_alias` decorator was designed to wrap the functions that exist in the TensorFlow namespace, thus reducing unnecessary re-implementations. .. code-block:: python - + # in ivy/functional/frontends/tensorflow/math.py @to_ivy_arrays_and_back def argmax(input, axis, output_type=None, name=None): diff --git a/docs/overview/deep_dive/ivy_frontends_tests.rst b/docs/overview/deep_dive/ivy_frontends_tests.rst index 474c4a78d6d78..97a6f7a6ab2c2 100644 --- a/docs/overview/deep_dive/ivy_frontends_tests.rst +++ b/docs/overview/deep_dive/ivy_frontends_tests.rst @@ -167,7 +167,7 @@ ivy.tan() **TensorFlow** .. code-block:: python - + # ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py @handle_frontend_test( fn_tree="tensorflow.math.tan", @@ -624,9 +624,9 @@ for example, :code:`ndarray.__add__` would expect an array as input, despite the **Important Helper Functions** :func:`@handle_frontend_method` requires 3 keyword only parameters: - - :code:`class_tree` A full path to the array class in **Ivy** namespace. + - :code:`class_tree` A full path to the array class in **Ivy** namespace. - :code:`init_tree` A full path to initialization function. - - :code:`method_name` The name of the method to test. + - :code:`method_name` The name of the method to test. :func:`helpers.test_frontend_method` is used to test frontend instance methods. It is used in the same way as :func:`helpers.test_frontend_function`. A few important arguments for this function are following: - :code:`init_input_dtypes` Input dtypes of the arguments on which we are initializing the array on. diff --git a/docs/overview/deep_dive/ivy_tests.rst b/docs/overview/deep_dive/ivy_tests.rst index e2396a8b3d8ac..be78008687a57 100644 --- a/docs/overview/deep_dive/ivy_tests.rst +++ b/docs/overview/deep_dive/ivy_tests.rst @@ -312,7 +312,7 @@ One thing to note here is the :code:`test_flags` variable in the test function. The test flags can also be generated explicitly like this -: .. code-block:: python - + @handle_test( as_variable_flags = st.lists(st.booleans(), min_size = , max_size = ), native_array_flags = st.lists(st.booleans(), min_size = , max_size = ), @@ -631,7 +631,7 @@ be used for the given input. For example, when :code:`function_supported_dtypes` {'compositional': ('float32', 'int8', 'uint8', 'float64', 'int16', 'int32', 'int64'), 'primary': ('bool', 'float32', 'int8', 'uint8', 'float64', 'int64', 'int16', 'int32')} As can be seen from the above output that the data-types supported will depend on the implementation used for the given input. It's because of this reason that we need a slightly -different pipeline for testing partial mixed functions. Basically, while writing the strategies for the tests of these functions, we need to first determine which implementation +different pipeline for testing partial mixed functions. Basically, while writing the strategies for the tests of these functions, we need to first determine which implementation will be used and then based on that generate the data to test the function. Here's an example from the test of :code:`ivy.linear` function: @@ -684,8 +684,8 @@ will be used and then based on that generate the data to test the function. Here As can be seen from the above code, a boolean parameter :code:`mixed_fn_compos` is generated first to determine whether to generate test data for the compositional implementation or the primary one. When it is equal to :code:`True`, the relevant data for the compositional implementation should -be generated and when :code:`False`, data corresponding to the primary implementation should be generated. Another boolean, :code:`is_torch_backend` -is to be used to determine if the current backend is :code:`torch`. Then these booleans are used together in this :code:`if` condition: +be generated and when :code:`False`, data corresponding to the primary implementation should be generated. Another boolean, :code:`is_torch_backend` +is to be used to determine if the current backend is :code:`torch`. Then these booleans are used together in this :code:`if` condition: :code:`if is_torch_backend and not mixed_fn_compos` and :code:`weight_shape` is updated to be 2 dimensional because the torch backend implementation only supports 2 dimensional weights. Notice that the parameter :code:`mixed_fn_compos` is also be passed to :code:`helpers.get_dtypes` and :code:`helpers.ints` functions so that the dtypes corresponding to the implementation to be tested are returned. In general, :code:`helpers.get_dtypes`, diff --git a/docs/overview/faq.rst b/docs/overview/faq.rst index 9c47fb1e15ba1..a46d128e4cdc4 100644 --- a/docs/overview/faq.rst +++ b/docs/overview/faq.rst @@ -53,7 +53,7 @@ For some backends, shape-checking will be performed during the compilation phase GPU handling ------------ -**Q:** How does Ivy handle GPU usage? +**Q:** How does Ivy handle GPU usage? **A:** Ivy handles GPU usage by simply wrapping the backend frameworks, so Ivy will use GPUs in the same manner as the backend framework does. E.g. When using a torch backend, torch will be a dependency of Ivy, and its handling of GPU functionalities will be inherited and extended upon by Ivy. diff --git a/docs/overview/get_started.rst b/docs/overview/get_started.rst index 5141c90eea1e3..9d891f143e5c6 100644 --- a/docs/overview/get_started.rst +++ b/docs/overview/get_started.rst @@ -3,7 +3,7 @@ Get Started .. - If you want to use **Ivy's compiler and transpiler**, make sure to follow the + If you want to use **Ivy's compiler and transpiler**, make sure to follow the :ref:`setting up instructions for the API key ` after installing Ivy! @@ -24,7 +24,7 @@ Keep in mind that this **won't** install any framework other than NumPy! Docker ------ -If you prefer to use containers, we also have pre-built Docker images with all the +If you prefer to use containers, we also have pre-built Docker images with all the supported frameworks and some relevant packages already installed, which you can pull from: .. code-block:: bash @@ -40,40 +40,40 @@ If you are working on a GPU device, you can pull from: Installing from source ---------------------- -You can also install Ivy from source if you want to take advantage of the latest +You can also install Ivy from source if you want to take advantage of the latest changes, but we can't ensure everything will work as expected! .. code-block:: bash git clone https://github.com/unifyai/ivy.git - cd ivy + cd ivy pip install --user -e . -If you are planning to contribute, you want to run the tests, or you are looking -for more in-depth instructions, it's probably best to check out -the `Contributing - Setting Up `_ page, +If you are planning to contribute, you want to run the tests, or you are looking +for more in-depth instructions, it's probably best to check out +the `Contributing - Setting Up `_ page, where OS-specific and IDE-specific instructions and video tutorials to install Ivy are available! Ivy's compiler and transpiler ----------------------------- -To use Ivy's compiler and transpiler, you'll need an **API key**. We are starting to -grant pilot access to certain users, so you can `join the waitlist `_ -if you want to get one! +To use Ivy's compiler and transpiler, you'll need an **API key**. We are starting to +grant pilot access to certain users, so you can `join the waitlist `_ +if you want to get one! Ivy Folder ~~~~~~~~~~ -When importing Ivy for the first time, a ``.ivy`` folder will be created in your -working directory. If you want to keep this folder in a different location, +When importing Ivy for the first time, a ``.ivy`` folder will be created in your +working directory. If you want to keep this folder in a different location, you can set an ``IVY_ROOT`` environment variable with the path of your ``.ivy`` folder. Setting Up the API key ~~~~~~~~~~~~~~~~~~~~~~ -Once the ``.ivy`` folder has been created (either manually or automatically by +Once the ``.ivy`` folder has been created (either manually or automatically by importing Ivy), you will have to paste your API key as the content of the ``key.pem`` file. For reference, this would be equivalent to: @@ -85,9 +85,9 @@ Issues and Questions ~~~~~~~~~~~~~~~~~~~~ If you find any issue or bug while using the compiler and/or the transpiler, please -raise an `issue in GitHub `_ and add the ``compiler`` +raise an `issue in GitHub `_ and add the ``compiler`` or the ``transpiler`` label accordingly. A member of the team will get back to you ASAP! -Otherwise, if you haven't found a bug but want to ask a question, suggest something, or get help -from the team directly, feel free to open a new post at the ``pilot-access`` forum in -`Ivy's discord server! `_ +Otherwise, if you haven't found a bug but want to ask a question, suggest something, or get help +from the team directly, feel free to open a new post at the ``pilot-access`` forum in +`Ivy's discord server! `_ diff --git a/docs/overview/one_liners.rst b/docs/overview/one_liners.rst index 98f59695ffcc4..f2e0e3e788c92 100644 --- a/docs/overview/one_liners.rst +++ b/docs/overview/one_liners.rst @@ -18,7 +18,7 @@ One liners .. grid-item-card:: ``ivy.unify()`` :link: one_liners/transpile.rst - Transpiles an object into Ivy code. It's an alias to + Transpiles an object into Ivy code. It's an alias to ``ivy.transpile(..., to="ivy", ...)`` .. toctree:: diff --git a/docs/overview/one_liners/compile.rst b/docs/overview/one_liners/compile.rst index 2ac7cb461c829..98d3cfd826a3a 100644 --- a/docs/overview/one_liners/compile.rst +++ b/docs/overview/one_liners/compile.rst @@ -6,29 +6,29 @@ ⚠️ **Warning**: The compiler and the transpiler are not publicly available yet, so certain parts of this doc won't work as expected as of now! -When we call an Ivy function, there is always a small performance hit due to added -Python wrapping. This overhead becomes increasingly noticeable when we use large -models with multiple function calls. The Graph Compiler improves the performance of -Ivy by removing the extra wrapping around each function call. +When we call an Ivy function, there is always a small performance hit due to added +Python wrapping. This overhead becomes increasingly noticeable when we use large +models with multiple function calls. The Graph Compiler improves the performance of +Ivy by removing the extra wrapping around each function call. -The Graph Compiler takes in any Ivy function, framework-specific (backend) function, -or composition of both, and produces a simplified executable computation graph composed +The Graph Compiler takes in any Ivy function, framework-specific (backend) function, +or composition of both, and produces a simplified executable computation graph composed of functions from the backend functional API only, which results in: -- Simplified code: The Graph Compiler simplifies the code by removing all the wrapping +- Simplified code: The Graph Compiler simplifies the code by removing all the wrapping and functions that don't contribute to the output: print statements, loggers, etc. -- Improved performance: The compiled graph has no performance overhead due to Ivy's - function wrapping, likewise, redundant operations from the original function are also +- Improved performance: The compiled graph has no performance overhead due to Ivy's + function wrapping, likewise, redundant operations from the original function are also removed, increasing its overall performance. Compiler API ------------ .. py:function:: ivy.compile(*objs, stateful = None, arg_stateful_idxs = None, kwarg_stateful_idxs = None, to = None, include_generators = True, array_caching = True, return_backend_compiled_fn = False, static_argnums = None, static_argnames = None, args = None, kwargs = None,) - - Compiles a ``Callable`` or set of them into an Ivy graph. If ``args`` or ``kwargs`` are specified, + + Compiles a ``Callable`` or set of them into an Ivy graph. If ``args`` or ``kwargs`` are specified, compilation is performed eagerly, otherwise, compilation will happen lazily. - + :param objs: Callable(s) to compile and create a graph of. :type objs: ``Callable`` :param stateful: List of instances to be considered stateful during the graph compilation. @@ -91,12 +91,12 @@ In this case, the compiled graph would be: From the graph, we can observe that: 1. As ``x`` and ``y`` are the only variables used when calculating the returned value ``z``, - the non-contributing variable(s), ``k`` was not included in the graph. Function calls that + the non-contributing variable(s), ``k`` was not included in the graph. Function calls that don't contribute to the output like the ``print`` function were also excluded. -2. As we set the backend to ``torch`` during the compilation process, the compiled +2. As we set the backend to ``torch`` during the compilation process, the compiled functions are torch functions, and the input and output types are torch tensors. -3. The tensor shape in the graph only indicates the shape of the inputs the graph was - traced with. The compiler doesn't impose additional restrictions on the shape or +3. The tensor shape in the graph only indicates the shape of the inputs the graph was + traced with. The compiler doesn't impose additional restrictions on the shape or datatype of the input array(s). .. code-block:: python @@ -114,17 +114,17 @@ From the graph, we can observe that: Eager vs lazy Compilation ~~~~~~~~~~~~~~~~~~~~~~~~~ -The graph compiler runs the original function under the hood and tracks its computation -to create the compiled graph. The **eager compilation** method traces the graph in the -corresponding function call with the specified inputs before we use the compiled +The graph compiler runs the original function under the hood and tracks its computation +to create the compiled graph. The **eager compilation** method traces the graph in the +corresponding function call with the specified inputs before we use the compiled function. -Instead of compiling functions before using them, Ivy also allows you to compile the -function dynamically. This can be done by passing only the function to the -compile method and not including the function arguments. In this case, the output will be a -``LazyGraph`` instead of a ``Graph`` instance. When this ``LazyGraph`` object is first invoked with -function arguments, it compiles the function and returns the output of the compiled -function. Once the graph has been initialized, calls to the ``LazyGraph`` object will +Instead of compiling functions before using them, Ivy also allows you to compile the +function dynamically. This can be done by passing only the function to the +compile method and not including the function arguments. In this case, the output will be a +``LazyGraph`` instead of a ``Graph`` instance. When this ``LazyGraph`` object is first invoked with +function arguments, it compiles the function and returns the output of the compiled +function. Once the graph has been initialized, calls to the ``LazyGraph`` object will use the compiled function to compute the outputs directly. .. code-block:: python @@ -138,18 +138,18 @@ use the compiled function to compute the outputs directly. # Compile and return the output out = lazy_graph(x, y) -To sum up, lazy compilation enables you to delay the compilation process until you have -the necessary inputs during execution. This is particularly useful in cases like -compiling libraries, where it’s not feasible to provide valid arguments for every +To sum up, lazy compilation enables you to delay the compilation process until you have +the necessary inputs during execution. This is particularly useful in cases like +compiling libraries, where it’s not feasible to provide valid arguments for every function call. -Now let's look at additional functionalities that you can find in the +Now let's look at additional functionalities that you can find in the compiler. Array caching ~~~~~~~~~~~~~ -The compiler is able to cache constant arrays and their operations through the +The compiler is able to cache constant arrays and their operations through the ``array_caching`` flag, reducing computation time after compilation. .. code-block:: python @@ -166,15 +166,15 @@ The compiler is able to cache constant arrays and their operations through the comp_func = ivy.compile(fn, args=(x,)) -When calling ``ivy.compile()``, the ``array_caching`` argument is set to ``True`` by +When calling ``ivy.compile()``, the ``array_caching`` argument is set to ``True`` by default, which returns the following graph. .. image:: https://raw.githubusercontent.com/unifyai/unifyai.github.io/main/img/externally_linked/compiler/figure2.png -This shows that by caching the constant operation in the graph, a simpler graph can be -obtained. However, if desired, this argument can be set to ``False``, which results in the -graph below. This ultimately results in a trade-off between time and memory, as -cached results need to be stored in memory but if they are not cached these operations +This shows that by caching the constant operation in the graph, a simpler graph can be +obtained. However, if desired, this argument can be set to ``False``, which results in the +graph below. This ultimately results in a trade-off between time and memory, as +cached results need to be stored in memory but if they are not cached these operations need to be performed. .. image:: https://raw.githubusercontent.com/unifyai/unifyai.github.io/main/img/externally_linked/compiler/figure3.png @@ -195,7 +195,7 @@ are included as nodes or "baked" into the graph. a = torch.randint(0, 100, size=[1]) z = x ** a return z + torch.rand([1]) - + comp_func = ivy.compile(fn, include_generators=True, args=(x,)) Returns: @@ -224,7 +224,7 @@ Returns: Stateful ~~~~~~~~ -Finally, you can also track ``__setattr__`` and ``__getattr__`` methods of +Finally, you can also track ``__setattr__`` and ``__getattr__`` methods of arbitrary classes using the ``stateful`` parameters. .. code-block:: python @@ -248,34 +248,34 @@ arbitrary classes using the ``stateful`` parameters. Sharp bits ---------- -As some parts of the graph compiler are still under development, there are some sharp -bits to take into account when using it. All of these points are WIP, so they'll be +As some parts of the graph compiler are still under development, there are some sharp +bits to take into account when using it. All of these points are WIP, so they'll be removed soon! -1. **Dynamic control flow**: The compiled graph is built using function tracing at the - moment, so dynamic control flow such as conditional branches or conditional loops - will not be registered correctly. As an example, if there is a while loop in your - code that depends on a changing value, the number of iterations in the final graph - will be the same as the number of iterations performed with the input passed to the +1. **Dynamic control flow**: The compiled graph is built using function tracing at the + moment, so dynamic control flow such as conditional branches or conditional loops + will not be registered correctly. As an example, if there is a while loop in your + code that depends on a changing value, the number of iterations in the final graph + will be the same as the number of iterations performed with the input passed to the compile function. -2. **Non-framework-specific code**: As the compiler traces the function using the - functional API of the underlying framework, any piece of code inside the model that - is not from the said framework will not be correctly registered, this includes other - frameworks code (such as NumPy statements inside a torch model) or python statements +2. **Non-framework-specific code**: As the compiler traces the function using the + functional API of the underlying framework, any piece of code inside the model that + is not from the said framework will not be correctly registered, this includes other + frameworks code (such as NumPy statements inside a torch model) or python statements such as len(). -3. **Incorrectly cached parts of the graph**: There are certain cases where compilation +3. **Incorrectly cached parts of the graph**: There are certain cases where compilation can succeed but hide some cached parts of the graph which shouldn't really be cached. - To check this, it's recommended to compile with a noise array of the same shape and + To check this, it's recommended to compile with a noise array of the same shape and then check if the output of the original function and the compiled graph with another - input is the same. If you find out that the graph is not right, feel free to open an - `issue `_ with a minimal example and we'll look + input is the same. If you find out that the graph is not right, feel free to open an + `issue `_ with a minimal example and we'll look into it! Examples -------- -Below, we compile a ResNet50 model from -`Hugging Face `_ and use it to classify the +Below, we compile a ResNet50 model from +`Hugging Face `_ and use it to classify the breed of a cat. .. code-block:: python diff --git a/docs/overview/one_liners/transpile.rst b/docs/overview/one_liners/transpile.rst index 6e2f056a49110..b10cc40e1fcc6 100644 --- a/docs/overview/one_liners/transpile.rst +++ b/docs/overview/one_liners/transpile.rst @@ -6,27 +6,27 @@ ⚠️ **Warning**: The compiler and the transpiler are not publicly available yet, so certain parts of this doc won't work as expected as of now! -Ivy's Transpiler converts a function written in any framework into your framework of -choice, preserving all the logic between frameworks. +Ivy's Transpiler converts a function written in any framework into your framework of +choice, preserving all the logic between frameworks. As the output of transpilation is native code in the target framework, it -can be used as if it was originally developed in that framework, +can be used as if it was originally developed in that framework, allowing you to apply and use framework-specific optimizations or tools. -This makes all ML-related projects available to you, independently of the framework you +This makes all ML-related projects available to you, independently of the framework you want to use to research, develop, or deploy systems. So if you want to: -- Use functions and building blocks like neural networks, layers, activations, and - training pipelines published in other frameworks. Ex: Using Haiku modules in PyTorch to +- Use functions and building blocks like neural networks, layers, activations, and + training pipelines published in other frameworks. Ex: Using Haiku modules in PyTorch to get access to the latest model. -- Integrate code developed in other frameworks into your code. Ex: Use the Kornia +- Integrate code developed in other frameworks into your code. Ex: Use the Kornia library in Jax for extra performance. -- Take advantage of specific features in other frameworks. Ex: Convert Jax code to Tensorflow for deployment. +- Take advantage of specific features in other frameworks. Ex: Convert Jax code to Tensorflow for deployment. Ivy's Transpiler is definitely the tool for the job 🔧 -To convert the code, it traces a computational graph using the Graph Compiler and -leverages Ivy's frontends and backends to link one framework to another. After swapping -each function node in the computational graph with their equivalent Ivy frontend +To convert the code, it traces a computational graph using the Graph Compiler and +leverages Ivy's frontends and backends to link one framework to another. After swapping +each function node in the computational graph with their equivalent Ivy frontend functions, the compiler removes all the wrapping in the frontends and replaces them with the native functions of the target framework. @@ -36,7 +36,7 @@ Transpiler API .. py:function:: ivy.transpile(*objs, source = None, to = None, debug_mode = False, args = None, kwargs = None, params_v = None,) - Transpiles a ``Callable`` or set of them from a ``source`` framework to another framework. If ``args`` or ``kwargs`` are specified, + Transpiles a ``Callable`` or set of them from a ``source`` framework to another framework. If ``args`` or ``kwargs`` are specified, transpilation is performed eagerly, otherwise, transpilation will happen lazily. :param objs: Native callable(s) to transpile. @@ -60,7 +60,7 @@ Transpiler API .. py:function:: ivy.unify(*objs, source = None, args = None, kwargs = None, **transpile_kwargs,) - Transpiles an object into Ivy code. It's an alias to + Transpiles an object into Ivy code. It's an alias to ``ivy.transpile(..., to="ivy", ...)`` :param objs: Native callable(s) to transpile. @@ -80,11 +80,11 @@ Using the transpiler -------------------- Similar to the ``ivy.compile`` function, ``ivy.unify`` and ``ivy.transpile`` can be used -eagerly and lazily. If you pass the necessary arguments, the function will be called -instantly, otherwise, transpilation will happen the first time you invoke the function -with the proper arguments. +eagerly and lazily. If you pass the necessary arguments, the function will be called +instantly, otherwise, transpilation will happen the first time you invoke the function +with the proper arguments. -In both cases, arguments or keyword arguments can be arrays from +In both cases, arguments or keyword arguments can be arrays from either the ``source`` framework or the target (``to``) framework. Transpiling functions @@ -111,7 +111,7 @@ a small JAX function to Torch both eagerly and lazily. ret = eager_graph(x1) # Arguments are not available -> transpilation happens lazily - lazy_graph = ivy.transpile(test_fn, source="jax", to="torch") + lazy_graph = ivy.transpile(test_fn, source="jax", to="torch") # The transpiled graph is initialized, transpilation will happen here ret = lazy_graph(x1) @@ -122,7 +122,7 @@ a small JAX function to Torch both eagerly and lazily. Transpiling Libraries ~~~~~~~~~~~~~~~~~~~~~ -Likewise, you can use ``ivy.transpile`` to convert entire libraries and modules with just one line of +Likewise, you can use ``ivy.transpile`` to convert entire libraries and modules with just one line of code! .. code-block:: python @@ -150,8 +150,8 @@ code! Transpiling Modules ~~~~~~~~~~~~~~~~~~~ -Last but not least, Ivy can also transpile trainable modules from one framework to -another, at the moment we support ``torch.nn.Module`` when ``to="torch"``, +Last but not least, Ivy can also transpile trainable modules from one framework to +another, at the moment we support ``torch.nn.Module`` when ``to="torch"``, ``tf.keras.Model`` when ``to="tensorflow"``, and haiku models when ``to="jax"``. .. code-block:: @@ -216,38 +216,38 @@ exactly in the same way to convert framework specific code to Ivy. Sharp bits ---------- -In a similar fashion to the compiler, the transpiler is under development and we are +In a similar fashion to the compiler, the transpiler is under development and we are still working on some rough edges. These include: -1. **Keras model subclassing**: If a model is transpiled to keras, the resulting - ``tf.keras.Model`` can not be used within a keras sequential model at the moment. If - you want to use the transpiled model as part of a more complex keras model, you can - `create a Model subclass - `_. +1. **Keras model subclassing**: If a model is transpiled to keras, the resulting + ``tf.keras.Model`` can not be used within a keras sequential model at the moment. If + you want to use the transpiled model as part of a more complex keras model, you can + `create a Model subclass + `_. Due to this, any training of a keras model should be done using a TensorFlow training pipeline instead of the keras utils. -2. **Keras arguments**: Keras models require at least an argument to be passed, so if a - model from another framework that only takes ``kwargs`` is transpiled to keras, - you'll need to pass a ``None`` argument to the transpiled model before the +2. **Keras arguments**: Keras models require at least an argument to be passed, so if a + model from another framework that only takes ``kwargs`` is transpiled to keras, + you'll need to pass a ``None`` argument to the transpiled model before the corresponding ``kwargs``. -3. **Haiku transform with state**: As of now, we only support the transpilation of - transformed Haiku modules, this means that ``transformed_with_state`` objects will +3. **Haiku transform with state**: As of now, we only support the transpilation of + transformed Haiku modules, this means that ``transformed_with_state`` objects will not be correctly transpiled. -4. **Array format between frameworks**: As the compiler outputs a 1-to-1 mapping of the - compiled function, the format of the tensors is preserved when transpiling from a - framework to another. As an example, if you transpile a convolutional block from +4. **Array format between frameworks**: As the compiler outputs a 1-to-1 mapping of the + compiled function, the format of the tensors is preserved when transpiling from a + framework to another. As an example, if you transpile a convolutional block from PyTorch (which uses ``N, C, H, W``) to TensorFlow (which uses ``N, H, W, C``) and want - to use it as part of a bigger (TensorFlow) model, you'll need to include a permute statement for - the inference to be correct. + to use it as part of a bigger (TensorFlow) model, you'll need to include a permute statement for + the inference to be correct. -Keep in mind that the transpiler uses the graph compiler under the hood, so the -:ref:`sharp bits of the compiler ` +Keep in mind that the transpiler uses the graph compiler under the hood, so the +:ref:`sharp bits of the compiler ` apply here as well! Examples -------- -Here, we are transpiling a HF model from torch to tensorflow and then using the +Here, we are transpiling a HF model from torch to tensorflow and then using the resulting model with tensorflow tensors directly: .. code-block:: python diff --git a/docs/prebuild.sh b/docs/prebuild.sh index d22d94c22a279..af122eafaaf58 100755 --- a/docs/prebuild.sh +++ b/docs/prebuild.sh @@ -1,6 +1,6 @@ #!/bin/bash -e -# For some reason torch needed to be installed sequentially before installing from +# For some reason torch needed to be installed sequentially before installing from # requirements.txt pip install torch || exit 1 pip install torch-scatter || exit 1 diff --git a/ivy/data_classes/array/general.py b/ivy/data_classes/array/general.py index 62c1454211d72..0cbc69521ade3 100644 --- a/ivy/data_classes/array/general.py +++ b/ivy/data_classes/array/general.py @@ -1347,7 +1347,7 @@ def get_num_dims(self: ivy.Array, /, *, as_array: bool = False) -> int: >>> b = x.get_num_dims(as_array=False) >>> print(b) 3 - + >>> b = x.get_num_dims(as_array=True) >>> print(b) ivy.array(3) diff --git a/ivy/data_classes/container/creation.py b/ivy/data_classes/container/creation.py index e6296fb0d3e37..ea238eb55c733 100644 --- a/ivy/data_classes/container/creation.py +++ b/ivy/data_classes/container/creation.py @@ -1303,7 +1303,7 @@ def _static_one_hot( ret container with tensors of zeros with the same shape and type as the inputs, unless dtype provided which overrides. - + Examples -------- With :class:`ivy.Container` inputs: @@ -1314,11 +1314,11 @@ def _static_one_hot( >>> z = ivy.Container.static_one_hot(x, y) >>> print(z) { - a: ivy.array([[0., 1., 0., 0., 0.], + a: ivy.array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.]]), - b: ivy.array([[0., 0., 0., 1., 0.], + b: ivy.array([[0., 0., 0., 1., 0.], [0., 1., 0., 0., 0.]]), - c: ivy.array([[0., 0., 1., 0., 0.], + c: ivy.array([[0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.]]) } @@ -1328,7 +1328,7 @@ def _static_one_hot( >>> z = ivy.Container.static_one_hot(x, y) >>> print(z) { - a: ivy.array([[0., 1., 0., 0., 0.], + a: ivy.array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.]]), b: ivy.array([], shape=(0, 5)), c: ivy.array([[0., 0., 0., 0., 1.]]) @@ -1417,11 +1417,11 @@ def one_hot( >>> z = x.one_hot(y) >>> print(z) { - a: ivy.array([[0., 1., 0., 0., 0.], + a: ivy.array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.]]), - b: ivy.array([[0., 0., 0., 1., 0.], + b: ivy.array([[0., 0., 0., 1., 0.], [0., 1., 0., 0., 0.]]), - c: ivy.array([[0., 0., 1., 0., 0.], + c: ivy.array([[0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.]]) } @@ -1431,7 +1431,7 @@ def one_hot( >>> z = x.one_hot(y) >>> print(z) { - a: ivy.array([[0., 1., 0., 0., 0.], + a: ivy.array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.]]), b: ivy.array([], shape=(0, 5)), c: ivy.array([[0., 0., 0., 0., 1.]]) diff --git a/ivy/data_classes/container/elementwise.py b/ivy/data_classes/container/elementwise.py index 226a9fe15edf2..4de059cf06057 100644 --- a/ivy/data_classes/container/elementwise.py +++ b/ivy/data_classes/container/elementwise.py @@ -6243,7 +6243,7 @@ def _static_multiply( a container containing the element-wise results. The returned container must have a data type determined by :ref:`type-promotion`. - + Examples -------- With :code:`ivy.Container` inputs: diff --git a/ivy/data_classes/container/experimental/manipulation.py b/ivy/data_classes/container/experimental/manipulation.py index 25ba79bec9fd4..c0e37f7b1f81d 100644 --- a/ivy/data_classes/container/experimental/manipulation.py +++ b/ivy/data_classes/container/experimental/manipulation.py @@ -554,7 +554,7 @@ def static_rot90( ------- ret Container with a rotated view of m. - + Examples -------- >>> m = ivy.Container(a=ivy.array([[1,2], [3,4]]),\ @@ -2057,7 +2057,7 @@ def atleast_3d( container with array inputs. arys one or more container with array inputs. - + key_chains The keychains to apply or not apply the method to. Default is ``None``. to_apply diff --git a/ivy/data_classes/container/experimental/random.py b/ivy/data_classes/container/experimental/random.py index 9b60d9742c94e..7544f92d3fafa 100644 --- a/ivy/data_classes/container/experimental/random.py +++ b/ivy/data_classes/container/experimental/random.py @@ -30,10 +30,10 @@ def static_dirichlet( Parameters ---------- alpha - Sequence of floats of length k + Sequence of floats of length k size - optional container including ints or tuple of ints, - Output shape for the arrays in the input container. + optional container including ints or tuple of ints, + Output shape for the arrays in the input container. dtype output container array data type. If ``dtype`` is ``None``, the output data type will be the default floating-point data type. Default ``None`` @@ -97,10 +97,10 @@ def dirichlet( Parameters ---------- self - Sequence of floats of length k + Sequence of floats of length k size - optional container including ints or tuple of ints, - Output shape for the arrays in the input container. + optional container including ints or tuple of ints, + Output shape for the arrays in the input container. dtype output container array data type. If ``dtype`` is ``None``, the output data type will be the default floating-point data type. Default ``None`` diff --git a/ivy/data_classes/container/experimental/statistical.py b/ivy/data_classes/container/experimental/statistical.py index c5b3a7beb4c53..edf20317bbdc9 100644 --- a/ivy/data_classes/container/experimental/statistical.py +++ b/ivy/data_classes/container/experimental/statistical.py @@ -356,8 +356,8 @@ def static_nanmean( If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the original a. If the value is anything but the default, - then keepdims will be passed through to the mean or sum methods of - sub-classes of ndarray. If the sub-classes methods does not implement + then keepdims will be passed through to the mean or sum methods of + sub-classes of ndarray. If the sub-classes methods does not implement keepdims any exceptions will be raised. dtype The desired data type of returned tensor. Default is None. @@ -417,8 +417,8 @@ def nanmean( If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the original a. If the value is anything but the default, - then keepdims will be passed through to the mean or sum methods of - sub-classes of ndarray. If the sub-classes methods does not implement + then keepdims will be passed through to the mean or sum methods of + sub-classes of ndarray. If the sub-classes methods does not implement keepdims any exceptions will be raised. dtype The desired data type of returned tensor. Default is None. @@ -869,9 +869,9 @@ def static_corrcoef( z=ivy.array([[0., 1., 2.], [2., 1., 0.]])) >>> ivy.Container.corrcoef(a) { - w: ivy.array([[1., 1.], + w: ivy.array([[1., 1.], [1., 1.]]), - z: ivy.array([[1., -1.], + z: ivy.array([[1., -1.], [-1., 1.]]) } """ @@ -922,9 +922,9 @@ def corrcoef( z=ivy.array([[0., 1., 2.], [2., 1., 0.]])) >>> ivy.Container.corrcoef(a) { - w: ivy.array([[1., 1.], + w: ivy.array([[1., 1.], [1., 1.]]), - z: ivy.array([[1., -1.], + z: ivy.array([[1., -1.], [-1., 1.]]) } """ diff --git a/ivy/data_classes/container/layers.py b/ivy/data_classes/container/layers.py index 964e9e52b680d..b56ed5c84a9d6 100644 --- a/ivy/data_classes/container/layers.py +++ b/ivy/data_classes/container/layers.py @@ -2105,7 +2105,7 @@ def _static_conv3d( filter_format Either "channel_first" or "channel_last". Defaults to "channel_last". x_dilations - The dilation factor for each dimension of input. (Default value = 1) + The dilation factor for each dimension of input. (Default value = 1) dilations The dilation factor for each dimension of input. (Default value = 1) bias @@ -2190,7 +2190,7 @@ def conv3d( filter_format Either "channel_first" or "channel_last". Defaults to "channel_last". x_dilations - The dilation factor for each dimension of input. (Default value = 1) + The dilation factor for each dimension of input. (Default value = 1) dilations The dilation factor for each dimension of input. (Default value = 1) bias diff --git a/ivy/data_classes/container/linear_algebra.py b/ivy/data_classes/container/linear_algebra.py index c2aa9d6f86905..d9b7fa142b492 100644 --- a/ivy/data_classes/container/linear_algebra.py +++ b/ivy/data_classes/container/linear_algebra.py @@ -1416,7 +1416,7 @@ def _static_matrix_norm( Parameters ---------- x - Input array having shape (..., M, N) and whose innermost two deimensions + Input array having shape (..., M, N) and whose innermost two deimensions form MxN matrices. Should have a floating-point data type. ord Order of the norm. Default is "fro". @@ -1445,7 +1445,7 @@ def _static_matrix_norm( ------- ret Matrix norm of the array at specified axes. - + Examples -------- >>> x = ivy.Container(a=ivy.array([[1.1, 2.2], [1., 2.]]), \ @@ -1466,7 +1466,7 @@ def _static_matrix_norm( >>> print(y) { a: ivy.array([4.24, 11.4, 19.2]), - b: ivy.array([[[3.7]], + b: ivy.array([[[3.7]], [[11.2]]]) } """ @@ -1504,7 +1504,7 @@ def matrix_norm( Parameters ---------- self - Container having shape (..., M, N) and whose innermost two dimensions + Container having shape (..., M, N) and whose innermost two dimensions form MxN matrices. Should have a floating-point data type. ord Order of the norm. Default is "fro". @@ -1553,8 +1553,8 @@ def matrix_norm( >>> y = x.matrix_norm(ord=ord, axis=axis, keepdims=k) >>> print(y) { - a: ivy.array([[[4.24]], - [[11.4]], + a: ivy.array([[[4.24]], + [[11.4]], [[19.2]]]), b: ivy.array([4., 12.]) } diff --git a/ivy/functional/frontends/torch/comparison_ops.py b/ivy/functional/frontends/torch/comparison_ops.py index b743b38d135f0..eeaadadfbf864 100644 --- a/ivy/functional/frontends/torch/comparison_ops.py +++ b/ivy/functional/frontends/torch/comparison_ops.py @@ -290,7 +290,7 @@ def topk(input, k, dim=None, largest=True, sorted=True, *, out=None): gt = greater +ne = not_equal ge = greater_equal le = less_equal lt = less -ne = not_equal diff --git a/ivy/functional/ivy/creation.py b/ivy/functional/ivy/creation.py index 046fd2fd9699a..eeb8758f43b70 100644 --- a/ivy/functional/ivy/creation.py +++ b/ivy/functional/ivy/creation.py @@ -1961,7 +1961,7 @@ def one_hot( ret Tensor of zeros with the same shape and type as a, unless dtype provided which overrides. - + Examples -------- With :class:`ivy.Array` inputs: @@ -1993,11 +1993,11 @@ def one_hot( >>> z = x.one_hot(y) >>> print(z) { - a: ivy.array([[0., 1., 0., 0., 0.], + a: ivy.array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.]]), - b: ivy.array([[0., 0., 0., 1., 0.], + b: ivy.array([[0., 0., 0., 1., 0.], [0., 1., 0., 0., 0.]]), - c: ivy.array([[0., 0., 1., 0., 0.], + c: ivy.array([[0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.]]) } diff --git a/ivy/functional/ivy/experimental/manipulation.py b/ivy/functional/ivy/experimental/manipulation.py index f8d4e90f73388..347e0d5497ab1 100644 --- a/ivy/functional/ivy/experimental/manipulation.py +++ b/ivy/functional/ivy/experimental/manipulation.py @@ -496,8 +496,8 @@ def rot90( m Input array of two or more dimensions. copy - boolean indicating whether or not to copy the input array. - If True, the function must always copy. + boolean indicating whether or not to copy the input array. + If True, the function must always copy. If False, the function must never copy. In case copy is False we avoid copying by returning a view of the input array. k diff --git a/ivy/functional/ivy/linear_algebra.py b/ivy/functional/ivy/linear_algebra.py index 3708af0b00732..b7c3f450047ea 100644 --- a/ivy/functional/ivy/linear_algebra.py +++ b/ivy/functional/ivy/linear_algebra.py @@ -1397,11 +1397,11 @@ def matrix_rank( where ``eps`` must be the machine epsilon associated with the floating-point data type determined by :ref:`type-promotion` (as applied to ``x``). Default: ``None``. - + hermitian indicates whether ``x`` is Hermitian. When ``hermitian=True``, ``x`` is assumed to be Hermitian, enabling a more efficient method for finding - eigenvalues, but x is not checked inside the function. + eigenvalues, but x is not checked inside the function. Instead, We just use the lower triangular of the matrix to compute. Default: ``False``. out From 0d30702fdfe68ae251f1059c819d85cd24ac1c6d Mon Sep 17 00:00:00 2001 From: samunder singh <83540902+samthakur587@users.noreply.github.com> Date: Thu, 7 Sep 2023 14:56:04 +0530 Subject: [PATCH 043/127] Stanh (#22925) Co-authored-by: @AnnaTz --- .../frontends/paddle/tensor/tensor.py | 4 ++ .../test_paddle/test_tensor/test_tensor.py | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/tensor.py b/ivy/functional/frontends/paddle/tensor/tensor.py index 1c3e399aef9ed..8a235fffc7803 100644 --- a/ivy/functional/frontends/paddle/tensor/tensor.py +++ b/ivy/functional/frontends/paddle/tensor/tensor.py @@ -714,6 +714,10 @@ def std(self, axis=None, unbiased=True, keepdim=False, name=None): def trunc(self, name=None): return paddle_frontend.Tensor(ivy.trunc(self._ivy_array)) + @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") + def stanh(self, scale_a=0.67, scale_b=1.7159, name=None): + return paddle_frontend.stanh(self, scale_a=scale_a, scale_b=scale_b) + @with_supported_dtypes( {"2.5.1 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, "paddle", diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py index 56f4cbe2b990f..e447fcf5af317 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py @@ -3155,6 +3155,49 @@ def test_paddle_tensor_square( ) + +# stanh +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="paddle.to_tensor", + method_name="stanh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), + scale_a=st.floats(1e-5, 1e5), + scale_b=st.floats(1e-5, 1e5), +) +def test_paddle_tensor_stanh( + dtype_and_x, + frontend_method_data, + scale_a, + scale_b, + init_flags, + method_flags, + frontend, + backend_fw, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + init_all_as_kwargs_np={ + "data": x[0], + }, + method_input_dtypes=input_dtype, + backend_to_test=backend_fw, + method_all_as_kwargs_np={ + "scale_a": scale_a, + "scale_b": scale_b, + }, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + frontend=frontend, + on_device=on_device, + ) + + # squeeze_ @handle_frontend_method( class_tree=CLASS_TREE, From 35965c665c36f294285d720ccb0c28e1031eccb4 Mon Sep 17 00:00:00 2001 From: DHANUSH N Date: Thu, 7 Sep 2023 15:09:11 +0530 Subject: [PATCH 044/127] frontend paddle exponential_ (#23070) Hello @dhanush-2501, thank you for your contribution! --- .../frontends/paddle/tensor/random.py | 9 ++++++ .../test_paddle/test_tensor/test_random.py | 31 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/random.py b/ivy/functional/frontends/paddle/tensor/random.py index b69d73d8a5e25..570983d131d34 100644 --- a/ivy/functional/frontends/paddle/tensor/random.py +++ b/ivy/functional/frontends/paddle/tensor/random.py @@ -7,6 +7,15 @@ ) +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def exponential_(x, lam=1.0, name=None): + return ivy.multiply(lam, ivy.exp(ivy.multiply(-lam, x))) + + @with_supported_dtypes( {"2.5.1 and below": ("float32", "float64")}, "paddle", diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py index 93fdb86789953..d01891a3e81ce 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py @@ -7,6 +7,37 @@ from ivy_tests.test_ivy.helpers import handle_frontend_test +@handle_frontend_test( + fn_tree="paddle.tensor.random.exponential_", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_value=0, + max_value=1000, + min_num_dims=1, + max_num_dims=10, + min_dim_size=2, + max_dim_size=10, + ), +) +def test_paddle_exponential_( + fn_tree, + dtype_and_x, + frontend, + backend_fw, + test_flags, +): + dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + x=x[0], + ) + + @handle_frontend_test( fn_tree="paddle.normal", input_dtypes=st.sampled_from([["float32"], ["float64"]]), From 0c008daabd5a70974437a30373708a547f0b22eb Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Thu, 7 Sep 2023 14:24:27 +0300 Subject: [PATCH 045/127] docs: remove mention of applied libraries (#23191) --- README.md | 57 ------- docs/overview/contributing.rst | 6 +- .../contributing/applied_libraries.rst | 142 ------------------ .../contributing/building_the_docs.rst | 12 +- docs/overview/faq.rst | 2 - docs/overview/glossary.rst | 6 - docs/partial_conf.py | 1 + 7 files changed, 8 insertions(+), 218 deletions(-) delete mode 100644 docs/overview/contributing/applied_libraries.rst diff --git a/README.md b/README.md index 0a6702365d24b..e4ce1c4e04438 100644 --- a/README.md +++ b/README.md @@ -322,63 +322,6 @@ The model\'s output can be visualized as follows: -Last but not least, we are also working on specific extensions totally -written in Ivy and therefore usable within any framework, covering -topics like [Mechanics](https://github.com/unifyai/mech), [Computer -Vision](https://github.com/unifyai/vision), -[Robotics](https://github.com/unifyai/robot), a [Reinforcement Learning -Gym](https://github.com/unifyai/gym), -[Memory](https://github.com/unifyai/memory) and implementation of -various [Models](https://github.com/unifyai/models) or [Builder -tools](https://github.com/unifyai/builder) with trainers, data loaders -and more! - -
- -
As always, you can find more information about [Ivy as a framework in the diff --git a/docs/overview/contributing.rst b/docs/overview/contributing.rst index 1f106cc66d795..6e988bba87b52 100644 --- a/docs/overview/contributing.rst +++ b/docs/overview/contributing.rst @@ -30,10 +30,7 @@ The contributor guide is split into the sections below, it's best to go from sta | (e) `Open Tasks `_ | See where you can help us out! 🙋 | -| (f) `Applied Libraries `_ -| Getting started with our applied libraries! 📚 -| -| (g) `Helpful Resources `_ +| (f) `Helpful Resources `_ | Resources you would find useful when learning Ivy 📖 | | (g) `Error Handling `_ @@ -49,7 +46,6 @@ The contributor guide is split into the sections below, it's best to go from sta contributing/building_the_docs.rst Deep Dive contributing/open_tasks.rst - contributing/applied_libraries.rst contributing/helpful_resources.rst contributing/error_handling.rst diff --git a/docs/overview/contributing/applied_libraries.rst b/docs/overview/contributing/applied_libraries.rst deleted file mode 100644 index 12fa1803f25b7..0000000000000 --- a/docs/overview/contributing/applied_libraries.rst +++ /dev/null @@ -1,142 +0,0 @@ -Applied Libraries -================= - -.. _`Ivy Robot`: https://unify.ai/docs/robot/ -.. _`Mech`: https://unify.ai/docs/mech/ -.. _`Vision`: https://unify.ai/docs/vision/ -.. _`Demo Utils`: https://github.com/unifyai/demo-utils -.. _`Ivy`: https://github.com/unifyai/ivy -.. _`Docker Desktop`: https://www.docker.com/products/docker-desktop/ -.. _`discord`: https://discord.gg/sXyFF8tDtm -.. _`pycharm channel`: https://discord.com/channels/799879767196958751/942114831039856730 -.. _`docker channel`: https://discord.com/channels/799879767196958751/942114744691740772 -.. _`pre-commit channel`: https://discord.com/channels/799879767196958751/982725464110034944 -.. _`pip packages channel`: https://discord.com/channels/799879767196958751/942114789642080317 - -Introduction ------------- - -Helping to contribute towards the ivy libraries requires a slightly more complex setup than is needed for contributing to ivy alone. -For instance, `Ivy Robot`_ depends on `Mech`_, `Vision`_ and `Demo Utils`_. -Thus, the related repositories have to be pulled into the same local folder, and `Ivy`_ must also be pulled into this same folder. - -To have a better grasp, let's look at an example of Ivy Robot in the next section! - -Example - Ivy Robot -------------------- - -**Directory Tree** - -1. Due to dependencies, the related Ivy repositories have to be placed in the same local directory: - -.. code-block:: none - - |-- your-local-dir - | |-- ivy - | |-- mech - | |-- vision - | |-- robot - | |-- demo-utils - -2. Clone all repositories into a mutual directory: - - .. code-block:: none - - git clone https://github.com/unifyai/ivy.git - - .. code-block:: none - - git clone https://github.com/unifyai/mech.git - - .. code-block:: none - - git clone https://github.com/unifyai/vision.git - - .. code-block:: none - - git clone https://github.com/unifyai/robot.git - - .. code-block:: none - - git clone https://github.com/unifyai/demo-utils.git - -3. The next steps will depend on your type of development. - -**Local Development** - -1. Create a virtual environment (venv) in the same directory: - - .. code-block:: none - - python3 -m venv ivy_dev - -2. Activate the environment: - - (on Windows) - .. code-block:: none - - ivy_dev\Scripts\activate.bat - - (on Mac/Linux) - .. code-block:: none - - source ivy_dev/bin/activate - -3. Go into each directory and install packages in develop/editable mode: - - .. code-block:: none - - cd ivy - python3 -m pip install --user -e . - - (repeat for all repositories) - - **NOTE:** In develop mode, packages are linked to their local directory. - Therefore, changes or edits are reflected immediately when in use. - -4. To use: - - .. code-block:: none - - python3 - - .. code-block:: python - - import ivy_robot - -**Docker Development** - -1. Install `Docker Desktop`_ - -2. Go into the :code:`robot` repository and build the docker image: - - .. code-block:: none - - cd robot - docker build -t my-robot . - -3. To use, first mount the local directories, then start up :code:`python3` with Docker: - - (in the folder containing all repositories) - .. code-block:: none - - docker run --rm -it -v `pwd`/ivy:/ivy -v `pwd`/mech:/mech -v `pwd`/vision:/vision -v `pwd`/robot:/robot -v `pwd`/demo-utils:/demo-utils my-robot python3 - - **NOTE:** Mounting allows the docker container to use local folder as volumes, thus reflecting the local changes or edits made. - Users are not required to rebuild the docker image after every change. - -**IDE Development** - -1. For **PyCharm**, configurations are saved in the :code:`.idea` folder (part of the ivy repo). - -2. For **VSCode**, configurations can be found in the :code:`.devcontainer` folder (not part of the ivy repo). - -**NOTE:** To use the development container in VSCode, the extension "Remote - Containers" needs to be installed. - -**NOTE:** When using GitHub Codespaces, the :code:`mounts` config in :code:`.devcontainer/devcontainer.json` is not supported. - -**Round Up** - -These examples should hopefully give you a good understanding of what is required when developing the Ivy applied libraries. - -If you have any questions, please feel free to reach out on `discord`_ in the `pycharm channel`_, `docker channel`_, `pre-commit channel`_ or `pip packages channel`_, depending on the question! diff --git a/docs/overview/contributing/building_the_docs.rst b/docs/overview/contributing/building_the_docs.rst index 202d6dbff5748..12f59b1dbd618 100644 --- a/docs/overview/contributing/building_the_docs.rst +++ b/docs/overview/contributing/building_the_docs.rst @@ -25,18 +25,18 @@ Using existing image on Docker Hub You can also use the ``unifyai/doc-builder`` image hosted on `Docker Hub `_ to build the -docs. This will be helpful if you want to build the docs for Ivy applied libraries. +docs. Run ``docker run`` to build the docs. The following command will build the docs for the project in the current directory and output them to ``docs/build``. .. code-block:: bash - cd + cd docker run --rm -v $(pwd):/project unifyai/doc-builder This command will mount the module directory to ``/project`` in the container, the -current directory can be the root of ``ivy`` or any applied library such as ``mech``. +current directory should be the root of ``ivy``. Building the image locally ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -87,8 +87,8 @@ Then, run the following command to build the docs: .. code-block:: bash cd doc-builder - ./make_docs_without_docker.sh + ./make_docs_without_docker.sh The script will install the required dependencies for `sphinx `_ -which is used to build the docs, as well as dependencies required by Ivy or the Ivy -applied library. Then it will build the docs for Ivy and store it in ``docs/build``. +which is used to build the docs, as well as dependencies required by Ivy. Then it will +build the docs for Ivy and store it in ``docs/build``. diff --git a/docs/overview/faq.rst b/docs/overview/faq.rst index a46d128e4cdc4..e74df1b21dff7 100644 --- a/docs/overview/faq.rst +++ b/docs/overview/faq.rst @@ -4,7 +4,6 @@ FAQ .. _`dex`: https://github.com/dexidp/dex .. _`API for distributed training`: https://github.com/unifyai/ivy/blob/a2f37b1bae232b7ba5257e59f8b46a0374cca9f1/ivy/functional/ivy/device.py#L660 .. _`fully support these`: https://pytorch.org/tutorials/prototype/vmap_recipe.html -.. _`Ivy Builder`: https://github.com/unifyai/builder .. _`README`: https://github.com/unifyai/ivy These are some of the most common technical questions that continue to arise when we're discussing Ivy with developers in the community. @@ -156,7 +155,6 @@ The Pipeline **A:** We are not advocating to replace all code with Ivy. We would encourage users to continue using whatever data loaders they want to, and perhaps just use an Ivy model, or use Ivy to convert a model, or even just a single function from a library. -If users want to use Ivy more deeply, then they can use `Ivy Builder`_, which includes framework-agnostic abstract data loaders, trainers, and other higher level classes for composing full training pipelines. State ----- diff --git a/docs/overview/glossary.rst b/docs/overview/glossary.rst index 606dbf1c8a934..956654fd5758f 100644 --- a/docs/overview/glossary.rst +++ b/docs/overview/glossary.rst @@ -45,12 +45,6 @@ All of these new words can get confusing! We've created a glossary to help nail Automatic Code Conversions Allows code to be converted from one framework to another whilst retaining its functional assets. - Applied Libraries - Suite of various machine learning libraries that have been built using the Ivy framework. - - Ivy Builder - Helpful classes and functions for creating training workflows. - Primary Functions Primary functions are the lowest level building blocks in Ivy and are generally implemented as light wrapping around an existing function in the backend framework, which serves a near-identical purpose. diff --git a/docs/partial_conf.py b/docs/partial_conf.py index fa46420c87526..ffb6e62ce4c1f 100644 --- a/docs/partial_conf.py +++ b/docs/partial_conf.py @@ -48,6 +48,7 @@ from docs.conf import html_theme_options html_theme_options["switcher"]["json_url"] = "https://unify.ai/docs/versions/ivy.json" +html_sidebars = {"**": ["custom-toc-tree"]} repo_name = "ivy" From 7bdb325c8297c5ea1be85628f0b5cf8ba8e6eaf4 Mon Sep 17 00:00:00 2001 From: Akshay <59740725+Killua7362@users.noreply.github.com> Date: Thu, 7 Sep 2023 17:14:58 +0530 Subject: [PATCH 046/127] Added ivy.Array as torch trackable module (#23185) --- ivy/functional/backends/torch/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ivy/functional/backends/torch/__init__.py b/ivy/functional/backends/torch/__init__.py index 11459cc8a797b..1dd6577901944 100644 --- a/ivy/functional/backends/torch/__init__.py +++ b/ivy/functional/backends/torch/__init__.py @@ -8,6 +8,10 @@ backend_version = {"version": torch.__version__.split("+")[0]} +# Registering ivy.Array as trackable submodule +if hasattr(torch, "_dynamo"): + torch._dynamo.config.traceable_tensor_subclasses = (ivy.Array,) + # noinspection PyUnresolvedReferences if not ivy.is_local(): _module_in_memory = sys.modules[__name__] From 39d2810c220067aeb2c35f9916c384ba2794d9cb Mon Sep 17 00:00:00 2001 From: Akshay <59740725+Killua7362@users.noreply.github.com> Date: Thu, 7 Sep 2023 17:18:21 +0530 Subject: [PATCH 047/127] refractored ivy-test nested-map (#23186) --- ivy_tests/test_ivy/helpers/function_testing.py | 12 ++++++------ .../test_frontends/test_tensorflow/test_raw_ops.py | 2 +- .../test_functional/test_core/test_elementwise.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ivy_tests/test_ivy/helpers/function_testing.py b/ivy_tests/test_ivy/helpers/function_testing.py index c3041c4c053d5..5e20e7e7fa29d 100644 --- a/ivy_tests/test_ivy/helpers/function_testing.py +++ b/ivy_tests/test_ivy/helpers/function_testing.py @@ -915,7 +915,7 @@ def test_frontend_function( if not test_values: ret = ivy_backend.nested_map( - ret, _frontend_array_to_ivy, include_derived={tuple: True} + ret, _frontend_array_to_ivy, include_derived={"tuple": True} ) def arrays_to_numpy(x): @@ -2377,7 +2377,7 @@ def map_fn(x): return ivy_backend.to_ivy(x) return x - ret = ivy_backend.nested_map(ret, map_fn, include_derived={tuple: True}) + ret = ivy_backend.nested_map(ret, map_fn, include_derived={"tuple": True}) return ret, flatten_and_to_np(backend=backend_to_test, ret=ret) @@ -2397,24 +2397,24 @@ def get_frontend_ret( with BackendHandler.update_backend(backend) as ivy_backend: if not as_ivy_arrays and test_compile: args, kwargs = ivy_backend.nested_map( - (args, kwargs), _frontend_array_to_ivy, include_derived={tuple: True} + (args, kwargs), _frontend_array_to_ivy, include_derived={"tuple": True} ) with ivy_backend.PreciseMode(precision_mode): ret = frontend_fn(*args, **kwargs) if test_compile and frontend_array_function is not None: if as_ivy_arrays: ret = ivy_backend.nested_map( - ret, ivy_backend.asarray, include_derived={tuple: True} + ret, ivy_backend.asarray, include_derived={"tuple": True} ) else: ret = ivy_backend.nested_map( ret, arrays_to_frontend(backend, frontend_array_function), - include_derived={tuple: True}, + include_derived={"tuple": True}, ) elif as_ivy_arrays: ret = ivy_backend.nested_map( - ret, _frontend_array_to_ivy, include_derived={tuple: True} + ret, _frontend_array_to_ivy, include_derived={"tuple": True} ) return ret diff --git a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_raw_ops.py b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_raw_ops.py index 0ef72b5d8634c..e734dfa5406f7 100644 --- a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_raw_ops.py +++ b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_raw_ops.py @@ -236,7 +236,7 @@ def _pow_helper_shared_dtype(draw): dtype1, dtype2 = dtype x1, x2 = x if "int" in dtype2: - x2 = ivy.nested_map(x2, lambda x: abs(x), include_derived={list: True}) + x2 = ivy.nested_map(x2, lambda x: abs(x), include_derived={"list": True}) if ivy.is_int_dtype(dtype2): max_val = ivy.iinfo(dtype2).max diff --git a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py index 22cc88c61f6be..dddf7963e4f8d 100644 --- a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py +++ b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py @@ -138,7 +138,7 @@ def cast_filter(dtype1_x1_dtype2): dtype2 = dtype2[0] if "int" in dtype2: x2 = ivy.nested_map( - x2[0], lambda x: abs(x), include_derived={list: True}, shallow=False + x2[0], lambda x: abs(x), include_derived={"list": True}, shallow=False ) return [dtype1, dtype2], [x1, x2] From 950b2360f4e62fa90a124af4ca6655abf4e27596 Mon Sep 17 00:00:00 2001 From: Mohammed Ayman Date: Thu, 7 Sep 2023 15:49:31 +0300 Subject: [PATCH 048/127] feat(functional): Made softmax activation function support complex dtype (#23158) --- docs/demos | 2 +- ivy/data_classes/array/activations.py | 6 +++++- ivy/data_classes/container/activations.py | 10 +++++++++ ivy/functional/backends/paddle/activations.py | 15 ++++++------- ivy/functional/backends/paddle/statistical.py | 14 ++++++++++--- .../backends/tensorflow/activations.py | 11 +++++++++- .../backends/tensorflow/statistical.py | 15 ++++++++++++- ivy/functional/backends/torch/activations.py | 7 ++++++- ivy/functional/backends/torch/statistical.py | 10 ++++++++- ivy/functional/ivy/activations.py | 5 +++++ ivy/stateful/activations.py | 21 ++++++++++++++++--- .../test_nn/test_non_linear_activations.py | 4 ++-- .../test_nn/test_activations.py | 4 ++-- .../test_stateful/test_activations.py | 6 +++--- 14 files changed, 104 insertions(+), 26 deletions(-) diff --git a/docs/demos b/docs/demos index 7ba3395d8dc86..d5b9659fc0ac4 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit 7ba3395d8dc864acc19d493976d0831a6afcd1ff +Subproject commit d5b9659fc0ac4e6de37867db878b1d068e2c9a76 diff --git a/ivy/data_classes/array/activations.py b/ivy/data_classes/array/activations.py index 8bc0745927d91..6cb2aeaf68ddf 100644 --- a/ivy/data_classes/array/activations.py +++ b/ivy/data_classes/array/activations.py @@ -166,6 +166,7 @@ def softmax( /, *, axis: Optional[int] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[ivy.Array] = None, ) -> ivy.Array: """ @@ -179,6 +180,9 @@ def softmax( input array. axis the axis or axes along which the softmax should be computed + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out optional output array, for writing the result to. It must have a shape that the inputs broadcast to. @@ -195,7 +199,7 @@ def softmax( >>> print(y) ivy.array([0.422, 0.155, 0.422]) """ - return ivy.softmax(self._data, axis=axis, out=out) + return ivy.softmax(self._data, axis=axis, complex_mode=complex_mode, out=out) def softplus( self: ivy.Array, diff --git a/ivy/data_classes/container/activations.py b/ivy/data_classes/container/activations.py index af9e04c0f6f15..938ea09fc50fe 100644 --- a/ivy/data_classes/container/activations.py +++ b/ivy/data_classes/container/activations.py @@ -538,6 +538,7 @@ def _static_softmax( to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[ivy.Container] = None, ) -> ivy.Container: """ @@ -562,6 +563,9 @@ def _static_softmax( map_sequences Whether to also map method to sequences (lists, tuples). Default is ``False``. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out optional output container, for writing the result to. It must have a shape that the inputs broadcast to. @@ -589,6 +593,7 @@ def _static_softmax( to_apply=to_apply, prune_unapplied=prune_unapplied, map_sequences=map_sequences, + complex_mode=complex_mode, out=out, ) @@ -600,6 +605,7 @@ def softmax( key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", map_sequences: Union[bool, ivy.Container] = False, out: Optional[ivy.Container] = None, ) -> ivy.Container: @@ -625,6 +631,9 @@ def softmax( map_sequences Whether to also map method to sequences (lists, tuples). Default is ``False``. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out optional output container, for writing the result to. It must have a shape that the inputs broadcast to. @@ -651,6 +660,7 @@ def softmax( to_apply=to_apply, prune_unapplied=prune_unapplied, map_sequences=map_sequences, + complex_mode=complex_mode, out=out, ) diff --git a/ivy/functional/backends/paddle/activations.py b/ivy/functional/backends/paddle/activations.py index dabf30aec9d22..42fa990c6177b 100644 --- a/ivy/functional/backends/paddle/activations.py +++ b/ivy/functional/backends/paddle/activations.py @@ -97,7 +97,7 @@ def sigmoid( @with_unsupported_device_and_dtypes( - {"2.5.1 and below": {"cpu": ("float16",)}}, backend_version + {"2.5.1 and below": {"cpu": ("float16", "bfloat16")}}, backend_version ) def softmax( x: paddle.Tensor, @@ -108,12 +108,13 @@ def softmax( ) -> paddle.Tensor: if axis is None: axis = -1 - exp_x = paddle_backend.exp( - paddle_backend.subtract(x, paddle_backend.max(x, axis=axis, keepdims=True)) - ) - return paddle_backend.divide( - exp_x, paddle_backend.sum(exp_x, axis=axis, keepdims=True) - ) + + if paddle.is_complex(x): + amax = paddle_backend.max(x, axis=axis, keepdims=True) + else: + amax = paddle.max(x, axis, keepdim=True) + exp_x = paddle_backend.exp(paddle.subtract(x, amax)) + return paddle.divide(exp_x, paddle.sum(exp_x, axis=axis, keepdim=True)) def softplus( diff --git a/ivy/functional/backends/paddle/statistical.py b/ivy/functional/backends/paddle/statistical.py index 4d0297b1b7aac..0f294cde0e285 100644 --- a/ivy/functional/backends/paddle/statistical.py +++ b/ivy/functional/backends/paddle/statistical.py @@ -77,9 +77,17 @@ def max( paddle.bool, ]: if paddle.is_complex(x): - real_part = paddle.amax(x.real(), axis=axis, keepdim=keepdims) - imag_part = paddle.amax(x.imag(), axis=axis, keepdim=keepdims) - ret = paddle.complex(real_part, imag_part) + const = paddle.to_tensor(1j, dtype=x.dtype) + real_max = paddle.max(x.real(), axis=axis, keepdim=keepdims) + imag = paddle.where( + x.real() == real_max, x.imag(), paddle.full_like(x.imag(), -1e10) + ) + # we consider the number with the biggest real and imag part + img_max = paddle.max(imag, axis=axis, keepdim=keepdims) + img_max = paddle.cast(img_max, x.dtype) + return paddle.add( + paddle.cast(real_max, x.dtype), paddle.multiply(img_max, const) + ) else: ret = paddle.amax(x.cast("float32"), axis=axis, keepdim=keepdims) else: diff --git a/ivy/functional/backends/tensorflow/activations.py b/ivy/functional/backends/tensorflow/activations.py index 9fc9325977165..6fb69cc2c7fb0 100644 --- a/ivy/functional/backends/tensorflow/activations.py +++ b/ivy/functional/backends/tensorflow/activations.py @@ -15,6 +15,7 @@ import ivy from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes from . import backend_version +import ivy.functional.backends.tensorflow as tf_backend def gelu( @@ -51,10 +52,18 @@ def sigmoid(x: Tensor, /, *, out: Optional[Tensor] = None) -> Tensor: return tf.nn.sigmoid(x) -@with_unsupported_dtypes({"2.13.0 and below": ("complex",)}, backend_version) def softmax( x: Tensor, /, *, axis: Optional[int] = None, out: Optional[Tensor] = None ) -> Tensor: + if axis is None: + axis = -1 + dtype = x.dtype + if "complex" in str(dtype): + amax = tf_backend.max(x, axis=axis, keepdims=True) + normalized = tf.exp(tf.subtract(x, amax)) + return tf.divide( + normalized, tf.reduce_sum(normalized, axis=axis, keepdims=True) + ) return tf.nn.softmax(x, axis) diff --git a/ivy/functional/backends/tensorflow/statistical.py b/ivy/functional/backends/tensorflow/statistical.py index 53fc8b5bb57e6..874be24f1dad1 100644 --- a/ivy/functional/backends/tensorflow/statistical.py +++ b/ivy/functional/backends/tensorflow/statistical.py @@ -26,7 +26,6 @@ def min( return tf.math.reduce_min(x, axis=axis, keepdims=keepdims) -@with_unsupported_dtypes({"2.13.0 and below": ("complex",)}, backend_version) def max( x: Union[tf.Tensor, tf.Variable], /, @@ -35,6 +34,20 @@ def max( keepdims: bool = False, out: Optional[Union[tf.Tensor, tf.Variable]] = None, ) -> Union[tf.Tensor, tf.Variable]: + if "complex" in str(x.dtype): + real = tf.math.real(x) + img = tf.math.imag(x) + const = tf.constant(1j, dtype=x.dtype) + real_max = tf.reduce_max(real, axis=axis, keepdims=keepdims) + imag = tf.where( + real == real_max, + img, + tf.experimental.numpy.finfo(img.dtype).min, + ) + # we consider the number with the biggest real and imag part + img_max = tf.reduce_max(imag, axis=axis, keepdims=keepdims) + img_max = tf.cast(img_max, x.dtype) + return tf.add(tf.cast(real_max, x.dtype), tf.multiply(img_max, const)) axis = tuple(axis) if isinstance(axis, list) else axis return tf.math.reduce_max(x, axis=axis, keepdims=keepdims) diff --git a/ivy/functional/backends/torch/activations.py b/ivy/functional/backends/torch/activations.py index 53aed823a1593..0e01beb0f7131 100644 --- a/ivy/functional/backends/torch/activations.py +++ b/ivy/functional/backends/torch/activations.py @@ -15,6 +15,7 @@ import ivy from ivy.func_wrapper import with_unsupported_dtypes from . import backend_version +import ivy.functional.backends.torch as torch_backend @with_unsupported_dtypes({"2.0.1 and below": ("float16",)}, backend_version) @@ -62,7 +63,7 @@ def sigmoid(x: torch.Tensor, /, *, out: Optional[torch.Tensor] = None) -> torch. sigmoid.support_native_out = True -@with_unsupported_dtypes({"2.0.1 and below": ("complex", "float16")}, backend_version) +@with_unsupported_dtypes({"2.0.1 and below": ("bfloat16", "float16")}, backend_version) def softmax( x: torch.Tensor, /, @@ -72,6 +73,10 @@ def softmax( ) -> torch.Tensor: if axis is None: axis = -1 + if torch.is_complex(x): + amax = torch_backend.max(x, axis=axis, keepdims=True) + exp_x = torch.exp(torch.subtract(x, amax)) + return torch.divide(exp_x, torch.sum(exp_x, dim=axis, keepdim=True)) return torch.nn.functional.softmax(x, axis) diff --git a/ivy/functional/backends/torch/statistical.py b/ivy/functional/backends/torch/statistical.py index 04694a0bdca3f..1e31b8854cbb2 100644 --- a/ivy/functional/backends/torch/statistical.py +++ b/ivy/functional/backends/torch/statistical.py @@ -36,7 +36,6 @@ def min( min.support_native_out = True -@with_unsupported_dtypes({"2.0.1 and below": ("complex",)}, backend_version) def max( x: torch.Tensor, /, @@ -45,6 +44,15 @@ def max( keepdims: bool = False, out: Optional[torch.Tensor] = None, ) -> torch.Tensor: + if torch.is_complex(x): + const = torch.tensor(1j, device=x.device, dtype=x.dtype) + real_max = torch.max(x.real, dim=axis, keepdim=keepdims).values + min_val = torch.finfo(x.real.dtype).min + imag = torch.where(x.real == real_max, x.imag, min_val) + # we consider the number with the biggest real and imag part + img_max = torch.max(imag, dim=axis, keepdim=keepdims).values + img_max = img_max.to(x.dtype) + return torch.add(real_max.to(x.dtype), torch.multiply(img_max, const)) if axis == (): if ivy.exists(out): return ivy.inplace_update(out, x) diff --git a/ivy/functional/ivy/activations.py b/ivy/functional/ivy/activations.py index 8ec46b3f94ba6..1010b947a19b9 100644 --- a/ivy/functional/ivy/activations.py +++ b/ivy/functional/ivy/activations.py @@ -452,11 +452,13 @@ def sigmoid( @to_native_arrays_and_back @handle_array_function @handle_device_shifting +@handle_complex_input def softmax( x: Union[ivy.Array, ivy.NativeArray], /, *, axis: Optional[int] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[ivy.Array] = None, ) -> ivy.Array: """ @@ -468,6 +470,9 @@ def softmax( Input array. axis The dimension softmax would be performed on. The default is ``None``. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out optional output array, for writing the result to. It must have a shape that the inputs broadcast to. diff --git a/ivy/stateful/activations.py b/ivy/stateful/activations.py index b9977f6f17b1f..b75dd43fcce77 100644 --- a/ivy/stateful/activations.py +++ b/ivy/stateful/activations.py @@ -170,10 +170,25 @@ def _forward(self, x): class Softmax(Module): - def __init__(self, axis: int = -1): - """Apply the SOFTMAX activation function.""" + def __init__( + self, + axis: int = -1, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", + ): + """ + Apply the SOFTMAX activation function. + + Parameters + ---------- + axis + The axis which we apply softmax op on. + complex_mode + Specifies how to handle complex input. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. + """ Module.__init__(self) self._axis = axis + self._complex_mode = complex_mode def _forward(self, x): """ @@ -191,7 +206,7 @@ def _forward(self, x): The outputs following the SOFTMAX activation *[batch_shape, d]* """ - return ivy.softmax(x, axis=self._axis) + return ivy.softmax(x, axis=self._axis, complex_mode=self._complex_mode) class Softplus(Module): diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py index 19554c3ccc1e3..ef904c7854dde 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py @@ -735,9 +735,9 @@ def test_jax_soft_sign( @handle_frontend_test( fn_tree="jax.nn.softmax", dtype_x_axis=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("float_and_complex"), min_num_dims=2, - max_axes_size=1, + max_axes_size=2, force_int_axis=True, valid_axis=True, ), diff --git a/ivy_tests/test_ivy/test_functional/test_nn/test_activations.py b/ivy_tests/test_ivy/test_functional/test_nn/test_activations.py index 2399daf623170..ac23f384b6398 100644 --- a/ivy_tests/test_ivy/test_functional/test_nn/test_activations.py +++ b/ivy_tests/test_ivy/test_functional/test_nn/test_activations.py @@ -208,10 +208,10 @@ def test_sigmoid(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): @handle_test( fn_tree="functional.ivy.softmax", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("float_and_complex"), min_num_dims=1, large_abs_safety_factor=8, - small_abs_safety_factor=8, + small_abs_safety_factor=4, safety_factor_scale="log", ), axis=st.one_of( diff --git a/ivy_tests/test_ivy/test_stateful/test_activations.py b/ivy_tests/test_ivy/test_stateful/test_activations.py index f9bf437ae759b..e1fd840ccde11 100644 --- a/ivy_tests/test_ivy/test_stateful/test_activations.py +++ b/ivy_tests/test_ivy/test_stateful/test_activations.py @@ -671,10 +671,10 @@ def test_silu( @handle_method( method_tree="stateful.activations.Softmax.__call__", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("float_and_complex"), min_num_dims=1, - large_abs_safety_factor=8, - small_abs_safety_factor=8, + large_abs_safety_factor=10, + small_abs_safety_factor=10, safety_factor_scale="log", ), axis=helpers.ints(min_value=-1, max_value=0), From 9be7e9351628229b0c8658393a4eaaa3cfbeedc5 Mon Sep 17 00:00:00 2001 From: Nicholas Sebastian Veron <69800466+illegallyCrushed@users.noreply.github.com> Date: Thu, 7 Sep 2023 20:06:59 +0700 Subject: [PATCH 049/127] Add frontend tensorflow meshgrid (#23183) --- .../frontends/tensorflow/general_functions.py | 10 +++++ .../test_tensorflow/test_general_functions.py | 45 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/ivy/functional/frontends/tensorflow/general_functions.py b/ivy/functional/frontends/tensorflow/general_functions.py index 11fa0a9437816..8cc476dfe4a28 100644 --- a/ivy/functional/frontends/tensorflow/general_functions.py +++ b/ivy/functional/frontends/tensorflow/general_functions.py @@ -285,6 +285,16 @@ def linspace(start, stop, num, name=None, axis=0): return ivy.linspace(start, stop, num, axis=axis) +@to_ivy_arrays_and_back +def meshgrid(*args, **kwargs): + sparse = False + indexing = "xy" + if "indexing" in kwargs: + indexing = kwargs["indexing"] + + return ivy.meshgrid(*args, sparse=sparse, indexing=indexing) + + @to_ivy_arrays_and_back def no_op(name=None): return diff --git a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_general_functions.py b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_general_functions.py index 9e114650dcc4f..b703153a9896f 100644 --- a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_general_functions.py +++ b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_general_functions.py @@ -1151,6 +1151,51 @@ def test_tensorflow_linspace( ) +# meshgrid +@handle_frontend_test( + fn_tree="tensorflow.meshgrid", + dtype_and_values=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("integer"), + max_num_dims=2, + min_num_dims=2, + min_dim_size=2, + max_dim_size=5, + ), + indexing=st.sampled_from(["xy", "ij"]), + test_with_out=st.just(False), +) +def test_tensorflow_meshgrid( + *, + dtype_and_values, + indexing, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + dtype, arrays = dtype_and_values + arrays = arrays[0] + kwargs = {} + + for i, array in enumerate(arrays): + kwargs[f"a{i}"] = array + + kwargs["indexing"] = indexing + + test_flags.num_positional_args = len(arrays) + test_flags.generate_frontend_arrays = False + helpers.test_frontend_function( + input_dtypes=dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + **kwargs, + ) + + # no_op @handle_frontend_test( fn_tree="tensorflow.no_op", From 75811a27fa0744b75811537a39c4b0fa88d7c349 Mon Sep 17 00:00:00 2001 From: Eddy Oyieko <67474838+mobley-trent@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:24:21 +0300 Subject: [PATCH 050/127] Setting default device to cpu (#23201) --- ivy/functional/ivy/device.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/functional/ivy/device.py b/ivy/functional/ivy/device.py index df875906cd6cd..dd35ffa45aa82 100644 --- a/ivy/functional/ivy/device.py +++ b/ivy/functional/ivy/device.py @@ -831,7 +831,7 @@ def default_device( return ivy.dev(item, as_native=as_native) global default_device_stack if not default_device_stack: - ret = "gpu:0" if ivy.gpu_is_available() else "cpu" + ret = "cpu" else: ret = default_device_stack[-1] if as_native: From 4d6cfaa91374d862d57dff72e788650a7549a5e8 Mon Sep 17 00:00:00 2001 From: Abdullah Meda Date: Thu, 7 Sep 2023 17:38:54 +0300 Subject: [PATCH 051/127] Add(torch.mvlgamma): Add mvlgamma to PyTorch Frontend (#22286) Co-authored-by: NripeshN --- .../frontends/torch/pointwise_ops.py | 16 +++++++++++++ .../test_torch/test_pointwise_ops.py | 24 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/ivy/functional/frontends/torch/pointwise_ops.py b/ivy/functional/frontends/torch/pointwise_ops.py index 2cc35bf32960a..e04dddf76454c 100644 --- a/ivy/functional/frontends/torch/pointwise_ops.py +++ b/ivy/functional/frontends/torch/pointwise_ops.py @@ -384,6 +384,22 @@ def mul(input, other, *, out=None): return ivy.multiply(input, other, out=out) +@to_ivy_arrays_and_back +@with_unsupported_dtypes({"2.0.1 and below": ("float16",)}, "torch") +def mvlgamma(input, p, *, out=None): + ivy.assertions.check_greater( + p, 1, allow_equal=True, message="p has to be greater than or equal to 1" + ) + c = 0.25 * p * (p - 1) * ivy.log(ivy.pi, out=out) + b = 0.5 * ivy.arange((1 - p), 1, 1, dtype=input.dtype, device=input.device, out=out) + return ( + ivy.sum( + ivy.lgamma(ivy.expand_dims(input, axis=-1) + b, out=out), axis=-1, out=out + ) + + c + ) + + @with_unsupported_dtypes({"2.0.1 and below": ("bfloat16",)}, "tensorflow") @to_ivy_arrays_and_back def nan_to_num(input, nan=0.0, posinf=None, neginf=None, *, out=None): diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_pointwise_ops.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_pointwise_ops.py index a502749812473..0577ad06d862b 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_pointwise_ops.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_pointwise_ops.py @@ -2153,6 +2153,30 @@ def test_torch_mul( ) +# mvlgamma +@handle_frontend_test( + fn_tree="torch.mvlgamma", + dtype_and_input=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float") + ), + p=helpers.ints(min_value=1, max_value=11), +) +def test_torch_mvlgamma( + *, dtype_and_input, frontend, test_flags, fn_tree, backend_fw, on_device, p +): + input_dtype, input = dtype_and_input + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + input=input[0], + p=p, + ) + + @handle_frontend_test( fn_tree="torch.nan_to_num", dtype_and_x=helpers.dtype_and_values( From a6aac6c3a1245bc00255c66d1ed7284b642615a1 Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Thu, 7 Sep 2023 18:33:06 +0300 Subject: [PATCH 052/127] docs: split unify and transpile (#23203) --- docs/overview/one_liners.rst | 3 +- docs/overview/one_liners/transpile.rst | 42 +--------- docs/overview/one_liners/unify.rst | 107 +++++++++++++++++++++++++ 3 files changed, 111 insertions(+), 41 deletions(-) create mode 100644 docs/overview/one_liners/unify.rst diff --git a/docs/overview/one_liners.rst b/docs/overview/one_liners.rst index f2e0e3e788c92..0b11527b0b132 100644 --- a/docs/overview/one_liners.rst +++ b/docs/overview/one_liners.rst @@ -16,7 +16,7 @@ One liners framework. .. grid-item-card:: ``ivy.unify()`` - :link: one_liners/transpile.rst + :link: one_liners/unify.rst Transpiles an object into Ivy code. It's an alias to ``ivy.transpile(..., to="ivy", ...)`` @@ -27,3 +27,4 @@ One liners one_liners/compile.rst one_liners/transpile.rst + one_liners/unify.rst diff --git a/docs/overview/one_liners/transpile.rst b/docs/overview/one_liners/transpile.rst index b10cc40e1fcc6..701be359e3165 100644 --- a/docs/overview/one_liners/transpile.rst +++ b/docs/overview/one_liners/transpile.rst @@ -1,5 +1,5 @@ -``ivy.transpile`` / ``ivy.unify`` -================================= +``ivy.transpile()`` +================= .. @@ -58,24 +58,6 @@ Transpiler API :rtype: ``Union[Graph, LazyGraph, ModuleType, ivy.Module, torch.nn.Module, tf.keras.Model, hk.Module]`` :return: A transpiled ``Graph`` or a non-initialized ``LazyGraph``. If the object is a native trainable module, the corresponding module in the target framework will be returned. If the object is a ``ModuleType``, the function will return a copy of the module with every method lazily transpiled. -.. py:function:: ivy.unify(*objs, source = None, args = None, kwargs = None, **transpile_kwargs,) - - Transpiles an object into Ivy code. It's an alias to - ``ivy.transpile(..., to="ivy", ...)`` - - :param objs: Native callable(s) to transpile. - :type objs: ``Callable`` - :param source: The framework that ``obj`` is from. This must be provided unless ``obj`` is a framework-specific module. - :type source: ``Optional[str]`` - :param args: If specified, arguments that will be used to unify eagerly. - :type args: ``Optional[Tuple]`` - :param kwargs: If specified, keyword arguments that will be used to unify eagerly. - :type kwargs: ``Optional[dict]`` - :param transpile_kwargs: Arbitrary keyword arguments that will be passed to ``ivy.transpile``. - - :rtype: ``Union[Graph, LazyGraph, ModuleType, ivy.Module]`` - :return: A transpiled ``Graph`` or a non-initialized ``LazyGraph``. If the object is a native trainable module, the corresponding module in the target framework will be returned. If the object is a ``ModuleType``, the function will return a copy of the module with every method lazily transpiled. - Using the transpiler -------------------- @@ -193,26 +175,6 @@ another, at the moment we support ``torch.nn.Module`` when ``to="torch"``, ret = forward_classifier.apply(params, None, x) -Ivy.unify -~~~~~~~~~ - -As mentioned above, ``ivy.unify`` is an alias for transpilation to Ivy, so you can use it -exactly in the same way to convert framework specific code to Ivy. - -.. code-block:: python - - import ivy - ivy.set_backend("jax") - - def test_fn(x): - return jax.numpy.sum(x) - - x1 = ivy.array([1., 2.]) - - # transpiled_func and unified_func will have the same result - transpiled_func = ivy.transpile(test_fn, to="ivy", args=(x1,)) - unified_func = ivy.unify(test_fn, args=(x1,)) - Sharp bits ---------- diff --git a/docs/overview/one_liners/unify.rst b/docs/overview/one_liners/unify.rst new file mode 100644 index 0000000000000..a07ac2fbf5b40 --- /dev/null +++ b/docs/overview/one_liners/unify.rst @@ -0,0 +1,107 @@ +``ivy.unify()`` +================ + +.. + + ⚠️ **Warning**: The compiler and the transpiler are not publicly available yet, so certain parts of this doc won't work as expected as of now! + +Ivy's Unify function is an alias for ``ivy.transpile(..., to="ivy", ...)``. You can know +more about the transpiler in the `transpile() `_ page. + +Unify API +--------- + +.. py:function:: ivy.unify(*objs, source = None, args = None, kwargs = None, **transpile_kwargs,) + + Transpiles an object into Ivy code. It's an alias to + ``ivy.transpile(..., to="ivy", ...)`` + + :param objs: Native callable(s) to transpile. + :type objs: ``Callable`` + :param source: The framework that ``obj`` is from. This must be provided unless ``obj`` is a framework-specific module. + :type source: ``Optional[str]`` + :param args: If specified, arguments that will be used to unify eagerly. + :type args: ``Optional[Tuple]`` + :param kwargs: If specified, keyword arguments that will be used to unify eagerly. + :type kwargs: ``Optional[dict]`` + :param transpile_kwargs: Arbitrary keyword arguments that will be passed to ``ivy.transpile``. + + :rtype: ``Union[Graph, LazyGraph, ModuleType, ivy.Module]`` + :return: A transpiled ``Graph`` or a non-initialized ``LazyGraph``. If the object is a native trainable module, the corresponding module in the target framework will be returned. If the object is a ``ModuleType``, the function will return a copy of the module with every method lazily transpiled. + +Usage +----- + +As we mentioned, ``ivy.unify()`` is an alias for ``ivy.transpile(..., to="ivy", ...)``. +So you can use it in the same way as ``ivy.transpile()``. In this case, instead of +getting a graph composed of functions from the functional API of the target framework, +the function will return a graph fully composed of ivy functions, allowing you to run +the graph in any framework directly. + +.. code-block:: python + + import ivy + ivy.set_backend("jax") + + def test_fn(x): + return jax.numpy.sum(x) + + x1 = ivy.array([1., 2.]) + + # transpiled_func and unified_func will have the same result + transpiled_func = ivy.transpile(test_fn, to="ivy", args=(x1,)) + unified_func = ivy.unify(test_fn, args=(x1,)) + +Sharp bits +---------- + +``ivy.unify()`` has the same sharp bits as ``ivy.transpile()``. You can know more about +them in the :ref:`overview/one_liners/transpile:Sharp bits` section of the transpiler. + +Examples +-------- + +Below, we will define a function in torch and try to call it with different native +arguments. + +Here we will define the torch function and unify it: + +.. code-block:: python + + import ivy + import torch + + def normalize(x): + mean = torch.mean(x) + std = torch.std(x) + return torch.div(torch.sub(x, mean), std) + + normalize = ivy.unify(normalize, source="torch") + +Now we can call the function with different ivy backends: + +.. code-block:: python + + import numpy as np + import jax.numpy as jnp + import tensorflow as tf + + # create random numpy arrays for testing + x = np.random.uniform(size=10).astype(np.float32) + ivy.set_backend("numpy") + print(normalize(x)) + + # jax + x_ = jnp.array(x) + ivy.set_backend("jax") + print(normalize(x_)) + + # tensorflow + x_ = tf.constant(x) + ivy.set_backend("tensorflow") + print(normalize(x_)) + + # torch + x_ = torch.tensor(x) + ivy.set_backend("torch") + print(normalize(x_)) From 7cda0c8b705ba13e2a94f30a2a038c3c1e10e34a Mon Sep 17 00:00:00 2001 From: DHANUSH N Date: Thu, 7 Sep 2023 23:00:47 +0530 Subject: [PATCH 053/127] feat(paddle frontend): added repeat_interleave (#23139) --- .../frontends/paddle/tensor/manipulation.py | 9 +++++ .../test_tensor/test_manipulation.py | 37 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/manipulation.py b/ivy/functional/frontends/paddle/tensor/manipulation.py index ae2259b53edac..f4f355275dce6 100644 --- a/ivy/functional/frontends/paddle/tensor/manipulation.py +++ b/ivy/functional/frontends/paddle/tensor/manipulation.py @@ -77,6 +77,15 @@ def gather(params, indices, axis=-1, batch_dims=0, name=None): return ivy.gather(params, indices, axis=axis, batch_dims=batch_dims) +@with_supported_dtypes( + {"2.5.1 and below": ("int32", "int64", "float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def repeat_interleave(x, repeats, axis=None, name=None): + return ivy.repeat(x, repeats, axis=axis) + + @to_ivy_arrays_and_back def reshape(x, shape): return ivy.reshape(x, shape) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py index be36b2a116f1c..95faa889aef59 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py @@ -8,6 +8,9 @@ from ivy_tests.test_ivy.test_functional.test_experimental.test_core.test_manipulation import ( # noqa _get_dtype_values_k_axes_for_rot90, ) +from ivy_tests.test_ivy.test_frontends.test_torch.test_miscellaneous_ops import ( + _get_repeat_interleaves_args, +) # --- Helpers --- # @@ -445,6 +448,40 @@ def test_paddle_gather( ) +# repeat_interleave +@handle_frontend_test( + fn_tree="paddle.repeat_interleave", + dtype_values_repeats_axis_output_size=_get_repeat_interleaves_args( + available_dtypes=helpers.get_dtypes("numeric"), + valid_axis=True, + max_num_dims=4, + max_dim_size=4, + ), +) +def test_paddle_repeat_interleave( + *, + dtype_values_repeats_axis_output_size, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + dtype, values, repeats, axis, _ = dtype_values_repeats_axis_output_size + + helpers.test_frontend_function( + input_dtypes=[dtype[0][0], dtype[1][0]], + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=values[0], + repeats=repeats[0], + axis=axis, + ) + + # Tests # # ----- # From c5d124bf52d921094eb40243eb621b1a5498846a Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:13:27 -0400 Subject: [PATCH 054/127] Update requirements for xla compilation functions. --- requirements/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 818e9c52d7a2d..e14c24869e34d 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -10,3 +10,4 @@ google-auth # mod_name=google.auth requests pyvis dill +astunparse From ea76eb45712ea169bb4ffc4aeef8644d46b78cc8 Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Fri, 8 Sep 2023 11:06:24 +0400 Subject: [PATCH 055/127] Added XLA backend to ivy , Allows native ivy code compilation via the rust_xla engine. Still need to refactor design but this is an early POC. (#23257) --- ivy/__init__.py | 6 + ivy/engines/XLA/__init__.py | 13 + ivy/engines/XLA/rust_api/Cargo.toml | 30 + ivy/engines/XLA/rust_api/build.rs | 69 + ivy/engines/XLA/rust_api/pyproject.toml | 12 + ...ctivations.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 544616 bytes .../creation.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 325584 bytes ...lementwise.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 644280 bytes .../general.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 239864 bytes .../layers.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 1808272 bytes ...ar_algebra.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 300288 bytes ...nipulation.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 770384 bytes .../norms.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 485480 bytes ...ctivations.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 837136 bytes ...ful_layers.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 965920 bytes ...eful_norms.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 426784 bytes ...tatistical.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 310816 bytes .../xla_core.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 5265424 bytes ivy/engines/XLA/rust_api/src/c_lib.rs | 6 + ivy/engines/XLA/rust_api/src/error.rs | 89 + ivy/engines/XLA/rust_api/src/lib.rs | 1821 +++++++++++++++++ .../XLA/rust_api/src/wrappers/literal.rs | 287 +++ ivy/engines/XLA/rust_api/src/wrappers/mod.rs | 508 +++++ .../XLA/rust_api/src/wrappers/pjrt_buffer.rs | 76 + .../XLA/rust_api/src/wrappers/pjrt_client.rs | 189 ++ .../XLA/rust_api/src/wrappers/pjrt_device.rs | 58 + .../src/wrappers/pjrt_loaded_executable.rs | 74 + .../XLA/rust_api/src/wrappers/shape.rs | 218 ++ .../XLA/rust_api/src/wrappers/xla_builder.rs | 288 +++ .../XLA/rust_api/src/wrappers/xla_op.rs | 922 +++++++++ ivy/engines/XLA/rust_api/xla_rs/xla_rs.cc | 1402 +++++++++++++ ivy/engines/XLA/rust_api/xla_rs/xla_rs.h | 324 +++ ivy/engines/__init__.py | 2 + .../ivy2xla.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 827304 bytes 34 files changed, 6394 insertions(+) create mode 100644 ivy/engines/XLA/__init__.py create mode 100644 ivy/engines/XLA/rust_api/Cargo.toml create mode 100644 ivy/engines/XLA/rust_api/build.rs create mode 100644 ivy/engines/XLA/rust_api/pyproject.toml create mode 100644 ivy/engines/XLA/rust_api/python_frontend/activations.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/creation.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/elementwise.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/general.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/layers.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/linear_algebra.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/manipulation.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/norms.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/stateful_activations.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/stateful_layers.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/stateful_norms.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/statistical.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/python_frontend/xla_core.cpython-310-x86_64-linux-gnu.so create mode 100644 ivy/engines/XLA/rust_api/src/c_lib.rs create mode 100644 ivy/engines/XLA/rust_api/src/error.rs create mode 100644 ivy/engines/XLA/rust_api/src/lib.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/literal.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/mod.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/pjrt_buffer.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/pjrt_client.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/pjrt_device.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/pjrt_loaded_executable.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/shape.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/xla_builder.rs create mode 100644 ivy/engines/XLA/rust_api/src/wrappers/xla_op.rs create mode 100644 ivy/engines/XLA/rust_api/xla_rs/xla_rs.cc create mode 100644 ivy/engines/XLA/rust_api/xla_rs/xla_rs.h create mode 100644 ivy/engines/__init__.py create mode 100755 ivy/engines/ivy2xla.cpython-310-x86_64-linux-gnu.so diff --git a/ivy/__init__.py b/ivy/__init__.py index 0aee1dd56c163..b816cc74a62e5 100644 --- a/ivy/__init__.py +++ b/ivy/__init__.py @@ -787,6 +787,12 @@ class Node(str): add_array_specs() _imported_frameworks_before_compiler = list(sys.modules.keys()) + +try: + from .engines import XLA as xla + from .engines import ivy2xla +except: + pass try: from .compiler.compiler import transpile, compile, unify except: # noqa: E722 diff --git a/ivy/engines/XLA/__init__.py b/ivy/engines/XLA/__init__.py new file mode 100644 index 0000000000000..7eb231f181414 --- /dev/null +++ b/ivy/engines/XLA/__init__.py @@ -0,0 +1,13 @@ +from .rust_api.python_frontend.xla_core import * +from .rust_api.python_frontend.layers import * +from .rust_api.python_frontend.manipulation import * +from .rust_api.python_frontend.activations import * +from .rust_api.python_frontend.norms import * +from .rust_api.python_frontend.stateful_layers import * +#from .rust_api.python_frontend.sequential_handler import * +from .rust_api.python_frontend.general import * +from .rust_api.python_frontend.manipulation import * +from .rust_api.python_frontend.creation import * +from .rust_api.python_frontend.linear_algebra import * +from .rust_api.python_frontend.elementwise import * +from .rust_api.python_frontend.statistical import * diff --git a/ivy/engines/XLA/rust_api/Cargo.toml b/ivy/engines/XLA/rust_api/Cargo.toml new file mode 100644 index 0000000000000..1d77407f33527 --- /dev/null +++ b/ivy/engines/XLA/rust_api/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "xlar" +version = "0.1.0" +edition = "2021" + +[lib] +name = "xlar" +crate-type = ["cdylib"] + +[dependencies] +thiserror = "1" +libc = "0.2" +num-traits = "0.2" +num-derive = "0.3" +zip = "0.6.4" +pyo3 = { version = "0.19.1", features = ["extension-module"] } +ndarray = "0.15.6" +numpy = "0.19.0" +half = "2.3.1" + +[build-dependencies] +bindgen = "0.64" +cc = "1.0" + +[dev-dependencies] +anyhow = "1.0" +clap = { version = "4.2.4", features = ["derive"] } +fancy-regex = "0.11.0" +rand = "0.8.5" +serde_json = "1.0.96" \ No newline at end of file diff --git a/ivy/engines/XLA/rust_api/build.rs b/ivy/engines/XLA/rust_api/build.rs new file mode 100644 index 0000000000000..db625ed20570d --- /dev/null +++ b/ivy/engines/XLA/rust_api/build.rs @@ -0,0 +1,69 @@ +extern crate bindgen; + +use std::env; +use std::path::{Path, PathBuf}; + +fn make_shared_lib>(xla_dir: P) { + let os = env::var("CARGO_CFG_TARGET_OS").expect("Unable to get TARGET_OS"); + println!("cargo:rerun-if-changed=xla_rs/xla_rs.cc"); + println!("cargo:rerun-if-changed=xla_rs/xla_rs.h"); + match os.as_str() { + "linux" | "macos" => { + cc::Build::new() + .cpp(true) + .pic(true) + .warnings(false) + .include(xla_dir.as_ref().join("include")) + .flag("-std=c++17") + .flag("-Wno-deprecated-declarations") + .flag("-DLLVM_ON_UNIX=1") + .file("xla_rs/xla_rs.cc") + .compile("xla_rs"); + } + "windows" => { + cc::Build::new() + .cpp(true) + .pic(true) + .warnings(false) + .include(xla_dir.as_ref().join("include")) + .file("xla_rs/xla_rs.cc") + .compile("xla_rs"); + } + _ => panic!("Unsupported OS"), + }; +} + +fn env_var_rerun(name: &str) -> Option { + println!("cargo:rerun-if-env-changed={name}"); + env::var(name).ok() +} + +fn main() { + let xla_dir = env_var_rerun("XLA_EXTENSION_DIR") + .map_or_else(|| env::current_dir().unwrap().join("xla_extension"), PathBuf::from); + + println!("cargo:rerun-if-changed=xla_rs/xla_rs.h"); + println!("cargo:rerun-if-changed=xla_rs/xla_rs.cc"); + let bindings = bindgen::Builder::default() + .header("xla_rs/xla_rs.h") + .parse_callbacks(Box::new(bindgen::CargoCallbacks)) + .generate() + .expect("Unable to generate bindings"); + let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); + bindings.write_to_file(out_path.join("c_xla.rs")).expect("Couldn't write bindings!"); + + // Exit early on docs.rs as the C++ library would not be available. + if std::env::var("DOCS_RS").is_ok() { + return; + } + make_shared_lib(&xla_dir); + // The --copy-dt-needed-entries -lstdc++ are helpful to get around some + // "DSO missing from command line" error + // undefined reference to symbol '_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21' + println!("cargo:rustc-link-arg=-Wl,--copy-dt-needed-entries"); + println!("cargo:rustc-link-arg=-Wl,-lstdc++"); + println!("cargo:rustc-link-search=native={}", xla_dir.join("lib").display()); + println!("cargo:rustc-link-lib=static=xla_rs"); + println!("cargo:rustc-link-arg=-Wl,-rpath={}", xla_dir.join("lib").display()); + println!("cargo:rustc-link-lib=xla_extension"); +} \ No newline at end of file diff --git a/ivy/engines/XLA/rust_api/pyproject.toml b/ivy/engines/XLA/rust_api/pyproject.toml new file mode 100644 index 0000000000000..e0dd83db89328 --- /dev/null +++ b/ivy/engines/XLA/rust_api/pyproject.toml @@ -0,0 +1,12 @@ +[build-system] +requires = ["maturin>=1,<2"] +build-backend = "maturin" + +[project] +name = "pyo3_example" +requires-python = ">=3.7" +classifiers = [ + "Programming Language :: Rust", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", +] \ No newline at end of file diff --git a/ivy/engines/XLA/rust_api/python_frontend/activations.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/activations.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..d8a48848a7c25f46a5f7ba4353e005a9a82c2343 GIT binary patch literal 544616 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

t5UoTzhGDsZzdyHzQnLbcx#>b~K8yo$ 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�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

?45YKx-v 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

TEU%VRoqTc7Ue(pm}*q4aw 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

Q7BK^FKcd}6RJG-C!8jnc(ae4U7 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

iSFGG-Fa@AMh z+XaCxycywAKusE9UmHoR0*I$D!4G22T`YLaoD31@%Po5H1dnJifn*W9auiE}5Wb*8 ztI>Z2@N8GDq3+pN;hswWPrXaIie7E7`|kySoCN}dC?vIG@sBp7Qt~f)TD69YjO}A? zYC5-3G9;B-&cg`!J`=t1P9rjbF?kf1x&nikz_mYNo%H~%RfRhsao>8N?IGkb64#?yk&BA20`Pb`6z zecbNfh?`u&*s4u9-{Bv4-v)e{4HS@5f+Eq?au8SaQE_a_w%hNZZ-exR6WqAw``^QK zxq9+RV|)@pUeGov9GnU#?;aoV_3~%2<#yYn^$<3vg1|qW>-vG0bM2x&WFFz6eIX`( z->AEPTm04wDb_ubhm)`^=K}!hVtkL0dDV5;ZQOy+X#anl?Rex#|dk6ck1v3 zQu=Bg;s-zcuo_eB$7=JSY+mY+>;WYfy7B4?R1w-Gy6Bs6t-Hy9?3-~u#I1XB?e}cO zt`)Z5vmw|2Hf3ji!rAf+i1O?&%yZ=1Uzp{{qg2bD&M&OFonKj7_Qke*9-EtW#NK)< z+3)B^hrRWAOd@{1Kz1J8;IR82$AGRjUpgK%%g&a4xh{L&x8Szh$@aujQs3>_{Pyi4&Tp*t6u~)K+m4wQf z41jONbFezDylUOsShB&o?`e{niL+Ztz8rkq*>Cxx{hhw%0#t06iPi=>2LlJi8b#EJ zYX-Z-%Fs?N_zSi2Z@^LW>OxT^XV1D8@F7{uWf@bfn8JFc+%H;7FI5d zsIqI3|90q;Pg@~#oMmy$ee!5#qhAm1XLm0yCo)3I{|vvI{R3aG@WW*Uw|2vg1n<}2 zV`>G#zt!OVY7uMa_qmJ%E_kR*@zU2VD07wlt=&I`riZY z3?evZfde*~2oK$s7uedV!b1;QTe@Of_QOMu+gpD}qa9rjpS+8PXoH8ge4H!W^YQ%- z=h05!7Xj~Xn~LLp3);HitNDk)veU^NaVc6+!1+z1+`7^7*VeG9FuuZs?0jcCOe%eCiz_?WPc?c*g zJ+trL!g!|Prnzi&iMn_t68eXJmGOg}dH zIn?$Ek8YQKM?K(=i1PZCplC}z3xOoo+u118&%b44w1>7n3FcUirK1q!Btn37DcFy( z(>4I1#;b6}0c?0bNhhg4Ks>}4!Fw5!_&-Y=zd6DhJbr*awdypH`rhq_C}iHpVN!uLSZah#kslFy;Fg zqsO7_4wP$$a`QgOBp$M0V!(j1IdM;c_eD&4ZlBdWGCVSm+2?B%>K6PM1&(rNpD7@P ztWJ`Z4y<*Ta{J66K@WTmX6GZXpydNuPKE88Y~I&CO~(*re`rr34{#y@xtgu*W-x>7 zv?M;^OClvWPO}p^@*6m+=zX-JCo#w%w!@H-G{ch3=w_Tv&2K`6b#IZgOu^iC2jB&P zP1-p-ohITgCTlLu+j`P;++n6E`|)i$|0oiG!4Y3y1@jjm+Jwa|h=3&gW7*~YvL(0{pxStVT(L)47BUsCsj)@P1<=tDyh z-;L2p_CHRmv2Q994ofXC16B!6#F}Zxdhe!t#Y}e*(VYQ0eSc9ya3@5V!TVr#x_{Ej zeVa{ed;$dLE;Czq@6&-(U;Gqoj?z5gd9hCpmas`_MlU*H2I1cs!K)cgqFAPAML0}G z+77pYd~#q6;u|K~7#zg*Ko)cizQoT9ys^aEqYdq6QTzR(UAa~cKERB^#={;j2kX1x zJo}3n|HU(cU$7NI^2Fj_Lhu$wL$R6WPoz}vdKOOQ(ge8!IFH-`oU)H&a5u9rFwBj? z5^P>f2wny@>M^v7d1KFOyK`#neuz7j;eLqgJMM>f&%s*39+^T$Vo{qOWU$*{IqfKc z*W7LA?_qJamtYEaT6a(f1ky++vapWG@63!QBwpm^d78`uVsE%P#K6hv=^%ay184j} zVy48bn1+I4zSdiSKmrO21+7gCz%Px^GcFgs(a9gnIH?!5Ylpa4;l~dUy{lh*K)Vud z0PL=CK8Re94!0Aw%}paX&l=l%)FuJZ2nEMllk5~VG9{|G8FV~6wG>=^*{ z-xqy~+SqM21uLRx-37Qd(QUR7_%*oTpkvNMsMBrs9PE^Io2A$KqS^O%?XCaB+Qw~G z?s=Q#HocZYC%kWi^lD0QHI7VuJ@EU;@XxO7zK;Z8OTAsck5D4hJ+>T~I^0L{HnTa! z?F*}CKImO-(|8J=E=Wa>!GE9A;`@WDOz>6?lY!IdWrKq*+z<3awDofg?Cfa zku0RgGPGZcq~SMq{|=gNyk|KT(r3f(5kMNkuWv9GgV1)>5W-5hXQxSsg%nQ8n^APNA8j)QK=r`hAZA((w zod7Wy4kH$t?SH$SXp+P2&NfUSH?YOslU6ZqnKVpA6r z7L_0+_4s($Pw6FPn>zLpQVKO<{W`h@vpEqNmgREc5-_0V)m7G1( zNdZItZY>Z@f&VCf7v4jOp01P2-`xfg{;%clWbG=I1HAuP84VgBwx*!jPdznjda z?7x}6+xs96(G%tGknhF?uR0Fi_zU^F*kL#}wESHz0QE&g^31Cu=kLlfra6CC2;BcT ze^)kSsT{N2s4-oKr{dxkpUTS2fPf47{qvseH>I`l8|ck3t6?#?{a5I}y7wf6sP{_b;F2wryL{9Wbv|5pBP z+I^b$u>4&L7;~@r%1O0f$lrYn0Z%f2cO8*J8J@p;gZ%#F^LMYk!S5}`{N3dUaS{29 zpTgGL1QhJPrsbzZ{_c^%2y*(uN!AU)evC+G4-jg>n{dS*`Ma@LK|S+#hl%5ukJ!LH z@^{3|xppYnMabWc(#OmI5yC1ATTH|5p|9KikMnn(uS2GvHn7eT`s;b#P-sN`MY)Zh*SEP@^`Zb zk)He2U7HR0yAMg#6Xx%(W;}l}e>dW8T8;lYe;2;XM0bMx-FcYd2>H9I12vZ^g6X+? zHv^|0qpua7eEx1Z#5L#d%9&`9^LKfM_WyeRj{6fSb>jTpehmIg`MZmu5LOcV?jSwW zYtjCTifPFdiT1x{Julm$*`f#IVsOiyn}8|mxAX+r`$2h;jO4_a8%cp`>H&SveFt1hcV}S z996ZY;6fm2<5ZJDQ`0k3xYYUbDaYRVne9&bf$xr3=O1M1dzJmn1z zu+-EQ)+sJ7t*NQ?mU=5|YZ{7+9o4=DFOAsX@j5VAsiVBI%Fs;F2%)*7MFV# zl=`Z?CqpiA9UF*OSst7=NCJtvy925&tvGbmhKd~&qI zX>BaTR8(VzE6HlY{0nO9f9BGT5yNNUjTZXo>qWRd+*tD@CW|&vI)AvLug23@$6epN zSai;g#TAuoF;rENMx~CzCO9@$hVaO#v)pb+y{7@vIu=)=$>()=>gyqFWesSjF|y(b za1}0R0bg7r%IZDL=SMgyO0h1g0G88I^VB#htLtj(F*Tzd(>skf}c zQSYlUbt0ZKDoX3&?-RJT-ljSaU&{@e2&E2&)a($Mp7f(-w79+&25hLj&U3!Q3tz1F zaG7CNjJKe^wt5uTeAKzZy391#$%>1~?cisn*jN}0a~2mf)%AJj`|0q}Sq%=_M(b)D zU^sYvmA>OZ|DJm+F(@u$8W#VmIKBA7(E`vGPjPL1G2h6f1wOK9aanDRx4ss0iAsaF zw8mRpT3=t<1U{7wXspNdSJrrluQqYlas9OU9$nYeNaJ4TsjqD)uBu!_#P~E;l~R8J zNm6}nt+%GOT!*#(oEq((hKkZU5B5WDG+_?FUQYvTrO_1^H^9Y>Fkgq=?bW4~HE17S zTF!Pf$AYTTg$)i`ZWEd&iVag5*S&cWs6D|5~>a!RpVtSZw256-+X@56gPNE>&q&@tc;%n-K+WM$412UtyySvnFPO2 z8{Tlq@bZxoY0DO~=C{~jF+=6jd|xFtn3@Jj%(++w5Kn7?h{MZA4=?ZOBOu`3r+K9` zft_HETCBRo^_5gn5Js`0_<_(n^q3@>dI@IBrGiHGU;5+QAJsXZP z{U@fDo5JCeXi2&eK9_=m&cRLJo@$}E&~J1{=V zmr*`|a_A%Ba3{(tlmj5&P`vq+htiF5FUqI!PTYVPjF0z7vrxW|vIu2gyfpqO$_G$( zq8x|Un7^cUlqt}w3NNl_p?n`@5lT0{`fvzkUwok_Hx}cdoQd)Qd_AWEW#7L-AC$MF zT#mBpZ}?SGl<&V74xf(~Eyt~f+$e``fL{ z17DN_#B^G&n=V-z6D_CpjkUF7o>GAyiho^RJc@waQbOXygp|qlK8tP5(q%&~Irmqo zXHi$`pND^|n!;iFK7#fk{9OE73H%}0N&66u7yq*G6qg>8(1&o#@NbL>_W*F|z-fG` zT#0|@14r`Fhj5$lPX=x=A@HHG_u}8*fXhWG%}sEWCD<7L5Wx3=&k^_%;E4x)r!X2m zhKH8yL*-E55`nvzFjpodwpizZT9R_{FAHsB&~`UU$(fLNi*-^$N=wwFg!F}R2`Q5j z5}gUQ$$iRE&tvsTeXP>~OklwHK5Wb-=-Uo|#S>lj8Hc}Q`v-u#hA`t35^uLUIbX*T z&TD*vEw7JDuRHrpWai^@-M+#a2mkakOqGa@f0u4wq%o+aCx}`4f?)^zVuEz$#I7jk_sKPzEP7c=B`|S z+6y4lRXzKT*Y(dM{iE{G8+vtHz=5Hv(6=4?$_J=Razf%YaS1l~MIH*88n)irLF2|= zQ$RG#=gL^K8=A{Ntwj40v=2u~vfoLv-w}oJ+oJOm(r%Bz__y@ROUP=8%}eO8STXfk zKtU~#=;BQ1L-wUN&`Yq7wW3b)Sm9O>NJ;~kf;Ial+URF5xb5@E4>7C6G6fzF2Zz)| zOZy?cGybn=X+Nn0?aQETBfc237DKxF&|haCYHvsT`Pf72dbYE9r}mX-UlO66?6VW? zWtiJ%Xnx=qcaneJLH;T11OF8E$xq0Q@>@=19&{zWhGO5_v=sX{_F2Bh#aisNMLid* zEoRIYnq|<=gj{r1n8zJY^U^)8oX~8EIs|vm0?srsQ^*f!KUz*><9h|hJ@RSbI)SSv z-SDAxN@vUYI8zo70&6|7G{MI9Kj8hqv-M$}%kX5sL%@Ft{98n?+aG%iCX;NQh%@ME zoJsVXSER=sR_rgv^$lmbHZCD;a)JX6!Iw9DxCSWWikJIDg`pwgV1G`Q*9UT>xeRVd zBH*7NW3Ip#N2iN5)kZ#jJM9a%&{}RGpN7*BGfaTStlosl?^6z5JHhMamErKaHZK1! ztdEHaby2m}6Hdd#K2bYPJV9odQED6HY>>c8m3zgyojm z*hq^}PE2UGz;-9tPbc+>vc-Vn3PA~3;LCF{Lf8el|8);^jW=T3t&?AgvAACE8eU^!K zy5rDCYybAAa4o@yD7MCj!Z7-Dih*%mV4oDa@8E;*hJ7Xq`6$k!58apPBgl{#W1uA1 zN|d9c58b`!BR~o7X0wm&3|?w@Te86OLXr^2(MJ^ec=)0ylYg&Z92T%=%!Wu8{+27sLQ$58vQCuEqHGsshbUKyvQv~hMcF0FL!y-MD@^oB z6s1Fy>7vXPWuYibL|G@wW>L0_vO|?NR-mA#Q36gh%#N2xuPr-Wr-;3MA_3Lf;SgoID04+wD9RF1)`_xNl?NR(2h z&|j1s>i*lYkJquT*{8dO*R*wR#C#XXupYm#lD5cNzrXH2_D|&!ZZcp(4I5d70AF}ysUPhX)NP-oJ z{@OX@h(!1w;)?`-sf06VH_eB}w)7An_pJH^@6noO^ zQM03Ipw1viG^?hDlLWQ#zrKWb(00j9`6tI)wRnbY5F>XswgJMKPl`$$c%J5Ss` zX~Kj{9BH%W0?G;IFjR~2f%@g&x31i$p-292R;s= zqP7Bj0%ngO(5{()J$3_p#W?CEN$gP#%IHfOD6z*asA?u+>1V))XY%$$Ui|FuUGWwv znqh60=lkJmG4XUs8iET$uJC!Shjlt`2{F3{Wdadpi+vkMbyRfh`zWGGq!?Q-nOZEi z&+I@=qq;SA&RK-&wI3+!R?KRza|ZF2n8wS1+KG!xue71~nJXzaItK4+O4cV4g7rFg zAhERmbqMO`4}P3@*mi1twc&T*82~xGylpv11vK9@ljqfN>1SinCFl90ugZ-H`$ymjQAd z{nm4=lL3WsLmU9cGoUE0^8x^Q1KS~IN!(1xA3Jft?*LT9-3|$3WhQl9+!HWMtcwBO zxL;=jnA~R#2pZ!OVWrrD{$$Bz??z!!_~{Y;j2V$@4P1CQu_E*8T&uCWfS9dm6i_?-qjN#TZ$*rG3)Wa z-3^1Pe^PujWEf_(KMTlaBaTUSLY>J`_TTn}jZ*ng!@w`$LN3nruz$kE zyx#9j)W@>Abvu@#Jte6UjI6t{2JM6Cf2NkKPh;`fhYYxr>Tg0M`)LFIO!W)l6^V-m ze*!B+r($616KG8I4xoBebo8hZq)GHP%uCX(Xz3Rd#m0#zNvlA^=Fftkt3sln|HBD$ zfwI4cvHEv#*&f24)Bllvw0iBUh~`h6<^!VnGpFewn!hlbq+14|-rvHN$-zS@>-eF& z!8Ce3{tQ@zuyDC0=@r|Jv6ziaG$(b&>_c6O``!UyeLwPwl(;XjB$75Hk`j)%tME5z z!x;pm#U+D7(w4-v$Sb7By#?)(wlcD;xOuQ#(zbr@q9r%30gEzed%wPrSdLo)o=H2B z$HA8iZx8?#arM|el6DW83ZO3T2z)td zPr@|xX^e}(tR%hNFV{wEcM$=58MkF|*{J~D=}$SA_PC`mP|~~oF9xtYZVj>iV8Bdp z>xlboEP$>gS~x4>t~nRLKBo4{xU13ueBR#&6;{PP+z&u7ei6p$j9ZMqNeBAXf!nsY z$4Tl#OzoXb_0+s$^A(0f7=VHx-w z_K>9B9IUepEGMUmvoLpQv<%!g8eqJoKOJGsmVq&3VLNYKW*K-7wI*5y+>0fP$DO?| zg}$ZxGmq6QmQJ-N2^1FSAtt-P)>Q+)N8JXlurW;n{TobwfFuslRJRTp zh(D_bo`bs0Mz6~;T5?H7%R5*P!#S;M2D%y5bd8D}s+&rXelY^1FWJe>Y__FDx(q|! zu8~UC2LM`M9=MzlJVXSv9-rwZD8RzEu1#Le2wouqlJp-M!C)entaD*w>njN#F{;mq zY8lW!^`H_Wb&{plC&a-=Y_>%FWu)|D{y&qxH5a5C?U{^ptVTMm2dQMe02vrygtn!@ym1)L73=oI z?W~c0)ny3nOhUIR9I@6N$)B^vFY%Wdi#85E2<^_2)qgJj{5_dw*?KG1rS(;N3P^0W zGw_#LgLaqh9)kJ%SU=X+>|{9WcL->#uP2jJS<7h9HSTfAOK za_mX|gbhRgX9gRFc8bBYqPoYDtkY6K`gU>x+HAG~_{&JsbW-M2_TyO3)*pt@GW=hp zy$5(yRTDRU?{1dt-pyt=yPMsGgb;clSx6zIZVD_(fB*qP5mW+#0wPUmN>vfW1{MTG z1uQ5kU~j0rqM%r?zjm=8U;_(+4Zq*aoO=np{{PSSJl}nuNoLNOGjqWRncM%Af@bWa`YAGGVF~=pp0W z7>k+(3Ymx)6T5;aa*@(ZV+74P#Y}WCdSeC%l(?z$vyASUAWBn6O|CJW=IAmeiVY2Q z3zRcaWgNyPH4x(()WJq%5L-{0rz`9?p}Mv>HhqCAZv(_Qox|~${bm{vu`^>-7i1SB z)s};GDNyZO!UdM$Z!4M)Pcmyb7XyyosdqBRefZ0rvfJWf3?`F8kelk%v^JS~V4`bV zGNwSfKMGvnYlT$J_#S;1n979Hc!?(SX-xPG`XXjvIuj9NNEL_~Ok^7Mv|h~Q6*$Wn zo(AGV?~mx$T%#Br8@PyxVxte4W)>4w#(@Bc*|NkKf1!^9b2z8L_?~tLb6NCA<3}>| zJSLiqMQBpsVkRaUe`9_RT*Ab3BTPLtpNYA~5AgrM0+zPe7>)rDSjhdc+~`Vr7IDr> zqn2`(aG5p6G3ugAnOJYULoL0GiF=KE$^Mr!vCSwYgDmBiK50BoTc0a9XNPeyErZLL zc-c5e+l%E)ylEIz=1L|$FfxlltYBiFF^2?P&BQ_D2V%R1i6cgsntd%3$5Z!ZfVhqc zYzU^Jn*yu24cHLuB4gdadDsx_rB>X?R7BTopVN-uCj09!Teu-`v#SpCi7}0~5NkZN zlxW8FG!WKu0jFUn;ub%xAwFX+ImN9^M2!0|DFoKB5i^Y(Qh8e{tt45-dfIQ@&N;b8 zYue=9;iDy?*zl24Y+%t<#$+n9k)_pXwyqemfjjNn;e6pp;BMDas@EmCNW4eY>*^E` zn^e8hsTubMXi>rv{Sdj-eRjIbvn5lR`y;mj$4vnKMrg{|4&>yd)sjeL(_|UW3_R$f z-QXX550?k-+1TSsgG~k?0>IkQkn(cIw5ZCYclNoI9 zq`jdrG7CHN4u0BsW3z(UDcCXP6F95WSO9^+PASWg;WIiBTNblLAZHZGp%2JsrTTre ztu!9S5K9g4R#r2LV3^b(Pi#(O44gGJRZWJAAv86_Igt!{<0LiAWilajBMEJT^(!mn z_R;o~g@%$uXvTRHF497tq?~rBTn64a)I!Ng#UOkvC*)@rJL?=RToPdP+^Ms*a7E&kP|kQgxpZ;d%U;uic>IAA16aC(0v;t_lfrmRS^;1l8J5wGB%3zX_E09M~l-P1s}b+_ZGY!&&JL*A6i7hCaQ8x^JBVf$51}a*2p>1XEGE z)1c^0re=HG3Ce4~4rOeIQJ>c5`swGKYzGKG&#w`_2KH<{G38gx0^V<7^VZWu@z+q? zdb%i1$k^x@hjzB#1;b|C&k?u;TZYztDAtOM-9p>bwD#`ypkEVOZ>6};YDS6P;vpoZkH!q9rSF6n>gn&JxGnuPcyNN|8IJVr;6N;j7z0nVftNYio!nxvPNtGv9z(?``nUwgJKE2Xfk_3ePckTl>y} z&qCun_yr$b0X!i1Zt!;q3hu#z(^1Lafe!5`_4T%a<9CwL=a@CaAs$R>qpd& z+uhk5I)g9~cQ(9~5z#!fV4gVH23s;5pfk>`Bgy+JdM-=p-i!XtQuThfD=ihGBdd$U zH3t64I=VF1(Z%VbMLA-8jK1t5>rf_E_MV_Z_HHQSy$!p&u3l-}-Ynp~1RsDMT-V-$ zZ$SrkjSKz~=EAOn1g|Ir-XQqObl`&pzbyuQsNh2}?{;kzdE)nBV|YKLf4lHbC%!@aAp<1>Xbn2a_4Mbp?MgAosRoQ1@V}+%(RFPXxoM z8m2|3vjzUL_zpm1i^Vq=beF@VW=o?jN~_dd=I?3ppJDOy9p!0vBsSXq1iPlw7REaY z*6HrxN`;HNhh49rDEC13i0Xka&|lqK`YFR_jDc5oZ{;UvjTpV*Ro&B=$TW)3qVDNT zWEpF)Ds*qnp`=_igz96Pg2B{1!#)FexT<@mi{6tnzJ(KZZyVkVTr+Nj$8>MUaiwB} zV_=r=rTZMi=Jh@_5VCI#NrVPAYFBVYzws_P|{)z^=aBnC~tUd=NFyt>7&i;^`2Q zTgkgC>^X@qx5_@B${fW^Ffq5kuK>4X#y6OPa_fWBk)at+!ijSScxj87WjuxvojZ_; zT;tVZ5QDg8#l{RG8hm8wD#HoOO90p!I}o+HuOR6P&Wm#Mj9{TZ*F4} z1!$Vk5UPlcDv~?Qz74oHUWzZJ7m5Skgv#cP7re0x@CnlIx%o-1N2$^jkU z^!FNXQ%+@I5Dfi*X8Q#Hio9uegD;72r;{?AY+~<149_Cj#o0QeeZ@)PH^3O|*d3!o zFG+X43=?ukl(beGfUB@CE6E6+2aOS9Ki0RBHi7TqpP9xd@ZJ(JLzYnqJC?NNR$wl` z#9GphiDKgr)`gPxJo{G}cfmVLI&e;%;UTt;+$#;nam-{Tos6$h*+%0qys)G*6T^(P zDImIX83aKvC6?rHnI@w}7KkVl{pe=3*N z!h1C;5pzoV8ByRa#%;$j_$z|JZfJ3*F&ABk#}btl&hH?^*jA}&mDMTq-~|LkRrX@S zX#~)fmAzZ;Kn`wd(J7TR!FSOm5#tc-TUpDk%QQ+b<5t!&(ZN`aZm8_bM3(Uk3|Bdj zi5z1D2^iwp1!=j)Qv9uK^#6ql6dV6w38);#M3qqn*Q^|_`eZsLv&s=nG#ES4oXSzk z@?p%am7|$xGA_n6Sa~KB6OH-klghE7EzmICm`)X)5Pl8BN`wAZp2uu!j67JrauU~V zz2PC^e9pPocn7;{|COtFzjD0ur14tijf^9# zG=%K7I%yOtk5|=g_g0}JL&0OPToyisqS+>)-zp)6@}0@}%W=ybATsAsk8vzo_5rTp zkmsw+^fiLRc!GK;o2#lB{}7RrN*Q>p;v^BaLg=ZC+6i~9Mb~6jcK6*&C3jJ8^yJ#( z2{ZLZ&sMxb8Vjg5dUhhhXS_+ZFHWZ-6bm_*WG2H2D@*N!JDuc_c+L$qh?H;&^_0*t;A&G@f@!u&Z7T1>qER(Ocs65fSIGv`_88WS zkTW$1R@*D6UC8B)qmP`8rNG1yO0iRj#9M>rhSV1BQ60G2!Zl(h z4XG{MD&klBUOQYRq^fuyMs-M4aREFnr1rfOiwd15)m?%CQ7r@4`vL}3uWU)5h6%4% zj^HCvwpUc}o|s>HhtlW)zxOOOHLkXucVjx~Bh!iZ8n|A~&$4{xKu&Eh*^VB-gi+gD zaDN4GwN2fKrq|X=`m3m0Eq**3N#0b*tnDj!CQMn|Pw-(-URy7?jnW4Q{uJ>K6r4Wu zQ9DTRO;m>l!S`cItQ{=)2#loKA%Y)3_t!QGK85NzT<{Xuymo}(gE81@M+)8vwyHft zaN4KUjuQM_s?TV_AHqpGfsQPw>TL!-<05kG`m#B=}yk`DDSTQvJ^t{9Y^|wNnHi zL-H>W+))mEs^G^l_tef1ydU+~Ou=6z{6fJ~2){`1d&thS1V4=JSM6-UXJC=3og?@_ zEHbtDogx(TzD4z)C-_UmbFtu2YRe^pcg8$WJ74gps4WWwe-)EO?Lxt~!2fF(34RPi zuJ&@lQ^=l61#hByUM2W(jQ!fH1+OCc*9blc3sUX1f-fXrx=!#LDSf5jmsSE_CHO0( z_j?Tv!dGy2+_1W&;Bv39lKm%~5n)P2Md%uaP`9Nj?aa!VMPj(+K@ z>pZABE{C&vZD>(Hf8ZwEkT{)}l5z1d{4or_k++6AIDv`ZjG^peBgiQppWyP^7+{ zvl>ZKvb`#K3@P;;TGbG*@m3IoY%pwzFA0}Y!S7I?fxb*i=ZMcE%^2<^hBD0K16#MHbnmZlo`D&R z+kFW;vk-E~(pM+ADu8vJt^rNw2L@d)Bs`l8=j=L_@XB16&zHR>6Je&+2?Hr7lAQ_N z`ppUH-=Sie+5M}SDj=$D_Kk^5)ezNAOWBL*0jv%GMKy9h$N1G(IQZ_=WzQrQT+x?c z1N~|TpVoeo6_No};g9f<23K_Wc#=N{CaZGz1IlIR;8!PQ8!(F1|h zh@Im2U3TbMiLNKRAO=A{Qa% zJ246M(w1k_!w5Ytc`LJhRL?#lWleTw3s5yetoB8Zg>Ys&)ytCJ`55q+IBGF9yl2WYPDJ3B!E>5(+ z1paOpgYfA~5}n0eQTi^b_oc$GWv?gdGNBT(ABCsrmnXI*Mw0b2isvM?MB){R9sdF0 zvinq*2hOZQ@~es5<=uy&z-x&Pm%Zu`wE?|LY;^8`dl%F*{6D8ps%YD)f<9PT|c zxl?lyZDDP$oKs6k0iN?LrXv0Q!~kWu>?9_^+9~SS52U#+xD%w1h?yF&Fcj z{y}1ZGF*1^2y#vbEUNm4rikgLl;N^BG*=fjc@wpS*1&Uq!LqJ@mKdN6 zm%YxcaSo<5{d2R%#b)w#%;YDVi#X2|fu}GdNW_Dw;60capbVG2$?T{k z_@#cxOs-PNxmmh?B+>N{?3cZRn)*{Bhtss|oiy|OER-|*eVWaF5z3bx!v0AARj5ez z#Fn6r3YD4tN(j_%LSbF;6*x~{vOtf4sjcaoAMR8{sxxNp}zLe*ts zjnnjGp&GI`VHwiBLXFJ+n1+;3sHW_vFe&IMLQTy6+XKok)b#8pGeHG}nwvchKBxzU zTAY21=F3!}mS?|6GDAYG%x+8bTUe+y+2gQF(IY~w&z?*@)KaK>v)`ijwGwJu_6;3C zr3v+9_R&I6=|b(uewg&N7V72f1vJZN2=!+6^)#=y5$c2Nr8I^!h1!=*_pf?ep$=wW z(GyfVp^juvp?bC#>UiioYHbIh&=?z4t)q}mJ+zYgrIV08J@kA5$j(AW^bozIr)LS7 ziGxDZNNX3T{TA}5(YQs>OP#6YB`*8EL+Be^(U)j0t#XFGM6%OKnK{!i_3J-5gA^rp z*)_$PQ%;t@-KCQE9TWjMeX&*6*BL5#hf4NP;aIL37!dj=`Q8e5Fp4yneTNe2p?L0i zlg*~(Tt~HhCaGm3vn@82Y$Mz5N@`6ZR8+}SLidmx&C-4?r!P6 zroCda=~_-U`T9%2;8VT)0$q<2nTcJmFooHpbiuZB|Td>2~s zrP#st8{E4jm^uz*IH@G$8jaP+D8wXHBC$%%=!1eK601xw60p-Rkys_d)*-a3q?NrZ z$~c`Ap7T&~I3h@L((QwN6PWVH5naBCs*?9Hjh<+FtK}f< zZ&U7EqDzT8I)?hTTe_1nwY*0lRNtG%i?2?vwB}z#bPs;J)#;>7Vct9%D%%xLTa10; z*`Ah9nfdrIG7(k0XUw}2cNF?fij}5`Xmu4*R;L+EOri(ayyA0Z?E!aPdIryXPdh53Z{B3#R(2NC)l#hQpwl#g#7Q%VgPt&pNHAchg4<-JV% zuyLxDBfu>A-~RMOJZvP@~|X(fbeJrB@wHznfPHWL&s{^}V1>+7EG zgQ)hGG>)f4a;OvG*L)Ry1-m1$bU8?R6{-$Uw3!555a~dPw}X2HplCM@lnWvyRGhv= zO5Y_do`e}tpBmv^aZk+QtpLUCDREka{q#lA;>T%VOpgTVrt>o-yi19ncSItB z1!TB$(1rnk;&IT5M7HK+WHbVbXZbiWlQ_?F;S1G(l5u0l<2EOvmrkz5`FYi9yS5T5 zseWO^KNRD&>`G*vWgr#>D4P#rAtsrrfO2Astwu^t5(3bG*qtCQ2Qr(8Z6Km(a~nYH zSr8uqd4q^OAf}?r&jeKDOxCn7lxp3=qHJAMV?x-`8|zouSg>{XLL#875yTllMi5a8 z;xZshh$scI70CSnt@6K6v z<8naRk05pdc>z#PY%%8rs6YVUoJ30Xr^*l?vLUK`5Pg-Bs%z6p>f{txIU%tOA@7&e9U`gSAeZ7h#m!$-2h@akShSO^&n{3-vZDoX#RfI5@%u%3+SU(W6flMJ{7>I9y&|{za4d=Oi} zvKdfL0%BW{auC$lfY^2r9k4oQ0AjCzm<41SpmfWtc(K${tqYSF z091Vq;<&|^3qD(s%~kd@l20K24?y*=$}PWPw`9?_i^MiIt%*bzr#Lp7qKmO%?*U-Z ziHc9xRyG$s6ZumC)jnlA5#5_=onnbLv4H48Kqtk)wcm`Q_X2uT?L(Fd6T@W4m(`NJ z;C-Fcbx^#b4hbt&(|?hvM~in=v&%n7=%WwTbNlE+^gM_wC0z|FSJ!q>vuB1~^Qkk* zTE`*(XVP&+b8A(1Q5tD(i&v@QNd^fwJ%!z5fYk~g?L!uY9bIF}P5QKiQ~UliB5v zNp8|U4XX}-`|?7oiqpYo8TTyYp8=@eGFRj@bCU&@==CHTZt|8Xnhqn}V2Zxf68&a# z(QhIDbrSvBDWa>$O|G^?Ync#jx(0nLHxa-!US)~R1&>wZKFF^o*msIpBm|T@v_uD0 zk5>fsR<+qboj|~DH`ZWfRMK%^gld2%2dNdX+dary0_m3k$|)!I2vS}HwFeN}0pb@R zhXED;pdkmWN}3pUE_~_tgdKay3p}qOK!CyD1)$Zuqzb%2l8_BgvdzNZM%z4cSsSVy zpE65C5YNf{i#dN0WpU4k6_>89&qNEZi#V233#jLZK-EA1+tK919=L5YJ6?_a<$#(_ zN)Gk>JV+povoYzmog=jnkEoz-Gg)mGW{y^UWyJBLss2TXr6>G6!p$;{|0!d2=^^kQ z0H9&C4VtAYgtZtI*5^cA6_schZGHS1*q8u#>qDndCKEwhpErQenF`+eL$}NX zGM)$zhzQmi15nor1ozFaR^K29uj%JR9DypxqQ0S*BDVp!Z%n=ftqDn%K@!?)7{2g? zBh7rA`ei=SMZ*r&JLrAVaBjr0#MDrZlBEDPzsZ-NnHX&e>9Vwq1uvawi|=jL~46`zR}E2-UOZeO0as<=&EVoc_H^AAt13Dt$Kl zHu?T^RR_uyPqb9f*g(r@UADtP>C&|~sr8peT=(^YeQ9038ZEgTz!UDzKz<~GCfsfv z@U#WM6Ydls69MHUfG6C0Ky3u@gu4&OCq&SM+o~g+1HfI|#ZpZ@L=)}-@+RuqM({KM zxNEyve7WGWjD0QgR{*MCnkP+YHsKblB3PG6G$!1>)G8AFGK#!tijG;LS2h=I>x5+= zJn<)+i6$E^AWb~))>#^MkOp(!El0^>09Sl~CH+Wq>9dhP6A-`mH0kViX2dgyu%og!A%TwC%tlshDToFn4+O-|Qe*23_OwQ0 zf#%HY;LPmQ1Kg~u*To`Q*G$Zs?VbpG?l*PKg0KroSKk>Bf0HUivkzT9v_Cc*8MlIE zEr3Vmt(IsL!$yEF{dwGs(UxQfc%K7QZ&tkGC^eTU3((@w1H!3;WdX4khN%TcVg;u47DYU> zOl|K#%3A=oc$zAsYbFMzd|8_R0Pk@CZ2rbf$)lZRjix578L;Nv5Kb0fh`)_kCTWA2 ztHsSVc7d9;XiVgF#*LDm7YWgGKb=NLA%{-#BP}WRQOF^a{7C2J;4S1(NkN1|bA=ot zDTs6;wkU^2dPry_`Z?T0FO)!sge@lEox6TfES~y(VUJEbn?io5cwe|H3+CsI_l0{? zB?|C+R+_$9BBK<9+8jk=iZI7MbBD7uP5A-hOB8<@z?Hco z+>4%L>cfiok>?fRK_t0LHoOl|#7(>+Jc<%GAmLU(@ulrhV3}z81qt+$?!XIh;0%cz z=B&%X$Oa6YFqIQqQ}Gv&@H9Zn>l8!z(NZ@(tq!f?VAJSu0R@|+zea~EsZg}s0p2si z9C3_#G@XON2w z3ww!8UbC10jH9@^miH&k1+`&58K8fLjQk6xP(lwng5ZnJDDi7>AaOYrFYbn20-*T5AQIPvT9bmuknkX2AbyQX)7OUh9e}poH7yJn$g$sB zLVR3*0}|E(if58{+#cc(bO2UK1QgRYOJ5&imsyL1n*gP48W06l?Xqi&X_##Yc?Lmk zS$|}`2cErvvI-DgFm~Dk%JM*517sul)NitVRP9#J)taynYZLs z)KM|mw0)%T_E4muACl=Q2%XfZ{|k3*`a&_fPw}3sMCj{+^`_AmhWeA$`XT;O0T81v z42>hBe}RPeD3Oi6Ff@&fJ`?lwRDc+LVQ2{ze*y{j1H|Zy#pnZjAif0Y;PWCP-f+Yaj-~v^Eesl%v ziv1V85ep0c4bg_wt30GTklr2^8`KJ=^d{+`%rPSRQ~8Hc;Ts6KJSv((Wn|&0U_Xs4%k!k`40BWmG4tbs*pgJfKGv4pu;|_WN z#6|#j&@{}}V*%wyow}_wt z=C8!`26MkgphY&BQE!I4>0WmFhzNFaX;61GM<< zr%TMTwAKF&`|7=<@3jl067Q+H=SCL!M^_sqQ!%JPiQuD0?3`0uj_VyFfe%D5o;q_ZMIj zG8Vvnzf8$Q;9OyCO#`9tZzuWG_s7706u^C-gRMsvfaOmDG65iczflSKx4z$bdfw@M z?^g`EW@1*~_YFmkP+h3+?}E0C0BvxIDqu$qG3IG^Is0@a{DX1aq`W*AtcF%C2WdYS zWeR!i$_ljdFs0KYm_zH#77EdpQGssp)~q#NRQ|@xnT2#_>pJy zIZUFuPdqrvt73|BXFT`DlA#|>b)EqFYQcI`+JuKS|C}NSTQu|Wkx;g~Q z07H3CwJP-tO1z;jZu|g4$snszCsLZ;ABzMGKM-4mb*T}OUR96tJAh)|(B78HpH*-S z!1jX@d2e;QymIwD65j_D(*ag}y}YCPCuZ}bfW{rDZ_NCS3B2kp)$mCWpi*U_8I0HsFElk}st~#Pa%OA9p^t4MNvj#IvTs86 zCNq2O<7W13mAwJkJ1iwbw3-dgGCpjc@pdzP$4!COv|4khS-BLLQEELzi?=yLbXvpl z2-wUVjfdO1P#A*NER07rIJVaxIpbip6`j2(nmuTPzm}i`IX*m2{Dr zG|5VuWhTwHl4hGp*I7w(%%qK0(mXTiF)Qg3GwEe3X}+2Cv6ZwyCH08jg}UpDQiF7m zh3-cer}7Z7qAf50cI&wRpl+tfg-0;Xm zl%JUDxErZuFXK;_1_W3EH4iAB2hr(skb#b;=y%PdD*augU3W5l*t07AX>k$^9c0E$ zO}iwOBxwCQS3&97sUDqVkfWTPT1k$g)jyt&oT5~nT*3U7IRAbmXnkFa(bA-%)Ldd; zfNIVHG_JQHdNLei{(4#|OHv)=-}{jB34lW?e~p3wlA-MbFR^easTJnY5TJUgs=S1f z8tH2}4_E?YBCrvR4FDDxMpZ;$6?k>9u)u4Pzk&qLI#u9wF#T-_tQ3JSgYiXEV7?`A zJqZL03$$VUpCEw~P8Ikjm|%KfgLd3GXY$~%PfIANFZ2P z;MvF@1*k4ORp1dYRb%dxCifPBYruG;De!hnU?%nwI#^iX+sJ=|1a>@CU;~)0w*$wc`|}T4NQs&VW|2OM^6{8%9=F082b-Nt_N| z9W308iO3%hs6Kk8IJ5Hp^k1FGLURbUgC>M^9H$wNip3NT(_3LI$(TuB1K z!UA7J{tgoO(kTMZI8TxAW4>ep9wrm;Kuo~HWy(E)vVQICag$+^US#(Px5p6rlPR#Vg$se@KyUtEqH870f$8cRfdfvOm2F z9i2}r_>o{0&5#_dIuaawGFWvacm~a_60ABBoJ=!iAqT5|3g$Dx!K$BveVE{2)lb0@ zOmML3Cn-~K4)$@s1bH8)jarC%L;cer?<*doI$%!!G?>SWKktw~4OWl{Essw6>+^+E z&qRy3y7Pl&%u8>_BDYT+Sfdyq2*b+@_@jr>qIGmDB?Oy55}nu&mrMyKrwHe zX9Rf{{U;KR0ZQpHH#rksx|U0S=LQ{{A($Vv6k=-0qrF=7`-+Ag^({ zhQZ7x7$?;zr0+){w~j5&br~1r&?Js&Qs{X~kXJYOf1fts94hTIzsrw7#+Sa1mTzv~ z&|nF*Zx(8DK0w+xG}xQk_cIa>0;GM7(!OaBavp#m^?aiw>Y9mBx6q}Z9dxXQ5^n2W zu)R*K@g%j<9>n&GcBZQ)qPck=6{A3J)#hK#HusjQNt=5IYfrYhcd(J_r`kNoYV*&2 z$mt<%&Q+RJ4bi9Tp_AL(BUnUj{tH<@1EkG8g4HB*9*Ru^NSh0#&A%bxM*z3E1_)hv z!l5v$&6PpN3Mk<=4~L^S(##s4qS#Jt^O@v-9aNhsi~G5QR8894K@BtR=MKRk&Dxx6 zwV9r_>d7LfK{a*;R}kszenCWp+ngLMrZz7_jphN)WS8~I@X-d&oPY-$K51+=JhUT# z8#_-)#1RLD!2$WwQ-h8P#gVujnG?-oE64P$;&5j@x&5~mS#aH~H+{<{FEE-pg)i2zS= zN3h1xWli_%K4?;^PXu~4SA8N-C8~RqmS0slyM?(~4kX)xjs|)@3r$nnfIcRg%-<{V zn0)K{ja8bCovP{BDVh!{O&Hz^vpVRHfV9mAk4y$&bUu;;jr#*KBV7*#?5X<$Y(??Z z{ekL}qjP^?U^7qsC1B1-H>5(&hss8(dtz42>0Jc&)DJ~)5tJ7IWORNQ;7*!}gsA|Y zTxrKlm##I@-!B4=M9AQt*$STf0a|qkQ!!mKxwfFF&u-O}v%t+w*&X2dK$@~UAZr`@ z#_mA#LHC~7l)M51a&|~l^eas{JCqzQx+B2ziI&#|H);A7rSmP5cT02gZE0@4EvJ}o zyQ#B2-WGD!iB9teci?q=>FXNLQRZ7Gf`3BmzXOQ*)`|J5F`{AsHs4vwGB~9O8T#gc zqXshAd<(&IF+i)HtC+r}wW)?i#EOTt}+J+GXRZE(2@-?19>r9BW-^PIXeNoMZVjbeYb&E2Mh0_ zzDNE+;-M|_W{c+tc&wdMr?EI63#fik<;%`VhWJ{mOfJd2Sq+1;!G9(I!{9Ay{2bNi z3s6b+ojKB0*(A*glv8uGyuXvdJ2oKUxV_+&u;AE$L;@+sH#RVVVtf)J92>Zp;>!|t z92;2H1wuGpI5x0`tfu81#z@h71Y{%k*aTBzk3c2m=aa-9fl((V_6STnDX~X@zJ@9i zdjzhb5{P4B%I_JF$R9^IixlxTt;WRxe%=}lr+_FCf0>#{R_X;`N0YhU;6poo9G}SzVh?qM0vpfw_hK<#)Z^B{1EKT z0``Vq0#L(9Fqe44AEmk#($`n@y?%Z-qwq@`h&TP&9Q*x{h_{5$@&T3%*5`#M|NFs(PcsG?V9vm?b2Iv-AAyLsHc| z|KO7%^Za9ppnlKybH7L3-5?_0FRungpQrW~O0A>W}9?=SpQ2%~9cy@}S(|@B#U)L}RGZS~&&Xg`xav8?{5I`PQr9yh_ z^m<4>eJma+{1lz;qljqsTxG13EVu|Ba83%(30lAH?ZGxG#iQpyLUdahsL?47I-#QV zE6)T~o|0y#Gm>(8r97pIPp|O&Q=T%Enj#y7@|5vJ)XGz46R!1Jfxmh?NT9b; zL_)iiUMD5AOX1@rBB5Q%cxnqvXqPgJ@F=~Tpyx`(qxXlH;E@!41XV;1e>_Rc8-^uc zPe_sHR`gAM+J+ zZ}Mw_$9z2CX!IZVS+4~i_wm@*@~+k);t`*8%MKF3kG>x9$!mywWB-V61RHJ!&G3)- z_<3pJV%i5j;^XI}QGU?&s1lE$!IwV%7@(H7j2e2EPo~?leDdNVi@(b^kj1l* zyL_X&pescDUA`%7*7K=n@0PC(id)?y1hs0DkJl`j9kwE>n-?G_S*6-^rKNP0uQzv? zJjL=2Wzqbc>-y%RulMnzv*^$ckaB~MA6RL5&$~b^P%`PADY4T6AICi8fyV;hKvqDj z;sW1UET4OCp_1R0=8r`_{+PX%H-c8^KfGf4)CX%;b^uo0Uh_4j!Rvw72g^0eB0pc4) zd`XMT0gJAB~PM=vCA*bO8p5y&1O|H%jPhF9-DgGBJ-#$jImF&C}>1^YFZ$+d0Ugl9+LU6m%qG*Y^Rf&)o*7v@D!p?-UgHONl(=$eQ4$@l6GMWNCU2| zw=H>xz1uV}^R}(6S8iC?q;0)p$fWt$+qLyxNSx&8?Zp7}(rkOLdaHNB3{CIqHBTl^ zL?Qj@WSLgN(@6qeKYluy&%yBP$4@8o6Wu~TRrl%S!PLTNYwDl>B+Crbx+N3*y|mG* zdxG%8WHw3-!(@M;#!>n@w*FzVJkTCW>)%JoT!-lGIJhoQ!2d z|2jELp9+so7b1fQSeZx4U-CV4i%yibMO%;(rjah+J zy(4+xAWtu{-XtudV*$mTY55!KNu+WgBjHuRnfH?akMMYiQ!D%Qa*zV*gg7$G-Yf~k^ zX<;hDYa6A?IPI12OHf;RT#%jYplZ?iy<`CIvKkdPc4PT4Ay_yrMXM4WL8~6E^5uq- z@2~}#0*L^yQj08xqtiob6F{{CgJoXRGLf2rzz62nJ&aw)bm{n+r z$DWL67;74f8D%g)3eC3)nV41RGLOBtStt|3%@5E@>H7&AR3V$zKu&v|Cvo&e*jp0O zRDgW@s&5v=s(|c5k>>!h0U#PMgH!=xBS9pf(@qdE0YoE+fq=@HAQnSPI>a^M`v#Eo z-GZjYj2u}|Q(21|;OYz~`x{lW9L?r@nLBgjqr!j#e|W~tfsfs=&C|?e6J!%6KNq~jd~#~+46)i(sA_y=+J4eTuKLh=_Pc!@Qj@7aJ`_oE^jIWxJ958uIr5$|*JWE>ivibsP};0z}W5n1KPY zA3zD%T#+o8H+r)h1Y& zYPx3o!j{DEYmWu*S=1nUUwbW(n*sd3_J4pp55TE~I#qo-8#4r&WbSxWguxT&RiOCf zW=zcR!Kn;l+Rchf*Gw!?)k#0@ciczKph)gPDE@|&S5U;t>`>jpd}g6P{f?ih5Cy_R zK!SkyE~Ui0t(y;SzHfY4W!SWpWVjQ4M-#avy$V%^f+YZc&}i~GG!si!3axv{Ch(q3 z%HBUs8PZ^~-<3y)2>>cGGG+s?2!gu2Z=@u*j0tm#Ews$gRFy5%jWf z%}PZqK+bzo?&Mc%wD>(Ldj+zsvC3-kBAxkh8>(K#%hzFp)t6A1!NNR}fOxDYv3f2> z(??)S9xAET9>t%$5(%YWBWu1&!70n`kn@5kvE4j6J_(}kH{{n`rx%NkFB(YktJMC=B3c7A@I8zXa@C zK|BQ3O@O}JLG)8aFe~yEC9Y?Y(FIm&3*b>TR&nW?iCLp+vOlHnV$_O8)iUre1;nQ* z{^p~qg1%TZ!xCg-s2N}SB!9~7B3AMCh@p+!+I_NkJ~L)858@TahnU?Zh-i9#cMW)6l?J_R4PSXWC$s1y<~|t zF;ldDq2D!|szcTq2GK)F{5z+Kr#XntZf4jt6SK^Ik>B;aDd=JdnM;DcI86|oN~(Ea;VC{ThDMd{Y#I1KNY66qbCaH1H{}56r)WuF-zkCkG&gu zoi$EHfhnZ%s(;hyScUr)m0{QRk;a3b#K`3+97Yzsow*87PC2o5NO=d;tAJP(L?Jq; zJ0MmHVg-;(iRc634C0eO&!c_4lOasW_w1&Gp> z_;ZJ<8TQ|~sM$|$*PJD&*;ZtgW40&;lx+mD7|2XOIkCl_MoRldn4AEy-5_=Vd6I~C zLF6pP-V+e}0>mdk-X-Ek5EYPJ42b;+Vil09h;Uwy{Rxmy0sL8vt^+i_@R1s-)H80^ zEmRNc-RYO&F(n}0L-924UH;h2tttceeio+0z2Wv8B0==AnY9pd1AsR#-vIdcK20$! zrfhMiCB?*&P0e4r9Tkg}Enb6^JtXO&(N?i3T ziix)|?<<10G5ebp-*{^AJy!9f&5GBAlpD}7@i({xR7D~~S0ZOxT#cZv5zT)DFUa1JKXkXQM`uI{@mFITyVcsb!_eV&dsB&eG zCm$Yw(W_@Eo8#=FuqGX8LT`jHP;A?p|{ei%?z0Ae(zmk~6@WPw-< zWEG&C%EZPa7$}IYgZkLlpzmCjdOYw#mpp1faj{(^V&}v4i zGPJdif|vX79n}f6wV$7<#b+ue`p^j&c+wwipQE*a1fJF}Rtz@H#FEWA{ONY_5T${i zdIi2~1&A+K{N?~7r{WFz?J5IjBgr-iNe-RNL1Up51&aYZ7EHbb&BRQF)>s$=-m^&A z1E(p&+^MvgIW|0Vfi_2yW16Y$3Y5Im)b{QWX^pO#SXdHHK2mxPyxU0|o#v&>Y#Oat z(zeGeBju8|#3aY3rndbk`Gu+NJ0-!Unb`kmYrPD2tbq96r)eWY;tNJ<=+FbKnw`o6 z6O-^;81NSw1294SxJnNoT~=}w<=%YFs;G%s)8!$LeJo_~blD3PsG>@Ia+-lLdubK) zrt_2rstz8!Sy+}N;Cr+l@B1XE6l{|qWCEZp3StA0I{;0!AndE&To7NSqVpMvPj||a#p;4quKjJ6QWNu-N{@T&ZD0LnP?Q(*#k^bB*3t8MSCzU8>t0>r;QO%Qb|3+g#oTB2(v zW(i76w*O%YDuj>%5)@bbX45P|t1Uq$W(f);+k3+k*+!!vWF!f?>;Fs8JC-05GksNW zoov6_6toCJ7LcI*|00M7{%@9`m3bH(9nc&qOauP`6x;~lfp6Z8>ehW}NcFBY@Y`I8 zsSprvqwZYI=2OqgP&BnUv?HXgW3qiBdXTl%pkyxqYcu(rnu!HY*R}|}3rL&m--aT$ zZM!v~oARNpeX{+1Q`=oAxzW^S@;NjU^PR5k74YsRZF^4B#?wqqxJC-lGI$PJxISDw*zP+H>;BIA~3i8iw!g6OTX{1W^yM9ITvgsBBU- zipyfLM0%3)WGXgKRN)iN2hC#LR5le`)vVZ*X2rId#dcW5=-n8)sMyOVi&fvJ(s`_@^El(@SiC-T{pHdkSd1jqx+z8<~w z%WJV?QkAi5N2rR09@j|lloJtiUx#-=Kn(*_CzeTVC!jsmK1Iv`5vRA#=^{h$09(9G z67ZM9$D@#0sbX3HbInprsB6s~DxKz^Yg9VK*3gf4(sem{eNS_t z;+QV`2agK_9yGY@uUo`O8pA&{E1U=cR*lTU2Q7XS{@fzCuunCTG{^s~@Shex3Lmxz zDjcWR2kD~1|D)Ay4KEb5Sp^%Cq&*MmVm=gE3<-~=QcoYeTDKX37#H*G=O@CCq z8c@u~0y1Tc?Lxv1O5`WUZ9V+_Iu+IN0(c|xq^d0f@(S~jA#mwkJ+8~Z#*RAzrk9~V=A8>r0$k{aWyqv%|_KfRy=&`_O&87-jw&7 z1GTY>b@i4Q+Bx=4NO5?=OJORP{oXI7#?g=b-M=^iERH5%ZX zn(Nu*mQz+dpf|Z&Q<-R6s?NQt0em+3K1J}i@$YlfZV)%Yo4bSWT4j(+P>XzgU;bJ* ze>JIaRv~Bd8BaNoc&)qcGZf27YKNTb+@aO5uggC25XpkpE1+7x-t8kn($qWLc1(UW z8|D3mKf2v52iS((hz8$E3$ooUhqONMGr`9e3w=Q*_`psyou;n@H=inrIw{AY2tIF; zs0co8;#345GjS<`kCzy3KC2RK9fbh5%HcC6Nh*iWmU!HJwnTovDp_)56wPQ zAHdk(3n*&a5#{bM{B%&ufg%6Hbx54z;KVL;s<|%)svA)BBF&k17*$mKFBoPIpqL%! zE`!~p&1#4M6te@}Er|^`BgzXXPDw%W`;2y^Xww?Jwg<@JBXye%54|;LU$t_PoIAST zU~kD@hdWDvoI85JVBdHT3A-tg&mBD|oNI5x@&G7i2i+o?hun_C9e}gDcY)@EhJD-; zF~`~NA|!lg*f*F7^Ib?dYS`_U3PfSS*b<4*_D|%)9vO92m8xZfVIM;n8I~jQvP0w})lMc+f zWD7i!#bIYWlXcn6pOwP?lg{P!zg(%%d_5rk6~j}$7IXgzWIYV|_W;U%0uf&iHwTn` z4Wf7h-m(UiQ<<1+8Xg{idL0l8g1CMo-be;aXaiy~vCz?*(4Bb352&IOepSmwtxY>Z zYP)*uJ$^0( zP6n{Yr#*ltnE>|q-+&whlv5e@_&XlN^D_W@{H!f_mJVQ#&n!YJdHhzSJP2Tqzk8{w zgti{}mdAgF{I>z@@fU5yZ2^EiKC%rD9029S&mO-X)GYw^_!B^m15We!++ut#;TG_a z$DjQWzAOV^kADHk(?pQR7e9<00)Rb!8IUCa_W0jaJx!0lj)alNe*}&&|_RHbyy z#FCXNa`>*d!er#||3KAYKr@Hmu1eZ86Kn49f{l@as@?4WN3sGLks_g{p+<@bvsjeSzC@`wBWq|Gnw~-NK-OFa5uU`)^V+0&MR> z#oK_gejxq;a-4`*b0W7nTYC_hPvBH6AT}PvKp^!*%m6VP$V@=IqpGI$jV3ZET^ODx z*CY-SxSlj~M$$PSELq<}f?U;KsaEhQh0qE~B?2p14i?$ytDRuC9}GU=kB{eBNq?v$ zwuQNR+cgtIC-J2pGVCs_z-)`{(EBuiZSe(=&xs&gSOnQ35fyd-%E%T`AlU%6#b_XB z5J9$B0%Q>&e#;Wk_5Wy#(k0hpAE9;`Ewl!5nBNQ!P5NawAnRG^dJs_dAc)JJLaZB5 zwjRU>K;8zFQ<>P)Na_DH7BE0;H;C7t!8bSov3Efn-VOo~`vSy;&m)cji2VrSjTi83 zbwKP-5OZI`Yy*fnZ_uIh`T()W_jH@t**<;wCccNVi9U!R$!~j~&#mYD6!1NGgbGXmk z*|XDG`}ykE6fd2$mS6uVx76)GE%a7y?;cV?zy5PB#E%2;um9WwWF4TK*!b6fTEC86 z3EQ+y zCWOLRwhb`TeIRJN$05ZnN+eG3lE`ju$08C*4`iN(xW@r}_@7t~hfUi?IvU-MZm0)) zOX6PC1yFrZO|`r})U;J4$e2UGOUo+XBbWxy*W&wBjg-M@2gW@j7B5g^VxW?Q=nv^0 z?)H90x@k;QLvIYgV`2%AIe>Cv<1uj@)DghB=O__-RYl+v)i0^$sxd)FY=X*lunJZ} z(;~OM>P}_J32$QW0bonMsfyaP9pJMpslSCI7T}53s&<(UOfD#PoTn-R4OP%E(rsTr z8fes&p>z=-e!Q6-$!b)(lJ2(~P-F;hMPeO6%mM2R0Q=!>O02G#SON;sr8l_~Un3PX zOT7&K9RMk`!75~8R-v)(L>-E_P}jF{Djc9q$cNg+RnT7mWFC?(1h7Hq01;hqtt#lm z9X~f|7xG^K#Q6;-|wHrEL>R-T~mQOk66$ zVHfaO7InUd-UY<7)Qz0km9!>kl@!f70{(9yGqwywFYs0n(05q!t`eCDS}M#T33zJn zPCTFLLGHN_{Br?PsHauP#1hOx9o>oR%|frDz-}ru;YO&<><#@l0dc&KMgq7^rAkx+ z=j#ZUaX(igzYI{F)oi>%QYD4V8X)QUO^|j3#3kUG1>n})skre7LSa_LYTbz?D8sFJ z1N^%HQfQM^$i%Edb?(HeW}*E5B3=W~Cj1Sxi>WmyfGk1M0syz>eoHIm>xjv5Yo0;= z6M*=K*P=YGQ+i0NG2M-x=pKVU_^r#Hf_)lYa9@5Dg|zbos?13uY{-_#!SkQ5OoU)`bmg7Q4t)Xb}52G)P^EBMD11thp3Yzlqex;kILZ?b+XFg z5VcprkP@QyNsff57aA%=z0|Px?}++Kh`N=bLez5)iMb?1jby64%RXHtYyE3cMk2=@ zjpiZhEW->@k0K6^9CtHRi27PfQI)A^;wg%dEQ*>eMcXVzb*CumZzIYiwr!Edj-+d5=-~sW&>xJY0 zIwT!avmX{@3Q4=yNO{D=Q5*eLmuK%*Oy(4lei!mz25^AxTsYxy00-zseT%IIpq$EZ zfbJhqhXEX*d-OZ}#w36PbiV#br2t*=_XukOI6$YZ6SX#NG4ibd-6Z6X25^8b&VRr2zmv9|&=i_pCf%IPi9HFcK1r-Hwgl?W{7EUFD znId!-lR%2lJp`Wn0Ogd!5jy{`SU~{s`&FrbiO_9TSvJH!ArK+yZ6uKH9EPLl5J2@o zWj$K?wfGEG!i>=IXK1Y09DDq5%j0uN=sPaYu7@F%JpL94yc)nBA3KV*AHW_T`AyRd zKsl9RkN*#-2LbHyHy^_r76A76ZNx$z{}xjA0@&jxtW}2AatAi^c2_E+N)gYDw z*yBro*R*bca^h!?e*x5X0DFAqAODBFH-XQhNE-iVGR(vCkc1ph0^!mih=>wE6p=g+ z5R51R6kU%1B4@&#a3ly`AgJrHY7li%G2r64qO#uNh1ZHV9*f7iii)oH!FsH^>hD|C zJ(DMg%I^E_=kq^)j~3~kuBz^?s;=&?>6zivct8`2-wg7KKY=3_zl`$5fLiRJ@!Cx$X5!#!aa@~#s6Oyj7jdGnJ)z(%e27f;+)Zn}RK==zt zG5Av~WttPDQVsr_fbun{o(?JX9?Z}q=&Rg=S@a`uRX`2?b`l!^HTWS{m{z#XGLXgK zXNxI`!FTwHrT_^kQG-8;+#;ZK{aQoSg26Aa3<)_1Lk#{ZVJHUw0Hm9Ml6H*@zQ3gi z4E|?B(i^M>_%O9i9TbT0)mVDnZB!#6>948cOF+Z0oq6cBBcNf}Fe72u5KY3c!$27d zXc(3^mpHs3#Drm2leicteb?66au_z4lXThniy`UtmXC&{w_Ry^U_;Um(gzcg{w!ug z(l3OU{$(#|NIICkJts&F3}o?9%v*E2mBkyh{B=NO;kho~+OV<+Ga`$h%AmE zF&a==oJ!(k$;_u@J&CJ;(s6cW@IRErAX$S4tBi=VT@2=*vCJ6{()s}uy-8iq0mWm; zT$AQHYk}f}$$UrROCTXM$q8JU>$%PdAUTW7XRTc4RUmmHnVbk2pUfF#E{SrZ4@j;g z^Eo#HZU&O|WG-*Z7yyztlG&O?36Q*-%#k^+(;rAaM&?Fdo_0QvlzW<8@?5^1?mCCP zNoMl<{PXQHc$azUxc`oZ*A&O}PXe z-=$cCj=@S^gO1_)z2tWmw;?3`uduo?w8HJ&CTqf-R3YKFvtfS*py9VIBpv_~f~MiO zA?;k}K%g?`QqzFLArxPB3PZQnR+JKw-qWJ-sJ+y*TO03ksYyosA7E1tlyJZR6*HqcN7(VfPB4d+MHRO$%E&>%a@69{KHE zCk~Vju;r=MnmE!)VWYQ74gK5rM@S9Q=meAlg}QH(MlYqZ;nOXl#E5DjvCA3_B!waA zLR)VTNYW?Cq<29`T6R;;(b(qQ);cy=wzy`S3ax`()XUN~iM7j<`AY8~OGtE6mJ+2e@N;O!SBtdDE9mEAQxmhG)O30q??tIef`q??%@RN*S!YRktIV+} zlI+&eb#@0zTQ`=Z29=EgA7mRs4N$t{+IZQUtQ;pmIaa9ePLZQ+tTROR*V`d^7xd&7 zGM9n63eYIo1k08)-!>Hnyr#5iJyEID+{T`Xn zm0V;Qy3R&nIH!$20UXst_s)D^573GOJZ!o=MH34suL4T1w;By9UMLl7NcwtP13HA# zt#0FAE;WcnZ-DZ8q2AJ@+3HHpvxH)_4?tp6q@E=36s2+NZv#)#Vn{lebolzY>zZ+e#vno7L2|tc`a| zP}>twJ_M*lAGdhO1-#HX_u9>MdH|*GH<1a`3lR>9UM&Ov)cY|HIW9B}+)03%=NDES zt`np}H`$|2>mQ{ZVxH^3zZ@_`Ux!3NDm2f%+O+OZMN0Gu1Rn@d#er12kv1d;lGtl^ z*XagmpT4uKT4}jUcue&?nequh$@|tTtLLIO5+d6Ur=uQ#+bS|wg7teqdoy*NbQu{s zK`Lz6h&HXC4jT43`0oRTX!<&(fhb6YL}hJSyHupTIl9nw4hNiybyS-@j{2`6v7Sq7 z0qxCf%L<#P+$9F5z4;sEuL7l){lQcf*nnz?H{MvqO7Qhu>cehh-u`zRT+H|9Lef*M z@PzK+7U;Y-9oxtRnP?ol9sXJh-FGe0^=pw%4n4|G>f7(Z=I!*_3{|>hu%diCDTzHwPi;5i#?Li_40& z_ymnQ>rvA(6W8mlf#y**qk-npHlu;&!)+$s8wN+10AX*9EswDojV&K(;)y1<~u9Y3M z?waqOAOfb5*qu>*#bURvEZqPTiTyIFk=S>*@UmRg!@*xhH4=Nu9(ZQJL}I^;Y9zK- zH`mDn2CBTijcO!z&+e|%9xy@IAEFv`eVz-C04C`AV>DCR>#baE&jJ4w)u8LOd*TiO z6LfWqkh=F^PYIZyt80XHI~T5(i>jP7BlUy#a-AW73Az@=yuNit0w(C%FXmMT7c}Tv z9P^f086CZmyF|x476e_hV%Z`qnbs18r9sd&#{^w}OBE*r6F06h><5}Z&QT8sLDz03 z=$hWsbz(s2a~3lQx~6Qp%{rBHz^hrVhUb9yw&U9dUH@v^%~FcixSe8|!)dFApa#Id z2+$DJ8WI;tM$Q2j@6D}5AR#mwg1VF39{~+PmGp9*g8&UdZ59*>L9OM=m4Jqz9$RU9 z<`f=6wZS>yCn4(a`r_8fQF#XA#pm;Bm`9la`aIM zBn0&n<=+Z{oC6-+n{6hbA*fX(&X|vXG%_A_A5LD+PK79#j z2x>lw>3|7AJ!WY-S(;acMnX{UfwBWAdER1}5R@Dzke>uyzW`U34|wR((J9xt)@tS1 zOC!u3auE1gD?VPWVN+R#haLnTMvpZJmEQ*u0VzSKzghe=CrG6Rp-u@X*F$w#NU1@n z?IL&yLUrVW0(pQ2q2`jP05k}-r!_{`DIAVg2||4#3?&HlA~;V02`SMa)B*i4BA|4P zrLsXN+fTD5JIsBxw^EAr3j)>a_FVuByh=Tw%7)0 zX28t^YWfF(nv=szL+zzOa-S&}&k<*tv?LMB{9=prjiNhf#VtVbpUI@}=Q^!{grFr~ zu4z0LdaUUy=9-m|RR|s#Wb_rDO)litm+nlKMycOTSKBC)hZyG9%~(=A|-kRf(M1DVj|V9lZH+r@dKB>1#}(sl4V60 zfpVA0OfBWWgNXY8r9EwDf_0Ftg`FWX8E%DO5(=F(k4(7f_%Uo--@{-yFXq1>?UC)@ zLKw~kwBi7-l_T%_3zx_bQGUNvJg`Z{r#k%fxy(H4f76^Gl`Uob+=Vf}6D`s%d<&Ov zgj08mA9Ud~Fo(;V`{XB^iy@GR2eBIrvjO3B-FVxCU<0BPMQ|pjFN%~cL103e&Q|H~ z8N3`wS|I%`9OOEk0qt*qm+fo^FYNC)%8vy~|6xa2YAc=63vCl*9jEKD!f>s5q&u+j zstWPQ>E&Ra^}BV?TK*OW`Nb~_pXINpk93Bm3Qf+u@sJNe=Uar2&CyiIzOOs=S$XF zm)3B~q0N)_lmnl9=)5<&Y1LYnVttP@wG`OO+%*q?X}rVp|@m{UE4yncCNrhM)p z?dyZ3xz3Dd_9b(nL7WpHUf4&H2Jyl}7m((G&wId+MxQ}sbK6jTtKHqhxbEF7n49<1 z3uRoGIkvN=>pjwoyJ=blTP5G3+DgbwewpSE&n3s6;a(lB<9jaEC(ECs^+RFu5l!<8 zQlY6mV!vB-5+=4-%*?5h?>29qVDL|nEBxFwW4B_EYbja})|Ei4ngA<(6r`~tMg1nn~lHi2@tqRHo)+nmrCZL^@| zQt&1ye-pHWrP=K*8v7WV`q9vF#xg%c8`)|wFMR^E`FoStOES{2!%2(+M##sX3!79} z`YaV5K*2&V<^#v>X)(B+DSLU@^N%-0wOOY$Cc^NJv*LhzaCgpG|621gh|J#svN@|cY9?|&y=`pUfV{i7E^Q?yib(M z&Lq?MVAuI>7@3R6{GpUvX~3|0GRYhH=Z8aB9stR^$;>;Hy+1JcQ!+rB_$9gpOE@nNhwf#OUuXOmbi8Hda(BwhlNJ;-E_;LT1zvOk#tB=!eNud$p< zxG1YR8N>3@Zq^Apk_Smow^}5YNg`IKUGC}^sa*Oq6((Z=?dcmNUXYB)U}2f-%mflb zla%hhNA7K4m~?xXbhqMB{?YQsNED7_Kz`f>5#lcGGTTX4g!s1*t`OqArW%}7;^A*i zG8eziK-!Rqu=MRV@}il4*g`*(J#eE!-c*%s+ae-9$rh$WPs~YN-H5lb6^F~f?Hf&{ z^6#KiG4Q^Y7tsT0e(QGGPm9exOwm&`{eGbM4l?sbbL$BxzMjnYB;JwC8ZzCEaGiXh z_(C!-kk||ik}vI5g>vo7LdLC(XKWPSc@>0I#&E|4C~i%r^O0=Jf#UBVx`4zflKGTO z%~8DV5-5I)OvZ0q=SMOL;g&3f@HVd803>^p>3g*6bO(}y$ZR38Niv6$sXm6CK9D?` z%%>#Y113!*Bip6q91>%WWrhMKov2r@UpnawO>A76TuI`5ihc_u>&d)D;#FYsjbtvj z>Q}dNfX(30q{BzVV{QLJhsCWNdK}IHFe}u-A!3kfW%c5YiN_8Oh?YWdst~EA1y%7b zPvJg3?k^KWv9xPJ`U6nfuZg8Cgstw@{$gw78Ec!02Q^NJ#~uzCZHLJlK*@HCB_`_( zUuHE~(Z+S&0#~*H@|4d~XOI5fISXxz<*jSqn__dvb$Eqk!^ggyJyE_Gxq0B<_ys*Q zF837Y|K4I^y+>I@wdqzXmo4Sto+ClRg|u4vKF<~n?`XT(1-5exw&FP@#kOQ`N`{X~ zL0grIRyy03gzwcVxyy=!r*($f?libBty|uvR8ngRb$?SO-=ubdgkb4~p#sO3qD zvdUe@1B$niSx4e>$-G16pCmp8^bN$9S`N5nn+n?ER_0~Tei?4^2I6zZ;!Xg41MzDl zUIFwC#A)MDlE5HYv#$@?Z52D2o##I$EMBH)UyynMI!y(5twM@STW?xXT1>6>NN|r3 z#?Fw>X|otIW3v_c>XJ2sS+t<4FzLoNu1xGdvkA*mszzMhBA5;E5 zP_o^YtI4tK6yd%f(gdk4wvF;(ZWVHm@vgH6phBKXVxnY3$m>X~0ZMt-{s~Hi-^&$A+iT3dKU(-3dbkOR2}a+vw-54$!s8THK0TP2+M)pya?d% zJl}m4w<1H|8L|WH&0Jo{rR2M0awjl#0xG-7A*quADc{gm*^Q$7Fu@VoRfafy!3kw| z7Uj!<5^?47v$9jOS{Bj-DT6~DhvsEJOk32f9)SKnK+S3giMIhYtBey|wg+f`u*m3q z%dR2S#qyKyh3^~4Yaj&s11hh1B&sAM^7=iARY2)_%PCaH&`=$vfgH`}VtDJ{JXFOeu~U`5?27KuFpc*OcI&*$@4eT z0jsW8z^>!+9xzS5N+vdmr8}VNa`F1|qaGpU^WUnjgDD>(IHImdh$GvtP+g}|z62=g zV#`z2B@>$A8>CF0I(p`1&zBC07q|oZ+W=M9UrD?QsJgt##6SRNu*gWJMDq($p}P3g z`CkKh^?_g?K;<=^M1^ETUKfx!7brd0athV;N`txrIfm+r-fAih)KxYav04V_+XlI7 zZvGp+Ii8}Iso-&`aR!+yrnt^|KyfXZiBoYsfSU4zP&Przvf|14cWAP!khBPLPYleQ*TkQrQo@c?QC zi$WIbgax10Rx4Ocd5z$R6`UO6Yy~H@f?FxS87Nt8%L6MAS#7r08d9O!`0n>bf!scZ z{(V5@ws$3yE1+_#Brydj-DWw3YFlkp!ws4{o0iQ8%c}C3h_~DFd7;MSS(4(tD7q2e zYo)UOWQI*Ah7J@DCG#qYX8_gMCt*JtQihrPR6I814Xd#kGhAmHpc?xFiFJT#>`4+^ z0Hd+*EIaaT5%)`Re}=FSjeQ5wPC*hm)B!({+vqRAZ4!TfZ|;SnvgL z)!5~fUn)4FvGfpU9XO%JUZQ*}P}0+u2UC>Ds&7aWq&fvsM zBQiUi#2G;8aLXms)|OBsPSrVJj34*@%fEE7Z{^1L_he=jUV zC7tK8pa+~G577uGi&z|OO+HL!IhRiZ%peL`3Rq{3E zJAsnbwmeXY$ZB0k6Qn|w@b!0GydyaOt;xg=&vMr8I!64wHycUmr?O8%Lmk_w`V z$0dyTZlb61bJxhd?BWwC`Tz#+2uHcAQe5pi2LQ!?By&EA-%92#GH;T2RWgr~={FBo z3?!c?b2^DrfdyBRaTctQe+Naz^Q^0_lwOL=Mzqg6NholxBzj6FN#+O=qb1XwObv+zk|`i_1&QAS38^%B8dqK>_dGCImYf@G zqqsw8Q*0*n=eElCOW&q}vi#g*f$J0ky8Qf8NE4)5S(g+xIrsK(9B_iqk}wn4B}iKIWDg+xIr8q^fe_wz*H(w}Y% zU8gIc{rNJa2~t7p!u}iv?r?yniD|!`u#s-AZ6A2V_G2l_f7B6OdQQ*Jn3dL*Hy0?5-*LfVx*ww3>SBfZ}>G zKau!GGB=W$S3_h3D1MAgaVstSc6-vdnqY?=sgf(~ zu;V0t1m|NQSxDxQMFeJnWN$JDoXFjFVDca`XU#C3n|v^t${;g}%po&v$uVSh*vx{v zsmvK9w?{Ikn{v-7%x2t-$?Es;4jL{V?^L)i0o3E&MdA)1A!x(aQ49mQfwE`FV3II6 zDl4}4yD*SDjPHQ|H$aa#UTo{;p$(hrY-(%1u)KhtL2vF z^aaU1H7mA7YL(&CVTtSH00!}uu-avUxHK#FMS!>hq@{`|@_s$!xKR+-WMvL|&&vA| zkRAk7-anD}9!Ln9PBTMJq6lF6m`_8ubG;hU$;5+!;=9NkOX6stG%(mO0#|sOA!dQxit|koYhCBr{_sc$4Rl}4 z@=q4VVqHt&b26Z6ud{eKQUW-k+V7$K4xnVJZGVbItqoa^fy8|+%ik8T{s$zV1+1?Q zSuaav-TM^R*&8Ss+njZ8dxx0hsRGY}v6{vZ+9s?n#|8Zxwd(5z?n2co@*`++#6$ zvtyVtO$fU);&iGOSOxJrB;EqF`t;?TqyTJp9t}A(q-=Mn-~GsTXFn*40OdD}#0)_B zT|}Y|a0VUMpXXRDJJ%`9L!l>k%Io|wELKo-FGzO*#f!*%MdAy|%p}uq1wI8Bn#zF_ zCBk7`r;bWcMfog1S^bg3wUQC)9VE5`L%$~z)E{w%3iSz{vWpA$=c(;8T&D|AoJnRp ziQ|BTpd`C-Wi`2rfgyd#)N%D=`km}Y<^`@k3nUX{($7S6fU|G}x$N0SPKD-={`7rY|DmEWM&G_Bg=bL$|Frk&a;?_{y|9uyr1;%|WB4rEr6I3Gv|TCzV^ zo+I}-kQ_{=?^!JAfr=4ivhzVHBQc9Bm4GVY-ms=gl)Ljg<=pg%Rl?QatOHc0Z;*IR zG9t!~zvTuMph^fhc+N)Q5Gdhj%EthzggO$xlZ;S5N#f6dDj}ebIG+o3poCUuBMv~7 zFqp(3AR#EKgvI1)fGHx}fwl|Giux1bE};_*0^SJf%>W<61OFw9-_zo&@?NI+ML?C8 zeGb7$K!55IgfiyWRzo1GCct2&4qREhq z1d5lDne{s!h5(AsC-eLBiG%{l>&WaNu~jm+lezN(W<+4Yea%$)^TLWuojt{xF zXBUkB40V@LsU$H4 z7`88&8j*a!E9!g>g*Uv7ispK7>H!r^VI4PBfrMbFd?t}Q9+2N4IplL#*rGzt{p(y%ZI14)mA&h>L3}y%ON? zint2-^t=2*S5eX_<7!wpxQa(Xepm<=N|)v}#qZy#qjqSFbZCrpWSF#FoqRLol1_Uz zF#Z6hf7g~EE*U2W+xBw5OvH6tcHzi>ASp5P>{Wa)5zujRIEll6F)~hc82y3VCR zhslT;CL?9&IjHo=kn2|A`gwMC@f}?DFD4QW6kku~U=m5mTtQ|HiHm`R;3psA%1`9J z2a?Z{NnS#v1{hvx8Ht>>ri#n? zmZIxu`+A`GV=`}%cvCWOl8IjGI<0`>7sw1FF&Ib)gJgt`pGIymkc^XghQ#BNDJ0YJ z_pVa_Ox}k~FKZzhS$WB}gE_{g!dc?R>{#?m+9dnO5{Q$4Ge|V{o<+r*N#k$MZre&4 zFIqbpq!R(v+Fc}WlZAh$~T+-EIh}MR`YcryW*ILH+t+GV1rQK{MjKqXW#kWbkCy-uRnA**1-QAe& zj}|#dyysTBvJogv+6Dyi9vqQVy4ea)?zM~Eogyp-iR)Zz(OGqhXdlQf_^YrKclk2x z{sO4G{DH*xKtj;eXYO$st5RT+_)PbB^_GW{KLjYf$FdcnHWnxk6-pRJeiWpfn&n2l z7;M!Y#0ke(sT?J4i62i~{gYNbPSGOR&jN~HB-7?{W?VAEwv!nulq)PH0V?UwDctWB z#4AC(1W*?K6}E@V5P2w7xo79aGQXj#f^hhi ztN;OXlEbsj!j}u;s=Qd4Ad2$;4$?b7>0*l$C|~rfk4Cf!i8l)IC3#&p39&pHu~$8d zc|aeHSV!VgAR%b_Xhi;6)=WU<9+t(85Q+^2hliY!D{YB=kX)>G->|;zQs1R{v2TLL zR={jBP%K1)w?$@Vt;B9_Vaq=N{{XMpW_$_zwXl zdK*;dIYBCgsI3yb5Au6L;0%>$^dH0K43*}r&C5`%oOP~~4#=-cKAB#3vZkHA(#&6X z%_^2^#jjIT3EnuM_yaOOkoW=^_BENL$9C~|SK-EhLBeLEWkYOhPpX@ggLAf&&w}$P zpghO?0oMg21T87No+Y;h7$!W`gaTe^&UWE7Bd6_8-&zyeeLW|90X3m>NSqEN1Wiro z6LKE`m5=9hrI!F*_!p>e6sb3)tPb*W zVvl?WUs?F~zlO)F0bSj`O=3Hs3)?o=x=s{u21!t+n`K9SFPhdqC-=u6U?Fjs{vh=R zG(xkS#3{hgR3gvG7NQf`v^6kf;EoPh4Vf?E8rzHnA0iXv~B(!EzT_%i|B zF9kHMLmJb~lqk-_;NA^rCl9!ujT@kyoIqkcV0TOVheB&eS)oz?Kc#*V+WAnN2`Imh zNqh(>zq}iGQ3c=(lAzSEP-x4f|3psa{L6MB3DQA;b|JuP6;d?o!V+*70$Sx`Bpv~@ z%1=mq1lTT&4!h8hvR$D5d!>HqLf#*F^&6o4Mv*83lwS>r1%L?}j0?N4QMy3n=55it zL~gDG=`uir1}~F%Q8KdakKc%|1vF?7aPXYX!XXG6jHY}9psdazai(O1`VkTj0va?3 zs3Xo+p$>uuKT!Uy5J=?azzt{=NC=7s4d#=Z3yhE;z%1K^URJ2L(g6(w+z7^XfCd6~ zka!y~3;Zdk8f3*1oT(B)AE;nu}mo8cgyjWyUpfAvE_veBo5)`=j0YA zx!e~9`vS#%$;={A2_yt1S;m#?$*lvD$B>EL%o!ZuV2zJjet1`#$}ug$CFW%62rB`1 z2%tl^NC;ZPlpei}XJi27 zRd|}|1p`5NF{K|E@HzpUqXFghJc(z3grMn^9=n~<2Q*CS0k1S?o$z8xf6|3qR)qsV z+!xR({RR@(00}|UDg7OCZvvG?wmJ7gC{J0?(~?>>Anq2be03@xV9|(LNlh}9OG2me zu6MXjCqSq2(P8(7_5zWqygEWFWGb%$XBMDS`5#GK4I~7uVJiQYOaB0LDxVedYDgL3 zxlH93q`^vD`cZcx6F^7!VA(n>h{8sXQR?ogkGumDhMwB4N}Ez&{(%c`(3i9nu6g z65hdh3*46h?c~w-@ZbrcojiraNr0UP&kBXskg`H!Dt|=k7olx{;%Y$orEem91}MM& zB>DknD!(`s+R%OIKU3*}t!x*L2dNy;E(Cb3oFLV#3#-As2+%5bka!!=Dl_ios1#tk zur};ML&|o6`p=U3r3?L`=mRLf*(7EH%5N2km4KPbH-uf7CtYAFze)5iQ~7-$-3{ne z{xyl6l99=HzxxOx0y>ok9C*=@a0sUIIh4-;l-2blu9l2YzfIx|K&SG6I^xs`bug88 zzMmKipi}v=B#r_Sf}&G-9l75DI+fpNyU^VV^;9~bQ~8r%{29=x+6@;7XGnzLED5KQGqz+fbxQ~5b0&IA&IqEq?f*b#y)od!C1nvod4#_h~tN=<6v4ky7<=d^4_*$O|Iw#gcT&qmw8z8=3 zxXDx=W@IW4GcuLG56TW8Aq;dX@3EQ3$pD?oFCcNQWMnGeLgG+VTmeJk4qiS)mG+NexWpHwQJG2IWbB z){qyrWMgU#cT;}5)bMJP8dPRFmG2hT5Tw}p>(33Q^3UP$DWFq%x3H!lm2dIGe&s*R z*<7G>zb3T?Q+csfSumBCes8B*GnEIQ2$Lv*OySO8nZw6eW(}!ATd_MYC->H1J|9HI z1A$>OpO?(B?1d*jAET-#{$=;{DAS*IoYMcT4EHlz@Gs)gQN|2 zTU72kiQX^E$=v|r7^zmPTM6d*fVOHYi6?=C;0}`pl-zIWrB}ziWHTZ~yHKJ9rDxg8 z(mPoMh<0jAc7qz&XSagdjopYv0Eg!0E_#rln?PEwTd-)#Ahzg0+JkOxZ7Ej;hOFmbL%-q_qTk$eppjTnRqT2^@Xbng!q#F_TP6A`@%&k2xliSh2nA>w} zPw&GCO<+uAZtV&D73h^;u;>)pFVH3G7SujN%LI;06x3EEcp3pXa*u-A!_cQduY(F| z-`X450KEp~Ec&8|NH=ik05_-hZ>)s{j!Ms|y^y{O{ANJM+9wf;z>)hD)DCY=lnprg zhqj9z&f;lWAT5iUSA!sMXt$h2mqg{2vlO_9^JB zb*?=O2?-q8ybXXv*3j|wHsKB8)1&ba-)B?v0^9mMCZ^zqRfMeFA71W-{EF;jX zAZO9r9upvN%-)cHl!s1%Ub`18`Uo}xU0!tC*WQAS3G{7WP#b44F3 z=G3~Fm%y^#zWbAEB0g5S0)y!(KcwSNlXkPd>BjZU2$OYfUT=E|ZbZgKUR!Ohc# z_zexoZ`2UnZ998Gi3W0^ecVlLc|pFrR|nIm4!(A{qg;_jc53AgPL~eD9&)+VxhKu- zOuM^i0?XPB{?S01((~QnpVFYh_Km9Rnu?A+r8bw~V``Rfh^J?y3(M}U5O>q2?3wRK z!?87F5KXOeuhcrE%RP~QR7AVC?Yr$wFNVPq*SFI0){=NtKHm8|jMFXFUWdE&@902E6n{T-0XCdbWf zJ+$D`VXCkLQxVhJ-!%+tADG%;d+ne$VI@o%UEF^0qujfP`Ny;`Pao?ar_Cz%oqlnP zo=A6(fm3q-hD(D(B56Pa*^qRY9n)S+WoU>J@MU^EXE~uOP?)TR8@DAwtOiC*s^Bql z1>ul$AxSG(IShFY4=xM;Lk+J>hIJ6M!`djj5mLW!5{$A`K^bX}On0SZRBFixB^X-p zdn3frjf6<8ho`Eu0Sn?WA)+uj*5p=6 z*N-!4zG{bnvmlhpK1~^m?t!96SbYtfS!W^PBfgQ zg_G0>K$$E8m%=Hc!3O0C($pe%NQa<4G4)36oK_UJ#S8-$4aRJ^S7f>=On6~ma~9Un zXV@}ac*97VX%%Pv`Yfw9o1JYtZL_@LvcYXJ*Muz&S?;f@t17a+3+R;5auk&x>_nB&Foj$b-7liy44;(OY!2Z4G%&e+i+!w5GGGqShHZV=2(1@o>?`0VrBJ$nwga|E2e?NB5q;Lv}qNUq*-t%_u%q^+Nm`Y zhmRO_2p5=B8d6ZqtmYz8U$|u9#EJzA=FD6uHNuTdRZs?6RZVZ8%9PbsfhM&=IK83< z{Y;!%y`aJr3RAFa8_?%1nMX@0r6Y4E*UT`4H8bZ51uVjj(zUr2=y6(j1qwP#`{!27 zol>#D@R(MyaO#3olzB^LOkOB#L7%r|TE&#w>15zGWl2rNL%z z0Sr1lwR&1bDo)c&V9lwnnoiFbRLrxDl?$mfQ>v?Zi&leXE9X>Cu1UQxwR-NnITedj zFD;l{HN8>ANTYf|qfXV-LX=9=_=2zjq;RNH@#3%RXaD8;X*7S zrDIJr35U7W(`p+xva+^nYAVgtIg=MQ2pw%!&TK-Enuq1QB~vHQTL@R9d{I!Nl%iBF zn5?EI{3IFHNU4mfiYb$)&NgHV=ggeiP!7S=iaCwcHM6FoiRmq@nOtKlowp>&z$W|sA>x z2Dnqj)sUfd-V*H6T&Jnf%`usf1I$mHyr2r-6*h9t%*u+XOQr@2G@cDI+(L@aQ$;MA zZ22Xo)XtnE{)q4ZKLV_=wBU_!-sZjBi0k{2k?~e(ex7&k@nyd6rMrG^#BC+ly^p(< z`EDd0@%opgBEC4jDdPI>2641SGYp>^50^#^Z|uH78Fn*xekcA8gqf4ps#RpH{Hv6b z@E#FrO-Yj!Lz|^3?>4DXlW~9GJQ`bT>Qt&mbt+~g?pH*-?;=}#KOXm^R9i8~kM=F| zd&0vl@_WmlgjVC0`RS3Fks3cca0*qoh+@>7#{BqwNSI$*$L88bX9r1Q7*#IiS_OtYFt!aiInV`b|%ebbpx@u3A zsXy9VR7O=7i(2?Q*3YnicT+z1{W5vP+kRTPB94qh?fOx~ZR`BFnSRbSdh|}L0e6+( z0sQvmBv)#seq_8>_Oo>U(Gl;e%H=_IB4$4_&Ng_V(*C)&Q9oVpPi@K~-o+g@1w>&R zz4UUWSbuyY3e56FW0v0h8oxsiTF0LV%F~t}-l(NNOIzsAiFogN^=hAS$<(;8@z7(A z2xw$pTy&rC{R9<6$6&SIGkn!F$GdH5S;BY8BnmZG2#b^ILGrqmYu%ZVi&Ryaks~l6 zNFr` z2yaLO)afdb=+VF4HfsC|VeOwSmODb7^Hz98g8P1A-c<>Dr}H zF+4vqN~zq#{EWeM<$fZ9Cy`H4$j>|DR4^D=iAc7ezYgT-I>!9SnSMuzGrY_)zrb5q zNlC3L_3mb-_W-6R?x2H+-yq%D3~5XEG9|xXOR}(Lbyco+XZOmQLW&T{3*##z<@hhx zyScl&+|TyriN3Na_eVv%eo+~*G7LvWa{R36Qduw(Cn@jGnvKNYGTd>4GT^-v%dDo> zqFC3@u17;7MLU~D)%aNQ*gDI;>}S|t(5zGMci%zfBuC|zd)*Us1vfi_e69O4V$w-+PRk{4LT!gCzc{SE9j@{LICBeOP{;e0T zBs_*%54qyClYcbT5}$Ry&gXfFB{B=Gr?FyeYzs~0`yTa#+ zU+1%JSNL51>wI3`6+V~!I-gg1FvW?G3w)I|V@b0NF`1#gFu%fDljpr}xq6s&fYQvg z)wGy{d$?{5NX8;Jgcf=JueS_R;oe{YE%Eu?uk(3#SNNRw>wMnZ6+Y+w3?CioDlG5s zmXF`Y3QvVt=I2Mo0PmbD^u#iWh0n!0Tgc%((p}4M16?ZnLhE*xt7=L8uN#@ z7@i&DZe4i~@{A|C!cT^b@M_-wy4{zl$Yd-%Q6;s=YYhC^=`!YFn^oGmjxZhvu zWsMY>BvXnk6ukkmUY2$0NZ)T~7Xfq3%AwZJ7$GQkFRjrFeq^E`=(O4|AWO15j{9u| zab*0INPT@Gaw3h(XRY+W(t1`CUM(voFT;&Qa}$w85w}v7NGFC_zti!cd-tETGw4~v zf--Ivl$)C^DDSij%9%C(K6_C!f1u7NgY`IF?{{RqA30o?b97ex2Gc7tXtdF=TnZ!J z4B0NxtQ?t%^Ss9zqf+pvZn6(5DD+Q=cwe*<>`u`?_$LfUl)Qe6QQ!yjyBDi7VpcJA zDfbJ#GAfR@&l5S9RhC1Ngx>Y~%Erw*Dy=8dXJ(DZ^V-Y0gxOjYlT?w%=udXUmE~%1 z!ON)A4PTlc^&UMgn#-Wc_3rB_#*)<5-+r8Q)GQIWI3TjTMwS_?s0UX5pfdJA-fJf@ z-3Q}otQ3?d5{WHz{!ZWJ@9y3cC%Jy-I$Ap({)emm#O=@TE5_5gOiIV9&E&A%$%xRm zBEM^7gTEj3>8}ILZjNeguYSx=ShN~zpdH>wQtfS7JAhxd;%p&TC#_FWx+daz0iU$L0 zr4GjQh=)LAqm~}cjpkCfju8G{tWEGE(QztV-gsz)iuZe)28V%;L@eP$0=)hI510{R^5$BOw!G!AZCwjrp;^^;XFSU$57VlQq+VWe0NkG_*ve0dx{(m zaBFH5e~ZDFjb+R0*9`A;DBM1#OJ|MW5J{+D=+UR$A!;AlmWYg_i4!8;@pdb)BJOA8 zaiOiBb-a4BlE|j|h|$kab~7L%`KG%uh;zm>07Qb{bZ2308pf+NQ|-U`!aBp-LH%x@ zO4G9S`Qd&@ZNBtmZUC_+lMJ5G|74&V-Q)AlAyrvq$6z0q$A_$$QI<`M@&D) zx7d$*yX%mCykh%tebA3r8v1dDs!PY<&k6Xk)P6kt@Ad<`YPlaY?Ea;uBSb1>I*N{> zQxY9EX^NRuWA@6YnUuQI$ByT8jEm#tz$)H9=2yH1y=3zuuGQQ+je|YEL#b>j_@SJM%>8 zOpcckB~s$ml!^24V$nJlMeS6`=S?pwVmx>7z9^7Uv{H2}lZEVnU2pkxuHwMNZ-SQV z)pamK{`1Ou>j%DuFlNG!Z&wI*BmpK%l{Fn*U!rtO3tH7%TKY4iOZF(8Bi`Sk*~8H2 z1dbQ0~Wv`Q5ye>YzV@@Qv>=X*B8yZ6f^p2yMdaFNx-g3dJ&cuc+0h zOe~LfGM@3iX)@@*ysncOanD*bU14a+^_|MR&Vo(MrqW1O<(lC=)In#yY+P_&gqQmH z`Cb;%$1$xj#i!x^5ddVKeqC}EPr&_l@Pht z){WkWOvje%Lb$Nr&#vj@qb{)1~(?r;2IzrYpvfO^%!3ch+-JzUVCiRbax3X-`^`3Pa zHtl>$LIj5B?WX-1vuVFx7TDpgU9|>3-7?wjdM11^`E^T)5{M2+ZwoOR?aY0@10ts} zS1nyGhWR9DncPe$tFO^rIc{Ptpn%IIi{j(6Kanm!s3r(Zn)<)N-Hu@V8 z@Fh#@f@Yhr$UF&)IZDu(>JlMumq z7qDVt_AJ_vIK$uVDN-*KkgrcgHx9go&mYZ@Xnr?hG?_FzW)ds6}oa>-?_XpI8HXX8-cT z2umh2Xl~6WMo}m4&zwX+5voc)ffDkS#lGvoce(oBiW+9wxWCtNbhK6$=HkPGFr$fD zJ!YvPL>Ra3DOzLl8fUi+w{oL3H_{O+U0fe24a1VJjgxldde>4ML?xe8P9`cTYckkf zzo)s2E>nA<_pU_vQIXhk_DDZgA@Y$T5r2Y!7FjdpP| zW}q^jT{lwCe^QwpJ#{$x#X3asr$e{+N$#YtNQk$1XCb5=k?=*PIicq^f`!A!X$|f? z)0?M_W@nZ}4vaRI$Ja6cqMHsuKa6(?f;|sRg(6sB#k_lv6szf29#W?)SfhOM|N-%f%%v+s7p`O}p~_7zYrL-CvUA9;7?#Rio0M4wSY%l*_@P zp)$LxkX9HvF)4%JFKfPbm_|5mpw-*bA)`n`sYw0G@kERw}TnnOyftf!0`jc0i; za@%Kr@21ldL?-&lM0=GwSWHrtbKTLRQsccCj@Z<5`^X;5dyd^XgC22lF*?VNgO$lM zl1}j+_0Qt6YV#H+WZ&p|*YtKbEhi2=&Gw2lU_-CQ2fgYl z?aj!nvN6IZu&{dV3x%+7v(ynryT zE)+O{^n@-_^WMX;{VtHM) zmBI31l{FPvQkq#iI#Ms~Q|I@Tdq`JHPF;066NRX1_ZlKmWkf(u_q$75Ty9-;V%T*y z!_HWCQt!?Lv*Y(-RMu`e|7T+lcUY7A1@pXJLx!$*CH98aV%|GP6*1{WycP86f6<`K zyy0cnS*xL2U#3`z$kBUf-z`n6%<`^nTSmy{Z}SuXu`zr5=z$CG*`FPF5gnuv?<~<{ zH*MBk2AO8d)ZfTWn??9-Derf;!~{lRt^iLV>t?=hcCwM4ASWKzvD7Lg7f@u?#x1T!xoc7NyS9>77|daOh7O;{B6T#r4p8kF%8R8z@d(454fUlIQnWLy}3a zyI!l+aJQVIGkG%uT$(ZiFp@-Vc!Qm^w!0fC)14U3tfh|Gj@PLq7(mC=N6L4|P;KVG!b@FRec~B85|O+ESCi{li0t~${|IJr*p5H+E>osDLUqcqKazgRN>4Cj&htX zk&xYRq@HX*a6Ul*N?ncYS^KDUETtX==hPEP$ou!L+I8s64wGZE=!DJG-Zn=-0)$nsR~LP(cfZq05H+zP@(shgl|OfgzaOEh512D4#^X+K&TO^r7}!DzY! z{QqB!COOcvp~+~n_ZCoS%cIFW{UCchvj`>bj#eb@W|m`(_IAxilijE6(rB`{Esmx} z>kwnpGF-x`2L|Hc5s@6@|;8>219^#&r6>G@0_ZT+@qm2snk zB?SwkaHcCrEIv>tOFJ|Nr6A;9fb*MZL|0PbDn`5yPwMM*Nt`jMB_ z7v$c>G=F$JLd00LEm26{6TQdnqZeNbkzDAYSHpig=&5GV8V-d-(gx=Gg9U^6zgEwU z{QN(D?jjl!_qnU!wPXDk?dyAk@JeIZbjmD@v*P5#1i4izp^(<>t~EN896@@l*=cK4 zsVwk**Ftfb+MI3?Tp{AHFMbHOj#b#X`c;4X=?@EGyBZv}p z#4*^&=0kJEe6V!}24ex=<87n{kGmG?ZZVmivs?-y?1}T4(YcUOkF1#feo~zi-4@F- z5yP{p#2!HBu--RV&h9KK&6*9)D@jVfybURpibL5g;ysotD;F=47njpR;^?X9+qqJ+ z=bfD^4|6N&g>&U3XA_ycM~e@(GHGb{b3wcR#6m@yy}>m5aWc_9M%|H{lvBfSrE z6R9dWGo>zB;G>d{o2cZ@pleTR*Vd{%%c4r$TWbU@H+Ndw+YFzu01E^LJGMvX#LYPr zKKI$A0Csm>nply8S zLH3NhN4y_Z%AA}hgqdO(pQqHR>zk+8EH!3;v~TB-A8hb%Phn#6;9=I0erIoqnILlG zdMUgc)0j-D;KMxl3xMvi02b?fYz%cr^ASj6H7 z@HDI9hVG6Ox^Ht>cT)B|H-v39uoZmosa!X@!p{)DME!Z*Mq>e3B*p38)47`x(i3mz zoaM}7y1m~iZvAN*ZFQDa;&(oT&W^R3LrFQ<)h*FYW@~$ZbW(3J)-A>7gn{x^Fphgq zN`O3HZf44wg8_fLo~Vj@PlN?_FYsrHox>=`B*#RCw&m#e%{q$`}HXSbo-9oUJ=uw(j2J1Cb&550GJS(N@*3)~pRq9ux#B@Y{1q@!T>r&)qUeu^_L zHJmh5`!B~&I(ln6x_&FhFchu1c{RdsWqaAW#^+hy)(qh2?lSJYwTn`J$@kW~6I_ZucU$9Ftl&}6XLy`JcSWA(x!n*&0r9^9g!BobnsbofGiq~PX zFh-(LqydR-2v^TxrYKcBjn}=A+0btD1TLYJl;I)V zE2tbN^ma~tv@Ss_SPvERhf9BV%n{+xXL;U}VoT^9hmh*3?rr9(%wFJWj;dj-aN6XD%qCOn1Jp8;19@q1puuj-COlJQ(m+GUPH2UIrOD$wj zv;X#rBQ3O)Srnz=IL$4+mgoH&!~r+lEn?n(Cf7XbbA7XtXLG}O|1K?TH1ErrvxRy8 zK|Ak1l&gCaWSr-j1z_`eA2Z<=pEv~7NR;TVEZK$|wLSDdR2$sA@A`8dlR3FOn!5=n z@K}XJ1&OtFba^mWJWc=2 zT%4j1d;8~|28HCX_!~jh!E!9-t(jZyN6m_CN6L!KtZ`e?%(XHfGiNed6nJ!oJh{l=XVBH`UjBU`9D^`#71@87+K#jt?8;lma_kmvCE{L z<87wa%zyX?l-U;jP?4|?_juYM2I|1&{sE%;j?qNfJv;r(Ji+!eT}u@8zN&ELJb0 z$d*}_ql_8Z_HpW7cYZPuG`~wb&0pDM`ugxC-a|Ns70_i{=aT~ImjdOR%hC%LPDPm#;HV(28 zajRr^F%ELDQONxZQbGlCscH7t;~?A|ArdmNUfop~2hrn7vsobi+z#oijDL5B#Hl{- ztA%)maEFA0HXh<-;!L{aTaIbqK)%BcLtU92Y%u8?-GH{ccW>K9^DpMq;FfPQR_#68 z)+|Lg{)|eM(V1DY9f^A1&nvf{=`x-Tu?vMiSx#GN6Vq@XnTE%r(F%{_sI>K(Ox_-% zi-a8SAE(MP z@AK4nG9pjP-z_b!H@%6`LS0ENm)mE-zT%gbl6n)jUhf<2(n?ZSo*OW-&oHu-4N;LU zYcF7$QXd>;f3Q;)w%%7`%?!s&VR+bSWiZ2eTd~H<2zQ=&08tc_X=arzTl|6B`~$Y= ztWs2VkDvJ^Q-r+b$V?PlYh;*nsJn94Vy653;+*jdG1D(u9Q-@JB58cZw+ov(hb9i= z*L{U}ivLH%OnXYx8_#JeoeN{8w^cWbnLeD|IA*#XVP<*j2&ogTdm|mE#y+#9nCT(R ziD>w+#xc_etIHH;Edcx4vzFb&TbSlU6E3k zjhTMhL?yQeU3*%)_RBHTk0g%WXbEy&j#;XI*sSDtIpGrITP@7e=#q_@{zx;zX)Rc! z~n;J0;W2S58g)!5AHkjxy#Z2$AqvuKctmEyf5;5|KcUQI> z#7v*$a*Hw3OLEMRyDf$8`>bX$Q`o}O^Pb6W95cOH$s{&Oak}?xwvCy7Ue!2e`fS#( z#Y}H%^M7NeO=6}uVk9X`1QRnoD}zDRBxYL7MtGr#@?fXl4Q>8k5i|Wh@U2Z^rpBiJ zZ_M=nD>2ixjm>x$Vy0$Z5r@OMx2&IynT9^g^PU!4V#1YeN{XvWjYL|r((@CkG1JvG zVa#;muEb1#*5h(V$vR=vu*NadOLJOkVT&iV6BQ1!r->f!CX3d1Tn@?{!Ruide)sxE6cc0evgL%YiIlgK zb4l3ata`!Aln`kU?`xJ2kLLF^Sv`0pw`cd0=4^xe5Uu{U znc^kPaOYxGM8-VZ-qz{qdD*={$Qn^`{Pyur_(hl=Q{V3TYeebmKMi_kYeS;>;FzgUZF75gUI$NK5gA4 z+PZLHWP97&iR6OkzoK2mOX&q341*%-{b{DitgZK4J2{|f;-ObH?xPVa^T8AJ(a_5w zZQ*m1&D#fL^>zT~DkzKoY?|ZH5xHxh=Y1&kw5&>Aj-jf2r5%SixY_o7oaW_`%JyT? zt7_!ZwI?ICeDl0o)}=7r68C#(tMplAE@*^^zoVqD5pTmdme$^1c#08?a@jl~b)7uu znEKRP>RY$$8Z8xt!AK_XL85<<=xY-z`$kQVZqgp53=mNy z5_y%|XxQzJll3WbZ>Emhous08RzWEaa$+C$U#)G%J_RX{*}Ga{Th$ z*&3doGAl2;kOmRjgtE{a#BfDk6rVct9CqXLAEc~UGJqy+{IawmeyUuF|EC} zV7lId8f|?$d>_AjVnNc+;E_%q70)F@3>mC*upeys(-~&hcTxKU7tMLPw`V|wQ6VVL zyN2)N$V?+I?&ujYZ)4}j7EugMka_MGHj2E7Lm+xwiK_1N1(1X+xrU=s%f zYj_E?urSC^HbdS3vOLKVA%c21mbaYH7m7KHQ#Io13FnaDVPm;_pXB!1T0K+c%dm~~ z(-Faa1Wwg(NTmbMk;ywwqNS8wrt&C=93n@se3XN;OJB~OjpI34yonqSl_3v};K0!# zZ)=hluw?UUa;w8wFK)sF#7KAs z9eI5Owv5*N8hEBEgU1xgdFg22$hF6uBcg4L6WPWV=5J=SfhM~j#x(F{Lv9BQMtG*kCdW{nuGADZl zdWVv`=ZvJtNb^1%eE~$^)|pZxqtx#HGNEZNuG&LhDj}_2q!@22Mv5=63*>Y4MUuP; zQ{>R{1fUNE6M8>y4;QbnkGGnwPiybKrJFd6@XrEfj|iG{j0nF-96oJ$15R+KKc?4r<03hH(m1KyZ?1f_eC>lOA9{MJ@*x~k8#MN<@Z(_8m1kjXjQdtH zB^?9v$h5V;>vH*C-!;-}l?S}Wj{m#BXlvz{Pb*bkSivo&%CDYQ>bh9>^GyiBHo=+j ziF3dLC;0c4?N9$4xum~qlW?24qhGd>Zp2sEaVi4!Bq6w=Tz=y5@_owd%cy!o8K}or z{-fLv`f<=h^*4atvi}M4g_*7akUSh7?|HnGJYFn3UMf6L55JHq0``~7Ym9)G$cOv& z!@J7+yDqJ~2WDD^7Qi$x%eu;kUHRRn{Bc))7s{7ZKI_W2qI_xP%dRY^|LZE>aOIXM zf7g{?hq7b~2y-uy+p(C%|kFNarQrWx*$A{CNA>?k3w3{9qTx;!WlYi0RZ4hV zTe%%KeU4uIRKw_Fx$#S@4}MWC{^>6L#`>?2gh?33t0+vhAH?!8_2GN%kFfiK-;Y1l z%<)-|FqxxV(wFOx_+^FT%@2Mc9po6pV(;zp8H~q|6}DRN{+AGyF;=J)PK>*n3U{@x(bmQ zAi5K$YfnVs(spJ)m!AdO-8K8Y@Ylfw0_{!SySQ>EqPy^ZB$8aLQY0*# zY-T3Zn>GHobn$oEq@Ot3b^L{PcES%=yjMPhOt``eCxY(+9$mQ?bKRrYc0KM>T}Qv| zqOKMA86DgOMaVe%PTas*AxDk&d2R!(*=Stsx^@-ei1?`wT!({>2)sL=0G)6V7up_! zfDuW2EsL>^)rk_HYv=8$o12CEq$V*Ly2Bz^y6| zI#CY&9thN|3Gi?}{6O)qA1*gzkz?TsrA&XbfN{kg6DqzVvKZGLE1$#9107L$+rEny z%MS%32^8VD1O@KgzX35PYMu z-JEdh9owI_4_|wy1rgw9GJLTz$3L@VUSf0uh`HvUcVMOz(Bv})Cqxwq9&+UcBsU_c z$ORTmoq}0pejmPUUdmElatAOnu7zL;W)dxGjFTRJeQ9y|amRPPNmN$!vdY(S4Gw9} zQSxP!B@ahqza(9UACI{Nzt%Pmc8=JX@jLA;Gj1xe?Kx0Q8-G_jiM1|Bo@+>wX#4GX z$e%CdvWp?AAF!&wDp1{K&pv8@aUMQ@9`d=-^0}!4pO4SOrzL#;z-aSF7)ob2yCg08 zKs$#w%B9$@wUy@y1ALQ9F5jI{*)Nj}auVs?#g%_M$$H*P4Yp{r4Byz0KnvQx0w22) zvM-7`0$tX%tm3lEj|pKMxcxpK@GyS7vw_(e%g{s`Y~ zuwP!de*U(Y-JZ(555iSK>?eF?4B1(n8o+A!b=WLEBZP|9o~KuSYHWt7>C-#!Nb4Uk zR)1fq@=R;?6>VmhHo}zus%E#HA=9Gd5>Kpr2IKS+{H`zN=E{-ydr9Tn&%on|O8t(m zT4lM!uHHMkCMstL)O`m!ccnm^?&vzba*;r5um-Grzy!HV?&x}Q<%0%%KeFzj%7+a6 zKERKwe8j+#jX$#T&jx-2;43QM1^fq<-FI~LS04QuKwEG#v$9ek$QXoO1bi<@{|Xy1 zrtp_2ysL!o@5?7G6xQKJy1*|3jHdo9v-3qKzeC$G=e+1-EY9Em^s-#ny+WdT`6z5j z%1Z+C(Wbm&a&i{$pKE0Dw#Vks*i4q^Q*(RsiM*K)HRmRVM<+c|Q$O65^R1dfn^os7 zYfR)dyt6JFnwgo-<>h+W6kaVi+rVeJc^#k#%<|xkm{~qMG23j6oSEhFLc)njyr#0* z9NN*yP%zZ;*2(QdcqwTUT&^_lIm|C>%&fsX6;+RsY}mY_G{<}PC}QAgBTKhqfRHSZA3W~Oqy!Bb43xPJ?881dUa98v~zZ5`}x_#wtQ%01iT=o7Y2}5by{=hxx5ne z{Cq|Qt%D`o+d0%69vxK?sD8zsKIxWx-KyT&>Qx&y;60%^-jp~DHPCi>-(|kBvB$xt zPoXp3AZhik&RsgxY^bK@Qz)LVS-ZMt?K;(ARkPW^J5(npe2XWh#_*~|2%3Ub#XLjm zT&h^U-nRG$=V@#j<^1fPESr`7z+&y7&~<7m*AIQ zh7mG>vDBCnovs|3!RV4dZl^4Y~Yq+Gl(?Sm$qUbt#yDj^E173yOBd@YWA8Sy6yGiVsG(mK`?M&DRb#0HL>xOsbO}sG_qum&0 zYPuojK}$y(h&(VY-8J8}hcWe1y!UsNy!SV6j8DzX<@U9r$}{rz(0%h6L_fT{6vI-6 z3f|2-IgO~gdvt_DrD*uGAFNfZD@%2bQa7S)>;!qSkD8dK9kqILVgg#Ae|j3*WpG;| zqZ9D=(UBZce$V9eh|!mwhFNfQ_neltk4}uhNk< zyu^059Y~vcY0G@$WF4`&7h`kH=rk;W_Z?%_9mmVM6H&H~b(qygztw2C?T2-f(>1>0 zS1VpRJ-MqfQ61$xXGL>tn|>Q<>=h5g`+9fE>zIcSDaA8vK-&XTf|W#dGkU2|FJ6Q# zo^3)Q2*e4S>J8)h_UQ%(;p&~EVDmCDc>`VCL_qn99r9n){OLG zh|v8a-@STvXv}0V(0aNtK7>xk*icLOpx$Tfhj$N;<*Q{tt&-urd$g&siQ}2`w77tc zRNBEC&Xx>db{tU+nGjw@yh~m`K7zm?b6#GXo^AA+w{!>o6U`YeWiYu*FgV<7h~Y9i zGc&YJruinkoV_JJ0&zavnPH-Kwf?#r>P=@74ff;{Mk}bbHxG;@^OQ4IbuKW-##KF+ z^+MKa>F41Y^;2b!d329`KeN0o8&r8;V|v?U(*`-b{~B}pUL=Lnlh-sR@NVN~j;X=C zLmHNtxyE#jP7!#~HQtN9gKj1^AIBTb*EF`9B+%wl$Q z+Z+)Ty`B&6+?8)18fD+~*i@D^B>~Kl5$~AUDH+J5OKj0p4Bx)d#vbcp{zHUz%x|_A zcjZCMVHPd+L4OTRv%~Sh&;(NNkxOT{Z|5`uhBAQQJ!1_KJprc~8f#|5IVN9yhd9`% z6=7bRxQQ(gj1eP{nmKDSRIL?+pN(BfL(jcTfQZelLTH|f@(;DFelMS#&2fUIXMy^A=wCD z4+kw~N@SGTj?pn_g(zZjb_9g&G99BWQ)9DDaSfxcbDPUn=k*B*lDkBT1UIl=&3r^s zd~rl9BV@*rM2ecNX~+aax0k%zy1s3tI)?^0Nl4)uvf8o>ftBYXJ+UTpnyhb1D9L1M z8JeCmIf1$c^orMUvRYb&V7U`7njamuVw$ttFiGKc@X|`jgrKd&X=i>j7hEc?ENIC0 zu}-rx=}_>~kAe^aF+1_%bk;Fqkb0oalV;UdHE(1Oz0%sjVyu1`TI(mIk7i7kgcNpK zV(RFKay0|hEC)xT#5RanZHq3Oiq0VNi)K;OlVskQ9C6B;WeSTk4Eqct8CA4~rkWTQ zn7(9TX#Bvf3S}~-xkLb(($i>SLT;>|=+(JN%m~i`YowFgv^Co}Fl7Nzxcu2E}A{wF4BR-%1{N>bAXSoi&6HFnFf0X2Yx_9XKxQGx*)? zHmoy8r?|FU-(2Og25WhkMk?6(4{T&m_B3{*!PC-cZ6D@enQq{jQ)VY%n+yuujrECb zvLfFg1Bsn!m6TPeIvB=}bRlwYm>w0`?A4efJu4IChhV_9dq;(8b-k*`Czv6fvmF=EyY<7Q6H#K02atuI)gpUKZcMO4AW zg;kerzpSTbU?uExxI9p1R^nHRy}hlsW9wkTL?)~rq|@^5+0lk|?aMaSm#toT-m(iG zfA-^7EL%Q4Gdt0^800d&p*VzG^y0nepS%3rvzIO3v26LKGyQ+t_h9k7d)e~s)%C0K zcf2vZqp=*Wv>a%Z#|AF}-{es~V*3djgW>=(Yxo*BDuj zPMumlIkCJU`zjzY(R3$PlasSeknKVKwA@T0Mubdx%Q1n>nDl8m{2L1xVQfAa#&U8e zKZbSj!SME=Y|O4fMLJ15PTUQFRK3mEcsCa3vc#3nKy)-)8p%N3fgVB|xWOc$uXnBq zzcn7z+%-Cdd3Q)gHu5v1fKBX`VbR8p&yc~+j1G-)L7vOri)8@c60U1CJ%JjG?j|8Z z;%l-T#ENiC%En4S>OC(rIe>{dvhNZr_fIKQ}KC&MhgJquGHaR(l$;u2p zNgps0ni&$5-J|FqCFBZbcRoEiIWr*>5XQE+@S552@wrT!r{*S2mPSov+YuSQ*(8$O6&rlP zlw|`hIt^3NQ}KTULb%efOiU){@rFLrFNrh~OGKiSww2nMnDCo2;v~wzAW^&zCkfp& z%dc3w`KnDlYkKo5*VZoIv<7V!?-2)p?=)w00peF42z(*{sq8qmu%z>L?J+?d5lxor z+Qdk*aZsz1Oa;48KiQAnjg`B0qNaM8*`&g{U6vQntaoe_TW=jQP#PDyc52jv}PkK9M!d^rYQ+((^JX z%!U)D9y^fD94dwpJ-}X*aQm<`=!VAb#+dCR$yJeYj)Ks{Lz`e!=d@YD#+?xk1F-S3 z6TY*zfenfo%-=BOu04|zV{>S$-MS9eoU%iWB0^+idN=k>{cI;o=nOOENMj7!OeX2q z2$QehXf}>zq%?&3gv4W+h%uYn9S>|dspfx0T(m&jJJ*2MUd!;M%kWa@+W3MlQ#{U z>~|!CFG&}gIl~)ZRkL1OcfKZyjlEczqaLCbyqy7}Ha&N#WNXqmFG8l-Dq;uT=DM})cD&?|e zY}Pf%N6tMP5Y`7liY#fJ?8lp<5c4@zS0D6Ur^5kmy4M^5iF!!8CugUJ8+4vCup-;l z#I{AFdB#X%YHV^&qT?A@fkRI7jQ$O)&X}IXd^$a4VaB3%~!s%X@Tub*a4{<3}y#_ zq^rn1Z2%B-dtL4MgPP*hh8tE&kb=?BDxSxz>P4Hame|XX7-)K_IX#?V_`p$c95{}{ z4;V)C5zO4d(aXxVtqJLJN#$goc1>60c#~qproKNB6(vcQ^aC5@GP}#?))vzG(2Yz% z1dx>s%w2hYo>)&NI35Y1EcK95a-&iGc0$gz+V+20`^LQXTUkzF^d3>Ij6HN!U^iU%Th=^l!j$c78J zf7^Ku_sVqwQ=QDrg8_ymk(p7U%diQ4#=01`rpKsc$NPJf&fcGFBQ5m7o!rb6cS*3FS@=e^i2FgZ0(|70Zc zq(B_epEr<+#8qVPqt}>J+S;R6G?doJBy0kmi4tzxCL0}Z+qx{YIUIqDislTK4IHt7 zH%Qmm<0`tWJ(97hm)lg-q#cIG*jIBPP?{6ne9z8N%q9}1kjzi+KyHHu@5VyfEK1GU zq;(8QlVm!Zk;7f^l9(r_0E~C8yEHhux!8|eY=N2O)M}GGs0$&auWR5Kkoy&qDIuKg zox#4MRaR2!26oplA}HLPRM}5u)JganZiML)Qbn_+D~gVdjZQV8xtX_NOU(U&7vKO# zmfu*vVhK5>N|~@I8R>`*j@EIE26=v_lAprvH@u~7h&1+C4PJ#5PsWKX6p(Yv`HPwC-A<~JXcq`g&6h!1lQR~xuXZ`s zQYH_c*{16VO>U(k*DdsHyPVOm5R3!aaJ9DZu4qhaW*cmSm}Jrzhi+*jX?QH3VP{+J zOTh9wu{g$Zkq66eE7JJhGPm~x?z+K>oeFz`j`m~f$NVq(haJWA39KM6iQ!boYPw;C zID)K}jizEElS0edJMaZKiNDC=0|k6TJPdQS99t?qA|Vd+u;F4ilw@zn98%z8>2Wt_ zu7)J>%uTKyqkUH0eA(KK`P!bIO+6X%IAkX_wM8&PmW|aN;)FTBGbhF-CD|ieaAtbM zhOG>Vdjd96CP1)C72Oj(v;&Tw%`cFYkjz`VIKT>r?e z2Dvk2x4!&|-*$V#GwZht&<)sx+y#HYWUx**NTYKOlQdvHgRVT?Sq;yhk;6_ju{N{~ z8?6$?ZCR37fAN53voi)KEaNv|$D0=Icfw3p>3ZE9Wm!LSzGJ%1je0+rHcnbg!z9@I z#8H-Y1KlDtoq#!@nLx&r0ma%4LdRl zhPI7zNe0Vda}JWRuvbgVo{bz%>E^L$yx|;4?`_J^FdiVPPmEv*iS1qplc|1mSnH{? z=H?(lvn^fYn-!EL6CJs1_6tECHb5^qE0=?E?M@#h{dD9QoSp1?>PWML38KQ?Om!g_ z9}2dZbi+tT8ah{ojT*?$4!O*gtMnQegvca*rJbl{Qj?@f0<5@_db8xXve9Pd5$P1= z>GQWsXR$9K2XIq!_TUBy81|R#RDtATXuI_Km3BKdm&F>25(M=C%KCwI!&M_AHJN?P zc8fJ&puCKyv`J9TMo;6NW($)YrU9gVF?*ItyR5(2w8{E9@>X*uNRPMU)iqaU6=qwA zJ=*GxvT5jc%yR4z4v7Kj3dP#CCqX)|n+ee-i=z|UWtT(-I-`hPgkTbo<*!V#_Tx0| z!)Dspt}2o)>WZk0a|LreCO6PzQ`U5&=@M&u*|sq_?PuG~(90w`vbw;`v7^abPPmeV zEEmfG#t2bV{NXZlv5$g-jze_Q+!w)heQ#ddTwQBo)w=Z?)?#YJc?E8ojp0HN+9meK z4!T*62|RG7VYi?BzjlqrWeE_)*#akcPT^g4FAj)8mZ{wuB`QbJaWu|BQq$mBV)--z9Bs!>sF2E=^UNv-aF^T&x<90h7 znI3xAOlNXBV?^t|-bT60iY_xpwxh$V#zu#lCRjp6KYwL*({uzgt9FB4)#k-wYgscj ztTD3yt!Ev`F!Pr&F{k$C&50@5TicF1EG8W_E-8QPq{W51JxoI2u}21a%I(*Ju=dc% zITF9@$TF>zle2u7HB6c#i6yw0ktHtLoE$@&jj zRt!>XL@Ry`_9VqH_PL#2QeRbh0~T=K|cQ(LPV&p@d6~U$VIeUaQ51@RYT3%~(3bZ8+oZ zCT=4djiO7t(i(GkC2ax^-3d2C4IdeAu%hAFX1+r*F)Hf;-20lsty()ugU&6uryN9a z?hZ`itR>xklPm>F7#pbpFp!|1Y2Eas#X+!HR!FSSti`Mt?5DUiGqD3v6kdf|LW2&M5$C?)|wv!?AgAb1f#@_x}qgAj)18f?{BE;jI*G*_-+ zHZUzWWs^Ys5BVF;x8Wpy|57vwEMt92c(3YRy?(tFU~aqE1jNadZd@%lXF-b1q`f0D z;+k@JJB@=vcjxNx&Kc<5Y!-ZOGu=$0)xQIAdRrc z3=r8|vi)3HbCk9`E^tVH7a8{2(7<|8Cq(`3(u_GY_4nRz<4U#&Y;T$b!nfVeGkVp| zO?|f8?I6^?gE$FZ*t;E>#Fr7w4zn3pP;O`&CN=CeX)j?4-ZnWjjRicS#q=yTR3*of z_&%$yC}ooX%AE+WkUa#^Gug(~cC{LQi@+xLsu8kHd(h%`{gCOweeCJDy-00>88+hV zye9g;*=j!rif3XBU+A!{RB7+vILQX^#jyHzarq z5%+<|#>}kP=KNU1Of*GlI||S*a^)nwb7Vi4A(*eh?!i@Z`(0v@ga^}c+w)QLH398_ zw$;2{$OL|8cAG@aQG9!18p_HHUHE+I2jEVvKo$h z@ErkOl``KMgkafJ(vQtHr|hR;&CmpAbEpKLkmW?$Lzv;@TP!@3K}?i80P3*OW+^_j zR{*Tt!`s9#CeJuEvLhbrgon@MWF6@TQt`>L5$?TME}O8}mFsi1*8tui~zh z-DIjRQ=2#}>>%MM+;6gWx2t??q47SB2F*}WG3!`kug)gA-_1!AmM_Ranjjz+VlDJnAN^Tw`!_}m#2{stw8#kHnE?ANzSI{(E29g@b zeu>SsCiwDMO?HF0G?NL(#(pzGL=D?pV8itE3NwM2(Xl(11y=7YZslrE8T1ScK)R-J(=Bta6C;H{DnZ5mii0$4j_yXh_d>u;;b!{xnwOvV0G{fG{hxqZiFr48sl>AgGB~t#ZH`h)rn2e z)Njt=pr-x%h{0h%n>s<#h$E9(9D|vi2Qx8Z#xko7Gkc@YWo@NdwY0g~m>wTRIQAYJ z1Q>JgR_93hB7t49S-<1Oy;*#d*xbpqiw5+Cwv$6%1e*=^aCrd3YEo(qYEFC*QO74I zOaPLBW4;3%tg!8bD|-yG|7j0LB|h5DTQ@7;GUxV*U;D_ZNp-Th30tSDWLA?4yIH>5 z+@t2~Vuzlb?}v-h_zTf?4dA~D&1(^ENQk?v!`2Ujuw?o8QjWRIYnvIS_Z;`b?tUin z)h2Q|j52(w6Xt^9ds83I1@#epJc^39g>Cs72YmrFx5{<90hjf{)k}60&sOUPnmq z<%+T#S-NS?5fc2kqAVdx$6ezH2@WdC60-C%Pe}0XZGO zdGoK74G_et&HNJ`Yb}=k+!GRfmG*%pWQpAYj_iYvYR>>gYyX}00Z_E-cLHnIT0heg zPWP!`YS)3(f&;YGcbriN2-193VavDk-_&y5wA|UQQN0A&Ug6*EJn$IT)Lw$Lf+b|> z3!ac5J<$@fSz?1rS#Rfd7Jr(yzK5;9+l{|If??}>T-z}qRg@)U>C>K&AYI53vP6d}WqkzcRhEz?8WDs9>1&pdB@SZ{5~K%OLY6p; zK}e8(X$e{KJ=7QXK^eb8HQzt>3sYDLlwUcbG%a?WL`i`5ysst}_qPMb}HaS$4;3>}8x5ko7*;X&86ZAY~d!1)b z@V7cUR9533BWix*PQK1D=jxrcv9_#V%x!bRIg6LB2$TJl(_~WB)M7 z*c%M8Q{(+-FW2VZ=*>WoW+-QSvh~`kD}Cz-(h5TMdj0qoPe$-jY6KyRZ6LVV1cHm> zj^JVg2rh2F;F5n!mnNt;X`}fpWmSS~JWP4>zAegb*f)zHTW{$8MnCuSc$FZ-grSSu zYLIbb4Ki-6LB`EB$hdJj)CB(c5(qN`3NjxKF4|VYer|sw^~y0>8_vmWNh=B zgYg|VTE=7CYQe?L7F^u!!m-?@^D(N`@m^7aR1_oRz&>jFhAgByAkF_dgd8`vqu|`0}`T!Mcla?Q>hCAIGkRY9_l=X1U^9)DT zLp6_d%aJO@n&0J71nG=0+s*r^`&#s=bE3mfAtuecDHoGKNPjE3q!4;%eWPDqia}|;AuK@732m$i8aH261ZQdOb)K5 zaAD1lI5jq(qFYtxyDh8Dp*(@5`Dx91TC=dTvh1xYjZ(|m+!9t^=EPPBQWGJIRVj6m z8J~-?OV*v1xsdr0$lq z?iRACbTWWt_=AMu=9J;)0*2}QDOR~RVYiUBNzGpzQca1twBrMvJ-4vo$EpEJ*%sSe z|5s!lp*0S!W;rAMsZL_Scz&>c*pW!|uj;%$s85`2FpGGu_lG!#0F`fyg``R83bZKI z?o_jI`EaWy4M_5e>Uz1XEh`x2_~9yvFd0^|XM8#4Xx0vCL$;EiUo#YLd)3wOR0Wn| zO-d~=o>gLVQg=&QcMI9PN3Amda&0i-w>jmvIp&8*dLRi{;wm^^H2)5+Y2p{SFm?zv zMJ8pvSUF%UvE83=UQsx_uGJa`S5suNhF>sl{({Q-hLc$^=CbU1m3eSAAreOVORf7^ z*V0~s+)>BUvOa4JnQP=gncsN%9RDM$4e=)la$w^ z^@$C0Zt-y=8z|cx|94T=b%-^~86^c<=bo{Jx)wrIu9PdK3Qf%YNi1mL&193iEQmU>@!UU%=hq7tH;%dAJ*V0e6F67F;=B0fwUHvzii%D+z=fkc#lI>DVlO{ z*C7@I6kGfce#hRJF!*x>VE*TYvzJ9x!rtCaI{R422z!mH)QAQbGFtrKT-2@-qyrR0 zAiF4AlG!Is#I6v&gumczM9?cf5SvYEQcD_3aD=J3f( zlSOa=w*_fZ(1M`X4Y(*<0Fksv{#Eoeu-~5w-n@^ex$o6P)of$2@DZ22Rta(sv~asi zB*juBkD?G(F3PQn>YAJ>u3VT%71c&$jO!KzOR>yRYLWBxiBvK*L0u^0f4p==n_|SK zG6&;YQa&N-4ftnTv%o*I?DRv@RxI@RL#ips8!dCWv(VtJ>KwEbnl9}M|B1|twZ_5K z6q&5yZR;#V*#)a{k$I)cJh+-7Q~t3Q(<%hB_?#Cg?)YE8i z%E+zOMSq{CcK8?9YXhm2fepGKt+|Ei072ilYAQH!PN*O+SHu7ARDqv!g1ZTRT~U?n z>QajZuVD9cHAr(wg{27<^x7m#leqP{N_mG`qfYP-6ty&~ zoP3WJc#5K^A(qkvy|Q(h?tteR>s!u#rkc|0%9*Yo+DN+-jgvuF&Mu9#DrZw|Ol*PL zym@}DO4+OQ!;VB*#!2?yG)pltn%6!U)(SE+8La=Lbq=5|nEBY+FNuSsmCD`pyRf0Dt%3cFt=?$Kc;F}z(=4FKt z<^HK7>?TOIBBZ;;lINIg0^8t5j?`5$CBiRsQfe_jAqy1~n9(xJIx*emm{ti+D@vFW z_Oh!7Bb$;hP?nW!W?zeiXF1XR1OqVyy~+CH7P9=zF$?{zK9PYCe7B;c8|p2Ve(VVe z{-%wPoZ}}Yz0xtL5xm2pHdD;cJ&Ir`CcT0p;wa*!u5vfQuyS|O-(FX;c(r5EL(ps4 zPmtQ$btg+yxRmu148`{(;w2i%zvrmXzjeazug=Ia+WvMYt45Hm>ynN?^*A=`N1l=( zJpiYR#}Q_ewYF`U|I4;gKHCZw=M!#M;Cw1T2|`M^UE29xjzV&KOK)(oA8&E(=q5;k zI6I=S&v+_=pL3`lg5PzhZi3XP@Ej`3QjuHkR3>CvaKK>hqLtW!*J}ldGSv5@0gjCR zBf!O$;YHS%XDREBSpr3lY$Q+wJG7TK=u#Q=R7RaL*tG~n1lbT9isGi2y`95qoKV7X zYQ!`23AG5Gr6{WwOP6>;f*aZhS=#9d3GQwq4AqEXs&%GgQX@!3M6Ftjr7JukK`OFX z2v1$oVi{j|Gyjka5DXP74!%_AR9Cs1U|6|R@XazZVN)=O2(leE*0RK=fRG?tVF_89 zaBB4s4Aq)HD2pXd(8}!i-@6YyOckPWFx8|M=}+5UoClZy$V?)hW<0ZG1H?u{D*QMVA<>W;UmW15%4C3R*8-bI1`%^a zJ7R_lYZ?Pz%CMd?tW!Y-0eBZd>TDxSthEh%v5?=z4yBBqMXqRYEH*7K)4hPp^@$b` ze6pf!3s}0^6B2ww8zD;{_JjmK*+$6HU7nEOkJ<=X`n4xa8xmsJsJg3Aqxv^^6czn| zM-ilI()3!3rEhscf>g~Cvg8#lTtZR3^Bli!f~+b0I>%evUb5QaSoIKOi-lEBi>2#4 zAwk-~60-F7o{%8zUYzEhlA%&7_q0Tp8BB?P|9JVbH6t#!tV zSGcwo&kg1TK2&{;tI$JxO?VX5ql?0~2!33t?$cZEX(LQ+n_Nn>lUR|GiFIO?69P7X z+9m|-erlNz#0n<_zF#cFDGsH;MZBHsvC|A%Tl93#Q1la;h7^@A! zSWz=c3bH^=nJTGgLpxA#gy|#YY-NkezdfLf%_?jEQZ1;WI8``@{bk2GG zG?pi=r$kzOUgO7=OBtgM1HpoFf^6I}daOPnkKhH0vVF+Xm7b8`)7uDHdX*<6`1&?N zmfqtD34XMVkfkqp!npNt8{I$9Pn48x!5S%TK#dLPRcdVBEoo8z15R3vAT<_?)LJav z?gv_;nLxP2ty__-SH{jI7Rgta=F248p3X#nLuUNRW20ge<+* z6B48yEFnuD@`MCw2TRBj+qR%oVUcq6{rbPtU0s(QuMJ}NAXQ+W%sLD9r`GRJ?cASQ zv?x_5+ii2Y7A={CHmbovk`VBNZq*Zu%zZ5uIHVASs60D5VdRVv094D{rA~QxO@;Ya zFpIQLcWmNmu0jtR^(2p?dUR*_A;H%v)qQ&Qhua9#e&~=^#7ZXCiB(Pr*Z^vq5YSbq zWkL`uoDc*ZW5D~eb3IlXeML1n8309)nv0$5F0OJi03kuPz!Ju47dS+iR>YQ;G=O@p z)eaOKVfu)q22}p}0bOiXsT-?QoK}zv+kKz*mb8ME=$!NVY1~;TyUMiqyvC0!moi2u znr{JV#r~@-o4?m5q!Ij-L-i8;tfFkEvXp7;lJi*w7x8J_grz}GNHA|BWa%`$JzQ|& z8@F1@Y{V;^#x;Wf;81-8KjTn!f^3PjtJY$v?6p=Swfb4 zQ}qP0sDZ^eHv5yVLEQw|FeFn1*(wp=?b`TVUzZ@8UBE$OwPWlM(!NKt`D6wyG4{wHQll)1DaA1VhvI6qvTB z$h1AJ)U-WCrtN8^rtK**ZBHvTZBJ}kX?Ra7HEvIATuYdmw}<8pO_}cY`xAd_PMVL= z<$qH?gE4c)d_Edk|Q$m*ZQ$PEOu0P*h&D7o5 z%(rNBaqZ|h!neABQ6+19f8meBdlgkI2B{DJ-J~>RgS(Ri z$p&%>cIHUad~=J1{!O1?K=2N|yogkR;0F|CwPfi!*PLFm4WHz<_{kOv5!Yyq=eU~5 zUYIobzf`G%t0_{BR9TPkGM}olW;)9}>5yuQ%tvX>i@eM&Dr=;(%rg(ErpUZRYhLAL zK1pTOI?KHBkZOv|Cu_}VFY^g1YfWdFI}fR*$lR?pU*cu{AC+}>XPM7Fq?#i0daZej zmwAfHI<2$J*Bnw!k@;4w`C%{fNR@R$XPLJjQcaQhF|GM^FY`Y+&O6Ke^dZ;${2|p8 zZNH;6f9tjVfol6x7qAMW$_=6Q!yQ)*wXHMe>JjPW1wD4`7hiOl{(swrG{Xw6xD$_4`AH#?yPE4b_Q z!&f?@f?j{=eG`ci?@<0D`Ik>K7G7xdq=m z$F~PcA5gN7>JwylD|nAb#mf5fXEd$(uFH7p1b^0+@v!s&pCAx?n4-iqgirTmURVsJ z!fQps@e{bJ3MFFEO^^buaar=>i%%Dz$+wi}PhHCg2vQu3N$@eQJp%+Oqms?uEWY3N zuUukF?(zKFDB21ul>IsZ=iB2$~5!8K~yPwv9`nOlguBY z%+VT6kM~ja;R>GSQAX|HPX*WX4y|S>`=09YBYhUk03wMK#EEY0Tqn3(QS;4NY1LX> z)sE+&MFy0a=hxcmvI@cY`#^S@79Ok5F2th6r(P1*x88jE6R?v zB97#@$5pNo3@fKoury~-D{a#!nsaCNEG<0OA)9v=Nd|7e#+UcII8!J12}N1WS^A16 zoQI|3`ASDxBluyDBEv6v6hX=;?nNt>ihGXT1j$*dcehv~(}J^)a`swPf-JCE7q?F0 z%^Q^L9Zu)|zg}3)w;WQQI_kdt2J$Q1UxJ;79l> zSGh{i^V6u}`QfK5l)eMeqJ3-|&=mK3$xW(O z!o4c-#Pzl;)+PLNy{s&!qu1+(<}tc~Cb-iSUJ>9fQg|}J5nisEi44MTa=4YPcPjj$ z0B5!Ge=DND{Ace+gnvCz##XJp!nca>lN5)&Ne6E5WF>`<)FezP-2mEc_tH9+uK7Y$al2rpM09EIQ-hZ-O_8Pp{F5=T}g_XX*h!fMl<%9kP&9@!5(oi11j#5 z#cc?V2sTFevNcp!aD+L|@rxY<7up)CDePiB1=pq*3i7)|{@i0!CfBpGzAZM)VD9QE&7E%VH1LHxtzuvAb6Xi;K?8Ow*9nqr{ey} zlXKRe^7B}MSs6#J)zDI$uay(?{BLZlwUz&CTjjg_e|%?o)h#3q@aq51a;#X_E=~Dg zt8V{QeM$;X_#29QKz4O?$!|}&;BolVBJ%tC;e#@~6)}6{4W%V3{?HNe!(RkkV-4&$ zM;<6|5rj6MR@%?HIxAX)f225!M1nt7R3)1#wVWJ3VwWn&r%YjlPw`~^3XXXc!AV6K z39A#@QAY6Jf z3w1eS#;Y)v#niGN@*QQ$uoy&0vMBidF5&b`tyy-Fu}aX_)Z<$(c?m(|wQSmP%0sM9 z_%zR#;Fv@85o|hCmEb!as*hk%WGC*+o}9Y5XXz{2NSdi&Ql2ja<+RJh4pzdf)plXjx7OX6qIne zt2#(-PxUBPaL>Y;eQC{PFG%*5D3h*-G>qB77oE(crmWytla0syQp#jQfpS_ZuxJVE z@rf5AT#>#I;fRE;l1-;?Lnvo&Q7!5Donr&3*v5h|fZvc)mK_bS03yi~Pt;tNJ2?^z zinefKJ4p%^*F|a{S1tHiNeO`Rk6HA2E}O0r{1=DnBY3w%RUPP3!KDAoPB%&^P$Vny zLp}=vjZxM7xllE@#B0LV_Inh;H#*b+!M7<&OiY-~E9hrR9?)t-j$@VJ)ebdC@EHzO zCFo@&6GJIWStVP%qDTk!H#><5`z(8re%NwE$%?&{(LnEUL~wFIAMG zi}^1J5rL6k9=I0aTNQ^$L~w^%6?;+ycR5s@;FLoR5}a|UIzivBZhy=7YclATI>l-C z|Enw|gb`-1LuG=#Yx~m9ahvJvoC04wQY7oHD`l6}#v+^WgIrfs3BJIg1_)9IsY%#7 z%RuZb^TgusY1`S?80%@x!dGRs5bR^;54LL9bjNm3yR@L6G7L+~4-9|J%^oS9>l5 z_d8S{!Inc+3Ht8qBgnvkO+|tX9MFg$0|%%GdfOy36gA$UPT239u}YAPF?tA+F>V+T ze3h%145+ek5V{6UEkm2OW+w`cFqOtn(th&kRFhBZawP3j^GS8WuTgzuK>mfoWLY>! z$r?}cop3x>vfx1Z0H0IeH0F3(=A=H7fX)XDQ>DINNzg(tXwruTlc~4!*3k zgzz1%a+TouPT$>a6P>ZZA~NF>i>b@g#Z)DsTMVJaZ#Mw&Ob^2jPqO=2&umRf|^L9u!`okomL$YyANEbMo0cD4WGRP2PjqF&rAW@xP z!_7>G$WUCK9GL>)-FyToq-bQAGi;|JCv7Z>`@e6S(jsn+o5;H<>!}_Ux7#-Up-S+0 zeJ;+XWp}m3@;QoMV(}~gutf}?tg$fuOR}d4|5KM0NU)zgJdxn*#4^emEyv8IAQdTP zX$q6fql*?ogj6(R8uT~LvVBa;?s3U@L7-Rwk+3J*_c`_hWb5N!1c0TdFwT#0z#Ur6+iO7sJF@}G1=Ne&k9OXH;qkI(s(Nr&g+JmE*nd1vWNzf>g1 zGk;L=CK8{*Ebg~bR=_?cl9v}zqovMS2gvth!6lry>XM?0F;O{7uLUGSp=%*Tmh-)O zv2F2%wv3Bt1Zx)&HAwI(MHL@m3VF(}Mt))C^j4vnh```KRH1dMko3exg9piYdp)>BuJ(ObC}dTPHQ~I*L<9U=XsP+hX2ah z7X5J85v3y{qbdH(5hdD}vJ2EGzKMx(7A=HG^y6*Lm$+M$b%N~w`8~u}zt&Z+5&W@3 z4H67FrfyTLPIr+y>Ah2H>$EjJto{?H&Q^kRcU5oJXTjPb%hv0MH#(w(lWWf+o8hti&1YI@+q3KwL66|K6=nUGrOLIAkl<0z zu_#N((xVg$js!1mBV=i>CnPxg+>j$nFIFr#5?ua*kdUSIiUlFTU;b%GXyJmt_i3G4 zk#%aV)H<~y>(pAQb!tV{skKt;)QYTAYo*qy6GY+KA*poWr0G*Lu zWhJmg$HLh;K{^&@CW7=TTbCs|7U~kDW1%iVI*YB#68!~)1nDf6kR|#H2no_zEFnwu z7Z4Jpvsglw=r157NN2HxEYV*;NHBDrG>0i+btTKJ^k0{TF2*gH;^`Z70l^Voq2US} zocs6DH`tRx$o^vw36A|j%L|TUdQQi*VfbDxd?G}~JtMW_P7qvdZ^6Z;6P#d!$UZ`WbO_T+fggPPYL=qUhKmL*f|kJVRm__5y}PG5q;T#Bl5cm5AcJ z9BM%vC+MIWQ5=C`HR2dby&lAHyao)3;_wX_635KTGbDzQcd6+~(_cg}4g|7@Vps@e z5yv?{s74fBKCDI@!+21QD29=+8gUHjK{cWnX~Js6F~kSeh+;4bs}aY5A5d z!mAwai7mp^yf`46kgN?@h^E-IS%rQ{20RPZ>IOp`A|SNtMC#@otsU zzed5&IaE%Np%GsIe~zwJ7^Se~%b>(y0#qCXfQkn=P#nAubyGwbmhWO2C9eZisFTCWifb@f{Z1gN>xsd zbwX_fjy3YZo{BN(`%j2r%rBS**qR`C#jOfHidz?a6t^Rt zDOg^xDagpe0;u>M^K2<7yuG=xGUZS8^yf0O} zFIBuRRlF}%JlVEG*l_=-v{%p#T(3=@YLlnh^Y`sX~8v@)-3R8g4#Z3`h+!n#bjS*aITfsR?Di9i%dOp*2b?quuiK=7zh&2a_ zioZjtfm)%#<3bltY6P!TRMF9Us1ANZQWf#i2UF>TluolDPQ_NcKLXrVRgTtLj9gW| zJr$dbc&d4e8j1MWQpCqS#d0H&J2j77i>F+64z8^j`c$sPQ%?H)Q@M7l#DwSw4UsAag!WP7Wh>xWaAB!Y@KDob&9KJU)00~y9og}zewBTadf{VqL z9D>5%=7d)X9_>72=48SrdR&zX&1k#jSCVOEuVm3LCqGHKY||H*m zqJI%&@PxhVRH^(8?uf4XDh0phP(7bi$MO!=!zNC<^SK^^f91An_GE1K*Y!9}M)im; zhWENfaSy?ly4{;SaU*e&%eRUxC}&SQj!mH6f=eoA?@^^b;q*;brwk=h`3>6m4{6IK zJ!X^1N^oo+2bJLBeidBYv4V?xR&c4}A%PubpPb^oYBP|yMBN`4UYU4#8?qKwu$c>pgvlj=|5r}8Y>59aM zZS(Ml6Ye%aCU=en&IT#>&I$DomH(}-r>kjiRoOK@SXX1GDoA+PigT3roAt>S$AXBD zr4b*CB%X5GpPN*gZ&^KNjI=c7Id7Icp0KOYQN2}aDZ36?@^94kk5kr2?+8+9e8c?Y z*i3?pTOznvw&2=L5`Jlj!jE#oy9sirOPWoX!ydTAL4=M9(I!PHdX~LSh50etF-sQh z-=;?5FvFN8NZk-l2vW`8OLX!XwJ82SRZG#0;o1kvK~5$NATX*>7X90;5$z>zimMVN zV+w{dJ`X8Lec~_*W0m9JJwy&k>uH>?1wrI z{Bh38WJWHcO6TpA3dcI9+-8+ccy<*?PI-16afG9zri-(meEul(4a?LV(w5FAt&(kf zmQ{p@a0LekDN#{+Qbd)SET!sXj3W~DiX<;hs5&+Ih{#KLRL`?_xdu~j@eqiI+7`^^)gZnS@ zT<2IY)BQzE_ZQs}*}pGly2M;6WAuLZ$>(|Lfh7WIFZTF~^0$Fc{0 z`fQ66EeQJ_NN&~%84bBa4JkOnM?2#V5acKlG8&xb5FG8n5hS?S9)hDm*m}XmV@Ghl zjTSmm9$j5TBc$p-kHc?U9&s$ue9}U13w)IDI~9jqn;_j+Iz>PITwq(m|ExIFBuKMk zoll3q+imq!3I4*N1_*LkNUQ1byt*Se!W;!qjeYlPoz#VlF#8aC5ad`9GWK0xFfs^p z)Sy)a!vSpl`kV6pM2y!$EH~Lzqu_tu&H4Z+( z#Y0VS^c6lIU;*qeBg)Colb9ck(@%q4XVPbZ*DVpG&O z?N9>*>9N9$@V_gW;0Qm)x$3}b1-I){$Oyl|k!>aDJvygH(^qk=A$C>xTkNUA|3~Vg zbWePFiXhz+%m^~tNKL}@UXamw>78Ik@acg+6Q=V*HTv$mlneBFc>@TP!_FkKvEv4;c2U^?S&sP_|maWDrF{!2$TK=2z5)lcw; zuI8SMaLG+o{RDYoMHU#H2Gy6{R#QJgPHDK#`-^9|0i(cC`Ydy}n8Afo!5};0*oviI zVuqO31gARSq15~e4k_XyId zQIkIX5$F1Kf}A@*wUDV}5mNj`>YMEkdZYKZG)9ZY^pUp*K0=s|A;0!YhhQ2ZxVXQB zA3KbJQg94bYl0|5nD!TbvE8Nai#25YtqUD1T7+p*sk;zs9TVEhPokBIGabh_hn#3Y zxM+A3jRhu7QkRZTj}{y)ROHh1RiUHRI(eqh(GOo1ScotKFMhRxAYIf%NEYa%pd(1* z8ajF`-BaY!;taj0OOR2xXom=P_Xe+2Y&W=d20Nh0*xvP4v!!9twJi2a+&yN7`}@nn zp{#>-|4x<;`5sP-KQLS)c6C{cyBpSrYH?hL-t~a{-J2ohj0YT6e+I{%2OL(9E>#|< z85Gwq$V^?Z4uFf4j0+f?#V|`?-VIbxAp%*SYa)mt=vlhu5i>qerBaF#{YY9?Rs_Ya zb9rKwAjRXDdI@2wf)^Gpi3JO;NK8XnGarD?9L3Dg3T%pBz0Kln3kgkJM03_IsJbXy z0FfBr4%LiVFj5|B#P|YK+@@0Hhgy#-&H^1u71=N3#LcHPV4)LUELM`NL#-=~Jx|js zu8EPKGB>zem#jd=Ql-36YcjuwA9I3W(%8|pS)WS=*p#4W=~fS1pMxruQk12}DobPK zAI0{o`pAR{QhYhvw}dcN5jTzn7rS<;avXlL#|k?^mmeqTQ+k@|6`z9RO#Yv4S)Mby z;#0`D(X&A_Dj0)_&sSW^o^uW>oSE$-8h2> zDo)^wnxH8K8NSx_XD`9uU53&5Ftg*flGko)YJsh(1(F}Sk)cm!Tp3{}XaO}P2$eE! z;(A5g?;vnVjf1s#Q&jxWcBTI-nk@Ynv2 zwf%Pg0#8>cgLcDaE00Jxmr0v>M8fn>a0TZf1*aNmn+tS}iH~zH9gBWIjuJnJRDMt z+J~7Tw_~}&gbUCLY;r*cCAMcx-?D|&G;NSSZcT47H{W2Nk9?VZVoRLh>l9@Vv03`C zCnWgESJ=9ikfrY^790uwx{Z*f^A9-D1kZV8$dRQDiUmi4KYCS2$kNhRJB|cze_cpu z;ex;SX`Nb;b!x5DI<+F})LN-^YDLzmwNmTUimX#>rPiqxS*O;bb$+EbLw-syw9euF zg{0KOx@p6wIbZ4}NJEM*br+bmn`XV>?O!fv8u4det{5zuXLT!OOX9!>#{^gMqPs6zsZ?^;6q+xQMN8i zf2mlsm*5LDjj@C*eN(X@BzV-#AxD-TtXL2d{6rfeOM6~xtAmi>`xIqGvox*)6odrd z6pY#K7EAB)gakwPJsiJ~l)7vWT{iU3o&x{up?}i-q?J7d!@ehV#(~rsds1f{pfl2| ztOS9Q%cq7aYg*1v;h;!>4QEMIkco8L1t2g5Y9%3obUT;9@HZ&JJ$> zw>fHsJ8-xSc3@wD!4B;EeHd(Uc+4GTAKt9@vijEyJB#!aUGbDy#FJMR%!=JB2498ATi73v?p%%n(f)1(?#Ss`* zBaWfe>p=|1Yrv2w4&RU=am>6tLt+?tgP+DAig6&2MHItAD2q7G`9U?J=<;DT;uyw* zYD6)Ngw=>+P!FmR#YhuYBaR_Hs74fnQCN*Q2K=BJQH)n%HR2flgK9)^MhL6L< z8lK8A7*NY1jYIl{Xdcopqy_OWBz0=TkoEx1yzW`rV(Cv5iv`a@8idMUS-PN30Oi-0 zE~p#i7m}#BcL|>|bm~Ic>9hNN+KcAF;Q6m^nccrg7c76~7A`qKhDPkHtkKm9qZD?j z7?c=HfQo|vQ1JiT5ct*1MI(;GlwxC7?=Gp7*;v)GF4<2YV{Upzl8+hB3cj z8enUJ;1#zj_$Y2&@KM~#;G?*;!AERe@iT5S))H(in-nZB*c4>saT9=wRR=0o8K_uQ zpkmeR5b{_md6K$}#5Ka+eX3Oa=WdZ+&2($YE8dqX-j^!gmnzCTFS1&eW9l)%a`aA zvI)|D@)c?}gqtpeTyhbcGq^_-x+?1mEINb%K;H9Me#pjFpl~nY%xQh>Tce28dWk;@NsWW%gp* zylv~LZIdRFgMIdCO7={B;z9zqT3)7WWT3dv^oy82u2`rrsJL+OYmq*#MW`33IKmhL zfNEDMF2yPaxpAy&@KLOC@KLOK@KM}^;G?)H!AEhEf{)_Hw3p+iA(xJu1XSDr|Cg%cS-Y!zD|zlOvnQ19YjNP3zo^&+S5U~EQ) z62UjL@z=U-r!(D-2U$tV%=U3m2`=te!NnabxVUEp7wgnsrdE$|1AUO->58(yLBif) zS708arteZ2K;5n&l?RG_<0HZ#RsVa}U5VvFEvX|d7X%|34k&8lMIY{9^t8y0nL5)n z4^>AXo-L;<5+AnB!_Q8*+XR{1ITkn@q})3v)NfV(V28H9lBZW2eFeRhIXOP@{uCmuidAL=jrArzwuGb!Y_7LsopwCY z&0&1q(AplM3v6lDHV=&F22nwo6PcE1(H*q@(W4SkWcK>G8a}BRIkw z1yGHB_uioI2(u5N2SJV%;l{pua4<3mbJV~d1j7NevtR&mF!2fH2=XaXzoAth8;lmh z=O_+R333R68$pgn;YMHUH1>p!zQ(~PxOk`uF7~wtSVZ}7{X!Cbknvt*5yDI!G_Eb^h zR&`OjC%(!?knRa)1Q~6lCSiIn$mqQEPB0^Qap2E{>AX;lzB{92NT><&$|R@=ULPj;1_-ts zs-NInUClii;SYK;g1oRI3ye;K>VVE;(2XGTp~CMu9hKRC$o=h)bYRHI1(}8aLK278 z34!Mm=174ytM%jUZZPx{8b%K{VR8Fv}DB(}| zfFtWA$N?y19D%pE38a@G2c?j4R6fKdR{aDyI;ElU1cI@}QORK^+z9(2*vlcvu_a_2 zTpTKbBg`>^P9Vr9g#M?F77h!b2y!$CvvfG*91eVOp{98g;?vpe<6wEn?p{d5iS}YMPq@9lhmc-)1w7P3l+IE zeO2gawN9QXbo9e|U?IW`y!iDZf^<<6Az7f4f{q}KYv|~)bWf2>i!=11E?qEo-Y;vhiX~um$+X@Vz|G*EF8)@SoiN_>5%W?wD<$VHDdA$Nr!52T!$V%@_zSbNLhL0 zVfANltQ~n+J-Sr6N4FrkenDo6lr8!9UrNRW49;ShB{1&>DyilWtj{$O#1Ql>-SUVT zAE;6(MTx$XqkyEH@{eK{yF9T|g@h(9qB(09R9%!UfJh8*jcUd$7%2}mVtfJ0*eUo^s=QU}am87ngZ+ghPTYJ- z0~R{r1riOo2!9W?t~B;PRB5h>k)JX*c$3@x>W`&L`4~;inBT*XIYBUK?C9F8&m{wF zO3<@(s|T*nL6u4=%2H#M>Dm-~vRh|V2~xcLLK0!BB5oWDE_Utk7m_}&tCTP4Q+k@| z6`z9ROn!%3mgmf__!Kg3^c;1wZ5@ok#OIYRWzV^d$ULaPS;ZKKUh@Jq9aD4&xHZ|{ zNCt>ic~I*zg-6{ug9j>3;ES42DjAMsIOO`Xm*DR%!$>&H?6|GuwcDCnU~6iDt=544 zuMB-M7U>V&O-`LHPSX0=o%C87n0)j z1T4X&1%nIb87|{~;BvYya9rK3eOk9 z4vHLlP42sJ(T~}WGVfL|2P$s7xci~iw48=-woh&sKm=no7pg!J$H> z$|4wcR8KNdm&yqF_`m)4C~Y4bCsP{XSLvNs0zp7p!<|6FPdTxs_ouSCAxCp5Zun_6t1{Ezv$wgX( z^b65Ozx;on)|gZaVJqj1r7f0Ts8|H5g(!#0r!8HOk>u`8H@ARDv9A4L?Z~lpk zBt4&3ogd-?L{5-H3E!WlquuI4K~C^*9I7WCMn&mX#(M0I4w3PnRX2_R%)eA*hm$&R zy@F&6s#KA}-7q@>Vkv$QQ5Xl4|AZK-5e%7aL#`GDh7xV_T0E!?LLI{o( z0V-Ais90d=E);#Y_JfQt!oE+cG}GTW7pkV}Y)#eKnyQm5Dmgh&6)!fYSl{G4m64}1 z^0>)aHl!}(S#`%mc6Fa+AJs$xyHFvtCNl3UKe?#;9^~hu7G;El$5C?M3t{8 zNa2z?shmI5Cs4=hG<=$yj%x(ZQxs;x7wq$*+93+|QU)l6EyNg$8+dTT?rUmBHjZC% zh+9ZJ6*yU&NqpQ^;@ex~OLrx5?H5N?ZgbMakE! za_t?4^Lf6fy+y0ADs_sh6YpCeLeGe}V0AzSqt0>a*CZ+>_q>Jas}p9mv}P?7@8L&k z-KsvJ2tl?G#yOeF(Kv$hOf1Afnq_3V!ZEE9+^;D4b~NDw9#^HH5pBBA(IRY=;9}uf z_F3gZXTq(9n8;;2_~0MZ7daL%f(UY0-0x%Fhx`9_(bhCq>45f;rJG@LiF3nlf*f`o zy#Rf3xws!os!7?x>JOWd74_Ne<+iWnzWn&UZEl6Y%S|5xTtw$7Wko|-pl zqrKnHwHKFLve>J)m=$vRwb*Z|HOSmzy)G8QuMcMA+P0!AT&cyi?c0Gphtq?KySXhpJAI?SHCM2F5bjS_(u!f99W3(=iQ>C zk08y0V*-Lj7GirrMvx6b21}4_0u`G?w*nQxPOU^u+YJ9#?i@1*_04-<&^*G6oC6FJ z?A(??wuOp|;i-8iHHFS=XdxfR->kZQBhZmB6_bl#o!pO_2_0dYxkx%r2lQ=jbbz9! zha3p|wx7Siwx6H0{TO$j=TN1G+XM^gfsj7#iDO;xI8<%0FL3qJ1zE#V#u`ZZMcVs} zvPdL20=OFn)Iw^SO|!VJLB_T1IHBY}QwwdR7|C|JVVMG6WW^b z-;`smh-0mlax9E2S(b9_F5=i-z_B~luAHS}lSHc#`ATM=<1AaHM5eQpayQj@<-aIMAC6`qh_*c0GrO$hI1Zj8FCHMqqoo<3O9HeQE<54?&$EjfXfvkd_m*>duY~ET~J6#{2&<#=Pg)+FJk8 z7ZGrPxKc- zHoD;V#=5|O%F=8&Up$WRH=kl9%ySxSKjf(Xi6gEO^rE+>t*xf5-I}&`s})lGm;HLI zZ#6+01g)l=e|0lfm7sULL5hC#u$2W167;^PD^jmbDWjmEt^Q*RVV=rTB@VW+*u&6f za-v4J5TtoATo^|=QG<#gCu&d;{D0Mb34C2;nfJ-kHppU`0a*qyS{N(Z7%G&4fZZ3M z?M-`A%F^DZ$t?-ZMwUX@8dgzstcuE_CW?H5<6uQ_Kp7_vFruhb1;2_59n_)7C}l(} zi10n{dH?@&&VAnZO>P3t_}$+x`9JS-p8egnWo7Cxam%8N-<>)aNRrPvx7K`{&G_)&J_tWOP;^V zgd)i`LWV_pD$8tQrcNbhG7pZfah=NIj5Zx?=QnZum3^s$b0QP!Ydj~aOiXbBS-u;w zIhYH6q**`N*L6t3(zO#7E64fh`FLyFuT2Hkj2nE-ZQsspgTg$uWTml-;wHzy&j-3Ic$j2LN# z893Aa2Ne58U_3ZM-vRWzTdIg7J_P<4Qgt+E$q_?r4J84t(n)(R!|rV?idoKHolg-W06_aR?D3fXF5kp$8+L4NK9YLfjW(~_+%sUXQuC#*)2Ur1Qq>o5%Dm_#g3 zW2vU+BV(HkwdW+-4J2vBPDQppn+lSo8!MPClA)#I(V0+cPm~*3gNsv^)-)rtX~LQt zC!{HlAAugTtBiV`l^~i#DPm|P;Bn$)vF2Y1qKXf~Gdo^}6v>-$$a98Jk?5sDPIpTw z6EP+x!=5BH{XLlNmu(2-H%UN^Bo8QBL5Y#%fneE*%+{MyL6RpYtVWWjBrNZ+XCRLx zf#hi{)pY8>RH(f((QY6~E4CJF%}b(bAW1j=qM2d;BCPL|C^xbOhovmWL^Q*`0*A-1 zIe9{wm61-=KkO+*lwrTfw*m4vakODS0}-?1W!RIPpH#^i0~Hn2ONE^7Hp8A`>^2$p zB&q4|LG}kRhhQ#Cf@&mr4On)Zv-QzbkmQXef^2;`6(l)QBFNScQbCeGFA-#{A#`)d z`*O$+F^5ki9`hs_wMjNV#MbSpAW24T1=;$3Do8S$gS%zxT-+QQd^t3Da%k}7(2(SC zR}xwSNk(ml2wRV)f+Vv!xMvP#H88KWP-MX7>{FN8@aTvYGCb1sI4N|NN+-n7-o)d? z&{-;jKUW1WCtb|r3LLUstuqoqU*X-ZHlBJMFKb+T-m}=v6V|+FqM8-#C{9ONyh#2y zQUK&;@?ihxc^4Wknl+!43_EA#v!(* zrGg}nDiLIBZYoGJS0b1VL(^_pd0$xhB&@e4-tr_Fh#it_otz4i%!cKbIvbiBR)a6B z22WTGzOWjG7}mlhtOkRs zS!Iq@DJaRTvO8?E${bO$LXgZVyMrqm35Vfjh*iQTc}+?9Y<)BpBza?rAX{Hf1xb#S z2xi03v>R657nYpJz~m}bwLIB$c)g=Fzs5)0s%t}!ay@m!WqG#Z3RIg=(RuMgh@to-bcD6?Dmw&>dD$5ng z@3mTCxpqnN$6(o|m#x8b6G3gBZMr$~9E#>i{wQ&?jwB7+&5W(ojdvK+l||QK109}_ zI4qE)3*)e1h^_nD7;J&$bfjtp*~%vcD3EL|5oGJ4RFEXIvKC8|2&J-;sZd!yr}f{D z=aylO)-{g(OQx%QhE^8G*Kg55+oi#rYneG>a1h=8;iUUlk-Q^e<^CPyBPr`=Ab*#z zR*^h1>BhArj{-|>FS=lejd!MU)6k*kBpthoBs*AUzdxNQ+7~f=GcmY|Bu9*Sp5vN# z9U+70Ey*ZiN6U^tlHHaS*IrGV)qWTrYod#z`nsA|4o!^HQhG$&k#C|!x{BuXb~b9T z5a>JQtx9rcB>rpLRna8zLK&irjo~f-ilVV^W9GH+c}vm{c^!5|bX_?@QFJsM%mG%L zJGv&bLw<$IS+46Oie|kEeKXKkLjQe0`8D#XTo-0yx*MMMT_sb){IM`QpdS~A4UTmi z{yR{SV}P+J8|+7are+lQjh3fh6;(}m6je^HoXinOv~Qg_28sSRRFfu8a`gF@ikd|7 zb+t|V^%x5WCG$784VAnT=(%Iaym#Ufa&@BVYzW>Huqb*EhQFIS*b9T=fMhRlz7AU% zZG@+*fN@vrq*5^kCSvY#Y}BrWog0%38rQ-9h9nN>jvcdfZ=H~)@i_#|+f$$19oLNR z^K%o@G(Mwf229URU2ykpPg#8+xgyJHk5y0qo8&oxM>m%0kU9zGPfI=W5V0bfH?|Ok zr5hj|ZL&NQFvvQf*~lA**lI}yNft{4*{W<$EvEi56kXGdyqhLT8^(2hh^^G3v#gsH zkM3yq_OwVOnVPtotg;jqQ#>n4v4O5{Oj!9_K&H_+_r*=hWGSn$v>4N85R-W*4e5K* zI7!~0i1pQwE-&_#NuW;bW+!IwcQA?QyqbhgI?PF^x`qi5Wl25Ny^1}>k((@u2JXQ~ zI?NR4|D$3=)eM#>#W=++MwKHc-_&>SOS5OSa!MQh50BDx#+VNHYaMz~H6tVXhhCK< z=h<{k%H_=`49*m)sYeWTI*${pqCU6NO&~wOBp-cZrx94nr)e%7>GjNaImxFh3%*vh z3%+(-?FqSD$7X;{EM325nITV}uv@=onQl$xe(rQ`gD$gN05+1@m+7GYgyu8J9#B6- zIvpy`xm~K53a!lAwzM0BbAn=)B6lmycX4M)wh3n!_G>n}nqHqKK-cfeUiiH@*|O?~ zNT=I!E+LcfJlXpkoIwW_iRKw@-F%u2+)YzWr$^0|3MRFb6^t6bPBQUXmZq6+TGcnv z{azcjs^{!9s;GA2E#GUEqbq~l_3Fvhr&(USlPB!cr&*rQbTp)Wy5=FLPn}P_qKerN zO7)zXY!-nX5c@UIbOGsfv^lD&Vk&f|JD4kzlAXnvqhv6Ta$XxnW)t9W&YWs;A|$7h z<(*bmO`#&uzqe0zh&B=S7Txe03> zNoFr^D@ihS<653J1f3O$Zl2`kgtd+&t6_E7dOQ)#lYCzntFVsbU0_*Vw(d*nx{f3( zX$9GupA>N&$!rn*p9Qm6PbQ#HI8OwbV-d?H9YOrT;e?h@zSeYzL^CnuZ*57-deH{Jx zEj-nT-uLwt5r^N}WUM)#0YwpK_)UqB=Tk^m$YbeBSV%27A9R}xKL@c}6NfpHcO)#& zsO5}F&3lBRiicr?wUIkEI8QE1CWY_R+|e}MtW^z9cayX$o^iac(W-&l6kmcSr@T4S zBAw>o%tiU>aL1+RZNt78#;K(SC;W;W>e7_d$8}fHje}_s9U*h#$mN5Jze$Jlhbyn) z=_rh@t1WjFQJHJMut?IL-7mC7wsk~i#ZnVmSb9FoX$Gfu){Xbx?ug6uc$2mvQu`wG zmE4rV0N<1BeP@$oRC`5Ld!AyBexzZB^%`exoHFJuN$fe2saI#7niEs=asyn=%uh-( zUrmx-G+E~0|Ko+J7u%X-!kO|AZzZEVoaMSFKxKmHe9Jch_M^s5VI~ zN0Ld%*6$GZ03 z`j|%L#+3KPluu&1JqaLBk}mCz#@6;!kR)UBZ+%<>uYe-W%bUSbY&IiLYqJ%t(LLGp zT|cYnheoA%+M=hPW?E}wHBs-@itDOpA38*vEJAuD?FBzog=8irU6~_Uo3K`sd~?ET zB$=kMnrWP$NaaX=IAN_O`N@RUNRk!xP6QkOBj~uFCq17dd1PYnY({cn%A(uhl;y98 z<$f3TnYm10lFVGj49Ty^ zNHVSohiHOx2T)=^Q+;HS0Mm-1*C9Sucl1K1eLTUcj^=o@VV*jk-~hH~b~;}%YzM5613D0Dzh`7`bVOaThu`l3gx=K2`rrZVP4zQ$~ zL71Uj8PVE3uqq>wB-byw_F0Cxtof}M+18hU^6rG>Hn8k|$JYI+Aj!u|1ljs!DoFC5 zFR{+7#cUXwcEig1!paZ1VdZ^c<%is`^1iU#i+*O{>2S<&qUSr1r*DX*X;GTN$r?uT zdztc$8s`%iTYGjJeG;u~QQhcAi=fdLL8GTqjjU8Qg2o|V1n%2d8^MD}lF7>8eF`iZ z6_&OrtTX{j#ml;oqZE|BY@J5wct&6a%lDKNF6(L3!eu?VC8|!c8GA52i>mDb%9JOW z7IKwaNay<)711j&!4c#+ZL&3?;B^>svLw>Mf2XYDF}qW9&gr=MkS$95rsfK+xq@r1 zV53R@SC}7}thPoC_h1Aw4QO@;(#IscEj6U)CBYX+E=$BV*N{%*T+N^g$kliteGPb0 z9g^2(#L}=qRWn?o{}Zk%N6zyJm)(|`YbIc~u&X`s>exc&eEsB_bNb2d-LF}6A#)Rq zZgPBwC8Og&kd2vSrkrlF&KQ@gxEPW&$>AnXg?bf3uMF2y_NGgs|5NAJIdYRFH1Exf zNQEh|B$?`PmYAtPdVCd&s%f4W`hc3piB-`S_XBFPLom+kk{Mpku(#K$sLNy~o>+Aa zZ4v$bF~yM!OmT)ZzOJdZr<#A$FwArn%SsczpUB?%QPt%+^>!IyGoA!AvXjRX* z3e5hX<1N>#S!%SdtnaQ@XBqHomJ_eJLvLa}{hHcqK>Z>m8Dsj;;*mTInb>$VjE4FlyZM_A}HiI9_MrQ9{i z4tgTf!!Lto;eE5#rz@wKTGeyrIZ19ZGBcN+KL>ABk^KDIooIY5%cRl$kV-6hBpUC? zGTkyn(e*IJ4COjXC3KjeuzZ@IbTn5_b~L@~gEx(`A~uzoxV9PeEZx5&dP(k`PSj4m zX3+mDG{&b{8Bsp1uv3(Z=wY{*zM5xwBM5s3P%dGRJm69*D9MpL1T1?Ef~|L?f+S}o ztUSr?Er~gjeF-a1@~pu`$`bnj%LsHz;vqK^W|jcWTv`U2u6*+=Ynn;Zyd*uo^caLF z(kFA0wS(lC=`oHM)Ba!_ETnXi>%qBo+MefYbLKjWwr6G4nm0D2uTFSdYDiy~aUjV1ERvaWmJwZgd4wi8+|1<>(zKm%!{KJe z6zTD~p0YPx68&$-U+2h;b$R438g^7o^Tg2GcOEAOFORUiI_w5B=f)3eHVBIwhV$)i;Rmq#Y* z)hsnySJq3{t9OxdHOqOp%csgB%c#>q^`L1P$LnY;)m&$fW&a;DXj=<_ z-peBtT9^nGtXBHpT;gCa^6b$h`C%l?!uw{ePgg$k)T*A3L3w$Eo_~*_QWagiLw;An zhWC14%%suJWtsP*@lckT=9W^whJ9uzRsJ}1n4sq_RHOeJM|1T}j;42g@TO5##O6eL z;@W1=vvh|eR7vg!PSnn*GK2mAh>cIPGNOE1VW%h+(KHwzMM&O2K#1>%J@4Bj&dh85 zplw_Rl(*+3uS!^XlD8+U)g-?Hmc6LL)`l7BT~ywivoxv?WR zCg3!nL|gJ20snsBlfb6~@_z=u;&f}~2;g*JiE(MH1-}V+8Stur{Bz*%0lox$1z3Ua zSJ$}TvyNSV0AI-Y2yhs9i|30vM&Sm0RhsxIv_Iqd3UyXq%WZ@F-3sqT`~HBvTfm>F z{uf@Q{+biwvPEYD3ju5c-%6+dL;4~4U!7@niBF?F`7FyH#D%o?I~UaK@t4LaPrGl1 z{chN$pEMIo9R#^@6$Ay=+E17ye5pebUc56T)Fa;tA*X2z{HPo@CF<&SDtcnp|@T6 zQRbuLaJ*c3%B_Rmi1MTDufg$hVU@q7Xa4-JAtyz8h$drvK-FukqA? z{C4oCH(47w;CkS$4VFK(+2Wgk{9R+qP5)1Y-T}aafV7`VT8j362R~!kuZO+y#>rm; z*8cfZ!;FJ@@`t6FXGotvB1}91dGMEnwLkrr+upX%O^)Eivjv=pq=V>f?{+sp`u>5$_y*@=7{JD-NF_4OmxceYxIUjwzgex&+X@_dAP zC*nH~$X^Z6_P66Wk-rzf2b}Xc>BRarYk`kC*Y>E#hm%u|4;9z)lp|7(sO5JfUgC3T z?*aZ9_(s(8%|QNw0e_?5eB^N%@G2ntjlW@_{nx`DA1Y3{UqOE=o?ywx)@%Ja&|e8W zD`4-ZW!lpZBj=OI`J8U;Uq6C;EP4IlaXxjNdfL8z-1u1X`Vr%dy9;&H4;R<|^i##P zzLw_`S;xXjo2=$kU_Foz4_uG-OF%w*Q2ToVdGGUy(hrulkJ{CoA@l+ ze14tQ=QGLpbTuNMvc`u-9o=O$iG0vo$R6!dpQz=RbXtzaR`9jFezez;ZY#k@QfYZU z`RQ)NUyrY36OTdrM4*1IRLI^bu-5>5t?bhd^V)&@7_W{;Kg4D%dHqnAZ^8a|fZ9GE zU($v8=qGcGfX~M}jHOR`KDVJ8->DDj^Jx%7J_6$j_|^XYL_X~5hc?jPAdYK&KDK~Q zLAZX5`1E55XqS50zJ445>yQt`!^alfjJ)`00Y0dJdTXH1hYB!H?f?6bdla|>cvGL1 zyzK&uyMTLug9Dbo9XRzu+g=a+81PQu`!BM`_5U~ZTFwbTZIAj7!j9Je8T>yF9810r ze%^-sn9o}1>-gz66hG}90eh2SX9jS`82M}ca^){a9+ZD3P@iid$M`50%IC9?e*kzW z`Yj~??SOsi>HhjXtKQ04u zKInQZga6Qc)AF5=zXZtnIf8kq<$K2|PrDz09_{W3*uNZd<;qiz`O+@e7ajkHVZU7Y ze}w$^fj={&9+(5|*uu0G@bJmR6BGvRL# zcqQhu>#_TTwsutCoLkobt50FZ>U}KK*F> zdtkp@c|Kf+_zmoL_X$#$gi=7kl$a{@zO7m{`tHe`hP00-;>X{h>VLE zii`YEe6PGl`SZ)o`YA2^#&O6$^U=t>h|D8|A^-fUIlpJF`-k>JsO3ZcHJ|Z}<)8J@ za-n+BF6+#%iqnpc_s)wg=WD>jFR^WYLwYQEeuq0GPrLj|H046^=&xLlCC~57@~gnL zxCfixdm{3CH$;A~B80QI*vxrn@mYhq61Gi${C+9r`E@(3HS0BwkA6b&@f(}01Cezg zhU!2*@4lx$e%+I|#E1OTpGNv6(oYCO{;LOVg=YY5EB#OVAxtGL74on7jHi0g>V^EX zK3XnRFWTk!<98Wo$9hZu>wEvdy2T#jE&QpZrL;W1WDt_q-wvQ$C?5TtfU)H79<*`& z8}Q$O-v&Mmd;}P&*P9ku##?}IQ>etF&*1p-#rDV=;Q2r;zX$S_I9?4bSN}VZe{hMl zOneOOUBH^9+OutsrLVOPguO$6M*!P_<;qh}%QJqBKMvS`Gx9nH*b2ND_!;20fHU&e zvZEg=6(@U_+|*dd;Y_S%5`Yr$_= zZY>c%y~4JM_oMyYm6l(*N_)2LA=uk{nQiX}q+Q~d;ZIwc2Kl!Fj{+V8)bjfvu2X@_ zffoX`JoC}`#eh8dcj5RW$p2}ewokclK%R1;di@M?uK+7@*5W&X+WzwmmP6bR{cr@Z z9yn9siD>^D#x-#)`}DIH@}(Y8>o0=bQeYmq7O3U#1z#h_nU#|@U6hP zz=gmKz+J$q%dMTMS6bW&yx=Od-)ph{8sPgaK6b6e+7DPf4Y(dS^@El_0*wB_wzmPF z1U?6}N7Mg0-oLi^PGy~dtWOQ?_`b5U5oge+Mzv)N!=N9PSq3T0@El)Z68_PcTogVBz#M{v(-j6o% zS+t37y~0L9yc})f578#-ePj>jO9-c+pNI#bO{_(mIM%+o8vDa~;MHT`ZX7QcUxYld z75g;t|DYX0t_$3^^uE4c?eqVIHc{{U+cA!bKS7%qIxo=Ui{qsp{m=Scf_z7SJAhiB zddEWlL|`7cP1(`iD?aV-)!H9G-rRRMt|FX=>UeH| z{Fi`JAy*razh#{Aw99>u_#Eu;eV*R;xX&@}8pKnN^^yCR&gUW6eHci88h0rFyRiS# zF0owuA$wYX7yL4Rou8Jc9M2by$2z|d$hxrKZbp5!0T0DGRSUci$o=&N?1S9@wEs}Q za6WOI@O>x8Gf~@PzlQX+{0zj)eWw=lt{$l6PZ+2Cr(uWd>VufKye^>a|Km92kNl9e z@DAXyz!kt%z(L@)tyaGF!xpyzcYV~htFNjQLGE!N=Vd+gwEQFEl&4+RiFgF+ML(f>ZA2WK0`WYLc>V;WeT~)1-yGPZU!u-8 zWItq2>xcSZ=f!>>tG^$>{Q55NQQ$9tPXa4GW+Rydd<*ba;C;aDpRjVn*IS%@1KKxP z+)ezHZQnR#aVKz}VcV_+ZU+v2#_~si-JiAX&jarST5kGZ$NSe7-`=bfko9>G_1U57 z^GoEPL%!>Q<<{fBQUBv%e-ZF6?eBT`{Sz?yB>D)*cuqw;dEk2BJ;1+IJwovvi}-5c zfA_1bf4TY4Pdbtcz(I#GrHu1}76Q4wzI1l?6@gryx^*(Yp=1T~_ zh2z9W&?fFgn>g0K`G!y1d~1P=#=vbjUM_wO^2F&FSHz8Ihmh++XkX|4PW z{jC_s#2e5ihRzGD)$~8d%Wj;nuzn{Y-$CH@z*N&x)cXVUUjiP0@zbsBX#FE0$8kCp z^LIK>%g={A$1#!PSdSmt;rP-0U9I|&{W%Bx-veI(>Uij%SPQu$fwZTQ_O-o`en|d8 z)Pwo!e6@Ybah}ueTEshh*lOf}TK``75n)J zx!VGE#wQo^#=&)j=h3}^_Y*ok?eEpvKOT8=-{H6#!T8ekIs@`u!0nLR8IUiIQ=WFY?-B2W z9lp=g`yTf>#{D4T*^Tp7?q52eYhm|8K>E{oz4Cu6_D|X+mTNy`PwU?bzsz6fr{yWf z^Mw}>=OnE6tPA_C8T&^!@G;;{;1yW6xWC?meUST~_8;mO&L@tO-RK{VXQH;pehuks z`QIXL?mIgX|8Ag`e{r1h>xQibuB+Ez-txMDw!dkd^4lA&g?nJP_5|DRSNMChiKm}v z<%rcM+cxq3g|N0RN2vzNgb;`)>-!*9Q1+cK8*-sg9m~ zMISK3xH8%=;w;}60!M+r6SI)~#o+G-Uq(RuY5|`=0CoiUmx5ov+A_`u-)sWL?>6w~ zfNzG4;qM0jB=CO(e*Ni|aWMG*34RXzdGm78I~7?169RW@}uuS3D-s@wwmGlX9e9UR^Igq5qY5G{`RGX9?~<*$I9 z5%^sPJ8j_C7OecwVduTzN9!$P8TiBC=fFP_>+3hbA8fXQS3&-9@TZyqCa)VUM6ZCq zP4V9-_Dr2~MJxD0$R7v(PVl?IZ>0Q2%OJlCeC}TVgnYMxA9YyyM`7nH;19N22J62I z{Hfr>P4tFp8z*TxA1^%Go&j6g{Tckh zb8Vabc%T@J*H7?!F#b;le<#L&E9`6pKZk{LCFHLGe_M~W{}>8-lkm;Dm&3ZpI^PNY z62<=^_*1biao_nR>~Fou+J7qwS1t1?&i4|_zX|+9z+XRT`F$3mW5DOx=nPDN<-#}X zu&Ieud{8&^8?tq zK-u{X_}z+MvzLv(Rq@{p{(8lKPt2FIgI(5dtA%I<`0IaV8FRpI1%DX)9Qc>f&aW+F z55~`pG5?TgULMwGo1Vhrpks_`d*uQ1PD=zUklE zr>p@C&!|e?DpW-7`SVf2kLQK5Gb@&N&%;CUH^%aR6Rm%sG=9_a<=Y(lb>By{#dh5D z@XaybJfHRfc!rQzt%HOJ{6F^Ex`X~fd8Wa|5pM2?*sgO z<$R5~WW${n;2#sX9v0xw2=M0x_@@W>Jpule0scn={96P3e+lp(3h*Bb@ShIwUkdQ|+TUN# zLjwF`1N=q8_sz%k0r~R+{L2IU4+;M**$D*t9|Q7t2lzh>@OK9Iy94~Fxu@9F*Vffp z*BliJxq%A`^9L67cQzYV;hbV$;k^E)_Rgk`qW|bQ?Ohw1+I#&6o7=m3`{id{ymp(r zTFjAd@wlO_x7gfQFq}fyhI54u7;Nh7?COi74G6TfHTS_?ZeUrlueGbCu)KJ_KLUSN z^PAe+t){EhQ?l8dqA3nc#ssM zj;6NGLR)8Fv8TJIDE|v>EpXQ zd1vx5{WG^W)I+9RqmB|IFj{ZK^$zxBd^8^c5=?tST&9m|wDD!T6LYZI*`Os=l7K z&U5lj8|HSlER~^d+hziqLAa@q5QXCsvZ==mIeWaRcc8PmtxKkNPgj3mTW2vh>5{jpPTpWczufMHbM(FZ%yDJEHS-c)Dj(0j7G97ML z#^MFCXmSsQ?{rzn4|Ep`eey4gS54`MxD~Gjy|Q%9oIMjdrD@JO=4ehPPnvRcHq<&~ z=P1mk|H9EFgTO?o1m2Yyr0USI+2PcEe#UCa5f$jnSx09xDD96~GiL?zn>lN={ASK# zekF0Z*_9m5=BA=N`gpUlntJ%kdGzrmIV6K^*3rjvIQi9>gWWNuE8rv@0ELeDB!siH zuiaHulK0D75r7Ik#AF#`3w#md+RM;^mEng-f8Y zWWh>d<(JK;>f+N@%$s{!Va1|Fs}|-9`ML8>TPOz2${pnf8avzKX}+kZt7B1DPe+qs zVkufx>|5Gb>=4FjQWSdy9H%`cPFK=y(pVfsM!P02S2YrZ)fJH6PnX=QPvba8GV-zqy=%c}TH zuCY@Vv*u037Fl$R@p#=?AQOD4&9|`7oO-P+HuuYFxVdOnS`k|m_lr5pHSu&57WEV} z4#gB!JG0B>2J9K6S!k_!VX=&JdmHnMW+zF{8<2fStaWu*mTdp4ObN0pX=kygtr;#( zZ|iF{g%XQtAC&lB*3{iCQ50k^GQ~5y%jr!$vbh+Wg#|bxW#XpKtRcuQ?~?SoWF#gI z7S9(gQv*0$+1A`TUj}!RY?4W;5*{j95}fFot;U>j$fE{?CtC6X>RRFUCgXI7Ea6< zqKBpFDYhLMlEcykBAD-&iEH*GjBV53GM3{rdFx#7)S|RvRiU@DTTbHoHcD$%@x1fx%p`6(- zrQa9H`$uz<*&n}kJEucV+@wQ#`efx`!gg>Ys>Q|Zs53H|DI~6h14-!!Gya5Ox@ASP z%o{nuF@r6h&?sZ!)XuK+JC`)|wu)fkw4%IU(Niob`>OUfIXx=XPy4#CTqZm+NrG6~ zoA2q*3`biNJ0edjZZ5XlVAH4(31=n8vza2sQc|gScaN6{b0!tPHRE{zBeZohLwIRt zOYs5@uQ>a7%|a&2ix-%(&1;hLMcef_${_60P%`!VjFntmT}q{Eg%~3<9?P92hvIVP&JZq^Li$AX@mO8jyQ+UfpIM;Om=+Y{s}FWu zBs+(3V9xIt6s@JPa|ukAC>cWWk{7T2qp$oTiorNPxxRup%`9GKCvlmBImYuX^#*JH7jlw5Er)}7PYUuWK*7JI}(UBcQRr^_uf+FGJmpw-Nvx|V@XF=kN) zM|=b)R3#1h6{otMVtbQO0M*^z7uCgEd!3MV=g8_46LN7Vs_QdDv@SlAsO#x!Y3gf= z>WZy64QXu=YiwB?c;6UnkQP@>9deDtm^PLr%Gl0^-rh*wu5@(BiH`7!8~V=?m8Q;f zaO@L+Ygp^wp{PFh)g-mgnMqD0z!)?E6UE6wL$d8Lc~d0#JaI>f1`{hunw<)g+Ve%}8}G@tXE zm$}WMLjI`F`w>?O&)gD2|GZC_xX2`zc^Mno*ICkdB@;jICnkO$!i=AOh^=z`<%~Y> zJ0{jcU&jx2{39U7Htq5LWMYK;>0jr6ndq8h^I(woF%!*wGv;MvMa$S9Me_~dj_gNEn ztAJ^bc(c;y{i4JhOb2IP)FbOQA+r8?-!@S`zASmEaH20keff_ zd9gceE7hl+-EttSAMJ$Xc8gotF6UIU2RoaRobN{yH8S%@_job42ovNRfofXjU{+*TlJKnGuTXTKQgTAicwHs{V zzdi?wN}q8o3;17jv(-QB0ZLi}rL8Dh6VTt#YG?X(+|SM^w7zMpArgzuzR&9KGMk3H trpez8^2c$@{nso{9D710uiBql{c3d+h4wEWLwfa(_^s97s1#H)`hO&4QqBMX literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/elementwise.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/elementwise.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..20b1a80e9dddf5f0e9868c20f66027704b21183a GIT binary patch literal 644280 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 z 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 literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/general.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/general.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..5e29f2149416ff04761b52d2f6adaac0e698c22d GIT binary patch literal 239864 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�Ypx@qSE>rV`$2L7Njkss_ArS#O!6b>;h-JVg0Qg72_jB*!q zuE;6|HE(pT85%TWKoK$U)SRIw6vTpwkd7emv@{nDEFW4ksHSJ@=)6*TLaEEbtQ*RJ z+Hue+YO}s`0yGnpRFF!8p83nq`@*V15-;YOQ)c+72JI3(W{bu4O>JtqRGZ?GKa_MC z=G7!6YSbC9bibN)^SuLS^mGl+?q8>-RW%>9=pCHHH@~}YaP-XC+@mMFWZJ-R_h8!^ zfrI@Tt|unv(4}eXdWNQ{ePgL#G)yz3HL^?Vcynh*k}|AU187>uaE~a{P@+wbU^h9c zQIuo-rLHz50IW|QkDZn-?9&9DwoWFS6p{1&WZIyr-)ZSSVp@N1N84bV{I2?XY(my| zh&Hyg4!s-E62!$+TeqC{D%DD}c$w;1Gcb_I=D53CwmCv8tr=P;B5ghEWdDR_XV2PR z;%#fz^p`fWrB0KGOVWs{(`Cp)Q{*zvxJl|xCi%)xzAMuo-bY8+06KwuT{Y@6OkN-l*&w)bThe)^{@hf@xmNm%VhlQqcB45|*4;=>d z@06n-WdDF5t~~E+BuqPw%mR7Ml<=dz{0W+w_d$}6D%d7e_Y1l9d7mWV9?xOQ5q`## z=lx!Ur_QHk4Jk+JKYH@K?~+h1yN~*K?j&D?{PE=43Iyz}y$Q^=j3!^`=|4O+63G0lBnn zUM($=C8VMQu#vvd4I*O>ov z&H130KVSaD4EgKcuQ`wL?&tC4=Rn@i-+e#UoS#31k!nbJ!X=O&&6OnY*WPwcHT`-Y5TA_gsI~@~k;EAOCK;L{opP Z2DkGW9gX@9GcLdM(^`J5C*U=c{|k|v$ZY@s literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/layers.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/layers.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..5ec79949897133b4d51eb7db8da2aed7074bf35c GIT binary patch literal 1808272 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%0DCYQKBG;ZU%5Meei3~{6Ci0$60&QVO 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[Bd3ci>aAqRoOa3D1&qA?p604jMUzTvK8=h;y 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%0ADScd?Y~3?!?oYy`Raim2^4 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 z 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

a; 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

Gux*CK9Dga41X(W*xgPA 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 x`8PJ{$H8JFc62<{{c;MRkHv9 literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/linear_algebra.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/linear_algebra.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..14e20168c7c810e4fe3940fbcedf31695d0ea970 GIT binary patch literal 300288 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�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%0DOdndQK z$!xFV{f%$miN?3OjhD0AQ0If?PDFDu8_DcIOi9)!8*3_^-?6P@+~z8drmIRLF4jF7 ziFYfmAthdesKY;2DiJfk0Y^m-IKw4? zdzRrni<3_I?KY@-R^cg}G(R>G z@14fGXeFk)SrA|L+t-;5-Nu_7oZe8sz~@co_!}$u84~Bx#D-=+X=2Y4nylF>@rS4` zSyx$?vfa<-speYDEDhsQsbqaT1xW8~CS>w&vU|9fbOY6# zd9Jpg&YeHq5V-?M!qxCGGsDw8-D90@v)Gw-k~mprxn040xAD}lFePVaj~($*!mX-3 zHi6lIGG}62Zd_(nx>@h`{4PgR@l&zP+7NHJGY_YFSa35cvz9T;iKFTpPOYC>p00ML z64R6J!IWJ>67e~u&Q0mbwdL^|kWG_0@p04%y4xe6<9R#NEq#P7>-Mzt+{Wf^bIu3c zkI?kwDal%&FU}~5gJ)XjHECn}v8Am2j1PVo;^1Zu6N)U?TH?r$FL&oIpOY-aGCeMR z^xVm#ok}KwG8bJd=(=ddR!W;1oq}p~t$AJk`mlD_%1pQV9=aJ1Gb?Ei7rEy+W3hrc z>SSG+mY&mGk$Lih;+&?2l$){c*@-)#IGG+YCF0yhhm|Q_RsBLvzqm`NM}#CZ=Q8ay z`FotMPfTVWS^K2R-fuH`z!DXE9#1oMOf|duulqxGIVZOM<{7wk%FG0R&agMI8Sb%j zO{zA&17z=P@o6#}G}lHPPbZj=eX>ty$t`RX?G=FXujf4i{11l)uozZ_moc)5=Ynj+X`zC-r&Al2pbwF zx`%=81wmAlZmnx7uW)Q?^sLq=_slR^w4lDZD1K7vb|9@$QC1Wm{;EdQR7Dwu>UfG5 zRkhYTW1cP?nJb)5dK41wT4S=dJg&f}RBcmKl-YI_xsOE)+=`z0;NDwAMNLUJyNWWq zyrRa2s`94ts3=*@7O}d@SyRc|@OwpHL!Vt!<#q1yeQY|m?7Ym_sYs_I_jI8y^IWN@ zDp}FIz*UK#YdN_u*3{2$(C6}sipJzAD%HAYk^1a{rjPNRk-Avw;~mxq5yih`i@&nV z*8#J?qty3}3ysl%rd;I8-RtZ3mf|p@ulMv4k8>a1eDA#mwXff0io;P{s8x1)pxJgGJkX2zwuY4RX_VXPxrmH_;0-`_+rKeA2ax>`}e(W z{_FRk;=fRq|7u69cGv&at-gLYDi%}U`j0p|)qRL<%btE;Di-oRShcV2sQ+hDe>?{D zJ5+J7``&l_7uR>MT6@LsTqld;s^3Xuzki71_Lq|K!&S-ro$dbZUSGd!%`$7)>+2o4 z_(M})zkd~_=WBPp6P7&wy;%45^*dRyAV>T0*NVH>*YEwr!5@pScKxYcNv?Dsy4Tn5 zZbkPs;vRoCe%Dc71SKKCR*jKde-(~9S_rBtR?)$vm z|CE1{J?K8fD*Rj_`@7)Mulu-JeU-&0T-|u8s=j_dJTK4s|Lf|;L#+DxopBlUI~cxr z{>6W4SL1krlf^2kuiqmVp5ZHYx@+D4RA1caE_Sb<{oQh#uU{y`7*Rd(AEv&3-(2`j z+Bf-Ih#evRfpBaq+YH~QioWCPFU?-?H3~hl|Hi+&jWvt25b4Kp1`a1EYU8rx= zqR&x(g}I>m67LhJ{{;14%&v^ShOIw5Q2(xTeaA=fdlt24>&L$%wz63Fo%4MCYXh{+T|YxDd#b)TgZe$SqUfuy`TC>cA2N3PQ$2~|pGR3)eC>y6 zf8!|Ispr+6C12Mp5gF5)zTt1Y1Bd#S_IJ47{a1Ob`%ip(F)8LN{LI(?g%rKCm#^+? SzkSyK#f`rHeB-bwM*jyFc?&`S literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/norms.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/norms.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..7464aa005cede0840cc233cd0667940f96bb0ce5 GIT binary patch literal 485480 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 z zCe^#2z89f390e9vFJFMFqRB0tUW9^cf$>_s->GAtd}G`=QkhL}^}d2_#Jkda`RoO1 z`;}9ulx$J+ak-8!y|Zb*B3q&cLO^yYS^}6F*eeW~ z(5HCEy98X+K}XEQA;;ktvPXL5se_L1$J0N9R8Bke?ck3wD0nI(v&JM$vsBnIU~VLT z&;R-T|0}?h=ma#^`UZMczQ^b8KRl0N8d|&)&O(UFArYfzY~c#ecQRxQxu31L0NI#Y z-H%#qLM}|?pD-bL&ETZdm3_P?{+{1TNKC*^H6|i^zZr0$qXBsSb+a8J?n1#q8yoB` zmjfQ4VJmYy0#n3!&r4LsSJD<9OcfO03xrIyjhLnUab6X|@xY{44idg_pn{i+0AbRb zQH656Dx0`Wg4_!*=^;p>{_s@~OnM9kxU6IFG97jaqw&WtI^u?DP@3&^8m`8 zB4?qyXttc@){B&!;H#i(RR7aBR?qP6j|dt%g?Hs#JdI=+&82~Vv0HCnBlQ5UX8rGZ z>xlh&Aebmow+R1Pm>u!QKsnLr7t1!m9C^RJ8yYAQAgQql1TEN$+V1R=+K)yRJc?B(jqn-x80mL-xeSJ> z_am*$p3t|+Rhs|MFylq*o z5ijLb*gO-5w4Zs0v`c|M82D)O1^SToQ(o=(9xT^}s z(OV5go)f{flZ+T{nXHwY(kDXUbRnW~bd9<){T?D2cl`5~Mmaxn_7;%(y!JaIu>!p- zN1>GxdUhCp#*h#$*v8h`ICt%l*8P8+A9$I`HYy%za zyd!mj4?2r|#;zh?uS)km`a9ssrPo{EfWqsoqW7e; z&}p4}YZZw8eQ(_dD%D%9X?pASf7x4&UT@XGbESH#yi;$fzenr#*j2IJ_1Iq_iMD5X z4@KW|_wGZo2NRE@&zu`TDgCv}?DFX}dI27z$1cX~vTO|X*P!Q%|^Kd`?ITYdJY z<{!IyDy78S<2(9=W37hg*bZJP5Zt4 zLVrHvjK0W{Q7iJiXXg;UPM!C0U7ba^5~XvqnQ>|G{`}hxMrO{2SRq_&*)b zm$8c7jOVj~Pd}a)BCOD}H%4~)@w^?T;g09Y(AEEDJpcRoVD02i%)JmBBlJgb~>QF)O{n~&zZ74 zrBA|l%h*=)t!_WozZWYNWjhO?9dCS#9wC)Dh;c&0$%I-gMF@xZ{Cf%Q7hkV@i}SH` z9^}-1^EfF(dINkxkA9&Z_Z2+#IM-hv<$Dc*z1#n~eypvyNdI_}Qj*$3ciN@5rGM12 z2@{{|u>!l|_J{{r6!obMai7__xvF10up!HOub7J ztK*<60U`9r9nOUvkAwC`C{%7;sy0)*32?67Oy$~=i@~?xuL2v*XfY34tL#5M;M-%C z4;r2W$D&USWc#)+#Y=XTf%HDc8U7*-A~Ag~l+C4~doI*ffP%j;tj33eu@+t`rE)2= z+SZ*5Q6T>KVHBSSK_w^?v8JjI1)U<|;{)*g#H89R=bo+2LNb$ap2aB*%~~&9vH4qN zujOmbtU#>Ch#$))$cFWH2wa~0@p(AG(BePA=0%_pSZSzr>@i@iKfTzEN&JbVJWP7} z-kvPQ;S%(4M-Qjm!Ud>PI$Z`ojw{QPFFQkVl%KM1o~DRDNtNo0Qjz2bIDv33bp45L z5XS#S$^^5WB3Muh=Qk55=La?4rk}s``&?E9+PBO6RiM{1C*Y~pGp}GPN6lY9A!YKo zR^HA18A_5ZWUfBt)m-=6Ut#s}FDQn8ox0O{W*t|bcJR&Ig`iUFnZ2+!+ui*2C92-d z{Iy1{K2JoysrhRdx+OJ#jfrA4CtFxp9>X-UBpz*(73d?-m72dm;>M#GhggN=8Oe_! z5xNF`&iAZh7HR#T44+G-86nADD<3_5(B~s;EG4NMt4OTjjK_=1$X12tcSmB__a8hoS z1*npQ!kLvh2Z09dl=-YfY^4#6<&anYuq#T4sXFVv=wzSX`Z#O1>*M}x%`Wy-rtPWN zvnRg!uk8t`ls)YUiq7`5n^#r7grry>594k|`ZrbDK&9SP*~Tg)9{N=6W@M?W=&u8x z{za8ButN2s3O|35dQs&P?uIH;;(DJOoP6zjJi8UDO<57_26l9Yk)-`AJL0JB2PkCU zNAl+0Q;tFO2&1L@sA6mGD_O;|+*q3b4-d*jP)@?AY*-H=v3A$QfB=&x)E`H0BBy->^u*|4C)k%RaBu|C=C zw;y@mA=_RCQXbM|JKHc!Jpbm+!}lX!&D+V&`FiEhB>51(}vm5Qx8anjnd{4}b~9qkFeA z-Q=(QbV{BlL8A2W6LLL$s9odUg~z^O}Kx| zP^l>*^Us_jmN?a)uoUc$Rpma9&gHC%@2f~WB1fMTN1ueIHgNr?q0ikz36?rPqQ+D_ zbqPfrim*@FvCKcI_E%9)1R2pdw}=$~kG*$+s;b)l$M-%PTl0S7)sF8!=;nXe zv`yal%E9#*1s#!h9OJ2+-ObOsxHW^@WctIMCpw;B^})|be{?h(*dNpL;h%Te2Zz!H z9glb6r`zRbjPZ24%wzLs!~PgeVEI}BIvxUuv5zGCeI@KiLSxT=@Cpoo=Mr|E;z)ts zdO}3K?A4Ec9M` zklUTa$g8gKCcO3QCbQ>4>(c&&Vu#U`wm|`87`8LJR=Zk6LKHc#ZLILI}ynwG*4DmuE%B>7RQ@yES(LY5h4#3l=~w~lq5bLp`W41@y1)MWYa%0meY5=tYCArB zi`)IT{hpY6Hv4rzl^s_w6QP&?vfq{5?o55s&y;pd?P`aOkOwKIV>8DFMGVe{{Y}SB z&^iWpDMl+V-w)={pf5rBR>ZrXrgD7#Y%<5^&ylsK-P{$Qv#>mpws5mRIru0we1W?V z{P>yghr9U$+3D&ooY&h)^zi;;^1+CJPTe*8#Y>Qdm@M}Y^Ij?m{Xyk2%)|3SE} z;7RX`^6JQMdOg?i*c5e`6CPgmCbeloXSDkj_P&ZE8?IO1 z7OI;|L+WTV^bxS!YgGPtpuEdJjZ1`nvkm`53H_ovuTvJR_#K^H=g)W_fUYWxix8|+ zpPhTgd`GQq<2zUpJD%xkCxlx-LgWY`g#XZWHhb3RRP{9ifUqO`6}|Cf#2NCdANVYX z#~=8K<@wlaOveAei96!-s2pAWKZN6JarH0Gv3YSV2`rJ~96*Hd=dSOrV?O-2Y$TY< z2!oMg6We|gqhx;-dpNJL&w{<$kD;z3lINlkx5ak(G6I8?EX+p$8O=@0Y8||u^f(yxH%Fny6er>h4ZLr z7WU@>0qSsL#R>R7Eq**;jm=8?_iwt_V>c=4{{vZtSC*ol&Z@ZC3p@lgqf-$pW;Hg7 zqUN7QO-Cyl1jca{!VAxzgV)nest&_y4?%>$W~D=WmD`K6wtDW61m1@5($yZzdtg&P zB_Nc_LeYaFg86o0ei$*m{cg-D+AF?#l;0i^v*>kLk1id==?nQux2d~l8!BmIi*;c# z-l2A&f9Qcjni$&~Gl>GxOnAowAV6#wm;9{goPIOAV2Q`VPglMMPV=pFQ;jufR!9G0&8FwUc^#BPPrAQmxPA?z@pF| zgM!q-r%03yh&4P^<28V@KiAQ|?^-b|d&hsURs@9K1KmGpG2)Mq;8 zBc6g5W5er5FW{)0jKH)tM4S6AXk(f7@s9IAd+-tzGeO6gQ-Oi;4%*(nb_R*SV}g1+ z;(o>D@jvMDSVhP;6eG0q8CLxE7l>Y-0i)lJ4^T+|IlwpM)*muINx}24&tDq&O9Ovt z;4cmQrGdXR@RtVu(!gID_)7zSY2Ysn{C`dZv5CWyk{aR$`x;A^Ry6o(YJH{kip8Q zSHu__h*#O_Mayf-sH4O)xU8(Iu7)WZePzq*>tPBEx^&SZ^azDi_*RrwFNdj?H?RhL z1`{Z#x>_ie<@%qbYFu6ijdqPf`9rz7arr-z%8+tU18We2F0EhfTUNT7#|Z_OS5(99 z<hoTmN4!?Hd$3bC4K8V7^GVhZ`H7#IhKM3h;+3F0ZLrRVQ5k%*hhq z>|0q`#gn1BnnqOWD_RZ5#>|i&Ic4UgNxu4u21x5$S%s?QjlPQddI(!p1KO!fR-6l0 z5pqrzlWR~-ZT+%_LB7gTOp5CIiqdkLXB9QRs%3Sx^{`8#Z(2n{RZUf6RcUoq15Xbh z<|a95!}2;w1D0jA%j!tL#;RpdRYiRREbWVJ@YOCd=JBA|#AJk=LB8@@4meP4X=7QX zuYP&W8I4H7>6NAR@bg?T%Er}o6=DuI7`>PJxX>8?AJfy&X!@+IuZ7|os@7D*`x@bc z^%X*9s1yAK>?Y!2Y+`zYkHTPGZ3D&*udNP5421s>M|`!0SrOmX%OOY8x#-c~O18X~w?n^z;({>7H%&gi)i?D<#Ybxq%8tx+oK8k8y1bCoH%)0HtwqJlZP>xRzGlSt2A)7jaI^bpd0NV}1C zAx+-c**O|15h)7kE8Kyr2K@_2hfyDn+YYxOeT$TXdoSfrbavkHSZ8M)(qg0qNHdWp zA>H}7NR|gXJAZkgvvUXVE0HcnNcp6DD*vzK~YcX40y#%$;$ zNKrgvJ3IFxzaXcxa|3=~^A+T+$S=z4?Cgd2<35>+_PA$Kh^J`w;9iTbxUF#eB@2Y>yRrYcm zL9WzvcK%BB$m1}+q*~A;Z$@5;+>STE(lOp64bTJfHsrgIx8N1O7UaI=kQ;e3@;2m6 zE8q)w;D_F8FGAk37IGrDU)0%YhrU{ok4B!o4*Za}T@HD0|19Z#^aDN8$0;&JT{BHl zSJ~C5ULoeKu+;#R@UM{18ne(vR~y={GX@LuDI~PM%S=3uPxzX7HuF1?dZvk$m)_vO`E_Jle35 z3h<%6k0CXpEE~Bp-|8!~nz{T0&|N6cl;tHTCm!@n^&ymdsT?25>9^^Rplk#c%(2?n zo6Z9@^od081fE3Qb;y;mR{Q0q@mBA8ZM-#Uv2OK_x7x>A&4oS70p~G1zNcv#kX%Oa z_zLy87H!FA>G=Wrj7B2e&qvw$RFGq}Z!(P)e0^&LuNccY$KXhbBkR zeiz!$q4xRIKF{i#sax&is2zL=#V0{??0=vk{dqAjoR}XI04vp2`xNjeJ13!hZ$@V) z{SG(DceQDp)w@N@vHCU#ZYJP>K8*_-$TnoYmBR_V;{&@q2D~jmG=NE1y=j{y44IH z$wNkF;<>jAGzwzQWTIjJE92@(7rVjS55{YzWqS({Z8+~6$M z$n8n`H3z}oh-a4pCV5P7F$ko@0i~F?0d+S~9qT@id=knemR@*2oE=gVZ4qdH{S&kl zTh@Y>V&`V!i#}`7<%FK}J+>#+??QbW>g!IgXS-AV0n{fU)}F0?IO^X;{pax2S=7GE zFW9zhANa+ZGb~Gbbs}C_;1lTY5+1jP*+0+U?q>mEtT9S$QPDbT8 zA?I^zFKup5BOoZsBvfw#?GcQ(mF(Fyx47Rk=2n5VN!3nZnxsRPGp5%>>WbpayWp3N zHK==>J%O^(D0>d|^r5*Pgtg~Klr5qH#0z_=)lB8RQC@_#i|3VTK9`f;hogKy%3mk? zfZY(E-~=>|8K_@{HICm3z&JLOUv8qgeL2m?_3+DV)3-X$3TOiqnCSWJ{4_%YMKlny z?H%CPjSc=wF;C7>W1g)5yF#lEjw#q-F4dr@`-Cs(sdYkQREGE<$ntt(TyYb+ z&rS>peR{FJeuVXRnw;Bb8AB4B|1^2?de)y&GOj22Ksk8*h&6m4V6y9Gicgzp{y=Ik zCKQHWfU#1)TS2=P>w9B>wjiK8jCFl5R+xq}ddcrO<#a*NwjAkQ@M;0C>yZn8`os8; zZ!OVYKD#^R_tc&{d(9-s+zQrtW<~jG9AYTmH#sv7b@}ahYqLq)9Aw>Nnqh50Fy4ce zt=WXHJ#dc}Q@(XSQY-MoNJo&4A+;g3n{uruOjC$B2gLJ0JQ>83L0p8w+W#92v|RIl zO&9EOAhsF%qXBENC#MC5V=1;f-D4@w`LVRFjkj(!X$ynT8cfIa)Nbu*-C;Txf=xr7 zPqar>SyGIAER}@!05l6UCCG`NQjKmmL5351u(wGuWazS2mmXP$LTj6JTsl3wtj54J-5p?7oW(uX^A?%6%KV7T+hl%1=1QvQ z*DiCP%#&o^On+mJ59T+21a;T9G2gpN1hnUSk++^v(NZc34EH;uI)E0P7Xbf9ppGtd z|ICMeSgG5mP0FDJ?qG__xNbDv!4mqzQhb_auEd^we1A;(|ET5)$=@gK*s|d4Y_|SMx*d|PPTHYv$=Uhc_9yA?k#r~I zK0)~de)}bz-RQUK?EOCRC+VJ-bjsYb^D#<~{YkoyjDG(Ye&75_y5A(7?|@mbQ_&DNvDZwHtVevrBgEGnd_ANHB3SE7T?1kh#9%tBW{*^eWJw7EV3AXgZbD+mUlFe7cdb*_#x=#rqDHOdm9Y~tx z6kxOdIF4RJMlfR6-vIZJbVj^-)IcC38S&{h7m!hm#OdX5g^&zJl5{$|4H?Zyx;`rw zNG2oM`bIC1Y(@(7-PGw=MvC0V=rJ{j_dN@>n=ptkSBaQmy89)kq9tFWF-Gf`jA(O*N-A($e93WF{v=CgPhvEV)WU84SKUl9X z#?@ZPIX1d)xk0~@7|aQMA7oqgcLxKR=Xn`5JM^j0Tgd!~w}CY4ts{Y)$KveKO0dKTApaC=cfbCFUlw8RrwqM~7ma7E(7-p~@*^7K5^c2_>pov`x%0ytNyIIvWb3GkZIF&( z++w{5MYd(=B)nM&6&C~e*04uFZW~NAcM6(XqPb7d3?Z6*Oyih=ql55pRg8ju(9V?8 z`y`kK{Rdypq1Y(yP#uq%Z^em%PXC|aXbldcfUR3GddK5oq)s0-6v!La^U-FN z{tuYa@n+aUNZq9CG=yW!ZG*lR#&oKV72wva`?G+w zIcN&)(M@oF$A>)Z7JU~YjN_B=?HIy-{Yoqfj*igH=%-b8kjaBbP5}(?m5&> zQLSI1GEQ}W-5;o`+6LexDoJ(QF^wH2HS{OcrmOC6kvTNg`UKfZb$?Ix2~v5e1*-df zvUjk`G8C!q1vHEv0-de8bIE=o0xeP9J8-4$FblL&b;l$CwFtCMb!Q=zICPcWWtHk4 zk_0qV4bR0;n^gDjGyBnm6~ux0j4SDT2OGNF0I))}DoTnjUr+05+Sa;G1d5C7D(<&<@b_d&FJC zRE-7|IaC*wBwaZer2n?v$fUOr=}vTcpFyfGuXf1d%J+z0k4gF{=vIn$02j=6-wtgh)gsMOsCgdfXb%q{9r-i2>3s&1k)0 zP}7sPbD8u!gY^8{Ue?gHHmgon0z~@1@yy;o{=Un*>RZ?Ve3$elUyo;=?4I_)cU>n6PvZ)0bh@wkZ3(5RyghPxS6$?CS|!1+2{~%flj(H<-$-)2;R=TDo6SA(&D~I>h@ctO)t91Oi->A^)0M=e zX$EOwfRvremN^DgzeLhBv}Mse{Z+sn*s_~`W7zQ|!ma5%lbhy{BZrWs0*ML^q9K_s zFj?;g-`@7Yz@jf5peXBlhrzE@CG6oLs9$H&HlW@z2htZglI=4PC1MsXU!*vO^<<03 z;3Wseks?B8Om#(#;utRGx!x0!IZ_$%>TmmjjIdCrK7G$nAnA+@&~v^4Wb0|z_&G9Jf&!?M6rvrbIGv?E1aY-1DCA|^>cPfr zUWIS=n`;0FJu}2MHJj(6R7)9w24n5?r|M?&UHFcqc-Td(Xb-{mj$GGMOz}Lv*?t`X zDu&RlXap`J;0=9zs-x0!)QS-JFBR>V*+-*P(UW02M-3xp{ajj?Y8kQXH>2KB$B0+| zE(gf@jQDhq2Be->;5hx>C?E|sJE)WNMi|!7$Vj?=F?RBf<&0$OEe;?n#1f-#gpD05 zxu!^e1s>yA#jI!Rr%2JO87a{dFeJwsMk@6g)XxQs)ajcLs~u|@S*5QdbzjKbn)GvU zE#bI`?Xf|>GY-f)uGy;RP|d~MW{19m#&ZcH&3Ykbs$)GPd-Q{(|4SKZ(eI?y?J^$e zetj)APmasErd7W)1IQJO9M)s|1KGgH5xtt)Y-Hq^J_UPW$CZq<=~IZoCPv!zb)@Uf zjGWN>(6F~K@}p}FE!I~vf(=0^nc*5912zQo*W!+CT!#%o9gX5T#=NSc9i#R1dhKhd z%~RyqZdrnOqK~94#Ewu}N)&xGO@te{fmy$o%y?5cts!>(B65nIjCl1(gdE2%R-#X* ze-?54%|$CooIW`e$jw}nq`Sf2af_XngmnEKBD!wU2;#?2h{_(}>eGH2WTKE`pL3{pK_v4|=x)F)P|Z?89*-LO&FZ9Rz>VgfpAT z5N0zC+iWH#mT&RpbM`mW-cbJ-v%xtaoOa%d{&z$tXKa`i>xNkmfhRZzhEaI1>qm(! zj>){>vzGYe!%%Uqa64@)_3|V|aXEM^tLS@B<8pFfGwWBuSzRs}40SMdxw*z0Lob!M zJlw_yriX~>Q8-DQyQiJDr_9vdOE8UDjCVHNp}iLLgK#nQ0*Bk$YY7lL^Ksjl%&XTx zZ*IGAA25voAG4V*LV67)FMAT&a$Km2bzv9n*)I}EC=K*xP}?yXXxF)34ci9PWA|hP zzf97EVMXzbcF?-1=$nQD$z;S#G}*!5fF@>X5?)ydA4?=LOOq8(4#S}Edd3C2!qIRX z88qKRu;enHx!9G^StyD{IbW99sLh1n34u0+vJEx#Oq6YWUe5^278LbeUZ!|PIv8A3 zvqJG?h1>&y`uQM=CpUx!(C;_ux*&uE?Y9Y&-ZLqLx)UAW42V1SC>lNX>zS-k-?mf3 z08fdbYTMu87+y2GgzXc|5U)kRq$jT~;4)m`czX)?dN`oBmw?a3#>5*c;H@y5*DBz* zVK1*uzz-u_cx9!x_D90ej;x zLEU0cuo6a#@G#6L6q~Uw*cIDJh!*J#zXX_VDfAK*CCIDbxlz3t)`lfxd$1@x73$Q6 z5WF~?{_Ib?A1dix85RxL_A%7fyH>QdBXabvW7rcEeOvH&h}vJrdKY~UpQ#0zVwC=K z5$>a(5x5qm^iLT8`~`ulkxKus;jz(2Bp#vke-a%>zbzY0va=x@Rk30^|*x8cJ9L#k&Xs@Z&yzyE=6 zPf_$2mIbI2QhnK*Bvka7)c1EGUjaePf5`{zq&5m<1D?jL4dGML=#grV8&K5yV}wej z_e?mF+ItIHn0jX+@C7NM=b@bbiVg=$MCe#Rd_scyQkix;=wtNWj{&yaor+QQnQ8tM z2f?HP|i?Nw}FVvI4p*b8`eYbfSP)~VPo!^Dc28ucCV4x&~G>|H@N z&}fIKATjJV*d&w+MjH*`W>H}3(}kPu%>f+lBcW_gXx!&u*yHVMvs{WcEL>l^bd29I zkNSr7LM*4n?e+e^!nG2R*_L4n^mPfIDRA9>g9JRaFWfd-bb9-PK&fx?~6bcC)On& zj?54~;@nyZ+SuNYRFuIsF}Se^PlIy={47Gr;9LPe2oD&XC*T&u#=%nsJZ=QwA^{)8 zf=w2TPiy8%K_#PY!|{f zAf!J`z@I>PzqEWi0-;}8{y*@Vcxi0~Q#HP)pnnTiNf^gh1GZeun}kWCd>TfRFj>If z;ee+I*benOtqg0A_W|q>*Sar4cBe~RM1~>oI6bamv>!32)8a#ZF$;j$a`DARw^M`N znApxp*FvVRH0ZAi(DN1M8CNJ8ZHJsgdefH1)*I$e3}&G`>4_f8FKEgZNc2hzbiiJT z5#dx}*Y8BUPK*pEp}hKNcvWH)BR>5lj3}`;BXN4$P$1EKw3LK_kUZKam`sT=+U(9>_ao{ZxG`(SeS=q@fJ?e4_LfcXts7AwON5kP&ss>y&?*2 zR;8d~lJhoHDEfM8GucL4&NzK6X7tc0j3ntFi~=&1B}>f|ss zbsP@nd!Q;@+X-$qIvY!tQENV;YO*kztv~cU%pFPEu=T`{hj|6OKLc>2*u$(LI9kA8 zfmw<$zS%qpla%K~2>>xCrb5Mv?FVojF5;q=1Kp)sqE~^$LU2o3xcPagkO!FNkORCN zOL>~uv)lEuen4DoW2c@3e@T;jcKrafndae|-ulm&Z)sjee0pE7Op9P-fc`s%lNQNH zoKAoBn-;|yO43KB0qM<1y8a5*z_e&avh`fV@3a_33iKXWm(%(%QluZq0peq1wmuwz zENvj4fRyOx!$xU?xTaE{PU6HdQm5}DK?gIkO1~LimgZ+SZPMR_ccjI0%?7=B43H$Q z*{bIegVD}+F_InnXkw5V_92jFeLNgEO*s7?eG%1+am<3E_bS?l$kJ?4Z-TBD!Dcg6 zm|4ZPm6)DsVoRvq=vR~xy*vs9snyt_R;uZ}&7?v$M0&Jb2;aaaFFnRN3bE3w&qXv$ z@8gJpfBJN9CJ>>9I6W77Oz+F1NYX!oc9|d zDbf{UFi`&$!p_k5!(Y+|F)~xX6wxAm2)CK7A3#VvAwZJs*%(5d>p1L{p3Dn-3GOvHaZNBXl&2c5%b+ydtZYRYW#Pj) z+cs=uMu{!A?GDV6QPE<8UWu5IAyy09?+{|NS(M+6ecxyc!&*INSfzC?4awEP)ja^>@qh#efdw_vg{|)NN8qcHi z=@a?`DPUxPesnaD35>+)mqKw_Qy7WYZz2ZMLVpCeB>m=oKxTv|0!i1$Q_W09vh`=+ zKUuS+P5y-doOLcEMY<0wMb=!YdAhlnHII=J{RV`=toe*o>RGT!R;jxUtn2hf612ke zJCLpV$JFU!CflJOf#$QSShi-J4)U^=a?KvS9lMmQYQ78AqHjes%c^0r{rVWhxvW|y zYt?Btk+q>0opB%5wFDp=d8QoEtweSew>hR?MB3TRZQArFNSrNSuA2Fh!|BYH-eu%%V)nF6nYa`$j_o;y&@#uMHO`OhFEAn`B0Xi5o{R` zE%~yB+TW&@{mB|>EWM)BTmD&Tk-S3cHAk55osH}uo;x8?)+mi& zvza{7%${gA^BB!!IkR~N%5Bi9GN!-q<|b?|#-s_j!wq+IR1H$+ixvAV@ z0z6I7T!zUuMr<&(<5(};W>-E)wO)|UZLzI@W8mBd->kdq0SMjE801|GI(u=4X>?>_ zJAvW49O4}{Ba9?ABy5$xw4}r!l_r0&cCEZfQ6vQ;Q6!BVknp^IBgYAG93vr)? zZnMS2wf&9>HP$c64`NF>HeSHRXgfARz`0nybKFsM>)$pAL(P@j&RT?%JP}T8*TD70 zeJhsFHQmft_6anW$hxtH_l{3XnvKSRQpE%~zq zJO(G1jM$TZzJNPOhxGy;N49GaF#P~Vexrct zM>6u43-~Q;zw%cI_^vU4R|@ziC*V~Aev{;1E#NWa8*2nSkj8R>fNQYGkM5 z0$zz=k$;hZ??R}|Unk&Em~#1-3iuG|^D+T!fRl*l^#Yz31^5O5cVdo=m)8;Q zzJTRCvJL_)E(smK!7c@=%9AQ~C!E#x0Hm4_?sx``&E^O3ZMz1(RJf{l5Mqk=6iB{B zVFW$XBfj`-*|rJI3Rk;+=Vou=+p++rwNH#P$D=zw>YdnIo*x&2)5Pd7x?C~iaUF<1 zu}`0LkeSUv__lIVrv2~N0%x+$2S-bvVp7_M%XNIV=%-4g7gZWHGB2Xb|=laNsQItHHd zoF<`}SZ@n<9!8l)Hwau_jY8|-Ry8fe@)@k-r;A)QGsHz#yo$fAAFy#DyvSzzi<5xm z3#`C@H;r$+z>5584zL1&&Gz4p7^F@RSc!if7^{T>tMpevvFb#D)%ian%Bdl|aarXb z0iRHdLU=pSKigYKKv5JP01& zi)P_xM)6XE`g0$OKR1dijN(<~1Ya1%#j=h!XS*(T=96_jQPaDlA&Fp}7WxU-g8cqOC^p z$7JnqjN&Gv_%71(w?=WDQ9KSSk@}rcTq28keA^5;EK1ON!1NflqMi(KP=!S+GFY5P zbLxAeINK=B=z-!>hBlIn;!nvtelUuC-8&4zQqKeLsRW&*4u2yh{TSk)3X5hpScGPy z_$Q-S>CR%j!6H-%8UZ+d5Bbs0Ar7jrXeYkM5b)vg(a-F1cUC2+jA)0Glm8OppbCrD zCTZhKDboIG6d&o%;z5IjO$oY_SbR=1@V5{LRUnl7EV_%oh9>dvMsc$&W+{F$ScEG< z9mHZbd0c0RgDNaqlfiFzCV^tTJ-5;3-tf#=d{!1f(^%9uRf1w*#sKDa< z!)fianZxKHIm!Pett|aSUAq4(?6}na0?YO%h5{QPumb;h;u0&cBL6KuU;_m<+rN$0 zu0aAT@n?|7#|f;`A4{?f7FeBsIl281fvxh}h|({xCck$quy}!O@cT)V2?E>dUrP>> zD6k#=l{EID0&Dii^#ztBus#0g2}>4Oi=Sq(I!s{u{Xf#!Qv}xP|C-D_TwsU&CK_L= zz>fIO!=6-46WB5T&omoG2&~P2XC|<8fwlXm!+PpSft~RGh*eJ=C9oge?KFlAfhnrH zKQ0{9(E>HA?%!zr%oM0yb$>yF$`Ys-wX~}kBT%2}{$v!;Y=Oq9?nxAE#tIbArxwzd zAV;8hKJ_zdn=8<4)tyd3B~PFQ5QF+1Cr~_}nvxAPU!ZtC^+nnVj2CE$>Mo50S|HF$ z)jg{h&&!<|+3nvP+Np;7Q+9nBfgX%s>I-M-gt*ZN4GR72v?oi!s zl6k5?n^ku#p+y4Sqq;K)Jx8D|s{5H#pwk4pUv(cNbh`<>Txxc|fMUD{fbaNN8tZI}lkRSSG7h^1eB$>JgQ>k_ajPs2B`Q0n zFwbd_RgwKxTb&BZuq8G29CX8Bgh6If;^z>zJX-`ke2KtebW%wcoN9}vGk%MPN07Pi zP&(vTZnO?p;wO`a?OtaEw>DnW4E-2=?=r|#EbcVv;=ImHOlG{*$s#}5jVzmFDfBx3 z#bm}ypz#Z1QJfg*q6ZQ&68Vm-b_jDf-RY`=WS(B>Zc8GJuivSoP#mT!`UW&i7l-LV z`ULF7(#2sq?yE#%ToI`g16@ZA33_Qzp|wrpEjF(#ejt21LUa z5h%2?uBfUe(7;l}d8oY+}@hH-zewMA}IBZ~`F+ zU9}`XK=V05(wvku5q*YH_c3HMTLIT^z*CnYSQfbo3{U+oP~NT4dMkCofs1fkTRKGu40hK7E{7lEuH z+}kJo5(9rmNq$KK`P(r<5BpFt48O%qCHbU@R66?uGLsM`?M7PYpAw?C)Sv{P=R~Hc zyW%kGM{t9uVlt_LI&;L0K5lUiqchSmo~L8@zAf>iPdcvao{n+QUAV*4F~qiZuEKAV%Lk0?=F`jG{gsW6$US$wQ!hfEvFK zGfk+71JwYe%upbu0E&^6>_}h*vJC|1 zk9u89udyRgkr9ut%RzT3(efvG{wOg#o~;Yfz3|e5F_XzbQkUVV7NeifNSQ#+Cqzl! zosFs+q<_<>hn3;Cmr*jBHZQ|U37pCxqQea_B?P7{tFOf|fw%`ZoF?JU7=DW=1}sGAdf_iq~;0e&w`Y_wz;3rov!)f1)WzfpiNAxEt#Z9dSx5f%Ozw)Pp{qv}hHq zHIC$E*J=Ptz!>PG9*zulW}xS9K(-pYRNtW&xOiG?GX%FGk5aV5^Y| zb~kZrW$$EFDOi26K=uQ{XZ%WZb_7j&!BCm2fV_bw&mrYE*DA`>>jX7I4mtPH$iDv^ zjSe3}RfQ9i87bqRK<)=Xe`q?A$R@milFYa8rD1OWhGORRlvEc6N4!Qjd^-$Y(?K^C ziFs`Xun}n_k!2FEr+__)G=X^LuZOY>UM7Vep;X5>tQ(2fZK(PJgzZQf*8>@dg|Q#f zNFvMJhZ1_qYd%uJ-=rcAu_6kNOX)sA7dW8(Ob+}N)J{~-QIjUB)6`_tqXgKr>rPC@g}!Sz$5jDbL6u}SEQlo0`>48VDW^a64}fEJ{Y#2|AFO1=X2 z8B*pXAVa)xX{5|KK-K_gM9Lor$rEMQCMBD?#@lBf!Y4AOqv~1EJcX1+gHH*FSO+@O z2$O{eu0>!y08K%SR2>gou+9vyZYI{MBRG>rMXWQ?Y$Ou1&IzzS(w+56)Hfg%Y&wl~ z7D+uRz?y!KTQxa?ne9J7ey_pyoB-P-&;%s@9QB_P+vd~QqM!k~q0f&nP{9F-khKa7 z`vgycRh4`^WT`Bb+~Hd!!LcaY#bYqIa8wP7gq4s+QcY$bl+**OL&}T?awCB2kw)Es zf&4unqyZr=^GCHr1!oY;J3#gd=wC)sCS4{Qi~^@(R8LfAnwH~xhG{jqtf>KR9KTku zAeyfFHC)ewX3M`B=(?Fk@NHD^N$QTwLvPTYL}K$8bV2aHZh9ORg>zY?NuNkQWciP! zL@RL8fBZrrh46?`WHy7;6o3$$`J;Xp6+AavcE1E{E0IQ%;~8y&1CY@sVA88WyBP_l zp$MHShYy#A!0Ovkmb-~FMdkgV`X>@cWp{5}g&}cNZUj(62t{Rjbdi=TC7%}4#cPQ* zUX)h062Et%92e$*uozW?qOo8iWlRHd0Kh*983%;!0{f9N(t+#*a1GK(Vvt#l5^o<| z03l_r2J$F?7NjYc17X|TFS~@h4MdkuM+MWHHf)>uK0E`6#I`Z$f|L@_1r%~O>hDA< zY+0x9hipKez-+mPri(-kRu}5w*{I+zjUGNk%Qhrdzd;wI7?4dg?CLF~FLZ-cc(vqt zT5ppskz)zRj%Mw9QQ(UOpEqPplBM&Iq3%3t`FK}igsMSSC+@4e4Z>{ z!M;ttpCo0VS{gCc$S!DZK))1lpOidQEp{xVS)!&bw{~Z} z2laO#6|U;Wnsj&}^~7=4%pk;3TB!#k?tX|??;G4hC5@__=+3=2f{Yibu<{JHbRa7 ziGhKvNE~k;2nc6D*l_YkO^ph^ClCB7-jY#YLQ=+`0EZ@Y@*%1+zX5Uz#V3&pqvhO6 zXHT1#%vemVrhzb?v6cT8299jSa(cYRa@U6!Tt)!g+_gLZ;@DqqFj z5XEOkseJWzL)1XNdgH6M?c%B};S}6N-65{Q#1+-yC{>wyS2T)yMTKIk173VPwpY{; zX3TeLdqw4v5GnYtG29M_3LH{}Mp=m{fp5B6qxhz45zUyC#$~vn?~C$KGh8$;#tv2; z7{zay;VSnA3((&q#mLAJMW4S%CNn$kvon$}G)13^=u=61Xc$^{h+je}nhW0etP~k8 zed*G01PjvJ<|(D!vYWG%|&*gN3~w zjU2;6{2CKVeJql1{3r00ajQgVP-<%=UlAwpm2hh$UkN9?L^V%D@}sRqbOjgxFC8Vg zFdPeR7A;Ah8^_bzo>WZN&lW9C7Q+nRWuf9|WSBU+NWO}iKP0$okCVXsbizZCc|aeL3o5Sw;^ReJlTN^7Q12G+0;q+BXuPbN3Wn43>#6)?!QGLg zY2>N<1~I8P!J*d`)q5h7sf*M#0^!b6_u!%!HM6*eo@)V8MMz35JZrB|mNNDHNYvaI z8Kqr>PKEe4Mvmu3H~P5hTyC^XQE!TjCL$c&(t{Yu%i~eKURvu8YR&zxkBp}V$~lK{ z1*`rP!AFrN`0^0{yMzk*sJk4K;6<#hpCYDFgO?yYJx8C*iux&{ie9ux_tT9s6uyKr z0x(;F!xCjD3bs?>R#2dD12umi1+O9Hl~T9AM6jsyAmVhSbo|#BZcvK%E}lWbK`P_} zt=}T}6^ZfSKL#l;HWycQq z?*Mq65YlWsmZ1SiBdHB*_8MSUAr*cg`JGL(qe!z`BtaJhPvDQ*9^t)|Iwwtk0A}wY zDbsG34VqDfEwc8VIs=OlvT4fn1F{a~!6@$!jh$0E661JM7%00;uzpWuFi^`>!$40) zWRQlPsaTVdgn^!nm_`Po*N5JrLY@y#M$iLK%7!$Y`63AeJsH6#xUZt%aU@}&r-Xs_ zj=+-(R6xQ^6Y~88VcGL5t&2$X*T7L zhG0lyo&i`%2syxh0QVzJpjlP;nPeBR`Ro&toq|8m5@4XN+e~ABm?j&miU9@u;kgL! zbtDV#zeLKSDh3p={oV-gR&>U;FGOzzNXoRkWP{sLg*i_< z(obYjKmg^09FLMr2mdNYwG$;;k7-ysdDYq$F`HLmUW2wpET#J;sl3Q-i&#sBO~Jou zE9&*)#;%gQ59^&;7QqiMY)8uD{g^7ua4i=6wMcpNxUi~;DRk>3cq!7% zR>=FwbVKI}5mD4%-u7gWCPWM%1%{@kaIWQ=%iB5XtIIs4fX~GEJHEc(;nx-7CKB*53|; zVPI-avYaPa6T^RWYgaf%Rs?24S8&9yLt+n__8tP3`k5Dx58&$ai+6fb%w z(ob^S_@A=$?Q1I?TjWYNRk(3Vo6wgi!3 z{?0uY)`Srb3nMInAr~U$Q~5zjjdN9ag8IBScpOSID)IF)Xr4uy^n#?>0i%0RK}Rqv zQ2v@MZ$#P9uJT#$$@1O8NicPw+(M(Le~41zpiDiC$iya+JrtWB95kO^-&+ zOaII6F=$9Pd6S5|{}h~SBh75m6y+DN%A=nKPAjiFZ5A3!SDErl1yPc!Mws!6jAhRuTE&mcTyFdPwJ=)(e{f`l0k zhgT;d6PD5e|Hv|}FgH{CzGu(>$ zO~kO`bcS^x+8SWETQGbMgijj`Zx1kRCWatkhCx{06{Lchr!zbPqT>OEcM68IXBmaW z5OVp$Z^ z>3+em0EBr+EMi&-^8-VAuS*39GrR=#7ZJnY(;2pbXlH=o1A^fJ5bie^o*Q6DzZ0i| zgc+Vf{kO#Mds#2%XEunw2rzt5FigT)7>~pft_m=$BZeShhD%Vt2&v%X(-_XZLZZ+Z ze?$P@F9I+<8TPOUxp$y#GZLTB-Ypv`iUHYWbM@ce(5(noY~1%i{|*wL(C(9MRK`(nzsE5%CKHZy55t0wMrhCun zI^de_owF0o!~xfI?-GiXseHgS!#j)-K46;R9mfbCaLw@Y@l+}waLo{HQp&K8nNFCa;RFjQmf=-T9?4LSf)b=W-Z;PJ;Ukn=QSdjUe7ZH>hKWZX zRY{`ncRay`V9d8?-T}>E6yr1gCjsG+KkBYYh$6h1d(bnI#uqgUuPY&m@jd9t zC7wG_umwqs?;$Zh7go|xB)&b=1M<;FRSbyCLLc>UPjDJK;ju0UeFGA1>&pfkO2mHp z8v1MWGlIr^8zkC+B*whmGnRPv!K&$^m6L6{LyUPB3a&%qF)s>?*?N=_`3fPL81oe#G0k|)S9qp%8}qinn1>7mpYsKuI?NdQ zoG&u$WVRvH@|e%}q|=xappHIB=kf6B<&(?l^%b}&(jW%=3aXz+;=$f1IjV{QVYk2^ zb(JUB1MWQ7fpFnSa$|0^C(y`%0*%&qf+rb`_M<@yHR30e_68ckn{cY_3BH5~>B*#M z#PTSlf~O=6hrHQM5~HnW1K6Zp6_18h!u&pBjL!g(K^0c)_!m(0tMa6fD)5LeE4Ip$ zNs3ix2$L@rTF66x*+^M5jT0m@6Ejnnd4hS=7omO)61rYD5*$iJ*LF!A2=}{I8C{op z(zd6*ekEULnvYi%yjNq?Uc!I~$Jzeyq`Owo`(UT%ugpv&SsJlKhdYXHBPjgS} z$t>I9MuLO_20BlU?Lmy|ejZ!$uN0IEq^Axmlb%{2v?x5az%#ZhA{BV1bo10%0Z+|x zfzN2EBW8_5C?Pl`e*lcxQ%4KN?}6eiBr!Wj3nO{4YC4fPxRP7Y2N%xto#zSuJ9w~V zW`gD%B&8rt5{cm2M63M}Ih5awp$zFh>4tQlbVE*?bm_)Wl5d8_)&62A>fmyzlKzqp zyH$S?Pn6_-HqeI2KF>F3!@8?4th@TcPE%hWqt7(@{Rg$v&1++w9MuR6kv{6KlVHs1 z>vXesZ^!7bK@#fgbhD3tih}7S=C!FsMzsmlKR)WNZz`k+C*8xy%ge!G0a7k6S|{CnuDTxuEmX)#I_aKFt`ZGi z9;BHi=;e8^N#}d7zqolZTZ)=0B;F!F1%N)-TY^>v3Gbq=Me!D*p)K-r0h$w_3GAF+ zK=EOuf{$dq*g1(Q{&1j867l^Rd}+c3VKFixVUd~_gYvh9{?+J3(&lfAv5HO7+wRdc z93}ab6|{%k;yA7rwBlIskXxJt(iz_&cLkmCi6g>8?lpA2oXW?Jhum}%NSqfQa_`{% zN^(^;IBs`~joi$|2FLC0F;qW{IBs{(?c%uIUE9TRyL)Yb<97FEYJqc1g!~)b;_fY< zaNZ=5Q=`z;PB-79O|XXn*(DG@At%BEl4;E1Mpd0sKkB$YD>vq%g;p%-f$~`)ljG~f+ z6+?jJN#eB_O-MFG}{i_zmz6K=KY!-YJYqeb~j@;NGP;tV7CsARUE|h{9?VETY1_eNgys zQFs6a4V=bis-N!LIxX^tKYT%c-~QGkUv_=(snd z#-tQ!7|&6cB?{`}@$5p&n~dHJx?shC{;RjgLHii>Hsy@oR#0yRuSm<&Bh!=KlE{aM zpxNk99+VZ(8;$h&3gweJCGs&(kwq@Zn&OF zNit!m54t>NxSn{(9AbZj#1EMlVFfHe8cAgQkokSU_97LpmlFLHkVf`euvyl~$Itgj z)Bzz1pOHx5jM?>r7$rT{3z3!NtFs``1!9J%w?Zm0_bzY^=85=41XuGNh17{-7%A9^ zhT_6*t(Xl7pASXNg%UB7TVEs)G57Cr;enuw`l5J+D@r>^y`1temPgMMDam}i@~u-u z)4QrUmM7!+VP`5yft~m;Lc~)XYl!`~&MA+eVXA#BBmB@!>I^p{i%Guurbr<3T$ZBs zV3&e7a)MmW$5D}jS80M>R%)Gs_w<5Y{6{+})zu&garOS2hVp96M%C;k$ETci<{|-=+!+O8A2db}h@{Oj{2Pjxx=^VrX@R{L2u5$8Ob806x96*N9!E>sI zBF9zEF^p^>2AiCG4xRcBVz9}{&laT~C5vxz#cys56EnPEcq-k2=|Hh9^8qVetv4c;aYFPasbU1R6-b zRt26f$FA2vbiQ$w?-VZz@)1P7^IRUs09uRkoqT6E)lWOtd?(-0P2jb8yi+WHINn(9 z^6DzIl;hNtWO|fT9U#Z_YM|2r&Rq6jzTY;$Ih|Sa9l6-0Qrkc$ z-&#|W(=5R3lIOr$Lr-=mpU#L|Gj`_`?ts>ByYoEe&(elT{`E99!=3!62TF3-Fkp2K zG0~P0OJ3^g93!Y@>ccu$7jn%SngnTz=!GSu;j1eK`>r2qnCUHv+)jo z_DVD=ivuxU)uDbgdN)Qm{0Ij>dy`rO1E9Lw-Pm-|GNln-Im*F131yB(3QBf_ z7RgKM{S-c^=`MPiC+}1yz+sMHdN}TFgw3N!`HR=!O$p-?oPPsZ9qzDvv=TvgHL6Bq zmz{=`aXFBy09=MNl71?A!Zws-HskAU6upMT?`>`l@alr36z_#w9;gE=dJl9=1@3tu z@q3#%e^W}4_`S`m0Bl53@-Ionra`j96T%b|+rq;?!_{-ft*E*mME4VGnp+87A@Lv|1aLnR5AuBg?;=U1-4#$;7bLh*|DRF+q%><4b}~rJZyA84 zNX+kg0Naq1e0q2H!GO|=ycqv`F`*0U~EsP@^I#MJl31q7HyHqy1Q)=@HV}kpa8mAw=Ord z+CVq!UQ3`4Fq?JD!6R2~^UphWv+h**CJV1zi6ZJ$uG4fv)kQx?dM%&DA-CC-khe`T zzdJ84e=E_;5nT%M*Fo$jun$CqCANc@vl*992eG{nQwdB2>QBvWu6WLt8PDdtO!cQt zq^|?&Pp2?wWdjvx9SDpO0q1}VNq-cmz#jw-0Chko5b|6o*#WEGjEw9yAJ6bH3TW>w z;dCKWA4$FUGkCYkkR!Xzi)fE)fcCb@1SV<&>8RB)$Z$!>XcGs#PV7tXU5&&tp!(`j z%XNV2>q_7S6;_?^xlp>zn>fRMSDaA@+zzxjy@M>2gp5$&jIY4^0#Nf+;jaSJ zd|Lt+ssb$zhnU){BxEAQev1*dIM>0}AE>^^2`m7r?;Qf0fpNy0B*euh0%=a1v6tK* z#Dk8IbP%XB)*sGJ9-!_th(JG}&ge9-)I>BmXMBS6Vi6EkdkB0kgt&4Q>Zl@6XLQnK ziAUNwV;9m3r7p!8XA+nSqQaui_!iU~K%H@vEy7u*Bwiy5pw1|6^AB9=jQJ2zV4QKU zl{wSO9P5ll@LeOka%rubr8Vhur)nNiZ2_f68+TKdv1^UEV-J15jF-XcbtJNgw z6YCQMih(|XJH9gBI{1QT;;%^G4dNTE9`n9SRW}Su<(-0Rwpmq`Qpv-8bpk@D>Lx)J z8p0Q-zLNCIL1I;sYI(A~Q>sc|)SVw#C=v^9o7MeD&34*b2ilhoT_GsUY>-aNP!B0;jwfpu0_)6VKTc{0~dDSt{>_R*Og z4k_hZ=?({d-;`4RGM%mK8<>>xeT8T|oTsgn@*^bdbsEQCe}CR7VVUe14g2#hEYYw( zPq!SHx8wWs`s$onH0;m2S?A1mS3<$>d1kubtfCTCG-V5SH&XOyV%|7Kp|<9kb&7H) zGRC&%T_VQJSrS|G%wj&BhrgSrTU+YsX(sO(174$X^73+Bo_YUuNYrThy1eFMv&ngH9}-0A+EdPb(6 zK1|fl%N0BICRRW}153=25;Zh+VIG@S<@r4})*$vt0>3iw`AZ1QJCDG#d4A#7cen@a zCVBefn5_RI>fAo^lsYP}!oxH>&*SgNJBitO)x_d?Ch_h(J-M3Xa{BAtozfe^Qz0+Y zZ!5K=Ct_AKEKx_AD{RbqjgHDA@V?yBr3%Ar^RtUu_vM-|jM{kna(hbS zHRiqWzT9E1D|~M($@wAQ=W16t@7!x|^!$Ul`mB!|Rz%1jlWV%@VRSbh#=Dd;xw?kF z@i1PcjLFs2piTNTP|nU$m-X(Jo-oOju%2wBhtQL)d+cfs@oBE#BTZs=<@$x6ptYX- zD3bqZu2~E#KfJ^buWKIaHI!Odkel5}^fom_B_RqoiQq}heEcQ3mE;$c>Qynssrn;e z_HD!K=2xnuebtAyTD_TKAB`YC%|2DKU;6jr{dsNf9`m|4TYs73hH)%a0B!YD*l!JI_3`Wh20bQK zMf|&*aM5aR%>F+);Tta}Q(Rq(>hPl+qmj#(f?a5SBx55oYe4*|j)tuc_tXMe04G;7 zh^B~`7oEH{jD+2>mR{m~X%((EI>WYGo0Ay4u7!2EeIjl)hRw?f%cDOBN*=Q@jA*I1 zNcaI8t>2w*xy&f{JQqS#FCT$7P^#Z_nogjhfft`*1%?gbR<_s@^5R2t?M&*rjq426Y4&R-VKaU$3V!1 z0->~=@N_3Mb~4`ufe{)U2)R%ol#vr&?}YB1Ldk*GPL4X0mE&@SykaTG$vLT?;W<$u zdY5HB7@qU%$XIy-6Q?2uV$~sXrXd1ibs*j#uvUoX5GPG%KOty;5yUpMJcPR5?I6N) z{v6p`e!@OHXUwRACIxEN>x3KJ0ZZU3p>l6&V-_AU3~Xm&PIWQI@+CP@TPxkeIFTIj zBG0M_%0VyjxfdJR0VF5ZSwbwC2^!3P6Eza~EimGriw(a8bi45hoEplr6|;PtBXja|$wEVv7|RZYn7f&bBo}b;wu9DmF*VxuuwwRLuN^;V*w5NrzDK zJ;>hyaqTSX2IOyrc$2^eA=W|ovw4{Yp)Zr1I$kD-x+WFVo)&fTIGzt*Goa6}j;~Bo z229C<=hvIzy%Fe>&r$+U1AX%On81gCN1v89`|?$084Za4{zn_dj(-DGo92bI7Z-DQj_r;ZK`|`i{EYu{T4XU5)YDc znUO0wVA4y>v&oA{PFAVT>dv8*?6rI5LAtKxW^JKVMzfq$89}2$bX-e%Jls)uaW#m7 zT9#OW?rmziSNf5&xrfSi@B*)(RT9IY5{5$qzMlNzZ{M`^3a(CK$ivdbzG^687-kt> z!^GLj(3SBhF*zw(N)`DRi|yVbQ~%nOu(wP~aB)s*7l!kw5FK|&rcdsq+4J5(<6TCh z8Rz5`L&0>Lx}DSqt-Yo+osIsQ=*=!#20eyJdmL6%8SEgt`{#NErxh9_qUJ}-e;)iv zmPRD8gvlbs@S|SAW*aS*&b86aj#RIu{sMl(p^Va-m?9>ys0H-U&6j+w*DyBUBIwxlka~FDJau3B88E3KbInz0L}S zf>4&V>|d7?ZphtK{kP3M96|sRw^@GYzv5Cl5Ik=ae9wgfMMHAJw>d=vP|{BntvivT z-vdQ16et>&6Mo$(nt_sOqA2xJli~m5sFh9N+q?}0if+jXr%$y-dmbgrL{Y~RDRK#6 z&xHa-x8{VqI7Qo0^06qA_55$aA3}n^SYbf4XcQK;TD^SaY0gYEvGu32aEPp+M2hoN(J| zw&Kd)$GT#W2wf(nJ+{26DBmV<@3Wym(cL-W8BS4ilr$AZ9ZsakC4@Z}3KZRw6aK_0 zx*8={iJ~h?DUx2=E|Fk|uTAj0G13BybHatwDbBSd-G$&7klzjBNdgN&RM=uS5%U4m z+d!9dW^~a4bE|Zrpnc|5F{{hYyPqdSAeJX};BCJZ;b;M|ygVm+tyo?}(rDO5g8T;| zo*?iThzeWp6~u(+>=~Ij-HNYnW$qtI=SHRHjvZq!9)nC@s25msp`gN6sR)2smZ9tpwA_8qdRM<+I zu(=g?O*oo+jXnD7cum+gu;xOUw&4CJIpMd(vNYi!3=IH@&X(UbVbB*`LfCVmpb58A zdCXi@(JYkA5Jf#pDGHi!q)qTW7YY=8mJ{yb6up3w=S9)9Qi_63wK`DbLX}+6zRn3R zbc#Mh$#zk+dRS^rsda^E|!1z2G0;#b7Tr6 zyPS`hNG4G>`Ddm=wKQ3FPo{opG>z8J#s!mYyetxJX4vK9NWl^tUk5dvG`_P=X5UNV@1Mkf zD2ab`5`V=@O?E{8+$8?yHeU2Um&D)C#!L1$8GgU9SFpfFOZInbwC>_rv z6~o60ezWl+cCQn2KS|&f+-%)a#GbKYI7@uCjh9UT1o?!~FNNfT9qn>Zz2Jks6pwt?4cT0Rw@ zU6ZY65bVo0DSb(h%b(YKE_aBp>nMxvuDBTQya;sBqmbl}r%ugDB zPQ*tNd1qzBU&%gAUPZQin7b@!dtoh&)Rl9$5-}W@Pb42?`|UO{9`4UKnFxE^5cJn( zN6x>GTa^&8pGkiniDyAvew0kE0?HFFbG{+EK_psOLMlSXiZKUGDu4AQO-IY%doC2b ztX-d-b0hY2&ieyqz5`~H(4B#h7a?OCvs0cGM!Cmj&tqR2NKCXmZv5h4yIvs0?xZ*K(WA=nt`(CqlicrKJ@1WRrN-Qm3gBrdQzoiQDn3;LaJ1myidYi!74 zuf9Eqgy*|{Q!v6Z^`*MHTPE^aaF30bq4Y)@kJ^H@HhuuD{%o>R(=j9ArojkD|Ev=b z-FOHu_%ca&|M7&|1^fud0z!q$*g}fs+8`*7v)n!4NBEL}5aC3PB;o%E4h(n^ED8u7 z&gEm;b*JDYFZ0J=WInnK%s2HaO)8f^PkO6yl116Nl6A~H&H@2#wCgX*zEryYYec*( zkz<&@p{&2G0?wY#VKtylwKFwxltgwUA}*2Bq>C)do+e%I2_hZ>W<~x}#>Y;3gi}m_ z*)_H#TffxZK*Ru`v)N~CZW)Vg$lc=o71@#gELS9I5Fh>f-oNj8@{~P(b^23Y% z%aMUX@WYu!i2r+b;qZYP?s^qA@&V$N!R9~5Hr8?>d zq5jCyPj!ByN>!nLvXs1eGGDxoX0ed=o6|{q*`|FHr0pZ^+B0~(@?WrNO^-;;Ov=(+ zcO+kO4M;ct{du1;-qw9M8S<}c zN}1*dEH*b%LXSUdk|BOoDRYW=V3WaRl~||*@1P~+H6?D62B?(zsS@{8QQ~JI>Qy}% z;^a*IL|X3)u~XR+@0W+DVhR0{S~XKYuh!EKsnu+Xen36d68hovG)wfA>2h@|Gv_pj z({0KmNjbw3`d#%*%ckE`Yh>#8RP*baHBE}?P5raNJvK;@M`wn6=!euHS>eJC3_JCz zNOs#~>UU(jQM+AcM9Rn~>K?-JjC7oW%-rggBx*KM=KJT}nJMP`=a^%@E)p%$k?^fH z+ADlMFf{KNLyrcAHU@?kIz#&cp_Ru7tqz3#2!z&U=1S{(g_-;{yUpJ++3*Tm6J;{I z*JXIWOzW3;XcTin)&${+rI?1M+k@3%x^Bk4+KJKS;^IzndPeU=|HG_md)^5 zqD+QQ$o%b%CNoqLM_5>?sA`pP%x9J=nOcSfevW_ZrBQD(_PpA7Zdm*3`7GcZdQ`evw$t$Byn zYrrg7xYlrfv4xjWpskJo{fy-UTRGti6fHOh%SST8EAN(CC*sm55&z2w=P=LLh{Ksg z_?hAQ<4i=?B60WCWbpl(1cqhgNK1w192^xbW)9M}vuK=>!D=ghCHGzC2cYYoCOii} zPO2_UdL={mH}?F9Z-1bjtmUaY-KdAJDGFZ6sCEv~c4 zGzm|`u>izYLDb$ueE{!*O;Dd$nJOwlJ&MemB+Q59VG#eya@;R>wSudkHjE3PR>3QC zPwFc%KPjHLGIM5+D$9gz2NNB+`^r@kVpP`4pO#x8f*m8s?7Ws-p8i6)hLjrX{ zRQNkclXZ}$DrusAvRFzIW7`P~g0&xreFL$Cz+<4D{H9#5!15Te{84URw)D~IB;|a~ z^czGaB{r9so1kt0iP=`_S*o?9`pks)KARTuTDNG=aO}6tPeD{<)CrgGqkjQ)!l%B&dw@FOL17Umoc=xQ z9e}pzix0aj7w2QvIpKQJp99*WvwmRP56~7pX+HuWD*Wn%hoHU(>VyM-q^&?n3#$_r zp3j?rh46?IeogvkK%MZapIA5#)CoT%@Qx7TgiQ``C>u~GjLb9nJj-VH&=YWp6HbO> z6i_Ej`I*DhAdC~fWM!&YnVOOTal+eSyA{M=w;aX^V^0}Ial#n9&IzwhiZAI!>Pl;E z_4%F)B|G6vl&BLvg|Yb{$qBbw$&lwl$xir|lWca7Sp`UPLT|n;kGG9l4V>^V(5#y#c5bzDeLUpiWr9TIL0A%sAn_(nrM!>-~Zq z5S0{l!dXz$K%%XcD&>TFj!Flc#s>(|h~vF28pZKGMD{%pU$EGe*EpWc=j1w}G! zvp5oHE4KTCw>}^${OWjT{>e!*KppR40{4JYj+fJlY*B&gcoqKQB?3^#n?YcL5OViR z`I{9#LWtw_hv)^=@gB7KbdEPjl!@c5hGQ8}$7}WvT>u!zYxjUDn{&KJL`EF%8CaHp z_@$P^INq)&4Zk?vOYl0!`#UMVl;d@@+2Vzq4JA8XDjutjw-aOUfh5P1uV`|GJQqrK zyw*-~;J>UM14)iI+h&?Q0j+2161GK~RvDT?Zu}+6+Db}UK_?f=Tt1;xw z7L9b6;i6GG%#+AI4&t2|yX7(+<_aruoDO3q=I9wfi|f$zJ@UJN4oxGneD8XoLsQvo z-}^@h8JY$_^af^Pe!ns2hNcuzCPUM!a4ZKpGYORrpyx$O}lLeV`6SY$wSj)DAA$mAjZB0W`H?gru08qekSHN zlsq)4)WBTd>jjLI79#$lt!Q<;UVUbmqQz_pJ3osPZmmX}ZO^D8XEAI>{7sOUU^#2& z>+D$Pu=c}|JX6Y#6Y%WIny`?34(J{Ucm2)kG!FdGG)K;EjQZsnnU5@|aPr((E|2AD z*iZ*?KplAUNwh79ii|q&YRn{Dlshq>Q!Y=W|$B{ylMu-Eg&lV>cAr_^Q8``10N;u6DV{kK@K~(rpI1oyr4ult-Mx6s42p=FY8|Xk7vzFPFD3%!r+e;snf$$%Aeg#oU(Sfk2 zI>SCld{u0k;dldKFRPJdPoj~5aHMFIf$#}ri$UDC)o%vECRXA&1EHGHyP>S5HdoP%~iSpw9V9<9X4NWuVUV4uK6qh%>c08!JGaX(53}fjU#~$4x$K+Uy>B9%bT8 zzrk@pMC2vR&F8TG6BuX8uw^^R%G8t$h%@~F%Xc7tvgI(&bP+?dT>AV6uQ<~%?&O1$ z;?Uc-=|`&ZO06Uc$T?)Pf70?dlK5`b4ygV{J#z z#~{AL@*BsRWGUxZ!)UVPmoVyBj|7e-zqRH+nUUFcm36GV`uqeWYSpo7H{ei9ppJDz zLw@QRL`6m&>()lhJb*gZHI04mN?@j$!Xl3K05SIiZKZ4NY?!xO9g-YtE9q;1w$j7r zQbj;psrq@Wy#!I=SI7Dr>L^ghy19w(4F;tgi(fhRmcE35IM&ak?*-~u{hKnY1L{~` z5ZEq+Orlyh!z570dfDdlEL-mhQ6`RcFC0^WI#zCT))4{YSp6O{%u|RsZF-nW}5fl)N0^ZtKoV9Xp@y|!Rf(3o2(ImIv^_iCv+@H zRL2?v>+L`t>q7$X0ClWatz{l7#4?WcljKtzE1J)NfFLR<>R1m$%>{`ctyJJx`f}K; zJvn64Lf%2qh%=ojy~gZgy;z|g}@{sE`@lGz)}#q2Vxh2okA2tgkwCA zfUzUE%i(-I?tb)(WDsGEG!F`I7EFHf4I% zFNQsonOWr%n)OeTrjhjyApdf*e_Lx-{DAxp5PJ#i5<-4*aO8!sf&2y#kGJJ8K#+e1 z#NmsW9e{kSw)N_Jt5>h?dX2o5JBu6h(iN>ZwQEe3Nhja z&Wi-Gy%4pBG1a*V;unZ2x9}EV1jN4(b?@-K4{m2L&X`A+uE3w0Cz$H)b1KAp_Q6V* zj=B1*7SwEtVP)Y+X84&k6hXF2q>uK!t)m!WRp{JthKH>>HWUce&J2I)gqDrRur5j1Y3Gt2m8^LZG+0sn+0`w*H%lGP%`V z2S-n!x4M4_`~u9a?(Fe~`3x&FP-Ns*H)%R2xqx^J%VBPHmn<}la;qB$uin;v8_CHn zBa>3(1~?iiC}D8hS%&f@K%49z0)Gi1O;%?HTh>5S_)mD-kwm@ibb+-H z=xt{%fmuLrJMUV{)KMXpx$X3p4kNdn-{Cn7qLQMwopv*M*#r`ki%ov*ZAS}YZaN|R zLV%yc7Jb}w9u<9Z)0v9oM3JswdE}MDY@VG(s9zMb)jMOqh1e(h5}-TapS7yWXu8kZ9IfGLq)!5g%-JS8$u&%&WNl9& z3jd{0y*on4J09J0@KumE?^5ctV`l0|cy!OfW)!Y>h8-XKr{N3M;@6+UPl27A}VM(51b)nY@s#z3?Z_%&7#I}c(QfgwU%0I`C=)1X5EM2GJDY2S}Ovr+ZkdQ|m?sB}N(Kx{ZfR|1_u zx3y22GC4g9I_ZFNwD>t$tUZa`SPya>S_z<9YNtC!Cs>VDAkNh|sf)~rXzM?Pi>Y7PNzzji*0 zjJmLv1)Z@C5I-Tf52$;8X%+aM3#Hg<@|$I)_KfS$CRd^ZcK5M+R(rP`(3nDHUgi& zfqQ=m5xDo&6HQhy+ZBbavr?{vN8P&*3ayIBMmzH%-#Z_P$a6Nbf ze`8j-_9mO@mJj=0bD)|2B2c<5In&cfp9B(rSv{^jhDrX^!ofh&y8;V0Wre3Y3mcJK z?<^d(e7xL;FX%7-lK!Vyc;IeRWM^SyV8NSYQkW-*g<)CYADxBhJhq|$EklasqpZmm zhLJu5Bqo=#aHm?3uW#L~Bx|3G?c}4))j=kUx?zgfeiPorluUoSJxVVEW)gc0cZxS#xOpS7 z!g1Fu=Aju_ZYf6pl41xq@6A7W%NFB9IJW{V#_0>#&jnh`^f0;(-V;s>B~hn^aroN; zofb|bFb?Rna9mKLgJP9w;ca47riDMjvkyciMW=-=9%CE?iDg#mzth5(Yzl`Gc1Iu6 z!k0v!3=gA_yj`SUTzG6}84a1Z#R{5f;W5*}ezLT04C?f0;1yK70Q6~~`s2QLGSH`i z2MEj-LY@ZxAaDfe)4&H)jK!MfpVx*CqE7=CKjC|AfIbbpKwt?lPXltOj$Gx`(3k4$}>#xhhrW%GJeWPe7Sn`w+kn@=?Aem7& z5_Su>^@U2XTswaK62mJ8J9&DCt{RvtA{YL>nYqu23AsZ*g!=n|xkF2`-l0DsY8&X; z$ch%LQJsg!yIKSG4lPT{ixC|84#M|A)LO*A4RpNhYZdsO3k5};pBec_@*#KVTj3uH zjL?8U$b|x-M=~SlVn~H{An=h0^?MAn@>6TE$Ho4W+Lr<}buh0Pt+|-W1c|Om8Fiho-~lTr_vB89{O6v` zgnPpxDHv;j;L$!^JW8I|lBV44_fgIwEI+xGLjRat=(nZvGNMt6}c2I4uR8l1q5s`#rrYeoSge!-wHhsJeo@36% z4Q2nr6*dQF+roz5WiWLE?2;f^oU+Xi1y-EWcpI*4DCG?}xiS6bCn_cf@#E-Spzsjj@l_i}+2 zpr^fOGZ5I&>9(MOnLFVf0phnO-QV#eS^C!s<+1myPdA)tMLib^e3~sBsj#U}zlpAm zz>B}JzzFC8b$35$h~R)aw+TcCzhLW!8SgF#OpTG^?aR!4RMg9OcL3Et05jf6vW|D> zJnefmK+i5#bT$IgD@Ku#nv0EXJKo8TlywLW--d8Ih&vFx8R&R7$tqyxWUh{h|BC|#8>ZJU71?#MYIAv>i zj~UNo6^y=O*lkUfa^2t+LwnilQ;f-JA5hx)$))Wzi`wAgEn6@CR>(^IP_iVYeV6RK z4Yagh*n1$)U+@Lqkoqi3@<9Ago1QerIn~T2MRmoj)ClIawDl1=N5mE;msUr{J8Xt{ zG#9DLS*h)u)Bq&_O5rv8V|XG@eBu4aLX)pyL^FKRqkb78xBN{s;ddV1#A_LM{}HDj8Xk+ni9_ zWgJljynd50+loBIrVtoK)a^hEGbgYr={|enwBN2G{RNO{{%lEMOh*&C{YLJDLlJoN zW0bxP@e9lcfEH@3od@`y3kCUGl^Lmwj25c?a$Z>iBQzlpa-l%z<;+M&Cv*n_w}?=` z?U*f=LVZf$MWU7iE!31?&LZhPI}^1~Ka;*6B>Ekunpn(guK^OBtXkn)LgN5Y+Kr)3((*%$OX?DYE;S<84yJgQO zV~h=6;Yy;+#@9A!dK|G=_*tN*XIk z#oTObqwoWwOcn1-vpc8@kEvp!O%=z3Dn1g}K6Feej|8Pm-Qi04hb!gT5~cgQQ`3{{ zGcDcK=lOw9PP*NY+=(cY;gi$thU6OqJx!0%6Ako?5Asi(=N?}c9|a7e(RW0z7v%4(ZKfmu9WKoq20#_eHjRS6bS8e?Xr(3 zli{CTyF?hiO#6m2lKrl1hV#3s!l4Dv$jFw_&g~^HpJ9B?>=i$sl&tefE#o!a(HJN1 z9?=2PdyY7+8Vs6p`SZqB=WUtp74II=z2b3(_Va+*D}Gf(_lief;5GuxUh%6Ux>x*x z7n$1tvse78i0&1?W{vNCx|&y$I`9@nbf`>U&x)FLL^cmoWdhj;SDdbCGZ zA~|z3gJVWV3;VJ7U$=$NiRiZQ-!QQXbRBa8izvQy`*T)B)VT)jVWlt7g_BiR8}zP7)M zz@4DvwY{z;*#`5sUmzf>NxmU{hX}~F@E-fvLj?5w@ka!<2qEu}n|{Z)4xsOkC)j+t z_s8QznXD$60>@~e?~luV&%zA|^ZvN`HdD6hwumc5M&2La0o!dL-qv!M_s1P~8Af@3 zybWGvZQ)xy7L!a&N^p^8b9YOdEo#$-xJTh+=tvzyNBm z_+ZPS%ksJ&ypbogz0L_=GfwyzdW(TN;gG-y$J|5#UyD==!LLsE89W<-*%t5<3p;^2 zVcDPg&T&Ah7a4WJ?Zm7H>V&Tz^u3pXI$^_Mu!s{LCFU^D7QOi`m*YL82ToY~5T90n zw&+&`J{3Y*wAU{j5)PumuTJP6W}g``>V&sJ+z3iJ;q2iozWN#gal%8Se-G3NyB^_N z98f3RN?@Z9;)D&3vib?A6K=HmbWSMe0H_n*1;?#Go$y}*M}cv|TQ{4s)wV@EUu47y zhyUt(H-Y$g%VC`GStb~Ai4%5(*ZEuG+oS{+X`FDB%@!ZHY$(|Y7otR+@NtaI1xZdg z-SUS#7fN=*FPvnf|1ki9Bq#jXW}4SbHzzsaVz?dy+GM{HI3k2J*=fJw$RJt>{|TK? z64eQZ!a4}36K)`|2B;H$8(1zD%Q)eZZ>$s6{@wSggQ%pa6HbAe01~y{Hr0Bp6Y2}9 zCN_zm91w*#-X2jXj<*%j%^-f0t$gEnyKNRu?08+RPUCnU?~A5<=Nxa7alDj2xUBnODN^kY_|@^who?4B$LsPZ%i@4K-oU?D(h8y?qmI|&Z{7j}b-e2T_+C|@ zj@RlISj6$V5py|E$Gi4*Q!BiSB|UJwX{6r)v=uMD(kXIY1MIZ@>mqw%WFcFN%yf-ga0%2JzvR!#Lgnp6%ok$9orE=VOVp zc=mA#F48!jEa{Sq#lAL_?0Bc{vyNA`Ovw8KgGr8er{xcME|lze-JImTNKOSwj%2RW%Q)VKcJ46ZKt`c@Pyaj8mV?UiVQL*8hhj#qRCEaG@;hP<1JsO zrNUJ_k^;v&NcwJ|t++NLg<=^;)ESW61Bthgta@+4)Z*LB|tmO zt*<)kg)mEp=_1yp!&J&)$^)X3q8;W|sNo=S58tHaI!=dKXcdOMF`|$TGgTByhj|6j zRUm#2@95+*9cHMNI9`V_`)*M*nikig=?@hA0(5A)CO70=4s>YxguuH($ef^gUdU?< zbZAOlZ|u3Dsj4WGiTN}*#sVFh%9Rg!|3H|b=_M<3juG_=MMj3Ek+9tX;;&l{Gc+x- zWs;$3AiQoAO6*QbaFJ$cTDQ*VrsZuYd1!hWB|0Zqg0W&?1{mEI{;uVxz&4aTG^x~? zCxyIIfRR!|@r|$Qf3pLm*JakN>YGS!fHUVTvFz}h_<4q|7?0R-gEc|YmXfp*WVsv)l| z(C#^rz$hW4dwxgYE1=!;W1COcJ=gq%GU=ZA)k0n)pxtv7foFl~p5s0+Ra(u~?9U=2 z-Lu}QA+HXI&$1k*doI{*7^QobBeSk2Cf-j#!hgbn zP!e?@+z0E|KnKEF)kEHCKnKE8tYscU#WDlo)zU|0Ae;`*co3Bo9SDDd`W_@MwNl3p zg!Q}lZwAHkmO9>`s8ytn^~lSvx^k`~(@P_n zS%=Xpj@1vHmjZRHQD=m_>w!AfJ!j(9ASyEISbb~Isew9Hq9!#0)UlQci#XPJV(tRk zN(=1`ob^1{Cpp$i(w_v{N;jSr^7;d9rGo^%0#V^t$C_O$zdCDqc~PCc%2U=?oUc^k;bu}wb|nL z#B3HkoX);DK5V9IIJf91CcZ zO&~B%2yv`u2`mQDZSbGau_RF)>t9%Z2kKat*26V`I#$KNa`hXGW4-i?b*z=}JO`qZ zqKTjCHVAoTfPVk1OW+)!pFXc7 z&`pS9*v1eT1rpn=_2Yl~bT`!h>|||RYA0)arqv^p>-buG573#mSD1Q)`-5)zJRGrG zKC1*#<b`4M$POe?>Co{EYm1B>g~cp8@%IKpbhz9UJ7|08y`L$g2hN zdqF%x;7%dBK(ua7?`Q_m9wL$-^1>j$1;ii%-9S|A#3mDS^Z5*jAa)IHE`WFp z;;BT)d$0q)*AUm-$Yab< zh=UMsji3X8*xwNU-odj0h^6s_xpFMy2k2M{qEB`HeDR{`34P9ncy6U3IyQ#T^|`LL zDtisbQCp{_g>O7cZ;>UZWhaHanG+dY+ULVvMDkB0>B@wj%WU`ZT&RreZ+usk^W;>+ z;%Ur~fLCzV>n2^6r+q=PuFrK}UUi*H@Vzy@=S{<_>vPpyBWsQqr#2LrtDY7<<5z30 z^>l8^Vorsc1VS#9;_`TUTKEbl)M`%1+cMh;wFrbs(nAB)O`rGmyg5C zsG7Axp^!HP=qiipwz#a6f-hKU^9AWU zLE>?nE;m;O<1%wr$$=eaf!K@I2Ip9bjn-)?ZN!F*C#O6d@+yHuHG8AA@~qROJr-C& zS=iJc5fr-xo|Bmr%Uj;WC~LUX;wPCjcVN@+tx& zR3i{_p+KltTI6XbG!TJnMX29q%*wB9#@;6II8l!Rt)|+6RY~_*1fb2fi}cSx;?-A7 zc3iU!Q?k7*A}B`S=iljXyCH)9c6pGuoQWtLl$JUe9_??H=ZC!VKn**-GTu=5g8tT@ z^gbZIE6K3!W&^EiUZ#oa!D*>WM74CY1&GWCiG@jG(jeN+I$A;LLhmAC5_EC3=|(KS ze)w%uP}j}uI%Crf8`_>S$tt1|B?m*&ay$QFd&*9%ZwIEQNV4{nN{@uRT+s7DD|#UU zVxK!#ToxM1WqXROyQn^im&ku2dyr#%|-Dg&?IKbS2f53zp<+(6VIpbhp>U{%t6R(@#BFDCs75D&d- z3Zt`c+)|c|jDfS_Uv!c35J4BodERjHR(&#>?n+CYONq6Me1oRl&Z6U^i@+Cjk;cV5 zM1sU>+hoV|O`YJJW-ZWD#KMHM)U9Gcddl@k4gm3yZzScn;9pxhY5v3T(nMuAsLiav z4?4;7?;07~NlG|Mx`}-7x-=-@9x*>TEv0};Q1gp0{g{}q_EwU4&2&#I74~wbAT=c| zWr~y9gT&_`@%Ni0Qm%XJ9C2VE+)9L}rseJwVR`tfx`43*L?uP%h}S{&2Z@KRl$|4L zc`%^ac{(V>7|}Q_EhYDFTZre7eHz5O9a9JyOSf1lZbu?@Ut0NLA|-3Ozei#(Fdibw z>LIlr;~5h4{L+f{ML^2NP!s=*543U_57E*3_rStIu`oBS{KwA1RMboa#)2fPg-t}Q z6AM`@jJ8eI!kt)Xy2r#>ACzTG4W}|l{)4c*6R-3*4h+->&$kL#cW*<1I~Av;*FZ*n za1i{xfe~sI2)R%ov>+|LyAygBfwx4c-?^AAA`h|i2vmCl*97W=Z3C;4?z50eJJl7W zUk2h$wwS^=ACwhXv*CQ`UwkkQ5%}PUAXC++p=n84

<+2k$}C3}?~tmGQ>F7x>_p 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

;ejP6VW^t+Z5Xw{iU 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

NYY~Ulxxsz49^xLJSKN+p)N$k`8glm%+ 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πL>m+;!Kitj?~frMdN^E3^L_lThn$Sj*FPys_># zrs8k``@r;RcT#k2s^u9niSO5DihH%MyuGTp^|L`7v=d~4H0kHH0czg+IokV-K=y*0d_F0Az2-N zfQ>lh9NMM@LpSov4#%KzN(_@qJLBjSa!6S4kwm}KzA*~1%eN|YR4|69GIDZ(B+VwG zz3f&OGQ(~!mnm!cy|R}_mGwI5r)|Hwq^10=j!$kW8Ot@hF-j9Mt&Z@k`$#$~J*pRe z=U6m2m82o++)g_#jl#Z;BF#UTOH*~EeKLyYwt`3tTB10Nvh{vX&%%(c=%S^LMEO*n zr`Q8(hB7X7+Kql5K};g~w?1I%d8{HOvRUMkosFVA*d7i9(hGId{dNcYWVx)*gf8ji zeMFb$%Ft98u3Mo`^-@u8hKp)@uf%`6XnG*H zOfX#L#`QrjQaS#q$}bd89ylaPV2t9)16NUQ>`}Qxp;QO83bl76>W60owjE}JQJGCu z=>9UP$ka}W!qG8H;r_|V>hy-)H@SaON~Fzp<-wiUt`woY!jk_u^?iHy?;vvD-UHRq zavApR9~!VGuy6m6ofWpC_>Wt?eFqP*Hgl-J5^}!`57pIYHOVPM1KkGVbCd&{0y#zo zhWQIcD(fVm3DP{v`^_fKxFPDqMmwW}OWsvDp_<$jCUS-faUjW*-{10rq>D|SM`7*I zo=FO&F+{3~)1N6DDnce7c+C`>QHA|(my%MYhth*{qOLGZs?_}I)Y6=qTb@DtuUnp4TA;FdWcj$7JIV}4XIBBOFU<(+k;RqisYSIiKfgA&uGXif7v~_5 z6ngc+@wlxwEFBx?O_8b(7U2VPG%g8NBR?E~0m)9S4dA1$NnG{8Eai!{C|>|(N<7F6 zi0XiQa~4yy%{{fSzJ&9z_!(xBmvKhGjOv5=PU7c=utmQgOK)7H;ZW%)neGbBQuIh1)Y#^FbXzR(Arc@zuh@}_{ieI^o-h9J3yu& zP*(eK-tKaVGuDl*m_!cCF>?-}innHTBxZS<2CcMIv9ETJl~7zsEH0GK9wtCAhlN=X z>Y7aTkD?TPT3dv)e#9}#?J5qUl{J;cJse{5CW)Z>I875iiuk2rQ`wi3%Hnanm_Vi| zm`(a7wsn=0U9_0Q8#+kn#_LAipxd+OW$JxRD9IW zS|C%45gzmG%~mYRTBnVJ)i8e<35e)erd4=-AzM%Tm0&dvF+N+2PDY(#Pw-^f5=nRx z?X;yx61$CUFmBRGY&qH@M@;)TE}8|`iLA_wQ`zzL`9mPli)yl5VJ4hGQtEjM0?}P& zhYF}eHy#?IEo9~;@vSZ5TnkjF-GxHt6Pl18ts~wk3D?4J)c`#QhpQ z_D3ls*9xeC1AX|KcIat>7VWHBIEW$4wD5}_;ltNZM`0|DIzBP*U9XdSHGK@I;kLGc zG^TIxdz)9wDe7xZ-fNfkGA0*3TmLbP z<4^5{{qp|1wCC_%30?Fa+B5LK@Z(JoeXZeNdR0mE%X{+Dru?3fp*Aw)o?3cc_vwoL z@;<$^{83#oZ_y)d3;a)2_~pHOY4?y4T(LqxFYilB`=if^X48sZLGQ5m<+}xG@n`*^%l6-w zm|xbv_`czsVS5m-vQ#fy|JN}{{u6%r4no>5&|u}V_1}ZBD!+U$A?+?pzwAE|`2cS4 zr*^#u36t+Cww`Ac+w{_x_SfLSpNb29`TpYcf64zicqw-Ib;aU4jhmSNZl1q{f#?-K zehj=sBK-0_$I*)n<6Ri5UcxUeEmM`h`0itu;op{pVIjgN?Y}I3`95TOx8XlgY)m6y zg5^j) zLEPK4mpJ%;&HOjNX_#ZUXI=-iF;cm)X&nEMj)7t#hw?b4C zKDfsej$7~wB3-Y*|F`3RiCd{ZRGx<|1c0k`wc%gK-)*axtsj4eAItykw;2AW#b9;4 Fe*@)ZJ~#jX literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/stateful_activations.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/stateful_activations.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..60cf781e0bcd5c4dba3cc89815f6c5688acd436c GIT binary patch literal 837136 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⁣!#>5jEXXf7(3 z^DFXq^rV&j)-kj#p7=xTe~;*fG^Qvrdt(|t)5es!&a2tMXl=8Bve|gGS)^z-#H-ml zk7m0AMQ>BpW?#@Z%(yfsKBan6mznA%sh4)6ibowo+X$oMB~-KD+a9Z7FvL~!ecQ4> z0|OJd!E8$shK zHOQIIt4cCMXko6H0SIYT3*zXyP-v(r))Z)u@jtBB^bZ^z5Di=9Yv5+(<7jW&@)Pj1 z*`H@bu-Bs0NR-^N4Z0osHA1iNO8)fE$(7$iwpMq9Y%T2Ua`mrucEU#&*m0LTRYBW1 z2CkL(uAY@yRpjk+JjZfOl+a`GJeC(=P*fe}48-TzHDfBja`xp-A>}}a(0Y#kZ~2y3 zSwNpkbSR^I!tj_Ki_*_r8QacA#*?ZH8-W!Ctg+IysfN_b!)Z|A;ABi%7)u~PxJ%1x7Yz#uN3u+mL%vN@-RcEfOLDanqipHucd%HjMzPG!ySlmXpm=U8rb=$4x@*(KVePP%^x=fia4BKnto8|%`pNL`4 z^R0*_S4H!c-S3sg(Y_~hc`VSUy-&EY+c6B|i6IxR`{%%i=NqnQ_Ddc7qqzc~zwrHY zNhr}dN>Q1HsNxzzM(m)zcnYG`37y(v(5gd^z)rYAZ`%loLvHAJB(Z2tpn(1N%-TBF z4Er(+Te`Cap&`d@Nc+Kn!<*-pr432!O$ok$jvn?aw~t{Lg=5xMQpQ5(W>Oh$nWs-Q z6W_%bOX6*4C{jOAsvhrh=JM z?Jt29m!bI}1H(UJLH4BwcY*gaP}t~xo% z|A!lR+#Ki72*K`rS=pCC)7Q4;D9w{mtQE?TfqC+!W9Md&aJSgM0{!AVq?uo|r0fT$ zozMxGTOdHQKg;T*Eil}lZA&lUik(t`>HhA$d<~Lff7Wc;pVfi}pkyvDE_7)xFK`tb zDF!@}2#>U)qQ(#1Vcq0n_l?c|B6B1RFr4#&W)1Oe|3;q4mGi(IX9|xs<5es3XHtH= z$mjh(yO`%?00r*0VSEU#(*%ghysS#R6!^Bp? z`hY2dU;RI|ZRxI3>ipa-H$B|BZ*VT-;V8xsz!-6UfK5a^52>FzaL(ONck1T`>gP2O zql|Bw8~=OV@SqZ-@r!lVF-_oyGKg9Y9T;inVrsPOWuRRh`Yv@U zbTLUZU2<~YuyNTWB%IJGaxA%e=QrQZnA|&gIMm%UwiKI|E#|@7yWq|@4o%DVQR(Z_-n~y z)x{Y8+6+oH<*)TeCDmW+O)V6E%?#%a{@Sri5orCjk0`^3zjo7$4fty#Uvk?HT7PXe z{7Elg)Th68F6v2tZ5lvf3>)y*jsRm?5)x!B>92ju+3c^il_ib%YhmF~yv5Ho=&u<- z=4tzD7ZEQ{$6tFe4GsQ|zn03xx}R0#;xJFQ5^vC7+Xw$pJ7orVG;7dbtMY30Cr)W~ z_ttEG?eQ35&r!!p93P9}tz>_#Fcf<7|DL}#=y@-HZ3pnQ*|F+iz*K+j;IqV*1 zYqx+~kj&=!Yp?Zz)s3@8^~Xqg38|h zS|#A9{@M~s`1IE{Jmc269{yTKG;#ZDLn!qR`fKafL&!Y*wWlxzJp8p4qnP$bkq`b% zz=QOOU{E`i6>GuFsrDPd3i8)hpxUN(G}o#VUk}4@49iHUh_Sb5jLO&XRt&GyrUpqX7pu;c* z4IiKh*UMk)4}2VlV;BQ3f9*xE&&@CP*RlvDPk-$XhD;Ko z_18|hbG823s~CcM{@PfNe%N2TochuFYaN)MjDNHIwLbvU(_d@jhT!(s-ov1=#@hq@ zrN8#fa8`8_T7hHi46(m9-#`Nv`ZVUQ@YkL~4F1|H=m`E=8qwQ;zczy;L-=cMBou$` zVidxiR*_?Dq`wvjOdupvsB8FZ-#!62?60*Ww5vlq0tIh>Z5VNm{k72)V}Gq04S5e3 zQ@Cu0;Z;!kzrX)+;C~$W&v2k?-vROQ#c@5XB^h(Gi>>(u){LS#rSr1$ONy;=U9Zft z&dFVno!>*}RWEx{MrKLgVrxNuw%VYv`hYt(d-1}8qAay~F%y`YUy@x^Sd@+b*36uY z{5jdyEF>~Zva_sxtR*?Q#nyQRS*3Z|*3682bca4?Wn1$KGO|!1H@~ESQ9wk6QV2+e zMFpAJ#l?ML%jM51D9z8Z&dV;zDaf)i852Qnes*?Nu@xW{awWUd(=+n(3raFdatrc{ z)6=c}=tX60sg7IVyFY z?RX^e3-bHWXmEq{^!cS3dHEUhvV9F&aY+#Y(-54V-n_b9X>QEHP|U*!=MvW>`)3yv z)e~uJ_pXz>3;fmjBE=qJtVj~$q70M@AEH>ApS`G1h`#q^Q6bYH6DeIMSc`KCO7pU; zIT;JGt(ZWiMfng2fXU4-F3HHx#Q4s(4$COc9 zpmMugvkF+@LbNhUGIOj&rTJcs2;Rh;j3Nx{aKW9D#f8~IhZQT`XIME?;akJ?i8fLn z3yTUMKgGFMX7{$1U=9{#3!EWU=x=sW!Mr|#>OMW?XfRu#!PC=ex?z50K%sIP>?fw; z&lf-YPRyM%uOK%|!+ziO#^e^~Xe%`YZ`6pi$<3*kRxpQ#eqP2Rui6daS--MRdeX8p z<}RL)twq9Ty_AfitceQ+Q8Zz}BcJuO@EWVuLEdC%RAkJco|?lAg&kEB&1G`1ApNWkOl3(hG{xh2fyH z6&Gh0kzyM`N=T>6D1?o%C>K*VTfoUJPR}eTf||)fIx(z3ov zU^+1>gI5gJ2vA#D#WV#(b)72eGOZ4oOcQTNRm&voDp&w=jix;9`YzH!ol5niqy9AA z=@gMw;3>Q>79t9GFggpNTP1+3+~UH#jK$mzdP65w7wQRRsPvPbUXoqRD~W)t*bz!U z;6p}kzEYd;7CO^io>h>E;$azCY_M5p=Vi<(wvsh5eDO$W59)@xZ9{9<$<~Y#YuCaH z0E_M3A~Y8f8Syr5#QIwejV3}f_ zbQ|~et>OmF7oQU>Q-`H4u50o6U9)=V$iQN|MOms~OJZ_l=|IlBg5nYiA!dlE%d=0Q zg^L&IW|ii`{K_xZ$r&maOSDuVL03O)&i`}3yX3~vaQ3# z0@}4$N23k98YcK}UJm~>2ytkO*4Ge(?k3Pee7q+@)MCq|hwh!4mS_9h~3Lsd2) z8EY3xsWGNOqDl1VGd3qQ~dbl~dbPx5F zKAW5iouCVBfu<_fWo0kO&CG@v!NJmjtA#lky5j7-**aDd^JuEiA$5^H3yJ_07UdS} zNK5HR73oOd=q}Xtq9>PrgF2j#5xKF`v1%6NBw->+T_^rWH%iZ{W*3so!g6}=nBD^2JJMgQevUJ~q;S-OJ_r6u*7=y@_8femazO!7l~BJPP}{T&4I; zIuH3nT`nuaX#7n01>$$=T$gJo!kPG$p!S8we_TzU7KP%3(I)$z1Jub$r zgCBuE`+y^U7vVPyzrpy$j}{)q6w4_vN~@q7PkjL!k^^GlcO4gBo*y@217 z_-#SiafHVZUV%EXhg`17_$m6$*YxR2Gg$ulDp$%V%!GH74QoBUq$ndZdls~rwiN4b z@#6f<+=9O9TC1)YqMm!5s%QFf1&?xd^>g>3u2a67yVo(4`)ICH*R=-PYs-DLSJtft znyc$t1Klg@S3}J;<-U4{zoD9NipS*U4aMB$zS~Pxu6U2oJUX3UTmK=0^g7*0#J5z} zxh5gL>y|p#5`>>2yp6&;>s-&{Q_#y+)wzx#wBJ?d+J$crJKbI9I*IU|d+J>D4fi;F zMz93i1D-*68^U=wQe!+`2&a8g=Xw%wrX#FHn1}Fvgi8=Q5I%|U6vE!0*15v`QI0SU z;gblH5bi=a31Lf|0aHl%p93GtN4OJV+81>$1MqqhVQ+*jzeK+Xrz6avG)@Ftg>Wds z-uP5?HNH2^LAd1WI@d~syAVE!@YHvp2jNPbo*4nUdOOiS!d(dS5KjLd^(l?;NrXdx z06w6*<&WSC!d*Y1KAyU7`5E*h+=Xy0!qvajxwar|c^q^jT#4{7!n|MWTrKfAdhe5U zuIUJOx$0ayDDCHRg&DzjghLTd*F#SrOf$P&2Jm%DxXU%(jC$>%4-l^I4qbwW`Yq3a zo4Wz)yS(so&uM`_4uts9^prSl(z%FwaCNXbN-{g_v06_A7e>5 z(@oY)lYwzPhU8G>C(8Vp$R`*E(42*QeAdB#6t+WNA@a_noJ&n%%k-C{HfX|c5Xx>t z*=-1QHdEMg{U}q+GXGJg_&G*X%qUZs&14uIl7)CO$47TLq9b%}sA%w$LoNmb*vkkQ-)vUOH8*^Bl=F&FV21{4Cd zPc~U68%<#&s2!dQA^SM$ENY|<@h=8*`FYeyMO>F>3L6Xfy%CK^{$b?Pts(+G@LTS0 zGg+4f`0w)*Bmx;5`XV0AM7=!B@ji&_Mi8H9B)~uXNIzL`t#e&NWuWy&{RmS`wSS7q zx-!6Kid!CNGsQ1!p`T@n0}aDWF{naha$7nxa2DETffmB!Mm;K2`;XAJ^&jo$-IUuN zM_U7Mn&H`Y7`08Nev_$R|75fVUG9#p=qet%syB4h=ZNc4OkwklCIiMc83D1E=M3pN z2kMNWIxIJtT$~2vQ;=1H@)+o~t_TVDn+W$C{n3AQzz9>^O6q@ki)7QFWkJcNHGX;w z-ymdxC8(mJGdzU&TMHPczQX%q#0eigL<0!v;*k6dWrfg}cT*YjKAB_*%p{O8kXi^S zu%^1Cd%tc*UD62yQFkizZ#BV1p9SbLHH7}#La2Na%6Fo?(6gM!oytp49s_;ttDJDT z4dvfs-O8f&Zn@yG)lYQG0r9dHbvr>0o}#ft-J3{;ZX`L7yo3x%UXCy&`Ir0oVkMeV zzb&Dsmfcq8D#Lmw=Cqu9Wo`V6qLs-Dxkd3H)ZGCZUx6%%e%)g@jK+}rwTUqteQL{&;OY3jxHjZ9gm*@ zYhgLo$RmgoylRrkl{BxH2M{hXkRMFG)DRouVj>O?fz-=*N=ORgsa$6a!6cnJ9Wbp} zXF~}l{wS{ydF_z*7Uzidqa1nrkvE(2ps&I*Oa{_HtC1g%^_lg9emduq{5+5RRmlH< z>Z|ex{Rm+u-n@_UsfX)ae6FY$Ef|7jm|scypN%}bF~WkHkvxe>)2La*9FoBxt>8>j3?&BN}Br%)WJ-V{RSAoPt>J#S=3EY#~%7{Ss+$5h=51GBSXe| zW}qp}i}8T93$PBiM8ZqAdCBD{(_TOSH(QwY`%N(&@SA{eBytw}RCX7I_)qXhjZ087 zUDnj^kWDiX5-`#yd(r>U0N6ZoUfif3t*#4-ZU+bAMw_fqhGOWUzw-ros&Y*U@poac zh-C0hR7(zl492BuR51D@IZcMW_x59Tu9=AINVcY#4D|U3*@Kp~buN2X-GL8{7oCtwiexN#InC$kAE964{P-!O*`@1i}Zf{4&dj&?-+h3^}|hN{$r`~b*E8z z0_siz;7o3_USDt;ZA%)cJ5qy`4M<%Cq^6)QQ8W!9QS?vsb2>PkPTl|4@xK^+r*WPH z0U84V8ZXCSL^Fkoc;&0Eud)7rt*-yN*1pzWY}mwfjlrUo1^VwWH%UFPT?mQ^wk5;%dwYTz(F^uLD#>2oVS zPa7KTa?PPdy+Ix3=0k7`Ns2;ksZYKP3-Q)#6Byj`FF zUjJ**f6GDto&NJ^{9&}6!ZXtA8(q)k8dl?{pKn?PVP6B$UIk&V@gp;~zV9+B#D8KS zYFr{~+E5dIBKoUAf9=M(T;Uk^hUM*V^cU~DKOLT}?3(_c>#q>~ExF=9*WUs3*L%@_ zZv4jM*;HCNo^>}ge(c-w_$6b|SzZ(=XjoogJD2$$zgqOS@|OP`eernK_T+v4x&GFm zzg}Q!We!?UIcy*F)sAHK^}-{6@nT_m2tisoybRtNcw4Oz>k+1rDf!1Ah9? z5t)LF2{OZf9aW*641}XlMXY>fjSSbzuvUh9Wq3e_$7HBGNA@p6s|@31m?XpTGMp*HLK&9HuttV!WVl|2 zwKCi*!viurCPUpo*}n{}GK`mDk_^YoaHb3kWmqP|8X2yU;d&X?%5bj?56JMC40Q>z ze;Hb3C~~1E_KBH|dCq@Iz7i_)UP-IrU81B`%@C2oauF)x=T)pG!^+fXqmlUQ8!dJh zrYV|HWUY~S)Gl>bp;(+}QccZ#U(mBghPn@YQy#`IBh+TPBzN?`5|*_h1!+A z;awx^?Y&x*$2U;Vv098kQ}tFzc(t-$-@WQ|w>Pui0}6gkzp5h-^<@Iiu^W8DJ0a`U$Z?z5K)s;*#JI&j=o`-8%@t6aZrw`a z>0NW?X97am{^mmRgrKytpD*$iEos62`{w-hm3Y;j5Vf!KYE&WRJ$}CE$-7)>zrL^U za;1IEHsA1-_DMq;Z(sXx$_$5I<_Z+)Th_TvK@Z$JKU z6s$XDN}-9*COxTt3*MVEcXuTM(A|`oN4eogiq;O4u!MWrwe>fy+BxL zp#KstfCJx+PC$mgA?WZZ1OY)mAqXH80}U-wsKn1OIRaVZD6S7W(wnkcT!Jh;eR$cT zTeK(%oHPkpIjxWt*A7P~>4E|Ru|HR*Uoi|>J);PuenV%(d$)d!U>O3x8-uKODXULg zLPCFO5aO%2SpQ;Q#P4cLRrQ|%(H5_8++g^c8vC`FK}bl2j7MP=1`Xzf)wmI^bkO;nh%;UV zzc*+IC*q9@Fwj9mIWfq1Wj`bmIgw-xwIY$ki4>!gI<;|Pym3fRB!+QfsaTX?Ru`4- z6~;C#Nj5^iKy~_PE=(6d-@BRTBh%Qn4P}{4R4TG8w^-%WKM6?G0!ou@^e z2~_79u48euM?Bn55c3=e&<|_34?qK6!M_M61bUU9Wt-vJAdJR36kBQo4cIrd zE3HT>VvKKNN?5js5fN77pWvrudn_g5j8_1H<@K=J!V8^N2~Py~g0Ld>c|Rev#9l8Z0g`Mt)HT@nF-U^E17T!Z^RE0hmb^KR>e`c*pxi zWyc|@_Y3_9rGxyU@=Qqj`B{_~ z+7gG&qI88{)JYoUFuw@8`3A3xgKq?OVfx&#$4FK?L5B2mnOdDO3i#{uEL32?tS8ad zAM1>N^ZZG$1D?Xa=oo!*Fo`ycxxU0inScZS>Ps0;m`?8^KnwisDALoD9sS0rKM*$n zDtJtTK)=@X519lZfa3ZCZSn8rsBVZG488H6>yk)vUC}^ai6PZ*ib~^J6O>vcQ0`i? zstF20zu8PzOBf7SQ`Hsda-~vLr~evB{g$XzT;V>dK=bh_cZFv#@%39HU*-zir~+Y1 zw-kuZsJc$S5mB zs}51Bj`OIh(>oxG`W@zJTq{GVMUzbcOaUf3{k52v`q#`$xz_bcEs|7Gi=m3D#hBvy zoncRM)eZRHhSXAPQ5f9=g>Qzv$%XGwA!#N_n++z6{;kMwx$rRlGqXr>h)zg5Ll~eN z^lwMfDC<8ZZtOD0po+l|i~r0G(k|{65_o^AzuQcV(;GVC-=0VkD*Z2*8~S%5r!j~O z0+E0*A(bKaGD4Ii-+h}2*D-vx31BfL3ReIA3z-?DV zdbxddUtECDE*Em;r)yOLeXGA#?>`&m!OMXCcuW7V0nie$vr1>{ECWJPh$pc)!a-*_ zN2t!&yzG3PWuTbn#yVQT5;zfKypuHkdBN1F)p$MWoI#xEV*D5yz%n?520zZIqmuJm zQ8)3%?WE*~aAJ@#1Grg+aw5r?J{pNc#vlbeB8KS0Y4yCo|8}6OzvBYLlg#4*#$ce! z>R4_H5D|Rl7~z8ALCDqHK#au}wv-#tS2=A+AG#}pix_*$@W_X_#^dHU@o^AoDdH74&Y0T;iDL7Q7}t2?>lj!|2`2^_UrR-zloLtDb7*~9AeI=T zmCT`qTr%D`jG!%I&{K`;X)#>PiJ8XjW+blUM2<0x`nie|g~mBFQcF0o$hZmeZ@HSG zl^OFpAaM^mBF0z+ zL({UFnP@fAm)4ehBWWdxGj_w0X1R|`;*AHwk+?sMmV`mZd4$;m3_8j93blEVp{2lf zhGSuQ$bSojFFMBZNN@$=^xMr62%mcwpyMF1`wU`erowNb5Uo^rV)BZu+;cH;k}*{ zVaDTKk$Bd0GlACW?PTX|@Fy{h4zoNT98ZvX(d>I6A{k898JCPg;>DO!Bn+7MaY()7 z-xAeeLGXW?a0UYnguy^$8w>;_*bI8D5uFWW8yc5kHbis@C(B!B%z}1`=-TSD7}PaR z2f&DKtyZ8Q%s8E@#c{P5z`2azyoG^^iwqAVv(k7HZ6Ymf%3|2jabyH5HiPj<8WNFG z8KwhhWE7Xg#L{N_$Y^e31<(fxXb7fqTvSLHnWqdis-*xLJ14tD7ZuvFcPAhhi}NLP zQKpu3T}2qfi86Dw7-J9cEheO{94UNGCC}JNZ?b1&EpV;=%E%`H+9Cj(9qF|oG?(Gq`-GjCw6YUF4`6z zLsequ_SZ!Z<2Y)>M2`skg`k)%XgD&O;u6Xzh7zU=9fvG`h&8)qW@?if*d1xnX0&XB z3|;g^vW+z+`n=#gWOXdf)I|@raCCP50$ub4L1Y1TvS89h4-X;&I+Z}Sqf>$i(M}&? z(nqHSQFo%_C5Umy(RfmW#XEY8KlN?yGz{^vu~ck+xFbZE-<(j71*F}*FyTOs{ycGkeNgx#&{JbVmpJ8p59nt z06{slGyC6!Hu~*Q0PSaow?sAlT8hsJ*HOF{{A{1o>NpgZdA$|!0?~01^n3e4(Q!cR zgMqU!aGl=;V`JCx6Sx3eLee=W1?e|L+P|%?b6#JhcZsxL8(n8TpvLZ%>DIc=PbMM# zflOnzM#sla4yNOWnWWhJ1BH*W4RbekjhwF0pfC0TN#DWtNPHYbyQi$iHXtwd6BD(M z!vvd;&h!JJkYYdeCv2lrVh;rWMZih&V!yIHhq%tTiGUwu;PJ+3U{vhaZ1D^-?uAQ>GUHZT(RHzZ$l%iA@;|>;aFTcX5=r{#U3?-Y+a|;!%^W_IOTV`xj*7Rg{M;d z4vPOAJ`QnU^);ApFzo05yYN4HeC*-i#V8Y49cf1x>Wnt(`bwd+ZCdAmO$!2!C^DahY~8h92(6)pRF08UUq zN6HI64zaR!m~8kB3Fdc)DN=-XVpuy|64H~Vkj^|CbXi;S$g?^KM>fw&m(Kiv4Q1on z>XD^?n_Bf@i3*KH#`#J;NYWh4*p5aaNrxvP9&X)(Zp}j=pB*hCP7740NKvN(($=}V zh~EL?yM&AQM-vdYhh7t?#k48G)$-KZZuOtj4qV$sdLkyCo`fu_Ov0(+zPWiPWIjF99nY(9__KR$BCI8 z9oHi;I6YeS(L>uu4?`F&$}z^TF_t~VI%L)9JB~&w%D*q#m~ZN=)Ack9pg)|8_%IRo zPe6RQh|~E8J(ETJ7c}ZQPQ)jsAU5@YNK_VtR0rY2V7 zRp3gmwoE5Y#zVkQ??)Bd`5z?$A4NyKC4tXTJWL?-38biZD-jQ)d^z%?ArZah$am|D z_YQKjx5XnKBI-}asPrAd*1!1`ho69{-tVt_9(qP z55H02TK7b8bt&`8v19Zm&d#%I8ber>`@SYwPW zpiug?<%HFk2#Wf(<3ybCPiW14?fFqsJP09t^bSm>ezE@Z5syylXAP!(`Nqp2g#9{3 zzk|5WxE&JHuM&0)eHc zCnVY3R6-KMl0X7kmI$E=h!CVJ0xHb{1Ox>Yq(~D~6jW>&5f!XhC@La~3W5bID5$8| z3;)kKXXdhy_kDlg=lSpR95`)0GiTbJJNM2_Dn$|*N$DK~mXm8GgLiIEN4gw;%q9YU zsy_@}c*$nCo(qRi%Bw4^Ims`l%({Wn{EV4kd`_>JeC$rSzQGifQ`Kw=42CO%(p(fx zOU!iFwzd#@vykJ;#sxN~50|XS^(-#(In^;#(`ByfdqU{jmcRn8v*?;R{bFddrrOmA zGfPhYhP072*hL=#$QjUxHfU-P2o=OZ1<4s`)q#(G7acjbKx%Fc3Y$Ax_*I4A$1vX_ zC$Eun8x@*%r1PRwyI+i^$!pB_^D(Y1X!pEm7FxPGqp9;^Sitr)nmVruH+8z<2uC^c znpzWp7X1^7mZxT|jhI#Qq|u^Rp`P>It*JJm(-3lgOW|9isQImB&GHfICBL2UFQnj1 zyfl7fWNXwOkBKZWGA073Vk7!G)LMbei;m?z4Wpy8T@Sc8iLWbc8o3r7odYb4RRN}= z0EMzfk8uS&5SnuvH**!nLr`mUR~F{Z!WL|4>*|9lENsa_f~y#u=Ulg`uq0IGl5rjAv0N5E57z?0TI_ zkj6V6c;1FKDs0b|@vhAn{)Oo*OmQWWTLud=T}24D(8Jxd))sXHoDzP^Xy;d+JThCDQpS2 zGRZBKTcz6dEE=LX&GjV;JHSMm~2!a&zH%ofF&oMy1=W)!g4%V}y{ojXGCu`t?I zgWg)4#lm>k^T`mho8E;|Pjvm`gpd<+3c{4;GcmCi=kkTU2G5puqQyEz@lcD5dS(1u7?PqU({}(<+yIg7%Cmm z^lucP$aNW62C`7*Dn{2V9i-Z%6(-=)i&?04ok2LILsiXhL(HX@uu$V#0nE~2ER1)3 zf@&)r>D~g}6jwhg=$ID!AS`v=LT)Lc5gWoI}>q1{S>LiWhU_?P!BybghE9 zv|}0xF|IkK5Q^GT650zHi~k)BFziY@S;R+1Qjf%QZiIuK64p@5MMfq;AC2lV%95ow zztJ6hN8uNtjmrv!Uxx}QQ;W*oso>S3@~j2EpYpE&FAGdZIj$Y<$mY%3q9ij>I=3^r zB8hSg;$N=2QDCI*C(K;m zRm92d!K)%JM^AIBb?*&WtGLHWaliEAt0yvWqpLBXx_Lz3B@et;_$!gNn@{+6QQ&fS z8+yPW{XV9#3bpKP(-dEuk?ACQGU~F&PjdO(k!u*0-DEjx;p$#lF8mTqHkE3b8jlI1 zvQqSPi&lxhx{cb1UWqBHvZwG{aOtfK3jZjoyRu678%TeV@YyIsWpCjJGyva6`1OdT zvRZhT3w&SU4;F*(Cwztpet__+F|kz+5}w`=th`wGcY1;!Ec`Y!ZRHT*yCj1jD*PEL z&n3baQu&7o-vmRUa=7rjF}YUO2%mwAROLwFd!Vf=FBAR>v}xri;kT54A1(YhSbtWI z5q=a#ROMLVqtGCgJ}d<*XA1u` zmH%4dyHek{PWZdfS1Yda<=eYF}f?~2>%6!T;+V>|Dpb{ zK=`MqoVN9w2<_2OBg!>?b6dUc~GS;#9S3k zAMy(}ja`{W6Uu!28(o6->NT_NyO`8kegc=BP`08scjO=5OO9TKWWBC!zK@eVh<}|| zqiJKR+C=^dfwy+6+N%BHY+O34+BKoul}IC+{x(!qe0&4UD%iQDls7`tvMMRED^!v) zS*2`)Ayk#px(E5XQjxw&mOI#lX~gLVQ3!o7hgNw~2D64hqBkYsYw{5?)ttbE?jp6m zXqF9Lrl}~@sIeT*YX2o{9wod3{FCABi&pT=IoM=O@Ju|*tYz@AoCjHJyda#nUjbw&B3ZA#^#ODamMZDTW=y>O&}o*Mp0oc}qCoojR?AW0-32^Sy@Y z#Jnw>-`4Skp-ARpB{V?CGM9umr)+(ncp=;#-i(AO`sV?-a-G1~j-XeBH(LdrgB}Pp zZ)wp!e#TDoq6p{q4D3PBO|Cg0qB(zw&NG+LhDGp2w#+jLvz2+NNCD3Rif_0`)t+AH z_2vkX27A87K89H%QjN!rsx(K6G~Sbf`QE%tq$!@En61pQ5xj7j>DfsI92ddMfm+W@ z%5Qu`Bb3Wn=%I%Z<^-`V_1xGK(&d7(#xpGv(iI|Y@N}Z;oEXuB9;I*g#85<6imeV^ z7t$n=wi`|Upjw?AVZ8+Kj2Lrggp(HYo?DzyzZ}6Udu;l+A-y6w)4HS+uCh)3!gOuE z8e#2%e^xa#G3IL#kwxeNp0=1_%w6Jdcv_OQTcj`#eR$H`6Ol-cg!L1Wd)r`any*Ks zo`vAFVpNmI7GQLnjU&0qvj-wUbYwVs#8K%H-o=$L$407-5~)%}QJ-1|XKr-U2)h-$ zcNAsYJTjIHPHQqx7ji> zmJCj7$~r-2-$c|lmmbsYW_z??~-E1lJ+6Kxf%JG?>&Z6-+}TtT}k^Nt!o0M#hrCY5jhu>LE3h zVWCDot<~SrxGmD^6IxA2gw0~zxQDg+CMriKt=_BE8!c{kYr1%ijIeD~ zyys}n?Hn0P2B)=ILtNezYQI*m(Q1mw?4mPV7>XQ+vT!Rpjj+bxy$3D$mPW>s!D-FZ z5cg3iWm-L6tLu70-Bqgxha%6^$WcbvctV~`9idxfEE$|uKtl}d26ed(yGW}K;aY80 zXmz?);~|`3cGv2bT77_ebr0QKky_oI)Rj8R-_;37?{)D|2ekTxR{Ij5?y1#>wR$K` za6zr!tJQ95u3lQbU8~2@fUeT&&02kgKrYe+T%*;=r0%U7Y@t>!=>v5i?LAYgKcX49 zTC2xv^_^8v_q7{At2fh7>ZeN*(CU{d`2HHCNU6D-d2&@}Xkvu50q-45z5^m-$>6lA z?~_r$z87oX#zt5r`ObjR92gl(2B(!CihHB>#R~Eo@_hnbz#J4AO9rQvqj0@BxTiBO z*6J9o{)syKV68rVuNsRTsHTT#^#QG(5DWECUFJHij>QtvyhN*)Dm90agrz!<0X#r% z3f?=S8ot9KW66MvrH1g*(705qtF?M2P58sLI!CK-r|EEnR>y>9xI$+bYlPiM8Fr!x zt0pp*3{LCx1{L9H8X66t^<_SquEcn5NV<3NDicXMOx}HsR!RD(i+dfu8=m0w867E z2x*f@n>{nBWcQ0y=jl#e>j9Crd+wvP!h<61^bDury;-Eap1)}Y|By%rJOgOTdRU~x zp8Kd{JR;ID&v=UHQISq~R?|%Vm`JBR-_hb=i%7q_?}>!;xJX!N_N6AP6EV_s$KXcK zd_u$+)BP7+0=J6T5>{&aCq+y!-QPBYxJ|@#)4iRLpAr#otv^c@`Lu|5Ydw*smuEyQ zGuNwPykytTf8y1=s{;;r=+=#A!cBG#Dh<^>R+7jeAlj-|Vo7evHc z>wjaOF<%rBZ>^WnGV~=8Yw_|tRmM&c7n<(3Qy{)9;!+@YhWLtzYfN`$M~JVAxWRPK z#(LU(O~lQn`v`@3)<3%3cxon(lj}Aigf*0n>ew zy3!jW9yZ+*N+7-|;xW^mOLetR#1p2wglgk05l=&;3;uo)e>dGey7hcpM8o0kHW1dp32r_e4y0xF4pvdSApGhkFDC_<@K; z4)>0x5D$r1=5RNqfqGcPfWv(WSw9r9+Tp&40z4w(V23-CW`m<5);Qcpspoto;&_L9 zI?Z1ni#WyM{*_iIpNKfq;oeVW{#3+Thx;xH@R*1T9d7!VxA~cfOC9cm)C!-AxW?gr zlS=i4h#MU4nuZX+6mc`+t%UfMh;u|Rs z@f#5jINYz(IQmw^!wz>tLOvbp?8Cf?yt^{vjwd)pCqZJbi?RO%@5dLDBEuUpV8o9L=EG``uR z&^axA%07x-r}#psj<>Glr<+DNgq~_<5F%N%-mW*Y*Wt)3<23-G@1D$4LEc<;$bgep@=VIZ_b`Xqw z-gnHOKrFw`;j0vVGb)p>Cvq^&eBR6M;G5AFQgnV}PX7_?W=wwLI3S~jzQjMoat+~S zLz1(!yvNABl`i$a=Se*bfguk!FHq#shHc(8dBk@k-pGBKW`SeM^(Jz~pJpXZ52~~R zdI$<(APGjtG$*7tCCZ$Y(BSum{D%eU*)qKCzzN>W^HTzIU|}p>Sl-O*%i@3{guXA2 zUtl9V`W0b=dtY8Gy^b^v;uuiz2HgA>p*h~qi=}k8L3azN({0fX<4TpSX>&-)Kl8)9 zs0El`OYVl-6Hq-4>ikGZ8p}>2DX>ZXnWIt33vf9M&3mAdHy|{@yc7-cAA(Q}rVxbu z3F|tQzY)Tb5n&?#_b7kDqfZ!&1To%1FgJl1uMW%>kkN(e>qa}AV|2%VB(F({r>kKc zf&&fVk~j!|gZYz$CJ>U)Y6+n8Qd`DpO8shHYfexJdv_2+T?yt25-9a@FmzPC^F|0d z?*=wEl;Xh8+>;kmvJ)0ts#;otr;czp;% zI=oUq{x2bn1Tz9;l>G>4uS(NglHg`1uTj^=-H?}se{O;wo!^pQ?u=d%-a^P$F;Yt} zeKqeQ>L3MoN%X^5SR}$#BpA65(n4pw>faP~-YEQ4K4?1A{aM~fV*4*~{$f<~y7>iX-6d{2x&MVU3 zi}QM(178vXzWf~casdb0-?+}33)Flf-5(jrLur(1$?fQya3f6IEwJOaMP3pz=@XF8qV+6jEkm%|Z8$(e6*PC4hqL+pnV&IFd;_X@iDu9bvzxt}Xc&{R zCKv;%=tpzPk!-HrGf;d&%3)OGBiUS=KcaXagDM)Lb3mCuRs2~a!=U$oyI(ePG}dm} zW{<}(g>P3;TSg8|r5|NCT~&!Lv=63(QHJpXsN^LGdvP_|PFEyy^M44<^k}?31M+_j zVLzCiB>W6vMvP%h0Qn8{os=d94jw>=g0LOT1E5Za<{8GzDr?i`u-4fr;R7Uj1JvWWnfPaePeVA?nY&4 zEQfK7$`z5?xQ4J^faw$*Pk>75Af#a`NCFj;oBs`HY9I{*1=`&w#p%u!5g4gTXI@L{ z;N=^{+7H%VW?wU>m)XzEg|0`N7>BV`SxqA*9@!twa=t{_XTWqfu-6d&ZdK7E2tP1Z z!Be#dYgO`z3_dVyS=}5AwH~d|Sr+SJ7&U}^A}jn#>dw7kItkR{ppvc-Qt|vV5meFv z!YDA8lF%N)HZXOdVgm3Fh30!m--7((AY`^gmj?N#LbwjhR8Wtv&|kKwtPvh%y*DL% zM-O2B4AblI*#+uC!9QsiaVPv7g$^eNZef{9f6*-P{XJ539JoNgU_;X@W#;QC;ms&2 zg7za>F^HjGv7r+ZLZD~BehnzlNL8FbccD`6v!Sbz#C#(qoME4U`(qmR9UHbb6!s+S z#|bv!JXk1xRwMgbG*Fa5(Cu>*1k~FhY=xavc2ql+;FIj=!2tyK4NUD@qm@9# zWbywB&DD_THE2Jrf!Bgr3F_1l)!KeN0P!?qdGC9dGgv|@d>ILt8l1!o>wKBju$9K-c4Cyy5LIdM9rpM&vBTW`Dgx-9iH1$ zWq&zf$Adak$J1%TZBD1LJK^o{T@0e8!C-$%6$o7#1vZamJLeKI&C1*1wH3s(GCdH9 z0r9Ln70e_OXjXm~%s!COgD$4W*K-k#aN`)^eU=?NpcfoFQd48vZ38OFfI#O6wvx~m z0v&z#fJ*2n+&VDJK*a>$FNdZjMuZFGuZHjz&cWVtUpd{7Wr z)HcHs3}X<8+eZ6^8FlcpE97C=9{>e&HW>V)HlUtx14*2NagSI`<22>)c6Rt{I)~2_ z4C5Gxt6%$Jsi0EeddWXKw+I9k4hlvqkMnY?a;R8VpbUQ_50nGD^6O0op^iI?I;PVq zwpIP8oKZUfRaLxrpIS9z8GG3fJ@emX&L->W!f)oJpgnJX1c_h$; zyA#awAg=fccGlIDH749l%9@(?Px$-_;-;Ns`_;nFuIvsFazKIbdnHgAUJN}`C2<&a z1dR#zHVr)qipxO^JLAVyzo zqnE+QMsEwDB`A2}0(9<^sGM=={A+CdDTIG2+qtASDrX){L!sygDw#$j2F%l-Vsi7} z4oylbj&Fke>ml3)W(5fkLWoO4OM!U4El}OVG&I*xV#Sl}?C^OP0iWjE1MuGuGAj1~ z;Q%t(0h6DO>HP}z8Bp*p)!TP)PaA+wXhkNZL?)zlfH&tgPqmO~Xim>uWB zW&7p8&+Y|#VSf!2JiI~5tLF+Cn{<)LQYjrq4drk=JE|WhVa~xy$7)08P-N$@G&F}& z_>_Qxd;e1od>N{;bI@D|DGZig*-_hdZr1{328e5XsGXbUsC&@Qj%@>c?*^gHx7>~bnZ{*=kMhmOs*_p@TN8BRdL`a$Ov`RT$#B#BV_Rh4&5j~(+~v-3LJU)pQAdA*&m`3TF;1=eOp5$m&DLZ>M8L3o7Rjf5;k2 z%1RWmE2v_X4+&1o*_O3XtN;~Vi8BjO@>bpVP<%q4w28!-PUNhIASfuO%GCpv2Ehx09V; z9tyHxGNG-`s^Ey@0ua`yAjc*^SgVBV3GL3TXexmm0=D|AO-{?mJ&_IT8J`q#6AV(w zGro?TA(!inuNMnk;xj(k5V|EF34akcDdaD{AiLe|WXli|^62{$aGOX%{v`D8Uwzyv zGCZQQ%nrWW2EhM!AMZ+b@cA(TnSc6PP+4?=x9I{qjJ}8BVc#SLZibXn-c3H@(V6{(n%jlaJ<{F>0ZGi|CTpuS}utnOIUZ#fI1TNrYjN-LY zA4VTuDBk32W4%mK@f*E2`6?NK_j_;hUCfEDG|ZcQ?Z^o`>h$(+?$BajPVvdE`*BLm z`A_kADS^@NO5AIhUwgTNr>ueozuEF1M)jaU7_pq)*WP}VU_XZ2ZcuqsYKpJD6Xyivif>V2<_Rws^%8W#{-C1KW5(jCrfykkzD>nt z8T55n^G9z~5#lPzg6VqrOe5b!2ycVgLqanM`RM!}P%)+Pmq4=y(sEGnxWfB|FBt=z zR=8R}BkV3ya2;Kw9I#tL8Gi3=*>x_|xNTfS*VX+}-G=fSYghMg7whWY@8w~28rgjb zlIq^?y^N~+<{Xq8B-Op&JDIAxWiC!Rf~30ld*@PhUkXKEkW}{psqQmSoB&C6za!PX zAP=A10!hujFEx7@iv6VInmr^ndlANVPY~B^tO~(05-8Ba-l*jWfopaVd~O7B%^n5w zJ_%H_-VRtZf{G~(*X%M#w}OHr{zuJrqMB{2988-F*R}V)x8)wnoND@0fPD-y`X{Rd zU%-Uh5$k7j051Iaub(lXv$8=S4t+9etlup`#8Iaj=qADbSZA^R=OMa*>bxaX!_5k? z3IRz2)p`3-1APO8tRFN36kwn_s%T4)$|f~0|- zlm?nrge@76G|)5BKtDloij>?yJEVaoV8o9BaRaqbAy`HXvNNCcM%{-HxPcyn&pjY+ zpnjdObOLb$HODZH02NajZXkNNS_kSx!|8T~d5*(1mVaigxAg+Tr_t1-GYSThaRz1v z3Dg0$gV_e^Nuw(Gu!6Hk)8M6YF@^2T3vD4Ijr&7W3#VRb0LK;bK!Dt88u$IAIIxJ()P=}7gO7xh2jTN za@#NWj;6MMvJ0M#fu!x1d#6+Kf1x-9lD5A?+Wru(MY}-K_A90BH$!waZGRX1*MYe0-vzUu1Zw-}?sxzKlD1#2 zK>kzPKY5|;!nSuP2b^G4oZa?oy)6$?S*Y!U$SnXe`e!J&uVKQNr`7-13p1gQkIFCi zm4>J_M70pI)e~he;Hy@xcQ9Xt`5IK~y@H-i74Su_)_VgrZ2r~wIF>n2&Tt#K6EQ%| zYOk!K-XR#ipjLbNA$b8`NUOcPJj$c>T(x&7q4;>!)>qoq$2s?tK9WBj%ccR|HuP!0 z4!%ifMstLhpO*QuX!fd+9_-^uVWgVMjNA$|f!W>53tB7XQeBSj(wXx{UOkS?)s#1v zqq}#6l%qM)^-$&DLiO;v$zpVzi)uAL^T^_1wp804s{YLNF(dSV`OH&H31-3lN>DkM z>@!bKQg-Ws%}mfhF2H9VUK$ox;>H{_kSgRe&vf;w0Ys^In5_i_?>c`tli3{*j9)XdW!UOC)bgy^GspzDN24bOlXJ;Tk>yd@(i5gm4liY>JS}O8@(2KtRDn0dC4{iDz)o&q7 zUtt@VpZA0>gl6!o^Cd5}|9As=owmJpir0`2l^4R~TmI_U8V&S{a{1vxmo(euRdF$@ zi*40wT2*DMc4^fJTeVxOuC`Tsv}%E^dR?p5*s3?R>JeMDPpe+ERc|R(2j3|JRr0o{ z8NDn+&(jZhcn6?^)YZEp!Dna^wdhlxDE+scu#)DVx&E$^XiYT2Q_={RqaiN?^&tH$ zRX5lrk3jnE$QRm@NAS8}2HJd?4*eZU{|t0jpVMD_m(r)fUj`ET zMNsFICt5-<`ozIvZt+B!gh3r;i>H)2iqSDC4VIfdCUph<=b;{^r8j=&`ftWcNH=?O z$UPYs{5GILIq>Lm8OA(4H!v4@!l{4X1j{@SZ>oJXS78`a;7cz25N;>z&w~PERN-Y$ zc+dto-EIRe7QjE@_^Sr|%?3O`fN){J4t;Ph1quv2AJDMyWWWZzT>$BIsmnoJ!lv_d z33K3U!i51h!@h|CyPpqO1E<_kI^?AS_&FRu(SSZ1a47-8g#qaiOG{9o;C#THaGGZW zE)&2(aO?--5(aF*(*y_?23!jJZ3LKlK43x^7RWZ>ashk;j=MGBC>yXEz9w84Fsv_X z0u*R|K42}JQby~LR|sGiICcVY31{1Ybp!|(2Am1|R00e?AMhBQrrCgZ2;f#YZqa~i zZNQjt0K$aQ4w+kjIDaJ|RL+p{&W z4Hdlmn;5HsHMi7=U91h>Q5E4Ol~faA83Da=~l@+;u+SQaF8L1KuZq&%<%M z25g}cn8r>5gbM@y3j0q4_|*A;r{R=6R)@S%0CO-UctKpkA{#J)W;nPo;N`H71qJRu z5Ac#oC8EaoClm1fG6Bwy9sGGfOt3ja+L_9SaC5bxw+XBbr9v_#{C%nM?t(B zK3RF1hUTzL<)7Wq4$O`QC~%$fmEILxro=94Dy2)Kk^2^AB(uyT>(fc&FrU&Dyv$QZ zGbC?tm3jJ}+u$nm457JIHn_?>m(xsHz#Cj$J$Wqf22)p0cNTbqtE-2%rwVw3tE;5R zABA;Xxvb-izJH?LOrNYP)=(KRr~5p)eDUWMvd`0n@QmC6xJxznW%3Hdw8pFA?#nD; z-~9z_?H+)u58WCk9Wr^(eArfuRrA|S>?v~j-p}M!tM4OPcD$e2mcV`A=d;kBb22(E zKx>#gB`f_W#>#+6KXd&$xursrQ$}k#=8c+o1Zn3RW zi~{;Z9IOGZelE+_%z;#v4)SQ=`AojL;ab@X_on7XiLb5}9{AyonSbW`+b5{_Hf9!6 zd~F8dj66u<+n8BSm}{U|0+RSPNqo&O#%3~zAI0siRe*-(s9ES|ZpjS47MXCY)8Ky% z$OxXQB_m$cx?I-N%f@4@=61p2+gzbyK7>>p^9m`N#JnO?c0@Vm6`2D_%r_!WZqxahg%tCBDA5{_#5_NfzRzyN55{K}Koau;iFrK~cYrwNH2d1F zIXmXtGsCY$CLHtM@c$EJ1glhn^JCsYU3RL9nM@q>R4JOoJT+5>8OJ;|vtLNewRX(^ zqGy@I1t+H#`Qdk!{D*%0!4)dz;h9Agvk%n~54x1Q>6^LH>6BSwDi0NFde59BjF%v{$o7^| z6jAI2{d(V(D#*(7bE-Tqr@bm2UgT7q-9SMV+tY|^8^@OWehH8ZR8O6T47jHjNG(cF zEy$F|R9vA2nY}}LYPsE09c_S_|GMrt_>yRsmj zTt8MArcnbFGdDB*TVQa@41`Z#kP-M*ImzU@8Z~ORP@$AfQlYd69ds>12VINv23@KS zCAWDLaAG7BbE3wHQ8-)+F*2VRxu=@K_umYe(6?#de>1ofO7;Dl5mJ5sW`tH>Bb{f* zOFY0imBH6W{Wnw#?dmI>tg7#n0Ix>$%Ro|nr!u&YABW-#5Lcgnwj?%#RMd&a^72>JnH46fiN6Y&KIrEGI(Eg zI}~-Kwi44A&(Wc4-5HFDzsBBH64!$N_conrA z_9f&)OXOQ@pVRQMS5Et2-wO(CQg&H6$q>KRPLqQ)=5gTCfD6Okf&+w$R2>DsN9y0K zK_PhhnPB15+0w!&Ao1)s=}oj}^-dm>{D?eWPL;S(9x(f)D) zZ#zDbaWlra?9)Awv4+VH**zu23G!NUIw4<@x4jalb^v466Fc=MH%L>j;K>J zNWk4Yf{V+L4XC240n91lGJI4vc_bg7!LRif6k#$n6EZx!_nS>Zq6kLr(OgJw)e3_F zBSmTE7Eztv>?1M3xS2GHd(gbA)j0IHRuA% zN+qnaAgmHWB6~F*0hMArn$_vj!xC}%Qyb6e@>+pxJf~kwJ46M;sYh3*^V5og_gb^S zPbqxd-}IqZYOPiawRk7)qn-u_csG6V7G`6(@*guJOZPxDinyjL(WmDBX&f*zwj^>bRt zyA^}mo7HZh`Cjb=Q-k(=FI3%tG}GuB;%eWV`WzlFa4%`zp5KYVMrsDRj3w|qNdy;u z)uw0rmh`HP?*qE*1(nUnT}N3zktWYjZbRZc`a@07aNW|GXcFWt2@d9ow9BZ>`BSk9 z+nUCM)ySoXg=Vuf8Jcy|Q45dIEYMs+D&Psoo#y7*Y)uXb5 z(2%-xVjACeO4ofT%^da}_1raJE_Z@i2j=k#F!!XH)w2nLA55gB@n3c`s+U2PKZ@Su znw+MaqK;;RxoPbv#|~n=F-`s?7`^U6Vf9I)d7%ON%BOHDm_$;9#8vQD2MCc8m(l07 zj*w2JMwvZlXvgnTxdIACB*FB(e8;bVP9c~-q)I(qPmOz83Ga1-@S_O6*V7^Vtb|8M zI3s9AZY0f4hf@=&3a$GoH@=h{PL(?sZoI>(BdGE6aJ@O4dJR`LhW`=4qcdPfQswoW z{4rNyd6BB$X1j^{&sC|?y_U=*1RT4(DwUtj^RdgTQu!%UK{r2p_Fae+zALFG%#;Xy z^c`9VEy*&h0ZnSJr<%i>kamBnS$!2yee_2;%%!RFkd6NEhq+A3;JblpVR>pabcS!9 z2rWpc9!Uu!aPMlaOKm}ap~M#@LL3PgH$2-tnaVE?+VYDEw+&_TQYsHjtQK4}PNP$0 zLU|6zGNDAL@;gNW6_d&%+{oQZEsf(oT;p`UMh4y46nRyP2i@6}kf)4>q~t;8NR>f1 zlwN)@|44~Cuo|VsZ@WYOH`mjFpo$%RVE!{DoJM^%mOt%5J?3GD>9q34#z#xI{GH-F zTZ={G9WX6}&#j=6dm$VHa|BdOZaud^<9`nSWY=IT1;l4Rqt-~C*iW!I(U|wAI1eB+ zKKpqG{AYsr?C188ctIJ&XFrdD`2=M2phLMW6^MzaizwRWl&0ackcz%a=)4TQ6I5~q zgu!6?fx3hy!eewwgp<3R;6d2$)d_wDa~i}4W_2#%c7D{}^fN!tb3T0?GNA*r-ACbN zCJ-N()oCK^G?D^KOMPH=4Sbh?ILL;hQDhJYnGYrxq$(}LuBvmKpi%ze*8_qN%p%1l zAjW$I%uW#FeGBFU$ml`me>>WhR!i}Jkr#C>K~M;>WAH#9#35+EFgt~08WKVu`1S;G zmg~T*1#yV{u0UV!R-j0LbWZwhX5`>=5cG zgfH`&{crVek&oBgZRMja1}z5RD73Xx7=KKS{pTh5B@}*z!n8F{$d&2|xF`Lol^&2sf zDHI3xZ&3ILQks^WfV#m1G%Tp(D1Ys}~Lb*pgA!ZZ>U8o8jL;R)E&fw@kTInNTA{L5}4;eJQy_s-Z~@%JsAIh{TE6=PzAW7 z&INI5Z0Q+SfOs(K)D4UrO05UuL$KdZ31~2W0p?RsF}d(yY==9|Rv;dX|Edtuq#BGW z1i*vwVtDii@nBpEW(i0J#s#S9W zj)PE5{gdKcIuAL~+1Ne+?giqbTDH(3)Iw)t7sKUdP%#1UQLRrPeE{O4T7hfu{tt+c zYOMvc48&($HmIzzheKK8sMh;)ksF@6EafLF`DP?9F|fJ z`iSgFr20yuzigu)3q|jQTci%4i!wvd2{`bnT2|4y79)2jtAw^GVz5hr(+Z>99-`y;;bc`Ic!34CYy zR?2kZjXrc%-Fy-VwAd4bCsVqeLwGV}0A(xNmQSXPCV>&2OqoW!@6tE`yexks#kajL z3$5A0H;*r;q>*6cJ`;p#Wr{5B=}IJ-txUOyGL!F7tV~fasRiJ>DuwU4e7|*uuv#)O zau2tMv@k_(9vk6mB%fGWm{LU96!81=3sb5{pgo60DYDgpn~p^(eA8icEGq}ZZ;5dW zQLNZO_y@liQ{{hi{X1K6?U^%>U3iz^Ry5#^pbD!D%D)mLDBT}Wd`QW!fZcYgJzDuwrR z%c1BB;(<6|;TJh03nRI6WtssTv6nRXZX{(E8dU@Gec6wITl8dDl zR-g$>;9|G4BXTdF7_MF^t&Ml-G4b^>2ZwfmyHx58(gEmO4z!>|Li(aZ;1?Ctqc8{K zLUNK>6wYP=XR`0yv1BtJd6=E3UiJ*Ym3Xj}4_$)lrAtzT|5h~BhcJyrc%wmGXa`*T zg&8sEI8y8Pu>AA*cv zs!Fh3D%5GcYacl2L0jP0C_9!K6lSN4sI7|tl8KC+cR&FuX$N5zm}w-$K=>5QQ4%Z& ztyZFAfcTD2!#Rv81ecWIx`N6jUu)dC2sDm9LPV8{tdW-*vn)lR)Yzk@i zf;hy?H>$o0fw@ZgLmhpIz!3UErOq>|hATCpZ`bPc(epyl9}0naTbIVD`a1;XtX7{7 zgEF5h#MQ_>DkNju-AF{2&zNq$p z?EiqjDa8Nd{{#M?%AZ>6jPfrss;X?px)ad@YUxwl_eHMNN&EC9v(wk($%Nkoml&Ucs;HCuqY}H zxv}jAdl@LWO5y0s8?G6+Y7AFedP^p_KnZQoe^7C}1fybtp4g>WO7>q$5W;b$;kkZ=sb1M3ZAJ;?tZgrvK0dj82th*xdT z*_mrDN~N(^Z5!ZwH)Xu{f{d>rPaY5N+bEi|L)aQ0ei!9Tb+HR5uM*N17a+|7P}Pyk zBxhRSy@Diq4C2VvF@0+g_(eJKI?pjmQt&#ji4rKeiLM%w{Dhr6Q8`ias%}c4BWgZQ zfvjTGA44*#`Y3aI%m>{SAUabOJ+Go)2k5U*dS0fwW*B#b$wzyPz(XN91)f#{7j&iy zp1v8lF|?qVWsItI%Gwp^dzAIu*IoFdRDt`I&qeUT$k>EoQaXmqgq5Pv2_xf;_^5|g zq1N}qbb2G6e1S?{hA?0gW_eJ_(-4+}xdl{AY5YGy^DCs&px$R8jG~VLS1aI_f^V3k z#`~d!DGAQ_*^49~5Iu&0--cbf@oFGo~ zz4-8&)ksWZAs-2IK|B_;Uznk}dShWQd@)CvigNo%`Rd%JlPBkP+^(dhl-r^B@XmArq1Zk_$|E|r z&lG~g&|JOT+z;X17kw@3cs$WNw4qGkgfg_P24K`Fk(4&eo7JAan zAt!Flvvxr>XJ0ZGBw0JD(A1hGC_ph4B4#WlJy*dufbT({Cz+}Yc(zLs-Ur5Eg*B5mZcW{->aM6w+o8zjeGw!I*~TEY1&*i+u7DWP{DP{JyxY-sT35#q=&Go0R=y}AOvbP1`3X2P&B>fY@p3a);h#tVwFSPj? zXq^qDIeUm~OR}2ZsY|u_$aocK*7KM8&JsvDjbb- z&DmA^WsvMu6N)K)+o8L~X>g+$C420vM+;eVLib zR>Iw?UG^g3ZV2nWA7!Lv!^S=Q8*PLHO~U@~E9eb9SYA zldTC<3Yz5x*WpSC3cjHH>$OhqLfG6b@|3DuAImJG7z6 z)@uYrBj^-Bz6EhhHF*MCB_M93A}}35+(9-Z@H&F0W)ZIlNl3&d?yr!esBUUBu>XeNBegH#)xvQucz&i}S#>j}!A#!=EX z!$<%H|55(+YUHZPgh|t-=4_xf$=075s1hLE322`3uLtys4Wzlof{gFWC0ph9sS-^D z$mIld;J*QBgJo#W2D(4l;+tm*Z5cprC!kL*0J3MfZc|hNjD!*d_-wM(V54f6r;%_Q zh}-2Tm=8h44#g1%7(yf&z~CK4;o94A{36A;aE!vHcA z#4R-!%p4Fm(q=H5K-@^bDGbxlT)js68or-^R2$`At*cgZcK)Z5t)F!u70=*>8&I%9 z`PZvj+D)XNX=u&{`aRj|e7~xZ2>=;KK(GHdAm=q2NON}8hNV~wG|&=&+(tkxlz+Vv zX@g~G&ISrkvG!}ACjs&V0i|95WVg{GWxx|j#o3{?PO*AFpxWp#Kt2F*8~p?3FA%p; z%67~@Aa0}83d1xsSFeqR! zblDx@Y(_YAv)=~^F9PvKhV~1$Q|OZ0n|f2>do^XIpB?JVrc=(mwV*8yqn2{(f#%e? z-Gh{?b#4#Lpd>W9G}l%X=Qc9_h40^#+Y8E9=SHF7lmCMx0d2%RjXZe2==2@f%c5V^ zEM>k1n+k8UnLblB5KpX>fnFi_UJOp_LA}{m^<0QK>LK2wa9VY?`GhjllV2~Ju}k%m zZGP)w$$k!UEtk}0j!|_|sc(gPoCY0g?`_cs*s7d^CFyGT-1?t=0(T7&AKLz^Do}eX z8|6c0J)^3UC(-zvd-^{^Qmm@i((m7 zE0mtLIqy??6g2Rj(sRg>3QN zTD3Oxo)GBDdWjE(K#!?sZ8AYhO(D->tAvaf@%Tp}uT**pd8*QL$eWcwA-^opPOHW) z*XPPiA%9vg=bx07LjI?owaew_YP0R5YB-eH(BqVupgV~y(~CzFz4mWcn5Y{W#bb^>epkEAu?o!W6pDLgq zg*=F@5_0QFqNk82DLsXJiPCe(w=03lbtgMv`r2TZ>vd(Oa%~rLNVz^#Rtoupde&5R zdqL2@h!tbmhVHG*1ReYMg%iPWWhLm`de$|{N+I`TtAzZl(o@JIm7YTWOX)e}Y<15- z62)V{C*A!)@ay=sEkdSMYmCE&cJ?p*@=o1>c%!d9Y1iC@pg&~JuCGADfDfO(S z%1R-3W~+oeQt2t=0ZLCH->38(@&`(wkZT1RW7#ejy`o1y3i)``kW z&_^}2VMDJBf&Qaj;`>9OTRd@Lg?y^46mm9OC1g`ARw?94rKgbT^?v$s$kUZT<+?_o zF_zUIST(BZl$kXizo zwL~wq0=KJm?Q_VqO25KQi@{eJ1j{lFVgz2gUg~}ie2tC|II-?LlE|MkeGxmL^c$_F zQFHxi+;Ep~C}J1>(n$Mf@!~jWAb*wpNa6tUm;uE#pbGwm*3m>haJn6eI#Nz-hvY{S zv425= ze-`XZkm43l;9cc-0PzHlD&Zpt!6qdFK^4I(;@YJuGTeL7dpoJx!REpw1jT6$Alfg?PSI4A%)S9BfNwr1=k_7`0HIju)+ zf!_S7+8&bl+W(YzkL{1dFWLepJ{pqv>Hn1Yi0zNW`)z>|2mcC5T(8LA+P+BmnJwU@ zM>;=W+y;YWS_;}~mz?w{Q$38Dlz!%V>a8+Jb|rSBUOo)1G8k0OU4K_1e{W$O6e~%Y z7S3Sf=#RmigyJ|UZ}qZrHYqb-z}KfhMvscF0Ur_u)NFbPH8ow)^!I@B;nz+cR|37wVdVBgm6?x7?V7hDy|;fpG>;{= zSb)tFr?pxAeQRGe#(=pcF^1H}X!^sU<^zfR?T&Y@m#FOE*1rLqi$7E9Gw8-BG`_B^ zuPVlv4+@ZcP@)_F8q=T;q~2QEn+U0gmU8++>Y}9|`a|ldB~N!qSz20xxXd&q<-Uqu zXEs%F(Yw!b+NM<^zF1O{3Y$yWM%%V1vVE8dTOfhY6`AxBv!n|n+b)`m%ao1Yi56RV zf@O4U+X1!{@f=Zp7paii7V^Kj{zmK`ct4MY%Qx{YNwAjHj_uUfkC)m8Dj%Cu%T&Yk zC%C4;wPY0Bo=5+97Sv@L1p2Gm@}s}qYL?_XOO`|Z8SI~e0^OCJKL1oTTsz~BAy)xT z{>D;Zf>P5>eqe?YXjdSxNC{C$0I&y@$XBc=`m5jc=3nCi*!mi|y^~RZrzC8XUc95P zL_QUtP9u?yZap2(!$Q8l{)`gvNr~<84L<>buecoPcf`vFTUt=-KC6VETS9nV3H)V` z7nSf3I-2>C2y)pv7>}oPC#f!`#>*GGHlZj53_dlUKXZ{cos9Whu8|Y*Ct{{6w3}$~ z&j`(DM!bBIh6nqM_;!@WM}H#JoT&ofuZ~=+1pZUu*Ty$qNKKNPQ3}7|szRL4p+fLi zl!wRjpLQv@CBR1ck`TuquT{h#ikx%&`n;1>r;-A8_;W z*|%?%z(?Os#_@qRA0K%;r3CuZ5$1QwZG{`c_e#j2DfI{C#wX%VD}hhK{TRn5;e31o z?kBOxxal2l4dat<1LCb}x&X^xa7vF4Z;6$F(;EDd)Pnp4C#b3L_+yDmZB*wWjc+kE zOinz1l|y|_Ge6!*u6Rc2`ja+az785`H z%=Op3h3f#<>D;)!l(g+jh7krTUzZE}jd4xs3n`s;VibeQhoHDnX3!U?X185@j@VFUCK}%U{h| z5*I~5S<9Brk#mT*OWkgM6VE6?at?8+)c(MIIA8{nbBN2tvlYT~f-1N_ESH?$gkFkAlrR;qVC_Nym*VPe-V+x?6=*Hn zFsIm|-iA1>EWO4udeFCY8vdogjSVP=`B+?3E}Euf8cbV( zya`k?9>T>3P)neaOCVhI4%WJ$VoKw$g(l)%T<}SID};9-yb2n-3PJ)dvi{Xz#vgu`5as|sb>T(ru{ydkwYjkl6p z;WiLiRf4*%f*>hxx2s)qSnTu9oR!*qm`?czQhjHq982F6Ixqu4Tn%Ra5qvEJZ5#K-~G8{4LqyVb8V5R(JkuU>^hG&fn%3-YEfb=idTm1E`q%x%2n@4D%<5JO6`V z?gd@Y`A@_7t5@JdoxkDd_+vkmfI9yg2uncR`P09^AO&&fzXi;E5O@BGs+_v>&nGbI z{GY<(ASI#BKjljV3zE*?@E>sa707?ac1lB?|0}qB0SY8259$0P)yzem{{Vb-=U*10 zC*3UIapzA^g)$Azg?9e}{sObodR|FqeG|3p7?Zw80b@uBwv+O#bb6 z(c-iN0(vKozmi~7cd}KVC>7U*zK~mn=8Cu`ko2uMD{Qx_iv=k8jUcXzhrw(nf$G8* zs4fmbyPqsn7r%lz1LC?!`36@25Z6TzOaK(T?sv)T|7TtFh<*;$uCN*yG1sH?N8+M7 zVWCly2-8i-YdWZ;1VZpzbTm*&7KDXh=7WkUjXwa*2asL?`3FMy@T6fp2J&A9;gRof zM-K8&hOqQ|ybb~K-vHrXFh@vO1Yy}}93BGsS3!vT3A<|`|3(OFz|1D04#J+F0S)rM z03qrZ9C12>dF%}cy$|A_9`xL82&a|x)J z-287qa}T7opmEk8Qp0&jsAiMEO4V8Du!b7M(aH^f7MpVVH!gY^68~AY6>cgY0$^J&9iaVe!`JVI}iar|>ng*9{6wz!L-()M5 zfI40^a<2k)rH)rjX6|seL3I;oT$W0@QRR<<1zu2V71iPBbFfqF9BL_t|Btmdf%j_q z{{PSWp5Bd8w>wXXC?b-f-mZ6pq2AuE+(I%$QC+i85*o}ip-7U9Wk`k0k%S~9Qiw8V z&JYp#KiAr8pU%DN_xXGupa1*uc-3BK@3q$1`>b=$-mkOHxy`r9owW!Lg&eexFtZ#~ zHbQ7em)d~Jzfc-NVE{;pPI^14=OE1l>D>_OVRIuw)wO24in#2ES^C*1JkRG|oOGvE zvoJWq)w)q)?#Up@4L38*n)Jg$)p54_gAgv?fecS0V%gmE( zD7|m7P4au`y__DssX7E?8`g;xIXyH~o{f}!DGHUmZIauu%2PvE(d-IosuBF~1{Y48 z@ni6K=r-YGX($o=D2*Nl8o|C@G8js`D1rmj|DsLRvt~!)?s6=+5F?puGkfbidkrov z;<WLP=#O~WPI!g9QzButM?Y{s{X>g?EOVQP*<2H@1_e!1rVvP!d zA=}}$!&v;crf@c!&Hy^Hr-R38csx;)g-RgppGhBIJrWDZwDvsr3PBP#AG-s_*xJjpXPQ&MQ z8WQPbdfGlZ+D|?+bv1g*oA9Lh#9oZ$+ZB#_n){}wp5CrFPIwMSJ-uBqOobf|(zcUS zxCuijKCZ&64ODnjg`Ywd)`)QOm#!wEpUrQt{KV3V7+>|S3CdS3tBCPc@0rkJU(7AH zX3AHsFhTjM_f1f~>I2hJzUsq@7+XS-Qax zd#)z=0Wup}nmx0nmSe})zp#;*B!2x>6_H`TQHBAIlfupawRVaOR zLNop%EO7Ky_ll;{=kUfQqaA&S}`ph5!t%M z*=kji2+Bd#x|pq#H)HFA3u5~PexTVefM21)522RjO7b}vJ}%w6Tt+aEX9&CQlddh zbd;s|xI7Uo0LoH)SCI(51jiYv_DcbUI zp#msN@eqaEKuX#xOL0!CL~uG#mf~#+uY)=)#Z(##<)=j{s#U+MMV1a|b&F?ZlX{6pdOZg1<#YSc*vqYFbgr#V< zeIjTIGH+T7$5KqZ(0nlWIhVE)VCQf*nibnF+qktmmf~X@yhPwjTbnDP=w8NzvJ_o# z)e*#4itkL5#1AWRz1N>mbpLqGH_&=1(o~kB73YYu6bJ6W&;VsACQ=v&l%=?Or0Yi_ z7(ioTDbAKqk_FD6wD}dJq(&Dw2enD?P?%v~W0wU_(Md1e0_PF4$A_@Q9xTO7u_rUQ z>1f_7+VyOV{2g7iv!hMXvlK#3+l%70S&Dkm9{W;C2Lo@HR5Y2g3~$0xtj5#FKv(AV z+a`i~Kv(9wP-rKDtjzmRs1`w1=I2p37wF3TehT-BAS}gV3X4ECZQeJ(GWX}HP7f}e z?1ompCc@X>YOxf`G5ls1p+w+IQBOuzG&zZjtM=qi{H_PulUDp;jFv!q(u2YQB1lh8 zqi~7{(vzDgj04(}c@&-(L3;8fh0j5Dx6y9*{>PqFU1Jv`xiDSHKG(U_Rvl(REA`X= zU7y)t=aup`-^Z@YnR{&yjlB6BWk=pTTVdqQ@6o1(wyB3qy!=h734b`3uvk#h^s!Y8 z=47gN*@^oqsC)u}KPeU*4JyAum`q`!2p=JQK;bCDfAKH0fg}s z#(|XhNv~(i8l*QtI{7AVl(kO;f9-;%0w^*R1QXXk-}UN`XOwf@H0ppuVfR~q(K=Ty8_LRD8`*0P z4VC!0A{-?4ZpsH~>BE~Y+>`tD27x`=7+{bE%XQ){sJ zB?zj{zR;b8!pbbAnu}he(9e&Rm5FA>nP07~vNG!K?`X$;DO$Ugw@fzu06Ie4x#P0k zFz1T3p!9O5mbqurK#xnaE{UKCaK}Ze^|&0&rUOAuCsQ4Of%tLT!gIYZ_PNG z;$fGT$%n;*jN>HC+yb%-?Qr^WP8~J|>y4MdsrZGam-sexdgVwM>2`y_caoo(>!XvYqYt z`=OH%)cE}_QXVSG*_O%eSDNx|C{7UN9qT9yHK5ABN6J%0`QVnxfnNC?6yFl%;yTK5 z$JR?sQ=1z@af@Fx+j80Krb zCXCZLjC&s&IlI6}n6miVWsuH_72*Y%*tL5#pi7o_X9_tuX zdEgx9nlhuTH$!&kA|3RQhj7j9`WOb)GH6d$go9Ue;B`vN0IUQ$5iC8B@dr8)>`S4K z2r?18iNf_F$VBi>3X4EWtm$m9xCe?rXM<@9l^~ljxBqE2SZfv=RMnW8bo^HKQ?IL= zIu2F#Xq_& z*yH6f7Hp2IaV%I~g|T2I6=C%&?7w5ezArZ>tn*42BQ9%;&5jA{V4H*LHR!mkt##$` ztgZFswX?Q1mRr`=-d}CYkR9NLY}T&M{1saT`b$i1#iiF#X9tw)C*#lK=nnvnI_puc z)Y&aP6TxWUsIwmBN}au%Nd%LDqt1GiD|MDVm}mlyIy=~n*XTpw5rE6ms&X4A_98n4 zIGU@vTxqU%59LY&9L?3cyiS%@A2*iu4r7Vb2UQ*I!`x`kX5&4;(OieSmctKE1cQO2 zxsGt2cRhjyA8<6+4dr1+Cfo9JG}le#;aPrz(p;0v!*^^$-wqFwg$C8-vb0Vp-;|}* z{2_=P&C(iFt~A$`xEKNktY%&=zs~wEi;2%X1$1$_Qa~T|O#~l;>_67B4h8gIWNB?+ ziQs;-*pI}}@}|p4C{PM$>m#WGN&!7a;T{nrQRRVt@G&4II!XbZcvK?j4U__Ee>5{I zpcIgNqev;B1#FoQlma?oFXxttG4&Az^gH!m0i}TE9Fqv90i}TYADajc0V!#(6j0Ot zd6QfVSGl zwUT2p!q>n+ibtl(*znYR>x(Q`lt09>QEunxO6?-z3ZF3^ui~-rTtXAdcr)Q#_ z{ls>}Q$SnH(mIeevipq{59gIPefMiT2>*E!){g}m{J&B7Mg$4|#|ObPgOuoK@K+Be zsTFAO4;sRm3pDuGN)zEfr?6!*(BMz(;oS1IznQV%e~bDTfd>DGnnZ9a(BN-;5{q<% zl(g62zmF|<0uBD~WavnQI>8^zg8y8Df&_mJZH@sN{J&E8Mg-wMFFhp@TnIGyzof7l zXz(9v`{{$fofwnguRJvo>;^RW7gLxIT<~u&oxN;ej}sjU{_dw?6=a(4>3Z*izc>7Y z{3Q6#rL7PCi(=blo6I*gORKp#VA5`-c<{fB2@T<)xEcgv!M}~Q&k1}f9{m4!&418Z z7intn%Ug*W{3A~1gE~Nie-VZGK!g8I>lI5@8Y}-Pp(Me-%NdEF4M<6i2LDK;;UIfg zo#1z~YFV4SZT6VAi#_2##hwKJTr{5+?e;cCKKMmDd#fqd4*tz#X*GzhBEFQ81Hmsb zy1dC0?o~QjT!*J$fKC?6&P)U)KqrflAd|(YnM@YD)1)iVdE%KAP8UH~!&@ob46@zK z`{w6~K9yMKeE-iZt&P@QW&L{Da2nC~27Pcu-}rJP`c_Aq?y^nFp!yqm82D0WHx&G_ z%kuESZ*43-Vb50q#|00C3kEtC^}Qftu?s>wsgbehL!lbzSd67GS_B!3`zhQDvZw6k z&Vm1NEPBX<*H1X=2d!pvB=0D1x*A5KayeC>;%h0W{0ZTH9){ixDnCc~oWg355}ou$ zwseGyZ3)s%K4GqW4l8hwE=FiDJQ4gf3}FX^?-162bVr1v&*d@*(p?e0ACU-N1?eh; z^G7CvvqAbOgkLFqAi@v?S#~x8>2nZHzAzCS3VMx2=yetUC=d9t4G%ZaN9ocF<;}kO zjxGrgc+n_s`#`g_o~7_4NJ%s0oi-q?12w;xi4`c?)g*J71xt(%{KuN*1oOnxi{;Ha zeUB$OiL;|Q(LqXT^d!C%X)MTg=#U8H=kH(~bi0G?V>O9jt=OAi9u5n&eXZ|0i^KIUwt0@uqR5mq#qE#74CF2l+tVrjXx z@|NTZSoMf)lnkt8sK^1Yo27M;?Siy%0l@&(&C+VLyBimhvL2_uZDh9ot}gsiPFj(z?}} zC|B9bc3-&4UD(TLSYrw~m2Sk8tK8OvEpnAp&3qWFmfkNbPu?uOmm@rb4m<#|>+9U( zo$r6^S1D^D);hQ7eaXTUK@lWoGstH*Qjm|qd@2feQmy!FM2pdru*_U)3v zSlUGqd@S|-K-EKLN8)Z5EV!}Y58~8`YO5s{KFMOUBS%Ny;9BUKuY!Z=YHvI4i=*oXA{6y9XhBA_FCbmUd) z6VMNOyc=H1%@kzUTa@`TT1PO*>}E$>8Ms4C5C(1*&ix7Ova}Z4v5B&@*4)Z2@e}^6 zE_24^;##}tOZyhTsI^AnCLO4!2kTHzoh-1GdfNTVt?0-2GDj`-`PEZP>*#xDd?l2uCNT!s<=%_ngjiaO5lp7t@zT78ey;EjX z)Q&6Na62lB&9dWs(8D&9k+^*aM(meT9kFpQ=&=dTXzcz^Og=J%8q%b!UrLo(>O)*~ z0ghQ(SE|g?{+F=?0ghQ(SE|g?3702=R=_b!>q?bbN?pYi12|^s&r%(`s%uD(04^zO zL#ZZZU3hIGI03k%tiN2#hp*%81THD-Z?|#f^-TSNOUl~lHf}X85&V1u8}*3&<2LSl zBP&(l*s8Eh*{WM^f@TGdt*Td6Cn+oGhPwAHT+xAJtLnRh(Vbv!4;)+7z_mPdB6kDe z*s6x^fM#w>1p5KUR*ftRN4@NZ*s)a?mW4C@24$-*FAEQS(Y5GXeE^Sk|L|;8LD{CH ztm*?jTUA=7Y}IsJj0b z0t9jaq$!_uw*3$~u1%nGm3AKJTo^PoCZnqLn{qB{hQt z=7p|SC+>YaVClKYQXgmOajeV|OFzaeJ@PM0$y$~MV5$D^exHtVmVUs>H)5%Lf%7W+ zwEka~(yzw$X+S4y>(@wmZMYWMwDZK0h|5@AQzt<9uutaa^LVY{os%Q1o3=PjtZh3x1u zTgW~TZMw!b^$<$lpTUiTafE*2in6AXS6$hWsv8-UQJ}I4;i4%BpmHq23lyFe;T(j& zDf}VA5QNG*6G10Xc@)A(3d2R{itr?b$3RN_q_1O3aw-c$wxlN^>h)&;}8Y?>k-ZZ*~OV;=gy;vz4$LcPbDK?{k8$IF_%FCJut`U_@$1SzS}73yxY zIWIs~Ub&OszgMUWBYUkf*qc)p7XF1jnSx)B=GCIT*54+W>`Lc3{eqs`GSth2dmhVJxy_pKa9ce5Se86aJjghnhnZm@TWyEaPi;qGMKe}Dh?IkaP;OkFd+bJ( zWfk~1ijM$Y1%{8o^NJv=z&;37ASF7w3cL&HcA%@kwG_SqRezdsSp|OVIuTz5Zf$o{ z2-XBn-SL%~vU}2uqfDVS(N*AY)^}M2cHDx(xY*Sz`>Y9DTm{ODwesUZwe)_g^5kvO zdl|a)jX?gNJuRH?9b40mc9pwwX@?MehEK%ONJel{8 zd7h2p3{f6eN0|X}mzb<6le8tu&B_~HDavw*`3c3ZfL>w-&Ea_fa2YGoRxd46*)$2% zoM3iFqU{1qQVEES%-OHui(f2bHqhcxYIs4-y--Jv0uQSK*;uc{s&; z*!wA7-2l4Uzd!QeOaIDPxs|pPK=$c6{gKN@P}SZ}Z^>AhgAc}6GFE!pW?e7eXo9Sl zSGzWlJ{D$G@*chXq&8r(AV)}R>)p7J*Cnc!#_C(f>osE~Wye=m&wX8Oqj2agT;Tcn z6?bo){?^J^`NDb=%UBs|rov!=4BGi+VNu9ok;(4!48Su$r-5%+wWzt9DA zia3R#s3jFdAHqInxGWG2-8st;Jnfp1u)XpI0|4{sZjtcOFacJ zyVNLv;+5|BI|_i!jsj?Io1p+M>_P7vy54uIbgl2+T7!m90JSJ)4X?w|u(Voq`*NVV z07n5db`-#{XL&>m90kzWQ2@_8mk7=Wjsj@xD1hr;fbIg00%+!XTQr{~#EWdy(QWQF z_J4^hHE_%I{8C-6zq%k1Tmjs2y`Z#Ca!H{Zma2v9BXG<0A~$ewQbZoPFIm9k0vv0j1%IwxRFPCrHw6$`0x$ zfZCL9N-i1tq+hP@SgOnQCAfG54Cv6qS@RFN()HOPeZQzjsV-=DSj-d%WDm8LenIP4 zV*TieW6Yxu0m+U z$W!*8-e9Q;Qlg_z*=N2<(h1O~?03Hf>j3mA`z&c9PuWvTSgrtl%D!+v=QfAy18)7d zP)?)%SfEeY+r7=ZSwNq%FQqUaq@=w*WxseS!36Xv`=1nk26djY%O6brsR3=|Df_T@ zcy|KmQ}*vDd@h1KWgqk|Zh<~!e}%$4pikLb?eF$;2N(UpI58$q*-MtOKnMDieLRJ0 zfqTmSis`g7odu#JPubVejE3Ep8rV+CTSkMu<|4G7k2Liu`+#Q{cKH^{ z5zAS^1AWRqox)V0PuY7P;QGNP8p~7m6=G19KaE$wAcK_D=ufqDKS$wl5hTB=?D{1sChybM2mjl#?XpcKR2ux3+fMP0 ziIw8Pzhe`IOoD$pt|o(6@Q=6lIe{<5gZ~7t+38bAToB8zYCe}?m*Aht_6L9lf6ixg z96^Ks$o+iqSJPO6f0-DR;2%W0<3LJkH27yD%>dc%2Rbbu{G(*ZbnSGN+2hp%u}AQ? zkkFLiUx(&TqCLvS$Ope@XAd^T+QGk>6q5yZ99Z&ODJ9pZX``c0G-%Pqi~-Hl2-8+h1Ws$Z}YkNiJiYm{pS>uXU&c> zbI%{(hEtj9pt=KnaLio4Qe)=!k2VdqO-k$f+j$uHQZyEamxfKZwy`Mrf>c7FW6_1e zz9Pt2M1qXPAhw<$H8K`gQ@9f7SUg4H2@zy0KBlk|@Ht?&+yCQO^pJ-$e%et#m?d#D zu(avYBKG8Ds#<=T2pWUROAxmH3ISA}i%>-&15%=s9>-S}eg~5X(r+V_{J?zSdxVb>iq^v8{D|-^LijVnPYCM~cKwCx zB1k9eaf$tvhvT4^d{3lT8UJXC$r<~);oLf~wM6mQnG3D$CIW98 zb4NCwm6FaIEM#eNEcRjq-T~3R&68d}Q=0p!?2izuyRk1j14rOVwH}vK*)$l`9A&ES z=pMS`@`de9jKCXX&FIoRJj^XkZj)={_zY&A0NI9ib@$^ajDm*GglP9Vi1PELxfhAD z?B1^^t_5!Qq*`~c!+KK0K+S`udNv9^Y%a4IM{M_&M7uXsJiJ(%eBSTg7|dJ%vJDS( z$D`Kn$s2JWnsOLS73KM*xzDv=_k>@37R5P0`NhV6FogojFCInVFpv@*>XYoh$(^LA*2U%Y7x3h9Gf zN97uvtubNC{Gyo;gSFE81*OS9r1x@$9Q9`+I09sg>kQqPz)r87BIQ;uqWp4ca_>A- zz8S?EM0v+L%5sm?6qP+AWnU_%N`8q~N|R%}q1Q3;ni%S7?fn5{a9n(iv zb3YMfiLakg`~kT5l4^~wT{k3x9YM|Yrn(dbA75Y8jxPxjc`MTW#)*epOLJG{<3U1X z3}!|G4Usn~EEGW~=!(C%?t+x)Xo#GKGz4gf%%v~~RDEa0B}4{dwoZurW7UMnrLNYc zYsK=48gzBLry(-Mc3(nd&K4AIkB7+X|0zV8oB5FBDtdogX|lY4K1zsG{LPI9WHT0+ z@q?pBxhzulr3xF$#H7;XU~lLMj2tG0cD452kc5lANLLn39y`chyjL2o5@mTwa5ReN z0i`8BWAIeNDFAcjFn&*}qc`pa3 z=SwWoSyICwN1n$}e*wq_o0%=v_P}Sa&`hi-4e#+D=At>rd$_?o@Ej%XVVi%r?}O}) zbv($4TH8aTpgB*w67QFWxkc88W6(STDCK&0Mot^ zO!i!8lNR|1XnYB*x~B_{8-i)Tc~6e}aTiuimTI7alMVoi!#67WZm zfMY~2D%PZ^9}}cg0>_A6RIEu+Z`8{PZUc@Hy}Ve5w@CxuRIblPJ!n_BjlCP@1bYFO z6m_NBcxxm6P#JJZQCGQ*A2rTlEzU+gm{+@vt+&bv8UU9Rb&cD2a?_mP5a3wW8;X@> zUA}cra5Hc$>$u`NNl`Zz>){;Nf~z5LEbC3hdQ?uy;}6UM$Fkn+TAq-f6Z8U(WgYK4 zA6SqRbO(-QO_qdrJmiMhv8)YC!ngbeWm#L4gg4&rTJ-IphiepJpJ9(D% z{$gcWZ^p$a(6>1Z-4$gptC|$GyjYW>&MV9bhJmU_A8@9HB^^mCxl;R=l}Ip{>1uVU z*|!^(-i|DN>?}Qsl}E(Vs+gsh{$**xBXLVZu~b&>_vs5~={u~f5ldS=xM`o7(yI18 zogTL|psls_E7^<0s&dHR7AuFmeGz{t3S@g&OV1(uUNQ&#uact9u(9AP4Oa3#6HAMm z99+SbUY-*jgs+}JSI=isI9&u;Jx`!;vk0P-KGiJH*r6*R3da|&%NdfVtJvkA-1A+GBDhgMKAU&B$ zVTK6OlVud%5kY#gfx;g^d$LnWPS6%;PY$JU2*^$|pZ{Y|s_NTGA(6WW`&=tZs@lbB zd;hCe{=l&OMEA_PwVA=OsLu?x-IY@y(`>fW)AJ#yeh5`Zy)-T{>gD-pQ;}`zA&-*$ z8Qdh8O6Vu@N}8s3W|+5^DhA~OPH86G+?Kz_3(}7v zblaZ!6-duR_>RIF5#B%;xLEyfh0v>APOvpd|BA3~7j_+_6Wp7} z@5-Oo1nI32G9CEqeV|tv!U@~+&oOr4=+z!UbEhWT;on zt)$t@;&$%ELGU_eUIn&>rdroH4feibFr&^io#8y#8hQ$5)tsZV-)3xFuIn7xsMnU=@9tQv0L%B8M&%lX?ekIMW@*Y0H%tw(2 zsa6jad-At+LCx-_dcJv(QQFHcwlVrBZOzF45)Vh0H2Y9I2z_)0W=;YrsZsjq1*E4z z_Itbf8hzv*?Ar==U}Uj_Ok$2H33Io@qO5&d?UfUhgG}|quKTiN33~2Lqzs_#b+psO zk~vYgeJNs&nCToQ<|Os2AEx?(psIzP^wKrcM0#50hNXeHXrE5x(yR^2B_3o4t zbOmm)o+A}BCZN~lX8Yy@O@K={leT(2KA24h zf|`TO&NpbgfD$5(z{nhALl#Ro>ursBhgF~S@@aX0Z>blI z73D8W3XeoNmSlE%G#<00!P=7WX|XPh$4V?O0m?i0cJ)bHi17|X(!4R29LGU4 zvi;yvushzqE(ve&-nyZ=577SjcFAA>?II7?Q-3wc6vg_Jc_cQxgo3(f;yu(SX&4XRmV}4xXybM?n!SMbuk>-jJ)lkxBWw=^&Z)Fjr#GekIJ*eAhU!N03=>o0U-NZP!&Hl)g8EE*X$ZK-ERD+NSMX zA1xVho+JZKi`BQUUC$Lfs7hJnmhMN&yQ^;$E*$R{NQXNTEXn15e7)KnQ&l(XrKsMu z8P%|HrxLkRHN2vZ;_ETRH~y^{C%>xXZ?elzoc!_sZkzeT+DeLIcJ0hfiX8Y_oeCRw zb9;7W?L8yX<%OPcHYQ;(PQsvmN%*5IKV-f7F^Bg9psT!M{%~YI&{f{y6skp#Ro*xX z*NPykyu}n2f|OX(rCuS2G9TztuaZIvWEYy-|FqPrlh^o7>r|(+jQ{1edzpFI zg3ytJ2lk+k8;cw{*uK3d2R9ZCRBlgShul~+LIusd+gNmi5`9YN{ZkZswK3s1oAyfQ z^ck|rpfSKkDs^BS0r(s>OXape9!Vk1}M=)8f&#^Rk+>{-0- z#m3^T|1i$tvDvYBYi%jRZ8cYpOJn)UFL|`2%Qb*K6GB<(Ct*x)ZlPuW{F7nSBCH?fQ@?PwjF%t**+Vucy1b#whsLiigFV?3}0?{P$q}W}v}; z%wQ%|K!g9VAzZ*fN^~^%o7Ln58`z@3{{_M)z~wdGMH31BZBF7TEO2>^ELz;J`Q5nn z!Cy`Nen5kNJ%#T?kl?@OWSDr6lJ*+>ZBF6L0UG?5QWy>D1ph1=zp{q~{~GF7ih_JM zZuqG=!KpxlKY3bC@V5w(*I0uv5NPl(wf*$LKUj=O@IOb3SwMsTkkc6t;DUc7YajWw zbsY?D6CDZu`81gaGFMv*7yLKc^-F?(Hf??IzZlyt+n6X?UZd?4c~@472Y;}q1^+L& z`U1p)e}c7VeQ%|B@bBX_Z#@Gt6vTqR+dT}s1pjttLM8zX{^1l(2QIHMIw!}{Sb~3s z7?j{&PMfzuN@_Itw;#&U1KHh~y~)o9zx2}b8ly9Hme?cszY%*9{3oF~NVHG4G4jDL z+S!9mv3BrpF0av!19^>Bia7kGMNQt96G3KoQ}Hwf=?pbZyq)+)t~cDs zpPduz1avHVQ#cf4vo=-uAIGAHJYV(Gj{3oBiJPB_nttDvz3)!d&G;GxDvv?9?Ho=6 zP}vJ%IfZvXN_5gEv8C-WuJRx~9O1y>IYAysUyRUa1SB~~-+<8nJg&naJsII03e!Y* z0O6_gneBu069{)-$g@I_ehJ~m(K*3zkY0kYbWBe01W12`uQfs`~;PV#M}*FnuYW+D$oyOn0vS+K;2 z=~dQ@Rf~8kC~kJPc#@O2)g_$yASE?=5+9A!7i62myUNd>#2j=xiA$}9Bt@}TSRBq2 zdvX#_L35I54}tEKpFfF3yQln}gn6j!oHBO$2(v_vyOkokm>K*}VpZ7b_ptab2&(qM zg8YP?uE2`2(|+o&>~u8Y&&a`(-zIkYOmmVG_)=0^(1`Usq(^{;Nb)MCRR~qznQ;k`Np3&lA@Yw^ z6C!hMFYA86tbt8aHAIfH-IoygVG9b!?CMTv4Uub1*kXt@H}ibKOnSdlaqBK;gm3xBx;s?hi4o1plR*H^tyW->&Z|Dw;+%AT8wN~Dcgo{fYjAm!eq304O6o^?I{lF=YEX5eUGapT9f%LcR}u$D*=D6@Uo}DK*=t>!O^JhJ|$b#Zo-T|CWhuw%0Pv1dd1Cxlnn;;_GsPdcg6BI~OXC zxX1NShO+U#!|||lq4J2IkApq|jz{d^y8Zi2WGn!e4Y<48*mgYmQNU#bc61w$oWO+} zxNN{Z+{PY$>O^>5TI{| zek7vp?=$Z%D%5PiZ>aeaRLP%hlAq*7T|q0k{Q5k(AalqnSE~!Oz5}qdDzbE?v$Xx) zIYBE>^-s*w+yAmO{NuQ#aah{v0KZQ+I7`Q2{A)7YVXssk7AYv^t85q zEi5nBx@^D+h046%g2nM5JH%Rg=GFI-$@PDg4Y<*Iz{hT_d1KCb?BsRb1 z{J&)bzG=4jyK7d8dUAGQlh(wS_GB4;-vQc_4HW(mL3*<7z0m7Gd(xA_fg(sxPN#4x z(4O2*;WiPZCofWX0c0DjcE|63>`B!l?>RdXCEeNQT2WH9G*)~3ziNMr)ymtZwRAJ< zVzHWeId%$U4zztY!s2OET{ht3g+^E`jyAn$n|jCt7=H#g4(1X1iMfSMU+m2=ccm)4 zk7uF`OyzY5jqWE#K;>A3o)q>M;T(j^C|o4M5QLW~ydc6+2#IN2wM3{w=!#GYQsO5) zi7odbjRfgw2{fb@q5(gH)@BW7*Uf)XXr|5)^zNn%dPb z#)3R;&6sqHhu;gEohKfI1$hWF(?CjUlm+<;=@XD`Xg3+pf{c-|(QKoSB71Aa-ul9D zj@Xm+MUS~0aF88p9rd$w(e8Nw2eZ{Nq@iSu1=)Rt8*nyRDPlpGfBY_1g#{Un#S1}D z)yK{}VL@7BMOhF(aZwf|nyzFfTiZ=6$ie0W^504k3$k5NatQX+-D9}AOWbLW-rN@JhT3C;kv#5E=UI3@i}bS%pKTN+B(bbW!~1n!_pwI0+9*fbo}TyLsB zX!l%Twy%9qg+h7Un(@&I@vv7>a-W0kAS}YnDsw{sQB zLZLLAM<0N$k58j8NCbJYZV82jASF7wKJNG;Qz4-1E^v?}uU+QEpgAnE`QEK>4ek?l(`Ak0@$1=n!^Wu7DS#cplIz;5rIF z0hhQVZS~5x`%6qHK+T0_=LodjRf7{pp2uV=S3CQ5{gXYu)Ecv>>5tRCMajFwsf^WF zj9mz_t?G;wrrfFHuj2Kh>$xo!g2afT!Z$G#OS_vCjZFvfbWu^bZ!bK_igzAfo&ave zYwhX>UZaiM>rE^8Jr?8yyMyd(YwHihh0;>liIyKarJP`@cssu+e8PJ>4$ZzmIRf7< z88kmGwx)iO`e#9v{JBl}iHE6JaM1}nQD;ot)l=9BuK_2G#l!_gVez5X&lWH9fF7vl z)6D{QRl*SX~i$@TC&5!7pN48o!zoGz8g6b-ay|W_s)2 zW2F@3w_3cNQq-t_wFQ1BG}{9W{0AxA4_x3&TMhg#*|Zwe9Bg)ap}i^aiHS_bYBg^k zHLU7tmq(#QhPlQ(XU?2po0aEy*aYD@?lgmrz+lI#-ig(|5U;h**ZmNy|2SSBjtEFt z%UDzi;Ze*ykiBgb&bwt3RU(XH?|LJGf90!HSRX~R_hvN1#;f^*b}%Mq)n-hp{*Eb* z`nO^&cBO|MD$PM#Vq+&B>+WaR_-p6w?AqQqu#$r&e_U36VbE#-2X)q#X}UPi6BqrzM}A%2(q?l{TizdkP>UUz&IW0RGhuEl zf~w}AO)tENu=4Pqa@O! z1u+uoF<0YAq$Y*N9knR*+|joM#vRFrpXBGbBQ`tkXvrq-=oe;oiTzyfhqiF7H|3zs z9^$#9{R$2h-8VQ;bAaQH4k%FW=-WjsIDzAi4k%FWD7~25-Rqt^I-o$gqif&d+6)|b zbdc+9_oe*(3gB|kvToxY@35K%j_2uBpgd38WjVoz?|Po+(1JQSXw`05s^4d_3mnhW z+YQ{`Z1_<&>bLd!xRx(|Kr#eyJkMdy^Z6h0E)sA&&vgai&o(TM=NU)hPo5hm_iepN z1>w!Mp>Or|yqkHf=XnMcY|23!aD(T0PAE{G=RI6J3I+tck0`&+`fm{2c7$g_#ug|O z(&ZyA+aSA*we(EL|1}5gutMjF2R!3A>Sq)*y`>-LwdA0kiT!~<({S=XX2JwC4X5#{ zoZwG{l;~(0&O)|43N#Jp+0~G0zpHH}r0!_ntpv1Z5MYS7o>(g*9qkcHh zG@SiE<;@YGX*l0f_z=Ab=ggU6G8E5*}r zuE2!mpmoL7?jV+i^J+BgzSO{WQogPCqSyQkt>uxX`?lUq47;S^oUw*17@%o5FH(3K zXd2G$Wp002=FnKuaQ2i?lC^8=uSvlIDXG!5>rkZAK=xGA`uE!POsnBN4zWiX&RJql z=ChBZIZL!x+t~S8ql{5@CsVAQhO?O*v3|B{~}XL%!oJC7{8-@An)`U%a&n4gTH@~8>k>?H9i*n)2P1< zXz(BU1D8pl!T%|RcR@$p^al+xnIZ^td>e%cAp4Q|-2BAuzt2It-RuaRkeOm9zEQf@(g#QB-c(?e?w!%5 zJ8hHZp!wT*82D0WHxxnQ`hxJ}{x%k$vFD!v9gBv)=kOgf8;eMgvDlTZyGV_U#o-kC z03C~qDU20C#$q~!`$4vyO%?vfvFIUB_58G>ey~>J=JtZ7XE9%^e3`0m@bxaJT!pZ9 zJvpwRaw)>DfAAz8q(mqE9a}~todnWoXI6;IEwE29VA}c>Hg!!yw%X zq1{H_=N6$oLNithpZ$Zd55gabFnArLdm^j}!(cH;AC9n7G7Or6^gx8m>W9I}pw}4) zy+-hl=AcZ;i!PV9(xtft&F(*rF3r6dTDw6QJP0%gZ4HIbL8=wal&IUWVHj)&Y92Ea zx1wmb(#$domKgi`f;D3XCZ1j>X!e_Ul9PA@X3haAsnL^oHqs1`U29tYB<7&oN&KhP zkd-a=<`sl{9FILYiPxd|lW6xSaJ};0OQhoA z_k!dF;z7o76=psJ*)?`A_v6S6$`Po~m@=>Fit_q`+>rxO76P@RaTpW;B~UM-Fj52| zP`{w?5lD%S5~w|!&<&sj>O>0TK-C9kTnN++t`l(r^?R#^Ds72V>0;d+v~|`*3Dh_3 ziY^4|p<7UxvyBS{B~VwHutfrOW7PZA()&LPl21tQW$4z^fnPy(y`2eu=!Bk94z!`g zW*9WT4do35$zQy3$F0I(SCCy(M_Fz{nw^vvDf?0dRq{*xRgm2G1lx;KFmjR@YO|RW zLC^oAtRe`y$zCij$ekj}a{k|l;&s5D>rk!n^#+?>1vO`ws{HA2A77W*kXd{Q$383a zFjhRgU64EZL<^CYO~arVXo#Fnp+*D=k>@Bp0aBu)A<|^)Fh~Lokz*+w4yqQLaS4%@ zm}NiWAtIk>lOG|{-PLNkj{o~93}@ymYoa02#dcpp`5`M&gCLgYC*@D#{q?4G4it*+PcnZD&e9` z=mx7G17Q+-u~lI>S(JrSu4onpML@Y$-;TemNxO)fJdOGxpsKOW?PO0c$ATPo_BK1+ z#x33h=h`c+bb!WQ{$%J?6P(^Drm{*@af`JxJGTdq@TY&`fMy z7!DY0eLEJ-!-4j##w?J49QW`%_0Nch^>sXK;*otH8u2ba9-0+~Z+Z`ZqWLROmiPR~ zgD(}!Uh<1ZvS)4>90;=4)$t}*)SzmAyPyc+`UO51U&%r1Z=02Hoo0d%uFaW#xMLt( zCN?r-EM&Cl9VSTAN^80)2W@9Nm=R$)?p7Ds|IZw>D!c89);-Q5;f&>Xa3`OmAM zIcUT3SE!&lXv6Y<62ax54bP9|pq*=i=AfNtg3^a0^JDbk`6eiRc!4!j`tU*%ls+6~ zg3^bhO-Jd&G5In2aIC9w^kM4)%RwuopgCym3OtWEFW-2?g&(>@;dn$gOLw5YZ8JG& zMR|et5-|(@RC!MgVt%J=Mmq@Qyy_NL3avpJmRuE_(*9Oj0Y|U z?IXAGc}?$I z9nV4gB2N!zaqBRs2OKx~Wu6|DhTG#rHYzvym1|kJ15-QTxXCrnbF(&K&Twci)cv}E!$p_QEaK06EI>l;_A3$(u7uykT%siU)W z0aiwcr88rej`)|QFTRdj8j7VEk)@QgGzTlQ#nR-Mr91y+>A<+90Z&@nlrtaXo$8s_ zuKCKmevid(LH0ds>6usGOD=Q&RSw!2HWqxx%}U;9qD_92kMOJO?-n~U`vSV=>`Y;A z5gIVO$5A*|1X*)lO5tJ=WX<^?h3P=ooGU22CxWawH&XZuWT%B$rdlSPo8ETAwSXit8ouvP@= zNpZU{CnD&e$xZbW0+r}>SzY#08p9Boom3( z#0aRYhcJc0BoTh6*-8p4MEC}wbQcB_RDOiekHX<1EJ3)1!c8D0e$p+m@)yz)klq>L zja|dwF_7+z(5eHkG3U{03{zV1Oh8bIZSo{&9g=6&7R}7T*E< z(P+E23kx!hYGpzE#6?+~UPi}LT?c;KkUIvch`r4FO;?m#5%KY4mq@je(EeCJ{0$buztzom2O^ZRzMpHc- z1s|Aq)IO*}p=|%T+jU-t6c4NNlh2C>ISAVx7zPy}n=!Tc0!DMthD6G|l zStyj_Q9Kgp`uHUZ&x#=Hk# z%0oqYV}9}+uY4Pd6GZvEI?9Z^y8^yz%Df*g%KzjyS|iGG1$-aHw}4&&t1@Ab0WK9s z+Uk|>N;X{#YQ8f&@1yMkOcru1ZZi+rFvfDweznGYQc#=*1<4(TS$CIX>>ZFDx0x{0 zQ^#M$>qXb|ChpJ#iERrC`(P-RgVy*9SI1GQ!PCwK;XLsqd_mDckjg+;yuMxiz?a&X z(P+hcHEpj1*=^0HKZ?5IRd(X~FP#$fy?EQcAlzrTd7Fdg44^A`-!2)frCsEqILq7Z zplY(&5f9sA!LD`L&UKEWyLw6vn%Ce-`AK-@8zYmw=aaEG5UA&mY*g7p+C`ohQU40a z7T58xi97Hf_;Wnsp-n-!(RhBM-h*QukO5tYW1DvW@F_b8L%zHSHd|myjDP-tr3?eInj8 z{T$6pfd+o!kTCcg!ICd&tAU?pb0<*qtl3$L_NKrW2IIO~fnPP#F2O>Htapti2W_cs zR-U8WP7L8WT90rBH|3!1AFJIzUTZmM$HnSTh}XLuw5Kepgz%W`svCuCZ*i9~p-Q%x zgLa+uQ8brrMl)=Db-tYL4UewPm{gr^he{L^Og;6gy~$;*9JD8_t>&P0v&*e0)=@e< zY<#oxc1&$=gpuT+t+j3vlc(VI==|_^ne@t=I@fZ*t^~Tac!k1z5oB$V(~BvK2(q^5 zg0K(JwZ-`q&IKv4rVES(Nb`X%Futbn70B*rWAvXE7cdd7x!C%BF}on=gqs@=;> zYa1HJLe+BI?S3WiFCLLN+KO$%@(v~pZc1hB+`+Nu5jN$>*s15iS$ICaYxVPh1H$e|6SVi z9kax^JmZg^s>L6%+3`oSJbzSuG&=3ClTnzMmnW5b?lJ82p*+*fYa|kK`(K1%x+^bt zzvo2Wdp1+l#8)kpa9Yb73G%yQEB%i@fpF6`o^blAg%VEN9~uT*0Y^A}-9ibc{i<1| z0!KJ~-9ibcvAwxR0!KJ~-9ibc-wq>MfJ5IrO`0xo!V2$OVoZ zTJJo6z=rpLBZoTXg=c5ou(-svz4F4@euI)jUGu^`GX3S(w|W6df|q!5D4Dk@ajnD4 zo*Zi6$e}%tqt{@7JO`FvXZ@EM_=TQ6*&$EqldFyogDXI`tF`p>iC&`W{5jaoe>Sc1 z5a)x}9N3RUUS89K#&8*sl(lED{4mh0o#O{EN5WtexG5guzarPS(!YR~fp|mbLQ`^>+cy+G$-A24z6Ac5bI|vk3C#sJ|)v z4m4}$FWb*Hb_nhqWm!AbClPQ!vvyvm@DgxYJ5zhRzU^o_?}(0M?d)i*1)}GRe@aomsY1yj^dlc-GE7^jEWX`s3!wn&%Bry%K7k?j$lBRnLQ|FsOVNB&v^&@s z`AMc|XSX%Q+F3jLnoaG`rd<{V|5Wi%me;h$#TNYer-ea7puvAPgp#F5A!QXl)kLiF0 z{}U9ZgOs$_;O~7_7#s{V_-9gh0MrToR*MMcu@?M!XNN%ppusy;WZO?4{FB9)d^YVXT6`!f^3A~WhH+j47yOlny1wnDJ>;q)IuiWf)8t!_ zskRm__;0i;mjwSB+WO#sF}7W{$&6HkzuI<+^aU%$gTK>77X0PIS<8S}@E;!yyD!Cq z|17Wh5L$Odni~958A%QP*5|Ui2O9k6QaA%>@UOC7u~wt81pnt^P=bF2ZI*(R)M)VU zFoKmX$bM2M_@$R_shb;}sm)(^!N0A9rUd`VXbu+b(`}4=@QZeKx$Q{p;NMKjT2J%9 z>$Fyih~{ncnl$HLrIW$C@N_58$>6ILUKT+ngOMPU!Kj%K&EM1HTcGp6vh%{A1n4|) ze+peecC7i_{5ML>4Rf{JLMSz+$Y*}fNj#0HGd-y17GSa zM}l8skG!z_QX7lw*z;?Ej>V%CW{DtU5eYIDE7kqr%`0kiHdR;%J`pf%Lry^~Z1-6k#^PZDXNNLHc=w zHW!CMOOSpYVJd~oMOcCG)+Lw*=`RopE(?PVm$F|!BlOz9Kbo@A(&kWbFN^8Y33<(q zx{NLfpV$6!Zu>w})@mr62vX8adA(^!cY&Hc%tRJNyP9Mqi%)*Bl(nwbjQ6I*)1bU& z4~Qo@iGRb)&thC^^d#+9|UA>9PZ2tS$jCu zO2+wBf|9k-+8|TUZlX%o_LP;vIDDUUMIsn@41&xfmACmR>dso}&OLbzJ`l&k61{`d zw}5gR3(a@Epxc`%=b3Tv0SOCk%w90;oQ93 zg;(N1xZp1^vkE8|-0>s$2xyu4)c zDm%hQ(SajCwsW0Wk<&v%<=aTvm!eP^nU~zh8@drAHvq?-t+WXr{GWJyGB12w8cGB| zL!-xmMzC*}45rd9;{O_6LvjJA`qu171W&<&3$Y-3#Af!^dG;DyTEz2HdEs_fo96?t z*aawSccNL~Ls?d;urnaqi*dBQ9%Rp}<4vMJ=qc<#hb1JDV?Uinc#^h{0i}g+G#x%) zX{CB*KXF@LqqAh6H98-N_;#PN#9XSe$j$(*9Cstx>p12WqKzZJo>r+eb$&4c?A^baFgNV!^eZTI$py zmf+N>MJ&OoQ;Ug0x$LD0PMumjs)8msb!xF#g`XHhOn#|?CdPDX@s9}ZmB`MHj&O9; zJ|-v~Rq5CZM@Q{zg3?iGYo>Hm7Za3@>T1G*);R5EI!Z@%cLa%}qxN$(j*fb*h0#$< zTKH6^b6Xe{HN6%U#b(*@M&VRXMFo4m&Lt};tMUdIvyIA&>Lt};to-vIx8y=Rst<|?!F#f?lcfMb^K$W>-({mo(U zF>t9&Q*z5>CwH6>23rG{%5srxxL=CtQoZ!M=Rz z|3=SNJ(asDl_^MjwrXy!rZOFVcNla7eP>bg`Sm`P>4#iRWomN|59C2rpQoK^NeFq5 zR?$sYo=#^DdEV9P#J%roEbV%Ox3tb#8i18!#nPCVrB<}6ZE3>XxTWS@Sf56g{&JQk zVdWOF^l;45DgUzchSH#Xw~DJwFyK{dn{wuZkHxC~am}0-%Ec|k;u4Vk(pq{hPOeP$ zr?md7RHpZ=2Z_L!ywAkfxlN{z;|eV#{qOi%2Xrk`aW8BZ(6z|^6uOHbYmt*F)QBK! zksByn2Xrkmm%_6mNCMDj6g~mjW_BbtzZUtwr7}HXwi1CaMLk)S+vIHGOM8-gUl=q4 z+LKNc_7Xu>RsAU(BZBng5(*cIAU%12!Ze^gSx#Y@2-1_kDQp1QAOHX9N!4*rY>M1* z>~pPntGYN=`^dj)?~m0ku3MXVBNnTf8MeC;ZkZ!qh(&Qw-S8&AklnV0Eo950O}pBr z9zx0cGq`cktqT{~b}gDNpTscVOI7-Q)=HrAd4%@U5J2V62&Yo05#bAj2PoVp!U}}1 zD10Wu>j*nchqVBevk^|Da6CwfpY%U$nT>P@NN>eGaP9+Pa1}_GAiVPsZxDcV8-ybt zW@ZP{dmubY;ZhO0AXYEK7iZR2!iN zkP>MD8(5HH0mQ;b5mB*&qGCf46#a-|!GdBzL8XX-Sh1o1*O@u@W?A+5et*yRzt8iA zIWwnBId|^NxpQwg(Ey^oARbynFbqV`hUoM-?+t)x8N~Z*gXS?1oeFWolT5^*_vH}1 z7x0fgu(V(M-I%=2bVG4Y)&DG^8|0~F`qP~71oo+APZC8!$bqFfBrXR9B4eLkz6`Yi zl>Mdp7NAAOU*@dqboNX*u$1$Z&JLzj%nr!O{9Vk-hN0#&#G`;7ClU*}ws)J*<3!U@RLP^N|Yk z_rOH>v7FT3L|CSn+Ywv>>=cvrJkJAwI~XCnc4{dmt2-$BUiEy9v~w^yB7kqiQncq1 zP6Yj?%)HPjMjy`!pUUROy4h_gy9LAtCpA~x%x?X{x-j9rDosTwl3(DJoMT3!DB(oV z9Xe&C7}E`g*K&fNiY3`8e~6X0f!)t}e0;?kK7WteX#r4d zEoD-1J7rITmtn>7mYiUh|ET5b&^QNJ%g3t*YIu5r<%5*(2l07H7B2alg({{Ml7ZKA zf_HfqT5ROa17IyQQVqnz5-qHxdEy&xJuWjmp?pzdIh$!y{Hl(x?4CEf($rv#i9vqej=L{6%%nZ^G;NI>W1-XJ zM2gY*ksIY1bXuL9;C!}%c8NHS4j2vW5^*Jo6+*}oaVLpSgpeiT2`{ov0CtHum_&b2 zAlmFY@h+$pz^)TtA@MSZcTltc(~39gM9Lr)lZHP_J?*?&*>J)JXC^iIdcB@q*x;O2 zw6T`k1P5MO=7kMvWe>Hxe*10iTG`VqVZVx0EBiVjTnOM8x5slKfLtYP2;f+^C3GQx zQq-{YzW{)x9fBvfIL^?LI5+eH3Tp#+Y12<&ejmX zQr+vjx0%S6iu2Z(W^=e?Wm_ygl4U~xB_Zc6m0v}AqWg$*)z4LZL{GdQ&>{Iq5 zP2H2^D_cXz&>UFQtRnGWls@h@|3*{j`M(h%KkZtkAQp1eqEYtTYWcnroG6> zQ})w$a<>4n+m*vTW&b40@yk>8-tfv@_!92Iem={D!N^cnA}bN?Z7@||Cz)= zV4t#Qr@MA=@&#sj${rV2lI_pn&x58PD3B7n{kaF~P7v>@Qr`AQTIp7ReYAwAyy)YI z$z0JV%l5C3+%3`@wU4|Nph(A4Rq*Ji?Emmpq-nnMXU)OF7g^~KtW@W3`2`D9V4Z(2 zi4TO3BPO4H$?gLbh>Ugq+jeu(3s~pBa1VQ9V4Z)3u!!?NM9u@iI)60Pbri=tu1;|N zPbhyASm(cLZ_vyD*7pi?g0tTUpkj=7w3PN{QH4*{=h*_y+K&#ukBxxD_|DqFA`T0 z=N|#zd7wZ_tn;sdS_R_YB{{!cHrnk^5C2NtD*AB#t3;nT|Bpx>66xmJN1pSGbUdPh zM?3#N95J~{$01<6lpg^6Dl0ODJCqi+dpv12t-eS`1B{Z^jvf2mH5{MSRGd+Olc@TAu1bI6MVjRTze+ErA5Uqe%_ZQD-K<}#{dSAys z_DTO`+C5B{^J!9kcII>U(Ig4nePKf8GhmOH)Cq*lv7kWMY@p~os6n7?iKAEF5*?FxnGn^iM@#TKz$D4TUE-tgE8oO2m44%I9DV3 znr8=lh(5W9^HV~mA&57u>IUDth()^SX4<|Jk(Xh&;elFJ92bA2SyLg;L0Q3HBU&YZ zHyn+nfIk_hbAtr%o}$%6G31Dcu$geSO^K=9Ty6j z98e%KHh^~t)O272cyEw+85FNm^PT3?nOeqCBGUDrGu;;Urzz;?Y7JQpN%;8tM! zeBr!n5FV2qPJKv)%MctP!kd$Xy2xS@^Fi?{RW2^l4z)=x zvO$Y+kwLEXs2DHZ8GA)ptc%pu>Whoa`xk-Za}r#nrxO3_B3o5GbM&>ezDsuaTWP(x z$agg00EjnET4&2FWk>mAU)W3equez+++npUYEms^8iDvh<@bC|+{K<>`&h4EPX9

JOXEfm}t{W0yCf<1A0l|Z31tCW0wtp;7Z~I@moP|}Y!85T`W%uba@;$7Spsui|I|Fau3vq1nzvyU+~0Ji ze5d8r60Zy5E#6$$KiyQ|@oTvB2F!K+uBM7lTFVz3FxU0ZFq{{^&-x88*Y(ddmakdI zH7#In=Rc6=5BbVeoVmY0InO_Gn~l)x`ZMzU_dhccJ-buywJ&nl_50>!{aRb5R5QlJ zX7q8__50`Pb^Rvm`8*U;-M1Uz?&g19o1X5z?`?T{-?#AwE{%Y8UGpgQ?I!Y6B2plE zs}&Dl0`4Iu=~z1IaQk->#0534_m1Pg=0};Imes3}Wj5oSr@Rc^H|5o8-HXvg?g8JA z@?k))Lcae&nztP2RmeRba+(ChL`JVdw)mKJI-pk}FZ+bW5};Qh%PxmSu0lRT%tD}7 zA>~JX&0ld}%oZO}r=$Uw1-~Kv1E5zS-}{s$L!eh7`)_2%31Y&pS0T^&jMLdbuR<;% zumDuK3b_U5@6KaflY79qpQm}%fnJ4tg1{6ZI5vrhT!kF*B}evwxeEE6l_|C|%SA@6LjD5FPayHT^Q7&abW8P;F~Uu0l3CpXav#w&G2k3}Yr8Ai2D&%@mC|4oV zze@A|fiEU0dKIz9BeLdq#C`(9PoOJYzP|J*N)ZPq{gV_`^Mtz&!J#=jlyYk)TXeOowR0JQPPw=s@@ zn8;}3@4X#|0zeyo=dWo?KpX!IVUfn)ZU>h`fHwZOw>Yz{t_U^$fu#2a+W4D(!?h`( zjsH~wPlK57YvUjHEx-H*wDEi2@yiepRT_Ue%sVcyjei6@gMl{wUkUsmgf#vE-}B)I zwDGSc@D9+%UvI0)XA_&<+eMi){=g5QD^qM`mWhls{=Z?_2NG*7 zhiUw~zBP=}_{-syhR&ojdB}Ga@s%3?x-BLFKc_YnZv2N|Xd8d?ooQYJ5NiBiTK+W8 zg~E;h0w-CH)LVh1HvaBcQti_Cd;gf`^#t1Z7ZI2PwDC{g=CU;jW@-FuMWHnQte-g0 z0AiA&jsIe(3qUe|hmktC@xN^K@$oJCX#CZsX-eatiR7aq{pGhtx>DmGYXx27*Ez76 zR8};8nMbw?y6Y~nFeb0YuVO*wk)NUcQ=s$6e+e8ALgtYHA@j&4KhqO{&Lg`LI1R)^ zo6aL|f*J;N9{D(dM?vyhYxckAk#7bQVdjM43&6)!xd7}Xnp#DAE402XwY?SEkTiH6Cp?6-LK^IdC`$<|)cGrNCUm&Xg!YVq530pja zPoyqTCxfeVA$E!IpvKXySm_ZbqDL$Fr!oJ;BrSeAp)qie0`Z;@^9VcvI?3K@9s3rJ zc*U2Z=<>$Z^?P;?>AwN~I!I>w*ztBmQP9NWO_&NA%ju6x_{uGQ8qaGCeb|Rvw?EC5N8P zX(MFEgOUyq<9}t214>#$#D8b#03}C2yuT;Sdl!`CLDcwzV<;dd+TvY_83J_*i1&h+ zu$MU}i1&y1>TgcMfcSL~kL~9r1ma^L+8tmbE5t;IIiByG3*wJJMACilLmy%eMD1$6 z_jwfJIf!0|_}-Bqz7k^5p}sc~occaQ-%t3*`@&R@?p1CK=1ZLhQ0TYwGS^)~p=Gaf zSxw)29_V5HUkUsSV#21IQpeTuz2>0wC#&K$1Z|Bbn%MW4-Ln+em-{Rm1HD*Um6zGz zQY^`catmrkftaM|h_W2&MUXuDbCX#&qL>A5SY5 zR$1k@@OEj7TJlld=Q@k2qXD1WWTsoaOscM+oU2PTJ!Ha_*k)PoMnh`dH%9QRF*NW0 zAyEH&!y_Y6GHHp`qown3n5x*>re5Wt?6m4}V=SfrA}_j2N-qy3p5=Qdf#j)G<~aIL zMEH+DxLkz4%!{_T%nA=f@Olw$S4EgInJ0RkebmrbBm8S#_MIXuPjm@_3xRo}l5C!6 znH3ohqkE$Lzct0RPt?DKt!B%{kuA~udtUahSD-nUqyuRE7L>Gv=vv435}>3JL^*+% zLB|+Gt7~|~mor$zAzsSyy(OUZbz77J*1Yj>F`A~9WuHrZWF%wuwA460dgQ84uS0Dn z4^HC~i6u6E)vk;qG4^3`x)A%3B~5FVJWF&@UEj+EC2JwZ5*Q=IYY-n1SO;RlAODP) zmbt!HAH=_b_=~^~;MCtB^t{T~LCy5J77K4Rt^OW4)}j8ndcHRon5E0#14b80_sn19 zou<|QbwVBU=z73wFFk30AT&v|uWnjre_ymqPkI5SML>HJ3kzO7pgrk+0{4QL$Y@X6 z0QD}=o^)b?@3jD_V*ApNo-_uvReI71Hd)rUo-oO_E9r6;b)4v6S)?Z=8rg}D^peyY zKbW#fxBBWog_A#6mjCQXvZd6;YUg7?3SZtddSgEdFPp(j$p3txE4hx3AKx70RqV;+ z7W!T-km_VJCL>@UG}v~YoMxMt8yTe^nP+vJO^J9e6g;ctO{*`ET*xV!p=cihy!L0% zs4uZ?jccZ4Bl1GiwiBg~Ttd+uiUbsjs8UQCkX^@v#q^&U8_F~lq@Uf)!?*9+nJ5hNUPnD3>7cuR-`fsVkt zMoj)$-=;ZIT;S_77Ra<1$ zej-^JMZyHQ#tUc12~eFV$0#Z%J`rLu(ThO*5r|I-ds$4I~(~atySB4Sv#GFK?KX}cJScNq%Dc8 zoU`V+(RM_cGR?vq@=U!`N85%X(c(5jqFZ~Vy=?SnCdv$6cEaAu>-C-e5R!&yMm%kL zW~=t^pw*X4@fzm);?zJ}{Zfjy5NNA+d{M9akWi~HXyAL`6jD5&C9wjWO)zizli0DTcpZZg28gRwM+q% zlWnn`Wi7PsjXKLwuMZj{jr09;OKq7`hx=X!pugO7ueBWUT&STjRnhC`!22Xf&I*-Z z%FauLjwNs0}U*5_W z2+2D8aLdNL7DJ20iKi{Ep7m67Evykvpj0&%&5sU4pFJ5URdhzc+?^~(4$Y4~FZq!w zx`Mo1E~T7OrIb>^`qCN@2$zX)t^Dj~2OumjttSzj4)mo}ts$iX`qJu2pc{yZjJ~v< zgnA6%CLtxHc~y%`9*P<>N4oYUk-hdM=%qGXyV`q=Wj{wNPHF~Uwj zbz^LbC1hhvZsbZ&Fk5RBEp?pjVX_Y-S6TH@Ec+v(Ml0_Cr5ajWGEivC)y{ZU{X|=rACivbY5x$uI?}Xbm_PsVBnO5Zq1;TFA zp_*4N!qf76xp=ABz7D}_MR=KQk?yGk*&g|o6rZgTT+SjqJTd%7#Sqb%Dy{^szC01RaTHZD($0(uB z_1miR>UDMgl$3!R&NId$O5J*#Qq2tYR#&Au8)~Uh*w0WSJ80T1hB~^3QVW%8(YG7a z`Z{J)GdCBa+!Dw0up=8RvF}od4=l007~(@qjEzEkWC<2!IND)}AuS+2vBZzvAwIRl z1S!ZyOX#-hXO_6+WKzDcgl?;TStqouy2+-L3EO5%=(g%tme6h0EmlSy`ERwvQjyta z3EgnrZVBCR{kl$Q!*z#AF&nORSP^-Y+K3!l*YAC14uO6ICht#9 zVx!qbo}5Jq$7gG^-!j7t);p+Q`HM`yXr9|e9-pnd$UEr99|N@w@y+?rA zMV^qYyT}WV^u3FL*+rg^t-Hu2NBiE+X1?7;o|LVPb!H2`XMph;KiNbMY{?`K829k^ znaH-S`Gy1Sw42>;BL6+k_dW&2XZ!;u^4&JRHxn42@ei8F`%mz_fuNmszlTiZ#qIdQ z2JN&LK5QbJw)ee%Pa;w~;}jFQyM);wXs3Ph5fiyQ?tAxxcG@+kn#i#oDLZJVJ#?Ch z?3Unl56o`&Av^JX+&yYe9~C1-<7XRU^cfG)bZbY#XM-U{k^D;U%bLb=x+D2 zI{vCBO+?S`4f)Z@;cmBkNp{xNn!)nXv6YQji#;YzGfA(byWN{GF$(nD)tDa=<=TdE zPM@fw&gq})=6lb8)Rps%YVjfY4P2F8@`?6qO{y;Q_bfhw*)eBxjHXkKrk~LAy=a;l z($osB%9eyNPQ8~G~yslKfDvxREDMx0!`-`O_!nNV$qcQ zR7L6DI!M#ml{76z(_x$@GNrrNXqtwWhecDjkfz#jRW4oOTj4xyLDLn1rhZ1#$7tCg zn#PAT^*Tt?>2HQLWi?^-IM6iEXv*y2do@7n&5))i4$}138(~eI(DYZJ={lq7G_;%| zn)Zb>{dkb3r(O+f8jPmojjo<`mRyzTj^X>J=UJJ##o4WE_9N$ z6^YfUarH1e%i4mC%|K^a)y`&N2IwrSIf0{vkXhE*1iA|$v#j9+ZUj2PnnU18A;iz? zS_1EZ~e^0Rfr|;e4t8Be#NoKEeC2^skB*)dMaROt4&KLi}?p~lJDL%*d8UQUx zia=5bDaq9Y1_&V~xsSjkpe0#J;8h`{B;OGD8YDMc>;I1>Nv&bHl0Ru3=aT12ts}KR zlzQDksVzdI!lbIHiBoJ{%Se@&ZnLYz#~X}I9mBk?YY{bDm5b}xt;(;0sJCrYdpWS> zM%`?022DQlQk_~i&ZU}%kktNM->U;k>I~vg$a%h(21?Q)k_0*l@ds?T5*RJScMvNH zyduQs5dRSPONg})vGaLFfRfiBMi97Bh-V>|5qMsR*${sa_*IB05N&$-UMo;C0pdCW z*9tKjVljcIK}>QTFD6g13s@K@CN3vV_gusmCWyC(IP@~wZ6Am(5YP1Yy_O(;F2uD1 z=@J7VE`wM%ghGM%wGjEkeebSe5H~|~8qI5O6vQ})?Av_r(OV%Ngy=kuPrW-Ko`4v3 zx9@cY@n;|+lL_1lUV*4R%lDQ&0r4(G<9UoCb09u}xcDXCdvF|=cfEf0Y zX&-&NK-{*-65S!bal{1>S3F}=E{FKZ5d$F}Tx?TrfOu_*B}PG%Th;38^}{Dk3VxfK zQVGA*$yj(Z&1vqPo>%h|-#Y~8<*(BTq=XP(ueTE@12K`&OJHw7y$VWyvicrFi}WLV z$an9^YF^@PJEgF0GG(1KGTWJ7DdzXq$;=#ydA;=cDJ!_Z>_17ex%5fYX`r;86GgyS z!kwy}ql7k48(B6cxkq8)uR58Ri3Qm}oq?LEASNlgfw~)NCrBPxX7bgK#Rrt9PcAbT zKV-S4L!hyfX#Bg5|FCG3m4vf5`rcU}G5r-IFQ4S*mfZ-KU2m{RW#m+^J<3+}BqYWG zt?1tg>;mSNo$zV}xB84BACykCdj1WH%{rdRU!sYfI@k)9%syh->49SQkep~z%t~g* zpzdanD0{kUX4eFn-6B#sIn|fD%&tIUDbUO|{G6RGU@|Mbn%RqqIv0f|6z(ja0{+>;)nv zb@?$88-OXPBx^~tH!%kUr3*Sp1nPN-o;2e~71Bo5> zVQ72mcn4#p{Md8REf}2uaW6dMfi8~sooh^RJj905U0XdXr}}i!EgOE@;Qt&Lp(_I+ z7Yc;BGeW&_@pQ!u+r3jGLy2Z@?2Nm8DHfmKP5u(qIOSx@>Jkhs%M*|jWe zCdi^h@i7ta^jq<`u@FM0sJfN1EXb7n8g8UlPR4_jShtUAZSlP*P>YT)-D}l6bdl{k z(ys=|TVFFZA{O;g%&2IAtE>&~&>|bTASYvu*pS+P9oZEivBQ2EnBFX9++?Nb2_kh- zPDX^>tJL2}{3%lH!sSfOw-Vw%qba@3jWW@>i=ATDzT|mZ>?tqD}*) z=UCAW2)G_P^qoo;WGuSWvT^)KER4>{d|WK(+Y>cYK}=H2+Y@RhNRGEs!B|B7QVY5o zKH+I&grjz%aZHZ?v1pW*aQ1fIo*=Pyh2b$RLB^u_R*F+SA~ilI`^4LANhcyP4w#Zk zvX*o;QE!0KSFPw#2)L4-w!TtH#loh*LaSr3Fd-*ku__)gmb6)UiB{#6Y)QNJ7P>kZEVk~>iGC)wqz(?<;d|9U;^I(m@;b_b;S6}^ zj>YIoh!i}XfR07OtUjiVHWUmiQ*x>wg^Z3xkH9|}7@?a3Ar}gS9?7XLKEqY$00MuC z(3S6FwpGi!~tml>P7u#-e!@E$|C#gU@DU zBeQZc&KDa}`@@mF0VMj{5u#!&+HIxi2_iKoC*y7>^(+#LL@Fy>&eRGkA*0N5@akAJ zrRrF8vVG?SW0B(s#v^-i8j2`7T^c6@f}FkTV$G8PyyNnbzC~e zCUK5JO7e0}=4~RbbMEgLHGt_$l59o|qD}*)ovi2$2uNR&IZ|6&)uB1}8I}$IIbz|J zoXn5Kf{q%fnF?Z(Vnz+9ogkTOhtmHVHA(}Gty-gTMUG!%oGtR%-!p1}#M(D1ifo$r z2rI?+s|^KBJfm*39UANgwhRFGSQgLgBPMd{W=<6oQY{lvKMt5`kz_N(5cLKqon=KQ zAmFN{-8z$-P_;Z`*?66ah1|NCKZ*sZmVzG`Vn9q%v|0v0^#jQrRjY*t;s(<-fyOPO zv0h!j(Rf=eYmi+964UK_Lz}V=7n`h9#B-sbS}v;_?S_U>wd}UcoM1l=6W7$uTp}i< zTB19BF9J-pNU~N-f~XQuTFrisK7oL%mb48ARZAVqhEoEuFsN>(f0wP6`%p6x#3V(l zWjoX+kc?TWptXdmrK?TjMz?4jT-QHIG)fOo{>YdG68l$IZ7mlEQZ5u!%ksL>E6@t+^Cu+>uIC#Gc}CMjAi7eSo|lCM~)|EiWXHjM=m(fD3nzq@FZYFUBoOCa&e`&Fyu z>p;qdf@;aljgCS?=oCnk#YUWKCSsyVuK$WNu@CjXNfy_wuP{OR`5|^`(0YI3^gw)u zh#!}mS$m=_^BF%Q3SyF?WnK*Rl*Ha(rGhf6LNndC&89`XEu!)GTt6uqrOesCuu}vQ zi^?l9WTe_GF)^IKX@gYP+~^1=)fI^@BK7{ps!|=S6fI1o&d7}}c2Z-JxJ9IvSCWz` zR$nVcm5EfJ+|0DQZJFOhVmXLOik7+QF5hbil6PCF|0?tJAoq(!<7K&iJJBd*9*6Ah zATjczQ0{e9SQJRPkbS{;k>_)x{n22ab0y}e=a_>=@oH}LzJOVu>Ykv4TO>alb2Gno zC47gxyb5BHq9r_fx9=SRl8v4L^>TgW+v(FS*+T5&4xf^6+UT)OgPDa%;hc zf=c)`xBBCvTRs8LMdl1(gfasm7Yc-a%dP&A6IzDAvm$h5+7PCGh&p1JP93ly z8s;oIzI1OTe1R{MHKeZ+i(|hEThvM)V^vd>6H$F2H{)$lEsZhyJMRyW_-j*0Or`F# zQaH~MDX(6}-%hF{5+x$lJzTuhg;ql5Q4J}ejx018P6nCH82$45bc?YR%(fgyFxyh| z)2*^}uaB5ds}~)CO3n05m>w$TOTy;0oxdJrdXh-htCzV}q~!hnA`;Jln51YsFWSR~ zD@guqrT(j(d(WHf^4vsYUOhi;vdzaxWQT*q%FjZT*HQNSy>?7^;L}Fh)2iSEjtvFv zjlKS)sFOzeJgS}rUgFEGMxUGmOy+Jggd8B$!-MX$fF2&KI3u73+s9Y~^e=J{Nz{u@ zLw#t}cpzYKq3UiDo2(aI9Wbl5nE~@)(blD2^!o}1`HH$^naLZ|DPh=KFM9ZWwsO9p zB%eyvkeInJcPu^85u( zbr~WffvO%EsP@{2RKHC63!-}4!K&}DBJ^@ZB6aipY7f|4|BlEmr+Px5x=&d3v3pq) z2Z?BS?b77>!9evSQJtITU*=SoBGM0NuBQg7SB6zTLHc8&I{#qRPX?-YiRyZJ{+mwq zmxye1s^c3LpGSj ziRxB?>Z};5>*x93IMt6KG6iV%+Xt#U!51{f-K6gX$#EgoI-J`DMX}K>urXL{G|2N4 z57{b8{>}RtsErE(8#BT-9wvPgR?-}+;qZUV_atW@yUSA`}+QM-^4@rpa5@w1%hUYDUQ$bJbD zE7n(J$VfdNNQqbH$oDxJ$39|1tx|o{1M$ToejGn8Hq}<&Iz-Li@vcbq{46A;)pwJX;;GtDP<_d|8P7Nk(X@2W2Z;&c#TadU>sPtz>n?W3 z)Q$e^q>e@6D3Cl5%59bE`#lgZ6Y+_4vpY?*)prY`H-VU>X!Y%Y`brcwu!|r6ReddN z8k=9D@$S0O8%3j3U&>GSI)g;>k3$uq#aIt;Odq{@&ODN;{-5t7pC+hC>G zO|+rIUF&jvepWZyV!D;uio_QnIW?5qD%H0% z5brMH-_*?>BjVC|+oaRhKul7!`ldkL2a;b|ssF0JpKTgzPonYLy3wUBL;H~30}@L< z2~~tv-#9zIQ0XG|XWfjQPU`q*y4MmUnr*Hsb)S`Dsw7f->t-~3)E534B(4&vyo03f z`5>sW&PWZ)jrMU;^O2YZlJA8cl~$RK$ePtnfp~WjADtV0+=>5%=5F zT*_#B|A!_i;+2W`y}8kko%m_h(!EnaqT^Q;;-+^#YNdQ{u}DqIjn;U~mh?6x#)#C> z2T7gzk+Zc$q#ny5fc7f!=qOdT3SMG%zR=5bfQ*qtfTJ25c|oN5ccTf z_B&ViFF6Gw^SjiZXAHY6YS%X$^0rIWSzHl+qLY;8n(7cr>1HK3oRE4Z6n|w!eBuoo zule6?3CYkyA+?%+d8?%wEHQ?6+=hFEN*w2!=|t*$%OP1Vw}vFk>q7D0h2p;t#d|Z% zGOA?woM$VFm>-J2J`{hPiBF#_Z8GtgP0^xku!I!l(hwU((HdO(T!s2!A@u{FH}P^+ z=^hgwIo?Yxv(fu+;RDS^clJ_$*=Vt{%30YmQk(~x-=RqzwbbYnj_<2-$Wf|P?+{0g znYI-;9lL~MLWrY9RSr3TlX@Y<(XA?nwxnGlj;kEUM$umMLPZWIgi^E&velGIg*X;g z<&cSdYDkD|U-F-{Re@ox3Trft=y}T_Ssq=9gDh)j>|>`sV(1}j zNU}UC6u&qm>80j}QdV0D$#SNh*odYr74eBiHeR!QmL(+1nRCLAom$om4YeGS<<^xr z$g=kA-XB!7z|#zeHjLq+_`Xh3CFX`wZVpMT3dKL@BsR+U@<%8|4#wH%lBj9tG+LN0 zmXN}H84}l4uEW#_%OQpNrxFK+*&>EsupClr^_W#SLukc7|r`f-5y%25N@n=gOF%*gRtD)Anf`QGUl4%>Dl3Hif3lqYl>~m6~%M1vyZq?=Gte} zKMDi)o60PH#Z13Hsb&7pmBUxumBah9P8VZ)Xeyh4xpMemmR>o`sm@`ULx|-2g5N64 z(kqAO9GdPG0CVN=!7ROUxV2`ww*VN&wNq`iW~O^Nz&Ng*W+E@nO2@ARkrVkQh&-O9 z7xWfpr+e1}dqFSDx}z<#?r3M4XSTI&y0-z?3wl|4LGQ`jbngLRFX$Q0(e={3tAV|s zXDpwYm+o}|=7QelEdNPcE#`vW)+~R!i_i;tJG1yu!&NH6F;m!%ikznk9>_(X`O zNcplb-CGM{BBOpcrxvAqw*&RNdG}#_3AZSve4= zvzHd9dp&{r-TaimdLhK`X19iz1?qQm34sMb{cfheW%7BXt)=}>qfGp6rZ-CW{t^*! zIy(kp7%+Y}7h0LdR;HC?K>TiQfn_sDtgsx$@8C$B;D%(k^`-j zUB=N;y2U`F4}UMB55JqYh(1{Zy93EvMY_z^k$m>MI!ZRPDxKd==c|XlP~mq|?wPe+ zX-n^I5euubYR%%CRvZ6&XnzH0Vk%&aPD3W`D z;58IcdQ(88Xb^=U9i`ekSP?;k1q&*Os3*&dE*i`#k^O z>&eRx&YYc@EoXMm?(8{xkvR&e^S=PGMwoPI^QLL;I1t}1_Qd%&!o2|0`ST0Xc&q#X z=PxaG?sVb;>ik!cJ`1Sx*FHAQWdU{m`ylQV=3?w-G{a|rI{&#=&cOM9C#Ip!KMaXJ zK%M^wh@HSYf8GneZY`{e&7=V0{G*zuxe=h~NR#l+|EP^y;`}Eg8#w=t)a(8wNALWH zTcLO##Hbw0N}T^DOsMnUNLH7F6z6Yd@|>h&RI2m86=)vWf|(NVn(F*}Xi0VcMO?oL zsPlghu@k8C|7Nvfmzk-JIDe72(nI)2PY#Oj2I7*U&c7ILAxQpco*Fnm6Ls4UIVS9> z!^IxXKTGV1^KVCUt7ud;V{T?=Se*J88R9NDG3O^ftGq?KrJgIcz zSf>@+7CD&v}P6r+v@4m^%3HIX};}?>Se5m-g5tZHwSB&L@xd{BEaN z((<3?MyEe!ZIRYG%~b)~7RNvwEsV59$VglCeL7@H&#Jw;}RPeuekLNl019u1=?QTPh>K3* zajx7AcO^)?0JFO-Hw`4-hB={KnyU{ITVXn%$S4jHU&A~Dag8v0VO}jvbGL&;lxgSF zi8QwuBywSDc1&|Wb%3c4GqV$$Qy|e4<{yYpggF7`%Fc|TAd!UWm?TrswKq)H)A>hV zqV8#PD@Mp}R5mv+XA@yPegE^plhfQXpr0;%0kIv#MNHoVJ*qg(9S%xHnTh97w6Uk? zJ#(X!w}wkitcsf>In~I^X-HU3yZ1!Qj0bT^(eC{)+yfxF)U<-`Ew7dMXWMd1;fp}A zcW_>GsMwS4{Ue&+i}tqXyblK5TeLflr0#oA`3P}+wP=@F;*)HnVqQ(x26u{8d9~=6 zE_f^8?7LTdy1Y&FI?4J*QLuX85t$JU*9=8BnXLcmSy|Hl7G~G7I|c8Qmsdz^Pn*0K z=6eAD%B>`8Q(wcS%Rot{)#q3gf~LOLGD!KJ<|q^696`yUb6(z(Acv1J^Ff${Bx??} zyQaB3P;#QFUYC-?n-y~CD662AC>~BcZp70tGCS6N^vg_{5nK-T>7Q4%7STa{d#42B zBY^I4pKMc(G&cvi@P&ydNq-C^2UeVt=+Dg9T@SK|xs{T|fV`@GB@4OhKcTu?)EBPz zwz2;~D<3D=iSod_s`CToW4p0O36fV-Qr0P>Z1^lU<#MW~&&EYg&#U@TU}zLZ zMu?$xCLfeyBGSbd+eLYA?{8G(Cdz|_cl#FV`L1nTvV+y$-tA+dq3N;$>CI0i`F{J8 z8RB*J9#o}4UfvvThdR;K|GmpAJva*(s^>U2+YHGrOFHyYwBVdN;|r4YA+xajCvc6;Ey0eY5Q$5YbWiJ*A2 z8JDx{9A+s;M#@pf(=3^~H}a`={;Gb4Es?FFIVPfK*=@5Xle6sl{TGErRz-QTC7&|p zzn*1xrJ3g_W2t?9UTm$@Ui|DDDsTlz4zhj`++ls?O*UM%ftGxQQh zUJyg~nS5Y~`uP`A9$N49cxO#YF*YwcOO)kxxSvt{5@?4CO7UZ^5+T;Lhh9F}!MTB_*q`6d5uW~xk)u$M+wBZ)0}&LEz{h^FeS*20y;KF?9LL4Gl~IN|01X4WfY>L zWAi=8-vPW*EK~}pP^m{=Mrok*BMRS((m4;1ZA;3Kco3rCG{$+LEt?VMD(Mj-J?aCa zNk0oDKd97#S|?t&vpcFW(c_JgP~~@I9&~!$KuK<0@9QJ+JnaUhdxOcE2vm&aF@)^5 zsgB0~n3x=(Q|+XRIz>CJjQ;SqU%OF{$8&sq?@@w@ZEvWqR|ZN1%E$K}&pBTiJ^bzQ zoJ*C_!`~jyxl@_p$YSLwpHiUAW@Ys7x5sn76Q)_a&ZIn%lX6holg8+wO>2x9b`oMw z8>7*}wK*x#!e@-pXyLOarqROZjL~S}I%6~@xZZR$Cir|#$}wp#_!J)#M1~AkMcpTjPAwd#AZpz{mOaW^0`9*M3a-fRFS2 znXS#6e|nnRKbVVp)Bf@o_neXDHUfXN*x&x*(?fax1GLkdxZhvA;7=Bbl>LrV|Z`? zA3Ln-?@Fz6SrPyrJFMm!<%!WJ%bAx zJG?U|`thk=qW_+EoEz{~5Id}ulem!| z11YBs@#Spn2TRvkj7b!69TJa=ibN6H&q#Bvfe)nYGo6N}GevYHka9aBw}GOxq28(w zqztlKCV`aekd+(CtSwoZa$T;?!k+)>D$9UVij2y(tR#@~2_`g<@&;Kw2T}qlHBFwM zt}?1>ph*<5w%qyUOe9J#RNe!g@$@O1>22xJD2!{k3NGY*eMO;J9dzC=S zRbud=BsUqE2SHp?bfxt--0vWHn`s3rEvcnnX$2{K*eLc0q`V^bWG+-RlLCO`*0X#| z2G4fUP7XJdK_JEdbd^Tb!$3;W%O>PIiu@`=qYXhvxxjan>EtjKXh*5tJMdVymC{_0 zQ~wa;wWB1fOeGRr6hq$9c2^3 zZ@gq3rChJjQ4Y645pgss zwWFlJZ0xibyhuONw@ssc;iP@~dIKwGQkkYs?;#X0b;{*(3I(qpU^q zNzvXq+-q0pC|8(b&{5>1Y5U!l@{TgxgtViaHN?6BW!1mA(rNT~ziBzTuk|yz{U|xk zGs%kkT6Vmj>}3V}T5_&P%D&bG_UPn*sV&rIa8A~&SFNKpznX|9(2myW8ctFHKD2)= z42X-4cC-Q4!2#`PqpnYL!+>_QmhT}V9c>j?Rs!v4&-M#C+IrH%C(=&R-vipwmd;Oe zHv{cx?G`Xe0dbMnj>g-q?hmeLM;it+2vq85!{2AJyU{w@3#2~*w4?RBk=HkYcC=3+ zJ`hGaTG35p3ACeS_xI%tI@%UqThWeo3ldiW?Py2eOxO+hj<(u#>e)@JCIyg=wiuB` zplH2G_>MNmoJBfXLu7*|(!!MM6*}4mYdnr*Gb**CjmLyOSKcJ6bs(jqZ83R%B*3WD zj`l#HIpG$z3_;2hX%8)_9qli!?*-b?dfv*0AkdCBV}NffR#{Ahq@&dnSCWqQC^E}I zTvD{7?T7mVBsc!oj&_&XtKx=>Jv!Q8u_qm^^FmgRAbH-ub+mD&7<9CMdm`ymW^CQ#>} z^C=?Y{6$Mx9s_m$B{qNM^{(wH&Oe3pQ9zx)_zqeXsPlgc@j8f$ygL6gck<8x>iox* zF(n6;oPRsQtzS3ie}wdVfI5HvQlh#*o&OGqTZ9qkcXx4HVAT0{TR8*gf9ExG{=P_c z1M2*5L2Llt`4^t(-!SER1?OL8 zh2q#kqf(v!JWQzb4=1ZWAjSDtn>^o-8kOq&%L2``d(zy#P*a~W!*|f^@|3xrv@3x+ z|7Q^Y0qXqDrr3O|h_E>Sq2fy7{Km}e6QmFn5_>rR0I?^| z{~ns}i1thWHXYk%&HFz&zwYJyVuKJz8ygkwYn_=>{p2^vO>RqoUrW! zDy&KWoa#BO2el?g-vjV0F zCIJfXf|(6*p)fbYJPYxZFjv6*3GtgS7s8ylJk7NQamgp~Dp!`nO$3SeVKN_KKz$hI zbC@A3)7mJhZ(rZ2Bd5aLZjUHE zgLGFoVcPRKt@cJv)fSs*H93Ry@E6luU7)8;4uKdXjGRGw3&af|E;@SZ@Ia%g51OW9TG80JtaIqb;E`8mj8C1xH9bC6`s;X5wvk{tS(>K7?FJbqvf zW5XO)N)F%WQMMHVF%#rAjz7;R4z>bC38%*7zN)}uILb(0i>M6&vDZ6S5b{ ztQaz)L8MYQA;b7&(M={>{+mb*EW0W$pu+6x=EiOevU{AY?v(5_7=LuA6i~6CjP-M4 z8v~_>USZk*yi&_hDWF27hPko71Er-KdGG=MLrR~T5?`N5yB6i<{msk2y7@HuRhDx= zH=i~_JSU87K6QGHCoYJKj&43(4|gTd&8MvpAA;g&FW=O%`7{%=_)F^M(_xlOPh09! z^_PG8$u=bIDj}hwMkb>_|F`H&Z%>BV;#ZB4ou&V%dg>2lCQq^d6DIm>Q}nW**;WmDay&*SZSc#3&kFwXnu;akMbl# zt>L0|a&GM5KG=)DEc(5ruH(!*Cb2E;7kMhdU_Zo`pfew9%H`o9K z{-9lv)gf;>mnMRe31;VDw0$?07MCG!gEd^rF}u@EIN}1TcHoX(a${qq0MZdRVE84F zyxQc02E(l1W=r<*H;@^Xlzvifbf+lGHro#NXl>Q%3siea{ql3%8we$ zAEzdKMQ;3JYwibDk>zOK3A7?D`+7Mh!^nj>w0)b|BS@B38Z6}=`5Y!#4jgzQIb4_< zy&%Y8Dw<<~<}lE5NOyC-PRSv%iMOaFhr=r6P`>9Gq~HcboSxn^Tgfg~@!% zXFeu-t1JEWjOZ1=d6)G&JAOQ>xWif;_?+l{{V#gagNk!Sv07mz#o^{EqIe`zY;IMSiG$(qF#5uIL-bpyn8!pI`(Er{1Z zT&(Fzs?HV^fv%(y5QQMw)w2EHR#KI|l{wecq_Q(8XQk%lh8$b5d5ZpHu3Y}DjO-KY zw=yyRt<3!apYB>6UPv2E^4q?V^;?6z^hwz%d+C$1{a(6$D>EtE@1-wmsEUhp$9z;< zWmf5qx$cWk_S>(`bYFa`F}g24Ejwjje7Z5ZFFwP>bYJ{JV{~8qB4c!4e5UE>zWA){ zlzs8pKE>~gzn^W};h$s&+u=`U+jjVx3ftja_S@kr%eTWjw4_G+vvfP$y(Yt-bMvzO z|09c={}^nC@6YNcx}&(o!-3xpcYZtkNiHmri%al0Zh>xxyZ2cey~o9uhUrD!4j=Jh zno9$IJ3QuV+hr?Ddf-2MN%t4u{)BxV&`#UGs=wI#Q`VrMo!*CP{^Ek|EG&TEWgU zo#%5N@D-05;P}cY3f1&@L)0}&5XRyhAbhdpU zQ#L!^vRAOleN47)a%X-`ZzY?vBv3DZ2Tg)IXIvQntZ#VG;pi$PnKd|oxG|IY1L?p_Z z+{2L{K%=ZDzioAO^ZSr(@afES($4`JW$pGO_JBrNKZAG+#6@1Ctk3?$eh$zm>tR2q zxkEsuC~K#_{P@6ji?YrpeIn2(YvwQPa|4aCE{3>C7>Tm(hu8-+%6f~Hv#}NT1TiLi zd3}E+k^wZz`US*)fRD1aG;e8WI%7pgqO61W5|aZ(ag*>-)-pCtsR7Ds9JqbNjKXN$pylFp4orUb+# zMOXG~;hqG^QKmJDnMhDezZ?ouI0R7a5oLWw?8$=SA2k0I?Z3?TgXyreQ8M35R*bUx zACBk8FZEBI|Ae=UbET3)+w81uUyy@1|0%ySBms5)9)D0ppw2(xPj+!ZTy)g=XZ%I& zfI5GVzlo6n@BAVn&fj7`0d}Cy-}c=w+x}!5IR9|c`v7(R^nZwa2qT})Tmdr;#7mJ^ z=kMrZ?gXID|0Ki;P|5k-0OxN0+?>BvB<79=>iiEtEEPuH_&B0U%pD5U`7ef;3Do&7 zvvLN`f1DT-=YJoGH$+9=_~;!)9GLTO_H}D$RV)!5asE|^tOP}Ilkm>p@B=R>&OZlP zaRFx0$#yB%1GiA;?_h-@Xk%2W^S_M=b>SUk^&UuZ{vIaJFH9Si>iijU=k<+`w3s^^ zq&R;mEve4`71uul>imVVm}>*n`6K3tyqJx!IR8arP@I1WGPi=bq^R?M1Gft#+gTSs z(D|F1J-(C?dpQ47Vo#jEd3ww>1<6cnqYBRdt2J-n{60!u$@yg-In4$ky6Zr4I4QgO zT|BpR9(gv_M**EjUITHJFcORp8JS0};_6CCk$L2Y5buMySkrlAdexXq13Hg97NRLg zK4IDZ`#iG3H#7IzH2B}XnQ=wq&5*{~ueDlRoc$eY;^XY6XIq^8i}2D|yVU*@+_H~7 z|5*N?Mk_SPuF>F2TH!B}hEUu=pzsHnTOe)#aS=;Yo$uThxJ}@^Lty5M^7uxv1-n>c zCAiSLrTo)~f8vss=nj=xE#?jaiT*HcAzFY=vR0dCrQpyeF*Kr4hK3sFkv<3T*Fg%q z=}q5RIKV^2nu^ae3k1tfp7ss(=o%emR1j?tAtby`i4a4F(BO0z;iYA$Cd7%8yupt5} z%x-OVY&G^$j<0?GEuR$;B&p?x+0k0xP#y^+j;1VU0gWJywUL*}1?L2WQLr-77lY(n zOAlJYN5SONg8J4*{QMJ|k@eZJzLJBqMO!)dwEI^9g8F{T_%iP&~|xOH_R`Wx}~qqv{ia zyeGQ7KGny*btBVc7{7%DqH+Lw4--K)KG5F;^2L zx7*AwXm{~nRlYS;o+HYyWXGy~XF2yl@ibB1R7qKGx%T<$;efePlow{_oh!=H=dVHW z3SgUJBx_&a$fXxRNkdaT1BIZk-}?cE`AhlIXGEC89?4-zc3#Q%<`#!Fin)V4Tgc$OI#xA?}FBh@VySTbvlEHaf+rpy^6mREF} ziKtuLXNrslD{scd5WepnW!wi@EK{ zg?;vv#>^@~anSeW?!OTh#wDj)0aCrfN3>tIoOvs1C^>(W9Zkw3Omcn>i%$d1`L$4P zIC5dm`$+!$@9I=a13{DTc#^5{GRyEJX2l`GCRU;Lc=G2LILm3?f}6}Pt3J)|zM zREhAmvS!!NY)@k(H2X}73Edh??zYlO%#A!Vq6_y1@zd1cqIHen@mAH%mo_NLjyC#% zHjqx)IzQ%`gJcu47_=ZSJ@|h0kd>C-;1cCA+0o&F@_8thh;p4u%GAay@3RCVnWB6| zc5F$YybQ&=M7e3DaX3^CVlwHjr39kR%#QviP~MK>R#Dz(&yoX*{n94sfX+qTa8Vwf z9j(2`>Rk6|rY<1)RV8K3Stiaw@P}U&7Ucoi(T_!00;-h2_hnw9jDFE{ zU*;Xk=*KYkWv=ll1*-F|GWtc+eVN}1)2wzqQtr?6Uo@Rq73KkBG;;f(F&epj$QX^> zKAf2nxqZY^G;+JbQZ#bA(in~0K5Ami<@=~r#%LJ#F%#1;?&{2xFz(|%#fNdXWkt`p zsSV0wA@uX6omoLV_vS2%=iXl-p37yaXhyWGJf7RH2ot-iYYT5`=DYL2!@Upe%|!)F-%Z_kLP|>UE{eI7ceaaKA!tkb&cnCX%Ta; zH;-97_xtMF)@L1uB=Da%?e-VXKR)I<0{?l_5B}oxb}@Gf@SivB@fR;`A9DkN|Geo( ze{n%P=0*bldDBn+;*t(AHy-%N@80Sf`F*=n%v}il(MZ2luk?A-zUq2!r<}|On7~JV zf3L20Wm<8}jQ~FK`-hiY+=V$b@R8p?ea_3f#@yY&2YN5bjJ}!hP3=R$muE)*2`*^l zcR^K0z2|N2#Y-sE^ozTffOs%n`jpEs=zBEO9@HS*iBTg+7l{Y%%d%k@j}t;K*$ z{k*B?DYPCa?%c+kmN@NQNYOX#(aiW;bo0qRRhPW|%dqrEXlbaobR||U6-(n&EPZ!? zrMAgbOPjFNXkSpKQQp$?SXl=&Y<9C*BWC;*RUMUC{}ALgY_=bnFMx*43Qmo=!+?g( z3QmIoanaGR+4pdpfria8da+*W8MCmNh)CG%Bd&e`G;H>Ap)aO$bDk#KAZ(V|JLdjE zM#E+sV4eXQHtXJp+Y90%uVJ&AePb>YXxQu;h)Y1Fuvx>keE-1%Q$LhS?}u?w7{j`H z7R(f&VY9suyM>XM@u2=O*9U0WtajX&v$5};ZmbxSu-S4XmI4i%8BXTJydebC)*leNQG6|bKiLAH=laA!dlqu0IJhY?eES z1vb#IStsjGL^KeVu-Ri`P!_otAafpwONuUX*TJm?$xWSo3kQo_simJ%l$bqsOP|3W zVY5AAPbM?b!7=xbXb-VA3T6eOoor`{LD=kHzyHWJA?`w2n3jyTgEXvp2uR1sb33^aLW((Ux%KcHraFCk7pDJ?UXbdyDk- zKs(x`VKH|u(2lkjVi$;uymqwZXA*(}+R-wG$6ORt>S(>5BntM2b+q$IKMQC_`vYQ+ zFcP1>>a3WX2ehMo2eAwI__UQX=xAGhw~kgcBIeox?P%{pYy`fe9ogR3%^sbuniN1f zT9=VD8z^dS627BtKgr8WM{9_zbgGH?%f6KB6*^i6D-^L3qf$HCcuZ(Vn?hFSf|QQd z!{mui8D-tb z2h{mDiHJD=3tU+b)cH^C5M(>&*%ashjr5&Bo&S}w3`9VkfB1PZ*8{{wUY$R2KJEw9 z`5%XP7*ulpme0}ff1C5S7#DMmfja+v5O)eA&fj2s%+&_!{Bt2L1nT^ESUCgdf9EfA z{w+wnCMvQy)3Y?@x&ZI|T|4@^HPrEn??0pf;`}QSc?1;oGYRkfB{szn=dX`!;QVt^ zu2*pW0amDp3#e4*KMxarbB3%ogB0f%gZ>kiw9#4tqHN z0I?^|KLE`>qFvM4sDks~ZzlgI=lAEDh23?OQ776xi}cQ{e)2!$ChN`X$mtrO>&?{= ztAvsD=6@hQ6h_vYZc@zc7e>~b`7lQTU267&=p&4LH8BHX8b~g&JpX;E`TzF)N9|5Q z+XqxwlP;OnbC@t|P3|Y(Wk7547Q`FENKJl$_(>S4N!`gYR|jZKIze;*T9a`Q=LsV< zxe4M1kd$9Sk-z_AO^V0aV5HxFP-gLZA0?Bi_!-t-GA}5~wk(zTy^GIZXAFG*fvVq^ zx-v8P{v*6}hh1tfZ|4Ndii2D)aj_dRv)-voQ*|QgJ1Vvw6kZ4O#Z;nUpl~kCk<*w{ zg2G8K!y$$Ua}LZM5Q~I49cC-Uhr*l+Q+GP?4iJ}o61R&iTtASwALfIL=x`wMILwMU z?7@J<3ouPCj=4ML!MqLg{uMDd10=S>{B#Xb5Rmv9CjZ8mI}#-J!VHHPCQOtV!Fv$b z3X=;{_12hs>=u~%Ft;tD^MXWEnBGem-$CL8n1V7w;de5cCSgXN%0E3@`xYKK0Oqu| zp3%21ZwY5l4WFk8*JV~cz6wn!uX;Xs7v2W+t;??dW~ zC5Q9v5uCC!^r?weab=RjYneG;Ne=QXkKe}p!9EG z_%)C`&!j4pUQU9$&=Q>MB&Gi*Gw0+qyIDV@_yh1aOOo|wwOAH&$AFUgrg}UIQeYVf zM%#?XZkFV5Uzo!j$>F=qoE1S1voJFQ=!W4Mh}9r2Vw%%0aJxatGiIX9a-!{vuC17p zY)rjvV#H!4r`?&+?<6O=jVIkl6!qH9a2-H$ zqxI;(Ygy!)*R}}l4HtWVWkx?1ds5xY(3~gQ3vJjAsw>)l8`qTCxfkX1th_|JRd+p# z&j4RtN!IHA#ihNVWT>e&MTK0FyFM z_#1LxLc9msPpMbM%`heQXkS8ULVnh%RZ+T`q-75h5eJ1=z-))u3gRM`DC0`K zu^eVB#Au+ue!3{MIY(?>nx654R8@9p*C6u*a2>|O-4_Z5l(e<{MJ`XzXe9-?2(eF4 z_!tyk4wLo}+Ja<(&39gBt|-mo7tj}pdM9a*GHW7Ukdb1H&#$X(kwiHTv@ITjCjg-A>I_G1&n)y7YShE zqBCLuSE36x&Pt4g=t)vHkSK+@17Zq9~QVwaymP|#-wWGw3DRwk=X(YKZN-c z;&)+QhiSNi#|Mau&WNA5A`ATFk7mmsD9BNRSIAL<)$``fu|IW8>BPUABx5laBIo31 zJSe$}S9ini$)M<-ZsncWb(lrLU+(U&L_%tSG(3NivH6*crG=ItHW%&Lpm09S{Sfzn z#Dg$jKx_x?$5Z6MT9i-nurMsY&KR+99Z83;jJbNCa4yWr5Jey^Vk2(nidOaqD@^#y z$SY^b52%Edo|{@}-Cq06H28EyGCVUsrWKxz?U|BC_9-b9cFAY0jW+ctcQpbj8)s2p z{h%h(W?g)~YE%tv3~W!y_s7TGgWbEt_TeTWLxlY4cJT`93hWO_fikjUCmdvV;dPW= z0m+5-SUO;AdC8O+TSWP=teo3KStbCnM`JDmY-}M}$Ce^46@rqFO!X=hf@jL57OqN} z0PHj|oJ4Y{pOy2q1%KsK(dz2lnxw98(Ipj{0jCC&x+<(x9VoE zVo?Q>?f$L0@;XuLP`RZjmt@7dplq*X$P;jY2{<=g1SVzWEEVh09$m#U@a-YVo$GPA zWR$7gfM77j{%QkEN;{OA7_VZ8%yT?eGlT8jxIST0uMT;I`Yo z+){WMN$gF{iZ;)*c5sgo2o~)@m4X_gtw*nZWy%?Dk0^hd6`e22vX|Te<>P@m`(~Sm z#a!t|=3FOK@ea9^^xHx5S4$84%FokepFGGR)2&1^vLh?{ZIHu0G`|UQsBh0qcC|To zFwEhW)hvoY(HkjqIV=3Wu;#;2iF}q7EzYvSZ$sq`poO2?H5h0bvWpm+UivsO3sAKE zK-1MNOd54_P>JlyiY^UIe~8LUKurg7Z0NFY9-3bD1QBUa)X41kj;c)_G*uN>ib`aA zRy3MzrLOTLt9al|hYeDeYPtvMT|x4Jlu}!_vvxVlH0f!Q!g|D-Q7gIoTex)3A8q@L2pCYal`5oBQH>*AjV_pFj6X)bF!lvMTlC?aydtvf4 z;ELa{(M#T}+Dx*(b`$I->YG*J9%9i+cJIpHtoqrq<1AC7(tK_%vNS7JE61|ClB_05 zc3Q?iL#2QU%Xm*#?36%h&Qk<9fmcd9!TSv}2BX59?#qhJ36v&3O|TC5N!kDtB|b$X zMIO(}`%DC7;OMfJ{Y~Hp4oTL5^kOc}1SKV=x*3IF0BKWkPAX5^`%H|$kmRr?D|SRK zImpv?3ufK|$!qOtWBrjIgyQ2j|Crco>Q$V)=M#A;D>f`pZ}d#eH2}$bQl2k?Z|O58 zVlKfYDJ75wUytSIK+%~dr5#;eZn$0Hacorez{1w7T2Ejh<#BVh z#b5ZgMJm}OE3Zxs^O`R)|2gnpBgyJDjh>6S`k(m7hq-_&?Vg?5ch+)h-prL!~F(I-Y^prQ*zo;F(8g_f>i@>jO!Oxi2hcnJAx-m3PF!))1GWI1l)SkYp|13tV~zlw=k8?pgzd zp!?LbJDc+SJ=DY~sN`^BR^9~3L7u;P>-ks@#3eYo8T+MC?g*uSfH0(e7HYJNggcrMfdrne~P!C$kQ&R@18cDvB=yUtLM|(~K)j z<@c0oR=2sRRa2HO>%wA{isf!u2ftJs%d(WK`aGM8Sk~psSeTJOmvWmzrA?y5Qm)P+ zD9KXpb!1)vx|EB(z?2ZgMNF4+9pMUrF6AzSm<)6&C%?@rfBd_Ne_6^sEmf39!bW5^ z0Kb&`I}{8k>o2;L`%9E$Dfc}J-vV9A)qIinPXTB4+no-Ua(;_Or%Ae$J1$&p$fr)> zQmz-uJ%F~wRS=f}UCIqdOqX&maAiHvrCeZ!_o&1SOSy}sS!F5rH8MMaF6EARiJ=te zQmz+74-glfic7gGxO^GVrQ8aL3#fzaF37TOl9WI^dk}dH0DdJ`Y)hSp3#d~A zC0250O9RPDZYByB0$s`715pNaCASS?E6|l(V1qa8q~fgP+K2^N$wfEdcR*KiO(F6@ zT*S&(a_3uN{{OG!CYuIN#COOrSjmmT_6SgPWyO_TZ)>7pB`2O%VI@}<-noD}U?q1Y zb}tv(t4!8U5bY5iv(b^KtQ4qwR@F!yYxtEYJp__Br>v)CvE`~ZU{!v)IhepVF5;MyV7@DF-d*QqGNL8F`5s>JZM)(i zt}U_~4wMbv(yM${dGVJvSCcnTKe2M~nSY+mTm0GR#>l&*X@_cA`QcFc!2jlyl>C$w z?vbAb6>m(D=;$T<=l#1ZLEd>E>`xm}>}h|7{q=>B7kV+aictgpvKX_aWXDMs^ZwY-EiE z;$lrV;fBDS4s;W4F2rn*+-KSTZ<}zHjt;16Tf$P$)s(YRU3*6=9js8a&>B?VN$oKw zK^1STs&7oLXL%%lb^QNaWU)kBPk6YuinNfoEgz($_ka_oBZOW@x%d|s_JV$srkBda zo^tWDSDASMotkbk%e=s3R9cY7Emd;|lZ!r{7bCw2Z~(fARhy?ZivAqwFTt^&BmMaC zxmY*yo||6xCTv8XLb>g|L-a~J$+-12N$e_Qn;tGQFa2N;D_aV~Oky5CQ%R_%`3 z7%FRr+VV7S=o_S3j}g9ooYJ)&&kih1S7BVM*|p%tMUN1((W3}6wB6oHubd=T+P+** znZBCq1*0eOypQGxxjW$B^V&)#5f(*rGv8T~addR&#JYP9>7 zK_nHBB$H9iuOLYJj9_S$Pa-v=8uF5&?1=bg=w8-{q&G<_4z%8k9OGN)u|r7O>+3L{ z)C#qy9w}Z^yK5!+wX<7eJSz170KC0d%3d9%2p96>0wKY%YU7 zBh1vh7+{=8=~eQy`8m?tbvfTebY(hO9!z`e%6(z}&o?B0`L<>pMu!3Y>gJd?n1BNP zOzRPdJAi(0Gy2V#I}_*!H)|js0mTihi^~T$XJAnWF1IJ*vpKi9CG#kp*s4KNo#oC`Dp_^IVe91XXMRBaU7 zFE!Lphmd&-Xaw+!P_7KQFg}<0F7Kj(qIOsNVy6TbzcCd;e`2~?qu6k%keDt;r87{| zKZK@4GT6RlIhpl?k=zSojl+3j3X|Ei>RmZ*&7rd zNnCnk)b1zYb5wSS+DVnwo*=bvCAEa8ttFw_`!Sae1`VpL_A03*mDDDQ+FK+vL#05} z&abStmDHJ))Rv3d4ifsH(o59lRZ<)C1F6^BMV?;z*Le>Y6Mys1baWoiB4N1MQ-5eC&2DAC2n0piy zE`u5TF$Czm3MR3Re^zg0D+wgtfH`^_U#Ni&RYtMmvJ8k{7!@wqZ)jHI*`vvb$U7Ph-Q_V z&M_fI18LTCn$_rX44F%P>TV~}1+=C&LtH70v_aDytb#yXbP`hCC2+Ta&Qk5pQr&Yt zVQz%D9B8orm9SYF=1`jX%`&cNLTM!aQ~Pt84zFMGc*4W9XE#q);xBf?a?8u#1fP-&0Tig>V{gPHwp%uN7^Ghp(+A5k?N;O3Z<%`aMr5 zFyd;xdjISZ3zb+oJ8>^WlB5nGu?l7(#C$Mv9ZYv?VI5X>h851urNU1%&3Lvc6_#OT zKMH>UzcAe$3ImgvT4Rofzt82W9~TM-89H5!qf)qFEov{C@?o2iqK$?+)>HX zCSq3OotIjIa{+a5kmE~DGbRLvZpFyWplE)IAy?ee%DZqDyZOlCaTyEt%}Sr`j%;(3 zD?ZPXC6e`^Pfn9$SA2+>nTV5b@hOY~@|^YKf_GJdLFaZcNxV0LmxMl@#w$8{uCTnb z)F*AhS7P=x6F!#iahR7@IZk`Gly;;PJ6VA8Ct{sb#gd0vN;o-R&j%9rH)xObiJ%M; zts-xNgnY_wiWzkwO}1A82x@Hdzh5O;$P zvUn~w3k=If1x1OxS&&<|8P--I)@cv@3KXt`Spac8NW1~_6vUIjwU=dc-_TsC_{qBk zu}NYgiWh#4&<>!FsX&e&Of!vOs#B#o?>&guR{N1z1mH1{R_a_C_I6<_5rb*L^#Y)? z<7G@;G89=-KKVd;zQn|?E1+kTQfq&L_+=ujVE+2`}#P2Y#qV_V-w#&QO z=NfTkqWXljUGx`ruS7=Lu2v|sDYfkq$eaj@npwKFow`-aP$!^5w|b-?cY;(<+-frV z6M?$b?GU#Cb*mR4o(Hajv{Ay$l~duZc(5SyanN2rpztlw_B#4kzMTQuUZ+8H2g$x> zDZCvGdDX)IC4+W+nE``gA|u+%(j?a0iiy(d3ACjdD8F6HTTz=0B;7~`mrIWC!qnT# z2MM6?Q<&2s`T)IMcZO}_YS8Al6vWPK8Q!k%kZ#H4ces@J9%emi&j7t$kA|wHqI#>{ zu0KfMD>8Dso(N^ikO^0`$Nk39*r4c5OHaLBn?jv{3UAl-1-T8Sf^xggL;qZ$x9bLo z`9N>i(-3Qb>mY6PiJ2>>!rOIqLFB5Sy>_AS8PN7Rd>;==pzU=sL=i~-Y?i{?wWj=b z1??E#uCFTHu3?j?#Vx)j*II=li-)$MHl-w8M+UPb$BSV4{LWMk6kZ8a>koz=pst){ z79uX7!nWyGkP&ZfZSyYjuK{hF6aM5wFQ9F6Cd5$S?|$9T+$On&g9~D##e|G_*CTYf z2zIwQJ>6c-wjuM2doTyBqyGfwtRrh^@j%yVd`j69Yl=GP4xkwrM|yz3lADX4>;m&U#P`DV6Q%upvJLc(EeY#UPMNLN1sS`g z9^%an{vmh-^o|XN7zp%^&4ri^{2hDH%rQnva~BrGYDBNaJAk&NsA*Ra( znP%J#u@qP*G9#>^r9F=7qv zjqH|8Bz?Td$So-dWpWQmxg`&i{s1WIYU#l(k+$j;>I77HOAg_dNSl3$?&m<;?5J3} zYY4Q>&Vm>Ul4qNh@Rod-a!Zao-MOh9eDkpk)4#~#YfqpB`jT`91{R6M;V>UVd?3vE zFm=<@T}@DUIm~$wXM@C2m}el?fRPWwEHm3vZ-Q}CXXwAh@~=+kgJgco%LH?M8C>Lu z7O^f;3|YSZg1MhSa`zfO2YWM%W3Z6wnqNxPB%4ipYcWiExOnUU^l zfWm1oCqkSc%vhLV5JQCN4RbNXTw&V5+z+u#m}6nyhIk#sCDX(WT&aFgx{HAhGWl+4 zh2r&Iqk@QDWbCoAzuQqjnTQWSz8}zuc-v4Xpn}z4I1#@P+3A4WUx0eAP$QtC))bM_ zV`HsPBp2z2%h0$(v{Y$)s1#5^Hj(Ma#?A?p4yvB+(txke#84@q*dEir$c$rSZ;F!C zXCMmwf!}Njb*32=lrF5#Maa&OOuRb}>tr@vKxO+2%&(5ks3o^m+<7S)cY@@3CZFog z$v`#iuXW1TbVY%)Bv}e3r<-~&n4mXI{uOU7wJyIR^yB6o$h#_CU>o_q1PW`w#In-e zx0x_aVVY&9yZT`22{4hV_4(IzoWsBC@sLLg8TjVHe2>Hqkhm7+@|<)x6Lh={reQ7O zAtH7MOtsu}mktsSz_frU0NUj@go9c@Src)vbd#)n3}_pjgZyaViXSzFlDSn}N0O%5DBy6~>FAJY(D} zVwrt=o4C)gKiyT@w#=?Z+#E8AEN#;8?KowY=Gs6eF9B`N?;ySrMw+u`9^DmatH&YQ z2_yGoI>cnqegn*MvrRZyY`@ba^C_|YIZ2NpvqF?Ug!vZYYY-Q)#BQ$CsFBWr`jwiP zxAm;;npzu2W;BT{5tHJEry$=AB)6GV1vgx4Wtl{?S8QR9Y_K%BCBf}*9Y;`(?G$KE zf`&f_rWE7jq)_X4IpCnM-2%$WKE@n%8ZL6E;he=aT}c_GlkP7U)2sIagPSYg*8`>dGc zZ?b$A-q0NMdHhrUB8%lUFFloFH*%i=J+ES3&2%>f=y^%C4oPCB$9A{0DQr zY7vA2{+t$R2|cQUE9-$CRdH?5C0rTl;W;helfDz^Q5F4b(+oh5s(1!sHHeG69#wI8 zope_R=us6HK}-Raj;hG5!ve1(elz5H=eCl*MHJ*fq>hKCyAy#PRdFZ8t-{EGNdG|m z3G}Fn9aheKZ5QV*5@T{8Qlc(1HK0dT+yk)~_@gQ=T;zoto6btnk)tYNhv6ik=qi)& zM^!Am-3!W56&sP2ZZVNr#hR4sa!rOIJrL;@D^$b?SrycVmIBBHn>`8|W(H zcZlDBYcFpV9c1PruG673!HfC1g`F{RBS}pgrn`FJB#Ds*a{QEgSOA}Gl^s;}4H)FG^LnN)dOe%5c2rQG!aN2a?zAi2h5g1as=Z7qBE zuh4Q=PtawO*^$Pe+{26=!tAXc?ks&OoW@MMHYK&Krpo(!{oR1&mJm)4yIP@n zM7()2eZ|r*2``Ao~^2+qbqc4|AZm?{kP9z}z9SB+xCV{FMm#_m}*|l@H5j zNCVy-AT|K+4iLM6uTHj^Kql?DyOVEl(tM5?q#8EI8aCIC=w18O-@c?k=OID>;*oMBsE^1Th60Kl1LA)Us;xO(oL=q4O9m{eBXmcNShvv!` zFr7$`eA_1Pp03v1Nn|@8>I|zX>I|Y(a7f_a8`RFhb*`Yw)e+9(DK;8cX zi1z?5ZOMbKhUL#PC#1Z!2>I*C5N(m}{y{@+6~ded)YeFdvw-~Rqi192NCD+-aijLO zsrkIrM#h@?=v)ER;vR_IKrPm3neJ)<*X3n1wQepW`s7!~IoGMo8|xE}zVg{g;m0I( zL8VaeCCtYVZ-dUih>~bdG)+eEdKBez0(>Gkt`(s*peEjj*aYGtk`UEKtw5;#kq2!&Y4l@;zb3mdF%+YPo0g1*i*F#(kG_-QMl_BB+D&{S^$Ug-& zpY9%PE$QCVtD$fySw(&*$oL!qU1T*lF5Tq;KT-HO6f6_LKMFD$o`RrE6xJZL8YD}s z=)pwcBJ$NkRQ?E+w~O*$1xL&mW%)jLABwwyzH2(6Ej0vj5z}`}cfoB3B{j_UTolV6 zvNKuyUu!A$9iGH#>)9nf4?LXw{w~OPGbrrw$EUm2AUUm4VP&dN{Ja%ZKF9gO=fp-| z@waxlDbtYZ+zxp$rlrn5{L3x!yEA;X)5=V0(*Y9Zka>lb<{AG^}SZ#0>3}?goRxzmU5P;zke`u|zGBzk%BYikF&+ zUuITuT~Wq~`FT`%okZS0aYb1VS=ndF#8T_G!c@{+Ipu{S1^HRmND1Wj8fJ@}u0R@FSt7iyN_pGmXH1veq`WzunJI$gMb`Y1g?~#Z|3oME;+0`I6xF9m)V9#qp;(5l|^EOVMa$sdD{HE2b>i z2IzI(thmC~KQf+5@#dS5WH+u{Il0lUXEQ)cc02&wWOo@Mz=zfITuC@&-7|<5twB;h z8n6Q>YydO#WNrv3JQn7v;&gWzNEE|-0P&(QePJHxlJ4#WQ%{89^;>+uf#ras^3hA= z!Nzsc`|vECLXvAQpF_n%fleauVdFXr5h!d+(&w1^6vQPZQN)${UDMs6AkhP6FhqaQ zc@WHWnJopjs=4`SM2ip7>CElOEC4#4Ik+1!9S|1@ozwJ%>j~tqy?kRdEiBP`DbZ7n zvo=eSN03xFkbka6_*zhOr3udEuDcFfsPi(rQclIyE@qx-T<4;`Soj&S)o8B*g}Y!r zg7^R=*r0a%A^s933#M`RbawvSw~LsNclrsN$<9_N#El>Er9 z$@ea<{UyZ&5W|A*kvcxoIBR)7>i7srg?IDMCFC>*6y5^!9K_QgF0zTIxbg?wUeIj= zOp`}^9a~ye8(=B%3JJ%Z!eKKY@h;5y5M#lZPhi@a3UN~XOKjuf4W!Noe9|hbq&X{m zTDS~Y+a|N86f#^XJ&Ew+qHw-csjRa6!>qofLcOIzy`>_ZrR=%{J3x4Co5tmaw_@}^ zS`wN|`pHBqFJb7WG}i--8}9ATy%aZ(_F(#rtoD;4m_pF|SW>hb-3)gvh>K!p=`o$9 zr*x7Jq~?ZJOU3H0#<}_l)IP+20s3*&@u$*;KtG$h9^!Hk7kT|c>L<9}K);Y`c^bh~ zP<)FSp3D87NkJ>R$hr4hGQM%APh~`qC#nxWGACPU68eGEbH>OAQpMYikr>Q}s+{^m zR0F21^fygHPvq)96qAUP{Ix%mntv5!&O(<;f7LiMTZWv4BrT%sw}8T{VYWcLE6gmI zKOue-W&%vxo=k^8Tnr@c<;n!Ou^_PuWcztljC>8|bn_5>)TJ52_jpEy zkGiFeGaeftx0lX-9Lg<$)87}XWulB`1r+|C#@Qj zwu89n=v`~rJKfahw5uD}xlH^*hRfG5w-M-Yxd&o5h>MtxnTPaY zq5($8m>C(Oqh)*eb|Cq+nUzMZ*r054PP9=l^i=&&*j^N#eEneV>L~SGH{Ab^U8hqA zQ>sTu8jbm(pl~hB8xR|W*$C61FHb3u_zR{K;yf@T<8*9{sKvik7Id2W14(Y`XZr7Z z@^9~@{9C-*@{^TAM{<&0xu7eHrs{bYm!Iob^s0&ZcbMf6l{t3%rr?_L7g=0;C513NK4VO0O5S4+aqa=r@wCJDijsbdz$}EU!ATDBhh{`6o z*MJ_Pa^wKQ{6N>n&xbbWi%kwu`A1qz`qFr0&IkSwl{Z7dfbu0riSsavq#$yL%1tQT z0Q3-*wGdB=g`|7bOZ!7q{6}A|gS137ODU(mHp6n1N`|zG94+%3W_}jC(nM_s5;+5U zoXUEsq@0Yoh${<$9;XtRB~C2$;y9JJhG0sLQ+W}YXMrB4l07KhWdc1;r6a_NATBy~ zoXVQndNSs9T)qbAaVn2PJPPzUl>)0k#5FvYoH$P9nls30CzJK>k@*(raVj+ir@LIB z$ElnMaRP{ojvl9imnDaoDSyI9=t}d-UCBE4C==v-c%x`!{gcB~o|pWka}OtnVZa}z za&K7Bfa)A5ahS>qX&yODArV`lTC=sbPhpAj77Otb( zzaaAy(8E*?J)PH)KwQN1FcqokYZYp0-{AyZ=fEQ|-wo?KM=}czQt2ReLD5c2*R`HY z9&M~0q{0Cn`b9&Or6@JlEs*gh!U3#eF*pcwB-YLX$s1BE%E%|fAsj`7$$K zr74b=R`oBkc*7_rRCked4TdfQi4`!PLc9ms%hpFTQ{t@v$^FYFS=C0;c(U6u=!|rC z8qj@^cOYH?okZzYQ=iB zb13^OKqHue4qse`W%Nqn=ED8R-U4)jK4uu*5a`@|0mStHhm-mJJ)wni%G;9s=Suz( zzkC&qr-0g@&||%K}(+UJPxOQ&t`F?i0L-WYj7_B-G(U`o$ihXx((AyL=spS&6Tr& z_OnaEoB}HBXGHxMokgzF&+bJ2cA$i1(gl^*~iGf2ehI`pPlX+1FdLJh*NXd2cAOO@U zJ3zD-Mx1g6#1x=T8E6wL679e#SChU{6l6zfH^es}E+XobO-j<;Q9zw?g%zN&HOU>^ zH+9MpNDKq&l($3N2E0?|toFkHn^PVjSHUUQWA8b!X@5lrTTyi1#I={B9a>wLsp2+C z1;1{Rv4#O(&usV-)z5*R<`6QMp%gN50z{)RY-@nH7|`<_&V(Bb^n8bhAnq4t1G2jy zJ_EYH-zOY0Tnn=1e1~oF*pQ&*k>@h01Nv|aPrb)&v z(d0q@y*rG$-;*8$^Im{))f7(YV%0Biv2V7bDE zlvRQJ&z1aT06Jy@w->0r_aU|bwYMMQFW{@wC9Hoyr9SAt398fV0(NnMR;N#xaXICS z5RRu0BD)x9_Q{DvB7tUq9>lr8sxvgSRZdxTc+j7Cj#cMIG_D6~?{$b*f!g~S;z!^g z^yh}vY1xX~$%DRo2`1!0UvCmG90DCv2SD@@M#j_|Ag%*CrUn-1&tf4MQ{NzcqbSIj znm#$*RRM7k(J{4?a6re@8CHlReMQ_))I!J98Awb4I;K7b@hI?P>dYs+@FAx2-yZY_ z$W<6qKg8bqVpIO~LI0JNg)_X3@`+T92mNi*IN~nRDZDj_qPFiyn6rSk@6`}j0{@`@ z!Hn=-jI<69`p=|~$%B3sLXQA_(0>Q<6^M(NKIofHO?O8Eeb8SGaXHWj{Ynv$2mQ-j zc^+s#t7i=oaRC+fGaj@Tk0Dp-Xa6AoCs4->B%`5DP}$Hi3#Tz+0Ilfd5SIe2=n9C3 zfi>JQmOsJykn+~#LI1AgFAeuG8Xo|)ckpy}xPjU$gg6oS2Yu_XI(wwyf(QL51cn23 z$~zzy2_sJVABgvXI%S|u6SPio%9=A+<^pxf(;&KoxQM7zUIBLrP^au-1qdGWmvi6L zDPKV1IiODYC&cf-JLP?*^S?Re0df_bvf+hn-Gbn+Xt_C2%7gx58@u_&L@LOGekr5A zKIs2H_TB@qsw!*zy*Hb4xFHE7xq$=_2-rab77*oP8%HEq8Oz0vkU&NRgkTFA3HGrB z?1k8M)F>7d4Oqt+gJMUpjpJx+V~=${N9X<4+WXvlZko}r{J;0!Kf1Z6?6%fkd$qmx zJ`*YW8MMAE32Bd5sOn5Xe}Afl;EK2*{Ywe@7pUPmk_!5!R7=5CKbJoR z&^P4$N?Kjx@`k;XWZvyy_gn>iMAuwjNOfaZ0Eo73k^Q~^Dt?jD(_p)#-G+yNi0mr* z!TMBZ=1QqAw#Zf8;0$utkyJOhi;LSyyS^4GKm?T(_-c#naUbwlPEBYb?eV3nFcrEf zUpNl_7F<|QpqHa)PJ_|E=rwOv3!U+5cr9c~8h0l*k8^Q9Y4;{>#y`bB`=9Pd_9pEl z)qLTqVM~T|Wao`b@0V(%;FW z?tSEJ>XN0~cggq$NtbT-sbe*ol#py1%W@BQ%Ski6l@^-)D46N6jqJ9GduJDMcU?!b zTe?R$t)#`hHqK7S#rSu4_XhR7LfUB^?eF3;0;Xgfw{iBT^XS_9yxMFrMg(cxSKRE! z#Y9p3^Nufa5yOj4Ak+eVy z7jKbN2n7W=55={Y5<)0jvAMJ;LTJ0Q@R5>K2n9KNrpj0_nb<)D>{;YpNKzpG$;Edh z1#;-wm@6bFgsM|WOJ6yp(f%RQz98)YN=zhaeRp$l7fI`Tm5cQx8;@R>LR!7RkAn3~ z07CQ}Kk_3P6@(yP4?Z&ybl(1^Kp0Q{9Z1^bxm=u0(kAcWVmZlya6zhu^pyjF_6HpA zKzNlB>quH({<-X1B58eNxfnyT3f@&I5FQf{Q1C{`xSz0RBr=suN03yOUd_eja&tIu zHgNGW$r{bBh8~d@q=rDjD>#omnk1E_lem~bN=O!!rDt-th@`Ugc2@<9Z2I>yP^c_@ zlpL!_DoelT;#-oHr8hii^KRzKbf)07%aY6DWrsC89#w1tGQc28b6tvLFZ#fkbWcc zM?TPQ|AMOmcOQLWSe{P4gUI_klFp@5xHyTl$KPE+*`Q%NYRjpSzs_M3*)P3JY@B_Q z@?;px^%PzvwOt&(5!s)5BeMUmWOu@GePJ zfIcpNG!k5uxcn)&dR>HY7KMnIx_2Jud!EN=P;p-h-Ah`$%cw z9n?icpVWo$j-NokM0l5zaaWQG?}xc~h?J0QD!jkr?km#F*{(Z1C@5>1jO=drH(4Bo zg!Tz8TQu^Rv?M}XE>vibz8E(+NrmrC@723C_>PlbPo<$Mb8w6C5Kb7P^n54|R@1;yVk}~h{T#O@Gp?!Y}hI;85 zLi=AQQ-uiaN-`ZSnPp4L{ah?3sn8AznaFigC=l8`E+Za2DDXRO_93az4hnFfnrkmC zv>!f^7DZ^^K>lk;D)EAxJyT^Ym?5G44S7E%DUdTSCjgtIK-P0{A<0R+zod|szH&%I zXy=~fkoFiQ9wcdfL$2^6gGgH61TKC{vO;@Z3TcrYfghoHx>O+`%q7z-l7bNA>k$dA z+JVqW-djl8{x2%`i9g!bDq?kDVtNFmc&k_zo!SFz!Oq(Xa7E_NrW&<<+ADyFO&k} zm1*MQ0a8M;sL=kJyDvy8wEyKgv57;=IdnmVcG=bJxge>~p20;0$qMZWt8C`YT$#>< zcDsBTLi>E`J5TDAzdf4W-0nY&JqTqnImXipI) zdL3LQe;LdCBo*4J8xh*68xh)jlVvYbLMl+9eI9ppBo*4NTzn=sBDA+^Abg9YLi@L_ zX*|TzG(x+!hNeZNR+8r!l8V$IAG3d_kkGz~_t%m3$aV0w7ux%!fEz_g5!!zbT6l+& zZv`zJnCi*V;TAT!7L%8>NB=f0oF<4@p?zekh2UyHFeri0K9CwFlT>I=OSKeS^>z7E zLi=R$o+z!(b9n=}0-;^=kS!7j?LEf12Ucji12$zJ!ekNFk)1_a*SpHnSEa7u=)M~l zz86UD1{%JGw7W>|J??OYQg-;a?yw5kLMfWdZl}5&`gQUJZ`Ki`=x|jXRDX>GwvYRa zSI<-NxblLEf3tc1iBh%1 z-8@JBwWP>S(ueO|A%NY9aUZ*R;or!3fHbSkeM8PKN!qLJZ(w{Ke%F=v=6Nq-G_N36e$(E~)uDHngM(g@p?T!+0cR6-G;HiZh=@@D7`&k2Oj+sR42x*79Xw9EdB_-`Qrl_WH7j{~a_S?Rw z<}U-;6i(W4&p|cfzLm67c0tV-1^7lt6K*T1DLouzjWi*zu*U1j_Ic9q(vpRXf5!GRSJLplB@4Hu|B?p9KuGy8 zv@FsAiISS!Z1#VUHXBk>v+ES>AJS&SN@`B+&B@NB$qgk7Pv3}OFw&scOhL`<)F^2} zK}pR{=p2%U4=kt|v?Ccv!%GTIeI`E=kyP_=62pOX05wKIl%(N1meefUnR9wc!*?oJ z_&OCxnlL6>P;(|yM$+$c3ThrEv!nyZ45- zYR){8Zjg33WuuyvjEkfLHYr(HP{eoANLhoZ^-=~^(&XJu$wF@gBSo5gO;*Xm7d!+s zY4Vn|_roB9O-aLtlq|e&FlUdD2E80DuGt(Po1{_2B{lO5+dxU1LC81shu%m7L0XTU z2__{Csw=LUFagj=TWnNPGw>+hlSXV>Q1j5nk%*+7A*vXaOWL`tZ_Q;T9I{6mm0wb` zh;oufZBerDGH6B8px;M}7tW_=lClOyi%(m*2M2DG4v8#mE{sGZ4Sp3!r~i%sYEo7n zSkBpu(~U?&Agd4QzNE=Rd2u!uk`De&LCtCVVIh+a-lK5gD?=g?Nt3IYGV_=_k|yV7 zmDGF;;Yk|Ozocf2kFiafFsz^^hhdPk1=qbMv7wYyG`3{n0h=-mq{+9?+ze18X*gq7 zLIz1AwkxSQYkVXkY1@*LnmeFcNrTQUuKDA>?CBtFR$5ZC`*yG%(tbM>){HtFw2&rT zQ&RIFD3Y{4^RN}vN!ovTVa+f)BWXfz;ljE@FbGKTt>{D#Iv}av(FHXXV~DvRWqn-` zi55gR?H$iCy$AL_sJI|1=b~iwi?>&^dN0P74 z_Mw8i^p{NeLt(Q8uDoYES;#m?;x4Z~vw4fOBVM{AeKR@&>GyLFw9r@{6vw0Co|p8E zZrN0~`wmYW?!BshO`^bd2U`sNOa;R|cwkZP)i%aQw zsbX|njHxiIF#&{ zS%K8Kf94}QF!JI6K_$G>cAoyq!{4RukgH)5a19(JIG2nEr!q<7WRxp4r9a}2}L4@he<*v^AQ;xpz0$tK<2?wX^JU;B9Bg2C%02=Gt%8- zlt?HsO$J0>PL~muUZkm{qAa>g|DZoI6*4+qS(fUnohFDEOIDG{ObfHLR22+0$CIb9 zA}@|j4WK8}WtOxbkf6LjF0(_C$ZUr{1VVaV&T+LkDKXb!#N8h6Q0Q*wIRv`f`QZvJ z;Z>(VCXa1pdnJSgWezd1=OC(Ivt+=5xvRa}j%nmujSg6S0_=bl_WbI$DT%C;F5`GxsMPP1hr zBNxn{m#Xiiv15)Jv;Eeys%9@ZY3muY7mPfns(QZ7GOOyCku#=E8`&<)jzQ^eR5g;X z)K$0&9So>r)l;i0Di_Q;YSz?~E9T8Fn+66VbB_6a#kA_OnSzU{$IP#uH&yS@UAeBB zJ>#g#IrFNkDyu4{lLtj|e)aU}6_s4~!1R+wg2(d~OshU>&xw2gmIuhF^c5wl=I{{Y z&p&zoQ5Ey%&8nI&Em9jdvx9eJn_ay%X|{d0U^dyLRSM3isAiasnl@)%g?%ZNl6yfq z``nY~(o^07$Z=DvXWD|*RmVvQsz?C}XvbABoYPZJC;_na|G0|dj;WYu>zH0Ke;OZY zOJis5$upynnlrUJ{9xLglc!CcJD*zZ;L8AITxpidc~h0tq&~S! zwa8nURTalfop!7(Hh)&twDfxlOsklcFUgQ=dLY1_vGM)nrBqZPBlbD+*Zu1 znl^P-)zl0KPpp`F?7WJ~a8^t4^DBYPGkyMox#>A++2FhdGP|{;a8!FsrB%ndoLnCR^PO#nF~~bj zSPeJ4oqIBLX`j zdHJPCxfk{0zS*ukob{8&c3IDR*=60wWwe#HG}cm6Mx{$%jx=he8{3>5ff)71(sU%N zM-P9B{HtZF^-?;fS+sL{WvzYWnPtU{!!JaZD&&;)=1eYG$80c z+spN%NpBxc7R;Kv$c@t9^4uVKeKgYo+iA}~LI>@$JKEv*oOO02ynW0G zs$&+h^A*08)fogIHIL<#`{t9sM4H;6(&Qwy$m;gUYzmNhe6`nqGdjwT4_zuk_su|P z7o|(RS-yGCH0TVB%S|;H>~A2_0vXFmMR6hQgy$t_BDTLE=UGkwDlqremV+v85~X@q zN)@Lx2nvTLwe>uIsnS)Rzn_wCfq!jLKbgvc?@glKKy$cWQJ%|EAqg`j+OBAS=41ZW zoDR)oiM_6~i;P<&V^gFrdC}@pDY(40%$AgarG5E{2{VYsO1(V!HACux$G~OEVx_Uy z(nZVzwUxo^ppE74ju=(v8jLMKTdW{z^ysQK5^k?Lew8E>=A`S;hB`*nU2RvR^6 zKh1{+%gU18@IAfgwxwldUIH!^vs@~{TgV6U-~lNY-SqG6*|c$ zhqt$HwuuQFgs`|N@cPVs}HUu@g0|t7XKCii@PjWGpn-{fW;Ni+Fu|b!|g6kD$)8q;R$sR4=X4 z5`HDG2Kc7&NnQzmhHYxG7wvl;co7vvkSdiJJ3tMT+Q>KGNvUDBltbT=qGGQvPx28^ z{*5ZW1|8w$PcpsA%?Sywj|is%8N59I2z{GJ<=G}X8u$7{{W@P_Edl-&`?=;t!E}Ld@)5K} zzBxYX^)-DE1!y!}7fkW``9Qin`8S!p=#=$MWo0tALDe};wT(J`p_$Ly(~K#uSDv09t31c+ zQ%8wKLJeN_s{f&pV(^E;@=Wh&Y&F=QlJrJ^`qBn3f3`QmoKz3m_x1Anxk+bkgsW#x zBZs{uZKes3+~U^>r!CddcuX)eNG_A|&w3_wVUo(HDEscqv@U_R`@(P2W9%z?$_qr; z2FsqBy-l>nlMqBhQx(RlWt!*NfqlEnp^|w|-j9NT{acs00c5rgV6J(`mS9vHnrf^4 zBt+`|5e`L_ZwFO|Iv@-PBwsD?dnOKf_*t6{@J@y&Ekp+b@o~9fZuB;N1c*sa(VB$% z5%+Q@%A>eSA9-gL$w^ATcRr$wtP}cmU|#ctPVFMo*kx|VCzl1e@A%o=QFASslPX!k z=EJp81>F2{TSc}!5?&IOCkd5i@~Es5thJI7Du#V?=1Y+}NKT;?;~>ylpAS?tCa<~m zCC8v%!(_6^=23YxYDMV%cXb037gI-Eq@JCbU)@<-XM0Q!gl@9U4^*z*Vl4j<Q+tnccZ4&-KuFtH)?vgTQ%L+jhY_m zR!#SIqozlx$;%dWmw1YGh+l7+=3*0@)cs;dUB)a@<5ONDwt_q`(e^qDB>W5wM61bV zd2VBhMsMjx@1(Fakfw)@YPz`_HLdMdO*eI;rf0iV(~X_gq#RL^W}XXb@_IQeDmKfJ zK!?HcRSO=41-K2DeSI<2tXg6G^jLgzdoBE0igz^@DfuzVH&4@QxXLwZ{Cbn zTj)e2r$3qr|e?w}(M${o^JpQ+neevJ&UAH$;F8FnbFA;@)=BGKRc=v`Ao4 z%*`0_Sc$Sd$@BWDT=x7~Y92%vh$t7`8KMz$%kz(t465R66BHYd?2miBCF7*{LcgIQ z;h#wN`eM*OQrjTb$^y)KlZ!fAnD9^Vqm`mtoS3@x1|Cj!^YAGMSQ)vH6UoG_=K}%C zs|+{YvcU6ERqc(~oVNL)d~P|FAF4jL0by$uiRd!KNsc&YA^OCL=ScUAZHjVP; zikH+USyJj9>6Y- zzaC6tifD{@oLnJ~LPCXk*jghiz233CTI3ydV_yipE{WqU6)Ihz)np&$ZF!J4Kw!1b zipy1-5(7jsnZLd0bg%30s+E~wA6dogvLI{PIDGrXNcj}uYGhoZ(=*36phbv2Csr6M zqz5`<_`O6s;`y;d70FlI+Qk0R-p0zMJ&ef>bb;*A7N$VG`c@q5WSpW!ue?kB^`9pnfT_xQ=-?>&D{PnSAg?YI^@@tf#YTw>=krF z2UP?DracJH9>+i8ksx<(d}s_-)NJsgLe(o4rl#SMu$X*tbiGQ&QFEpOiqk@k=6usC z@b!_=yi}oiO+6|_m|9TIwV?^?Mfa|!=Y32oz96!Xj#gV=$KPEE(V*KqEd<(J^P!Z9 zjQpAJaUZ2C2+wJBzHTZVCt_U1I zf}FRgf~pJ64UK9FfKDEvqT3Gs)Qt{4V>?)Bd$^h<4?l^oOJ$6CD+<7Jsd{#C>dK-} zZq3VzM!A$Vl=B53e2fCnVF1(&YCPYK&=I6LN$Ty{Ohi_FqM;7Bzs*1jt=*QAU`9;HD1 zz8fIE7zXiy6o?{hSvO$ngh4vWH{u&$JUW2sp>DwRNQW@p5r*lR0H*s>F!3k_(-KPp zUAP8v&4Xc>u(sW>2~5|whe@Q{zfQ4W{hpiNUeV#88kB#!TnPs@eX;brm;Zu1H}5U4 zb>79R<#D!ug)(l@Y*ZHHi_>y}Hj^hpYI@(DWucKUw>n$4ZE3MY=jK|3x?5Ql9RS(cnDn+a zf1!zy3DCKLV&J2|t)=$G(GUCy^o%Xg9n0xj4r^3>5nZD2m(+2&H%-2Dg7ACcE(KnE zgHW?qAVf{mxZX;ba#?i z@M}hk>ZT6)dYSb71Lf~x#yf7-JtVm6E6&38$TFzzcEHnDFQ;GC*;lItaw`bGLbuXx zu-2w(A5BfNL+RgB1XaWjVH777>o|<8mNm1Flo0zO)hoQdQ03P8uc+kXRjbJr$~sJ` zG#k`Htqt{F?>Ri&ovNbVXgDo-@_}E7F3-Q-+eH9Nc)KJ-%gXZ)7e&t-Q{4hM46H8O z2Kr3y6>!o9dT0))R!3m2|Fr&Q`_II^A=rxIB;M7*bSPtYydWyys8TvZaqU>m%O`QeA6;sc{t-mpUJbXSTDM7vb3DV zG4d=PDquy$*A+8QT&2@H-#kL~`udHIs`s+T__#_NX{Eq?r>ijjSBf+Y(aQC*cs~~3 z?P%5#&ALck8BZr9z0shlUjOyYpFHvH$}nOQpz<^67KpWFauTA0GW#wUn@W~|R27Js zw`FqW`U`m*H_MoHfa76TMa9dS%GbwyNIqM`MHw~Z>l+|OQO;8bZ9!b!)Or3*4mXF2 zBUbTn(F1~HZ?O4t4Qp!fF`gEgf8X!;me8S~m|lOihHhEZ9vWADS$qG*N?nCW>4Im& zqr?KhnT@;nPE#Zv)*`d)0jbfcgy97#`niw>z{AZ?D?Hiejr(g$<&iu|*riV%m5Ju4 z&!Q~d)4;(A>yI|YEE#*IO4sYF>ZGbNF*7HZlHFc`Y2Ta+sD7PHGI;&xK!d$Dz??Tg zREr`y88@FUQx+G-w3k~#ftXqPj;<$B_urP)vf_{)t}EUFFWLSYt>F__gODP5k0)>= z$eC-dBqzCe{?@YEc5lG(8v1h-Xu|I8%jKSO888xMjDWo$5Q>2nG|B5L?d!tbMleA! zt@>hG$s=L)3|TdczSwP1^Cn}=Ot^;D0~1Pmn&Thrc}IxV)xzu3I(R45o97kKrHrO5 zVDYGrwcsQ+Vh`&<5K+k}OQre#sRFEdQ&AFNA#Sb~e2M7HH5CeA-0Mkp4bhMvx+76A z!p2iA(5op@sdVow z5+FNea;A}8j~!dx2HAFT7hG418TBUGqxr}D7Oe@bVLRW5ge)}AMbd7Xwe8$AE1a7~ z&ApVLM#qgB!wwo@*NoV&GUIGPiFV?%tf~2I&`KX-0|-O&6n2J2VJ-Bu({$6D@^10 zoSU^rf*b*cu73Zzb%#yoE`?@Zq}^d90WL%Cup^bWqcfa4>|jMbrPLdyFtA4EMu4SI z9g0b~!kSZ_u*19Q2;0{;k1vc>JFw#3zE~GI*NZfP8LNd~WS$ELbJ;;!z7EEQT6H+e zPl>hf0CqsVH`F{?7-b2MX;WktUn%GiH=4}7!s;e)GSJ*9fnZR*W_c=Hw_OR7y6be% zDyo^Hac}cOptJ=dyan{YA7%B@w}SFi4V7L=S?Vn`AKan(wtXZT-~f2_Ne%uUPNu}n zS9jD(e+tb7>y%$vne?u$&$>vQ*uRKMbwGqal$zzU0Sb<(+;EbYT_M<#SMb2H1m3IX z&;SEB(c9trWbuz4Elt;ViRT^mpTt?SRJjoz7(B&(%q>wq`h@K=I?ZqJu?*BevN+d$ zyg{)uK}GAS@Njcs7CM1H9$3&E%!j8cU`5cWD25)va*S4`3?bwudRoEWUVoNX&+y`> z@>=6xyaD@oMYY^bL5q~h|8Rc>S%!*=ofKITjrtAzCyhCcsvZ;QB;gj`CP{DCW^X(( zJBt&dx<6G((E;Gu^6j7shg~Y5eyg`GfxFDrE)xnd9yB0=@cv%OBxZb4%CYql26q2v zkLnb4nnboa_c1Vqa7J|$IXz73LoCG1nj>YfCi&}OsQsgO2I+iXFB=xiIKMKUyGKFK zKc$zd{`BW3r=V^(ua&H^)kY2CqJ)^9>yYt3i zu4AD<=M2;u6ak@#=ZPj^LV-4(#%4Lsjw z)trr-Ow4Z0wj%|Bf}>|rhWtS?KJ7V#7ZbF9z;FuX;H#o<+&xq#cs5% zBjLZ29>th}2D(X)k{f`Q2tav|B4wdO+#b|n)g$3XmMh6Zgy@yf(jV#KR&O*&1ZxbmH_4k1{6?q%k$!IBkyt-ThfwU-0$Am~bhPpf;z^=%3 zg)a&Uu^d8uj3D71*VmRIWqkAFUxDnukiZ-&^6MQH0o>PNnh|`ORey~%w{5hKd0}8V zfkpRCPyA}~HY0SI+^p-2J{ik}GIf1(x{m0^+O>yWcKR-YJYzv#glVivj4$+#^8;kB zPM4rSM)(v3;L_!;#05c#RT(8VpoFAY3MKY{L6lP}CKCwid_i zdJ$k+5l)D&^vATmO4bIdFycKJ6^x^>AaNLO0#-J=hD(BLH_>McykYt~$=zF7aZQ^! zCWFXmd?J0`B$oX}Bsk`$)K9{^1{(OlUoqb|#U){@FK#|T!^_M`G1apsIv@+k7}$S@*v4u`9k zQI#~0io!2S$@Rlv>ncjKh83b~y@lJe2)2az$@t^Ry3NPl7n;b$YaEaLo(d)*v7DYs z9?xIv7~pGKsfS<9LSvct6Y9cEuUXUm`s$SiNJpYMR9`yYaWvLy*#Vi+|Z^Dru91N(BZhpzOzcU z$UR;@jz>pdo~<6>&en{)?Ac5$U3{j{?c%By^G7Uw(JuzG@QKgEKOhs*q}N{!3f$?E z%lc7@jDs`X50KO%Rf1Rg!rc=qbTt=3dE^Wi zTIZaw5sp8o(<@`(e+V#rURzAll@FzLQDUU0QNP&B|E(82LVy6w%Lv8w*k2%Tbv#RS zQ0`3Cqg*EG^vAzAWC7IOjyNxMzu(5aO=E8f%`=+>2j-5IvYA2nVwYGbG>0G^b|#p) z)cg^Dl1x2I=hnii_lBESSv%fbEC!3*PgmBqTKh+*H5g9WKf-Rm?ID{e)XlI251-8Z zQuDcZC&0hD7%o&#WRbkUX(t{+@kvN#=W%G2+@-Seb}_73G!U6qG*nut6}+!oDu`0x zfBFxI9B#45H~TQ4^}3F1&_fBb4!5+5e!7?cW1Mmf0bK!6>8Z zhGR>-zzdXDJMSTmuGrwPr%TjebJKJ|Q`B@1zZZ7{zW}}uvfYdql;H3YJbxKcv3!Ae z$c5v|ICyL%3SmN+jOVYhwxnEZ-ijTrVBn<4+H?3OeLM_x9sgvDD`Q}0>XLOw z^8rr>_@{f>{ith>6hz*~S+ZJ2KC9aW@kqjpOU+r3BbkKQatT;^muwrjE8vb$Eb~tQ z$~9-#+LbEqwCmqm{%@sNU>VAkm*HiFQ8Rsz$^=o<{akbYnuuMb`uYL3v1PviXLhTG z-wIc^e4Y+Wq3`pwTczd_+rM1U*e5nbdq*P@2NW~kBO`o z&K?2fr$4?6@_*q_0-9iM?&4imIfUkI2bB2}+gphS+y7n6M@3xGdWxQ^m$0DJKV4p|eyT}|t$RQ?^ zHs3dofl9FOD;I~dAr+ZHZT0(XHbjdr^nZ43Xi5f_Wpe5cI=c+r7Ry*M5K-F&G~Fh9 zA8`4vd zI$7;VY!@Af!6M@NlK&`?i9=m1<&XCe)Gk&!G3^+p!cQ~!+sDf4bm|gA3_LrxYdb|Mzzf{_y z@~10w(pEOsTWQN|Zy!eUYoju{mbEGcBtoD*EMwuZig(rJFFQ(?^KF1oVr#& z#8$yZN6NIQDkN0U2)R6Vq^_S#`p*Mon_;&|wT)ZHo5A*q$7!vdvk$FWgGK7m17zcq zxSPZn6P~WYBC3_HCFrZYR23bjOoBL$j+zHErapz{H6n_05vE0&6I=gqn}O9veqTlrUJMPE9t2qNACWxr7?b ztV_xN|C^a5dq^7F%q$n^#E^C}vy>*l?-XZl5dWhbVM&JzZSBkr=U3~dx#4pE5_3aL zydfH0`lf^kxFcyi|2)-oF}+W~Ht)+p074@uEW&}+TK@|XlvZDNb5WMer*t$Ie;Eo= zb8$Vh9>quFlmC0?qL?SDSEZfuoz6uV!>2I`uIh~mIu@kN=!;zG?e#vZobW4rJebXO zL7amPNjcAkHQG>VaW+QH*|;Lqe*uE0;2lu+9+mb{Cl?#X0$=iYal__roy0?khof}0 z^Kh)1j20OyXU|tZ2|qx7A`W2)`KAC*q?yx5e$M)cdt-_`BZ1b8l$c+^8bRSo)|K{+ z`>`fF;=UP9kdBZ6!JA4AYd0geTuG=h2S*0~^w-_CWJ~Wb@UzAidb>#umNlkmsB-83 zc!ej>86rbzuOF^cj!rT=!J?+H%q{|24=ylAWYHh7^m-CiAjVa}_=#LkQBRY$>>rxy z60f!EvIHj&S@8~F(X)4?P79m7)r~M|c)D}tZKZA5N(7s_iGsE4P3WYy`0iosuahgz zEZ79TtodyrIhaI7Q_GCAd)q}62dsCJZ{9g9N}QEY;1a>Y0CTCVrnL)CrVtC<3?l)* zI7mJekKXnIyxm@Fo}S8(Ideliy&Rr#D^`Vp41BUNf43kcNMcg|ITg>0IcKmO&55E? zWGjzXj4exJfSQw?J+dWZRRW5&T;d^n)u;@sG}c}0|D16CL$j=x!Yc$5Re zqz_A6>5sMarMC1(U6ckPmrz;|VoS$axtCr)L#VVm^6rQAuq>L(BqbKzEBKPT*aD@K zo(>m(6I_V@eyF(?FnZcGsI%K(2sr+cetTBvt#DF-Qr|+R)v)U&K{bm*89~ew8k9nA z5Tufk+b=2HAh3rYxHyl}o8qvIOs>T=6HHyl|QcQ{8@N*U3kx^l^ zd_4$aAn!QFt-XVt{Y?YN0sdDbO;CVhaE;)o$nIuL#VlCqsIe5XX!QMHOHj?4mx_#8 zIT)!)1x#RS&_@pnUD`)v)JG4cA3fzB$?)W`f5D9NV257%QtIE$`WMvx1zW;&yKdDICp6WTT!Gpcc}<-YBpnhqi#i+$kmh%wxZ1N z@(m`GtgfpGpJ!E8&c06+pM5ELD!O%k`qFC+&6=yAfrK5DcfT zjbU$cyUi#fe{W;Nd;9i4!vZ0tr96CVGsd$&afmXcSPxk{7E-CXXo_%Q{?G#M*bMTN zIHf)k0 zE*6=Wj9dr1SXRl5YZZcg>QG@xT@oaP1r6uIX@Nl8D6)D5eGSUY1GoW%Wqs3JzvuAUOtT6BGn79U4(l zzZ)i%G-*>U4E*CqO2|vhJUmqP=9QTnMX|~Dzeg2iZW4Wy^e&1v5Sj$rG&d;MOva=q z%qiI$g&sg#W7o5ZtdQyk#Ma9ZQ7;`DjS+Aq8q99|BxQ>$U4LL|tln>>@UCXLWw}qW zFXCq?oDdyKQ0HKJO6(S@j0I-8xd2rK0KeKe1t5aw=ELoj7IlC*ln#KmJe|6Xd7v%p zrrZsKqX|Nf(QOE07Qx$-1&<)|%dRolRmVD+Ul|b|Uk|pSG>h83`DQR1T&*Ozu- zP$oYOeE;ojl47elo1(SZlfK~=9oJl z$F<-)7_26?t|h$DP5i@f+-!7-h=JSBH+P~wOa|(zmR82GdDG~Zt=_R_1sn(rUy>pr z`WG_~J*-4B+mFent-Msb-d<9G!N@afHw+@Fz1z{%)IaPs3n0+?}<$3h+rqv#Zx;w zrRuysBBeZ~R2@Cs6~YW0UhQknjRq;w}Cume<6V`*FqswKooKW2{}XwrgW8A;#L@ z?`vbMy;vzTI6W27p0Dcr3II2o2f0^5K@brwkq){fL!4nDg!HbETE4ibXghZU6oN0*5k}ev=FLn zSpa~V5E^C*v92SNt->qAS+-580|YbNy|uj4`h|dkFzyb*YC30vd~*8%Ow1gw*&B`#z8uMCUcH6&b|p{m5N{lKbBa`f8FL) z)ST5{-o(s*RAy}{!z9~=%cV#Q1FroF4>VIPW$Rr*^P$nscB6f*j`lmaN8k;YLbC;y=m8k0!zT+pwxm96NAwrMR1CqzoerLNMXXxp&eWNlZ31=URTw z__{KKBbArCAmNA8ZD4#|&R8I)pW$#NrwRO3M!Eyz3pd9ec=$v%${_3L7nwITw>&d9 z_P28Q4O@X#crzl~9raTDv;HZ&j2g7~&GaP4U*(yt{Z&vov3jSa=zsMLE<-FM*Q_i- zkRT~XG?vF2kfD$a>T`P?kwLu}+-B&|U7QHexfv!a)qxonoCuIM!#EKD!_h0Q^Eg2% zbtV8VD-5xbUVev$SjL$Eofu*nX99$e0}$=GsRI*C%=l{=_;xnfha*6t*kFCd^g8oE z%SeA1kpy}AK$t9l99{=K^c5O#u1cNDKgpnmMqmhvpExotfBLb_TNJvl^(`XsRnKh2 zOk-f?lWjGAqqmHs(V38fb0LBq*} z3}JV_j^esyuhnDR<(bPf$WV^qVsEBUL7sUfO^my7wA+DM+X;1jI08FZ?=2}})cNL* zBbsG|e+gxDY5BLYi`%!v3_~rjftr^bEa7wmP%-na^#)XU zd6QzCM3MBCVWlY{nLA*wF0k7YORy{ETy$GV3-VuHq6&t2aYh+Z7Q+l$Q%bHwVSfoj zWvY2469@?5M7);04Q3Za6J*y{5!aUph9B!dI!tu(?vm#K;k`eY4jaClPXcZz( z8zK`p^qZF0x8qH1!H_60w++V^;+ba-vKA$3)~>ufWIZ-y1?F0wIf|G9lV~RMCPm&j zYpHSwc4bCCWTh1Q20cn7M9kb(*=V;dm_>4o2sV=d`4RH*XMm)Zz05298wqPud3j%D zu!+Z^JTSF5B}Cu@f&s0VQb2ir*xb4WC^5HicjcKEuvVl8jP+lTIM%v7*1U&OvDeqF zWO&(Ss4{oc!+i7R){O}$#e8i|DSEVy=hUqOsWxv`I`vW8XKV^yi3mN@iZHYDXN1w88 z?Cx7)qQLwwwZuN`7g%CfaC(Zf#NO`*kiX0lyS%E6CHD4?U9Os`A+~JK%tfwd!Q)z4ZIXJ8LfGPblEB78POE1yxcnXcOS zRc;4GH??sI_%Uxy2Mnu*)U|;KGwE}YH1_SH&|7B+t=cNn5c-ePtmX1hD62Ds9vWd^ zJ=o?|)I6bYV&;(pS-K4yLf7qSi-ZvkQ%KoC>oT#uh28K3dLQZxy?et^K<|ExLV9^| z`4H@jQbZEgr&YS`Ry(#u3O7TtSa*KDf3LXp8#%T=M{TTLY#ZXe>jLm!CfqDVOm5J8A^)Z7kmGrBIa! zDl{xv?q99;P_UOo_iU`|VR6=?Rd-;9$jJR3lXa`8-y-H$D^sdl=GQedJ2k(glDd0<7|oIv}bxE1YGJ{^G@W?i}FtKn)7p5Om} zjXl^-IsZRo4T?G5&KhjQ*iKu6k2|;8qy3#V_;{t$z&o)9pJ>Ab(bJbJGgAigc$>FF zeRH?I?bsT8t%UQAnPusK!Oss& z8GJpLlk3(WT{ueEYYRZm@PZ&fpy zm8eXe&@Rj^ZLjIIsHT?-70Wq_BJG$oh0O{>=h~a7I0A+cDQCj`Zao6t`D5QyMH3aE z)6yVrwjz!xbUNc`%t+b#U1Y2lAyspt2%?7R`pE!1Gk{{(SKpbg27imE(Fo?1AviDO zyou8Fs5FnBWIX`Knh%)zm1Z#B3}AWOF#s`ztY5(TfS#lsTQUBU%OFMTFL5|#9;Z;e zmw9JIRG*uM5I1mZ_s&Nl{*~o3t$&5NDZzgg^(dpPeiX9|Y)5XbER1G)cId@8bNN=* zqw>-3P`Bhb2&Y0W&rq*?qDBn7LDz;qDYno~Hdmt&!uwywv)Vm z74&}rXFJ%_`*)I%N+p)Ji&>M;+_fMFbn-H0-hd{cr-FLIm+aJdl{V$s>+)T_EdWlU zs8i=rD?vVK=SzB#6FlD~B7lzcx0 z_@2b};tFla6aHIhZhyE|R?4BikG3zD`by2;2|bsotj50Bf`eyvqPgXnPZj*;w&2&b z2mf<&0{Ke{`AQ(qH%|ljX6DX$I12D2;-NB6g-L?t6>z)+KgfPmkbj}(*&e+%U(hVJ}WFckXKG|64#@CS;d|V z)ss%jBf`@+kj857;F?LUXli<7q$C1z}#?pmU7NfE)E2wOhinWb!|2ga7?NIAZ4PG)D z!$C%-mk!)5is{!a$==ijrt{2eAo?JNim-;zP~D^zylIE(hAt{#sNQHlR4=vZAv5Y) zKnf4l;$WzL)SfhjxJ|B_- zcUgS65>M=WxYl9A?kYVGXgwrh9-b|gD^NGK0g7>bPRCVx?il@s37D*Ws0v+htYC&^ zef?H2YP}mM-uB@%r_rM9^fXs%#MNkGP)6&iCxV$>#?jf!waKeOO^P91XqJr;Ho{@_ zTt6KlTB$(@Uq5PKVd^OnClqE@uARWVpj0ojVywg^vhB$F#$VNt_yk&(O!hO$pCg^>8go(_rita^2bM6oaA z6c+jI>F=jVxw;*IZ#V$2YWLbXZ5OHnTSkt+p z2YP~w7GR18W!~wkOr1N^lS1!Hp%4Zh2{7OOz=A?#P}}+4Lpyn`4^OD`r<~o$qm`9Ccpl>g;GESs&9vt%0tZ zuHZ_o;DhQ0so?UCJ0(Xhzfb8vRu(L6pbLkRwig-@o`x;7C&JMY8ozbC;%cn@p8kx0;Z6xNTsl2PS#2;+ z>N61nYkhwQ%M34S_vX_bEYrQBO`o8Q*E*XgbwOUmR;*AW@R=*0L-xRjcz9ivoj&Fk z#u}^!{9=QY3wTUMXeAX1zW|b>)e%5#AGt{sXP*;`qy^>~Vh->%u5hc%)@6syq)rgd zE0oe|rSZvuKIW;asJAC$Gm!yxls~{+ae$1S?7D;!3BPM|fLv^-4$se?Am`SPJ3K*d z4?@O?nsKE0)dVg>Iy@u&6If;A_my;I3-bZHsDKswVt~2Ob*`hM?Yi5uuFkeYb^Vy0 zp^B_MHQJiQ?E^M{JXM`Kp>3PGSJQfk?sPi_Gq!DJZGuuF8ws5YBfM|(Mb4#k0WYbg z=bzuVdHWpvZE{p$2m3bHq-*Sc2+h426-LV&*^>G`OE;iqJk2!Ai8R3I~jetnA-mbLWO1K{erm7|8$^m zLkEGvnD=)x%Dw$Z6cwqxnj6Hk*M6_&Wpm&`^2c7yoAO&#vud|h^S>-eQ}jlLDcGJ# z6dnvZ-%nI>s<`?wm|m^sV$~2PtAftwzcMJYK{xRpf!^8Shx7tslaELhb^al}Ok(?V zdz`i64oXv7*cD=_4L=zBz1jTdsQgDcE*L6zpArljc1LK+_lZIZ8D3)jlps?|V~-L3 zvzVzDA&Y(E=J-}wyLx~o0SG4%?dRCM)yy(+sGwaxeS?4IUst#SiMhucvT2@d;Y z2tT%de%X?`UZ8G2E!u2J{Y6pjZRSR!e9~J3;U!k}rpzf_R_}J)-@dn9^vg4sZqN3z zrmfBKWhSqF$DPcHi3`Vh19$fFF1W}WYc{JF)A&z4*rhBJV~t4P4)qOm2I&ZyPv240 z(<0N{jl7Fo-lw|CE5;x7*15cY=|kKVZ7*G4qwe9t>x1`#lS?Gu5up1yI-)m=E^1 ziLUYeDM*460y3xw=J&5jmZ|E8qVykG71s++n{-#Lelwr1fZxjrly!Vh%D!NcE*ayN zwYp|mO4p~5Y*$l@nYE4X!ZwdhVrw=v64b4=Q;_bRp==i$s(Bo@;)O%a6sKa?`O7lW zkB>*>Tc5I-JkP8@zT=sEta&n0FNW!c5?OY2-+mQc_2ydYbbdTJbs1u9WLFp}mM+?wph-T?$9VUeN2&Gx9h~qd)E8i^Tn^eb{&j=u# z$O65}mx<rWi4!d4H#j?oAZ9p!-fTo?!_S~eGYs^5AmGe2Q^ftV8; zMKavQR+zWI84W(4C!1Y_`Yfh3B1*g1$s}ko^AaH(&*Kxr^+JbNgW!Ob;&4rinD(R0 z`8e#Nmru8(W>~6=-b5m7k+^(hvGGTdVMm*{ZBL)g<51qVJ(VxKpohr;Qxd*W>P<3_ zdG$hSbr5XjG~m1gFc#e@+JH2*%WmFq=Oci_XP<$UZxLVZGK1hD#=9%c|oW~^vF zwxf0Z2nx^SI|l>Jk5qLu)oM>}&m%lS(3x<`V`ePey<_;yHD0IQoOCUm%QN>E*JqU# zO6=G(Gv(CH6~#Q2L(Z;;2G`7#k9Dpru44$~P7WWCI|&`iHkS%35_*UEv&V3B9cv!B z1gNAd|GHQX`84Oxl;FXE=BrfQ5|VPBR`)F%G3A;gG@^zZIi=&P1!5$($^foC-i{xb zL0eLH!_L7_jhnBsBs&l%#BYEj=)uaRDS5qIOoGsTDh#3v=o@tl4? zcoBE@V~;s}YDX9Ak#U#G@s-L^>RH(_|2QDYiA?aX>$9x9d|RfL^PPwmfEBWYWd~iR zmPM0;;Gp4UyaDFgty9}b`f{qyd`{JwAuAGIPubOKk6>%|Mw_=L%e=W^Yv^WMc3^Nf znoP!hhiP5=c9%)Ja6fk%8%tDprOr{W)b~~TRr0gdE2WqyX8A)LOXD58%ntjeP_Ypy zU*nugJEj;-WqYbt3cyYalfW|Y@i2`GypsjqgSc=j%-B%`k);ls>k!gK#0ch_e{aQ? zMu1fA!jRt69@57$AU)4|Ax{@~o>?^3cJneVg$o%U1U-bazCE@c-O_BFK%B_AF!eb$ z@{3ou@*zDkZPV$Jk;!e)A&M`UG^x`?BLL4cmq6*m%=Jp?pS7j*9nCFD>2E^mJDQuw zgr2mio%dYY<*%daym+}c9wke}gGK{>y@wl#h z0ft?)F$0?I0V3NI{4M9QCG36>4~dXpEmF~5q?adSDn|Zg@TK%|NF8~Q^1O5AzDR@*=&$!{(71yFfD~x&UvQ(xaj%gcD)Eep^69)pFhzJoL!^|APxhY zI#=(Lz0y-v>?(jgbBCV=wk`~n1-7y+4gj{&>m?_lIAB{sO)0QeLWJ$Yl-y>1BUY{4 z9&GL|BQDN?}FO-N$&FGQzr{r`9Rl|#kdeX ze_!jcmSD9)lLT+#R2XW0g3H2UST>S5C-wi~a-BLp#}<8v&}U_N7yv_1LfiUL2AU(^ zH#3yTf`_fmFh%oPrAmjp5$`ecd5K7e>t@L5m<3Wihf3(>)4fod zq)u!SsqTg9=21xdK8ZTy9v{fk218=<_I@fR*H^L2b)dNoUJG+YEh5+w<{34O{X|Bt zlkd0dHQ%JEN{r&>bv`Dtg;@(*j zIh{^rFpzp61a(uW^Yoyy ztg()hcK*Q6Nhiy?03x^^9mRrn>nE8vvF3hG;+U%8jP?olLPrHZ|QVl&DoRioaf zwH_aZE%kSlY!Zc%b1Xmlxuk?;Hx3caq1I#sh7#ssTN_g1x3cEsnWo}s6Vn0sUI3bb zX1N0|iA8TNo>^8Gt8YM6{Rs}7Z?37W9>vUfjrlRrWGB3%W93W_^LgLqYK}&eO6nkQ z6j)2}pfB6JG&6~^X|@$nesaTB1UhHKgzBnW8kpP9l_Be(&9f$_#v@o96xtN+$3ktsyLrA=G>L*af3gDdQvr5jQW(F-W2V8)i)C)ckwp3?=v!xol9f(8qj)Zcr7{u8~{eUgs_}EM}o{g=0C{X^AM0&XwIG> zkA}gr#}ck&!=H{O{K=L5X-_bc4sRge_hWHr#=WCOG%&~oUY|+cFqRPNP!U+52baUx z>csqZHT*NPhCH))N5N&G`EgHKX~*pNG2OE4gh>ZpNf;LLCyoj-!K^(kRwn%G@YYed zQDn*LgT3nHaG43dxe@XoIv`MU{+ym4$x4Ba3DT$&#D3 zPd12OV{fx&3~Mg2YS-#YZIu^Hm@8-p$(tM7+3OwGkBIG^^mgQn zWaTR2KI0&aB%jItVrC-Q3M!64d~I(AC%nCr)R;gcWuDwpoJ1&<^7>QkBF|i0Tt$k#o z+vWUSL<32hhoXE2AkWkxT!-?-d#77ooJM-ILC6%Ozm7^K)J9eI}yGkYSLz{;pYDy77niY zdZa^7(1|4R7<13O)h|}>+P?ub3^ae$$tdlE-yNj`J95scTjAQ)~BuK`ZiTr*Pm9m6(W2q^FbCJex_9#l6nF1k(mt8K=Zg|zIa@y?NI=a znkNBnEAx;Vu1^&w)cM#lGht7qyhkVkY7x@SGmCa;#dJ*?K6CHQ;i9g|n}cIEsXWqr zHX*iN+@3A^S*pFwWn+TXsDDhv&nlQGF}Dlr{7-3lgvo+Ld{s`%Q$6o8kDT||`R0z=hEcWva<<&eg%OJ8ze*m9fROrMUMQ|%&R#KfjgTXZ z;2l(8(TDk9N1d>f%|Z1(7;{N)5<9i5-^siMmr4;^Z}TBu^ZeLQulJ&+W-osYzo2cR zc`&O^Ty94v#ld_u7A!y6=Ci&H)y=|~By0@oNH)V$-mB8xPS@0;W;za&6#lX&Q3JwV z)RVgb>xoZ@u!~9baNQvj6ZZ^GV>ztUI(7M=BffP$=$Pa=4d`~JwqND3pUmVFVGL$e zKFCAq;QKk*_JcecgcI9`HQw_$D;74GgrwFS3GJ@&*JGE0$>%nX62$<{!gfnQ*P=3t z`;XVZgt#*|P;7J&An3X}W{-a-8olToIEAHl`Y_C#du&u#{V*tC$E=ZsTqMm&%Khyl zh+>#v%e>K-G5JM`5CKX=&0!%9K;O}ik+xBZINlnyxLOulyVQv^S{wZdveJpkR~cna zA z!QCFS@v(TSPaQ-91bwo*H@k=i5bN&M5*FlpnNRn}UGmwXUav!w3CwVj(xSrTVrEX@ zfIu<*hMU!=F^Tp%is9Z?CU#vju_fjaWJWfhUMhi32)mu)Ge5R9@_p=)9M&qzDlZB! zDIgyd>M4RS89vz4Q4o2?3KhF8;k5XCpdMYJYEDvw_Qh?-v?{6N_6%$v#{OCerQK(W zM1XQ+N9W%pkCi6iOnormBp^yc-sId5{Hf`0pwy$DU^$@VT$R;U$ARL@Lpsi{7b?vh z#L`j%QzNB&JB4j~fA|V^{XGVdVnym3#vce5cME?+%9&-uFzJLCH68ltKB6g=+%EYdKg_ zTgL7Z_9Zcdh#B;6(@>VRsVb(p6xwU1G0{v#4 zaU04yR8_MsDGQ=PZYohtX-`z*@dA>y%+4{8aos8G*cb`x$k3D6b`O1|(U^R>_%qlWa5a#Z?4 zoCzGlERsWJm0JenD%oR|F&RMCz>OwIfpjld14Vz93Jtot)JyKrV;V<%Z5` z=KBXlGWNI`++od|$C|p_m`VLz?{pcg1vr6#qu@ch9T>U!@iGO!1@j-O_Z56&za}}!~p^bV2 z%wL~}Z>82zt`#Emdg5F8x02$G_)rnRMP@1V+-5!MZ-S@rvXHDFmcrdP<~JR0fAy$n zxp|NN3d<5WgU(fiKfeQ0XxWdKE^6Y;P;*etdA?Zi0Q@a&LPUR3h#$5PKi&nznCz>8 zxSSrPwq3pL+RD2Fc3{WB6Vri}pCEWV2rFSc|{Cx_A()H_CZuwZJxS@o5yBy3Ny;G0#Cw&@Jmzc&N>_M_xQ<~@w?kXMUs zam9Am_2)C)am7oDg*bCLpE$L)i)yuUM0%oR9MT8L{N=zlQ&=6A?Wb@i4C*!v!|=X# z&3cW*xeE+`Ko<twn#6-ahtT{*}qlSLFo7mi%Xn%dU)(bizEdf4R7y?(0C1b@_cIkzZyF zlC0a^@9E2D=TsouFFNFke@Q+tB5R?2eF@pfW_hi>u#WRV^GV)DJMsEjRqBEbGxCd; zd_pDS{#u4#DqrI&C|9NRp%)lvv{9S@tlL}{%!2)8HT9_EI8MpK14~TMC0WESSmtQy zq5T*lsIKsvf+J2i$3*F2ogHyB5LpMy2*%`@j5oydO$J@L1;kDwCBJofEul$X_KvEv zhKjy}-WIf{H_?A|!N!EYSJmhaMfkzh_-v}H9b^^`95oLioO+sxS)-!s@%upis{{P$ zm+xM5_-pj`7oX={wUr?7C44j6v$sLA-_II`r8XRGLZfQ69enMfQSh9x4)AnwYJc2O`03r|qT4d_ZS0$8i*ec6Ln~xm!R5Op zGv6@ZywIjT*BRMwD0CjuT`*O!_c`NI(Ej~!<^l%_n6nR3>-XE?mPKdBS(?D*k-vmh zgMEBn^I^2MwTPAC1mexwA~V2|IdIj4CZ>{=-APVhpin`HLHt`!fTu2R5dNqd%0U` zYedCI7VzuyJ~uI_q@Rux$C1;9A>9``p`nuqrNZ>6CVWzz?#M&9rH3*@WAk3-glqze zv3930ASw9w>=YRt*A>Wf+iy9<-Nb2X_~MKLAfGLl$e8)GcTuoKfNoRrdkoCg8 z#MR5a#MLPgjmy`W*l^E}(WZ1s4mjq-YLhW1nmhat?bjKEDAQIO-*JzKhsXi}HSg^x2K??^i{reL@&Jp^ zp2EsF1t&0NWsGotR_b*CCvZY$XQGm-9odyhMcVq36imTT__@J^>AYIr0rk5I1mlvv zngXc6C7s1V5kT{Gn)&K2dqXu{J10L`Y8)-BW8Ox%%m0r@7MR+7A+m5r5e}H^i{K!X z8>~z{U2VC;5q6BFT{({-fz9uOh2gX~lR|PiQ>W`?HZ@OlGyS_-|4=9lQ~sUp=U$Ah z@3zsZbKRomUo6+E(R2`f3R`#7KQu=!-oF;x0kNyg z2+R-c9#j2hrYx9ia4Y?suimLw&myq1s~@Q(uoG{wW&g2;l|N`x;xcWLCPZ-AjP??+ zt*~Hj6yleEJ<^>7!f9iLXRKnp5+X1Vl72ss{pG%MjL*&T&7{_QH|vemP6RmYrrI~%*3HXll-Lc0oK8Ea-Z17ZA z%ty>33w3p{Q2VlOpVAd;2lqK3Ou8DLy>gfTnJl|E#-&!DyJ);JjJUj#u;jqF{8Z~^q&qXcfOKNtQ#MQE zWU3St+O#SKRuM>GJGoK#Uxf>V_2Em1Hgv~6TrxpBlW4q93+m&B)SCVDLrT0HuA_tr zQ(cG3ViEsh=XvG2&K5p=bC!qllk?%H^s=-b7^g5o{7Lxzf95!vjr-~6*M5R5Ed^qq zVV3q`S-24MGfdLnrTaUJu5tR&|a!wpDZ^IU}1umM5Z1k!7)}S$Iju?M4i5Op9*pB?p!%4ftD3ywV z88=V6SCX)?4uSI`9JxB^VI;N19fL@BgOpU^3$Zl+P?7iep-$Po9^O-aT(MvFgZo^^ zN?SUV6nUH`X8l+=DP%2zQ@fL;{@5r@&%(dS36RPbW{$?fvu_dkUCt^$w-( z*Iel<<(XRcE0%ubU7nrlkUlOq$BCfsUpZU*znQ@!1^1I3l!AK#m>|*WKE%|3 z_kLRn?s0(q#3{If3?k!SVdFpJ$G@zP@s|#qhyf8#eVXwBP@I6|CIiFKqkyCFlN24@cZa#h1V(Bv}?{4L~>vaJt^-(>swJ5=6vdwr4?yM z!cVX_PCa2%QCXBDr<+pu(B@iv?nk9%_*)Ej&JNVxyav3i+Oq~)wSS}yFM4%#I!k?> zU+Sk0^wL{GMEMEWLI~fG+j*X&b5psU4cvKK`htg7YgO>TOwZqvC_2IDuAKz_u za^Rg?J)ik}ZSUhIc)@NaWsKv)8-*OyXLcawB!@ciJnF|Gegy{aQYAlhp@aRV=A-BXPwUNftnwi&YeI~ zmF1kB_nBt$IQl!J@>WsnnwBN(7hcC1i2@J@}Zx$_&+qeOs9W+Xy*gSet8aE@uw;(CsJbvk%L)55q3_ybs+Mg1FKe z?r&@)lL4-cCifmj`2)WdB!JdTSVLUWNG z`rTkp`Pq86l%P|g2?}g@cvgMG1y+RS{cew~+{rq&tHwQWfVQRI{^bVy%=T;hOz^6l zou!1UOUt`%D?iv92?Si<=B0wU2x3>{F(|M&+Fdb%G_N8-KCB~4ubMA5&|M@U})ailluXL&o{=8k%fu*C)JSe4y zi7HgOH?~hVA-|^V)D-tK8>G_R1PIEw3>lIntt|Tzk}y5O(D%rbL|L_W$wn%*0*8f* z%hrOhM^LsKyPLnvAu0QDjtSpXu3XbVDzMV64r8Qx(iV-Vr;zL+SMwrk+UIIs-@$S< zXCG*}8o_WiS#QBW{hfPmF6jZbK#TO8m@#BEV^z8h8z6iqwQ#x?&Hmd|`y1R4J!~V7 z=r{p+a2b+p<9ufD?Z@+Lix&Rzw9V`~oRNaRa@@{a@Wff-cs%RXJy)g){R!==GR)!}KWlfl{PqU~;kJ5JfGcT~1vAjegi zu62~=!Igb>_>qqADhl(i{_0AqfAhNH~zPoGb z)%Wmt6Wo^S!Mf@9pI&k2k!tF`Pj~4EvxSsFOjK}b>+g3>#d}%w8aG`qFXEZ!GpTrc z&F<-PO{G9zqR|xgBu^vMncB|s2#M|}zpJto;)z#K1B!)>BzTdW-}>(21s3;vUQEX- zvdDE|+>Z^I3#1o)4d|NQUH({IhB}vJ2J>4U=F?njMMBML?#>>=fMY+4`qX`ML0v?|^E%!fy#qu#mGQn#oR?bS~T+ChoUmkG48|`D-?f!s3&u(P+Thh#Fk{#!7J(i zNv$~>4JF!HICgx<&E>tvew4A9@OysP?c6C0i}s{)OPwJWUhfM45=AS4AW0OdkJls6 z&-9?b*4LXHM%dD)BsnhyTaYAA3oofV`yQDo>${vPg7M%`#kztqL$#lxdc_y^9cLYG zV73FV5$k<-j1JQn?vCyCyd?-KOe@LyC9eZ;uc8>f=~N!|Ia?^}?!3F(#-Qp1KK{Wm?ael0|= z;7pCHJh3>QArNa#ZP}37A z^$!3`Q|gL{QqLHrE*y|hFIsmpX3JfizA@0<%{gCCI*`6$? zj)g3$$?#;kePFVjrtTuL+#ZqTcd20+b+9{s>}pkGE?flTiv86Hob}zJp41I}I#jK4W@i1sgCxU^&2hT{g;sX^TA zUm$KCN`V_T>Rrja5Edid-Iky8_aqM`>B%__K0LnCLJb>oB~YG)Z3k&IWJYmw9x?Rf z3XGqox(<@;YP!~Klo$!y<)!+_)!30F@6QNJ_vD>LBcN6=BU!qasqAwG$C&CyJk^X2 z;g9b1Jvho|W^L(SXk*5_f(P)_SRFAm+^y>M;e` z(4Gv|Y@+K9UK{HV?AElz6;R-y^b~K4rub0d6#X9g^||3sCzuYgNtr*B33s!-JPS-D zo0gc<%5gqE@KUcQ=Z*95yj$8jxEITc!*RfeJ9a9Q9I;14H^d?$kMgF^Ts z>3JE6V@?8`W+d=AWPf+u^}V3@X@Kv#UQZqk@b#qN6K??DEyeIf+51aVZN;K2qMwc9 z@C_9oL~Txz`6w8;K83niQvW*DIw;T|(7I35S@*ZjJ4M+k?}ezkQGLSCo(cbsD51d9_#mKJC1Gc% z1qdt{()VWcfA@7NQU188Dq+sWOCmJ%hdv@X18zoFM97_u`_z9WOcD5fRHCr`T$|Aq zN!x@MySY)0?mT-P-Br9hlVwpAy)V1%@3PxA9qzU( zwHt?9(b2dMdTn;Kx#KE_SOFg!`SbfWayI5~E6s++m zxH(3_^o)+G4k*w8MGy5xf!ChW3%480ugH*3?J__woH|B71rTf}^z;lx>^>YcJ*{D% zjb651rw4209KG*F%rjAgL=g}Kn^CsblGg)XH zddfQ6-mPp@jlbeUe_|2#6(6c_w!tWb#@42Kraz9WSE6KH^nWAQ-?ST5MS`DVFRDtr z;q5CQw1RVvEM^l>CbNmorBdAukM7`+nI?nE-_i=t+1Ov@wmTi{VY^H=)c)R?#w~-&U(sKZ6dRq#kNa56`YR|H z+HB1Eu<{Km%P-Q|;%EtN?L3qdz%eLxouFgr9C?k@8Blh$2imOHWrwFJ9;eF=+2*<1 zP;BM*PkMHU)777*z~EEt4~H_QWYZ+7 zbWb#v-sUzK?YQ%0^WSGG_h19m7bHRsZCJ*~|FqowZ`SkihI`GL<9vKwI$W5`R!|K4 zk5Gqcr+chrke>Y%wlim0_rx(?b>CN!ZCH)}j3wq5Vzi_Qhxq zQ$91ay)oUkxNi)S;0&G>n&0rrnx7q-U!QJX42diR5PD8%dtKaCc3MGWZypMiQg`fV z@fPyvx4$z^#(*jq$apLV?`*YqQkkgm--MeG?L=;_FT=Jidd==O)D?$p z+~fMgHRTnnwAGA#l@$%;73*~1yub90}l0)5i558-i;D#*cUw+y}JEz_9 z;TU)Rtx9)aQ!KD*99t$U-CR$IG2u9pQ|S=vA}Rr5TzDp_0TN54AKNXN?v$uhB{0HL zOw4G@Fc93s#TCOa@i%vO)J({H+xN)j<%0{n4W$TYfrq*29~nkoDpGz_V@6E^eAERJFN1t>sC>!+z=X zNOmR=x-Zy}36M7)z5cfN|TIDQVixM8h=Wq`yPGcWwG$ugW z(p8v{4j-DALk4nO&OjZ$~ozj3Tw=cJEO#17;YxSok_LpqshOPnh4pj8l7@%q zDCd3|I=Zn6WfV(*sH23ZkWv~WjhDM&ip^ijRPOGEE=L#KV;x`3{111(iY}qJzG{uG zRO#fPef?iM*TJwfE!o+Z#zZvy!S8mv( zltVWvohCDlQPv`SPld?QtX{HlzH763&sbpjk~Lng{z-yFgRJyY{a$`Pf!~lCX0OoHFVL#WMaQhln zoK|A>Pz1`N-aE6KTVdn8$vAMxZtk2it&_hjwppLf4Rn`qS_6V^u{g2TT_!lTbx#1t z=I(opSGkAuQf7Deiecxw$22^|m%jy}d-~U52;1>q;f^P?v$-w^E)ak|?!( z-N_&%hY4A38ybRoj0#2<35{l?s=QRzo2xO!BnoG)l5Hx z$tdPMA>!%dn1V^jRg0Cq8e{&5B<6pv@yS=xR~zd*fU+?@#X1^EGY&XX$*1#Y3y{Ha z7L>T!Q)4wFMMw5m>Z>b56pstUh!ioI<<`OHajp1?eJM*bUmTp-Y$kb{-PDeAU&@;> zK)9EXV^a|GKEAdh8pRCUC;<0cKhTz+EB8lAxKoLGqBVKX4PztQP`AGzu@vVanT@zM zbQ<@Dnm0iTXL)D&shbLySJV(Xa{tLX2d> zu875Z2za~KTR8fjAvYv+tz^jN<@4MfTWW50E-TCC@L;#B@2)YXe!`e~eRmy94HzI~ zo#l3+v2xEt-R8pXasFC2avwwIL4IA>I-P7ooLPJ|%7-RsAMCzI3T~_NWiY|;%=X99 z%L;=@gx*-J!2wW2d)II{(*!#T%GaytnerH4U7cYW>_S}lt9;v%pfIeG(7R$APw?MF zBV%W02F1r&fD3Z$1-Qt#e{F%xpuoGXqQQM=^$NPmaD8`tog~Uxi*>2Y>s#yoqLqiU zUiRkEpUSjw&RmQ!QtIB^dbx6N;OK^H?0gN79Ejavzqfy>iD!+$`Eh_5p4F^|g| zh08}%xV#BYFLgiX?n5woctgPGM((OQ*+Z`#t?b?^x7^w^$Q*Fz9qFwu@@np9oVcVV zN_Kg7=2X2rv%5OF=I90l>Mvbqrn(_h`;*N6`tj`deGOtl_e z$uQM!ts9*oD2{^JB)V!F&G?N9bdLMa33gq>w?bM$0r#l3!eUcQdViza-)Cx>Z(ueS zYZF}jGn6HK(Cf*E_%~Djwqj$v zGRQ5TB_%q<{gv(g(G^g>AfWgD2q+8lt3CUW$-GXr6MufUxT2xBJVqr4Ru!|5vKU_^ z!+@l~q5>I?Pjk^2+P&~6y}04QW#U+5YqjoX zlffHoo^tm)rn^r=W{N{pFzBkyE4a^%L2t7`+3GCqRKcK}JtsBkUOIX$pMT)EfyH&p z7es3K-j7r7uy`CZk})GQ2#?J4*naLu*lq{9$Bt7b~PwX=wtZ_dmo1V!|0Mixj@g?&zlet)jVhFx2pD=H^nYTdg>bFGB?p3^HC_uDPF>AtpXyHfYvE!F)iwX3N)bQ|lwShik?Qp$_FvvR#b zOrb(L^P0un*<}a_^IwBMG*59=qaIf~eN-mm9?QLph935`d&loWEoR((PN=-|XcaULa#~Vi$%rpE zaJP;tU2UfuztmDTL(T*?s6)a$f=dcF~yE%0?&|p0eR{-5ElRDY= zr0}3r$DlIwaj*q-(t|8j{rqvC#9<_pN#mE8?OX6d)Hk<{S$D^q`99RG#!*CTKUor8 zDD;Y%mxFX=voBW-A7zk!Rv(kySjR_oB7>;Two^h7emzLZ5-wq-UV$U|?8M)t7-0dv z3j8s+2kDAK7QJ49AK-sH2@5W45aS&5@Z-tKddI*1E&Tdj4w+1TeK-7iYAIH5-1hD8 z>*=KxaZO8wdn^39ycFS(H2%vHL?eK$EG-)y|C~DK=7OhP}gHP3K()iO|uH>WjJNZ8bmlfscd$~J)TTDQGbRT|WUUb9Kaoe&9!`l0o zY!?__fNkbFu8#w}{`n0iWUB*2-!xME|7g}~eQp@p|F)g|DGRJo8Ykd0*uEWYK`=-|sVETyj$wO%T8RCK~96exMinALxgv zfgVl`L^rJ#!3MY2Ga9{q$B_F$*7ii5*e`Nb-0R*4xz$W-1agED`cR7XkF7zVuI_1M}|_N-iZ(LX-6Q)CS}EX&B{{DB2^EM&Y4(7Tp>2 zG(+m}SM%&MoIPu9D>nanW#w+oA@ZRp-@Vmt{9}ubxK2g=3UP>;fBk|~ai)BDYO**T zMvn@s{f3WEU|BHnJB zRN6)DFzq(PxY5=L#at@S=I4s7{FdZ`2j}+lU{Lwl{tBioSI`Zb(ihGiOyoSe#A$8O zB~C?!r|}VN|F?(#L6|(ae`l z+3V%*(!;RTmr5|Y8(%5GN@U$X73qc-P1N~dM9>XqAQK8yH>>MXmiG|%ykFiI53sz^ z4bQQ>3w6WAyluMSg~LrZ{BQu>@B(koV2Y_kz~gBcgKoG8AcJlwJj!y=f`K%|zYY!> zV(E60+#jPMZtA56?){?I5I6REa^DwY4RL=OUaui;1l+zf#G{AC8sereCK_Vpz#8Ia zdJBTTr)VrR#4Yx;SVP>>yJ624(;C80Hqj7BLVxTs?D8O8!Ub<{C1d3@B1sJM)>i!+ zD;zw2DjBD5K*zB4eS~{mM|}5dtenMZb*8Ay`YN;~f63?xLq_)#K8Tf@Qs20P*KVs6 zgJQ#n;BQiW4anyk$bax4pF1$fuM~s4azK#(9D)3hK~k`WuH052$M$ao^Bad0!~EU< zR5^Gd%=c_5G~ZKeXufO90nvPSZ4sJpy{At!r*-KAx&eM;cl$j-m)duU6<0prXz-?i zSumj!u&DZ&(8^vDdO1v}GDU z~7pKU>ttfhmd|Ag+;bM+(aUdUJsqxUq;^Jn*#UlY1`j*DU zKj(?21-N*Z!IHT@5r}`DHQWI8;9mHWE}1s+EepTOY($d7EU$ivIJzKo3uRb3DxXZ& z2>fb+pByq_J|4fn42>rglK2;U3`F8}vT%R0Pc)Oa4U`jl&*V)GF-m4aa7*q^LPaH8 z{Z9mOhOEZ(nh;d0Qlr-Cdk3Y^BO3uy{exb^i!u2r6u|Ey%^mzMOBZ(eU6)t~2L!G9 zybd7$IIa4ejTtA%5YiWH@3rc)y`Fr3`&g^KmIl>p)zjH;k!aOdV!!LHgVqqlrp++7 zZ2NUUhv-?g0Hf>!-)(O8JB74|e}Rh1YR{$A+a@XYPgTGdZB;Xj!D zNA%S9!e8+*T(OIL1E$#6ow>&toDh5l*?czhsS4Cd!xd)}UI4h?C zufM>{)H$#@mU9K@Y!PIa*b}ZE#@hy7imWf{>|+PX8U%jL(WesY{zBv+xv~K%cB1O>if@%x4jv# zNN})`lzN0A>*8#?w-uiZV+5&2wnQ5xFqaYPgX|lEO^zf#5xe9UWlED@K$Lz;zhVuR z`kxe{C}{Bi*jJ5G&~pr1Jaq403SJ?nm+qmzucG(#3JzpLy!COR=PMkomX@)|kW&!^ zLBzb=`{`-P)0cWbJ>8xLd8#=_^wn*yDsaS#a0hA510tt|iBXJ)|sp&Kz;7OZgRJlEmN}Pez+&-evS>6ydfjRXa&Xe{3M|xVesW(_I`r4KMrj#`~+>U3~g5p z)Ha~;D$uwALg^~svw7@D8?$(r93nxBzw{xA{q__}7pWRK(`%y4sPzB1js zkEw>{w}j>^(#?zcO!ecX?zh_rEAae}4l5huH*GFmstmIJNj75i^=Ta~*2T5>p#`0i zcHgG-T-QCC>^Ya{a#c(NpGGJ{JKx72EW__EJB;FEtN+$Nyoks-K^r<%giaNKg;m@Q z%30`Rw3FeZFVIpy^tY2Cld0&=>_gc4P!gE_zfZ7FW8^#oIp;ALkd8AiUC7AHTzL_;)Z zCH^9^|O(Pun*CTaw zGohVmq}TmOXGJ5~_jsiH7FSGI@n5$guWWi3A67A4xm;?SZRbq^X{Wl~gr|L#+GmSv zrJEe#slq*TKegLd?Df9lRIwpu8{~D=%&^-P(RhVXhC3h8pl|m4zy1YEh{5y9tvwT{ z&g;^w=cPvXbBkeJL!nBe`(=s7yf(zM4BSftxRPD;5$}mfcajUGEdN+t9Odx8Cbs`GGH)y-%dS+ z#Z^P*m$%B_C7IyV4@Rb0mAezqx8w;6;>~YXbi%Qr-MYed74ANCuits{*!fgmr}lhB z!sfr+C~+kE_rJ7Fr_y~raAXB_3k^w^;iiw)}R89r^7kV&9sYrBpS< zzHQr&A@;i;7kb&%o$Ny|?_1~vV%zsLv9Ihs?n5^2XGQGuiw1<)PcdL1_IatNX<~zs z^y0HUAS~glS#IZAG3YB4gXY`?wj<#WON>N%}_-P&)W`jzO|j|AzTsa`A!MZr{O5Q-X5f?V+NO!a%uRI4JUvhQi8dc60z z7umR<6;s_)G$2fM9RmiYx;ypMGnG|(QEiw=hP8!~q0*gJ>J>zTd({+#Dj6HtwjmL4 zPD-}FG!offq`YG>;xizsX1WH$-YkJ?_h;*G8U0nex2(VAQ3B;&Yf{Hf5y_l0X;Q~F zLJdjPq|dR4t6v(abL(w0QQ+1N_j}{k3*goc_lj{V8+G)GUikgUwSl{-FaFM9WG)fX z@qVnoNV+G-L+oAd{`HMu;rK(g2Dw|&`+aHaHw@4f06NwE#QM8 z0?v1c%?mFkS7suPURtaZ`{(ErQlt!G^39Lq=zI4XDE74`v#YyfZy8EIRX`URsc&g+ zey=Eg$SV5BXUffgC>juM{@!*mH@}j8s;IySuMWLorf|m}z7W}`#0x(})a~ewgCn*X z3m^S!$%Nf9+qe^rL;ks>rK4*ywicIDn?_wE-cDf8>+YRV~Z zwf7$2z3J|Dd+$O2o-Y=>%x}BN5gx5eRwUQvQV4- zR2pdsKEw-C*#s#7+2bf|No1G1OAezd(T|l3)8Wpt%FsVjhTh@Mr3_uA!Mvq0ejC={ zQu3yE)C#me9vuv0run2{6yp68+t&Z5XzvY1y+;}U%VRRz?7>UdFPU%$1bocEyKYHO zVpeNApE(U7?@DztN-84Irtb7@ZJ*uS->`jlej1O-o=+jF!~Ml(aJtQ4oy}kwGtdNn z6HkCIx7J6ix0gj*?Twt-q%EouGbtnI&qX0+R?_hn{EaQzK5V8rKA2pE)i|fHyWjNg zZe?M2No<xbkmW*w z;=t6UdK%g5eSuRH@{Up-{Xl}@6Pf9E^&aeo1e7~dPrc6TjM$^fJ&E|Lbf*XQdq(Ty zFUC)&+xl2%?7l2vcjNZBHX6(LqdVBM{g%CQs@H?eroq(29yTdo|6l36=d)fxRoPlxS)>C&^e0w#MYjTg; zYu7JkeOcER(e*07sobjL4|8uL=&EQ3o3JPS+pBly+j9o|r2s$dY9{)$b#j?a`Z*i> za*h2gz&~dbxzr}|yiJ5hOoY3z-&=2OrhY!1o=&Gh+^jl`!>?@1f{h-FwM%TZKFeyY zbC=s{eNOV`*{j*Na#BWEegCKiKA)ViL*Crk2eZ$>*Y_XlezvXH;OxZ}^T2JByUhA} z=IEZ=!k|Ai8JCE+`R;ma@+ia2cQ@H^k1^a@_PP9F3Hw~C+~us$O82*;*7Et3jIho4 z|7E1RiJJII_XzJ+yPKVG&AYoTgZmb+aaN$N0~-t2$)(rcj)+vp{u@0!*5-JuA^12A zdXl)qfB)#)J-01C3j{fgnBN5Ba-L6hf3;VaeOvo387Cs$ z>T>o$le2T{Z1t@Z$5e-L{`&2P+t@kO?B30cW`jn~ZKzG|#~oEMRM>gNuyd|q=Z`kO z^Nfvb!hf~G6Lh_&q++OcYYdvF3Eq9Q z7TxVfuNHdFGu*!n?iaZ48}45T(xcIxZ9MoVLu8#h!&b!WtcW^yRt74Ty5AjzVMP!G zK_3T{d`i}Ygdx0Hi9*d_RG%v!<9QU5#=FRSk(UM&kXC_n(9nHqV2aui__BsuHne|16 zOzHa^`vbYSON;7~?s=Ib+@)#_iry#@57q6+KMgxUuB(pW6Dtoe>)p))a~dZXj0Vi@ zfI*1-?UADa?B2`-_rj8jp_<0;zb&r50Z^;m%K}w)<+5XR96A4Gb}Zi*a}qsY?|x`F z=&{Zpr2Qf8-O|--;l4#s>Ja^_5uQ3y{oQZRk1JDutc>p-Gq1es$@m_lL-0FFcf6qF~@kAt5h|aYbR%VduI0Tqsb#~ET!u=UvBC~SkC5% zRcco$#lEQ(-&VMDt^>~ux2b#W=Ox-dw+~Pbch6i0g8Iq=gMnS`@FKSD{=B4gcR3Fm~SzSu;Je*&Z6!Z}R?}BGc5ZTkv{S#=gP>_I)S+bx%D*3YCu+NJ8*l2EeNm z6QhJ5Tg&A)v1|YMJuQB_Xg^hwP@`P#y5_MUHlDD2G{>%QL+>0|PD#;LPP>S>?}o!Y zcfvDrbJ_PSD`|xlKUp;_=V1yO_Dzr1Nrf9y4XcbZ1Q{e7`Bk}qIM}4t_>HutDrkM_ z#={0(oJXVLc2B?6RqvDa+{Qu%LO+$S%%{S=GLiT*yQ?nPlQj`C?N1iY(c={>^(^M7 zbXcbRPy;BsC^}QV(gVWs(Xs44ztrDnZNxppaJh;Ect5lxE(utr?$SN6o(S8&xjEp0 zwLv-)m+x%&+{g{qRZ@o-NP`aHqb@14EHAJQ@-+!}Tqb@A6(l_N^y2yD&%&V|(2nPvzbFW>3{}1*g+3;sAl@_i11y7I9w}^vKUl;2R?)d!U^2vJM#C%==+zW z4?9O6#)c0o#)g8W2mP#knFjCryPtvfo@aoT#q#pECGn{;x3#K48A5{L#Cap9j~-2Y z!aaTXNZ_R=YFFJoP%*}UC#iRQY1!pdSmExb9SFqxg!2X}CqTY7!E7or*hFj89l;(o zFJ1B+$@#)E77ou>h3T=@3(Lg-o9wv3IU~L1;y?O8CI@B zJWQMbt5TM^X{nCKEg#F9rS3Kohp^|0k!9Obv!dVMMZjpKZ-mUJWUsX|{-pj6hH9TT zj^)uRJ<_f^?nZFyE)~Oq4|llHp5TUYD9xjM>z7{%sPr1$hw; zcM{cNHkz<2KLu6-rb{NOzYW|ANEKJ!W&CwckWD;r?yq}>o9Vmw&6gI%Xcgi(svCes6>_>GAhs|3vR#h~)9m%m(Iaj4kg zWjOaLB6XZP^4Nc_GUg{^yZLd9d#Il&$wk;o%ZH2}v$})U5(k@fX1)XpzRX9RPHsP~ z&Fscc6T(kgnwzc7?7>fa+fOT*{beJVB2|W)y4$I|5gyoh;Rv$8-z;`X-93UL@D%$2 z$77@s3&77jUcwmVZgc4Dr586HjA00gvoG4;ry@ZJd$4|%quSvO4rG{bXznowdu ze~p3Jv!eQnRR9#?0c)gm@ zm5;?Y_%o+^kj2dW2i_D{y?@?y_UMFtcOg!QF=(>JzvR|&D8T1kn{PobeJghc{q8Z` z7i~(@Z462Gq4&vr-roJ*+PBc2ix94-$E_%om04-BcCASdecWpT1!^p7E2Fh%%w`VV z9LU4yN%Y<=rDgkYX3+G^jit1>1zAgz72#!Bc4w89?KLzre0pYO84b=V<0maQ>$mKS zLo?sx*TYk9MI8?<+a9NahmEO+!|)ACGuK94Uac;#^#hZx3UtllXbcr+bZCWzH@gn&GVV3)bW9RqOS7{rqUu zb2RGt5gG*X{iQnP1&Hqv#P_Em7BU3$^<`!I4b1@aHG2E{LYVI*Ci;zPT!vC?(!q(zx)X6?6=lg zWbYP~pm{hCmz7UG?H6<{`(aS|nfBuGg;02jN%1!A?D^7O&x05CNA;xnaB+Z&_A=i9 zQ?o%7{$*s3zQSV=@p}+4k&mHP-5UXtL_Rd#v$x)g@DOA+MYPxK#abF+)Yyu``EBAJ z46q;W4RtUuKpCR$DcTO!Zq=dgM|;bFCPKd!(Suaha0g=t@)5!kQP_ho(!i-JVXo>2 zgu4WStduK>wwQJvHe7ei$`=`gLym1RXadrGf(d--+fsLf$U0m+uhVz-kVcPKMXzlr zW;uaF-PDELL~p)&X9BaNlKTy@V7{X8$o><`Pq1d+6zI&Z!reYa-r8XIz;4=Gx2K`v z$|(g1G$#^^d^b<&FW@n{Bdoagb7mIt9>;`PzpoUGzDbwvl`_-l#LS>a^^E@EniW$~ zMv*O0>0bXT7pqLp?D(@xGW`Sd>_L=mUnqkhP-BE{S0EVQs0C) z;J`CsD>rNt?eiVNPhDmMzOf)vvEfrMmH(}lXX)^7K7p0DaVxnJ??Y%wr9xLAso-i7A zJYqDn*im@eQgKnX2uoAd_uMy8X4 zS>!?3U_UNgzUNv*0||1Emai0$2!ICX1S?bFw(`U8G7Ro0Wd+}@u7il$-2M9Vh!>VF zb(2>$bmD10sUL!Wb+xZb^}z&58&v+fy^L+$8f_Rw=a6aCW^Fs9qBFCPVq7oVx3YQm zt!yOs9(}6EbX_8x!h}{|=$7b|^K^nCZTwI;5CXKq^wDV70+dO-S|5zeB3EMHq}n zKcisu#Uj?RDLfTZ>ye^wF0_6;xgPGX(GLp-`j}m%l>L!HB)_oE)nO~2c41v#G>I5vw-ihQNJXy{tTy=b3?7!&rEGEd)T3YC z-{|)jjD9jGT$=e_3Q@%bJHM!-m|(xKjy%E6>#xz{1*2VO1jE$|axX=&+e9$LOiCjD zG!P8QcKduu#0T`l01|O2CB25cTVu+t`FAL{v}iUlbgZhQ-RDh@?S$SN)BixfDeB|$ zaID{TWEA#v9}>OBwfP;9r67y1HSG4SsXdS=w-uh0!`(HZb%ih3;gPXaIq+~*q(yGl zCrpy5II*--Do;j}zvbTj4#1?|^|QP1-jWIWfXjomU_U)!fZIp;0`^qK&#vY3uoW?P z+(p8IR5|vh!tWba9Acq?;TAhQ$ep!>81a5?M8#0IA$I;m`*%P0x$u3TqVF?{zVBt< zci`RwyPy+e=!A(qm@@Ge6mQ1AA%wcucPquvA(%a7UhgL0yxfV^d%f(bv9{FxYOhjP zxi)ilsoQWZ(#CDJmH_b3%sG7L&tLfgsP)Um{+C}RzntlR*~=cg^819rh%lUpD*yKk zh`qi$u!mFicar5dw}({ZXnm^g;Y`A@`cy?&%I&UClL_Ctz4VFseuIp)KJMK^{*h99 zKHg1~Ye(jz&kCLG&uQG91dA4OdAi$D?WPVXfTYXmBUzWPJ?aOI= zd9~DCf~om=vb8;#M?r#pxtcFiD3H;Ej~2t2q=w48wH?^aW(Ce!DwtzOmys29c2rT> zhU7!D+4k-uvt2E@&IN7t*{be+8|yl=bGzGf*{=5bn$BEFLsx5EwlSZrYwKw1>TGPy zmH1Z{W*b|x?Hz4LWEbTc=P&5Ymn^8sFUZ$4cZLS7*?hJp-`!f**p|GU4-cEN-|EVB zbeB|h@0V+}@k(ksJ3F$iH7&W4_JuXgT{)g*J3DIXa)O{FoA1tNa~&PcjrnMRN!?R; z(%IP73Mh^I+SS^X&()8Q$M1?ktZl5($W=^rzg*|E&Rom1)=oaQ<~kbbyP>f;*V;<*XJ5)x|*3=Rrk!c`mW}jUKfhuG4k2$_+7%c`jWbC(Ab*o=xXh3 zY{_Notz}jB?Do2vx&@lib*PU;xJtAk2YT5u{U!(a4 zSoY6#hqsImnzAiSw=ugQS5u#bAUWpI)>_ipo}HiT6oJBP0wn@`PIF^jE;}o?s3iZb zY$K>GscXvuavif1o(e{vQj_o0)C`ARoef_rX|2uH)YpfpHi_a8vvqzncbJH|gl{vx z0*%{i>Y8YfZK#22^#BA(=0KHPzOKV_Qa0Pw*xLEEY-fOW3JnX<9kDPRUC6^V`MSo& z0CZhjdv`Y9o~z4twq;w4{NV{B?!V|jF==+n#5r>(O`I{Kq^&mFk!z@nr(9jrn9t41 zysVKEl}Cu68&{7=x(xS@;zCYVvuHLJwdQbMI))HAkyPODf;ho)Z~tzMiIh z+ovX<3k0^laxLwh-C4g_;H`ZpPpY0gC7`2-UqrRm_GT6u6KIFG0#|1rny`+; zYkKqZuU&>Wy!SGde*4*9C24*1D1s3T!6nRI|Cfm#29E7C-EM_wK-r( z0zgQQnIPA?u(5;Hk3`BLwmi(ydSitvKE_Pc7AhPEp$fy&B<0H*2F83-l%FrPWaU%wKqo$=qGqUYpsOyBtMJnzPSe9 z!?f1+uFk1&dl+P4R;q=;5&5|ep;x@YKY|UM}&&xRs)cO+{SuIxOAO5xFM?n_w8tFM@*)MTbTO1DE0YBX4s4BzIPc5AWqDYoej6N zfaxjC0Fg{Am>d3w8RN!=M>EDnt8vD-ukxGFTh%SLKN7_^N8BX*G`H0?(fO3-wi<7~ zgxB-12D+lNrk1BO+FIvV*R;;hu`q(FVChP&wT0#7rE%Z`VE{X&X<;^xRg%rM)FP?s z8(T^m{91s&7}SFV=hro5^NfXLH>PUu$ceS!`uZG909!^PBHOemG7R?V?#xZ>=&0$Y zcL{6{Zs@Z}!lY$LwiAWX7U_3Ss;+FkCsnqCb)6kAsn^il*46>c3mfZYeFy<*ta)bb zL!L)0>dEPOS^Y(dB8cdOdRlvpHO*e8XklmTKu?F*##4+Q`<54m@<1)|+e{fCQ(34J zWAnqW_epK7t!N9_w;HL19`HbV7}^`M`l_@)S0XVInBgGsD zQzQhw)m77MJ`#(uBiDkhTyJKL(IfGP4m9E#4^EO~nkWxqVPifh$Vg5{=CTAxld)_- zoY$SqvDboF*h zq$X3N$?!}`8}mtIFWSwPX>}5aT5;KZ!|p9%TefmO`IGO0)~po7@VpOs{Zp%-FRU?V>6=szb(#@4Zi{ z=tWd422rMF&u6D07KK}{z39OUZa?#^C^WkjWi?;Om--1~;4((8k=RI@Eiy9#{8jKa z;P0D5C1S=Sz~h;Kzp`4?@m>ke{}mj^cH7Wrk9JVfuC;pmr<{2p7(-Zv68 zV6d8wz(Q?{S}`N?NENM#nKi9M9P0P!YG{Z|68e>FfE3L+LC^|!*Wd!yNmD6O0oT%F zpc+P`A15Yh9*W-KjugpciI>RP#Q7|AM_7?HObn3f z@IuD3`r|Q!@z&Ok&ga)0Ll`ZPY>@{dDH2B%SReVwbZYeM2Y+e7v;d)k0|8rJ1_!C? zy-Y7#n-*ym<>eD%H3M^^4rS$cOW4~QvJg}j2POb(a7Y{mF*a^oY8{1`0-eo5UKEN) zMFL9ZH-cW7R~Fqs^ft)!1ZnNfU2&IR(-N_%$FhIFN!bHhr5&3Dm{bj8Op5#vMMVz6 zu;1U?|1y&!lI)w4q>5yS;saiec*F$Wj?|53z(}s+nFjPTUI57ZFnhu zaO{34E4Zo}>zbN#=|$@2;zWSoA`Kz;j>UgOaQtGf5(Z4a2Z&AhTBxx;cGtxd;(3H`uzEa|Q!1|@DCgbm zPAm(-T15L8HZ+`<`t1bo5bgnheyrlJ1}8FY7}qUeh%iD3J0r`mv|2C`!tWM=L)?K> zkeAqXO>#sEe9}6F92BIqWhc9cCNQV>!bAlvyEuj^qc!3mO%W1S=a9)AxoNF)g7p<4 zt_G(W8J!YdQNY_%Oj5=uE1!foQvscuvat~aA9>zZ2o~q2gL!()d4ePl&ATlzQ?;et zJkze$Ji(`2{YbDTE7gm9R7*4o0oxQgfF<=u)E>F>&Nbp(Ttb4w*j`#JE$tRzWa$wr zZETMs1k>^pV}Brsl3)mX=JMpJ&MkyG9imX-sJ2Q>ltd^q;bO+EEHgw)J7#=v3=%ev z9h?wsnISL&8gqIQv)q;b;`2XR-zSq&^kiykY?r1k81 zqbpk!<3wzJy{j?jh30;<4j4IU+*e2LHhP!QV@Hl^=_IJO2mL5Z!`B-8?>&zE+ODH^ z-DTvc`6EZo9-sWbVG#l6g(F8bR85=2zb!d%H;R=xikKlvptUp4ulX8U6`w|!Jw>!_SEH8e4cVgZrSwyr$Q7U52eGHcC- zkO?{pVclsi*eFyz-n2Tl2a;0@qQ_XmJg93(efQ}$AG4GhAg!!jsbbTa_0ri0Ld z#E%hGF)HO0B2?##6^!TWIo)|yurYPC6wPA9HV-N*Z8b(qDBslBj@4WvSr5vkVlq|Ib68q=02es(o#<8ja1WQDU_Hw zZ^KAQO3WnM$YOrv3)7g3T%#5_n6+(f%~)_IoMh>v74jvhjD?MmHXst-t?Jfd*|)2u zrCZT^3HY3BI7SkUCe^g(l^V3wgmo-81{~@UMjz=2O#2*8eSKq_nFg^QAeXlwi3+xN zdrcP&to22xp;MYG2tA>iNIoH^n95yVjG*=`B!cC61ph;Fz=Cz=Crh#yZ_{a51L)Q@0{$+$#bX9-j`k_N=1Db zF5el+=Q!$tUeEwI$St@{3FQ|0fJ5TN1l1kFv=Pfp%pWj!%GV0?XbM1tX9T)OTp!u! zg;qx8|Gz zCs8P`77b8fM9cF^n`^RHydIpSMDk=Z9+4g)4wHmm;+&{&9Fo0>_?0*h)}^$Qj~1lz zrbgnzv0_fk7mIE$J_yjK05F5Uqch|gN;=UArp-bxT4AtfHoIH+A&MR#Gg`9saBM5? zwSp&V)d`laoT|NX_QY(F<)E{e29_mqTEwzoghK__r3ya;^1|@hHGh*#{ zSz?}fHD9tY4x<_4C6YBQ>oA0EftVdApB+H79Q`W_Bz3g;Y-p68MlRIZ+&bG(Iu^h4 z3|g;WOY#aQz=MI=qa2iYu0)xL7vp86vUXw1`gfBw6ds4Klz~(joV} z1bv)^I*1?04^tFP(2_}r9WNU#q8oKve;bEEXxB?6g^yy;ra}k2ex~ z%So_U3q1^CY5RyRBz@;ni9!O;8`eJhg!dZ;^nl?$k7fN~$PgtD60QTqtWt}@OlW#0 zQP?lcrMa+WWF|(L=P1kJrJ(1LC?>~mM2z%pvXY3AcsGvs5L(b9TY^yZ>na2V;$X8` z-M+{s!F7nl`5#h>0eO!pAL-cwBi_fa;mQUWcLYT+E zXh?FMK%+tqizMP%?Yaw}h^VE)DRPTdr(-ckd+u3sPKc06$OA;s7scx~{ES>Z(kkYJ zNTN1vT^)6~NRs$>FrRAB5&4oalv6b25o5XhnEG6Mb6dB}t}#Uafh0d>-i(Q3I=XNW zYT6sewENn<2K+VZ-s&a4$qEoYT$pIw?6|K1UnHN*Vs1@2BgqmDx&dG!z$0jwL=pm=&3MkSeH(2H+NBQH@ECBV7&%2%XTQ+Py1KHz2* z>I-BgCD2INnq+B1$JR1hU0P&itD#`Qqfe;8oKI9VEy3Lv7gu!(a(ZJI^JhLPhL zOFOfGjF0jibtNcRR(!66a;dz}tccHPeAIo>%1;L(NF!6VDPN5u6k#ux zCIMFgb5-3tPf}#jr@DolWQiq1Ms}S^I0Cp>f?^qsZ+Wv~#po9*E`5|o_8dUOl~7$l zX0k>0myGFL3CxfVE*4ErX1&a3-;?SFyXAy4H~-5*M6^ohqUS+at4j5#Br__FQ5cl= zpb|wqGQ=OiSxAY=WfKZRS49BLF9OI*xPTR}?^(YEm1B`S4hC<4)htnj2AOxW?t!I_ zSrv-y?EbA-Hs(+J87jWstGF{+xd%;}I(Z%`~`^@yOr|g-edb+6G3eN$#6-^>f9apgN zlb`YnYVZWo;gLCHEy6nslQ-m~L=~24yH<;dwQn^+zSqv|uBjnq9blF;9%Y))(`t@T zBq0*ob>hKcXPYKAVI1eON*Y@Va^!v;q^vJ-2Fx5)R_8kjCZ)8VPgC~!RumTV4^0&k z{gCS%XPiSY$5wQ#3j1QsXn2o+e)1NP3!msX_>O1=HNx3N3m}!L79vJ%^HDb}o`r<4 z#SXp_)h`W6aXAT{a&!PpYU==2dZe;qu8h=PWadlOdGL@aM)OJL`S7D=g#9ojN6BSj z#v(S&L`6nJMRZbPO8z+#i{f5!$yf{RjEDW5#GW`*L{Z`n)=Q^C?JBzhIY4_Q|&3} zXd}Vzhb_uUFAQ-aE8!j)=evL=9>m*pn5ogC=re&DBWrwALYn-tb9hz4`>4kD5?>oY zg29)OLsWuCkyoDbQ~ZE|)pmvk-oA=f27xr}E(*bXJM|vxo*>@Ee3q_?+a#M)BG1vk zJtG2gMwEt`krvLewWNh332#JG4Ao*k3cSZdnAj=ax6@Qq(TmPkabs7lPmkeR`obrA z5zz6Xm2Ix2Kf9#r;Qc1g%1*AXo?V?9%J1i)eXI#mwx&>ml&rN}c-A6sC0I5%3qIU| zk|pMY$AR*&%10}FHVs$fdkdNQanakKVZUm9z>ItyGgfi9I5v|@ojL!FVVD)XG?O5~s+BRLCP ztVXNr^MoY;xhQ3k1#VJJb31r0T!lWO=ATf|Ykf1!YD5pB$4_l% zXyju%RdEDa{c9R=)do~53`2WVkq4A)X`{X=J%8f_j~<993-6THJ2VBHIHqTQ&Bg zj;ZT8urun+oXv^*O!JZ?^d=&i)TH@AzRoafwzqMzheK^7R1B>_yGNWJzRp$AZS<0N{AP84bg^(>R*so$Dvs_ZT75o^-!rzd@9uOfQkCS5aII3fAD@w=w zmy&usG$nUD%#`!@$2C!9NJwNRb5yLrq9MW@3Yd5fJ0yIF5z^_;qxh z*MBk3H~5mbt|Zd}7ojL|I^nfgXcd)VnY)MM&5WhE1dI0ty zBI{n1a#(Lml? zhPkmdezQd%SW+6TZegdXrbRIG_+ECDhDh0RRZu2o(}})#mi|&KgJ2dXguz*9lfM;6 zJWUykG>O%>6>3^YCy`U)>{Mx%#x!$mV#j<_#MAr^tdeFGYv6z=kC%jLJPZ2Fu(X-h zMoQF&C7+5onAPWz-`tkhX5E_F#;9aY#+t1)k`Q4|O5mASl@xHW*A?aBt%RJdKuxK& zo`@&)6XCtYY6#m&@zbey44oNiV0Wt@3ht(PEg>G~n`uH(L^FwH7SW z6&oqw+V*Z^c9@=&7{F<{i5Ag*jAV#ik^%(ZY~et;l(hWyA~w}|fjxzpB$a{SOyw*? zt}uvMxJuHoH|}KHP7F~RupxVXrnjeMTFOcEc~VVZd>&T1q7KUTnpGxhhn}ag1pVUJ zr;E&nDkd@2P39*p4rU$SOz}X53GV!i&x%8Ij<= zcPvl3JCyN7QdQuPsWPWBmFDedut?~ohf@zJK9sF&5+@0&CVZxat4u0QUqhh40ybyK`;RlFSyI|H0Y!>mrqyPOTjLh#4U~O=j-`?En1T^+W~TS8 z8(SM>5$erI!uzn44ee*{NzkXF>kEO=X)o8(6Tk~ znFVNA2zW@UqzF8z0fMU%(4eI`!wjq_i3iu$1dmBcoPswaeGphZ^~{R-YEzwh=MA)( zPnJZmG@xlFkDFe}rxMJv`T3|gORWb;u!@V=14#6Pa8xAyMG-B${cOK)v}lrv2BM`n z)new@sjT>PHX|6qW++UXlbw5T)nxNHrc9f`hgh=7!cBcmS;`cLu{TW>-{CoSNBn8L z_g>hKnP%KhcC}GR(W%IkS1nuprBC#u`1jt%1Q0cyZg5(&+5|w&f>sF0VeMog zog#pvB1tJiGsY9Vvy{9b4WmiPp}F_wp?ItrepncVD_ea%FPDC8f5C0VWtKWl$C zHr1SLzO`Ms#|Cx}nQw1vSO0kXDsqzj4knaTTrpKsABCT6>B=unotNNu&Egj#61-eA z+z{SF`1?L$^h6b@I`SoKUSy!4B8UmJsRX7z*d<<57e~{q;?d)HcAaGl>)H5oB%SDp zkyeT4Xsrb+8%f9(BpKD-#mf_UVn1<5T;1vS=ja56MK$J;We=D%N6A+G-6bqnO?_hF z=_;Null{>MN+x^Ud%xI>Fy$x>%^nou7r`pZTg51q!jYCDqqd*fs?hJ$~o+$?A`d)8~4g#ww}EtY%eyeWHRIt!&7ej-f^1K#92 z3cYy=V=GSCw{dHUvcOFlOGbnTu6DlH3DOy{E zw&z8H93^5U6yYrkJ(^Riv__PkRU%VpiFeP+2lAm;4^N+NZCu`x+E!U#)7`8io+uGB zONdU>IYicPW9v9g7-?W@&V+ZL-Fs^_@tLhYq^^nD4D9k~FCB<5VyEP#<{uj@rZyN( z3}@%3_(hp^bLaw!C1O6IKvZNv2vjDwYD1z>SyX9hPFNzp2&5`G%to$nMN7eWK8{iO?^7s$limiD6R8cZ!B1avq%;F9$ zp>bz;$LyINgu@J7=8 z@5XEFx<9gBk}{fAFM+BdRW#i}wJF-u>+mo{WMlQI`GSe$wO%@Z=JznAWjZ#ks5H|4 zDahzqILizbzwkW<*l(#rFJNo1X)z8|J?L!iYEf~UmvZ}sSZo2{W_);t(UMPb3&#SG z=S-sM;!p8>l`2|n-7%c8C5=4e7S?JTZSX4#+(P?t#<;K81`?GZv?(rtd!Jf8>C+iR zpM|ODs-N!+#fP&qa>N^hp;vJ1TVRm!vG3q>+T*bUtTuS?Q$OTGB$p6?{`=oUt%OK)S}c1Hw;VdJ5kAyRj#-Lp;EMakY4n+vm* zBn<4Vf&%HwB1I2Iref+-c~IZRDM40E;l-WFF5ZH`2vZ^_SWMbV6lSa6r3`%4@?_3# zQqis`Qd5hKNmegFyRaxZ>y-zlbZuKr2eEwm>F81=ft-I#sIDM4A|~xW0U?mcqefg8oo@7pP zXl@P_&M6mdZbwaPUK5DS?|!zJ`R5X)*?kGmAEdKZq<*9vjIA27jkVgOnqInQnO3n< z8aZ*O1HRKN`aJAR!dnd!EfJ@brF25RGJaak=`+zbH#^Xh?v;J=tl*Q-%KH)A;ADgJ zu@YLdzOE2{!Lp8Yd5Sn#Ug^3j)Sas31Jk4P3C!Z|F`Cd=l)5(^{|NzFDd zK5f(EP>+3AL{Tvc-rIeb4~Hr9i(fi_6D#TxN)0z2#FpvV9{ryX>^n%JbY; zLv?Z{b3~V%FlC)JbtTcGbT2&Rm=`KR-}p9;q+SyEj(Mv4K#-sJMJjFE4;o&~)c%8p z!4}C^2)pCD_Gz!QE35g2rn7<$flo{1*M4Ku`%>aOaUbn?z0dF+4<7+=UxACRv--&{ z6LO8qqmts}>KSr(F856OaZz(A$9kGupF`X3?WN>txn~vWdhSu~kR*=iZKu0wmMC-V zvrc*8k#f*fQ$241aR#@-%6lK;Z^^=*7@P0q(IHz&(Zt!qy|y9>`)%^LOQF-y`Q-{; znz9~O7B}^_ZHXxH6sW#y{tWpXvYSsKFC`_)d@hN?I;z=6b@UF>Ke&3K9J}#dw#@I4 z!}R@Km&b31>hJoO9ote8G0>ATSs>!j{4vq>KJ zac6L(zAI^Io9~y#6F)B*6#rR=zT3&vf89~BW89}CWFqM6c0O>rNug;cuLR3%mEi8| z#qG&z4$Aha(Esov`Mk0u1J?MsY_xPyqb5Qa%kdq`3xMQ-qAu5*F z-7gD2zI@CJ{R$$dCG`vdFMzu9!Y-^jNAljR4kR~d&vac6=WMJGnj-aWN-4MdhN2w^ za@+ToAnIW2?_DH_AFee=?K_!fFP+JBaW@4nah3_Ddx6fJ-sGvdHI;IdthcZ6wqP0qqk({}-euEDxxpU}Q>_h*=9|R-FqPKCxfr;b>>#?i z%2ubZg;lBzye^1dg`67$sSW&SnBuE)$*pEp6f_7OU?YA|m^f|V+pYQ0=A!j$zGa1L zgUmLN;Oh7ev(WLd5LMd14MuW&xeGZW&V%DP;{9zB;Uh3>Y`PX6 zWJVtkN#sh#gR73m28$-qhATsdtKbHU&Ns&>4ZORBWSwV6TPDBKu1d>0t+c$?O3S;g zw7lO+8~pPJQ*b00pbbP(nIY@fpy`BZ>WI0jj+pD}h`F+km}~2Zxw<+^{Ge=fq}8R@ ztj@J+HLG)-gp_L}q+A~%A$k7m5;NRgq5*+8SF0H#Hk=f=#!&OUW>J|az)uI#7@D7B z9w==AaYixQhBfGZqTNY2;)|_tR=B+w%RACq^kwq^jJu@y`6rLc*`!?M{Ls*x@2PS& zO^{ENNCE~bRib`>o!>55>zHZZaB#x?Z@m3p;} z)*P-Er`SYZ6DD-g)sbrR!zfm- zIgDb9Dl)glkWIrL%6XwKpmmj#(C$w%H5=3}u4 zYxm2V6J^cnU^UHKO&U^1nwKo2^7%n*8;B;#rb?$jt;ICPby0J~6ZR|aDi;-eOQf|W z%QvPApKG|)T#~8RY6=U~m@1v6Q}m$H(nwP>6)i<2Uv1{O(5{*`fuoc*@GHTZ9pEpF zBvEbi8VWIk>!jB87@0IGi(|?3L2DK<^8|vDZGswKjf!n3qJ66w5t%nxFuWzi)(Il` z{-LK6dHj|g=3HMjXqo-j(wspxtEt;`(5+po8|6}4vq$p2G(!c`;AqqPX5L~`@5rh$ zU#o68{K`BXRm4(gg4Bxfyb`}H>K( zhnUQ5t0^Ky;U`<&7lodV1KG`#wEkE2TXr#PnSP7s1+iYS#;L8IWo?}qB(`_9t&!M# zG2=!?hiG17%jMSWXF~H+Y_G71SXq1*HH#NmbEH91vTdpTOn(*+!!$BFGTIu&2J8*V z?ZsaoC2g_y$o3F)_Jr6Df}V<3Ja6mwo2PY0ue9#yL$|)yJgqx=rFBOiu64P~$&DhU zyv@qJ&|(?v#UcX}vmY;y3a~D%2noZoH7_K#T(~6_Qm!&GYEs5aDdR|C3r}VkFbW{g*oW?P=>%HvqzOKi65{@BDUrSpv{ zHVr1NJuDjQr!Q{2VtoY_&*K=_RwB|qYDJ-JlIq=aMY-cMvRWKF+8sc@wyF+ zu2PuIr^3q`f5j=WmbME%J=zEu6`#({rZv$LV<`=c=9MSqLdtE~av4f#uj$-2sUc#o zi}n_YfJ$qaa6rvgQ|Upj?xJCsbivl2cbQ$c*wyV59KO;2a@wwrNZ|w{injvUd2)Qd zYW!CvSyipB%a-!Wju>TnRI4p9F|S(*lUo1%W|42&Rg%ck1VvJ=H8*88 z6_+Yy7G9w>FDq&m&x9)hSNr)N3({6=eqlj1HEqK(bJl|N^XSZTsfutoyfwIWm<$M5<(9^UGLW%2-{> zSY66k?X|A`dw@M;`#Zaexk@RMKeZnGGW28;7(3T41sB?jWj1$ znnIf=&97Cfd8GYvAXC$@$iBwZb1|BS?S}_b7HOOYrI%WrZLO;#K%Gmh4P98+Fh_jl zPSNc{Ar$*@MG5gK(;t6Upm|48|^ClQNWu6sSP~r<(}I=e5Lewqly;- zpBPB-iQ;I$eL|Zn5i=P{z*J1vejS@vgoqo1hz>BV+^JUfP0_^f zLla}bsO1VE+Nz1hW+|a?t62d|#g7%@Th@*1Z@0l{8f<@;VCXK8-YwQU$mP4yt)n9+ z5D$=NI=g}CvemY(g$sQ}{+`yVH1RNSzXA_K0VF6ZxL?}Cf*63FnbH5{hjCmM`q2R* zPB;bJlnv6nk2{NUO31l#|!Ud!wJ`~Xfu8S2ELT-z3 zXj!i(+oXI=hzJwF*BZ&IMQKB11irtIk5%~2!##D_Qqt-u!M!G;0QMJ0Wl-?H^ zfhe*>8J91crTp)a6__ek556e$icq-&Oe+rxzR}opMJ5rDe)w2RiLMAEkY0F3N?!3!aa(7b{qUa8yKOU<_(?*09qtFTFOl)i-@_Xc?Aqt;wB6Px|@!Jv_s(dk_RaR%C+`^FBfuK?9giPELxQg=VHt9mtNy( zTkI-50PeKT|H}7((!Go-jKGOLMoOnfM&Ma}jFes%8G&!>W2AIRWGp+9Qs~s;P@#+Z zM@ABgo*YR)RMW0^XDMA28G)$g87W0YyQx}W)cbL;c?U>MZEtYA^^MWgjzP6CAU)Qm z#%3u!A~FK8gJ-1llE?_e4xW+Hn*Hb^=sEy@3={>v~)#<15tLK|bKhl`4D0bgodTlLnr^f8vUEsg^DMXaV|VVzv% zf`Ja8ZNb3sqh-O6D_k(7BcqrlZazCtGJ==QD%g4v?DK-Y}^GO|1`2jR7%(HZ?X&>B`6m#15X3QpFgHdLx`g6WBm{%>{HhM!ZcLky3k3XI9u!kDZmt-qqQ^NP}< zwNzomZ=2&&@G5Q9vzPZV?r$YJT=DFfR^&<+*2z^a80Y}n77Vxw zS{4ks!UaQ<{cO$76S>kdPf?S_KuAC|S36IHxXNOXtPAwOGv;awW2UD&;pS+qrpYa> zX#jd&Z2q7$Fg~KG0m}b4;mggcb#s;KX+>ydgV%Sf_7?41RNAVa`ZoLi4VAI@yvFaV zCWTf*gu;A7q!sskg>Po1T}2vjI*`VJ&oGi7R7&e2Bk*;7jFfJOjKCZF7%5$Lj@PR4 z#5eD?mg&U3L;GFesz90qK0S~ofb>NB)t#kuQDB?|zBZ61fOO8+rS!AFI0>Y4o{>`Q zYV8z8t+#yXq64H?D!vo?ct)%Xqzj&r(mNs}@Mn=MT{mYY^PJ~mq#cPuxqXDrP-hIvy{mb?A&iNCik<|DfNuM9K~ zHQ#37B?V;c8Db%o6Lt;okp55bfpwIUxWWh=*N1>=P4&v#a{^nJSd2WiaagEXB(2)z_gjr^ ztEnn%KWIw`nSO{pSz%%D)UUM`S(%gdrj75gJrH+aLscTR8zHm zz193c)b`D$<+}%Kd+~y5s>}~t%`Zin=b5b64VL+t1=UoU->{lDN111utaAp-{PBWn zs?04`bJr+<7=KzMDQEhlk$Rc^dfRGhD|=bZ{q5>D5Dc%hYvmP&rg?<@@=1ZI5_2B2 zbtYBfFbdpcB)M@q(KGe`TUPDnRduzjA4GatA-DYoBOzA~D)$SN7dV@d z*4f5(u3d%g9}T`QlJc6deABreFL|ZEN{@ki7|Ad4l8;vB#nD+*MB(ec9 z%4l=yh86{Eq9-;dmTzcLj*8Z_ay`8rM75gtTR);c#rmPjTynNksrhHSic@~V;J-yu zll_d!p@W6hY&C1G*$d}yUZt@>d@Y3g3E&Mzns3c2t9J9Mem<+5^hZ~oE3EM=?JD!{ zlg;&3n6v9*iA776ACcCL_`1LIcr@JNPXPA}q;cS0M)ET)wh|HTEe(~sz_fC?1Z#J0 zFlBy@QqAdCHFva@_OPos_Ek|{A3DPBqh4rN2^+wd8Odu->D7_3uc4$sn@Cqv$0eB(~TA(y~_X%u=G!%CnD=rejLbglyI&9dfWG|4ta&(}T_{jvub( zu?wm>(o_tWE9T2bJj!36W>*YpwzwWF-0C+>2)^JTUSd@M=|}X&z!%NpgWN2&8e~ zx66W$+r~$_3KP5H_eWw^Z8MC;JQF+13wki90%egJE&0)-S4bs-&sg_%8ve5 zlE3Ub3++Kc$#EdPOgg+N%$RW?&XdSX`vYdozib*WYi62*AF%A!eS!uw6n{fqu4=6@ zGXfSEY0lW~VW!n%?W#2Dq}Mx`?7f23+KkaBD&h@d_B}{Q}?gJ$Q2#b4{qdBMxGEZd$hIk zWV4VE{M7cU5)9Ae>+Yxi&t>#Vk>#eZK$Nx;o z5q4eFTy*xDB{=`}HcXycijm2G8|p8T05&TB6REyrZMi;CAV7H)n1YW;yHA1fsB5dE zS#NZ>`g(W1P;VGnGO~oaT*V)b+HV$L;_9inr57(*T-0A8UZ>x!r6yPCc^e}QlkQv_ z)vE7AwpT{Bb!+n0w0yoXyxFdD^K+8Trc=VKD)vWo$y&FdnksYFYF-*;o?x<094zzQ z3#zFyo91w9`lu-4#Rkucq;m|OA4$G?{8u|qG#=botOGjQnw=Wd{Mgo+XzvRrcyzaC z`Kt^c@IFTJX(6SDMn)jtT=k5!%(W$xo1a@u+LtqDHVXkrcE!vkp&__#o715XU3N#M(kr0s)e16v#T;Xs-M?)~C8PT&KL zCYk|X5lEB3OOu-5uLia@@LPd23H(7IwSmiC608lpmyxtj;Ku~EHgGbKCV`uin&7Jf zTN`-LOM^_{gppJx_@#lZ4Lm!LCV}S#QXBYzK$-+zWh8AM{G-6u2Hp}#lfX_0Z3oYS z33oE>h<4wzXeT6K41foR0QeXSgsMlt764_`M-0X|Dc>G7+BHd>1UD8Zr7AFnPQD7` zjjjJK(tpYTnNpM^`61x#Vu42W1}_i6rwyD5fo2N$wj>^buMTW&;C^B5P63ZhWkKJDF3+cMO5MCw>AxB(SxCxRBHY zK0T=kjvh9JhwTwOtPRA&q_KR36%vkvXXx00@e*~M>}PQ(Gx#W_4S=J9(a`I(Ya*zuvmT_1Ud6$;OAI zbN)Y`P3wTB|2NH{mba3$%6BF=9pQJFARX10@KTx#32*y322YQqR~me0B>nW+z8fRY z!H{j>Wq~vWywXVGhesUh^_l&O(XNl|WNSObfca~SfV;;0=gtQ25lL^bXm@FhdY2je zcqBc*>y6U2Own&FQ@6G6>FV>DoTlh7K+G0kK`+8G$qjoC%~h@MD2A z39RJ>(7qqp(JfqCKQQxPrb_OG_xI;WYTN(6=PtpF8DKd7I#|8~>=;RW{OOj!b&Yg< zNmy)MWsYA#M{(s_B=7nyXl@~MbL%aF)bo~}H({F{JF3%=3jl=2S( zjx?8{fFYRlHt2nJ7si&d#;4j|ay~Yij^}md4+!N|D}S|1 zrr2N z`?E*_9uf4N0v=@~H8Gg(RmK^~Kextz6NTKtTG~4ZX#*b|NGpJk2y$(Yik9WtYG{@= z=hXxTB#E(rNRqRdz(GP){=G~o_@y-O4wp=rc_7m& zYvK8!r6L;`Y4~Lvu!_^2Z!O@NI?{zwt(>dsnl!<+;+pah+~n~Hr!o^{nu-SL|No1& z26EetG<({929KU9Jsy>Gg+j6gb`(%l08vPz^bw`^WZk?s@^{D40=~nFfqQJ6R6SB$64NiZAY{lI@W&WB$%WHuyuKi*4Y6 zVRWW}=%8AIqq9tx`V{vjs?J)I#aK)DDQm7)&hqEAR`-oT-<3d`(@#|7?NvWpAu;J; z<|Q8p-ZFKW!FG^P1Y@bF@yvc`12>c51IA`o(JY=P8|XkhPmVGG@jT%I;(5Xaj4Bo$ zC%Ppn{*CqN8KIkPU{rA$6+a!grh%Uiq&D!nK$-^51yUOrRjj#!Q}N|i>%v$Y7?qnu zxsOFIAmS_T&lqw2gVo;g6i<<{0^T=}CV`I#q&AQ-6InpUOg@tYWXyyM$e0NiFxsYA z$*E@jTBkO)W)PJIMrk>Q^<7&NXb_i! z^+q$cRtFz$`sjpwtYMn0PSV(TL%TbLHsm|8hB1K*C~%L24IIs}8i*FEB^Zq=iBYRz zPFx*4u^2u-^&Vn_hVRH1aF&55;(!9bY9zV&?OW)a1s2g5*ZPsW(SmP@2(AC2_|KTU zuLo5s{lIX`&6t%rHq!9R2M4C{WY`>RH3!-+2QrldP=pP!tuya{WMhko+FG))&!A*O zH_wnkgW?b5F4V2M$b1^EBpsqbb$MDO1!^@bfe5M140o;}Xvm^1H}~rwA*qr4%tE_9 z3`+-DJBGEr<9PFbT31+|FW7ZSb4nu{*RzzrX7pvAe#qTsp>U-}-n1(h?dvgdX@B`W zD-!%~{;H4=>*O*<8Z1ZVQvGw3WeQWQql=m$nAF~+LET{4Nz$?dElyVEPOBM$Nt>tH zn0HRoY|J~0xiZoW#q@mBc_!#yq&!W-A-dlNrgm=j8dDKdv^TWHi94|j$2$%<%ePuF zme$m%&;Ng}&y#%z;=irtLH2l?Q-_t#wVKO~iKBy6re$aNb~zyezvKW{b(A;~`S5tC0fpnWWU7u5Y@DAItzKrMbHUa}X?vcyh^l)eU!Ar7 zao)3HG1)0JCJt>@nU1mp9-PmtFpW0+k|S_c+jDgDx_EjdSG;LTrmF2> z6N7C(+!>Z!u~u^zJK(};(~2Eh&D)KMBcoNO8;yz6p%tdlhF@|tuwv0x^9VZ}#VNoF z(@0aEwks^Uco-(XT(lZa?VS~lZB21%k8J|cgVU!R1`-ly_D)*kt*dtkrJXBnzkEetno1cIw;D|G&w;7XUeb3nO6+1`oJGShsYpI-aLJ>zq$*4R8UOh`BvyZC zsNMzc7P>GEOj|77M#Y!vbZY9%_Xc}eeT?dN3hJx^rs|a623B?aPuc1UTK)IX?{VOq zk<@G}W+^QV;>Urh_!Y&(_o6Sg#;yr++CW;CXbHSAa-lm{KPPGKo5rX!5=~G`}#WBLh>>68&fv`TJ7JyZyIE|72J3U*H3O>VM_^ zm(rwBg%Nn#uTw@!uQjSL0zcfxNNG!C1itz=X^WKp(WufQ@c#dkGEzFusKN-m>i&KN z2Tew4YOB`i)~wT=Ev?h7S*JT&TBlpHPItDnPPb;A?rdqDZp}K~+0r`Qnsw@d#hW>| zk5LzVDZQ_QedmHhjsr2Wj$x-_@=ndP2oO^Q&vikH>zW$@bW%ZN*AT96!zF5 zZI#mgMs=-H7~e5vrSt-$N~eI2+$m+GG+|U>1b(ECkC>(UBl$FxqMwK>!x86Brq_p!Mo+^yMG*r%)D2V@Lq0)QQ_WZXD4r2s| zG!l$eBEeWK5{y+M!B`#%BpWCr?-*g=*boLLflPdzIAfJyJXQ+>V<8MI4Pjss$jq1g z8OXHvLMZ)}1p#3M9u!EEz{3M+6_9`-odpstyaY-Q3Jd8N@bQ5(34HJG2`8(89}A>O z;C(~TSq*$hAWZ^^JYEkQD|(I(k7!yXMqGLFN6{iN`wFjPo9wy z@ktng1Sii(iRdJZKthveq(p2IMj(O7Gg2ZpNw0wfCeKKT*d&ZV0+VN?L~Ig9Ac4s< zQX)19Bap!487UE&q%%Oml4qnuWRezvgeA{NiO3|3z%)pe_Z}^IpTftrtp%hGdH(!ggMpTyv^*O1H+3zU&~z_eEyYd(`rX-qK|V5Q;iIJDAE8ucA{v0asx zySCDDFIHOauu98)Q)#&yDlPXorRC10wA_!Bmb;A7a_>-D?g&cD$6RUoAj)|eJ2I31 zCNJNH;a&Te;T6;WDTdddfOA8+os*0cv%B48&5N2t_d89Vo03^@ud#!?2z2Ov^0D-N zXCV<5^m|?%`yDjGLu?QVF(R!6jpQTNf)+A9L5@9KA5E`K>HVB2l zmDYmBT}vVi5^2j$dLy&MOa+nbC2bQL0kW?mL?UKd5gKycA$=7gvNWU> zp^=p&rh&xjkye97j*?V^LHszG86N~=L5e@UuAVwp;-K_i>#GYUl3va}*J zvYSL6B$m6h8Z>g9q#7jBpR`)O_O%u*8cFZc2!7wQAgC)VnDl3~S@xBX|E#sG2W12^ zQyn9P_gRXqj9_wY$4KGIQljV^I(od4H#dQi_;fEG17{^+h@IT{HYvE5<1DV49e>+CQc6wYtmb#|d$i#|t} z@GUhynm*}PKh#PCA7eCm$Ohb2f6@2BIR~UtVRI zwcoN_%KZteBa4=hSfd^r?wnTxxr5eEXo6X|Mw&IdfjJj z!j-RVLdw@Oxns+3H-wA3jW>oH=@t2kCS3ViC8T^65>mdt2q|AVM2UP=5KXYRdOqOFXS&qSEIR=xZ!6!?D zPY$vjzsqeHlRHd_k>YQl(CuXH%=?}ED(`>ttK1IBuX1}Nzsl{B{3^Fk@~hlV$*-`< zFxT8}@)9csV;4_IK;n+j^2h)}WOEt9`>}t}adBIE&j@@}XfCxAR#n#>EZ)In3TEAm$S;U^LrQX|}1{ zIVF^oW}7O_HdUH!sx;eFX|}1{Y(668RLU4G8tKnv$t#Vysx;=pSDVt9!z?XLvyVmT zIPAsAPXAIS7WUUM^SD==PmMGWnth95oJ(nV6=IZ@TS95MDU_BwmeO+1Qd;g>O3Tfm zwA{Ir*59kLL_hy3%$;fA0Y+NX%xqpWd!m&vh$N2K5B| z+LKf0H5)7K^g`~*^T_pd)8~`hG;cS_lfkDtz+;W1DShcdoqUqWQ~7+3 z2x&gaKQg%pk(Y;Dk8?rLb7|0Xkq!j%gWQeDP<3JKk^ zxo+89x89smH<_`%Ygc)*4@f^`koKk{>;Ne(7p=5hw$gIpJaa1MsxwoFk-Gyk*VFA+#`CNgK#ss5`=uj!ud(>5t>!0;81ad`XwVLoiY*E0*`rYprFP754$s zAE{fBkg5r$=B{Q5f=ON-I`z1!n<6#o-w>Ulh4Q+$?ac7_Lvm(zX6_VDTucEUY#W_& zkIx3#KH=2FIFJJsvQVGhbGO}49u}E_?EggOa{pz#+(sEMw^7E+ZItnH8)dxQ`WR}z zA~#fW%Zb5ws+0T*5{B#B5yym>pzoKt75aXe+oSK7xn=r(ncJxEm$|k2ewo{?@0X=x z%}2@YDA5)Bajr*5KhlAsNPQSOd>d8W^*TG`-#O7UfS{S)Z{% zB}E`ziIwke!Et$b^z)$b%zy^ny`D9WHI%tD)YV}zn7+_Xy0VhVn)pN87Ur?7kn;WrDesPuYP#h#bjA9~dW7+X z#DKEY2non={Q0dqhncM>?8?0zR=>im4jnt+X!eGlo6MIVS+wr&i)j5nLhGJhw!XDH zzNR_BWZW_MM+dlvkw%(RcPo9SQ+h)u_ief7%UyfGZJ_)qXj2Bsq%QP#A29W+p-HHTMOs{!O0uR++WlJ*jw60>k znM7*Rzo9zwRO?7QEmD5xyVaCjWeQSq$*GY~^H)J~ofi+)=HjJG10Om_s~6KMG_;rB zy^Y`H5=R@(J8}R>Ch*poYS~uVRQ2zp6#@qtWNE=&le|O0HK@x=^X|=4&d+V?N%VustD^(1@8N(~m?Jt)3VYi-Kdla`d-DS*Y_$uy}noR>Gi#ePp|J)e0qJa;?wJU z6`x+;tN8T#UY|=!K^}@M*01jm5keRA_6J`7*~IIgb+gyvQNQw68T~CY6ebhmKzICp z43S%AaL4KBj$3Akn~9HZnW?$sL(Su!5j}6q%yTTaO+0VQ44!wn{Zdu$U15c*6XFc+ zc%i*1<~oTxUSV$Oh!xMNwA}!go^Q(Mvt&v37Nwi|k!%?tvZgZARo- zjw4nacgqYu`pR8=+m4gM#YSv3#{qdv>iF>G581P5N4$%@LrwbOh*S0o^)2yL>Mb+Z z+|kSAsjuV2>(8_|sU7iYyL-;J+SL(%X9XS*JK{0+UiGrQlm0x#3Wwe$Azo>PpQOYk z`*@D8+%@6c^KQQIOuITk7g*t%l=zmrd(OxFRZ{&KR``8Nq_FIso>NQ=+}lVZ=B616 zq+(7s^ZomFl;08Wxu0*T**}rJ`vJZ%d7p&Xv%*hO;_(N0jz`}&;heU@2ka{zPLQ9< z@!y^L-bvqi{KVwuvmSm+{ZDUEfT z_@uO#@98!EXS=$tQF!NG{+A;63kH*zwz>C3i)nLq6+Yn2G4^fl-NVA$0Wr*N?h)p8 zw{RzwA8GLDNCJM=NKU`s!)Fmvsvd3dtubhB?oqfj^8LHPB)D$wJ=H=cp;HY*_#|>F zZM{X$AJ|po5<`iRPQODfdOjrt)=A*H7+5#=K4^s>Mn2%=z99r|?%mO1>`5`!ZtgwQ zV(l~SD#`$p@VmK3_&w{uq{ZJ@;Vu?_rE(=AZ|+qh^5$M8B5y8Iy`5!0E^farG$Id* ztCw10Cm(e?%;M?e>?)&hQ*pZ&rVuBwIA+ardO*L9Om$v=E80A z141@81tcL9s{oS(Z*GRdb1drYkU$c1oY*cWFZls@OnppX{62u|LHMQ~#^^<8W$-5z!o!))wP zU^x_>fvkq}tc*9!46`yyd&8`YDz>s4!K!$L{Z80`53&sk*9#WPLu~zX#6b%s`M5L) zOjgB>#TJEYaL840V|bXrN~jhDvlNPCAS(JQ?tdfiwwZ z>sC5;(+q`a`%tD@#o(9h>i8(I=nCJUCHMKZ6YPvffpu2u0{>vUD~^vXmYJ~RP6FQ= zm)woLa><=!$xU`&Hufmo(RN=%E|AsO$)&)iwD19w{pp)#D6oMed_eYcTzeGQ)e+)N zGZd2joQ*vS-;Vn}K(=~ZWeVrUO`eUt*I0o~9w(au+dZNqFxmOp*rUMqy6^#?95>ZB z_9m?GlaPB%0!cTVh7`y*)SMGy{U~oHmWulQTTvK>T**^ zUATo7KHxd=ZhB+yT~_#YN@SPo&i1fDDg#e5k{c5W?~Qyw_Qo6^h3_1YnBj+3Sbpz> z_*g5DWI30kz}A|m1AL0@vN=8;gRtM`WK&2UhivRoU=z-9Qdl0Jk!QP9Nw6(WKlD4*X zq+xA1(!dUdh7T}#nbVsBI~2+YPIfCc6-k=ZUK$4P+N#UyaTx?U10xP%Uq`=DU+N8kB?Kmm0ayw26tlW;10*kcc zq`)HWI4Q75J5CD8ioLdY1Sc;Bj^6f1aJR>bJ!rjtPCTNuu1A6OT8^&&u^u>ZdP3~I zuC`jQ8+Nr`H|&$*DBRl~I7pv?Y`r)g^UW7WybY`Ry54PA)z=NXs;}z} zxvH-lc2!^38*)__(F1l|k_CKSZ2@05>;k^7wt%l2b^%{E>;k^7H{=4oE}ZI2&bO`W zQD7k#Hv{shK_fXhIR>|`N8$5fn`IoBto`f4$x$9jXoFxDap$%a?iThy#)10=(ln5@ z+Et~%-i7o7$j*i1qrjRjd_dMz$47xRRrr9(VZ3!c3aqHY2V^~U?NMO=K=_7STG#ak zEv?DgxGt=X-;a0Y>v|M8r6-bstdLGa3WtXq=5gRrfiw-|_S#jYusQIJ18)wbX_j8r zP*;`0@piK;+5uTsj+i;r@1hQ22nXv%nof-Ev9KL$Pt9F>hEKDrScx;syx1Wm9vW~LsWmx=%$rI| zW3@@o`*CZywex=YQ)_LHht@nNRvO`%P^>gIx_Kh3v_bpad)v8Sg*1&9NNmqfqp(Dc# zTt4D=VYMdssYa8L0Zs){8_4FEr~#}+IC5=K14xdoG6{Oa?vd33;eLx_AHcl8DSkO9 zHV)eNl8&+K^>BMPLktI;F_Lxy{EEQV{<6VCmwDZ!F(Bu6v?iDsEmk5#Ut*cGvVqwO z6E?}LjqcXwk!(pE`kmH3?6G*Jrngn~EZHgK|&R zkOW?80(m5=HNg)Jk4MLWPYtALAP-5kCiusJZ5+s|DKc3!xfhVR3}hEj8w0P6f4C61 zK9Ht?d)pBwtqERkG?{2Xb`)jYfjpMgn&7>{S@>}vXX2F&{N2a~kWEBo19Ko=*ns2`$_D;rc$7L0WTR2^03Kn_PPHbO=c&R5Wam)Xz})VL9zbqm zlns2A9j%uU1+sxC0)X7tXiYF%hEfyAd3j|6e>I%88VA;LD(-z`;DKxvYHMH~G>UFO zwgi<8{GZ`e)i{t%La7NHl*j3js{B~hyDYEyUXt^G_p}5@Kd^AI;qL_6!Lwk}8s*DZ zYV85b@+A$c&>`XdSk_|Y%NJp#vAnW?s*GC}`F2>rl+Wij@n6}4)ZA45x37|pjHJ11 zWE>hYu|1L-&*xu)E4uI*7^SmYJE2U>Rds3gk- z9}|+%Ht^CwIu7__BZ-8$849f=8wKAbydkj~xPKrWw>|DJd4pR_0!-gTE4@u#3Nz2+ zt!(ue@cqm$#7sb((wP&lB=^(0;0IgM=d42E$dCyh2gHjV9|h7x5e&r3o#0`&QHR+v z6OMU8p)Y}+>hkW>0;U3tL-W( z1K*Y;dS9_*>-r=S1GmC^yKUfsfpi@3;YJcoZklg+ zA&`y(-eM#tVX58tr}+ zHjv~;dOK&^ojkb|QvN!fkVplNO?Dl?Cx%p@4Lm=Pjsvns;p{|#Y(mv#MQ6B0tb;E7MAZekmE>FmAB#EdM{S1gJ;3-Fq-HAXDviBL z9s?>ZfBL7ie2sHGY_*11<-9HO`de8&OZFisyVyFzx}$o7-)p}U6K?2H;BCIq=0$5} zDR7nVAp+R|ag|vdSQi|T*iUSCM4~x2{f@}K<{tKB%@MiBC**rhOLK_tj+o!7J0c;S zaPEkew`Df;2)Nu$J5IvuJ>%it4dLn2GP_fDoZJPsE%-WORGi z{U|GN8!P?{$J?==~mlC-p{dr0xKofaKn;mWqkEYJC2<@bEdwG34v%4XjKzU3& zpu3^R36%3vBByq*N{O7?y{pA#Cx|<~@25oW+zyXNU^j##un&kwRyTwrtDjAY`NJnC zD39!}?}Yh##{;Sx!l~7%l*p-7-kEW2=1YTXlT)f+k6)qK(Boz5BWxvb)ma0+kP^AS z`zMS1j*~#YBnJ8o;hgHKl*n88h#Um^m!V#ALN{QT(-uXUZIg}7! zg~L)JkKqooXK79)R;E4EXJnN_r}4qrS@%x_J%F3|0$I8GqrmM~(ki`4VJ>orkgO2lH z3%`$#i87GgImgFmD?Sk;^X3qlPmS?*bC35a{%=Yo!zR6UZSqnCM*|#@6Mtmgj!3S& zC`RV^1qzPtIZjR#5O*Dsc>7!1FmpuS61YCb+s(xx09mBjAS1xK$^=$Yaz`WyC;xUt zqU~p5wA~zHC=t?eRu1BA4u=icM01?PJEEB*k^%1=BhKa!hDeDWCy(@rJdQ|WOj7KK zm7{Rw*C^yq?%EdAg2Kt*N_~mkIt*L^wtr;RR zuL?@vfafmp>zq~vvqd9s@dA_Gn$6YSno4|^7ZGfqhC2im!UMP3lQbTiDPR8FOlbuC zbo+zQ{_f<#7Wl(P6FUP5_F@8dNv=$uYk|LHG^q(p?iJRCqiU=OsvQdgv0rJV<;Pp- zR~ne7L81!qtmKgom?c6~0WP%#LR$m#P)FE+GvQgz6p)-;Yl0seHdER_76wrbNaC(F z!8_YhA#A{V1k%do26-@}HNiZY5f=mUu_I*zbBtUB09j|04gCJ_kfsg%a3HNDzh^zs zn&6*>FCk3)B-G^4$_T!nEo5R~APKbeA2{eikSr~lf~Nn6KVohVPQvQrLk-1Q zo1GsGvvd;peIq#&QDEw-{_nB*`J*sTr-95_n4S)mG22G@!QGE{Rj6#n$N z(BzQ0(850&MP^gSx!lDQP5*(Ec%<}F`MS+m1j9_A> zW27+blKqyrWY5hI90`9a1h6WB=pLbxn-QHL38o3T^pI~`=L^AH+)M$gk*06VL zw%vEVOjQCqCcB*7WyTl$Y z@?24K%*u}!!!HiC!zLVSkxIaBIGQq@pF-KGIkj1K&;1U*&$3(hnPtC#?c}~+=J)z? zqrvm9KiESt5ed9|xc8Xm^uoLC@lju^JX`v8?U!_oYk!B8%CQ}KxKlF|yYn0CHpg&8 zJs`VK;#+yAg~X0Io8>~{#%a%RW7G!j8%X1MSEXX!K_Sr{uJV1>`G4YlQRS~v{AFp5 zOEW3Htiv0_I?MqxooHa*E*Nc=eQTD&ZCS9{?o=V*kA&kA%f3Bu?~~-_%cw~PGmE9v83JhJpi`SWn6{oV)pS-ccytT|@N|Ht;v zRMwy^`ahPNrt%l+t#=sYt?|3p#kWP9<}cn_daK0G4MWAxMa_;cyW1ZXi8}`Pn3Vfcm2P)6ZLwr7F7 zq#(mT_6;hohs@G>K*U1q*v1zvlV zs&}?`T6s%GGE-pkYHR)mgADE7;yC)l8wxUxKu!}mi%{qozgna?MI^gWSJ=%5FPutG zIV{A}ZP5+L7OxX=2RqNsJM1cAhQdAVmr@x>%I)|nuP+{Nk1}5xj~t%eqi}H~uJ2Lc zHpR6_>P@~a#Pz*pb{}}ha6fq5a}AynNq%JGzdGCaD{kMlcfsW^bn_xGf2dDLv5rSN zXY-o!hqssIRh5?4bvHMDbmdn!o80jmJfG$XgN{;s#{5$GK9xC~(rz_J;EfffF`Rvy zWVQ{&+Xc$Et(qQE(e#k;=TD-hhg38@q@w8|6;0*suR_!EuO_<#G5;%UI#^Sgsrldw zi9aZVMTL|Py^!*e7g9d(LdvZvqE%op6VEF>{)NOSef#!(kn}%g-^GjbVHZ+vcOm6w7g9dvLdqwcmjB&c?SFz#Pa(2r z<0}hMUek{ib$?)W-2y}HuGMx#3a1)zz^e0OYwUMHp*Aq;ScbhOH$lzEM=D&UFE$J0 zn#aON+k||22rz9RbF{kZP%ko72T+E_q6E=GRviZafi~fV1Y{OU5?_7{+>L9|+$x%* zZbjdb7VZ)!X=&Qg#c**QY0lU!_pTaO*;doyE)j{+%e<+Pp_rO{N@*y|n;KmV7uUM( z{FZC2t){8mrse`ihGQCS?r9@-U%QGUUTPDK#kt~}I@XW38k3=B_m}n^qu<-Lax2EO zB5FS+)NTVOjHK%!7$Lg$(kN98*4YK1Ul7Y8fh7+}&o8tpNpQDnS2mWwytm(LXMDfZMA%))m#xaFT1Z^=9lu<*|jp; zz4yo3$AsE#;M0txz79r+&g@*ue6#%}*3N}NM3?VVylw}tXhlKaRqFCp7jfaT?gY*7 zHeF?k`To+}D}pL*Alm6{&qd5P+uv->@Qojl%h&bzz)D3G-!t}{lMUu!_bPn@@n7aU zO|o|_%L8zGNO1zUdxLzOCw_Ei6?R}xR%R}r2jIn}dFDKg#qQP`id3OHY<78 zvz}H*naJX!MxqvwZ*EHFDSuDaR__;uRXlvg29+FNu9G98RNwbmq7EL-*L(4Ggd<5v zxf~%Og{})Jm*LBwv(fp2T_q0%(r4M@DVr;HTozmV7%|qKDpd|IYTY#)FPuWgi|tzt zm6)Q*8|{XVOf|=`xAnlVH&(dQXj6Hvm0Lt-2plK3{MGB)o|pgBiEa3$?S8@z zO!Gd9`{)1#uIiZJBf|?TtAI~5(rD9LGfUyZ$j4h>99eQQc(WzGy|oI+nGmsX{$h(n zocwsTaB)KKtM~K^nG-;P7ny{Qw>>yDSBYQh*}ItPywoO7m+~$MDYasbA80K+Ef}F) z_P1U3ce?D{H2sM0X0?H_Yei0?{osWn-o&fgvzkHix)B=6i&>=_EAw8f@!w}B;ja#F zxpjb?-4r$Qnj<5XXSg|&AKS2*)qKL9@$!sT#)P%%8RqFi;^WtRCsjwz4mt7er=)Z* zum^v9*-E&0SAbXKg*4n3D|5Zm@}~=(JLt?aPdTrN&Nthq2ZZ#ZLctCSUKrjq>!9Gb zgWq*h>5A>KzMwzKGxEGQvZie5Rdo>JZG0X-tSpf<{6qfX8kHuiM+Andt&Y5_9T*tw zyu#S`(`x3-B@)-@y9*sm0K=(wFXr<<{)cw{?e0>uCSX0{*T9~Bbcl;Cf43W-zqoU0cShvGToE~H#{UEERsz<3m6we7RKJnXj= zHFYfRZZ)>8rbgJqtmfl_%$1m|8)O!7QuEb?)l_XCz95-Cc=~^zZY`W=SIzsvDT^~L zNpVC5`%dv2D04l=mUpfkC!>3nMIJ}Y$JY_13-kV*kZC4?k9!UD5>l>}kjCuwFmw_U z8eJM=VXlvG<*N9*IHmx{dt}K1CMSJRjkkX)j;T(vu$nqlXJ_Vc_CqQLsTy^p;afHg zU9GPTpM7CYjx-M{0)-s^Pj+noT zqPZw9qwEmhPX^v8kUD$`rW;7pq#(RAqWj0Z1VR!i*#P+=?@iRUnMa!ZC2`FxvL79O z{Xt<~nUTQ&^2&_VMw53~8Y^7Ds9Z$`-@i%v?#0G`HRLo6zWdo^;?FF$=NNYg&oer} zJ&dF-R{U{O`94h2Bp+LGtP5?@ho=pu-F9h`+dil4JpUl*$??SA#@ZLD8%=p2qEyW)ocWvgqs+E6Y8ve$vvJV1WY)X$bGrOVQ9Zfx91ER4+m1*;>=LH{Y z1L=Y`hKr3`52P{Ria_e%b(;gJ4UCRB&pIoKxhc;9Suw~wr)8OY42Ng~Or~S`sRkc| zX}|9P?n0YXx7*7U-@41>!#UFM^|)k6N~TlIo=osE@~!Gs`P z>B^WP-}NMB@VcmLk(j~zoVqrHe;!udDc~OhsY75nDQpu=PhODp6 z`IlKLv4gc4g?R&2<_C~BP^C7S@Rp}=0SS3k8GME=>3crZer=9aT=X%&^fc*o{s}N4 z@l2J?OChnDx=Z*oCsX;iWQB`wMztdspAdX;_$wzbl0h zdDOosQ}^!HUkL%5!p9rCVGnx(NRJ&KedgUWN2H5_Iw5hqxKFR`mU(Zd7o6^6Tbr0-`!URNKtQTgsx zS!rMzT%sQkShBo$5U={Y*Yx;!)Q4d>A^2LMkJj`*)W0Isp9IDxCxBN*u2RYb0$&gW z7n=cu1jJqz8f*g*FXvO1fsyYX(OT}rD$LB7L`VmC@vncw&oF|y7%Z_Ad=HDrsf~<-IvNsBIZ`% z67|`>uiXqIT9lYIBfQtH5N? z7Ai*^e7quE9<_Im;_FCLWsj$bsm}?{HwEN-;<97HCuG_9lMd&9dsevkd@RplDqAgS zXP23R2isLvYZUx!cnH@)!FL7)JHNK1D{9k0n=gc~d34ZbdH9UsJo)XgUWIbW`%Gzf z6ziy0UIQDVrjFhIg+Xc~rgGAsR`V(|O=6;yL2;}3s#%6V54gS=j|%-)fGfWB1$7n^Q=oUwqDtm>4r>^0_Z@W?Fm zq$VHrj(;8eW0p=hPW}|$J{F`Lk)0jFlp`_|lTUE3>+x9-wpkq~gU|h)BXX0+-`jRX z{FRX)+buE$<#^2zFTJw92z*Fi~jZ?O2U`p5ta^JiYYKCzlZ+U)b^ zADw}9v!?or>#WUx2_rtmIQ}9e+Ea|prD5rq%11`#a6T?V%11>=jLA2`1fF6<{wqYL zDd2C6v_mtx`7z#oAu)a$J#5tWva67QhXv9k!}WvK-gu3|9MKuv!PJ{YS7` z2l%aU(=oFQOFk=DvIBgskz~he8K(SJ_*`nIG-U_7{UO+`v((~PG){+ZzbtgSSmgU$ zA{1U{y?aOKWgAGxKznn20)N{m2Z+3Y0JB66t24W^zwYC(G*0lb$R`$*v^D{F@V_(-^Ea%ymEZ-Xju56n5_<^=WH%TLb=^{t$!m7fCPRUyJ8Jjpi zu&cfoK)Q8f_*!5axQ}IEwbuuh?u2Gs7d1ybdB5VMz>WoHTs8+(;M6I0$G#^K#; zn%u79F-OxN{`z2$ae9w)ORTuR8RCh-AXD`HudVMA%=4aC;(L5*gJ5QwJOe;5(u4$D z83a!v7^BPJl!E8kq~4CxyS13cxXSc?LOHz`6?{u1rYu=r&hS?ApEd}|V8oH~C^996 z%bB=~z@UGOk<4WCAWdhQgPkVUB*jy8P6?98M!pvYQ})8 zf=f=9GNwxz#bI-m@kndr$k14qnjf}5Y*)#|>NUeOxIEM>rh(RES^w9tT(p5K7nPaY zYFK8dUu9|n8%vNl1dy856igio2K14-Kvb*O6;Jt$-8d$n_Tr%>pV+Nv?6=ACx+3K4 z9s|`e&^8%#&H1ww81(k2&>By%)Bcn$ZW}ZkH6sr%whBnRz zD4<%!2edAK3vTWfZOv`{Zs{Fv8wZni72}sLOK9zDt=6{J)>uTXE!K)Wg?OGxeja2s zwymbWAsVx~r`gqo%Ja;=ZwzBP27H^5<_)P$bL{qPQZ3UoX!qKv<@z3~ygO()0eo-N zvW!P+vZm=-Q`@CUuO&_WbJTLn460lnv>XFo5w$FLi@cU^v!=F7ld2^Reaae^*Gf@? znOu9*RBB#sHMXs$%B04Zg3MLNSl6e6RaOaO-;WyLGgf2UYWmTj&VO4Q;<0lx$a_wZ z+X22Hjz)Pb-jBw&t*PzOq}P(BmPF|{&7jJeLCY@ir72&Zy`2 z_Sznb5GyJ>cB;;9R%cu5jx^MGQk1%`SN8aU_Uo;&*~8hDb`@{9snXiRhhyU}{_Gjw z7?`WHcC)oMkZq(n*Ivlr@A-&s*Hv1(Xc#tcpm*Cr@k`=?ao|S+X@c_$j|{uDMS`Tw zZL%7%X1AOH79^?HIn1Q#QOykPXPIDwBy6>FERVe zW&@D#MLRwUaeO9tjKT(+<70$2gb|tmGH8x3A2vs1;GP)9*kq`J9BRM__46+yj__sE=j&J_qjL)@{r@vIMwb}-nQI?y(a%|g-?W!=`9Y*%9 zVPxAtMpzy=Jivb2v8x=c-7+IbttqbwwL7@LWN?8t@Qgs}0Pzkzy$hZ(HiUfF%KsIs z?`!XIJ;|=HQa;A$qI&6S9bE0A5DGe_qqT9g4+h`s2?obB>++wk~h#Wwnh?neOt|-4MhkA86uB#cbZ-o(C&4}$E z%&?jfBP>_$F!~~HX`qCHt(cv%Uo+R_)^bGb#T;}*3K&t$GuL3oNi(D4q=4-lCj~6$ z4S6EP(vT8r@ zSoV;bi_nC*8ld+adgWq9j14VNdImK zNqrm0M09**r{zWx3v}Xo31r5)%K4Oa#N0fNm>WoLbuiCELfYR3vf1OR=5yN-b3;0! zGh6Zx7L>oLYb)fL;XZrygxw)yHMyUlJ8`U6UuDBjdL&$Vl3KkHQPBv+IbAl3*i|Ne z{=7HoNPwiWXM}#Vfw61V)$kt*KW@{vFNVAB@+o=4?i|b-S%W$TMk-uoRB8$?nGktX zB~x`|wb~`7_LWh6Aj(!V1M0yvuYfgX9GUsy->#+T80CWu-PZ-pQ^snMY+)nOmfaXAre=8O~3U(zjoV9JWRr zCxs}flCiSo@=J@saqp%$kWPaC$5+dLR71_2n}XdGSv`R4rO3`7kbRUvTbS69Z4#;e zHnYJ;?5ZD{$Fj+G+%=Y5ePA7>;ZGr2GyApDY_2F+|#;!!NfW za$a2KfzdZt;R_E4p4|pU_o&2T6>);K%&wFi)hvzIEe%zDm=~Kv@jkD{9UYM-QQi@A z1H|MAJ@JCu?hq)D41O+N%eTcE)U9?r%AEiXv_;dLY_5BOT`N&k4TjX{{KJf&H#Kz; z)i+eADVr%krb~77G^WsCRHiee;hW~=*3Y$}zil8Em6P+RfboQ+5Gos4<1iyM-B7oZ{5`=(6UjvSu+c{XX~GOxj26s!@l^L?j86z(K*OwV1}Z&UenA z-*a8!-d-x>Q>*!asg)Q-ZI%Aim@1v6Qv+-{(v(a^OFoFQ7+)KL^}(}XY$Rp_Mxn(~ zy{4h9$W+O_Z!tl;1XrkpMwoUDOojStxldRy{&EcWK*GIDv|38asz3|X#G_;?v=|9G zAaI@_(=@N##asMhySfm-_f?nK=DdVy;O<76H&krrCV5=+Nz?B$c9qcw-VjK~0e=&F zbJGkTspZ3X^Pcp`8|2VN-fG`TkGyp%rE^HJn)wz}Yiam9)yMJWlh4n8(qnN`{iD~p zfRU#1=dE+5QTwy*e~dqSU6CcE+xWM%i$L29>Wn-n;zYKFeQaAq0N@6i-^z z{Gv56OX-AD10(QsBY8$jZ;Fh-OZpfoT@@LDH>^oTQ@X{dq9bsZm#2)B9&A)$1U|Np zky1A@0>8Q;ZE=w4^50>~=LA!Bff!FM)UBAZTQg;Mwlrn8X3FktY07TRl-=3Vl--&s zyR)S!yERjGXG>FdYo_cLdoa2Awnv#E`1%PrX$Sb-Fe>A~bW}Q(QR&o1r4vTwoZz<| zAfqG4LV*m84t=LGP~!~LgI^pSuQN;OiAI$cfvD%M)YDR{q0K=Rtorl zXQhN2$npk!;MrJl9Ee-^x|Hw?sSCs{JR>DMLl}Vv{9W2@N{1WO^^wBSeXNw8m9kR! z#<^*$lzwGY*D8hGUYW8|I^3vU0V}+|kCoCpQdSCQzA9~%(gj9!tx~vgZOTgNF|YPi z8F=8D^HN4i7Z}yIX@!d~NLeX;&ZyER@LlUuMoO0$RTzP3Tz8&w#A1P|XLrEUl% zlR$!pXQV_ZQPCDi_BcNs8A|&ZRTzQ97~di#!i+Eii7}p$5@ALdfoa4UDruAE@H?7~=o3>DI z+Gd`Asqj=ir$%qtn>K8z-n3zBZ`wk=Y2LQ+>_e^R)Mzbx)5a~;n>KFkO zg;MK4J+zj+X>v>Trpc|nX$$qHna^`Q9czlj2Q7xcbA|cM;m!X09NFwW0fmP?^P3~= z8z?+@*v@?;kAn7|fJ8KMdkHxX?7xru4jNI2m=zRa5~&olx7p)~CV{+giLz`A@bNH6@=jH`R`*jyC2@ z`8U<7F3PGqP`?XJ|F*L0+-Cc=d$h8saDHfyi8i(r&Uf!IF;gotJ&5$z_n08{tnkQu zu#HJY_=G(sHr1G6JO|U&hSFngNNFbrKi+8a_DxkX=3fy8GVMA(5=^(kmp_sbQvO6nNcjU9A?43wgv3nE+$yB}X^bldk7Jl; z9gzg{s|W+XX^$`+ABi2q6U@Y<@~by)7)8J-+hBUa4-Wo#cEqE=JS0-JIF0XL< zU0(C_yW9lnceyRn?{cH0-_`8VOUtbz54m%r2r0LPka80UDX+PZ@(K$nucwgm>Io^Y zm5_Q19`9rK(y7q1tq<$m0*?K;LnV(4F1GVFgRzT`l=U7d>pfD|d!(%QNLlZZvfd+Q zy^FgJ9JQ|3JJxYAb);hQR$gGN<0y69KOE#4J<#AYBB`u);m*~AniIo+3#qJj;g5x@ ztainJKFo?k@hZN|PmZZ&PO?@#-{wmF)l904LZzXUIx8)&w9@j%R$5+drRDWjTHfAD z%WJN*wEQ`yJ`1cqa$_1eVx+mvinS{yK4d8>E{xRsS5Y=Ex^U$suiVMb3)M6fE9MsF z2dpgKIybVAavKXNH?fe)V$S}QafbDj%k6WXgwON^lDQ$FW6j&ln$Rih@irKsmqzoH zvx|KFiz~}~J)L}i7V`D5afsi?J>`=X+CA~2A;o2A15HdBM2c8 z6k?Glq&yriq;iwLl#MytN8!qY<3eHu$6`Q8<<5F(xnpjzA=4V?bxeZC)Rkv3$ybmt zLr;i1H%QNyxoLX7%#GCZWp1vXFLT57e3_fD=gZufJzwT#?fJ6oFeN27uk4;ME4C9- zZZRR{b`nx<9Ut{^s>NQA?_(wA5H0KhfsT zg>gpDnV9@j`XaN}8^eQ>{X$e4mAY|3?Wn0&T5d(9j<1Uh!!z2z3{h$3IVbt?1qbn^Xk z$k)@$eD7)t)-)fqybm^AvTp)D$4Ih9->Gb*fwJoiO$QeOc4oY=t3bmPL8) z(DNcd&&vTlFAVgugL}%IS$SmRm1ilWJU1cb8BMukyN}tJ8p|trN_B&!x@mT7P4h`B z_P6X)_H01%(S28LRi)+CQ(9girR613T5iSY$|=x=p+FrVE>3rHVBDSVs1&lc zyF0{8yCC%JyV%_|%~C5LjzGK_a2a;=2zZR7#OLM2KS0C{bUr~9~%|qY^+Hn;jaXx_Sw?g94E`=6S`FwVy zd_Fr;KA#=A!=}dg=yZgK{qd1#vHHC0%A}8<@>-?e<<(2S%j=nbmsdFbF0Xm|U2cN( zyWAG(cezp0?@DXrl(MOZa-+zGC%1)=auWzCuep%&3JWQ(r;zgM2`R6Ykn*DU`ZvC% zLfcv2)jbzD_U8_jyxlIB%h=uK^}e^qF21y^_tLW7OUrsME$h9stoPEg-b>4R7Xb^6 z_)tq~q?;+KL_O*otY6yz-Y!nGn2yglD?_=PnP!)8fNj5UJP3uleL?B2rd(;c!IYL; zOli5vl$P5}X}QsqmRn6}l)d&zeb!sO#7zUQHIkpQ=>VS#Zg1J$%n?T)w=6HZsLM-U znMBHhQ7p`yI9aSLq}<4VLw@&xX1s&#lkE;>{4X;jbPRWey@UXIX&R+GqR{R)FK9n6 zX!rC|`(1B#hAof&(BK2Wc}9{~@9k7}f`PKd2lB2eJDa?xPP^Gzg&DJo<+-y~$cq3y zF9-CzFwpDfZ<_y?l}Gk0d6q)Ta}!dY(UhB=>xvu(OLc>#x@k8%hndp%+NW%GfJvL~ zky};Td5^q$O3MqRw7f)0%dHsQDg}B&C{PE88`8}V7?-4*owATCDut|VcDA)nv}5Sm zcd^;o%}U3h7C!@|WLv~n^vY%*ZX zWf>DJT|*j$jLD@k`}p2?v1vxFEQ5g5M`SBG?J_leduq>-!bTGO0Jq^O0Kee zHC;8!6aRX`j(*EbX`n#k|kc`C=vIcx5z+=ycv{_3gR-QskOr`FzcwP=D+3ej5AP5YZ-j`h4J zYtrRUZcib-z9zlCZQko@((BqvudPY1Z7aQ|CcUPRzI)FZsJPJ0+h)_#^oNJM%4^rK z4*1bVleN_9<+;mI#@yj3Eq6Cc%bktVa5bmfaU!KX(r(=?4Y%)(Znz8d^l&|B5%AgJ z7SYkoTkVZy8|+in(XH`YO2ccNkX+^ipAl$BH#@06B%JEi5mPHDNP zQ(Erll$LurrR6?OX}O0}8i%g%Z%WI(o6>UMrnKC%DJ}PFPB!yuN_&#Mjc>huD(xo2 z#-c-TI* zEY}&nF`*s$UeEU~`&7OsywB54w@;hd=FI7N_1j;94uq!Bt7NY_@PzLdxBgkY>|KiMrfH32Cc?YVV-fz@>{F z@O9y}#G^pgLDKJl>5>S{ZDVPS+A4_^6RRa*1EvcnFbgPQ1Ey;!Fl#Dd1E$L>Fv~1q z1Ewo3Fe@)%11@-XT&RFqjEO;j>ADQe`b^k>=~4~Ml1(xNrmHvb&9V3xF^4fy6{B?~5EA+1+i@Ur-2;VasJ=^7aPAX^Iy8?X~d zL%^khGzvU2Sv-S3Vl*il@Skj5t!)5itu1W8`zFh7@V^>O*nn?H*uZa#Z0|NW-Me4z z`8Pi8PB+mqtIEoEeRoUDt1jbwW_84TZgs@joL!y5e13JrtuyTG%&^R%&Zs1qM0Nav znNS^Ln<>>XwwY8NW1DH!F}9gl9b=oR)iJi2TpeSZ>D4i|nP44bn<>^YPB+OieLBW` z0(HbTQ>bHXGl@FJ>84R;MaM{jX;Hfrn0e7Ll3-#~Mlds@VBbfQmF_K^cR7Nn9p<`?_9q!!oI{PiR z3uW5-cCx<&C)3`BEj8_J=vJn^4c*GLx1l@JX)ngh_nlyd+Zr2h8lL%S2j``X+`d;D z+ePLjrGb+9JQg_a*o>2Z8=A6=(e1rHgsFgQ5(9Yn|j!`xq_2m1acDy6K4Rn#+X*{$F!xr5wsD@qwyCajm)v#E z^3z}(xZ2p$n4>xZoXM$_`)%xXMUsc<^nJ4fumV8USwlvY-t3Fe9ll@DY&>_@0Cf zd}Cw--u)GEWdMG$(d3~S@Qn!@`1-&$3ViTkQ5*P8MiXtowkY zq7AqvVFMHP6A!zgOM(@TS}yl^qAx!|Dok=uae+}M}?*VUTq|019Q}0wB<){ zg;YCvo9_sPZMxI5ME-=0z#mVugan*xzsW7P5`nl=;hOH`?E8b{5Rj__T2BtscJ1Pm zJOl=QIFN>b-w32pAU6)A7#zY~6Mq35c%6|nOYolI%GnTbpFkP_b^~b$$ZacCHr*lL z{laTGhJa59qyZoo9;5=C1b(q`IRhEyEfvDX;ozs+g$KPeYmgfe!Zp+5!e<^II^_8V zxgDY9-~{nCV{wdvc@Mud9*2s*l>BhYO@?d1)DNE!)qx4HN+noLat2vQz^9)`c^3gs z4x}OAxkl0|fH}`2%7C2baRZ*jw}ZM4kY|#PkHmh-A!zV_7)|m3*5=f&1hz%M7o9}C zhJd>yr>DUj29gYbdnN~}!Nenk4M;pfO#=RZCMs;eha^X_!GtY@4R~3?2L7he$Pt5|%Lr>8LOb^?GdE_ar1>}LJY6J7YQ?vougo$Jx`WCKyC92UH{eR9h zzYfm|>bztH1!mc#moix!U36F+EnpTz%J*W6b$=v@c^~x}FLS-n|* zo41X=LB`*r_vNwQ=~A{ibNnJ-|F&B0=elQ@o|Qa4X29f z4=63)5Gbw9jzIa^YzdT)JprqIrA@copKfihvMlaT4lDU#AnwIY03`4)DhtNfh)IF$ z0+fwyK-*JjYOErLaNzDQr7uQ29u9w+@ zTKXgK#ep;g#J#FAmf*h)Y>R++UordoE{PW=E*Z@7UCKM%QHa_y_uKD?0|UH!SmzD{ zIR~#L26G-lhA8j~lT@~RIjl6+!<>*1QQ&f0NsHxxtdyl%K-RXZ49w#>H{eOIx)oU< zkL*+y%<9(3l3;zSj9{)ciay|}$wUZdl9Y-8_f8h4;Qhm~_zsXMR3w2s6_h-ItWmXS zVAiX`M(~e0*j0!P*2soMK3MTX~+JHp< zRU7yj;W+*f@Z97$KA5n-XalnLR&8L`8^Q*xt)^KBt0^T&5AA!ln|nmq!i@k&jHHuV`qNTBrv$B^qV%d4A@^%JBl!GVNc#VU7nNo>wC z>~Cp}#M@ZZEYq!#So|m-s~^@OPS(~bgbbBN%ZU7G6~Oz_?LYJQA;up`7(yyee)}rNPmKc7V7|WdlDkxX=!+6CbH;_(U9{ z(!flOu6%9W<2JMI`cz@R{HOnLga5PL){@d~EvdMzW0!ArTQhfCH9ymr_!;mv(a!+? zE|8YsWsXj~4EXryWpF4p7m%*Az=wx5)e<1LU1Wr9=#n@o@O6NA6vxN$W88=iSsVos zT&01z*V5N40pdf%-_@31thHEQsWzMjiz%hG@d>hAn)yF}t3{VteyP=S%OzL$zrim^ z!`{}#GcfWUk;K;3OZyWzEIYK1g7>p9%A98YB@-lS{vwT#fQgid@TDPaLPSAx0TWUX z#>*#2)EoqB1r-Jp1`y#ZLXduM^9ITY#-j-1x(O2a2xY`Y@MKA8V7AOon8bH%)uD`F z9uPT35_cv~kiaZ893u%98>$hEKXHsCSY;?+*qyLkBUzrmx( z8#s@=(=XyDa>tT>x7EMQe3^ky(Jl+drKGlnHd8l~>cI8jVKh%L4kqP?HdCjQ>cA1< zZ!}LZ?k44jHd7ar>S*JMQvNm$DdlhDms0*V?kVNZozVQ8&?c?HC4YL;pWyWADJ1_l zcqw`NckY~owAClgu1}iVZ2ygWZ}Or?qUiOIew)bhZ?h(!fdv5Z= zN2H&7~kUaA;oe>Il*`p;e6YkA?Ct*M>)ax6XATyo*{BQ-QvgV%m@GW zLSW?c_G09nJWCVso}`EJY0Iw5xy0UvQHu9 zMTzO%U+S43X`gZx1NaYtGyr^5AdPUA;0fWF@Br|sfmHnoGqOafSiV$NG={exvipRB zbbzQ+OXd1%*3)`F$<#b2s2lmbo#o~nw-_W^E28I{#9={lkW%iM3<{?^LH@9Kg1nYT zseiCMj$YW^pG`yd#!!$BkTR-Ka(y*JX?1^ZYPc&RLmmTh?q~`xu(Mqac~H0_GRSH9 zw}t8#mGG^N?B5014iI%(;9Os=65hT~G(|%}VaxOPdGlx*Ws8Ec!SXQw6g5NkUxI80 zh&ruBuCG=zZJw8y8t&*wTjWQ;rf8n!CV5II$RH=3M#7DRDJp^NSdi@iQKtpY_0=lj z?fY?4ba7DF@l$`?EJ43D= zAnLThxxQK@)SeHuB0N48g@@-{y{QyMC8O+9gY0xScm~2V`(m-_`xr&pH>m3XDV?r+ z^WxQNrV58m4ae+dfSy-gxN;RK{v26PQOPLFEdr@+DI0FJaq72X6JIlm^6XHQ4v^C6z|OO%)l3z> z+SJ6m4MQ9~r@K^&;wsj>$7GZ14V9zkmGjwNJpN^1qwoWvZll1>&%*jZi zx>O^l_gi`UnnQsx^P?Lw|DI(oY(UB*p|_uRDbTAzfsW4e4(T&3OY)J!8;Bnsju&@; z9}1+QyoMD+hD@5b7r88?GM9(SECf=idCeQ=&-?qyJ__`Kkb8Jj)a%1t$%QdDkLEO2 znrbe~I^*PQ{e74zZNHqWudi#F!&M1Ts1R%?g|c>lpA4i$h5F_!`!X^WyFVSzO+!PS z7yAn5Fu8gn{Q}6UxW6g8fFHN|_gd4%Wi4sT${mx+od{kJ#61NOtXv&%<*xqu?;_&? zGCtD$ibQwF_~dXGd0?sCq=*?0knzFcGQvQfr?`LpC*(PHn0W{Ll&-OQIf-2&an*7X z_m0Gs%Sm7`5g%Wkm)sGnMG)d&DKE)swkseiH@*65`@PJP7_Z*jgt6yeU-Kes{-hi9 za7d!Rp%-vnrS{9BvEw(*!B&_RY4hd>mZc?EF6RK>c6M0L5%bseIU<)^9%Q#x95H{L zl_TcmPt%8FC6j@WmrF=_sf2W!jSUVR3yBilGhD41pgeDhq%?QMtd_VI@LDU8G#GF! znr(fzEMEPbcae`H%&JOl;v+KyI*aFJtTsbm^HV#xNn?u*^HTRUyP4^@xK#a>;=aDh zb>UxISLTY&oMyW}hxkopVf4XoYLfYw=#lv z4#&Djc(TX|O)X4*tXm$Tz_tdD9WOfc8LJjyU4OEy26! z95JtWntoqaGU;@AxrCILN=W}^*9y2lAS6n(Q&=DkJ3xNT zOKP*BTNbbWVwNHwN0?QW+QeVT4CpMLm$BLmea-RK$TW7vI(^NqW=%}le#AG;GMhKJ zZ|6s&5ihY%9cEyTg6jxntaBL333FDPv9FBzVQk09fdZ~=XfEKfFy=>rX9dy#!~daS z0FH82o3SZA4Tgz|;Qdwyod5LKDPrU=>JvbC@2_<=cC|u!J`kJGS zKdDrvJ^W-RUHj4YDh`?FxPC+@5)$uK-`DN|3u&>zS42{thn~SgKUd}I`g6&?{<&73 zyM=NM=S*s$ra90Uo)Q^(_x;2>@PWfX4iHvNuH5Cd<>CEpZNXh-k-ej6F5ReXs;n>N zIaYzo?b8*J3+P9kL{%06xrkn^irQwQDY`jWW~987UK|MM>)+)yKCk=Qr!<*p>-pz8 zr+s~BWXoUfRFUj!xR1@MwesX)ZW|^o*7cANdCRT#E!O4xj74bYan%i7aZ5f=^ zeJs;60S(7leJw1fN%6amGpU$^?p-whw`yFp@c*Lb)Rr8vF39U*q@VK=f-i^NQ{fjh zyobc$rlGG{{85wmM37vZcOmWYD@@|JAUQ(sMMG^&isWjO_;iq5ns@PvoAJR&ek7iE z`fAvS-#B>saz7B|bwfbj^E-8P>42^mngxYwrR(kJ+t2J%o`vvAzL$krp$MG$(TMD= zLAC=#oj$wB_0^tdXi?@L>1(!^eM(W5ywj6jWS^BMHNGghtmc963rtvPU=+^N3tjX6 zzBmdwN7O#b%JHxEscSr5#xp;8*`}5~{a2HfMdP0eVMk0Q71yM7^;hOxt_UsuovV~I zb>Yljsxe-ge{{I0&il=j@Anor-1S7?7)s;aldR^H#*%^CSW4q{GtAve%U{T-Gy=-Z zuSzT5BJ=187PV~Il&}2pw?|J9tYXqqzT7N2kzyCxSgs1Jev zDg0J0tBwKTr<<_Sz$l!`S?I9X$xd1BX`eD7+VG_I|S?59{IeyRn7ZLCN*u<4lH+q4l0V*!J>OK#ib^ddiry3~GfFYAQ01(E7Us1k zF*8YT8Dvh4mRTQud}(g5%p%~n(K5o9{qvSN&Q#5cN?%G;eKMAELzklL9!j|YxMwV- z{J3iN&zEw-RLzP?EhUQ1H^mZ;q8Q09{bglw9`iFMF*8Zc6N#@!yG(Y;?Xkfw#hDg0 z!KEfMV_E+s(vG%LpZ{3t&B{9k-SYwxeCq54o_n$v5U&Q@)<|=j*RPl$!J!@D%U{Ll z^5A`fJk1n7UNFJypoPSweEw-6*LQu;L!NF5S3cXi45%TWYWJ^LZFx6nrEo$*qWt`s z$v43W9pKJ^G)&cg7oNR!xbFGz4^fW}kb2aDC|YJ-?Z{jD#hH|b8qLe9F?hMFRKvUT1T6+XSq*hjoymph~R95-^xg)aw9Uh|$181mCD!=KH z*B4a?Zw`%BC_0I@>#Ziq`_aWlW#tP=ZMvK732uB4Fv2Kc2ux`#_$_WDjU5yKhCdJYZkTSK>rJxYOIU(2;(Z*P&^! z*MpD6rxk0?8qSW4D>I|a_Bk=ZHQbtnS-s-8s7+_+B!IoC=N~Zc- zntY(N(ZZUI27-;=9&EG_IGz}DV1g7Dl*JVg^J%*dOpv-T7;_;I^La*67ffQKg}{5< z{p zN$w<`YedgV>g6eGNc%DG+NUc3i8FqfvXVN_sE(CHU(&?}W~GbytlRx9yW;}7 z9t{TgR3H1L@sfmegcq1l|@%L%_KCMyV7V$bgh$0~wCO1^l25 zS6>rSR|n5K0{lr2BdOm-M&QoLSYI$f>VZa;tbw=zpEW7`fG`4a0-li+UO*UupGthk zf(cTW8C4j8_zJI)6wX4kHYb9o@QkE_t7t|7OuWW|!fVtHzc$6c3vAZE+6KDrH^DzP znz*W!D;V~SZe?UlGk}!Fu%X*3jn2A{buFimj!7p|M!FU~MQP8l=6;@iDlP9bO3S;4 z((<05v{lwCF0@ajLDx2#xtz1q&DEyC5t|MvgbDeZ)RBOMKdzNncoz1hUrE5E8R~ zbbUuRxk*J7i$*7RbW=K@qnpwJ9W5J1UjpU|&9-zl<%P3NdTX;}b+s9p_2B&G@Miyg zj%@axfP&5EH%G`f%jFv=G{N?|%h-RPU-b>{9hQr1S)vpawk_LvDOCuGhKoW_XvZ`w zXzXR86ch$Zk`*LcJXHwo4C@6^Ary8)+c{gf3PYlw?4TQ@d1eiWbeuFdXmq9?L5TFO zR1g|FrdUiUbinzthw@DZg)Z5X8ASSMni({fO+A7T>By-dG?r04f)MHLsUS2)K#w3q zhD0g|jnz|+AVfA|sh}Tm@vnqj^!?@8JIom=xOMd#`1MyOz66Z>l~*F49enY>+2%ln z!E^-2NP;E2GJ;vaJ4O=tYGnko@^OqLaNNq6dv2x0`g_zbM^Ekl#wo`y*HEK0yjA z$yN)9k!l7L;Zt^>Xk#kjJZ|@iHb#=HH`O+C^?kVhow#9+X>1jw#RoH*Bm%@>+Rx@{ zWdo0f`FkO76Iv_j$8F#dwy0yilUH)=1YT|5$@zfu4PFvSOla(-go}yim!T%ZKw=^; zVnkcB<#I%3CMFxv2V{y71Jd~44iSijKq3($2yAZlHV{D|vyN~bV&8TH*DyVX{hTWq z8#*Q>N6cp%$s*s-Ilg>H=ZN{1&JpuzNHpdXjF9r(n-k6F6XDBe3L)kFp})ZbRJ+17 zr(n99EDUzuZ?|0@`4G9ndauH#=DDQlW3Btdo)tpgbQFnM1L-qTDtgS*CcQc#0g0H+ zm#aj}=gr^u?36va((iIxq~GO6Nx!RGq)yH4B<>ya5UCXs z5R1u%217k_(km7ckp3isKw`4O1*9Vh7Z9ThS8i(|AKT5emV<;GQ7Ze6A2=2cp5U!~;+R$6XhrS;aT zH$@%K{f?*0+xUSO7-?>^V(p4h@gJBmgfTC>kn*AnDKEK@dW$esilX&}9K&3N^~Jwq ze5N5G0cnr_5i`;*X6?t==RAp|%>VPA!S3HQD?rE6XIa=Adfl4$DYU<~NBgZoyQi1h zJ-x2oQ=e{m{LDV(WCrk8M(S^l*s1I_17#N($osY^%e!{vuEY%H`>WcdhDAdm(Q~GB6 zlzVePEGuogM{ZT6<<(PKULd9AB~n^i1jW%iQ=k`x0(F4+t^Q`k9$mgTdwGzuA$OJ%z9z44c(8MU&g08$^3t>i!v z(@!MtGwG?glUy8nDyvvmP2`%?uSI2YO{CBIwnv1}r7mR{Vc7+fo-2kCh6p2Edz1f4 zR;WN?2Qnf5-0vr${3bF3i6%tmGA=MwZtRE3jr~x$haW2U@Wo2h7r*y!Zj~53$2ez9 zdWrZA6l~Qt`i~(oL{C6Ew?)sFxm9|;%+N2j0??eB>JQD7~HnED~)Z$*YZWOMvic8BXE-kCLw5;M% zs==o^rrJNM8LKo*m8i#GK1x|O_rlT^wMb!Ui#9<)xgcVlncmo9BYN4SH{b8R>pyiv zN3)_%X{e-ED=n{|(((!_EpKh59H7+#Dexj9K<`Ce!jO5om-?S8!6h`Ve zW+oHTt#+P(=Y~ScOD-fbpZb$x#oWTAg+&vO!F(hnAU59OQ`5I6eJ%fJpKJnidqT&k z|87Qwj%9yl7KT2R4R0>;^}DMwUr#6Bw}pH?z0B9sr^>f!cC?;yMd(rkz$=ZUaiOwb z4CEbJwvTy#o@Ph6$dr=_3$Z*S=y`6?^DLoHRpU2g`O5Z>EEnJAg@lynCZs&0Dff-< zEpiwv)eV;Frr9^%*Hr$Ceafy8i2bCI_Mjp>&R1HVwbJsum6qG9&j@7wh>&#$c%qSX ze+b46>He@RPHiuEm1(&qW{{VqcQ5#rN&h`#Rs0B$Qi#_AQlP)QUrZMte-j1rW;)+o zMD)ZRrmXADJISmG#DU0O@U|)Uf=nSFFx4UtjJYh!CrfD*GA5VG?9%5-eX?mrZIT1^ z5!p%(zRtaWQGz5c0`c8L#INow`$ZkHN&Q+?W?$RXatfvPx|_bHS~uA#HjZ9OTX8szLxGj1uSw2nmhTh}u_5b-d0jO9 z8_V|&`;=}2j71qOC3m(bNs+1cN*}pSJl`01vrowYxTlfkG_PGTK_V(FUdhwnw8*u; z54*k6wlCGXmuwaD_BAgx9oVsQKy-d-oC<{l>zo$RjpL$l`idfZDrYV@9_Xn&B4dx@ zscfqbx!GsxsYH&5H+m}jEsm>uDu>pIw|nZN>^VGc2w%tZ3`u|=0qh&b{ zB%5r`0nw~NqD}YXfu5ZIHApiHSKh`#${ScndFu)(Z(1Sc?JA_aQH7MZsF3pJ6jI)n zLdqLbNO>y?DQ`j*%k zT*(<}j|7VkjGU$Y`>@16~qH zLqHZJDmh*Ee2FbTB-6tTo@AdY3Vv^3>i|C(NJDwQ7G-qnS9~wl0DO|sgbjFB!uDCi zzlv-?o+)e57$lDkJH;X3tBj;2NAZ}9F@K?(!YhQ+HRscg8V9c!?cg|=K;Hd67tLEoc6SqH7GJ2cCi`S;&v--qgX8iwv+ zR_dNFQzIz8TTak)cM0aINX-D8*U33 zZj)hXEd}nA3@z}J!qDmfnf&FUF7SnkB>2@)63Czw$-Qi-5UCIn3s+VKT2IDgHyLf< z4~EgUltCE>;L>~mN(L+gj!NeId;kg?%YbVVHt@H?(x8)%Ns-Ja7_9+I17;dw12S5b z4ID>qF%c;nLziKywCTnv>jB9X$kM>6%hm=;V^qe4z|wpKine@pE~I>ME~I?4-6JPV zn`RG~^uQ~Aoyxsc9TTYc7+ znr}|lmEaS?lBJXTc+GXDJ*Czy=mO4AwpJwkrnI~hC@t>=O3Pb$r)_e|U8iT-8CVi( z{@}ZXwcs!?I@+Tf)-X6%6$M8}J3L)CqRXggn?57AU)KaDH(jSuh4dQyn9{)bG^a3k zYRZULt937&j`ICa>r3~XabKE^oMRT3%0|LD*JM_;sXHv5p=x!z%qS#?HUH^nEhKnkNj9g&x&_Hz=d@OP$$NR4cWS$+|g5t7R}`!mNjLl3o2 zP8a0j&@*wliqYRZ#$*Y!NLJ)Zcx8&*mzd{A+mCHG)hG*ufw%R%soO`Pn6nLF79 z2q|Ap3#qch&Fe+F%%j+KBrEnmg_z$`^0oHW;qZTkkXYc0?X5a4y zJ9mK5cnc}=6GD-vxGw!^Q-fOZf@OghQsCQzQ3`c)q?i36veV;XB- z9$IE88^3kIC5Mo~J;Ek`DOKMtwBJ%{bwudT#SpAF={vF})yLwNIV~xqya9!jx0{gi z<`NP`Wq~iGym5p?>1h)oSki=SnBJ|>P>ts z0>p`k-zvM;vPW8Xe@f`~9U!|)5iEOL5&0FavM((w`%=|;`iiInZklIW6=J!E9&W+D z$JnQ?hnHA^V=2R9J=~bG{m5ntW)68?lsAL2T7c~CmH`A4Ji?zY8?Ni5% zK>}9NTWAC7BBau~ErV{c93Dm2^H!G@ji|J|rzkD&Dm8PHPt1v4 zF6{~=^Q6O*_a=8z&6vtPE{w78kn}QMG+AE}YwI9&P>}8bV}XZqW68=Tx62gkUf%<@ zHSPBcxhw#Zi@vZi&qisq$rnRi7UWqgTmG+KR_nTAM|~W&%dmP3^Diq$ZOymjd2AyG z_2$a|f5|*_?CfVgg;L7cEN9VT!uOqWsm(mo%}PUN+H~g0y-fODZU@pwTVAKwr*wWG z*-J0Mr;)3W^30~{OMR&Oub2aHosr~@#C)=7tYS)|kjZD?hfD@pc{NNfDx^fhK{f1I zCb=f$y6*%yYAaR>Q7|%4p9_eMWtNPTqvt36M(nD#KPo`J)rz zViIR2tn^Fu0rURCdGya!JF6Y20iQY<5qW!Sc#yEHJE;Oq!=Y`lJr6Jsv$cwlI2?C! z*tHh6SMSr`w9BD|IywF3oHE7dXpB~a;>UBzO9|?-;}*Y1S$V!#pN;?1Op)kv_DKF{ z&Ax6sok{x?{arK9Nx@8oU)3Ik1P4H*V_;Y`RQgKaoO{_5Jr0RTDv!DWWLk;VzHvgv9QIM{Gj!8slG|2RTG_L#4W*Qe6?3 zn@ZiXQr)srU12+4&Q(_bGwf694~zv~h`QGWXH>*&RNYag1f>!HD$7<#Y9AplPX9<- z-(Zawj|3D|P)Q^>z9?OZ=e204^sYG#{5e@@>@#M1mKWOVN1zgNABpA9Rz?iMPf|lY2t^JEzH+YB$1bT;*P^DrLh6e~6-MBfKc6y^`iW765qRB&DPu@| zA!I$*;AOX@jIk{Y-DMpHYjqf$pblRMbr=LvYOUFS1 zNa|lBBXIjmQ;nqdGpbYu_>{|2MpCaZsxSgK_Arv_zao?oxa*fvjierLRM7}L=*pCl z)Tu@lM&Q0zrHrH&7*!a7@BK>3Nb1K%6-MBOYf?s1w;NR$f&Je~8Ap@m7XTT8GGPO8Rw@2201Si8X(aXAFh&;u8G=$dAmh)Mh7?0k7=esG&q#_P zD2zbHpJyb+5EMortAZ0PMBHh$=2PK zks&}QS6be+m6rEnrR5z~X?fpNTHXznmiIWN<(*4uc|THG-er`Q_YS4y9YJY%n=37E zUZv$N+3u&jTDRmKo70kabhozTrnlsrxpVWzt)^R!$zzvq#+W>I`PP=)^p za^2RJ+>Dmo@ov=@h!joPvL)AVPD`%e+LD{mlKKeV{hP%nAqQHFmWPq?x3i(}6l8vL zjQy%M6dp}R87OC2bT`UCA^vMWXRSZd4T*?T`qO~WcnlmBLg5+bcCL8t=d2+SLQWMz zBdnZ=K_YmSib4B{MV@1oq3{?qQ3#1>bgB><5$aemD8#E%DQG;CNiu^(NIMmS#uJ)E z3=&cAR16x=YZ5U?1jbV_Xgs}1#2^tnPsO0|EGH3zM0h2Tp7W%h+`!2zR6ge4;jW9DopM9 zv~z>%;FC9ewXuR6DhfYNzNyAYb+oZb%HPH`DgUNgNKcc=KmW7b8ep{`Ya1KMee+{? zo^e;XzjYsxK4<3%QjZT$*9Y5}N`#-V^F$jX3Fm%0Pi(4rWazj)ggI*C;h&Q6K-p*7 zQLPz#V{GEz>2&P@0 z`69s)^Cf^I)||pit&=iTfYn(@wLGskNd}6rVZtAT z^L$mwU9C?sPDGLx8JJ%3c_zs)5lI^O-qyfVl=kf=$tV#v`pdJzdB$pKFEL35iAd7@ zerMfpiadX3l8g~yTV=iYW1)jr^L&&I35JMBG7jD`wPb&j@51CDVBU0n&2z8xeVLV5 z?O1n>>j}lGs>Zc{E3R^dR_c;f%@6MMMJ;r0Q>jInbIBz-r#vFw*PLm~PnMpw>tHpm znq^8|W%+8lYL>}$O>dc;yT2)O-lnMQbe7pU??h9i^N53^L?tP zvP@;J@YH;l>8bf9(o@+ZvH2%0a>P%UepXt4XhGE4{WR zy|%6Nnws>Qw$iI>(yQA_uc}F}YAZcnlOAs?y|N~~vaR%3O?s@Y^szPRW7|sK(XI5g zJGw3V+Rtm!KQE;3)${gYKh@+p%q-2QdGtrUHjPDqiMh%u?$|C)@rZLgqa%_y&WI`v z#(O$OoafP>i`jtBFq&iBU_)w!cX%g2Yj9^xIj*$uE zp|)7mf`eH|I!5M{55!%_v0V}@R#lp5W{k#C&#g#C&pc#C&dY#C&RU#C&FQ#C-7Wk_=eivN^}5rWv^V zS#ZO(kl|$Dj)j5CxKu`PGDgR`(~Z&ph+}lDTN$HcUB+lK_Qtx5yd9Nz_K!nU@9kFxDk;7o%*f%P3or3@9*z%~g;DqfN^QPDb8Xmyvg#ZLXCO z{Bxr@jU=x9ax@v30EA;?*nZBob&g2l0k-?sY{0BP9V6rWx~miWkk~&7$AbxJIO&Qb z80%IX!C1HA2*$b88}|F76CZ#A5Z z|CMdW|H|6~@IMP>kNie!q7`#)QP*-+Id@32~ z;B|4Nuk4c8gpt0o?MPqQYNWfm*Z^nDDh<3%9F{A)BpB4n$e6x48Pi~fu?!dK62`#z zRbhrNqf=?%WTdX_GEy&#BXwn$1fx@>!O2Kn*=3{-d^L7k@M5F6GLraI!U+Ca%1GkW z4N)U_sa(QebbB6UNv5DoRo0Rf|J7E zX#WA@ZlqyX1>ds?E@joUF6GS@Th^SxE8~Jk~YSlO};{QE4!q#W9iyu0XP_r;*Y=!|2ufNRb3Ki8d0+bpPw?4*zOy# z6~G4=&6SbFu?Zvi11Tek^$BCZ(Pyp-%eQVyByp7ywcy~VU7ysD#HmJ9MljE~T)|lo zo_a$fP2y}Lsx+ABrjxF$99I?YdiO2tu5%|oo%?>_Cu2ju#Bj34T;0}vudcc8)iw9M zy5_!xa~9n9CV1u5(|YB$&i0#$vjyL_K6J3vT@st%Y^4dNaki}Aw8vJKZ>!t-)zxkN z>gu+Bb#-?-zxrA8wKA$!cS#H-%QrAS*D;b8aWfcvkF-5ZP_b{a|Gh}Di@ z{IFvrfg@H%Fn-uElE4uwBN#vI7)juWl@W{|c8nx&#L5W94?9K@IAUc4Tb*VV0E|Ue6TvK z%760hWVn(zCYcYw%oVOSB$zDJ;^5P7Of-^MYeZ!PCo|0I+J<0tF~jU}*E0;0z+ZG@ z;4_(Sez`4~Uw%@~FKgP)FKcS^%bME!vZgk_2yD8Geq9;CxOK-!BKUP-1YZ^>gEd_e98FV=#7+*1lfjxUiHnov zJvdq3uc^87HQko(d`)*ccRu=^;Lg`{Nxa{PT5#}9DI^ z!JXr9HES^b)|HV24p$k$_*=(F0*C7=V+(8itz#sC!&OEw{?;*)z~L$*7=P;+N#Jmm z5sbfej3n;D`HoNPe7_olFyq~ju(h;iJ;!k3rN@JpUTI&t@{qV9kp||Wi!S{$>db~?w|HPexarI6k34Fa~4aU_wMiTgXWd!5u9U}>Ry)uGv^^TFm zvl71#PW=9O@cTP_H_RI2T@p_urbB!Nd$MlcS|F_OTeDI*w%<`_xf z(UcL4LvxHI&P?1O7>DKb(HPw&vywsmN0YYuH~&7rNWIW*zi>dXmh4Q;6Z4S~3TYijINckaJA>~JCm20c#EIg-} zh0|E9>9qfWS>Fj8kQJS>f$@LB24p?whNeXuS!Un|YDH|A{Cu~4mp0a`Qc)|vJaT22h{D_fcy?1Pv#My~D@aKYT2l(wk8V25xs(YZ_ zK;-tJ%Y($CFo zlYD{Pw-DKt;lkCO;WZ({z*oo1lVjZ@EWu?gS78z-+Lw~asRpn5M64Y6dZS6@fVk2(De7KlkUJn+wT~L@%E)$|K~7;S+je&3;-BnOv;qIcNRsP#cabGH0;sZY zH`)bJ7I;^g5T_~%g;cu!l!JJ~}m@$$H| z2fibahJmN0q93&c@nJ3UHAZ8{AVmiL*uGLW@E?pOY`_P6nt5;-xSx@vz#F?yu*6a4 z#%=*#VKh;<*5DP91pG-L4Fj9ccx5h!?Jcp`KDEH$ml#dD0Ptlt=Q~*vY>QNug}|N0 zD6&BA0*maiT@wEh76-%Zg1#FT2gB@wPO#mO=5XOOJEMa&1(ySlK0Uq{&KAfLuj$MIkYf}Q$aa7nc^296E{PYe zkM;wIuF%|l<7%qf1-!4_NR_U^Ew_&aQU}OYRi}VeUUic%}=pQq4PuR zng?gtUlGqTj(5v|+b{t)j52O!9;3!gr2+|LK&E(~jYcjdoxXwFfw_vVf#01QNcKjMsKa z@XSUF4JKMCvcUb5Gc;fVn8F4mfGJsQ>~a$RQzq*wOi+?zGn#K6lvEl~$-ONqDVYEt zRS8tSEwTYmH%r_BBzd##EnTf75oRIiBkm%ABzWMYj67(%!vq{-9v5}QJTfXd6BvDm1xpY^(zyCh_K6L({_nf%Qw)5=!B_klae^Jr34f|W; z#vOQ4APulb-P!h|J2bD48O^f|d`s9Nc7AG*9io`w&$fNqCT@j*_Xwncbq24DBp`bvmnWCJ zKM?jA13+FVBYfjsE_8p$*5W;l^ZC05?1?2usufAgfZB6)$G^{8w3* z3;YeOINi7p6S00FVQE`-@?D#mBx^D5AaeJS5NEM z!?gtxM99}zpjdr0_y(i(HH(42Gm>oa{B0z|E>G zFXZ{H`CFxdxBmp=V(|)tpAV#AAkkmfk4X^!l?fMktBE?kKUm^^<~%i9Fo9F429QrD zOX4YsEVvV#aR+!rAT0*sx<%dEF8=$Ii8}BXgKP)*VxI@f36WZ!OyD{Z1t^MQY7G|3nEz4L72^AT0(m z1G_Ra4L``{UM&jvv0*;$0AFAvC;Kr=FiEQ{@k>ILO3NdaN+VSHmP8ZdknXIyb2}X(yfP6~6t3$Bz zM~N)>_eK+0;9g<3?J%Gr>(tl_m7~VY`(jwFRDM zBxM7CC9n+xc}bYdf&`bmL>=%s_6|Vd8|w~O;xj4nbC$T&KIQGLK%%ium_+Rg0RdT= z@qmP5T>(k(b}}(NkZ`S(nfF|rkVI?2L}Nt~$fxA6rc2_SL>7F3(L@&boj_U){Hc*# zf$y-yJ+AisR$Bx70HbLo3_i;~o$M)=V7aZb;IBqmAYoyVUD+i;I9O$g2lLJ~rGa@D zl30&b`_*AV-vK6300lyru{Qi#qPU6Z}l<$nh z@$Pdh_{))3$4R)DaIoeAPC~x(z@ zAjFa~2(hFRgxD}EK?nj5YGm+m8gU@}z#%CyGmv0}Yc&!?BUB-n6H$(lm;|8*Wdz?6 zLKsVc1S3Q?MkdlNJ$UkBZ*Z3h`+SZjX(rR{^Z`BFO|CzG5$5*$-feVkKjyJvoU z*pe;*vU7HMaK5MZ5-B!`nlJdvwqbO_`R-5|*$J}wlfep1_jmawO-0$Iu~ktTM_Ovz zmZyjP$PysC78M1bV{ER-Je*+TqKx1N#ofosE<2Y;gcHno5ci7g${XQCaZqapANvyu9Mc$s&mb5vw2-248A?(oun| zizMU8E(z8{Dhqy_t(8O;m^@|Q*d@VINo83s)s{p5ZOb9)S3n+wJ0p-_0i^m^1hM{6 zTE6U28ta}7wz?8S16k=PTfW2*HWoOnYLpGkvPMl6mNP6^l#%rbkFu4PuTzvZ-7;m# zG|QB|b&VkptL%{wh|j;k3WNp4kj?N~dN4}{iRb`XFo=a#RaOtftR89$g;yk#J(y=G z(&vCz#mRnkmjusHgb(l4F+W1bqz+M?VCpkb88-8=0C{;$m}P1 zOdkbrI~BH_;s}IFuK+U9Nm*8QNu<+Rd6e|fO1N@$mvAMqNwopfUTuoooGAqFt$BcP z-_n(VIB%)j#+IIZ0ZzN-pxHQSwqTCRNG}C0H-{yo0Qk;88UjuPQU}O!8`Yn?F7MEbYc4Wh!3IJ3!1xK}`+@lio*^n97zdzy3?v4M(paUkFjZLw z13h19Jo{kLrZm=KbVQ}m0qJ0x2aQe(D<9J`EvS4%8kjnjue4qp%6;v@Ee~*|ao=Gp zWFCwOX~drU@cc(epRq?7Jkk)-QCIt=H9>D7z0qQsoQ4(B0bloA&$Le=5$`+8Vthg( zVt18A?u5iq⩔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�+GYBr*F<5E16LErjGZErdk4VzWU= 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 b{6FD+(ey3(4^u literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/stateful_norms.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/stateful_norms.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..7685c5504ce4c8429dee3fa69be8ac8e577c4c2e GIT binary patch literal 426784 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

5>L029)s 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%0AUrs2vhOP*)}?eAkz9L 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 literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/statistical.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/statistical.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..b17c5c0d30b01e175169e622255bc2fee94a7276 GIT binary patch literal 310816 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%0AwkASSmLxhKt5PBHW=IH+yAaESN=Z(GJLh zwmcXEYk~5Iv)sT0&!S0O?;dKxiuZQDsJsAtkW)_vvKBr}$_=aG6U~!>#NR_XZV14& zjlm~*84Eyy@?lzT&T_d9kcD(<6dGr~F)x^SSYM%gmVJI{CI==URyiUa!kS_8 zSUkf*oN_VfP%cIonjh0-P3KrkMwG zmkh>wrkLN`e{Fm2d0H8yz?IH+-TOA$vx? zrA-ODk#8XRdwg#R^U2HKns$`uJB~r+@>|oa@_aEh460^axqLLK-6B!DZ_f+q+i{1V z-qLo4pOWJ=Kuk|u)(yws5;iBgY)w;>?8dP$aWJ<#ZEL%%2b?yh%c_1i{);xR@pU<= z2@mpoSx%^$mBp0Omt%faZn&J;kp3#uKtd-V%II5_qBgZREw$?TkNa6DB;i?%W`v5t zj8L(5?T>ah4H@3aGwcEh!M41NVWC?!JB|<#CQ7(Z{SWe$riEBp-PhT&lzJLtqA5=T zcFQL2avqEjQT<*`lkswkDb=8!YMsQX3F(>g;9Jqvn$wFc7m+GU@ojsSS1T&F zLoBI%gm1-kfD}L3oUj&*Dmutw!L@;>#T;u{r+uP6V~eM?ih}KVw7;>mY%Gb%vM&DV zbXo++e5UJS@o!@4E0z}vh@8fPJ4+|S&FY! zb4;S5G95{=KQZ-X$_G-sb|e^8w9{h2%XQ>B+hJp4PPE}j^!7dp7K1}O^1hamgKRR; zNWnx>9eYo)bR2f8)L*;oIVQ$wH|a7K=3n6lI!1IE={Z0r#Q;;5ewL0sNRcW_sU0{` z74tv3jACD6>PwdaDPFq_j4IkavEb#p>{QD-?U(j9*u2XoQKe1Wv3I_uWrJ159%=eM zcP{|bB1>)T{fFhn#%!ffZJ`@YjGbBO$Z}_6L`RaI&0Z-6n6mVJUrs%WR9Q-G|0M53 z#dIXaZsQxt9U#SPM}kpBJ1rKxTu0v7vSx!?bgt~NMFq7Z|G-jmpi>4Kk7q~wB2y9K z$SZ{{9fv-b>9RjDF;0C-m$5O#p(LTAV(Fgr93+)ufGJBqQ_5bvNR_43PC=!DT11yo z?8&CSj6ER5YnOphMY|^!yj+*P)v`|K27K2Nk6UTecIrk^w(a-{OUn@pX-76cPw{=x1>hOJFIsEIpITlV&8QTr>fX-IUvOMQ z#47u#BDmyF)jh~kawJ(AjRSjs=)0nok$RM+vVMMxF9!o)a>En@7|vN2mpsfw+$O(BlUNGp=!W4_B>XS7KLE5(3$38t%EU*TmkUBn7hlG?b&hTqmX`8Y;+DpDEcvW-qK_ ze5;x>PCl<+1+N7@)_sXvo7r*ADmRf!xd7PB`22dUEJVPGh z$Es#o0^h|CGtIIA#!|A3P`0r0Z7XWYRf{0wC#M4Va`ch@3|hG5_7$Z~^EC^V(Mb-1 zZ7BBmy5&Aymu-x+FIIdDjF*w#oMmVWQ1fSc3oKCc6TAf~eyeGoVkuUZQp?1Q243dk zzE&2kFW+*dpSY?yoo*>smQu?k#XG#r{;v$K^LkbvaNlZTD@&PgY)VQ-xES230vSj)bHw@ewr3{PR${C()lXjZ;Hqr`AxRqYi#a~jU znvIikqWQIz$hVK{QHvDtJ9e&$<5)6}q7sLZgaUFHX}G@`J7}sQ6TY`x3B{7oVOH{H zUL|~_iE%hg@+A1+EK{YJHVAu(rOm!9J>GYZW7XPwqN^;F+R_jSVj-?@@8v}gYf$@VWQFHy6`mWE6`reA zcy3Tuc&=9Axd9b^npb!ZNENjS=LXzSOIdmX<`u5KZI`dtWL2)UNS!OKVVcI-=>0wm zq=i)J=}LP|*V=2k(q7ZF*W{ zlWNm)ck+EO!CByC`z8~V7wg*HF86go;5kOMIdb>5BnbScC4$`jDhUEN+%GShyQ7Si z$^egBBFNqMk|6N@>+>ABd$_TZqr?4j!3n$D)vh84JY$Ij95;yPN@HpCSdsIMq02Dh^<#W|yLhSt-USIRdf7 zHb?F-MiB&JiLD@a7^4URvBXx8JB(2TfmmWI$Q{Ngf

>732!5yl$Q$9FaoG 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

X@7)fEs!U)8Q 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

*w)v~7)m3+`DCD6s< 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

inhwy6u= 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 Hr!0oYoFk* zKD{dr#92Bn-nz{ks2mt~$*UodtBQ5=;QV?$IDM+^c1ub8qzbfV3hbfuR1RE}-r`?H_q#|Q^La<8V4^!R|rR@$bYwA$wdOHTk;80$^h>8;moGrr59Jxf>_23Wext67#eB2|ylS{+7}({^`J z`vs=HyypNJUQe}wQAJN&#erL=uymN$S=TJPMd!HVu!>KwvX&pn$_;sbzdkQ~E1xFQ zX#4KmwhyE`RXFz7GD3a#Y3t@Ixw|3DhTHa}3T?lT+xCHUr^CknTB_&?FrHLgb<*Tb zk6E~}>AJbsK}b)4(J${m5}d~Sj5@{t(=T*r!8%TsIV{!aK`7r!vD)<7#@d`c9v&i% zrki^mgw!Vb=Y?Hfz*#Y}rf;5Vdxz=8=1e0|In~C(>AL*RH)7%0&lxiM4TI#JOgY5t z<#|zG%|e`N+m~acQ*CI^Rg(+#(OsN?uIxoO{IapvXcuFDP>+Fb$Zl(V8T4`caE4Io zd4u_om6;r2W9`lBj!-~Wkh4y;(c=L*I`hE2Fvvvfz1tt}h@_RgN#X+R6)FZoPqopq z*wv+__Vj1woKmXQD}O6PCa2nH``+x}W#AgS6GhhFvfhMj>^L?Gv)7{~t9&VG9L-X$ zv9M6LP5!wOtl^Z+j~Dt%?c-R~Dc;Nr8bkIA=A+?{8v^a#9oN|3wD ziXiaFbA6B89b>HY2t4owUJ(1L>r8`(ErW;S+TdZ!;NiG7c-S&{IL6>NXM=}8OjKVF z$J}A1EbM^Z;JtIIt?cFX}u33&(r$%ixoccg@zY6FrI(iTYcQd{l_pa=qqUJ~Sv z0E!@x=p{k!2%rc8iCz-qjsS`v(8sdtskSR^{-?fm@kPjpjB;RVd2$Agkl|nz#H~0^ zIg05HE3rvq3g<0WI1@5DR$E6ODi__QT=a}`@k!7=)pi%0uxsaCaKf&g4JYi{xv!nD zzEf>~9aakEOcte14!PgQLy=PcBoQ2`RXT(r*<6QEc-?mh$3#&&gkipL9YXO`DUD!w zMwe40C1? zO4T=mW8QPkpr~fw431gQHG`tyeKR=bMAr<8Y0@`~^F%z=M)IF*s~VkKz~s2>8lREp z&d;2ep42J`{ukpWg4}$@p8XR+!=Jb7M39@??cuG0|7jRgl#3?BQ*B*L@cX)yC)&3x z@$y{^^78Aot3K5>%d(%ffXROBCr=o2x0DyB!!Bk@;}4!N?qZ-we&mGldQD5G+AxQ_ zQpcm^T9Y6pA*b4y249$$OWWUO@Y+m`fH!Aq`+pl`c9ZjJ54F|z$$1sN{mquPe{NTi zy4n(z+H1U(ZtT$xw>5SWr<41mrcTjt#0+|&)tC%KyqH0SVhTGqYdB(1<|2`bQ;$$g zE7&8{v`X2R)p`yw{MOB5GR*3|kW>NI-EnT#bz$JD1D1TDUBb){Skt#UE8%EjO+=TxX5IvtcNeF=D&QRyrR;rWql z>(a;~fS$4|NgPW3FGVdIdzW4-6v9a|H!w6l5-Pe#sOTY~>Y=+&JxdlWl9p3yD08U! z0UpaqJ9uwf!Dm*zr&DV5PUdr#q3(T8r`j&D5&Ai>1K{?Yf9D@o$8b=4Z4k3+#;LY{ zv~d{(3*tcVaWwciBz*CqN8b*k>M!ia5NbNYs>L4rIDmZT6=> zrWwglpqt-IMo*)<^#ZL?&`r_k=cZ`X6KcBWbobO?t$c4B4QqUrOivi_*!-aC1B-S` z(R-3@^%&KcZ0S_n@zyil%1jV+nyXnv|aWZ`{V#hM_D>g?-e%%xVg z<)ySfp0%M@OVvw?T1s9{k68V0wRP!JPqiV(ReH^*+ThS$KAUl>ZL__kvd_?XE!xzJ zLaq8~N!4zvrDi$gz)m9{TuIF`Ii6}`8<2fH-2h)0^A5^xT4H(0BMB25_oWicQjbSh zVtMNF@JcK%uDp0BHtxS9HYR#H)rJ-9T*|6`*UlTQAl;7mDx1NbJH4dU=_Rcl<}Rn& z(0btBoxsFHri>U2eZ`8QP%Z{SxfllJVi1&zAy6&`K)L9tE~nZs^TEzcFjtu@fp|bH z2jUFXV3s$owTP=6cz2%gmw-QO--f6d`?Q~N-2H8GCC^oEmUF*h?~*EqbD!^a62UJw zPK*Uo2x9E45D*Fx1J2r(?0Tw=$WS(F0GM#d(-=rNWNQF8D>BlOG$j~90SSh52D~wc zY6QH~MHEc2kfuOfuVVNfKPwjr~=N{oq$#VKy>r`ib7x7`;R;3F(-5`Ey2 znOXpD$?y-y-lNH!Fh40qKntpybqj;CEP4d7B1a zlc`1EC)@zw&lIsP`6POfP9%j;K(4JkQ7$HmG>v(pVqFrY+o?8^<9;rlV2W0z`LEi? z%)P1vcy^4J2p-d_Hl0<#_+90|B?e0|2BKUnX`u+gn{xFo0k6o^=~U`T?&%0F)w@hk z{xMIervnL&{9ZA_V?Fx#E_Av!bCcrQ`^UyrcptB^9HV@Vs)- z^~&MYY{1*zyRa+7eoUa_-$Gy@Nh^JMoi>qgyYQxPWz4i(2>eIX8 zK%AxH;;jqZ^9YQ)YNy)v zXV1tULO#_tE5+C9Am4BF(`u*M_GdrIj}abR>S%AIko5TIdgo}vroXY(Brj<4dJ-MD zVbiT9#Bx)XGf_zIH`qMFdQ*0K>vh|V?=oo55>|!*mM-&ZmgS8|)uXglhf(FU-CflF zzWfyK0~uaVwSiGZPh7=;Tc@yen1@)`EW1VLxZ|*jPakb9pOlpw^89{ielAx&O{UTI zXL8#`4{c{#I_=2hyDm8~baiq9?$3QgPKulQ%tP z;l`%x=3WOOJpo3)y#GjW8t*ge6#q|OooT^3PL??=)#yPe-%7FC#5$a-+Vp&Tf-(a% znr`lO5K^1ymlt+<0cXX?n!b6e?PPn`XLF{JsGMqJ;k1z7wMHyFzgVd67$omx${}X= z$xHKU7UERfz8oW+YD0Uj8VJ-!cX0x`vKQU(%f?=#U5x!fJqCJO_EF=@pkJ~NX9%U9 zUu&yPR%UX9jkPzgJ3;|jLC!kWMvrgEuUzxMy)ei`>%H3_?}((8yh-8$>=h~oLQl2P zve?z7rS|l*RjF35{H+X`oNA-(6LR`5154$1>P{3{f6ICka)i5BkTsSE>NZ-k$``Q? zEqm^8*Pou5zC(J*S?MYpJiv$ldZN--HQc?zSP=vs{~KPAyOWI-LEyG?yr4#J>fcPY zhAp**<65m@OReF!R%_T&t8qdssU_zi*7C3R>i`1|{54!X4}6gvImyN%h^^FYi^ zg4|)T{A34sb!iK{(ZzEx=I)Rjrgnx%-JC z2;4R$xR!(}vZU5gxn$>nCuC|7NRFtnbB%JDBV#Vl8M6o^^r9Q%oLsQU?aoJ;*-mFQsCEY7UH88M(liXJe` zt*%2Tg5^7eW2SY@pa`dL21mISJz$uAU58NQg6|NH$=Ef6dbHKAZw5!{x@J(!&%PNP z6SZpwMIQQQaMZtR21Tm+W^l{~t{D{B?3=+cH@Id{B)o41$4udxL2a|i!#9g{GC4hE zB-#H(TNG$rWt=PjpyfP89BEH36$IlU*}_~NbAv`I_&C!F?ON44IS{o5t^9T%wSz(} z<-GiQb+p4x9kl$nyvVxeH;x~3w;@0FhFw&a{k$(9zix-7<4OdWsYhMI*lP`u|1oRw z0aN60c`YzEG#lTNZCwWPc#(%WvkVUs+4P8y456sXujd8WT&y^eI@Gd@(h(|Ficl7` zeA(Eece0_enUtj`;FrxLCS-X7!j5k|jg{Z%aC;6G(?+#vquP#9ZO5p#quMi>RU75$rCoovyCYET8`zTuFK8n`4kD`_CqiC)BC|Visqt!0OFwQL@u~SxE(LSM~ zT|z~Bgo<_u74;V?>RFc%n*X{bmli0vBwC-~os?gp`WRNMS*fjAsjXS5ty!t9S*fjA ziPlWNreaCadKs;Yip#Z%t;(-eTxXg0dSA8DEIJIL9p!KM^m?b7gP(8B^e4NoFicm< zMZYQ+wN@^AR=Ma}<)TjI9*tg>QuuO`i?rvCjSAF?b zy8k^>`jd8*v4M=D2dprJASoAzRxXaMTp28(GF>tFpXR~)z{7HeoO@sJeGAt|p)Z?f zH}=lGFJ3N6o?8vx>kX_I3P64{8a0%~e5Rgkx>3JU;y_AS!a!$bp4po-T6yf=?L((v zF)1)->Wm*JP34$1nJn5*26|(P5&va(PXPoOR(u~v6)Fz8>LmQn7WvZMfVLOq0v!Oc zVdgXDa_jP)c9moTel}AJKoppCSzA(7J(Y6hJ{?6}9+hUUi%P;zg-LF-Ua+pXccFG~ zWn+5rDE+bP$3B#9I4+EN_hLnsSl&_4GO_Hh@Pd?BUXxHMu}l@rWr^igjM*%)aT_49 zMe~Hxxg4yR+Ph>+YiduD{iUh>$JpsX?)#qf83T;n&IcIR$rp&xZ@N5>UQ;gmOu6VW z<)Xioi{4T$`bxQI)E|yG&ovC21Qg=YSAl3tMh-!gHu5~Xg;N8YaQy_bd z+7!pJU8o%4dyl;~EB7_SN7#G6a*sAlsw#)mxhls7Ajzv7fjB!q>*T*GZ}>TR;_3s* zaIs>o;Ua9(6u8Z{CsdIb!95(ek^gW8PcC9eJ!o%W0w?n}kif|+C~#H`rDYw$MM6l~ zi4^co7kn_07O@y;p@{PpF3wU zi!qvwcl%Y&;2d<2{Jh`)Ba}zEas+dgas=)$G1bPTF={T+PHC({;Z|?cW9Y(^)n*< z2QD~ZN>pZh;7{gw%>$W}RXcDihE%Qe1|*iUH4WVDW?t}(Ir{U!R`iLqDl#k7vw|qf zQOjIKIZFCXxqO#^rF`d!>e22o3@#99EXH#W{7nS91;} z!&T+LtWqZfd#5R$I-s+0WAUQ=vT=X*qW{j9jJ!LY>Bo;gojTfck9!oK9&o^Z?Nj+u z`s6Y@-JRZ)k>~4G+lEc2+nmJfkSyS%vo~ydp$V}_Ypmb3(W_02RhsOqvHE4zv+8D> zZ_mO{h5?o?^BRzKgh24*siwttt~_JMS#3djChM(Ftq9$Q>>2ISR) zRBjxQ*xc(Nq~|Z_m!-OR1n01RYdA?w-D>Mb9;ULWYOL;J{M9Cwlw8#&HaB=mG;Qi2 zq&Cs-j=Zv6#uhY`7p$n+#@?$m05J{{wL1JzMz&vlYqrvBe%GZt?!NZ~d7a**_f;cIJou=tblUy;Y0 zrxV6j)nddp^qyr6T*D}&_wjdhlB)HJb3V4*I5`DD+c)IGUjdf->(rg}zy6l>%SpA< zCoekDgvsF%Q=G-Dh}FhdEw!f~vn6h+$?E;JkqXIew0%_G$yx!fu{%*@{VnU=v&L3g z_3%}<(UP@&bCa!Vxv9t6oZlo$uBk8mzgkFNEWCu`T1pmY-?)ctq07HY`oL=7R-Xq~ zQqt$D|H(Li5~g>Z{FMj!_bj{0rV8-6A4?ylFGsk$!B`Ol?!4X$a`!4@MG$z|ZZ9|) z*Z-gYW~5SU*ivgauGJd0)EbU!wT3OV_SQ+5+OGo)c*yBp;&%>!{&8iYH%C4&I3_;|Jic!N=?EqBlOn=A;t z$fzX9-Bm>pxO+;FyDt?%;IW@5*)wXgEXp07+(6tWuYWr+*MkN-!3KBPBp&T{)M620JW5R;tRgk*-y2WK87-OJ<(cQ{L z&ng$4s9f}yaxsh7cM|3#a}G0R`F$`96Q}!OE)>r62M^$wMqM)~{Oy~;Q6fbT80J>j zAr! l|lwx@J&>(>H^o+=?DBOuw!}D00Df2*+gXnn7J;_3N9#QM#@f6!Wuh2FFD0 znn96=z8M_#@0vl8s=gT>{MK=3paLf&^859Zco53+txMon7+2rAy#X9jPVaWay zY(mz$0+X$>Ir__aia5)jXDSHBLlZ%6&`1SeV_KnIt9t!Om@ZoRT}EmLg<8sa`St2J zeG+DtmX9)j%I@7!$B(%iU75$r zCoovyCYET8`zTuFK8n`4kD`_CqiC)BC|Visqt!0OFwQL@u~SxE(LSM~T|z~Bgo<_u z74;V?>RFc%n!neQOA8cS60J}0F3hh`eGDtstkl-5)Yh!j)~wXltkl-5L~GcHPdt_s zt(VcdsJL9K*sAulE?M$D%`Z1b`pRsvU1I2Y>vp(;J@t7WoFlbfsMMt8!6m z<)UYmi>_5J`nKGo(I<20hgX|IC@J60pySQ6))8=h?`Wylev^jI~lj1T|jTpR) zG-4#YA=6-VhEUNLLPb{y6+IzTtwUn2HuG@Azp zn|Q`05d8MJ9(PYCVgA`hzBGq)0KD8NIVf@1@fOR|>?)fkwWkNQr>io+1IJqD41xu5 zAow^Md>j&i_U4RM9=mt@&?#6<3e1^0kr5F2JbW4>w0^j*73G65f! z*VGF@6qs~bTT)d$m2&$&9YwQ0D$QIMm4vS(eTiF;-!m#VdK9p`aE{u8i zVnvo%-cispvFxw#f|OWZlTazKOcl&!iRD#{*(|ZIv8m=VyCybzBAtZ6imAQJEjE=* z?MdEXX)?9{7(1;`!Z5%$?CTI+cY|@Ae9amCree`+%0-_k7d@t2^p|qcTgpXWDHo0E zdJ+axKjKUUbCtRS;svoDh(lBhJaVW7LpktK#z|8kdyOiFGeU(iBLx>!2}$-A}?0L+U|$ z0~0uzw}AvsUO|DgVkj-^5H1oz%1)$!+g$L$L|VjRpoJpNw^_NW0bpV;VlnhW#mEaq zz_|()<1Q3oe^n0g2v|Z~eUl>%V?l}+V>BD@_FYfH5Xy60IfA)LIRbZ^nCxKzTcPBu z0QD=FXh~BbK~k|8CFKYcAyF>IM7bCg<%kAX85YP@#fa2>Ts49pnnTqGQpnO90WHy6 z?oy!AGKNp}h{d>;lQ6{aQ?~J`{ef@Io1u%qZ)Iu$c+VWxMc@{f5a8z)F<>kDhvtcQ z5!j0K8(i^$nT#c)X9fQhn}6l~2DmL#i@-DY!i+77#6YWiW28ka)~SkhiM0IexbsOE zBK>U_Y4ABYI7`6a&D1=QIa##>w_-@u%CiGVEM;pN$fT^jfw$!7&jVZ0C(_z^jC96ECEaT=HEn|=L#QON_wRZ^n47o{Iau4oM)YcA+7{YodRw}XJ0u~ z$HkLemBXcj? zq=d@FoX~MwHpMx8)=3yLV1I}@I3rH*n66o-|iY;jIKGp^ z*`K}Wzw;#{?@nj>@uN>?orKw+eJWo{pMCuIBsFE^7aw1(+BR&u%AU-;4#@&OI(x&W zzcnEiX^r)}Hu{2zu}YJjHCDf@dRE$gs}p~1uJT{vG)a&XaAvLI45CP zn7%LX_>MMPX51%d$cSYr!InDbamnP~D1A=C?8`CINf@-}I!P{5{{h*I#bXRocn!bk zNf-=YTT49&!}vF3Z_d*RW2^K_G!jg4_`+5d;#bB*-1H5%!LkB+RK6 z4ML%79q?}ZY;r~=7Q6})H)5e2HTyIR)ub^&!tp9d-F=@0VImk~pn}oe%0IHpn83<`hyW^j~9(F2CL)pZC(uzZJb z%(Si<6yfyE;3&7E2Mp7%>kx`u@EyW28M|gsS6S-#W^k0QYX-&q?3=+cQM+bPn;HB?+dwhOyTgqVjt}Qi>_^EqN_4_ffO) z`|=}x8OY;B&Ll9)@F0=Bl=#RH>NHEXU(V~Qxma-`wZpQD(h(|FicqM`bz_g-ad6}H z9pQBS8#9dwSzhO`V3{j_Pf3TE$*3Dp}@lbY&hdpTJ;+ zn^>YX?xSdx`zTuHK8jYlkD|5iqiAKkk5;=B!#JUU*eR>7XrEBgE}^15LPa}-iuwx` z^{h(>%|C0&r3DHuiPk50SLU+n*Ve4m)~wXltkl-5)Yh!j)~rNp*oaR&mK3d*(YiQ% zxmK}N`L&AcEc0G(yVYaSp*jM<4`$VlYs|r4dsuqu)88WBVVJIzi+)uuYOP%Kta8z{ z%0=Indo=oH4*hVqDTI>p?F>2|l4qjfMw=Lqu&YP`A7<3#C&gu`8ZmeoX~al)L#Dy# z456Yggo>^ZDtbbwT8G5!HuG@RO~z5zp5HxSa&z9yQ{vZE8YKqb@|hFm9c^NPfxR8 z2tk^hdNHF|xF{FLo_!LA!5@?d?*m_Cl%8+_UsSk03JpyOmBY(L$<|4j4_hx3fPC#* z+>ww!3G+eAV(M2)97rk4#6)Lhp4po-T6yf=?L(($3zGtKrq1|r(o~LFlgXm}WS}>u zm{q@=N04E~_iZ#~&9!z-Y|%WSbP@(DruHtk*;F#MCwYg( zc544Ic3Pi=VSw*<>uxZvldn0W-*kB%y{26BnR3x%%0+)E7rmui^p$easIDhrF!f*U z%OLFw%vC0FAYKsbfjC54;*l*D4CTO&HBOoW*=tlW9LIK{a)j@pwg;%(FB!hTaaS28 zRaFkBb5)KFK$2HE0`Ymbc?JHrJaP4bWVl$d)^HIvX$mCURgoCM?k8c0A@!iWfeD<< z+du**ub{wLF_e~d2p0(w~DPD}xY`oidJqbf7FLvb!<|^d~yd{5yy9{iFlCJ_ZF~CGi zw!eS`NyTE6lp{=pM7bCfxkfk>QTB5hyr9h=+ z44>)|i*YR{VTj@XZyTT5ANcSbutnexWNHC;Y^D~0+l}{_H^6f;wFtbxRrghf*E(a1A~DdaZ;Z5v#X427E|Ff#Nf;vi zgDyDWi*s<6fN#&#JdinAwF9?eNY%=-14t}oYZ~}iH}itG<>=1?ThS-ds>rNR&kCX_ zM=f&|=Nf$Ct-*yfm5e|ThZB94%Kn- zBv<8d>20o}z{RI4_!R$X)7pV6(Sa(~#e?xA%%Y_?p3;6=d5-o+xKM-9UVmJM`tNme z;9`=Tn6Xy|UNdyumQ8U^pLG(34A>u{P2{=CSE<``3KWNxrEGCd9q-kgL%_MVl3+4$ z^x~|OF#EF?{dc}(0LkiJxNU&`JF#nt=cwhy581cybj3% zK015Drhhjf7HN(3yEgi76JwPoJ8P_dS@o>C+2-4`@RMPHrOUhqWE~+=^(d`nRjC}_8z-7 ze40$7?c;LWK9KHI;n-ix2t75zV~eZKfV_GzF*Hw&bP&>0BlOEsT|9zwSid!#q^7>j z4CG-di>k)zF2-MNVoAwWZDMnSr$p1H4nk@Z{oay8u#7EeC@)x1vyHv~HhK0R8isQc zhK1=3dB=D3P|J)*OL1}VIT zU-TplhOe!qo`hliJF++D>4dRWwHUDty??O=u3;3?`}jLLN!7SK6Dqb$M>=SGKz>nJ z0hapf)SdLd{+9L2Nww1_FFMf#J<>r-7PBH&8(+25o_^mfx(yqa|zm<|bR!a#N4BIloD4BvvidI<-QwP)&C|;9Jtlz z!IgT_XQz`ey%(kb%<8l3Dw`_6=f0%;jg5sdcQ+U-g20_G^@7~J%2*KuUUrce)Kr}M z=T5@ZY7JXz$=`%AbC=&v;oD1YTrR66EfxA_&|)CCJ^EiXiaVmzV64zX@Y^XWLbu4F-2l337LuC8r1i zmt4Ne--NNdbBZ8v$CMyCt*%9=P+ZI-v`4mak?MoLg7q* z@Bof!)HQ>`-@X|fB~tW&VQzIDLJ=(AAsjQUYX(I)eKR=9t>^*6^y@l=A{Tsza7@Oo z8Pr8qvA!7`rR$nOF+clea7@&$85DWwo54~4t{D`m>YKqa8@OgrWV3Gu$K2qWL6Pvj z85}c(YX)_hO&-2ktP_6{hU`DVCSRku4tc7(JrB)Jwio0go^qL74@u32+iMXank|?mqhCmybJRyRKK=nrM70J zwq~WaW~H`frM6}zTEj+s;<2P?y^Pky;mfs(t;(-eTxXff--NMxEIL$20QkYI+VKW+ z@W(GmZ+QA!mX9+j5UapUj~jUTq4Yr0zr*b+cWC`WKtv zZp+i>5O|=?nUkLsm!WFJ;ANx{BjF912BR~CioOskxr_&);ebpEQkZa$I;;9knoHXuTKu+%5EM*J|^3?5JwZKIFL}W?{xq4 zYJ_3k-LUR%#z~lOS&$xNUCY=&{HLc`FoYl}7l&3Zj;&m@rA${0-phmcfxlwZ8`^i9WOfllWI!wwS$gtx3II2)_&{ZelO3ONgi-eG}6Di;}7kn_0 z7O@y;p@{QsR<3FQnAnS0482e>@p(iBLLR4hhGIl@Fpl#4M@E(S$8qQO;$ z1#(p}B6S~Ejo^poQ1yWnvh+qkOZ1kz6sWX};Zr?gF|Oq#3^DwaJ*Koj@U3|>bP@Qi zOf3NKnZvpW+~N`f{M;f2Y(@XjJn=39TakW)D?Tujv1IhD;Gbgiue{#?w`FP(c;;T1 zu|<&>XmxLlw1~wzRk1FSUdu@sBK>U_Y4ABYI7`6a&D1=QIa##>w_-@u%CiGVEM;pN z$fT^jfw$!7&jVZ0C(_z^jC96ECEaT=HEn|=L#QON_wRZ^n47o z{Iau4oM)YcA+7{YodRw}XJ0u~$HkLemBXcj?q=d@FoX~MwHpMx8)=3yLV1I}@I3r7q?aC=M%2 z+2WjfW?aoV1e|Lt2_^$aFU~p%vp;*$f9Fd^-kr|$<42#)ItjBs`&7P^{;MtDlhl-v zZ`@L?+T?G-*pr#pAz8pjXUpG&F(DRdjrF@W`htnEN|T*6R==!zR^4p#?OFKAFu>Af zUIVg@5UF~U)-o&F#TRg>{S{MRULSxAKlz(5!8$!K5(jP_BGF;KYi(Jqiq7l=uv%Hg zr$^c|8tFyVmQ=(~82cgN|gt7j2 z+g0ACumuf;ikivagfV&c9~y>p5{8B8`|^(OXtQO;eR773Se6oOsdFBeOzw@+=OoO& z9K-%5jA@S*8VJ;XKsICX7=sjE!!MJ+31ebwYdQIwFs27fd`TrbVQf_`Moj)DOx-XF z>3#eio%A1>cL{6};FB*we3$;$I)KaoI``G5y|0YZrxYeipO_(4heRett^V9z){kY`ac9l&P z;Gci4oGe%vb9cWR5-Wnhzcea+i^AO}iXiaDFZdo~Quo|Rm|Cr2ORZr;tzk>8;kZ_7 z*ivh6orI|k7+}B~KZ^(Ffm@xc2V?GDXRM?ekSM6D2Myx~82{Mp{dwRyE=+?lcb67H zAg)S-aEG_#M;*W~|6{fUc)x!tAs&pmd#ABt3Gn(ULGHd%1c8U%=zHYu!Ny9Dz_X_W zx%=ZH2t3rK;b6?&D~**NftO7Qa(8tR1YSEO$lb?_An?X1!Kwl}5v11Dxn$>nAIj7s z&}YnCBV*>sm=kg$ECLC=Cc<2!g62qscjrV{1m5W4J2&Qzpvv%M}Ml6)0 zW?x~UnlvUzI9>&*yW=bf6Tuh*6^!myE_znE=tSkBzm$s!yuOn#=b3YuG0X3RVVF4G z4|Ab#rayQ9$297iLE&%T42}{hdcZKZx(=ZTmhTXbnbtLfBAmV%9OYK@fMNP|9YT={ zzC$=BW7iDodP^PO435%u&7hc{eKR;FYS#>kJoL@rsDIZCid6N@;Ft|uGbpmzH-lqt zaLu4dc;5_;nZh-Ly3r;N-z?UNKM6zjKhqxnT32AQRW?V*Hv?|;za5)%PvYss8}gNp)%KvJ$lE%vKZsT_Vw##8WXa-&SA&SyeJvH&0sNY zRGT)c?HJW|jA}cox5cPxRI<$9=*m1^K7qjsH?c%(+(*$W_ffRYeH5*9A4O~3N72f7 zAFXyNhH*jxu~SxE(LSM~T|z~Bgo<_u74;V?>RFc%n*WC-mli0vBwC-~U6;$MUt6iJM(g764LDp4Lo%i+n%BbfsMMt8!6m<)UYmi>_5J`nKGo(P5wG4S0BqL6nqlXVCExrmIj7 zv5E0Sy9xz-f>D#76qliD#NcJ55hLLZnFgaXgo?fpD!M|b=n0`}9TIbk1qL^8f+hL_ z9yK3s4uOwefnROh+p2NX36^@?#4|2|;J459xO+MY^FWL8Kjpv=fL}C94oV#M42$I} zbC?IUrw6sCt1`d?XItkCf(3CP_&6GT91@;!;`P;GT-o+x$meC-7UF0k6$cV3_MPtE zQH?OHyBpTsRo~N5kew4V(0#uOv|ixEio2r{hrK8`9>9CX!5_!;3jDBH8N zy>Bki0T3HzK4VU>E+3a4TYccKXKDe60+TLlORB1;Qcl{Zqo}W=(#&;HN%$BqT}okH ziPl2x-pa;!5{6wr_Mvpcabe867b~*F@{WR*iDiF<7o^1UnuJP;WvXBl-p6x#z-?)iqVaNPBVNmZ4@>0Fg#1CZoZjzIjU+q?oFm?y42kPH_q)*3Ft zCQX54yDAbR*!?67F{B=}H!y*dc^gRJ%Blyf5sy>iHmfi?xiQaOT0+p6Ae5yw*#Kh|1VzEwDtV^WVauS9}|F{bdm=cxQ9{4voUh_caWYrGbiXl}iy#a}(Y)u1~ z+{_C;Cr5uC*or=pRz+rodR7ocIck}!C`U;jlgoDrSju;vs9xg=A6!a$r4ICb47B_b ztV^6{orEE-1Wug-ZbfHbIaJ5RlU$XsXM5jF%?e)iHsQ+0f2QDVb-;S|W8m}2TZp)@Pr_VYGLk8>*(I)a-<*U^B zoC3vRWhq;nQ^$KX=MZqNtt6NX9KAT}B+UNoMgN^I8F_a)(~lp0I_o6N{_IovQu?+> zd{0tSM*hCmNtmzLm(RQo$pSt)d&8!C*~G;nt+9UBMh`GCR%x=c#_E?<&#IekzC8;+ z83tIo%xgf_5h7KO(pqLkyZ8bQwI7~WAAKOh>q!_es_21{IB@F_i4OBP>zc)?=*&(4 ztCdxJx?nAzmX#Y`Z%e~Z=M`kNftgIB?MiOj2hyD?9Q$h-p{GW8Y;n~YkXH{ThUTe} z4nlfrgnn77i$`z{>$irJ)YK1~fjmrQQPo)8#rUgDEGfCFO>A!PlxW)2K}c<)UtT`t zZ3TkY33S6A-#{k zqm%yQ@=U1MG9Brl?a{X0lf(p;`s>u4^uPX=^~*`M(xX;Cx^WteKYxbyUOMY@QCx%N9juv z?taWz5d{9<9bS;T174U|5d}9AogY*^VI)6V)@rF?U!g3qGJXxN&-?*V{N*wrmo&IHMab$yA*I z103@2IVt9WctsT*G<-C`N57KuWFCm4Qd{oum3);8#8Fafz=vg@4S@eMQ}aL^mqy?Y z-^mET`@NXtoCls`RBFrJ>xv-ohhI{1ZZPKVL}Nu~;I&hN+}-P?d1&CVMx~*-JNSYu z2z-Z8Nsznu6+z%pt}X^+?oKyWbOic*8dOi@oFse5r8crAa?{%1c5%5t#doQ4I5HM<*@d8Cs~P8-?}a%WJE?eFtsedf4F2PA;ZBc zh+A=-aum}mte7T^DV*c1N+x7ev*X5%d(#QK?urw3?QA$< z*Uo+I1o;u?nx7KA-uAFkC_mn&)X5?Dt7#}w%AX2>BehD0FeIDn5Q^0E9l|kDln!B- zFIAoy9vO$50)%bxucLBnU;bt1^kh4%1P z!B-l_6y>4`ljBUO&L?qa4i{@`)rE(VI^M~)k>*R*tC3UkOSbv#$Tus8VFjuy7u)uFcbZ;@A`Yeg zm!g)9jo6}2?If8SqK|}%E)ptwNT_<~?o-b#7A%sMV?`))nfU=8%Sk(UZ(G5)RlTRf zL-hXc+j)95#?a|YoD@^K*e zI2wE$5`KC#?p_u~m2J}4u~4y3q3FP0uc$g3)-9_qI7<&dX6?_gtE`KFctwu^MUN;K zl~yi}ty~!_p)$=d_~Y~7eISLsvA5&CV2WJ0eyz}shC(~4!F#>0*(Ofv54 z)(f;oK{rLCpPQmlPbm8I*KY-DU+Ob zW`Ait)2$l;)g^fwBcP(c(g`h@=V<;Jd&t83wu&`DXzT3jWXvPXkn&QxwOTA}=+#p7 zlA@N9m(z!BSmo=u13LA2z<~#5IdqU--+ZTjo!;w>;m}?_TlLGjO+B{N*k@?G7S%$n z`e{kkZmXqcIpn}fz1GMFS5mV~j_1hO24r7PH^3Lhyo0ivmRMf$NW#R%eW}E<)Z@{W z*tn~dSYBLt@lI^qe@W~l$nO8rIWnwZ=TcVnyLPg3=XS(b*$j65P2j4XUefCHlGYCM zB|BrM_2D$M{*ryStM5)=;vrK;42FuuP$(AzpuuzJMFtc zmBYFBbUTUQ`xqz20$Ih0v9m%zC`1f6Yg=*;2hKLJo*^=njT!(Z9P%^<5)RoK0M3ex zv?NUlhEPC)A)Nuw$)OqnFLt2<6F%vT=&_})27rmEh{b>k72_!swL&Y z&njU2u5#cKgQXY)Q7)FWP=w%^T)j)c6Ek%>5xCCPJ-AfwGC}#xJfWTrBsd#;&*_0n zK`(cS)4lj=ekx48s(cS|t_S~GuDE63tZ1l9DLKNTzpS>hqLfsOTEg?nMb|5b?~k(W zRpr3P<}KG{;z9n)s6ejTl7QfRTe7smx08wK~Z68~t=|Pu$}k$xjCyuwVO0evI(oN9@%Uk{%!Z zh-wwOVbd?$f`Jz_c|Gy|QoLc)i%p2-rYvWoklw%6#8_|2PH(+#oAF%+?ODRgFu>Af zUd^(+5vh8V*6J{-oVL4*+HW!SClyznGi^ln1;cyRGqM(AVt48A7S&2b&LBnQiEu&f1&T9if1% zAoa~B{!8b_Fisnv^=vB_^(o%c+l(j6S zTD|hOGDH?^rR`_4gO`D8>`ppcf6ICkva#dXD9m1umaOunq;WJ$xyHgm-8T8>ey)4D zO=b^$8Nc6J0A68K`pSm8j}$@R?_8AHCPD7rV61E%0k57CqIq z&VT_9d0~$AJP@y_qJxHy2KeZkr7aLgrMBGRD_La#ag;16fbY#d8vy@DPKS9Qj!PqO zhwo$r;2-@i={^s<)2P&zyNA3g3j*J6R1)OwqeT$7?c$Q0gE4n+HCBuRzJE%PyEnZ$ z4-Gu|HNHpgo@lJ}2)ueqkh`xGL7>m4^`C01b7+nn@(DB7NSHYihI~-B&NYf^uFj4{ zvg5j(9dkfZLLLG@@*$1D9VsEdTm_O6(iTYcQd{l_pa=qqUJ~Sv0E!@x=p{k!2%rc8 ziCz-qjsS`v(8sdtskZBE{-?fm@kPjpjB;RVd2$Agkl|nz#H~0^Ig06iRwI+f6wY6G zGCEdUM;|H|-KAXgjB@cw&_3067o4zb=Us5ZuAL1h?Ap1nov^-BZC?#5g>oi~QYVMp z@8h9JDSwg(j?^k0!jNpPLnyrNJA`ARC>_EuU$_pTc&d~}Fg&BnsWuq$-gO5>8F>BR zm}bgQFcgjJ5Q-Y|9m4Tsa?PMfFy9Q0=ag#(MGE?6aLjbB85E`Jo53;fxn@vQvu_5+ zEa;j+QSiPQ9CM;;2E{b#o5gt|o@yicN4Bcbxdlv)%dYX0^4xj*E7Ox&1v9o4#zb(V z-P~@^{)wRB|Fr8wkeefIsjGrNWEfMFizdWVZCy<8`?{28*1lnhm+xYbmtU`4^{KX5 zmi?*)Otx*lcI=qD9eHs&>|&-g{@k(SE(VI^jmM7HYg#(hhB@Sw1{W>Yngl5cIrPIc z_}08!+WujKH)d)CJS4BLw?Dujvzwe(JH@C`k$S(S?dR+&QoC)%N$oY>N;mdshua!E ziPOpbWmC3jIAR99(&|nIB3{g(LNSHCK5IB)Q05|$ic^nJOe@$U)U-V5WyO;8`F61%x zc6Vxi%bNq9VbrRp+As_w^aLALpnCgM+r_5WrCH^AZ`?WYEVKWA=BL>s^E60T`fFw^ zq^^{Up;a!%R=F5l<(vu?M5l-6N?!t=U{pFwLU?{I+q!hVMF2fzSCTlC`d^A#Huf&P zRw#s%WNu(+d?ZwKkx2DM z?}@K_-_xnKKeZ8_nFBijJ}>9r`G?gp9MoPL#H^Zes_nmQTn6DZMjQw}js_oxgfBky z=m*UtM%7=~*~60ctx&N~p?oLc6RXaKb<66jLR$BFA2Ao)YFF8C1frjwOp6{-E-I~D z9DDYuHU|IuJa`{SVe6?jFh#DX+G>S%G!$x`YJ0wUtQ76cKaADu{g!D*l}WJz(M;wE zAWH80nTQph26MkqD18_HQ#Kti1L~~K6iC#RV-94xSZ(&FKc*SUP@tRNOGZzly7dCB zQP54%=;x+r)DvpD=XCdyV6A*_91UxHl}t|PxnCs_hr8 zXS#JGpt^L|7y%Xil}>2MJV*1h>>&&9+bY%sp{=v8lQAE#vMn#A_3^9?y;`bXQq)rN za{BnyPqlUFQ%|)a$5ndGr`q7qUOt;~s_minlFB|qhP#Vaz)yyJ?B#C66RbY}}VhEK5BeU5VwX%flo!Gel zlGvE&_n6GhSi#Qabj?kU|h+XN7=Jh!}9z zwq(~+ZA6B$Q3Jq)L!QP!!XaA&z*&)zmZT}c5DG{zq%+{1IaDLyQ7$ZC!Y7>(J+{=< z05B01u^3RHVmyVSRtTq1MDyu6awA}gT>ftG0NXK^hCrq?u`&j(vBA>iR2wn-(#y-{ zH<+s=81NUY=;UW`z*#X<2NE=5AWea|Ud8Y|epW6zTDjWKklsiEN>1Ge{)9D^w`t&KGPMZ2*$n``y@++m zC((m+A}NFda&6^_axqb)Y0MK9>yjw)EBp?p+DMMaxOjpoTAAh#wz_5RRVBc)W4uK0 zm{zsvtOCaGDhDnxSc)+a}y23q= zz_?3Z4S`&>X*Unfuh)aqr`oQx^utf8Kx?MJ9!gK;z(x73S^4Ll)6oX3*c!NoJuIf}UtMN&P(KD-^YTKVZBYOz>RNJf+ zU#o+BztK;tood^k{Ukp|_{rn;Y6?k@bH`Py&<&fuZd+BnpvhZCbl`?fhuZ|fa#NNw zQAqC}Y+|f8Wv91Zx6Sx2gZ3<8Wf)-TGOuP?-iTB^N^5l(RZiR8MeXDAQ@9UgcsfP z%Lw(|1=h{3+})66!xei{g|@HGZTmpF(_v$OEmiac7*8s$I%)Ez$1L2~blu$RAfzY2 z=$H2&2~OjEMxEmS>8mp>SjWjShou@l2<2NTR-0Idb5)zzSp<*EPR2waeU0qsgPrquZ zTS~Qhg+&ydZa{8Y_apr71z~&MAVxo2CT0yQ2sKKl@HU zH1<{3nFbGA1`o%z!NZop!*Ol!ux0RYjKODTJBC0^R9_Fr++n3G?10|jy>qIq&VT_9 z`OzHfc_3a zHYy2ncSjKfF1flGjJexotmp{z`LzC1ZFLUKkwZRV<{AkzN5YT~YTI0+sOIYISR^~n z%c(F2Bqih_03;vM2;7kpa;gnTN=REE(MxT)BY+|ZBzj4ZI|3+zK%$ofxg&rg2qbz* zkUIh>fu0IOQm&zqVqUG^TKV)2d`b zM#pOF=tJeAyOfKbQ7%3S+Nav?f)jS_ybDg)wX@-bT|4)+6V`XC?M-2&P|jpg>g167 zeLNH?uhj2_3r9&9z3)dkOPnFULhG%p+)doY}yY8SU1Fs(( z(@Yr(hN5vDLQzA$LpYvHt{D^w=9|IsoN~>eNI~BWj+xFigQ8S@GdSiw*9?kk_RZj! z1zj^J3f?z^V@`Ccf==59+~oDRE~DUH8%%(#nzBKaT3jMr;gI@N|b;`4!6nj zG$!-({p)S)qTz@cbiry&1|nX}ph7W)osu;iF(`A9NX4l~D5e$c5o%hcco$W4^H5aP zeH2x8A4S#ON6`fLQ8dMU6isp;MPsJ#qiMQSwSW}wFGf>DDw-fvR9&d3vQSY~p{7+L z!KYaieVb{gg#<3C(?|IOawhjl>VBr?o@9wtOq|2SZ{?hu13t2>bieaL>^?M4>vF2? z2D`aEr{Wy&aC@JV74dgoIBin;O*n>Ogq~o-3RG{OYJ05d^`!h-Tknm#5sx(cf7UG2 z-%MjQT`7l!)Rl5Ew93WUDi?#RoKvBK==8Z9n0g^GO&B~<=a8-u?%58ek-*m|lBOp)uUwpyVb4TV~#+K#o1Dn+}8Q*940?Wi&- zRv?eLoYi!c(vA7Ye2C!vEd;%M7TqI#VD~Q;s>1>0-6npZ=I;BtwC2eve7U zecgJ2)+p$vX!LVaH0lXOpZ?0@zI3)64QqUrOb-}vXnrX7fu+Nx=sn4{dW`Bzwp3={ zwP?_-{Ind1>e5|f1XT3b*phjU=11B?7T&j2tO>%X&c05@JlzZ_FQxVItPQ8vei$ub?H-2wIRn1ckc9(R;QP=c9^@IYD4P>yLTrr@sKGa218%5 zVknf0flw}nLAe+N=dGvL)ZR3qSS7f~?blg@}9 zTk2{6n23s445&~soZqdkpeQMiIp*MjSZGAr`m|wYh5*g zxk`co|I5VWXK=t-F;fQ;G-4o4fw*49@I8K3E;?Gd=xOC}^%bsiz}Mt&+WWu~krg0U z?TsjvkgQNl#6iWtB_=B|CMp)ExV4{ZBSe4YzQ_Q7Iq!-u0&mLH0`SgEEdn3p;tjqu z2X_%TE4Y$z#P&Q_SKy0t`7HtuaI+$q9FX2f0ZLBY2R`4L%G)&X!b~j!FLeWeuPkC+ z@=5d{ok$9yfLvR7qFhWAX&UoH#kwR)w^MB-$5&l)fGJv;=HF+bz14*sJUhlq1dnM| z^`BM1_+90|B?e0|2BKUnX`u+g({lAL0ng3U=~U_g?&%0F)w@hk-kvAa(}4s>f7=Nz z1-;xQPJ24lMueW^To3+(Tye|5Sc2R=LR zb1xGQ@?S;;a@Cdu1m`P<_i?W@1>$KH>*DHJr`m8cNw0l^yZZF5I1p#)xOi*mo=0HZ zC9j4+uG+Ml2j|!8!Rb?N3zmNPNfl_#6xc)QsT{Z{zcnlWFjtS@k`h~UO8EH4=j3Xq z+KBV_DyGHW6UJb!^5y?&*$KtqQUl}vC%70haU(qZ(>YNy)vXV1tULO#_tE5+C9 zAm4BF(`u*M_GdrIj}aD*-K!}iJwE-|Y8AR+(_3u8zzdqZoA|LJxXhJ7*$T&-9_zxH1*{@2gvYxstt@P zdg3Y$+&YD&!+guSX4x$|#~p`Ne0q@0&G*ksgdxxG+wzLG@@X=Swm*>D_JMS#3djCh zMyT&jv~GSrcQ<6&Fw9GYRaBwvPvy3KAl>P(vA>oodIF3m6<3`!dDCMSZfv@4?sX8- z6JYeq`;P>t@jjzY@&9xqiWaQnWSPTKjUI&ZtrV+Gx0-9Xs!gZa6O@NYqv_^e2O+hI zetBV+7jRaLtm&Jl+77XOL^fv{iOQ)q7EVX!%p9@s{L?~RZ;-r`DTkQ-TVB*xvk<4+ z_T?DqR2$lJ)j*&=x{DLgmA&YOUpDp{?PBZ?>M_t`vX2^H1|4f3&JapHpJ6^^WhO`1 zSbOujBNUJo?c6Di~J>9!1 z)#{bMl_8T;ZM3~leluMLmdfwcohY*Ymh~p&2zRj{Yb+1cZM0;SFJc{9s@o?2+##Lx-MG*MEE=z5bAa~aoD?I{tPYH5&V-W-{yw&%}-P4Sf z9)VA=pW3&-R>I!iOoN9lgNNhV;9<+);kY(<*fMxH#^BFqgNHy&R6B-a?yyo8c0h0N z-Z|A)XTSi5yfw#q9*9>|(LuvU1AKJYr6klm5J#o9+~F(v-4PH+$&v#2+3d3c@Mm*6 z%mZ;;8i6}}CnEs=`tqzD@Tj+yoEwa}`x#?J72w}Y33B)4A_zR^_k54seb89x5%~Ej zLGIr7`&mce=nCH>cTY1`dIavC66Efnd~|gl=<{j)r`qZqnj?pN!pt=iW{!j*A2fDz zjiQ>XvtyC$xG87H9FUZdhX9a#NF#7ZO30};ASoejfkZF0<&FS~Adu)KLGB2k2m*;- z66B5miXf2aB|+{8pa=qeEW4g+yUFH%>RT6Igp9~22d0)MXV3^44pu?jisO`{m>y#_ zGHFcV{G%tMW3_ekp>ok(%0677RJ$ejg7-O8JvSaHLl05Qb!P9YW!C-ys|mMd=WR`NDMw#Z#p;g5eomPPM_1 z_pUoA%E0Rf$23!hf}v-z?4(@l+ehf4&ug&MjbaTy~9rF3+7u+5$rb z!4ENRBFN2=_LQFp8vY@>P6W9*$sXP+_!EXPMY(7~Jk{341i!CKd7^#G5-;DyATPgO zyXsSIvn+e51x)s1A8^c=yUX&zcG$&CX?(~r<1Pk@HEz#X3=oO40_#|Me~SwF@wt3OkwZI8jcv0xk#kq)FTwr3idSYn609l zhoY+Pqo}g`D5~y0iYB;^qABj9Xp;MA+LU-#dw(&SB#Y8$icrx6p`z+SMU{n$stOgA zBGEmMqK8|$Xd!`1>hw|myqw8>lKMlLn)`qyR!OiqOnhp7nVbXuUY_dZU>bJsu&kS$ zR(qn&@n_jpUO#{@&eQ)Yr`j+KBlH9tR-k(ORNK|2*9Wr7_1?I1;e}@ZpPBLcn`x}3 zE9J0|x>7ENR=F5kw~HI&(Aet^ev(hlC+R`3;7@9C5p zy+1Ygp7^@=J)LU%q>XS%4(tHTFoItiCFwb+7lY=K8~}AK7pO;uSra7CoX|R9d+> z_Uuz_41TLAp}!(GNMY-#HZVo5r`l?Tb~F@fooaitSz3yA52xB*Z7NY^QmjBUlX(J& zlKXxp@(;fKLZS3s__9q0%z!$pGX)Yg<(LDRE>@fU>5pkfG8E|M_ma`msBXPLYZP=- zH2S$I8uf&l?m6B4Ua(faH;#rizDlMi4A^14NC5zgc1zKFl5O=E)t7APRNFJGXS#JG zpt^L|7y%Xil}>2MJV)~j?I8>A+bY%sp{=v8lQI8fWm{fK>*HA)dbL!&q^PCj<@A}W zpK9yUr=DshP#Vaz)yyJ?B#C66RbY}}VhEK5BeU5SmmN{Qvgl^5^C#{HMX#zeoz zWNyX^b}lEU+Ss{sJL0Qs26yiClAVoCFKO*CcRAID)~~gF0eyD@6Azg(VlY%JhC;a* z2<2iJl#4-7E`~t47y#v>r@EYK!^|_BnP9FmSpxBZSPsM)s=+L8+-Xy=%7G8f-x)3e zUuu+!u}^!XO{mI^43p=|&2sMXwgIDZIQRXI1AojoF&4-wPK=!u0zx5Tz**apT~Dq0Uzr^1txqVM)cTHR|CLARK#LH zg^KYMidrF@LJ`eZ<;abIC35+@!K3q6zat=1nphbF*Vtg`a;lA(ZE)2D&evWa_?vmp zaRoRlX6itKMhxT^bU<9MV)!0ED;FKDT=cYZxcUfJCE%m8ulv9fkrg0U?TsjvkgQNl z#6iWtB_=B|CMp)ExV4{ZBSb%LKhMx!!NdHMjYZ%>rWSzbWNHz3iR%n}NDl5Ia8__7 z$mLdgJK@=3%Yl#+^3OL$(n=z8Vw{ccw|V7}y$A&3Y0FBFig z_C`Q(zH)dU_exVBo>s9guAX(O4L6hY+9$ZHPw$EYah8sYw?1mAsvH=1$*UodtBQ5= z;QV?$IDM+^I-Uz|R%p!>*hA^5qTr(Z)~x&+T|I(JN^H$3;o~2lldGL-BhKHem==3a z7=yXWm;X=5PACSK8t?{_@LbiYU{>Rk4x?vQJJq&7dq(yU@~O62DZW+*`F^9HRy)T7_=d^nF(Qyr9YJNp#?bO+ zZkzF42JKnG$}qsvWnRtZ<&B(uvn3!)Liw%*$da(3a@y`LYX1V$V6P8kcs2s~+tFm%Kp5JHMvs&D&lKx*ZjkYhzZTmpFQ-x!H zEhDt^E3BJ8&)p4KHhgqXs?hdNa@#(T?sVALUrQA|0mc)Zt4^A{=`jm8HeEOOItb|r zF#6^FM}pIMpYa}7teb|kU>zsR9F}VIAXIFrHl5K}o3qFB|CoFKa7&M>&Ug2Zm;?w0 zhs*$zXhITx!%ZU*2nhyEK#(wJ@3YULJM4WLhU8Hmleq?o3Z&B_#1Tof0pqkv+#m!2 z0|JwvfZ+jzfj~geL`4&>K{ALCM=s()UJCbbFq9N6Um&W@2ieY2|VGSiF8nMR^g)yBr@>U<=du<<-GXUOD9 z2FW{Fa){aU@+rMqg{W#flw+i-Hniud$%XppE>1vK?xGuh**s|Ui?Kgyz(DWFZfkrD z`fdAT2UC*#1>0@1Gm{cF_TC(Kgal*<*;Uns#9Q-`YZ-VD2AOMpaOH7EB(3Bmi3_k- zNHGvvo<+}MSD&6L=~b4xWvW(3{#J&}tJ>)MUvv7e0ryj!D6;XM^(AEE#<4Lm2LpPt z%ae~&AIz~{2I3V}blC9G5FhO+eStVC^`(WcF;ePF>tlrx_!ECta&9=Ib%9YuBJi#S zMp{q(d>$HjzLC<ANQsfw*9s%>JU1_fGg`l5RM8RW^J(K%ZFLTf$RVFF zqejAvNEq@#Z5uTv)u_&nRkGv4oC+f#DIqTbAo-9+phZf^&q{%$g!Baxz0{W$0Tf0c z(Myc92%s4{ zclV)o!p5rFUK4f-r6!B1P7b->$3r5ed?gVyQmY7rLb5r5knp+}2#tlJ2!z6V;RHhB ztx`Hc;T>J7+Mtm4P8=krf!7Zj%S;&x3X{eOgv1>30-^C{a@`=2V7?nP-czm{BvR0K zgT_kdx%lO33P1% zljCx0{9}3Ty!x~0<*kh1-!s~rk;c{b?w>On{%w2C8EM>LFK=c1pkYi=S~MY6we>N< z-|I3x(Y|Gg=kH^X=ijJZbyZuJWn1zg<~~n)#EjMnd2>4MW2Ri@KI{>*J_ZWsqaQKb zsA;LH4RgpVbv#<`ZxZmE=k#P5d}`hDKSh<@pQ7sSPtgSTr)Y}%Q#8r_DH^lbj;85W)dEty zzZy*uu4sagqUu75Dhny9Dx^h~(p_+*q3G*OJDo`2k~&K$e|OI0C6fB=n>m7w&a}iT zCXO)i%Q@#pz=xKd?md@d_jk)q_nymdvJ|{Cr{X9>JI~3Exc%R1!!V4{3O1}j^>$U; zV@02Z#o#K`~ zrCJgc{hv8J)8ozA=qb07#G%apY1FcDcj>i4A)F*@14H8@Aw?GnDSAjq_0av7o)gS^ zl9nnpl=-ar0XmkGcF?_T1)ow$PgQD2|8ka|=(Y5HRkbbI2*>7l4S^3fl9WdsTgPx% zduea(Sq4dW5lKGbvP*-)9K%%BJ z)7P;S!_l|vp$n5gky zDpA?$@#;#{c&n7C99%hgCu+QZNz{4jxc^C2ZCJt0rR?hW?&jvs-H5Mq8SLcE;krWi zw1nxU&!35TrVK*Awc1Hi7xNKev~ zUj#=tc$So&185wlmi*#zb(2?qSSvB}TifL$?D2NE=5AYFmDUfJ+HepXs^ zw9=xdm4>T-!_6GYh~95E z;3^e-OTHCf1>TxTE5N%lX%%>^i#Pbn9Nbl4S8yfci0y@LUV(Sz>9-2J+p&Sk0g*-u zFy+)x@I|(W%4r&SX(p`#uXM{Un1qr6`s9~5zEUT)2*96Az$_Fknn8p~0a&bxvi4g3_vv&%- zAd|KefxF$j2bbBqMo@kyFR0sr1V?|{2`&?QtxufxRn&UCH^|7M$}qqpGVf;D z-UwGcN^5r*RZjN?MeWa+`f|JP3o#wLZA=I3to) za+1Ua*ej$M2(4w0_2MGx=^uStJOpKNF?8&w#A-}hS2Nb6Li z3M25W1x8xu6-MAE78q%Lu`mMv==FYR?5m!g29H|?k7u>PD6AJw zASB)@r4tn1(WR;l3VH9uL1G$s{h+bTl%b$7X`Dbv%porj8gC}o4H60FyFueU<+?#4 z1${SYtaPp$B&MqG290&kb%Vrg_T8Yd3c7BPnDD+EG}c7d4HCA@wl2%QWdW1>*wMphw2sM}({Ud&rSsVjpY<_NIM03f zY@?>7sy56auhj8qxxY!kZ=TbWW$6y@ZwCG0N!)>xXjmf;&eyNRFG@P)4o^EqY1|nXpph98^J0)v4VNlj0 z;fhO-kXTl*M@Wk*#a2|&twT{&_ot|``%_fi{VAH@{uE7de~Ko#KSg5}+tD=Ls#-vb z_gAAS!WB&rQdC_?QDq@TRfV*uQoE`RMPF&!=|lpT)LBCLJ98#4k<_PM$q{Vy7)z{T z;s_J}Jm=g9_yc99d(Y+AeOKA(-gEf}ECp}PsW<|D(@3%-ZdbKo7)EFX8&;rtyQ=L3 z)9W$$SXR1ls1ILBrR{D_fK zEeVSLWe(5ue&$*9lv_#SQ0D(MYT3BE^je`1PLj2Oq4ANBqKkwSJtU-h=>AL3F=jnU zOO+bR+-QD)j^(5sbZ=Y153Ho8DmA44d6u5&we)>ewViDv4061Nz@v>Mw8Qx+I8<0dZVCQqS4PS(WoaRWcnws`yy;D8rJxfj06n0D=&OY zz#?!Oy(igLk5PSOOVjNCG0BLPpIiV@UBop;Kt=zIJz3}Iez$FNp!>dxH9;8F+1JaM z=a?boP+FH~Z5q^E^_HUMlEdkP)~{;oBU7u|;NvM$b5$EOw3okiRJC!f#yvyhShQsj znOgIw#Z|kl=IV0Dk-bJfy5j0GIaalC4amKoUVyL6ID>MVmZ%)^NWw&o_fm<x=cvn7!O@ZHXY~0gcVGF8uz1c8%uCy-a&g|Qu^5NV^xtm1r6OAUu z0@=k$n7cwiD1;5zbuHPqs*T7nZPWm84#!}UVUEmdpUB92oHQjELIM&Dxn}@gl|wZF zzRQIQO!!0?(c?;84FD5SVT%D3QjDjNm@9-+NJR7A{PlMNERoCK2CvTXod8+V#L5`B z#sy2Csy1SFiJMJeo|0g|zcn`b861$MMV-|(n}~sQ1>$<`itq8W(xRi47Co&rT>WY{ zbHG<;UoQbmM0Nsssx+chLb8*|L>!b2Tw<~_#zfiT61V?VZG`A;b_1?b!5`1J;;X<< zWYP-o_Dos@4qUv!m*wED0=t4M8OMZNaq|j%ah`swz&jlqm>dvkqySS+4FykZ5tY+4 z@WM=51zzTsT`&nH1N6x!VI!SL3Lyb`s%kM$lok_3y2d|S?vC-4;IXW#{#_FozbhZO#9$g@Aj-ulEhIwltUP z((P8kB_+1yl<@J7@5%M5+KBV_DyGHW(`I0v^6~#^*$KtqG6%fDBs@=bDwy5)TwwIf zdR1+QvuETEAy>6^rTG3j$jgm>TCb|@aQ2h@7~w4sKd31r5_&j9JXpm5R&huSZ(@(xrV3O z^eB6S@)Buu-8$&Oq&6X!1G^l+*)g)GZ&tN^gOHVbno9k_CiymS{{b7PBXVX=*m&+K zq_-O+?_|j#W}nQP`f3%Ts_jsYk*eCzo~H%^_0e4t0$sU_ZcO0KgGRsTyrTvT^x*8H z#>b%h*dIHXlH{kE580VX2^)KFjypmEvV-iZYD40=IXcV0gD}Wk>w_zgGa_jvCrMm@ zy+VqC(DE#L7Q6cNR7u}5=ai{h9r;@sGOuc*@4sXRuL1W{oG7yKp7kYULt?JVN{U_eBv`aBlcC#PJ_oSgU7Sl;Bm{~@vJs@+%kAP!{AS6 zgU3KjR2PnCw6Ib(c0h0N!KrGiGhm2Ael5p(8HiU@(P6_!Lwqzii-cMR;;7V@7QT|- z9RYEaY$<@B%sv|ee>kVZG7!h55oqB%83Fi#r)BMc$2`5H(r`xW@kSL@fFD|5q;*SS z1Wtd1yBXY*+77@8dv_mz6ZY=a5(7E_%Za=(vU76A@7|yNK6B-A2gPkG87ahjS~ooIphUGX>HdH#*sRadojS@yH}5Obf49yX(ORo>W+`7b*H-8GLu%F75b&!MieP0z5wNuXjAoAgi0ytBs9xQQ=~y|3lv4 z?zr7{oXow(sdV#zez;Bcu`!t!+ut^2i-r?c&>PNX(>x(wte`SBOW0eph7$&5EfTJ{ z^azP%1$!EHbgSsrp{T0+Q&idgDXQ-N6isk{il(?fMU&j07EOt*+WV`~B-xZkQ-l;v z5K>fKNKs`WMOB3ql_JqS9Yr@;it0oHm(*E8`3rLfR5#) z9dvJ7!M{;SPgQD2A7$x@UQ6FsRoh2wgkQ{o9RgpI^Y5}_>lhAeuMJ~XbyT(8*Mu_& z)fjOg=y5dYaY*RJhaNpFj4GF!QLvDrOd)w8;BzWrsiCsx}6{1103Yjbf0AtyOJcCb?F%)e7xuDAcNI`&F~FOxk@^wOwv1 zG0SAK0?|y?2_Q-y`jyDP_znw&(zo#E+H$}OsH-|lAW>5qYaq+TdaFP3SY{+cfo^>- z8NG<=-YfJ*LAOMspIf3)Pe_ZBQ|tA?TKR4q4QqT#MiK^GY*OS05x}C|G?CWLB%{Fbzp|mc~+BB%S z>McdhC5O{D4WtxC{#6^0BYMfysy4>vDN=J)8#J_+zjai#J;4sC+%q(eMOy}usWpFE zT(#S3t}cfh*=yvZE3Ph+V^tg1fZXfp1^CL0Gbp!diOM05BuvzJFO{fl^>}q9YP?lS zR1U5jyc0Fvza;8Bb=?1?sy3|P=5k)u#?76(5ntyr*vXs2b%pNP-4ME`b;I1Jstv7Q zX-926JAsLZEEzEv$`(VRv=|7b#V{x>20>{t1WJnmP+IgJY}&2;sLQ7 zh%;1!E^pjrOR(~Rznd5QDe!0QYlyOOPkV$ds7iZ|Ve(vQUC#X>yMR$Xocm5k1OHL} zG`Iw07bnJcg@8~98?ftIvTs!zkzv}X0bs%*Z(|_gkgEY;S7f9oX-Y7J1SA+D49MIP zF5qKbsKA6z*oYoi>S_R(hzeT_sE}ejg~VJToI)a+m*vP!fF*MI+u(6_V=NtkENNn8 z3|!-arB78GG5e-{`&W~}JY_ZkpP%m>cLKX&rqT!+F_2%-0dc*u;d}h7wCHH1MNcaY zS8sK*1bkff^%Af|WG9fPN+U`oBs-Z*#6j7>B_=y#Oq4AyarL>3j9SU418~419k;hGLG2Z>Q+iHGgH`r7rN;OCI^I#6ky7!`@pwZS2;}s z@64oC;Jt1DFbO3C^vNe-Bb`VJApv=|@Vl3GaRkabJ>s*Au-pc!}mA34GWl$JTe6FApeB~M0+%D8DT$|6kpF z1ecW9mQ%vVKfWi|t7;?8->aAwdrzBzdCJHCr)DP>mV;T`f0tYw!_&^@?(S>A9hevNF?6!uxb~&Y0Lk%t11p?a>|Gf z+_dE+TOinO%629)X?vTovEP)N-g@8G@hyY?Y++>>U=f*jvutmKs~)AbJB%u)>+YiV zQ%rq1=KvXAtJ=V*q7_$h;8qou4l^>*Y`aD0c;m2+Pk+jKUY3;`^Zp*&yIS1bHjTb7 z$$giAh*O25yp|Ch$$3$Ry6F%VkSM$ckb zpPnk|XDxNhRIQHutqhr0wbA$IbNa6V_fwoGvhkkvC1m5qu`w~Fme&+#m*2drta_^3 z=Koxg*9)GXK8t_Fo^sIxykL_4ls?(edX-Uy5%?o(o{`pyQH2qB@d6{QU4;>N_W~oW zqj#opL?ZC37y6;GuX=VGJZ>30p4A4ATLzD3wZY?-!Q&YQzdRc}24bT6dOV|rm9pai zdV>#6Ra>0_Lmcwd9P4EuUQtDd4Id5h(R)f?AdX6XY2hn*BLi`iY$ZM&M8X=aO^78Ld|vRdfa(^CHhkYt5*_2z>bh zBdr}5WF3L`8Y$^W>u8$xB~tiMLAW1ci5WscM5l z-aB!Sm8LoB$lvo)^Nh0tVO~VmmVRptYD9j z7FCL^sG?hkqN?ssQDyh1sJi=8G{OBTn&SQxO>%#V#w@m@X}VRlBq-irjiv}!G(kvF zbsA4} z)4k_%>^>nc>r$=uHESG^PkAHYNk)<#ar?j3hG7_?6>M06>g}qw^GvTvR=K_#cTPOj z>|f4rv&ZLU5K;O&YAj@4DJ_OpX)(4+i@{ZzQ=x+B^ba{UQ{X=vDb?T5{EMXr%}ts-KEzGg>aIr4GfKsgcMyQr05|b)kF7Rdd@QINm{DZQ06WRB6KV# z?Vx+x3O=Wjo~qQ4PUcg~P)pxeRoly*7+l)lt>W@5@8OczfTi;7Y zFQU5l3cXR#Ez#)bmT1%y(xT+ldb+)0im zs%rawlZ;sT$psMAMOx46NFKneZ7pi%+jhHO6&5hO@o@N z-crhbDI)Of3us2p55cqeMS ze@WDs=&1k=E4aCoUH#tOH`;`BH{$DD2KN@arzLbx>xQ{cRU2Awb7voPC)?K$W#gXq21mQsFnO+gUC#Y8J4-4b&OP7VB!Yj^X!2$NvWpXAyFx%Hgbmnr zE!nrKjmR)<)BrHykhd|AaLCmFuq!gslQbn5LIM&D5eB?5hiU@6-9;2k_(T}d<4Ro( z025JRivblMDsB@auZ;QT>duriNXbBNfRq$;2IY!eX81s*_)^3@*B)k z5)61>n{@IsIAB-I)PV$z7)Vzju2(jEkDrwm9j&zJX{F)n>)p%&e{- zG@?{OvXjX~9Fz@QVzM*FMA_mJxBpdbgy=8bhYawy^R4(Q@a{}n0Ul$)l^g+{=Hd;$ zuCM{Sf-BO9?GT&Mv2rjdCji7ueFR0sr1V?|{2`&?Q ztxufxRnCT_-o-%nTuYrw8(s7sl0ghdXiK&FziF_-YX(xU5?hVL)76QI(-FE^SD zK|IKRApv=6PXdDTm4^3muXF|CX=Ur<>aMCb+)UD|OmJVH9*6^RmX3?JE^zN7Fz%A0 zA&{qb?dQSeje2mgs_jBcKm4Q$v{nl2Vd^O#xG29ZEB{0{AHgLhw&j%Y@sIDx^{U#4 z^Y<#I#op6qV4m{v|0&rC#o#gryulC|c$x@pTF*oGk=(CTZ_O0G?Hroozwp(+zB|Xn zY|rAxY#T1vmn!sqZtlATM4S#A<+W7N3NYSOJay6Jq{k}UxOCk*=)t5FV94eCBf)8$ zXVfYFpB|m*!9Gs5Ic(LCASB;QvD(Ca2v4=?e0ziP5@~eZI_SZqHX)Y-yBxsTF|wy` zR<#{(X9X^28i`6(8ylz7^I2=c#`7bE^w$Q-JGl`dX8)2m_0`83s@e|a7^$ia?Rjb- zP#@jJ3FyjQbi*&32aSF)_D2mE=vmoEjgLWR*dIHXlH^OwhwRLxgpIv7#~mR7*+F(y zwIT7+9Gzw0K^SDN^}&_L8IiP-lO!&{ULnOmXjL0Mi(P$ss-%;vsahTRTNyI1YNPMN z^T~7#SZ01NaiYk^d)Akb6WqmyOy;T@>;I|S=*cc$*n0HLQe2VOiQCczo%D`jH`^adZCs%nJaM&O?qDKXNz zsW1W`>*mF9M(d}HDmnsvK5e|JtK84gxP+=}Cr#$@^}n@sc0Oq{3KESVFdW3_km zq0*welomaswD=-uSG6606ZY;t04MC--EhL*-G|x<8>?!2ao8!8nk=R|IplsH4~dlW zl|;};ts)Q#$>sz?!s}ijG!}{?5DM#s69|d7O6dfJcXX+0gF@aragdk>UO#9oGi4|! zOd2N;5_8B4gvOi6b%R8L`EJm7Pq}W8NI~BX8Y`Xa28pTayFp{!bKM{@n|(KEtb(o^ zBqqG?28}h*b%Vq*>AS^sB38AL{I}U8(6t3jj?1m_6Z6`6>5rtBw=#l%$!K#%8kgF; zf6i$5<@TI2(zx1Q-pcsfhA~BH(S%sl*2e^YugmmA`<5l1zmGwlf1`HQRc&3C{k;WD z?qlC{%8b@`jVc@KK4wbiUpr;i$3WqH!zr_knwF~CFo(QS$D`%`CP7LG@w?;2!vlX|s}8|k*fb%v$wc6$ofd6uZmy~cTV^MHQ1t#OmMnA{iG zm_@@0E9j{<$7CSl#R@7UmaqqA4JQoBS|nU?=@Amk3ib$TQKi_5D!O$js_Om}Rd#=h zs=Gf$6WpJoDeh0vB=@Ii%wjv5rdw4DNb&w^G)1_g2||jh3n{8Bq^PQp7F8m_7pW+E ziD{=330zWV3FU9inY=_&pLjY)u+j0BSjEH~!zB9J_BXJKcLOe}|>u zCvqx|fOi;4cEs(fHVnfEtzg3nRBuGv>05aITb31PH)e#nF8Nqq*P0SqW>d@XL_$i06pbak~oz4KaE;8?k>Gn zD1?(_ZD448B&6sfAw>@fsUEuj((_#l7D-E$8p^!O`~V%xNjvD?wt}~sZ;SL)rH1s6 zW$B4tOW#*j+i5n!Kj**>f!{Hblt&#~$8cDCZ5XqvqpIx{CY(X2#)tz!kE214Lqab; z^yoLksB%pj1q&(46p|MLzP=JRu6tHrE$KZN{FwE>#GbM*0^*f<1zVUtN{dP>Esm|U zGFU>X+(t2j5A)zlKqj_UwSk%BTGbXqqZ@eo-v}i@<60o@84+M)i>`O|w5U$%vJo zTmVsB#5G1hMgNRFS?B0}r>zpueP6}%A86SA!`au%m^00gawx6Kvo;NCu6j#RbIIZK zHS1Tk^^vJnZSe6Fsky2R8rsX>I;z^ZR^y(baV*+0h)k{d)8eY#R&#YZE znH;OyxCZ22PcOh%W}HE}O-ob`c_d+?#(SwmWvj=VB2nY5QlfHj<=~yD@%|-IW1^?3 zHmu<0Qg-!wcXM;+Zp7EQ4DKy-PfO^Y)(vx?sy4L#rhVJhvlEzj$dVC*p=>b}N{fL| zS`35IVi1%TL!h)60HsAw^{HyZ%#S)V!8~QL1mXd)9EdYigD!7OZN*bQ@WuHQHU<8@ zW8~9>z^1V&z08Y++VkEgUW|s{vqFWTYo)N-%^3Bp4zLxGRTh0=&kB3QYJ!7}4WOT@3&eQDKV# z6;h0+keDlkQ%FSf8~N++1Xv=MzYSiI<2wPeq=}U=aE%L=K2>eR?1gSNfq6=T0Y77G z@-sMKSIpFb1dSL-S0JueHhhntl@=YXwCHK2;p&&VnFGEe`+5mjBC-?6Q>7855|W)v zCgPxM;1ZLaF(%3um$?0}Y9mCyX+O_Uso?ALPc~M8H)PTZ@Uxk;3jAj$417@z?kcb= zxRPfwnJ_#G? zL{bO|$Wv8|d7`wKDAG0NiL&)clzvrhB*zC_Ji$y_S>|73q5Y_v=HTuaPYE8&s_Nf0 zf$_WYflCagF$SVsoYF!f1W(ShcM3cwleQCqTiv_|m)W~UP+pN2)a^imqrdG0mkGVr zCraAwdrzBzdCJHCCuJuTgUcN729xkS)u~{1<8y)0GwW5g9nPMSJA_=-)|KM>>mV;T z`f0tYw!_&^@?(T=o^nuANF*NBs%rab+c0oIljBKr;HE9FGbXm1vYm-c+J3XKvEP)N z-g@8G@hyY?Y++>>U=f*jvutmKs~)AbJB%u)>+YiVADH@b&H*yKR<(gqMJul2z^y7Q z9p+;unr*k}9B&-f@#$Y%&u?Vq#=O5jo;SXgPm^i%{c`TR1Vo%F9Obo)P~UB}*TjSJ zZe`52;gq~ZSVtB5-aq$U0wPX_jq+NmXayK=DxSJ%a?)cJZd|%<9rR$*3NYky{*mA` z&NJ#1|4%>Y(1U%PY;)MEAwfvKmtwW)qvjf(YSTk(tIA8H(RJ&f2b0=_Tn_AV0B6U@ zp1xVtcAM$NF6a%5u@BT1-7Qf&< z{C;Z%_!T3iPd2o+yf-rf-~YZuN{qB_HL6@40qI4bp}g|FmyM?f4UTMFR6WS*HJ(g?Ij38`uWk`mGvNc2))S_DuSfkZDc(jtJu2qb!mkrn|IMj+8k zjI;=#Famun`&P9bVN;y>t(z}GMr4!*W-iZb&4(i-kFK>zdbQJ zR(nSuDlNK8Y0)!Ei*JH)HY z9ug_#D~X_yT16lflFbQ(gx9@5Xe<;(AQaXMClC^EmC^|c@90w128FzL;vg{%ynfJF zX39`dm^4lxB<7G82#q(B>jsGg^WC8Fo^stFk%GP(G*&v-4H8q;cZ0^d=ej{+Hv4YS zSOr}-NKAO&4H|2r>jsHs(szsNM67Bf`QK=hK-U&9IWD)xPsnTM>9)a8M)1>(HfN-9 zy1nJ+jE2v!=bVwoioLv*@qELWqO@p2tZM6Hg1^^gdZK;H63^eqAkV*1yXva8F3a9x z0h9aK51u@ub)!*bW8KG0>HPMSXMGG5&Uc+W+o)-&stt3Ig^)2>c7jR(QTGkCBa6R_)GaPIRbtxFZEKGhTYd#*3GNcUTl-( ziac3Hz&GdRf1Ro}48sVmV8aSjZ&$T_*7Uk9t6blWI~QJS_Wy+$ufLhbYD6gw3z=6+ zi=kCojIGjQaFym%s31E1RG#Tm;LjK-)smp-FK1h)e_|0pPq~#O4rTsNqn3@kORp6Q z;Urlb7#bf5DY{5V(L+M2hwi`h+-SifX{k~}nTyR2(6OAfgYIoB_~VuIRHcUWU&_)G zy_UYOsZodaiV0^Bsxjg~(Bo*(5uU4p4)%HOftW4T{RJFa^vXfaRlNE?&`q{(8qU51piTsQ2 zuuv#{3%}f!16Dv?)mZ|Gn$lPUSuWOF{gKBqBN+;G>wC%QMO61*p*IS;B^v$Q5{-I7 zT9lkx9}CvXcjIVS<5Mz{FyI=KB0q=#7VW0ddy;MS7}ZC%RMqzDCK<7A1XLGsjS*1M zKM_Jt);YRgYpVow-&gVc2O5>b`WbVt&98DOt;@4E4Qj4>OHp&l;q;B0q!dQ}RU42a zddbwPHpb>DQgc-sG_;q$byT%oV24!h85+l;ErZC^nm;YB+HEygmqU*1HS*CFSC`4L zs*P(v?)CHnd}YQNl-smK<&Z}bCThHwN>sLbyeSej-YO+32UiZ>i5l-;5_O(B?tfBM z8&+_0Ij?Ht=FZ)SuX7pfdtAZvON;0kWitl`(LQ3zj}rZN%&(H=DpbWi|m{ zo39~v0=r_S4kT#AKz>07#P!OC@A0$JqN9}-J*_lc{RB5lz~^RPF9AzLb^>{-G@?{O zvXjX~9Fz@QVzM*FMA_mJxBpdbglN@%o}p5~FU>#MSOs31Nh`psGHDg~9w!X^m>k?y zU{`P@;$kT5Xc(r2#lLI1+6ky7!q2T-3A}Xh8;BlF>3Ve)PcEKc+4A3W^ zgpG6}DTD;%sj9_1QCdtC=^FDy+4>|(zp6Hp<7FUJQ((cgB0 z%Yy~ z$>0U3$W?7!DZalB z@^Yh})~jkeoc$y}M!4@O2Q`I6;zLiVcA=ZLJlf_y2Q)dJLTOf=hW(K+5YtmD(Y*7Lfo+?e?-CGkI&75JQbjAkcvJDzMU#^rt8nAeb?cx9lU9Hsm-CMV zr*WQ9r}%&RL5Cjf<7At|Rt*V4^1T$RO|NY1&AH>@CDQ1+bBZ$tBT=bpW8-u~KJ!i3c%GdzWU}2Lc_&K_G5h(vsjpTcs@e|a7^$ia?Rjc) zp+35c6VR2r=!Rc54;uYq?2j5S&`sHGjgLVev_Ez*CCT5k-6lITDPd#p&2dLaKz5K_ zRc%PTJD8X<5VyRoEYIWpqWyrj$ zjlRF1(|--PpW;N3jrXiCAsaW2jfpA$g-TPLUA|0d9L-j)v9VCM&HuR~ug@=~&*I}@ zddfu)@D?MbPd2o^RTzP9TTXowBdt#uRU`s$UtpwlS78KRIQ9~0z09a05%|34dq(W5 zo}C7dTLzD3wZY?-!Q)wN@VI60c!t6Mm<=8SF;QJOp3%Ze+1LTS!3U?Rt1yBXY*+77@8dv_mz6ZYH`5c~nVGcXxdvI?q^j+uM!K?aG1HIA8`mA*wS6dauW>5fJfI(LlkI6t z=Ee2{ZOo$KgcbDG6*kQi;>8LoW3z;PJnz9L49Z$0Tyg0U63YtqH0^MmJkxl>{4M;!E;jas+%|Uh1VV4ZE+htds5UJ(usW zNpfkPEF<9S^76kGv>05aITb31PTTWLp8{WCq*P0SqCb~yonB`VKu@`qBo1Z%PotKNyGySX z3gIMK8yFfN2`RcrNYO(=s)z2s^t{W0Mbc8GhB8z019U7W?Vx+x3ckLQo~qQ4{*o*` z(QE1Zs%rZ?8{thkutVTGa{gU*Y#qa4?X_Xds*b9*N1Jd4p&BC&1U-%hJq`)I_|T(g zgi+;EGYS?`lqn=H1bjgyY+U!OzFN|IF!+|a{v?wl7mh%@qLpdUBT9=(D=m)QUDd|m zoATgGKqj_UtAUy1TGdu7w5y>|tE%mtHdvXo`>1OBU2_q$OeQN3&19VbqU51piTsQ2 zuuv#{3;!>+9IyiFs?HKf)Re{=$a1mX>W@5@8OczfTi;7YFQU5l3cXR#Ez#)bmT1%y z(xT+ldS9?sz8gow8lRGpgaKEX6!}2}uxK}p-ji&r$EZHCrK+~wCK<7A1XLGsjS*1M zKM_Jt);YRgZ7*5qzOQ0U5c)d%dKvQ#o3`apT9;>S8q{3%mZIj8!|CVO|8KSRk*QT} z@bMI>xvC8s+RNWMs@leONadcPaV*+0h)k{d)8eY#R&#YZEnH;OyxCZ22 zPcOh%W}HE}O-ob`c_d+?#(SwmWvj=lD^cUEQlfHj<=~yD@%|-IW1^=5G_2s}Qg;7) zcXM;+Zp7EQ4DKy-PfO^Y)(vx?sy4KKv)vEq*$GTMWXXuZP_`HfrNuxfErvm9F$hYF zAy8TjfYPF;`c$=H<|WQdFi%-5fp|bH2jUFXpvxP_*k=yq1D}w;8BT$3aBSSuo@xuK zcD=|jd9JiB=l-Z&z$hQi{j{Tj|H^1$ERbEC7~2&BLLqFxu4~D@Rc%CuX`=>!35UFm zfrLY@27q0Wk)EU}!4MLVV2Ci_V{@n`!1G+Fz=ThP5k0Qd)c`ON6}A{qA;owKiMc{J zg+w&pm?Jj$;T!}s`EY0=S2i=I{*u0F-h67cES*Gs?>k)1%EDvc=N}jHd*TWmWa>n!xy7`M@Ox z(-;F$E>3A75rVJftJW#-+nKbT2wdUjJ-E!?HG=Z!yr6Ce5*+<)C%8=LwLWp$S5+Gk zy4ght{IERZ)_`5nP?s|02#Xw2flMW3V=m!&rA5~(4d37HW)7H-JTe6FApeB~M0+%D8DT$|NCw}f=fzl%PHaGAK#PfRkac4?^R5Ty{FB< zJmus6Qpeh@wve0nf0pL4rkBE9YU^Z>q_zcb&!`E{j^?H+u`gd z`7y$&Cm+-l5{YM?Toerrh+_`?ij6 z8T4lhE5iVb$h@0ndm~)+D6QRLR5@LD7qy>n>dQF?$naX#21XUFxQYX}s<3pJmzZd_ z-J)~6aahNvzhXV#n3Wsz{(foR_*OnmrqTEHx$hDXajI~X*D^wVcfE=ER2Da8+i=Ui zRH5&ObKfN(;&j+3uceAsfbpi{sf#8jJyzkyrR&x~4<@YuLoVkZ2~OiYqfYVv^n(sP z*vH8>hpieCgyefER+}zq?9I93;U&`Ox^>WlNo_(t2X;AtvtwjW->ho8()8kTrje*r zwXt!!HlNZaY&=iP88Z2CgXEnoImGNI^C`Vrg{W#flw+i-Hniud$%XppE>1vK?xGuh zk)CF&>lb5x)PR9Lkloh!81zp2V+T``e248e*_lZR8+&h#J3<1ogY2qmL*kwJ$h8bS z2!qVEKDhEYBa&8flEekrE2J0*t!krZv8zu{mGlNn-7;0HBY!JH=2dO<{ckz_*MR#e zP88XA&-xOwapTySn1ca5+2zZW#?fr$8XF6B+x(v^@;dt&>9hF9?I}N-0G{*A^r!U6 zhSrOWDvZE?|18f)>vW?EBk;ThMq1Ot2)uQHk=EA=Bk+?}l+pgIguR1KgU2m{$Ftht zam(QGtTuSuGI%`0;PbN`V<0A~9pf1-tdxx%&>MVks@m!d7~+s0%&}eu;uTeN*znO1 zAMGi9fjBDlrG>BLcSk@RC0h#M^Rmx|z(38TWgw1ABhbQkG6L{f&q*mOBLJ^4QtC_V zV}%j;6X%t5AI@l9U{sL^yla7x)>EIGhX$T+q%<_GC;z9+2)xZmiILXV3M245H!p@W zTEAjc(GlqLY2#IGbq3L_vXAujK?u(7JP*MyxysmWrhlSA(J@sLO;8IDwFOtCUVqct@A2HYnu169GGB37YZDSSjch2M`lKSjta|9cmX^B-#9AV;@bIy%`4=p?0doIWB@0OkJJ(u5PDR^g2#ZiWK zo|7H%J(n+Nn?W(rNnqFt-V{Lsm?nXSq?Ehi2P=7Ox)re9W7Ba7t z7DKDF7+a;q;400jP(gJ1RF2IQ_<19xS`rlfpE*3!!iiY^jT^pKG1q5CgACz$mlEmdkL^I7u)bSx+BpnKa2KBbbLs??DFWm@!z(xTEzi(@OT43Z;BXNYs?Z8pv|7-s+D$mKn)Vpj+S739Wy1?-hEZpj)ER z&n?lYC#05qUiU@VS~RTjDH%x^@ZG%dEdh(bY4o0CTRlegku6QL|7DU9D?hmaqPmD{ zjDU*%8GEwM(ftT}qeAz66>EYps_=8j58>=X^F}qk0eagcrTTxZ1s3`C2G7?N>mQ69J~`X-oGSjO!V)YugzG&&86(> z_wMHA&fSQwa~a%Q=$@9)J*^w&K2>dK{Q!4%0uv8eGGZ|Fh!sPjv=|7b#V{x>20>{t z1WJnmP+Ig?%aNM^OXTvm!D|Z_kR?s5jDc%hu=J^FBWAC3vkA;o5)AltW0Rl30lQ+R z4kT#AK)M2Py|UqZ{H(O-Xr)C@D-BowhMPIyYx9@(C18ojP9RT}MwCiOb~2fWgR+53 zOm@bYC|g|O_P?r)5WU}Sz*Q>vmV7I|3cNLwR)BY9(kk#+7jN*DIk>C9uHZ_>5!(yh zyaMma({B}cw_^j710szSV9KeX;EQZ(%4r&SX(p`#uQZbO1d~uQK%aaPHqwct5E785 z4iNK1X)#fxYs?d6>ys$`s@h17FS_IaGiha+e}{$k4i|QCcZ{b5k7ZT$@0!5)UHQNz z2GbY=Q7%qtArXQddG=0$7i7|QB5=2x_uw*n*9gk*sO#uI{R8!_6eU$^`fI>47*9XX&_j>l~MtVB94~Lm*G>+RuZ_ z8};B~Rol6ie)vfhXss03!_-qga8Z6+R{lTOL{mO+Nr`PaC4Btjdvd+1HsbufifOU; zv>BMEeEk2vvJ;BIWe#|QNqC;>EHJzAxxna|^{UzqXV1tTLau7-O7Z=5ke3_%v|d%) z;p`{*F~W~N^q{7YNL+nrwF}*}<+Zk9;D9E_ljy)rTi$C-Y&T^)6PdLAQDbAjDL1|K zzOCb12L0K>$}qqpGVf;D-UwGcN^5r*RZiF4MeWa+`f|;nd!D*al zVnXRf6g}9-$u@_r8WMyQd#X)$*qA)^MR10_L3xQZx^5lxU{afq%Yj`E;OrRL(>JTy z?lrx*oM|K~Rc&mXj?0-jVdMFxLi%Ha~8ruVP8$H?O3tNw#>bChmSLF4ABhz*MSL`VlJ-`c&N`Fe9 zY-qj8sKN;Rk^6W?S}R5sM&QK@jI?$YM&R8GjI@rvZyHA=0>AnIKQ#7L&rXBKErZ9i z+Td}^;PI?Bc-%60Jj39ZXM@K;OjKWwXSA?VHg-U7@WH8St21DTL!O#ry$r-Fs_3xc zqai+ePw5N9QK>I2d?mj-0^%syQUHHG`)mmO`%GE};(xdToq@-Ezh|ViW>jGWzI=g^){bMdj=+13lyszZv`qq$2)x+M zi{Xsc+Y2Mm=hMck+Ugt{kwZRVMva6SkucK?u(7JPcZ8insmWrhlSA(J@sLO;8IDwFOtCUVqct@A2HYnu169WLh$BZ^-q;Z42`{#^?KWNW6 zBaK__<*kf=V;EDE7EOp%ZGBAe_qt3^v~OAB`TH2;`8R4;UDeiQ*~u0#xsN^aq#3QV z^5%5h$4u#b_ldJU1`6lDo;cg6X{o9WbI2=oJX-E=5~L)g=!a!+EpL~0ywcz`nKS|3 zoJl*rWRTTO>eaT|VeI&PDBJOJOWVEn6t1f*QJH&<^X%pU{cxM?V`DNew%=;%6b&b= zpcmR4lYxjAE2xlI!p2#{34^j030GWtgv7FfJwjSkDYl}DZXJrMx<5sg-JhcB?oZJK z_orxz`%^T@{V5u=*p8;@R@IWAcz-pTB3#h~Aw|`N6jc^dR8>feDv{ueR1|%$rHf7^ za7mpdls_(K@)Ak?f=n7sEU}7-BTU?!&xj-7)5}ixp3AZOguJXvwc6LLaYR1ljesW^ zNp{5Tsx}P62(4hl3RG`bwVh{rO|r`M-MDk&sb>Fjew#f$FN28E-%(>B^Gazkv`UMy zRay+L(wqtvM5lkqv6%w@*+{9Dgz$V{wsm@@IUPOaR+2cB`9FoFt+Y6HcU2pMzb+5H1Y}}s zRU4Q|u2pTdLc1CYwW`|Au#75`b{|!3k2CFg?-f%w?8VrwVtGT)ya%8WOkFL17OpaA;Tmy2irx)NWGtQvg zrX?zeJd!X`j{9G0{_18&+_0DZBc;yKl4!>2Ac= zxeV?tbWcm@p4JU>pQ<*r-sa9uVB#T5Mhu1?v0^Bc76YNQ7zU-qASf+{Kxr`mN{gQA zQ`Lr@#&(5(PzW2a>sqpJRU46E+Nc3w!Xa;CAmNa!0bo~T zq$g=gFoXmo7$OXKV-D2>c)N=znDB`(qQ{lG8UQAu!WIK6q!>>jF;@tukcj4Ea^xn! z61n_s@Dqg#$dV>j#=tc$So&185wkZRT`s@DJSD+^_q9nUKZ65y#Y`PY(1?L_1>$;T z!}s`EY0=S2i=I{*uD;&Q9PlUdWz7<>L}VwBr%EGAB_unUOvFLiz$GR-V@#ASE^+%` z)kcW^(tXGPe>>lbuLAGRq!r*X7F@{@;At-2;Ohz-uq(JCjo4n{<`wvwJpERI$GKGz zOb&=NQh+I^?gL+GUF9?lygHLsf!DbKz&8}OKKUeikWM6pkbpc}d7`wKDAG0NiL&)c zlzvrhB*%ALa)6n%vdrH^Xd5rh?if!A9?Pog-!*~pyYhic45l##qFkKPLLvk&%d>Y1 ze03&mXQm$K-j3ihd)Elchw_5D9Y}EWx1HcJq1XDvX9Qgf&Wv~Y9iiWzB zDMwi3kP2ifDI0SM&nqpuUTOILVmkpU4g7MW$q>YY{1+0Cr}iWuIA3XaANNXEAf8sX zKCbSnYQxPWy~+gl_342)5NGMQcAJh9{dH4c&N)Da*Qz!!s%XVk9Jp15rNeBt6_#zc=p1hx*750stmk9$ z7Gcc$dux6#S3XUq(f6Ub?-CGks&JIoGD3ZKj)~cx#f{lET(B=y==WlNh`pR%lSuw(>TwlQ~Wsy5p__kT4k)t-A^%@WMBFiL_p3RFMdL-tT+HY+wYP29H|?k7u>PI z9s@B^T{xc6!b;iL0lmQor>d>afFTZfcaHTk5U;4B!-kKB_~^vnC83sqI4bp}g|Fmy zM?f4UTMFP;v(JXW<(v-7KpdAwpoQ;b1mG8cFKY*U>|07I4QI4QMio_nf4jg)>)VA9 zxa+N6BCXFERU`ucaew9%Qpc7=b>YHeS_M=g^28 z@(D9)B+Q6}As;k$qsF8f)!DI1cHEt_V+156J2{ z@m49Fpzw|^Rc%nndnXPO)4=Nojb)|`1%*lD1VUmCd4bS)Gr4Y%NHE_G8t*CB4H7Bn zyFp{6bKM{@Red*Ttb48-BxbYk28~tFb%Vr&_uZheCc18rSSEe9xK6~XHj@8Jn*_SH zfXQ*WH9j@3ou}FcLm9!3H`<($#;Nv}pEDYMls)H+G|sh`w=zE4Fs3Linh>kn`k3JF zb(x-M-?GH>_c6%xZ`7{3s;$eiH(0>rKK7&&XSCjxH@4$GW=iMpKXKN_K;eAgiL;HG zma5t?hrCk9qvif40l#@pPnN;YA@}Gc#$&a}Bb(Nxj-jjdW$3GPqP6!)iSlKa!5DX~?1e>IvUo6=~C zkfI4fimD4Ksw||as*s{mB)X@g=t-6?I+4I7b(T>6ik!(yB=zSrX>_wCR!OiCCcY#e zCP%>c<)vN<)3Ez0%er~B+76o}m*&Yb0=_OU|Lat>VHiee1shhNdb_IaM$_x&ta5!f z?p%1a+5e|zy#8hys}ZF%EM#6OErwQUF}6yJ!Bv`5p@QhNJrwVtGT)ya%8WOkFL17OpaA;Tmy2irx)NWGtQvgrX?zeJd!X`j{9^VD(wld9UVf}6{ERU0>V?nZo_%U~yO4%ZdBXLm#Bp4JU>pQ<*r zezV;V=-CNOJY>m;!BDms3Z=zBC@qFTX)y>&iy=^241m(2r}|X2Vdf>yOfXMbEP;4H zEC=EY)u788$Jl2M7|FnO-DF6aKJUBDA zVl0qdoEX~`0zx5dz^-e_zEy2RhH0Y)fC-1Zje&$it_FZzk&&LHDZvmDkYI=~;A3;B zCcyJtsKA6zgb_Wi)YSkm5f!!=P$9*53W>QwIE6$s-OY z%@XkG+1E?J5|N!io+^zfm5}UYG7$%51DBZWj4@HRxWw&$RU09ChW$K4rGhWWKiOCX zUYJQMz+IWN3Vf3j20lIqcNN$bT*)|Md$(;?RWcZ{b5k7ZT$@0!5)UHQNz2GbY=Q7%qtArXSF<*U{y@Y|WRod{gv z<~_K~-Zg^q=)9nA2NE3pZ6~-)=(Rp^+E-N@5xUt$2>h@-*vAcje2mgs_j-wN&KV=v{nl2Vd^O#xG29Z zEC2g$K7vb1Y|AO(;~(FX>s7T8=kHZai@m4Kz&z#S|HHBqios;Q0@y1~tpZ<#Vd}CH_%=`PLdE;C8 zG?_-<*XO=VK*XuSQC`ak_1*O*=2KbRm~F!?`%;CzAI^Q3fQZv!qr8?XS^>tJil;7` zob*_Q8<(zI2R)dy0t~sFeWj)#{> zqwCf|4<@w<`5f5g0M3q)J$Dqiso3QabEoaE&#|@Hqvg8o6 zpUkK9Y89fY?NE-9s@l+=rzRKbqq{f(UAc>H_(gh}t*&2;{ZRu3`apJD<73b}?T;Ny zN%9@G+hk`ZC2Z`yIqnDv$PTirstt*E<|EfK@E{B_*ZSbfA4#9ZpYYN2l%GuiuQyWqWJBvO3M25B|1|YYjI^#bsz?OhxWGv3 zvxO0O?#I1ET04v?5`je*@VxMlEoRvSES89biV29H|?k7pSC>1^;Ah>7aL z@r)K$%Ek`p4L&$kZFL3=amcUbST6(diYhv6_-Kfa1|K7#mVr1b^`(Wc97pMacKlv_)bOue&By(?SRL8vZT^*M(goL6;*&AT41DgOJM{~KjkIT zdbd$UBJk4-jI`cyQ`QmqoKJg+w00O(Bm!?-V5D_VVFdbo+IUr4okJsX$S2IGkuW0? zhJ4W2jT)0`RAP*mjuDWQke2|Ed`KhEA|<4%4M<8zUm(#-eQ6OuVFVJr#7K(( z3L}u{B}Q5VP#A$kFEP?0fWip$vFuybcB`%b%x~R%5i%m9G%#~{UYJJ6aIiAsRvf1^ zCetHrj?6nVaX#aT(XrY)`cP@nT}q3dQCfTxY~DQBygAJw_ooAJ!rt8n;Do)q8&24} z`%pV!V^wY62|I;Slf_gghurVuA(2wPk_Z~9RRlsI*_=Q~c-;$x#zIj9LSemd0wM8M zDV?D3jxJSgP{?~H4ieMA>j#ZxrVIszN#g`UVh(wM(0DVsZjeYY-whh?Dc21WDd@XF zW2JN5ATd>aH)yPTt{Ws~v+o9tRnT>V#Dw?Vps^;pZje|eeK)rl%weo*Bl$0~9g(gr zU~*h;jUSrV&LeDtp^V@kFxs4v#u4_GpEDZ1k3Hv%G)}dxt};H#Fs3Linh>kn`k3JF zb(x-M-?GH>_c6%xZ`7{3s;$eipUsDu`#j}`X0)!#8{2UoGvzY(kv}x+W1w(8?uTX@ zHErws9uafMD|I|t?r#$Cs!LCn!FT8F(vB|}yepF?z~l4&ddK4ovbsrC+t^4K6)tA_ zKjas=7Z#mEE7B>h4d`1ox+Ciu+SE$^9uBv)GQN=~mT} zpm={Znj&1$1R+J$g%nj5QdCt)iz>DMTWu)1$+Xjn1TLwwgz^{WOkN_X-;+tB>nyQ~ zi6cxL<-_C%`1-umOJN#zUu;=7uWEa;t??`Nl;a2RlDzz{Q`LrH7@-wxSb^&8sm06pbak~oz4KaE;8?k>GnD1?(_ZD448B&6sfAw>@fsUEuj(sPvsi=?GW z4Q0+UKS0NF(hj<}t>E9Nq^Bx1q>r-nM6adqtE%lIHo`CFzz%`0$@zELv2_fGwbzC* zt2(OM{(tt~1YXjjy8D0n-kD(#j2OigPyx3nuVBPi5nK=y7h?Cl-Te-F?;V$@sGuMS ziUWfN+(8hD11_xz7-HZrMv00`aNjV3g29Ev1vdo61w|Bn&*?hfQ`J?~J$)~O;s5#n zFP{(3uTGyjd(~4<^;13Dm~fPE8Y5Q(J=X?3R|!4FFh%#tw92MtE?7vpOd+L0!21=# zx@FJeTT6O3&DSjSEt4Y~jzFTKC)4tXC@nWyX}Rvnr`k~dU5sejKnAv+Y6COK^;BDF z(6JSRYNy&>XP(AEyO~pM$C-7EG8wEuER%Txh>^GaOvDOLlXdxp9@C6eC@`7dV?~dmvUiW(7?@1a*q2Pvm?xxB$)WY8%v<^1ICre_ zRWg!r;82qyFGK*Nb&GlQq}oay#g}a1RNH!!jMzj2ri-|W224z^2%#tQ9Nk}HH(BUu zU&UG=^iBMm%9)F8*v5y_@_1IODY?oeMad-(r(bNzQ5g9v79gvqlBuWK(9Kn(`l&W( zSTCPVIMwzLdq`!Uq4HQX+vH5O@l)d}!&Y)l3dmMdY2Lcvn&fhRs*PyJ5clemp~nsPV&Ds!?_tR*tr~@YGdav z*%2SJ8Jx%)!m&b6*;o;JN^OUEnp169{R(^3)@LU$`H(3iPlmGPsZd&;2&Ls|P+Fb@ zrR6D5TAl!<<&m1^R2yz~5;wtIWwHbk0r4D2Fw}xc(YV&8VC4hfWHb>6Ji@*WQ8xBz zSKEZDv?m*;&XqPPxc9IP8090l?@4Ij5BgVwZ6K>Sv2IcdNQJNgCv8hkd#a7hFl^KT zFzJxHF_3h~)&Ou)W~3)&N-~55BpD(M$k-At;BHB(z@$&u$R1nj>HwIG3R|8~A?5iL z5@UsQ3W;oP@XRd$W9Iz3!R>9wSULik(!|R=ag`00X->6~vtQVE|LQWBtBfY#(|pfy zJ#bRaR2oSm2l`T-rGd~Z8?h(OO3MSSv^>&EBh;&sQ3BrHW8DVEjI0N8RcT}?rer;X zi99G9IOb%1o)cxur?};xY9mGWNm2yf&tKW-1NV1Q54h;0KJfTN82As74LB*eQgP(= z@?@q2Gctt@`0Ql(fvEvuqXZao8b0v1t*bmu1ApM8KJX8T0x$(73Z|(iVWXTV3Lycx z*6KuQd7((xyiSyDnnIcGR2#+dge0F}2CYok|FRKpH7#6ld_>9Wyp~hc}N8^l$4FJMC6s0hhAyK{$t641>>E6wn-(v+yJF=^Eiz= z)pl!+le~=ZhI?$$5)z63c#mQg+M4~nZB_ArCQli809&*7vI&CarYvW2CT;IwY^*nB zr?*_UP53T@{w!fd4KRxI)hx>!;VQM%R)@LCVY@q;{RlH(o^ybx*Hdj^Owkipx#HR> zELAgSqFHu}&H0YQn3x`HJvX>#ouF#oo6KM4TF&%d0t|3f^pD&T(;F zmJJ`+oGJ8uhxcs*5vOW%c{Nk?1Q>TJt~zP*q{l2=*>shYQFcq3z@#U@kjwLrB&YH` zlSf@Q4e7x;PL??=)sP^hyr=raI-INe#2ybfkxJK9%@j=P6LNWAmj`fGjI8Oar`is& z#VMOJl|toI8w;ls{gG^eh39r&Aq)32NZrYlLpmPsPwB-h#HqGhQb#z|hV@)E5txtd z5(I2zFS-(!nWoY&&;8m4MQ3=}DqjY@&OV&L6eNGbR-3HMIbcB^|9IC}5f2~4>r`qUy zw3q)9aGB!7kd^l=Hz6xKj+KGgH1uSZU)`%LdTQ8)f5{=Q<97&Oi?7--TxFvNc!H6_ zS2nc%F){-C_b?g5Z=Gnp#Hb<>c+v;Pb)vwR@TrQHIx?2T%};ZKN!#Y;u{=DOM#>1VG7?q-r!)rB?`((-J2PpCGW>WqNLK3M9?U$ zC=d$8mI#DI)Kh`bm?)w^D9jg$KuFwGVkaovqvNSIDAau-4idv4wGSH8OjHGhL6ZoC z#288iLgUVqbb~~JrQM)$pGvwxq6E`!(3t6xZjczNX*X!hdr3D)jOMf(G-ko18zcsN z+6@|WV$ux~(`4E$pC|HDZ503BwyM#&1x$_4G*9uV^YVLz8@2L*zvr~448WJ$oqxz@ z_?u39$^d-5-MN+TM#K1_wA}vuNZT~_r<=NrO>D3Ek@8RDPs+bizse(RlRSH@WlJ_= zdpiwiE&9r|JB^#t`LR1ql`!EvV5b$QEF5XWomf=ye!Scw2qnmgALhX0e64iQy9|EJ zNejShoOIA14KlUKk+xlJ>Aklv!4G1Xf5@s=xX!aeW#Cozx@Q{tQ4y7G#L?pZw3!nv zTwwY<(MFgkq9B<*g~a@Iq+7UvQYIqd%I6&+F{j{ ze3ZM8e3ZMAe3ZMCe3Uyg+Rk0mb*dFXjDA0NMYwVogp`{uq}*g7<)#X0)FcXgl!~F3 zTDj;929BlE#`rzGlG_yZ@lKlCV1*T3oWsSP{Yi2T_{_M>z2P|g-p8s=mbo_^x3xXm z-P<4W=75he(vWY|rSL*Hj^TtJU&9MbuODeU)a=^eCYKxIiN^iS|0Ddq^COL9PgTt_^yw5_*hb zihh%6l^xAou#j?@LP~{z?`ZMC1=%eudlp|=(z|K?(Tus&uF@ZfNIjO8M?`74(Mrp8 zPd?Iy^7py&Hjsg>N7}#)ay`;k8gy*MpxTkPr&`3~pxw-ow!bm!7-ce8fmkN<1P~){ z`I(3no+k5FVNm#veKxjXD4(9db7Yk`CD#08Yw`^rTElhLC_HLxcgZ^i(YXZ%Q%>CVe7|?6IG& z4uHw1u;mFAQl3vCF;+;YkjUnfJ#!1dm^uGq@CT6#$do2t=83CpuuOBLjhuaAr?~YE z<|+jSe1Hu)c?S+SDQ6l$l12`sE0EAD8?h(OO3MSSv^>&EBh;5ABM1Bg->hi^V@B2k zxvDg>6jQRE!9*UE4IFc_KF^7=GP+@76`EAYpB`1OH%CbJ@#8W3re07Fj02R_%j%F{IP0w?u>7bgn9mq)f~ z>PhUNoG1z*0lC)dL}_`UNY}hhlx>9O!GgnkC}Vb2=L?_FOoc_ zRqZ-y026oR1IHXJ<~b1K@*yoGQgDWk-bLV9PFlxE-7~p6g5&62A}QbU33VNi>vR#EUugtKkF=d=JJNP*j*RRf_>s0r zCBEDMrE>E)jXTnIYmSq=jPUNAwrB~7#E&ZkzC32K`yWiW*=P>8n|mH^NnFsjUuklR46c+HL$U+yA^ZqmN_idkRYVAmtysabvRe`=@`3%auca^UDZs%q&^{+2X=V? zXT`{xzIvo>Z+q5fbEZIg^L zu%4?X0`sw5f`F~;MOWf7(^UH9xnJ9$=y@Ka%9lY;wGSsS1<9w{YLk_joL^(@&Et-c zfUF=V9ce@2>Hf$y58MJuhE{J`c|0RhR`MiC2=G@(c_Q>k8$F|6)AUqHk1d93@yK7R zkl~Rw`aa&ve+d{z{#4?`kd^l=Hz5}Y7Ynk=@<78zPgeQDHbqYj+wdr;^tc+~NsZ(yW#x=}?U@VpU5S|5vyz&&4)N~HA!ql!e}eP5F@ z;$Lx{=y12@aCcBT+^sp>9h44tYYuk@IDDZy+y&yIhOj%Jg_p9h1EvmdnImmw1#}3= zah~gWAW>06JCzu9h|zViFOWcmzO;yyymtg7P_m=|e$Zpq0q)}EFb^bfK?5yfCmMkN z{CAZ5Jn$wXg}$_QKEWA*|6-)TNbA#)5qRKy}u(Bg4EVGgH0H#l8ziR5v|Bz;66`|~4h)7YPG>M}On_KF`V|1|!j{44dVJkmDF zvu9bhWHa_fI}T_a>nqdlG;T`g#T}PEdaOm#q~iu8Dwgc!)p5(X(4hk%&)NO6|OJaa+85qd6=DP=to6Vwh>2* z`zkXwTDZXUdA5x@QA9y9eF};B>&Pge#wSgv6YJKSCNcDR1Q_CX-NZYVuKT za`I7bdh${3Lh@1WO7c3%-a7lFGQDI6prJ&$u=7dKc2uv4}q$wM6fi@BAR zjmy+33?fJ}H=vpr2`LYekn#u#sZ>4v)N`yQi=yR-8piBqae$8JlpXZcw}?+Dq=zGF zNZ;3`2YM-eb4S|FHw}k*VmrW>dHrqJuFPSlj9MqJstHHhes6kF!cmM|5%gRe^jszM z7{e6Z$y`FK>}ckKg_O$_QYr-ekV06u>{)zeN$;lll!f3Ic9q>mAol68v^*k8%Z*lA zu6y#4Hk4oL%G*E&wjOB%GsyKwTWQd-6@zL=+K#b^#X-B7BW*7<>lkG+SbUpG12h4yvt1|_XHKj2JGF^HnCIw`x zsWfk0a7}VKKhnk?Ae(x+``sJx49Zqopz@GM5e90$DHW(J^|*BfYQCius64px;2o&> z{!5?^ODFl?n&I4x7i?R~s(#bPn`}TP+u>t&f)jZ|I9BK>HKC`}wwI?l(uUQCC(lk` z@*z`3o(z4&%2T1VJP}IE)1b6G2};XTptL*zO3NcP&5<_Td`#jdn5#^dKq4TX0||y& zFew^WTE>+Re63ITi@;~uS0T#AChheJZEu@gsdMF<6x`d{28{9%+%ppz_@DfH!8VXp zoH#ov1*AgQfRnZ*r#;d}W*9c=0GM>h-55wZWNQF8DKpZOG9?*80+I|72E55rwE)~P zNeh_ti7>Lqe!4mUCZocZCsaszK83_sA)P`Zn}>Mj7JxBx{>9*G+cB1oK&CYDGEZD( zgJqf{ZRG5`8^a<{T?TWN(FA;w4LW%T4mc@iDvhL(1L+DR^vXu;iL=u3Kr1bew9*Lm zuWc7bY2ei!>ozcEWId3p_9RO&CF>bXQuoG4p9#V!9x8!5U|k|OX!j3(I! z?&+i+@IWW^frll+z}G}J;H2b=PICL1WTpgP>BFxN>?OkwObv)MN`N7!;R9c6UFB&S zc)64Mz-tl(;OisXH1#BQP)-zukbqokb)vMqP^4>KC(1TWp-gwAjpBHCl20&$R;Kx_ zZQL^VsuAGHIbI}rOsm>;(f}sz$_I`)Sj=-E#^pm=NTlGyzSX)2{IrwSF;aWU-4Pr| z?-EJ*y-x+}fFws>>;%UFy);dpHg}|r481MM5coGf;+BAuvY{bm$dML#NCh&Kl#Q`O zViPPvtcFyZZplb*4GcV-Wp~Lm>5+dgrP!1;@qsfyMe^ z+<~@Rb6jKx!4I@eD)8mTCzYGm&$t6^x8^v>s|XkExJ4^SB>v})MGduPe`*_5Jf6uj zMjpV{?CouOV6iESnVd=6_cAtCo3hVauG%JilR}E7Mt_^hA}Z+XFU&bPaLwc}^lSK{-H6#cr?WI_KVinF+ePV})dq}10 zs%8o%^$EE=uFK;$>qS=dLdq?hX%_5>fvuTJp>m*&Wz$RiNo#>+XX6#Ja2JErolH68 z?0@^hyqJYJ&~{7e2nX7*o~tGT^RZomfUWFASK=bW(0on$ak zWEMT6U(@tdNzby$+!$FU601PPoc85AfGU3SZdJy2Epw5%}4I11T`l`hihJBJidWMq0Oh zo=XItXrv&K))|ozc=TbZYWyp%6CLi>9PSQEhr2b0yMxlDsMvE{4(|TI@fwr=S=BS~xVCE_X zGe^Nt4;rnx%AlGntD{eKZ11Ho2c#tACIF-!f(BZYgdAuCQWDY^NcKWsS|m^yfn+Z* z(jtMv2qb%fkroLQMj+V>jI>CgFapzDPJ5tjdmG}6@8QbcXkM{X zC@r@?KhQRf{pqGIV-wqJex&@<_>=Ol)UWbD+a%B4Z`qQ~*w^kbp!H>=%Bp%AH>LB@ zJ4}@@;oPvpic_{~xQU26v8ZIH%?w^{5pbUiSLVQ<`E%Jpx3^`}ZoYh404_M`pcfis zYLlaCZ#L4ok&9t|KVP*Tw4)U&1Fy2zJ=4&SijcKwUd*HIhnUW2;R4g=_0JEkiXsY< z=~GC|Usw48d;z6QM8cKNJ3?Yk!5<-wnv}P46O&0OH#PYvH#zwzH$C|%cOm&GcP05K zcPaTOcV@JmyQb?@OGu1WFh6I3Tf1&`hhkKeT-SBGZ;9QP8;LT z_DXJ3)Ymy_?iwqs=;9nMzR8~?=YU@|lB{TNI1azhi_6>_j(eF6lGA;#%mLqLq+#dW zQJo@i3@7yP8eU*}{XpB5X4f@ta=9^{XuQDu|Gqh|uS?@KqLhY*j4P$(sa0B@Tczd6 zRa#;~0kP?&KGGL~#~UdeBf-$WcV8DTwhUmWY)O)bIQ|!ND=Qn9sZ|(6kYsK^H8B!W z9wH&-5fW0Vdits7%a$yPmIG=SbF9SyI-XN@&{N+czO0ZQ4yYmhO)fpqOX-_C(AHS? zF7m{7fL}0@oQ&G8%weaDS|_in2?yGqWWrIxL5y4x^jsVCTqX1v!xTLy(<*zUxnLpX zGKG{10iRF^>y|x>uPo`^G8DCv6m?{9dlS z4P;>Jfi^IMTo1IB1|3^5sCJ<3i>53N+RYqj`?%FVqf7=X5X)qq0Al1VKNGRS(@5Sb z3<_U_pKQ|sGoa4uOo3!gY0QC47vpAsC*(PVIjh`A<8McyZQb4wvO7qqQ*Cdzo18wX9vZ<%L z-@O6PplqcDDi3)SVW8%lQh~}+k6Txu=37dE%7ZHp-hrC$zXWPt=xc^^GhVQ5DXV(< z!7|$hPqxFy>;z9O^pu*=Q)=7G(;R5S>QC5Kfj&Ed$%jlCc`}qOPleL*L?|s!gVORO zC@oKc(((i-EsxYR2ikD+)Wl6NSD7q3kgTxB!?-|E|t>w%MU zrU4{rozcEWId3pN+U}#CF>bXQuoG4p9#V!9p8!38@y_=y@!6*3p8hzl2PU->Q?xa5OqC^;YZ%=L?I4QYOapZRU zWL$xF^WoPAo}I9PsR5Bj2{7c;QSc5niOSP7@ZL`91NTm*T`&bD3Z|(iVWXTV3Lycx zs%d$hC@n7(>6+JxvQ1Mc(;aA|I9{9N6U?BMY5pKf?WxHy2T#uNBFSS~Rr@CmVB)TP z;FyEOJO^T2KBR?23byvqy9m6alh%=evy*WTj-z*pq&&$d)OA3Tqc3)XM!-qRbvW{i}5EG>xXd%+HTEpksSm-&^D>Smm8l{ZeBm* z4z%5x<0P*ld~=5_T0tW57dsR+)S7*SjeH)@8S%7Be}MwhuQpR-3ZV zTdvwBe3L zs(F)%X3;G+=lcy~VtS7C{HPn(A@;a7C9``kRYVAmtytl)XK`79Ukr>m9DFrDVWqJLkKe2pSZ~{}1+_D(5E|b%1th{;H5fYH~&^NL=mN znFnqGB}1#XtUR6&DJyx7Bn0>?q&yLNppBl$W=rlBWmd>PUNnx$N2VWD9g{w3$T&Ob8TyB_kAaFuNy;0KHp zzObS7wa5tk+0mhIV5GJBr7jV87b68mTDwI?;Ata_wEj6V0#CPpHm3fi68<(59q!f~ z?hZfT_b14z#J~iPIj4At-a+Ap|FT zcISb_K~3vaqS7HMTOUQj=YfPK^rb~~kMd}5*dMM!j^kttW4A#iAu9FSINp8St01^ z(Ojig=gJiHNx`0;f;k{@m$?;4+~q_V@b;d9KJev93g!m1-sdUk0||OCnAXEQvVCA0 z*)iw0tnM$jNsf}%6$Sw$PD%rR!$!gIj1>XI5oOHHS6XhV(niOfyw0KLscyben>KDq zqx^i68a8&)Xqw+;w~BZkhoU6D$?MUO2zPpl1R7zF0--REBmyB3fm9$gN;(RJLS-ic zAu-9sPEeSn&Pw=y4tlk0lYO=}9T%wa##5sQ-oEybjvK;DJtB0B&&7K_?qz1k1sl zvyAl7$n|Nfv+vkdxOTLA6E~*H(!15rkBnBfOVUBqHI31}1?G?2+DH&JloR(RA#rQE z(Cu45C3jfiVs^mvipi6#NoIxIs^p{Gy5ytW%H*Tm+T^3$>g1!;+8md$?B`a?awfM{ zNV%0l%B>SpZk3R73#ibPj#baFOzYGEj#+PG=>=YbZK|<(8SB@%RaO(RHsJzg$z zz^jcU>zm^@;^b?rV1~p!Z00=B*JpFU=NW0pmpY_a4Z<;;(9<<|f$8-VH`kk8tGss0 zojcd~84Jiw76pBq6Q2>JH2h;gC@s&T((*Ja&6O1Z?QilNECSCoQh1*oll~u1!{WK- z9u~>o2=R_XwAe0*CZHS7lZgPwxBNtKrG=ZK;{*);oo@a?$0N!HdUPX2R~6F32^gfm z$E62)DSdM%X124eeA5%w0e;^|a`a-mGB=%fS;5ELbn;r6aAM|ZCLATa>76Tro@;}i ztAw6LG2-Jht+K6?3l>r?Q%F%nMDHksb<3W`cOtR>F4n(eSJ}=05*0o5l1D^oxzS3? zbt^3@3n-qLLHQo8ybWZ)>WLXJgI78Gyh@L&lr=@3&bv& zBY>E=h3A)ekNWfL4)?Kl+aPBWOJ{F#kRAW$zxnF)*2B zu}?_cTrf{a$V{(SXWq(pO=ZvG{)Yq{_>4)BFHwQfx<&4N(YnP_M{%bKgXe=L8L^25 zOqZgpXu!nuiV%7-d(r)LyCp(T`zqD~p>N{fRL<;bj>KoQ@<2zcDY?qqf5|1!YTy0i z*nik*8ku?y20pGL)z85|!+QB_!a10S*pnPj*OjM?*(PVIjh`A<8McyZQb4wvO7qqQ z*CdxY2g8mLTR^&d*c+=HmvA*@*2OjREMc|8_)B~RHq($Ie?Asi9i~)9>vesG zf9Sh1*>(e8?OQ%=;A=cF3uF{ae*)NKl!kn_hC6ts2E~HJ{mDF^V9?Z8uHPI(V7QR^+Uc`Aps31NM=d@a8mH@=)qe8 z5-*K0GvT$7EuXxUjiB7e{a*scI34z#*4L~?h=VNjaP=^sTb6M3wUGpj-itJM(15%J zKO2|s`KQ`u95Hs(_Pxxtd3SLUc$ATp4NOF2s{EvV{1xxn2F7?TG64U|YpoC5$4QI8 zI86H#DFIh2K5jj@UC6Wxj5XRXM{|GDXeJw~fOI_HW4{O_Ey|V$_jVb9KtImx)jnWc zoM|5K_e+ddzTA4{n`AzNsb;>?O8XyQ*uUKh?3cAze52U>oa9H!za{-i$ji(O!;@J_Dn55oUomVN7#OHBK+AFFgX$a~dc_X4 zuA>pgOi&j#)SLWIXQTscGFV* zE``J$kB2nT3gjkUnMSo1rjxJMq<^cM@L$t#Z;xwje_G-(Rt8A^$eKJF@z^OOOl8ei z8Ch$a@ZX5|?LIw`Nv%P@2`PnbjSXW_4?3RbFBZ@1XgMa-(LK@#|pdl81C2 z__!pbodK=)7*!sMfw-k1?NprX;N+t{%JV=x4Si|htb8{J{N#0{avu1)U&IV`2DF}P zc@qPHhbF1)3~0SBG6K__Pk7;UG^)}fu={uv=YVY|^?_-;<|^@;E92F##cQroCv#=I z`n7n?RpQmJ#cQq-uYN6Fwbw}H_wPqG7p}JfOeAzZ0Uv9Dl6NCEZOp4p83`MqP}=EM zQSYI%LdCMj7+!P+FevH4{hKYIB6472jfn!U#*=!GVP1=?j9; z7;i~8NW>=X290Wpc0eJLi9kriFck=m5{m+%5b;DHBx0Qkght&Z-5`;Uv>P<4FzE(~ zft+^Bvp9Uu(um~jH8#6x*1^Phrg^m2;N>>;3`@)KH=XwA0T_Ff?~OL!U|X%ShCimh z44cwNdGbBUwv>ORHrhLrQ&{;%zk}T7s=Ezn{j=Xey3?2}&-vfD+lm7ke(Id`##F}X zWVtEIHw+onPx6U=?$_qwBm9211Y~^43;zr!Mu_Z>Fd#NrDG3SqFHV{xaf}h&Sh3o| z86oB6KGPtI{*^B{(@wuPFPJT4IgQD$_M7p-`wT`e7D_J`P#H~LC`~RNHdAYwCbuU} zKbXZd6hDE2!O2vS8=icWJCJ;oJCb~qJCuAh>PX(o9ZPBh`-KF=6FWjeGK?Ul<y|yM8-r@pUe^0yyNVJZzU%9im`5y?mTQ^(8YYSka7At4IYydk zj=T%_{77q~d_Rkg@)4(K(2>PEpiT1=lR`zxxAdc#ko~M=o8gC6&~}dZqE=!*VWLFo*je%D?0zGgFif&P z_C;t1h`5RK`@>A+_^oMd7}>Kq-KKz% zy_o90OD=S6a&i{Y``Ocnt~0^7ETx_5YpIW`(QL4F{Xa=KsrrD!9wdZ=| z4Zr+vcGhEBiywuimVjeS_w|W++L%&9Di0jvysy_&^lb7?D~&3c>rAt65$XIzI|)at zwc-e*`^U_MTOtyvTt?WIh)60oFNE!Kf_yK&dc~2EZR+jszD27eNZgXq5Q)2$ugtY( zUuvU}o2=Xv%Gfl`YmAM%tUQn~w_fabwXu)Ou|GF%Q3H%3{T|NkL%2#UJrr`oteDJ3 zAZEYG%$Icz5cT?-nP5!Ocgu3cwfD{R3`#yxh&B0GuNbIj8&=j+UAw^CVSytGSV$tY zqEqwwMeF%r9*{0~fIIqKt;k~tCw(vTzHK1lG)TF;THy4DB$@ZQ>MY5+l<{AAPij>& z1(UwziCmU<5)q~?mI{?1%`^|Sl_9H>%FS9&8OhJxH{3{ZS=J5A?~GmbiaC0d?@}!R z`9e^7YI@SYnVR^N0sI(CTnt)m4FWgUnc=w!`tI+^Uk_ZSIFY;Zp5-!Xv0Pmg5z-YC zJy|74AgAa#+i?Hqo8HP7VkMIqX#mkRE!3dJ>_0C3k{>Hpl8u%Ee9o-NLd{I71<7HL{`qRGG8vcDk%RSY;xl>BZ z2b=6O&B#k={B$&4$*1 z1|v##^S@-DGn9lxQC{Kqngt+M4yEN)sO^6+aZy7Xai4Z^<=4wiK4n(d=lyKvtNfnS zY?Cw9zHzN_)t36Dtn$87%94t`@TM`pb`rkaZp4hnjd%QgYdWENdz_5(lM zhsYAJX2zAqrd`1}Ejt9jV}0Qw-&+}GNg!;%Rmm(1Cd`&rq7kT28m=ewRCt(7AI)(|jpI1~LNaWPIGIagv zLf0pBmn=JU?L2hy6hP!+l=@|qip^mA=Rik-M|>WXj1e%N%WVY5ul4vW04XDl55ag> z;wAV!Mw5M9f>EoZT7lrEs>uCR+K5Ne(EYv9KitHnG?}a*l?IMZJ<^@RYUKk*4<0#S zB#17|idgN4Im0yaj)T?wEM#}K0=3UA^jh88ZUaIM5)8w-9MOd>^zhz5$ zlDmveSqL6-x2e)8oJYhZBXd`v(jv{Gd>VgSvq#yq#9gj(2hrj_(b&%LS*%NLuJWNa z=Ia3ZzR~-(fr!(s|6E@6>ww`v`>6?H>X12_`v>D+NV)%&nLO+umE!uPxM`-mapIOr zaZ9Cj#bJyvsocvZ!F&5;*ak-b7fNwsUT5a%JNET`wivtlQrvv7CjMU^DGgNY7zYYuk@IQ)7yuM5OQjZAky3oqr13?MEBMp`#U zi9lQojI{7lBmz^1t6z=adg5}^lv(cJ^wZp!c_5yvF&&S?E1aT~fs4k+@)=GTzZ_+`+Cx#@tk84Ep2$WvcW?@S9=PrfIF( zv~e1%;_sr0rA2XlIGa}E);TrCU`uwMAraZ`usIX$T}@lGZGmC=2ER2eFoz!EhAbc(gDQrM(~*qxTvzf@t~2>4*PVQX z&iq>X+0S*$oi*1fq+FMfa@o{GPH!5t?qN~ZAq(Ey^E?OK&q-}y%!@A>PKjK=GmSLc zytp->@lEGjciG2+jX$%iYz6+-;6pvj>wqsdlHAm9IF69)X{jF)e`1Z*zJgl^yqA%N ze0fClL5Y~)nf~)Uq=MS7|C2q(nq9Fli+zGw{UN~NA5r*%`KjMv{U8g2(uf1Xm4?rh zyVCMHP@1Xoi@L`j`k(0`Uj#niNZ}vV$c>UGQ*7GHbFnb32=&_@FkTJ21>JZR_L zg;eYL!lGxF8jBtk8=OeG$-?#klOi{IAa3gM?c7DB<@QZJ=8d9lTu~dyNYj692h6C` ze{H8!eyl6URqcyU@p`@~i{q&L9^O}YO~Zu7NRXid#4Z`hKuio119g0}XMuQs`t$1! zGth%=pfj(elPtMNCs~GSZIaboAdev~H3m$g6|**q%HBPCV_-7zVP7)wVcwXDkNam7 zw#1Yfdlt7YY{Y>Bee!PuqrgR`OCjDl*x-D*v^dF}+Wz^*&`|s#oz^8EEJ}KiP=5)(RHO zYnue}F3xZVivH~GC@=lFrZn7|Y4-B%xk-9>8D^z=BzOMn{OF#fPhJ%n{`*5K)hEyQ zpS$Z+o@oaD-lD$z%-4F${RJ1P8X+lX{#VgEWzB>;CH>#-I|^+euIQJ+xiz&fh=Xb0 z`CypzueGbJ`G7w&QW!t9ZitMzbK@j-YZAMIQerh^O;g&~sY&cqBo+(nnWj`*ta4k; z4et+Oxyi0_53GADKUVvJ!1`UgN(6!5Gg62kt!pA9@Y)f^={0q0n!1BhQ@5sR{C7&F zPo0{kPDN9vrm6g{M$0+ZqE(ukKE85eln%QfWZ+D@N(O+Rc2Xbs1tW!|(E3Sa1paJ< zk=7rbu?PIq2qUdK|68!CvLjTQ{tlPg1-{Qo3qWj8(`Eb^17^sS14MUVjOyx$_@P<8 z&jWtmjaUQ{F_qmJ(7HA<0Y|lq|xaOXzd*tf%}Xw zj&riq)U9diRy1{Mn#xH;hjy+-hjDKD_@RB#XT#9>hFxVq1Ml>CM%6rUCnJRb)%`}| zcU@u^cxRW`2c{BB|AGc2e$OR#fOmC?3&2!jIT<$1_f5)AU0UUS^E*EL95JXc-OfI| z^CTud+&)@b#;s&3wziw5WUAEoz0H>0CfW1|`|z=om^$|1L6exCYahO764SBv;fa%& zPO}f+GKuLN`|#XJOdqokKQW2vtM=j7Co#!Cz+xX?V^>|~gYV!Ot?VGo*oSMJsZu~v z2ww>GbsM|N@B?mRr21HsZuU8RYnmH>{?1lYY=u`juc~pzy4=oWKRKEO>^rFoe72E- zrL+!-jKD)j7^Av~P`q>O3`{$Zn<<(G0S|To9Uz9OnVkVGY?GTLFx6C>L7HYilm54^ zWdVrX$}+a){pPISY_s;Bm4qQ4w%WsKDQwIhSP1T6rty5YxCi{Ole)mq8!2Rz)_+Du z;1wf`F^>_U_?59UFzq}(qX>AD3+MnbEM$}xwn;{Tsit~H&ob$sb1e%%V-13UQ?M+sFv~ z!w4g-<{8cKPb4}tQji!vPX6CI_35E?nO!SY*tE_nm)?@3pJmD8LsPOgj1PcJL(tY4+&o#ioSJFNK0(}N<- zO!?>UW0oH&<(*c1zxE>R0dH_pAGp((!W0}bPV2r#6$5}rIH?aj$w@unIZo;WKj)+# z@aY!^rLyM%eDIe8NnZHaw2{VoBMKkzMJXSRmqk9{t5QB1XGcEZMJXSR&lqvcFsR2p zp^}2DJ>Fd)ahL51AVF7c-2tr!df2+a$2n;cNGd{KTE{zM7kHYJ7J-|L6#CNo$H)jI zlYx=eeLabbK;j%2X`Sp*Uj&|(1h_k(_14G;Ofxa&t~_=)kcI0!3mqT>Lgp7B*^v7j zkW{EU9Z$@z9-t18xJzH)>mnDBzzG-dE0GI$I}gGFkl_&Qpv8y~aX`jHV5CJ=3nMTM zYqGYJ13~c65Q39mEhMhAH!b^3nA6o4& z7G-4&q=xFlaxq|_*CPcL~XfZb^Fy=PZ zlM=1NsL3-&slK19m$@m|Eu^R@qUYMsI?RVy8;H}DFCO$)Z!ngy$-e=z9e8(_R($ao zRWqvhb>=oOs$MF+ZI|9ImEKmi{i15}x<0A~5)knkJ&*J|RvQ=#ZxPi;MJ`~h#p0`* zR)eC%*Jxlsx&|+eSgx~8!y1VjwTv?$;g#XSJj#t)xPZ5F-^Sdti3h>ZO79HtpGkA# zn8e6v(RwUe^qGA<@V7>idH6Mz`Fee2zMk~&M2$usQ{L$1(FLAnq*;0GaX`#Ln(?5?UbmGbV2|8_7pF`m^SbV}vn-%DgnFg7Hc{DD0i#Xx` zt?Fi+8yklK&vLRb14a*S&SPDkH!03d8}po_e&hXhS)pQGPoDxJ3qLbdvy}F}l05A%)8nc%B{TB#2RT%MGcaujVjbvVN5T z1!RtpvWQDrycrU6SB6CVpt_c|l$FP%5P$6YoKJ{TZ*?#x5>vPEm>9mdJv0hQYbdi=)B#LyfX z+BREyZc`hW*mPYjeAgXU3Ey?cQSyla*BzG|U_ok7{{mC5*#>{sOvrn$GJ@IhX( zwY_MsmrIQ8?*9=oB8vy$&PLMPXm3F40g(~-;1NbzPl$}b-Uy@HFaj`W#=Ccs__#;{ zrV_{OGn#bd;+-rkfVdXc3$z~O+B!fC35>K3jEun4tm;0U81+Mo{O{~451MNciF--| zBYX95H6G3;B#~>aMj%%iOi$Rg*r8fg@U0OgYj!y&Jy0t}# zptqWJWu%KQgw&|*R@`&@74_6@R1!hu%CG?bjR_6IB8k@!rk%;0gbkQ>F6%YzOuD5` zfobQms!~gyZZ@82S1}*>X(#o8pBeFp)>k4U@Mliy0dI6tbsq*pPH?s^!eY@xvmju^_ie)U1=7Rcqu91uRKac4Ya&pWGd1vp>#IVCS?z#XFY=> zdHG71#P+hQ*a-YvC-s5PHc}YKv|bb$fhRku2RzeBh08;O?BiXXt&6bOvxtMcV!d|v z-W?!PLM&*#DKY|4QxBS!{S&Rzf_Lr_gF_<8Z8D$%?yR_He?>iKn%vQP*~7(E%KmY+ z8z7%^omBS6n#CkuN(y+IN2#cRR*Qa-sYth$J#3^+${tA1dIs~nywi-i)Q#!^uP{=m zb6VezjKHf$7-_XG34=;J2X1GiAd%L+A|r6O5ysr+yj}Xxt@+R$;KPsHhb|DS)wJ$_ z)*mAy5UT?tt)1M5E->|>yk&3Rhfd9hPQ`~#&4-Tru-Z-Q0I^zq=nQDxJ2C=OAIg=3 z&IbB-o<#|Rb@iEtT4^XELP`UpaqKD;C0xhdoA{jTxK%2~Uziy$i!S{5ntc>foqHsV zwZNCDR!yHQw5%)TRadc}U2)GZt+Z#0L@^v?2m|jkab)V$L}xN9aRR2D%Q&T-DF>O? zfNAHl7Keps|J&Vce1;cv4|wp1`LvFRjKE_?7-^jv8G-K{VNA`)acNe!W>$BASx39J zE)YXPNzytwG6GYx%221Km1cEnW_2oNb!ujH2AFlao7DlPW|c|Q8^%7?2^(~h$OEFZ z)P*5lMNh6WL&&C3&No}|ZEl8mVrG#PG{#|ANCz#VB8)&n5*TxvbcUEKw5%)TRcDC) zihDk7MLosZ7XB~_WQG9#y$MxU%NJeJ&eW>J37B>+%Qo#yMac{SOgopwl?I(Mywq$J z^MO~4m{05bkr86MdGKm`8^Q<#A=xmT{uFnwk2C)fr%CNQmxzYuN_>HJI>9@)ffqZesG(N#TKn*f@l3&B*_F4!|0tjOd%)A2)CZn9 zGF8y}WMo8ac`X%nQS^H6KMzE7n0{$}EHVPoU7x2hqg38O`57*A35YtC*%{D6lf0vV z*!)_mnM2K6T+Jd7!K!AiqNaE&4|S!Qb*MSr)hqy0HR~#Biu!4qN0<~`mh-`9e!i)l z4}O+$9_xB5UlAX+c_wx35@Y+i%jyAVzuFo)uc0azvGvZ~TIX@IOVfPQwEnkiZv%hg zqy^xwoz!+{HdbCEoS8w?Ro<@>_TjQZoY~GK?cfr7z`dN*Kf>T~k#wHH4@DC2OGc_k zP}ei@5B*ElM{j4~r@QDj@FXWK08evL?;Qp)K!t(-)7jdpc!KdncMt3KeAm+l9_yqz0)$|BX#;p;am*V*Q%%2)g|ds(=->R9ly$iRNa z+w&B)fp2uuB8hx^B$b&cZc!S%a;jLQCq*nTuw_OK-{q@}1bW=)W|Rj>SJ98_xM1=* zSNWywN-)K;<4hZKM|~Q}UC^JTUs=zgq_2g_`%AmZLl*FV8A%7km^+wp+{Zh2fNAG) zDJ(jz3w(03Kj4>@oBbL!(s(gUp6l-dMql{K;4VX#lK;ssL0ac~+I4mFl4i{=1!K~u z3U{~eN7+>#2!W5fEQCZ;^`oO0dDa<&u4spgFaD$Wjz%P#UrS+@G2>i_m zqqi={=H4oUw{=n=B{c)gPrfF7*j0PvPO)+Ka=K?W?4FvxfU#)uS)3?kCYs*GPT&wYlDKZl#~ z&~sa%qbI*E6new&o0ob69lbAgy@6ipt^ZE?O!7O|sV$E*JBWjfG9Z;80R>{6gdIpF z2p5n_5H29*|GA1{iV6r@Flj6l|9`~!==Q6u0CxA$*a1GoNcs;vFyB#cvMuvq8mZ7WTdDI%diLJp1^gcGcg${m4- zra5(tktly->sSe#Hq-fHyd)5A1#2mw~_~C-s5Pa8eKWOe2LP(|Ubm1fJ@oKJd*W zeQCYl8GFD>oYV(?%Sk=pubtEfHvj2v0q^akq7W>oMJQu1FY?HBfkZGYA!rdE8Hi;} zy2J#RLtk1SbU(U4ybg@Cz8x8XKQvNcr1kU22qZ#*k=E}cBanCn#-i>r0#!$J91){j;U`>z?X)OxW8c&ja^2 zlKhnKbqx(hkUU|^i_nLWF6z|CG)dj+<|ySR71XP7XL082;gF2UL|Tmbaf8tqH6+p) zweaA&g$LIyJh*P*!MTOaEFt7tx%Ek>*-u-fFZYPIfw5mtImd($v)Wcy$rVa84^hcC)9g{*I72HFg3K#G3>iN_>CAL0 zOGF@@E4M{8_9N!(7h~jrv1cXf^ovZzWUGUY^j;e?5B!yp@d58G<*2v>C_b2l^k ze$n_`Qfn3_uKGi4o9C)lGI|(!6{eYH3Z|wx#w>pIB+FsqTDP1}xmJv7TIk`vRAHK# zhA9c$H^PngFuO|00pDRHt=Haw)@6|qc=-q;trveY-qI6&3AApAk)Z-aMi?rzqQv4+ zXV%vOqSWN>6fFhfny5O;KE*E~0l(xOJE*>mJJa3XV6>)qM%5pd;jb0$S|;-Lc9j}f z3%j59)Y)7sIPiOllU07kezFdXzJDU?T&Eado6C7H#mY{MS_r(dHb6qpMwbpmf zLx@6v{$CV~W);SA9rrx~pL3NTDJ>(x7ig{K&s?Qpc>8P|I0%@%x> z$x&UNZagu3{kn>NT*oDy&$-HqrA)dS@)#SclLxjNV4&7hmp1u)R$K1W`pSf#cMTJM zu2{ddTA9i9o>Qt-GY%{w)yZv^=a<}I^|o(4*V|R20*-MnR*$h`WGcT;Y)T_4TY9ag zysvcs+w3_!-dA$-bzqh~du7k6PL)>np8LM(y(WnVINsyhz-V5@`=>#WeOSMurZm158%Wt{OCO%t6sLc8p91Xo6nygCUG-dbI-(Q%uxpZUt6<_f?(W0qTxXlZ%e#-hn6CGH z#!_NTzTmwXi^kS!gmD$4t0#2%oNMLIoz}_mR(B`aRYo3g_FGz@S_=BiLhCP#DvZFV zj4;ybMn>RZgfTTE$ETY)XS!K!;M<)v|1N{?by6FMx$;9Vdzw}Z6Vm@N5(ZU%4n};J zw3c@CQ2H%b+C$vaqRY8M+WuGT@e%LYEqfM^WA&cX=+xD4t3ewP(HSNWiP8?uVp5yF z>k{iR&gE5N9G>kk@Vg$C-o9qblVd;+&&;dcA~aOZznd8Rm2HyTT_L@s5LemJQE{It z#Pv&Y{Z|y?ioG8lOs$5hne6PTg}7p2q7(FV!qkiOPm_rHYdz*3Bw}CLUQ!o+Xg!wK zbEbhmrlk_0UzWj6EmzDV9&(t3lKF`Igo%q`&m<&_Kt^AEkv=nn><3snYTrecTy<%y znrWn^-oDecUT9Y_9Qb7;1y!`Z9T|aZz8&Up8GOKPjTHLQ`ekHHZOCzHQ@3VQcYsZQ zbep!d#L8YlIDM0Cs^yV}01_1evQw}CHl(gK!zF_KVwT_okPNZUIY8=lLHus}SQngPZj zETS5H(h-Q8(h(RvF5a^p&RPEZ_V-_wJ*T>pi|;jvT{1%hv1`R9>S!tp$mJ)|PeZGi zao99ZU6x}p$19BLB*l};JStvc0qb(V^j6-_S)13DZcURK>O^Tn0m=W=l?@iXzw?Cm zi8>-GgQ?Xp)&Jb)!P>g5)!bOjlEr$b)l>>BF>(mClxJMp)^6(pa9by}rx2HlzvKrY zqksLwaFzQVaPdcw`oI?&Dcr_r{U9;|e>TEM>(n2+#MFiymo{}vo0e)ebqCn=Q@3de zh!x?^Ml0Gh_OzSYSK8DmZJMvy)Nz}xa+~IXSh2P__56)%*6zN;07|s0_Crib$i8P8 zyuq$oir_nXR@=K6d|)J%4y=EnnRu<6x*mgG?8#eyw83cO`oy3NV&6`#coB$A`h_C+ zd9Ha8V}24z7!x%Y^M2EO+4#TZ{fdpaP>1rXA7<3!j8zw#s6~v@&`S`MmPetsP$d@V zxzU5L;LudBYBqdmqbq;A+rDrIi#EC|&j`61+>wP)?v0RgXM~jdQdvO-9bI$am3HMd zZ`8cW?1sL#8UJ{@LdW9K>p~$tyv&XCGhBM0m(uGmf1~A9CVx+lZU^{qBgs#-ZAZir zFI%)_fQp(5N-i}O$m7MkTqg8fFmz1LuRqG-U1fa)j2;}6E0T`6Y;CWy zIAFgBD|=S=OSJcyX5HuPD!qXSlmOo)4~EimElN|7=^w)uHRrgRHjrVZuh@cHp4$!W zQg!WJ+P$nt97x4(a6C}(IJ1JWA%h3#7BtHr?*ybW-os)@ey6}R-$H6M+^@4p)Mi6s zS)cjnnM`GAF2S&&Aeo?$KXx{1nlEMM$x!{1ky<_++Q4m{)B&PHezE$a8?kBhiUa2& zxM>5U(F@F~2&|+nl;<&CBsU)5C1CzeV>55cUt z6eKncGRd3-35XiWMXqJKjHwRfKQKld^Un7oE1m^||Mc12`?i76wgqfE*ty1tBWJPi zJbj6tq!a51US-DBazIF>(qnN|wwTp3hUncb0JmvokH6h*hCUDOX|&TTpJ5WEn)Vy^ zF8+6+#RN@~w_Jgct~6c96;dHd2=6js|K@@2V$o$LK^8f+p6@7n_R5~cR}32FT&M0{ zRl1 z%6%V+S4A#htkhzxYq(!s$e*^x)jIyJGbw9+7A8x%g#-6>(jstwBZV6&t!`ul_MFrO z-tXsVSOh-MNnPM4om6?!SECjK}wP94%ZV$vjuQ-i(+2mcGdl(@d z(TPtoVE{Ml9(LT%-Rofofs_=L8j6V}JTv6tbQ;O!DJ>URn{HybkU+M@XJ9na6Td|w zgUTp>njkdIK^Dj7csz^26c;`y!I{Z^A$oGg_Z(l)su-2a^Gm;&&U-E|jl|7agz30YpxP*3#TQ zit$5LY&1a#)O#rsJKntwJk&_amTOU3a610KwHgIn$GvpK=Umr_wEDk>af+FogfuD) zsMWxPUoxxYOd0}QU0yEgJ*NqKxJSr8|6p;P_jv9;07qNed5Gm+PEKQ~6g%qbC<>ym zC4|MEmG21NYzDpCu47h%C0mak|Ku*6dO#j>b$_OLmnD$#q&F{yA_-9%wqtnhCRdjz zE00{DkaBrK$_)&oY_*&C0W)>B*>FYkC2L%o5+7ymKGv>7PBa~r5_4Ul{q8In@;im4 z=}QNjAVM+r*9`xq5Z5oo^$#t?74wZ+H@(BTZ<>~s_tx=6kiTsXC2=9-l_03zuUn7h z^_*$orz|V0>sIsKGQPR*O_Q(AV~=5typ4oN=}g{LYj%E}#v(r;`?dD3|FPxKHF7jjB$F+u4WPk7v@1 zBMZ}ITLU=NCmGz{89b%97SABO~ywBaE~LkrDX0UxeBZ z67x`|?b57n&8+UAG^<-Pt2-#o>ekFEi&!64a&vS&i{=-bpOYU;;Kn$)H3MItgm0pq zdnV!Q4)(HE8r0JI7}U~&Ud@7DB~m>im0HlNT2TL`*rs`vIf=7!`##%92o+N9Q{^Vl z+P8Ga1B$LNdre3@76ir^s({98^1!8 zOr33xxT4w0MBdh}L*jncI3OjWX+uhk<(Z-%X2Fm(b7}hGVJ3)Bj9pn@U5M+K;`$8Z zD6aY(G`+*AM~b!1SKeF47eT(Od7i|DkXM4BdjHaTEU)KG13zV1nS@)-&L(^UlbGOt zmu($J{P*oD(-82&+k}tgX%6^tC-s2;Zltj8qxBVMTmoJ)!srGV2&%Mkm09vfx2O$# zhf7@q{)3a+=>D>k7J=xN=_yw%?bbKO2LWp;kF-sT54qOG2aPi`X4YNZyf*MTPU-^> zHIhy#V0@Om<15$N%!8*pny8&!OB?uLCoKT?c2XM{^%mPQQg6mj|4LD+A$*KX2^H|^ zuCWl`G%&3GD!^6}zY4WXRKbi7G8*(DW|kNk`E_F)W8akH9f&NHS-X$qAO zCnIe+gN{UR?t0JP23?DGm9Y*y>;}gAJn$GJg@H}$394!R)~Iq<1m5<>l#$l1My=dFmmi`oAv)ac>;nl(c*dah#>faHD1njIm5~uh zPy!>ZySwLoAVCR?v@VW}z^^;03;ec|`oJGKsSCWDN3jpw$w^&cjCCahG9jK*+kWCRl3z)0)ABO{RL21Z&tdL$NrL^m+fBEa$-3nakub|8=d3m1?8 z3m1?83m1?83l}iPx|k@#Fd*Ww^%WcHSNf1|?{ATKkw>HrB-Zj$YXc_Ivl@4zc~0yL z{8uB*G)FhYa$ApOdpCmz*;Q{?uQL4B$Ob&y*^X`)>|1&DwHfIIYtrqHpvXV}WI@;v zg8_VsJG35$UmHod{ewsX;_5Iwlm^zfn)Sf#FEG;z*UO zJb=tl!|2gSrYo|>JR?Q|F+-=EYSO04ko;Co>wJp@`ehM|Kqjurx>lyyq%RJQ^DP%x zEf;+*{X}6*o4yZ>vq)ZO;rAABVEF;e<%N65*UXkE&xa9N5PyLrr0UvCgAgjJQZ}vT zd!}(Ble~pu<2ISNxt%a9D&ldHh34Hnp7TI%`g#up6aL{O&n!uCRaTh{uv=J-rf9}I zNN%+lnA|V%n`;=El=j{xW0*GFx})E1dqD09)%1pXX&UBo7C^E;2V?;xLkUqVZG;QR z9j89vTz(WbkFeOY*bv9@(d+K!-Bk(Ow>H#;6^c{6|a*IGLxQkujsZLq~;=Lpdi0f*0*8?%| zzFpvFowNib8lf+(2YC>?z;8Hd3Ap+XA%dYVtvh&ZmViVuFw#0LG6K^e*1vKiSpVBy z=>XHt6Xu2cG2e7l4FYxQO^U&eZ{a(MbzLbKXPO0lv#g3&ia)7EO5! zd6U5pIjIBum6M9c5cTZEraju)ex0d0%~clbyq0|1j^jv>@$*vafrQGA>Q>F#qUTI= z?ApAm($dH))?-P}Gkei0-}OH16`5M4<$bqq!l{DBwZGgXrP?nrNlGKkx3d5a`K$sN z)=C32u4~^uuibX*+Y&FXtHh$U1N`P1sJZpqY`bmIfB3VjbmLn6E!I{;`JLyrR&0MY z4I})g&Q$p-sAQ^0y38a*N!9I!UmM#EuCNW9@!G3YEh8q1uP`;OdzcJjBL@-~Cztx5 zsQm(D(Noi$cU4-RCTX`GRcKw8cWpJruN3OM_+;zJkk^L>aP*-Vi?L&5svP27EbJ=J zD!1Ngae1G|r&QOv$UclgESS_CrVl26b?2ovewcZcmIpE1BJ$p{!%Ao7ejx#o7w#9i zMB1gyMPxFFWyS(Bo@K=hOx2X{4yYQY>E${dOr-ahELSqKW8fS8-nRh6s;!&ZE3V%f zC#zQkW0ua<*;ICOJ;&y+xb1CV)LM*F&McP(_A&4z_q-1zMQdaXuG!`I7HuLDexCdI zP)SKZR2$R!Nmj*Lf-EplSu4vK@0r|p6WK$kj}o~8DbrlOkf!UoSoW+;w<_xn=FU!W zlZmA7GHqvK5yHakmeIi0on4N7?nUcFp;l3j+TtyWZEX53p;_zmL%$W7og6 z>%n9A&-%9@{~WuXYuESM^?i2zkX>_qxBXD)e|x*`Vb?wFn)Bailj;3zI)0#C53=i` zU0-b1y#HFGZ?6BLWBT7|O#g?C;eWi*bNj~0Kg<077rTDQu3sDzj|YA@#P7j&eY9Qo zw`=bI+=YSvd3L?TuHUh1&i|}s@+0?n>vxe|(UZ$R#y+2x|B)XF_V?_%$*%9TYcBsO z%jEx=@vr`9&~t!Y+jh<6|7n^0?>9ML`&f{Fon3eTcxZF|YimEuu7}$-*Z*0g|6l6f zJWTE}?fWi6NX9a4B%>KjTS9E3kw^!jEFqTANTfs1h7fz1B!t1VB@%lfA-2(mOkyuf zh`kWBZKlj5B$m-gMq+JC2!naw!9Bb?f`dzyTSdS z$5S2Rwdh*m&!|gWmi5nrdS!PL_R_5s=%o{-6FuJ|e#Pmm+u)1vL-+~&8ulfR0dRkK z0MtHCWbN@Y?AumQx<}E!4?91R_Sx-guv-Ui9Qd1Bp}zyMKN@aF-2OrQ<|_3kpg#ll z#INFbeIu*XuZX`|%X@Fu1L1+t3H^RYzenp;Fs{b|m-@tX@2GH}-^DX#13;PB7O?Y0Z z{sikEhR{K-Xq`f%OdN_7C%XQSIko zFTT%u+3CDTpH4g@xUQ9QXe>bd~C7RH>KW|6teg6yIaW%kx=)u2Q{pb@*+E-^Z~4 zzvA;s_0sKtUCH8@`%G^>uT(GH!Ppfoj{9%o^GfyC(dYZ&H26r+|4sSd(-Rw5pY~t> z`+F&~X*_=jJ__3c{Rz#<&Uq%!)2ILU|LxJ1&dYCMZ@4pThR4Gx@LTwQJ*EF&&u5dr z2Dmfa4ekl|g>FBd=M&*g@OD^$Q=!{0^IVGG8Fqzh!aCR;y8S^sKNOCI7Xk)e_?$K z^!y{;!|2;!DX_nb=auU3t5U!H-%{VjU0Cl9y`D%n6#a0R3+(sdd8PXOtJFV;UVN1G z6VU64bT6TAhaG|a(>$+K|9qAD-AieI#JyPW3%#C5cPRQCYzgf5=Xs_21FO_Oh+ce@ z^%KzRiF7ZaZ-*U${nI?JRR4UH`re18jJJW?1?i@Xd2M&S9!W_H> zdc193O7^G2R`>{X{YHOJ`iQRI8vO`Zg5N^d@6YoC;lZ#O%D$bo+qdxCIhN<+;05p! zI1#$P?f#MK6?bJl2)h1Qo@ZwyyAqrSGc(ik{;&}q3*Fxs>?Xk?lwa3R!q3aF;pG%> z5F7%B!e%%emSFc+lAZg1!2EZh{~Wr07SCN5`B&Z<>Biw`7Q8aI32dbxp1NJ8`i7N`k(h#e(yy0 z08|{$rw4w13wy(zVKY1$w!#I_{pp9foug)_d|O~E)KBY{SReap(wzw1|Gwz-bJ%Y0 zdXJ-Dt=5kwi;5fB>z8S3$V+x&IeYz*vGmSr?IZnp^f@e9s`mmDK zp+35Q>74o%%}wyLIdpsdpyXqG?!T2-^Ljc5pTctX((9M>ie>Ee`+TB)lyHk6-X1(} zg!@7L_@d&K0(<>zo_?2Z9=fPL|Dibfm7Vv)e;`hMxGBg-KP2}V{r8`alid{T^)qj( z)8nu8M%u6Lum^nSpXvEmZ*#BTN$d|xux?Iz-V6(HE?j1A`us)c@lPP$`Oy8zzBaJm zggCocyhuNtI3uV}_1sQ9p1=G=`ODw&_}d>pr^6m)>UaBc`kCafc;)mTp#KH=9aJWt zRnWPA+4=tUMZYK94gZmT$13&mdmwhIS8+U_eb7~^zmk2r8n!||507xZUV=K`9)AMy zqx<9f`_MlHb>C{p!}SkUsh8gw*vW5?!2fgTD%DG;dgZqv@IM>>mFho3|Eo9C99a$a zgxA4Gp!e$#o;#1{dE;Bjuk&D@9}7pr$iMrm)LwaiOg@Tp3-L;D27Co}VlI0=^0RGw zs!QCFwfsJ5eroV1{wA3F9Upaf#<5YbfZx8Bdg&mw@ zy_Z~nBDxk>!+ePJCsnDJ-#m61{40*e*QtEG-yh4uKa1S&uI@%r^6 zdr#80HmG0Nll?-Te+%`)ckVCpqkctxqWs#aTb#psKJ@sJZsqyuJcxf}U4-q%Pgsk~ zy_f78U>?@LpPuh+yo9xQCu`5QCviqX&u2JsPJwPOJJr*KPIj*MI<;1vs!x8()fM@V z{JCCvpHKbj^Xfsp(oH}wo$_}7+NX!{*A9QpeyjzxkCFYA*olkkPd^bTeoFi=g7cwY z$kQ*%HGh!KTMKOcFs=2oXP&?8`l9a-^)qy?&j)_>n_8~dPq68?cj0_uQ>Y24dp94*ZWU;l+*Xrc;L!&-krx>9@n zv3J=|!jIcO#B=>=Z~gIR{XJ#;?P4{o()ne+2q}T8 zUnZUB=kaU+|`dNk0v`-v8`h z9{*FI>%YcN4WD;~t4aTLidO^O-v7K_ri@;7>QCy)@9Kg75_z;k>GY@UJfAJ_qdz#d zJ!^3X*7~zzZm&NTr9XNl>W^RP5B{9_@6;Dje}60TC%>{6T|bfhoYQ#jdjE?{6TeA$ zy#!saKgiRW&s)Atdhs0A7efDYKaszy>4*NR%#Y@>|K8* z@y5VBoCPb@%g*&)ht@j=`Kzw0`204w^e<9B-2X3lz7E_U9u3cdx4`f2On!b|_@Di` z-M!eo0N;k|*8I=*dcGT<9|9Nb{XgqB+b2C2d$Zmedc8;U{AM@}J^_!|H~IUUaW-r5 zU#!LNSRcG!vKKx6qWb?F|L*S@p1%M+Z>^PgrS_3t&z$3w>e$K%>cl|CGCcU@^>wRIQ zciqrHzuhItzqljo-J$!BbOQtZDVHVx;`yw{L-&8g9@om;0Lf4PHGU>%rShv7P@4E8?{cF5;--RE-+25tOZ@@#BPJctXZrQ~C z%O!U1k~kVp{CQf>g4yNMdfG1%=fiDl(t0;|EqoN7v~v2~>+^h;bbR%}x#Kb^U-6ty zX)R7?Eq1V0AB*&}u5+?$F2ld`xj2V)MDNph_Dj5;wK$KpSkHb&%=5WZ=b#7YKwQ*w z@dwU@^OE4aXrC_D`K3>N;W*d|{k+NU9_*!i1bvY{&4O+(yZfD)Jwr{`VZxu2(P@Y@J) zx4Gc)`f-nThXdeH=<(ft-zxR;djxjchn8SJq&pG4bghB@RCMZ}bn2JqKLNewis|&*1Z&UKmDF*9o;v@7uV+AcenemIHKZteUW{nSKPnR7q8d-zlkpDm+Lie zotnFvr_N}u>K=Z^{rCHzweH0@_A3vg{5&6z@9`@2FTbMvY7Qzd(epcqyj6#PFL3=) zRqE%W*SYrZ8Sej+D)qPWo_PSi0Be7l-rF0&fv^eAfUVtlzpt7&tTr(ZJ622Un$;6q z*GMeF5*)r}dfo?yu-) z!Vh69@d`n{%h@^BdES@jirY;5=zL^32Zz}?@$=&KDxP=|_SXb{%K3}zbzYQ-7pWf84)x`(t+yJPqc#H@YuwFWn!}YhFY=mbsugQmwyo_G6W|$h^_~@pyT3 z%9_a5qw|@xTWAJJCPpJ2(?y1`^M5nnti+iv#=c}3iYaiUcm(6j_^;7knb21w0 zoQax`9mHG3=A`DO^6>bICra;(>~rK9HSqtUqtmy z^!)U`(mu*gbo~JQYcA>ib8GPZV@Q?yZ*5=YSKr$_pDygb&Otf7`m{a!;NJt?|Hf;j z_xKiY8#o=d!J~eYbo;E6I2tyuo7Q)&m-vM7wC?HoL^uT&VaNLE^ZE@E>o!Tu!p@tq zhQnbCY=bYtx8Uc{>s37+)aCjA)cL(dKReM!uh;8Y3EdX3j=Hl!{k_p02-RQNx&LN# zW98rW$MrfVS8`s&4_SW#S6(~qt9SrwvBX;Rb9V>lPyC3r==OZO3a=@iHHU!v1~C=cz2>uc-M z{)lU{?hakA=e_v6k@=?k>H3Y(RjU6z`qN6Dkx1Ghg5JK2}hOZR}{ zagGmyMK}w3JlQ>h{dD*`l-elEKCumg5x-)p!(npYlw9dsKQH)8Gjy?L%Vp68tE z+`3-pZX4!7hB{UZ>RBJ1xDo5kWN!iFcNad_x$Ym_w=>b{y^>*0uL-lT30kON*o@y6I0@=KA?khM@fA<}8}_pUKjr*I_EG#VsXwaM^VR#+xe@Q% zX?!ot1oKY1KIliIm!0}5&f~o)dOn-sC-Ucd>H1@*JR8VYaYVP@4!g+S_0kQ-PH~1? zybr0!oFC%@{OrJs2eU8VZr%*8*!8ooC+z-{1w;QQpc*o`;) zH3PlkOhLaq=XRao{7N?$y?gZzh{mL z^h0_6J2(tRdi}ev2k&41?*`tV%Q&}J!9T-?VG(`^8@Ei~j|(u<=do?VIn9$2$YP_EmhE=e}Q`lJ`RR0R8d(>InKR z|Kdz^vjac!8~KauBfZz7wbxY>-^!;~#)!HkMqqa(M#G6=)3s{TY$y*%2I%3Z1RK1mQPx{dm@W1Nrlj>yHC|%X8naPuTZ`a4Gt_0aShmkzWg(2;HCTHo<;NxCfNo zl)!#Jbc3PqN7QdUKb-wg|GnSpqv-j2eEAjKzuPyHx6W;eeA=PwPereDE#4p0-xWV~ zutR?7=L^u!Q%$h{iYI=6eMjI&ej|U8eWbsgI#sXNz;_E z;GXFIME6DU#C!2GEr{dsyq?Hj`MF+kH)DRO-Wuw4eb(lnbn1`m)kkL&el+()o$K%S z%^b>)?91tEIL}T$_x0$Cu%vrn@m1#r^k++`xnT0lR6f@|(mu4azpj70O1kimyKw9^J-S$fB1~?aX-a9>?1>b<5z-1cK=iV>XGmE-B|Nm|IE}*~b z(qFIN>)Qm~0nq#B`a{rN1ik;RzYJXw`u@3I=jK+#JzwP~ z{uw{F1#vu{`-|+ApXvMPgk1*ng>lhS6AH^5@ z;CH(quE%$Ok-hSD{m0ZD)$jVHc|X^{Zm<^K!+YlmcoyeoVsL)S`I}ayzbLOd@_Pz@ zdOv!7X+wSYz!yz{%VEpe>-%Cz=xPav*46{(tLdwy8T$}^u4l) zf4}6Q>nEYt_fGK>p6lN|wfsA0Prf&agION|&$sVY`hN9Kp3mlc*6VO{z8Cd|yTaXr z?@P*0ycfTZ25~*U*B{v{U)R4&U!wlFz9-+;w}k`XV7Rw^Z};!-S^C}xf5E=53>)a< z_HakI4;%^gy;gjQ=iBf-w=Z0QzOMvtg|`R$p?t*~@q2p^*W-J?B75cQ`it$~Io>bV zpH1Jzv8*qIuGjNx`Mf{(NcYP1m!hjwFI^jUD>KJ`3;VIpLxTJM4t5_x{dWuH>G?^w z8hw-BlkmS1_oyDaeNXK4@6ICq(7(T2e=~ahyHnJ^J2h9dZ#m9+9xhE@ouJPBW~}>g zZv7nZ%kz_<{v9X2!E^ol%+LMGocEi9dr%1OgX$9}5$Dbz56{Q@7uhR+*DLOu^xgaG z`g!QIAKri0OXuv(_x{U zy#oJV+g$Z{>tk0B^*t>gd|#7pD0+QQ>BReXCFYFgqQ|=!JNXdVm3fRnyYTO@-@tDCcic^&>$_E{mtXyNZm|VF-?2}M zJIww&vi^JWvq3(4;b$ANh0plZYGD>w4+*@8mi3M}2brxA@n8 zCoJ&2;E~|_!Oxk?mFo3BFL3&QcTrr=?|JeN|HgVoklzTtckAELU$IZ!gZFhymHLBu zPw3x;v+%Dtp8wHR>JQ=lqwn3jkhi|~x&LFT)W3&b?-}()aoqoxRqD6pylF1$d(T@z z|97iWumA43BmZ-1|DPj!{xkVr^E&(heg?mRTOE-8yU^C~T$mY}p66icptSx7_Bc4L z2f?G@XqY)9eLfNPI5e&M!_4o}x(474{Nc=TKt%`xR78xbeN&OuCN}K>rVllrIUG&JeALs#T+lH zPjNlJd+Ea~@O9X3{mGN}1UOOsGKY~L^*izt<)^;A%YJGfuVp{`a~}smou~IWPal^# zU(euYCe(e?xv=swpQ2lfd8K`Sk^R^G=p3A9*{y^9hHwX1hh2SOzYjXi(GKph&aLNr zJbKMpQFB)Bxkl#ILB!R)7Im+6f2Rid$-j6uy0L*@_wV^f_R7cglc_hV&-Kzd^}f;j zM09(-f1Gu}`=wy-1)u*u*Hxz&#aBG{?|R*nGs#cyhhChcMmSvO${fgU4E7hoo8UO? zCIof|_HG1^)N1QeWx6I|};uhc%%45$Su&Ca@RG!rkCu@JM(L?0jUhUl+C? zoz^YKB(}kJ*!kG>yy^JFTrRN)Gbg5XJ8b?vI@mfQtqZVjWLh^uD=*{u{%^}~C;Bqn z`ZM4->V)2}yXjYU5&Kmi^h^7*0{gTQ%>FOSrwC$C>|bzT(L?~CmJg&%QI{e6j_4Q)S^kH?oz@yg|^xwA3zM{Hm%W`?KxBo1LM z-pN{QI4bGI;jG1TS&KEyJ+U8aaR_ViGS*@nYq8v%>R?`oy0@AWH`DKkQ~6x1Jt5UA zUd~!v$hsWALAN~TTr4-|H(|buKKF++??rzPEX6z%{k?DrpO1%=gZa0CoulYH-G)x* z$+;@$N$9^d2{*Pl)cJ_9C|-aMxTfJUa9lq`Y~1N(y>wq- z*T8#X5G=uY(CuaSZ|r}@dw6xIe@DoV+i#3c?{&Q|)i>Agh+gk~@id-yW?ySzCwq_S zeb%4ndqBP4Jf8fE-O+Ct_;vs8FS1uYu0N5wqWWAfoxTTY?y4`Ym+l_oiuxW{#BLVc z*1qTX_Z{~yf8wFo4-5RrUp}ZWvXAt8QD0P#=X*GMeeV_Z9#$W{FYWZ_W%AbdJW=2G zJf8fEUts@T;HR9w$i7_sYpL7o^L+0?r+(;MsD9V$-wRIt`@!}4zAx%~fT-{5J%afw zJAKb;VqZo>*=eqO{0F(Gk-h6bnLJ!fEgyu;b*UTlo)(EpXatX`MMeu>pGi z?*E7S8#p?}I}H}#il?UMIq3O5NZy^v+w-pr@|XXq#JL}4mTq+T6*TQ|chvHDyqTef>e{l`=N$k&B)Vc9{p?mGzhx;PtgZr~J`HS1J-U)g?^?W}* zucyu|bbWtxmFlG%jNQTTB-l!vLJ;qd=>7sr=w1u-m!K2Jv%U&?J@R`ypV#46eQ^Er z=stw|vkylbbHV<+iQPQ2KRD1U&X?#r>^K^I7IHP-``_oKaeowUSOa41S-J2*s&&T6?yh{Dcuk#4@Npb3^XMMN{tcTi1)ggL4 zinFNx-JkrNM84`nj=YqI?t$AMgI#3r`bW`=Pq2Oly8bEl_XRi;w!`^w=`+%NUk3Mc6I#_@m(DV0vmUR3%)Vl(8Ho{3~r8+uO zx7RTBiO|P`~00BJN-~@h6VoOdi96d@i!{u(@xTya2#?M*S@9*=m1f)~Ea{21sJ16}yoqzEy)?yd#jkp7AvD`gA z?40CZ9K|}~d3+vm0iTN*-A`C&EH}qK=NySO+~0`3`P|va^Q(;o)*Z0hxYUo;18%@` z+wP3^t%LcUp$}`q0&IhBFS}o{zYXXH!C9~)u$SHH*sl%yK*g0GkG~_j0npz&u9t2f z^i41av+T3>*X>V1cRD-=UJF~XFF?1y51sCTsC%IIL_7Dj18QHU+qv@dwJPUf4e0R| zPn?gxPXfR0-~C1QI_Iue+z;qO8}+GP*Gu;Wdi6(kuKy1@_0#+3`d{1J(fm1)=gLcd zPNuKXeXREWDV}&a{;v$;D6a0m*Av-Cdd1x%sMq~#-a0jRH9wu2r#?ruUXS~-A{@%_#)IIN@uFk>yexOSI!T3Ab{ObMT`5arN zeh_&Mg~MPDo&qn2SHgQ?!+GgFwjZpyAg!mtHkiFQJ#W7xu|A*J2k@2-*~`-N z7U=bQK1(|ONb0*5w!>Z*rMxFXuYW!2&R1A}b5OtH%_Z);u*Xjvzk@s$1o^CK=V5X8 zL;0+CVcHk!fwfp}j-A8&5?fhEe1^}R znu8m0|3#mRllc6WfcFRUL;Kdk{La(Y+hLZvo1mW;+5H9kHtgoY;n=kV_OiPL`@7(? zP;uqQ{@q_>uXFBt#XXHaG*O@Gb-i@wqE~-p=lV;~ zsh{3I*WZf%CF4@Ox0ILsENA!7?_;(1&*QF({|$mT9?$EE>@_c3ulTP~zt`(}&0DAD zuI8sRnxmSh_j2zZfVzh|M@~QInwwF+o}cGaE`Fu)6i4(p%2V`w`*II;&-J}`VlcmV zt5W|FdYxnW)%(Nq`KC(!T=M(?E>PZ=r|$z@;JR=FxHD{n@4)5>$*%JiiM6mEW?}2Z z^m*OYi8+|LCav3H_S&@0L$BBKS<>;RQ||{*^-Z`k<-HJky@yk8HmElj)GPn}=;N+% z+!Bu0NZdg|{L^iJf9!e{{~U|oNM98%S7m>@k+T?CQ@nEd>fSo98lTRuIFq&b8EbK4&c9ggJzVdq6i?iWwYVE=aU5&$O4i~$)}qgu zBIiVGXB{zP=V&ADr|5HPDxW_Xur0XX+J_qYTV&tgfH|w%_g{8fVZRW&ZrGKqFK#cp zt+C$$4pBbl$L)WI?l|c00oO}+BKpxV4{O+$I_UPdpwqb&buRtAQ=lK}>v%f{ejeuV z`FlZp#Sovcenq!(*&S-9Fetp2bTL5)0bS|9#b#9qo zQNEs^=Tk0zrSTL;RGdFiR{<8G=Uc5_arE9$9MS!s&b`%K(D%+M!Mr}NO8rOdgYJp^ z>V4t)d{d=<0eOA{J6)IFt2J;nxFzfj2f|tKGg!Dj**CQ&4u|c3PV1JN5=*c{>q+T( z?l0(IJFJ_Wo_oEX&ytScmHM`YEpX-yDc=U__WGw&cRh8N%G93;>Q}rm#2pLUe&YCf z@|Y0h^N5{?#oZ6(Gu`qjun&sg`~&x65OsNdilhBj96!&pKOR5gqWb$Ie(tt@D<6+9 zo#K_tSNGmI^H1sgiz_o1#6GOW6IqMp?(yX}Cja6j))61z^N8I!2V%YMCu}s9n`7%S zx5O;#h)43dvxVo+8GSDHV?OL2aBwg`v~P9nS3P|i0Nde0=;uXtyI?;Y-5A)JzSTju zm)-8z?*os5iYq^E|9f<&Lx1nMUb-{UkAtl+N1obWx4#+P?eJds0xV(Q9@P6Ubh-zk z?t$JDHT16zYF|EQKIvSEI#;`LPWFVJzv79jp<5fupHu$bUt}NY6?YBp`$FcD>UICp zt&d*)k)7)|v$^8^bNwDRcTQw|15{q}Gnqa`_p#dhr+DI%_9OWr`zHe~9 zbe!>6S8`q?mZOIlBX z(_jg#VePu?ya-W&8e^ADAwZTti|V9i`Cx4>C`8_%vzk! zTI|6-i@jNk<5-J6XPUWpVvFu!z*aryJUwUhIW>s;dqBY9!Tr`g6qu*Y)O|XvvATW# zW%n}n6S12LbJiEPm))z_zXiWiKG@5T+y9Jnup;#Lfa|4O8GS9RhXvwk|J;6ebUK%! z&ZWP18tH@j+SAT~pNDh!{Cw!~6;B+3?x4W0`*(klz0RlW6}N>xc)hMa51sns{c!yx z^t#vLzj?0rn*2<*d!c)x`%&$EP(1NT{67=K@pxWOWUu^OuedXVdR?#i<{k$>>teQ4Xe~&%(>M)kzc(pJfCZ;)K4JKYvCkVfDgcbz*pesaP-~jy?;3@-J8~< zrzVbrnQ3X=^k8BE7PWpTJdXoQ8*a{ciM?Lo^dVSYYSBAO@R$n2g zPyQznXEL0(gyR*6J2i;^26bycf9!e{e~!f;M_(1MzRLcNB5%)Mezjln>*r7Q7vo1< zRDajw=kM0f@AI()q*J_d`RZOePr4_aTX6xk#_c^-D>9Ek&1JEJ+J`z+RQpT*Iv#XRd0TmZigxZESm72AL9 zW085QdTyt#5}XIkJR`e*Vc$+)zlELYLmhN`*}aGTC$J0WWg&6p$L)WKZcX@K?+G)I zZf*2EU=}uzXTKod-O%j?2f^c@@2`c=T!HQmn5R!upzCj}QZK){ccSiH3vm>;jkWe| zIQ`c7_I#ctpO>KgJ748<_b-GL~*07Iyzd7}u)BDTm zb5ZZLD89#Y|CRcapI?)|{D@7=E6pwCC3=4D&+T2Wxcc6pxc!6oVI6r&zY)4fFP*-J zNT<9!pUv=Jss2TqLnY4bJm~&kty13?Ke~7FtM4Q3fA=c&z4+d;E$jyy;Se|io(#vs z+DFs(o-JXnnAUZVCuU*c$+XTrl{gK~g&nZR)9Lfh&m`8u93(fd`YzyIK83+uP+J-&2`S1w=8fj=`3#M!LH++*o{ zichc>-(xL)%v!AFK8YK$7Pn*_aW6g>%gu>pr>A@?<+|wWVUuwf>mQ3};V%zo8#`Ew zU$c(5D(ABf?ouTWL%*nVemwI{^tr!9F#mP_nmKRnobzvCmb$ece%@s_4Etl@IZ*p4 zKW={^x;)hRbgs$yTi4F5@^b2&sGn{0x6=6K;#KPZD(cd`)_cC5IqLb`gI@Pu{D9}O z)Axj_c5Zc!b#C3i{E07N|8n4`oWICEivKosMD=*S($zB0biewtpZXrunfH#{%We(q z*M-|a+0_R2JEQ9l_l8Hxo_nY7T^|2bbehwm=Cr=&>E7*O_gMG27<_+`Kk*`Tmj-_1 zuMqf)>?6J6zDS)#=0*v6KcssFz3P{p>)X+(U-GMdxnA!(=hyhr`^$N#<_q^g?<2h@ zM9q0ob6f1roZU2-x5~@&QT%fDveSH&o!-Za8_j#Y@11(@`}b>aiJGxdijdBh2PF1E53i>$?Rb8I~GODwRC_zIspH3zrm{);{r zr}FuO0iOxxhxRSc{BGr(JOUf3dpPv-BD?#rpM~85I2yZrU@yA|v40%ShKegc9{+80 zA3}fcxL&$X&@Y5FoWFMR)c(5tYUtL4>%nbdmif^L-F|;`x(A}}f!-4>^e+#!FNfQ? z^7C~+pFa#ezT%1Jp}REj>;BzeWUq7Xdd0nvJ`ATm)$4lcu0XH;$j=C09OWr`z5}?2y65`dJ0+OkL#ot&hhFDc ze)azFd{!WCrTPWvzk!|pk-i741XqQd!(MP-Sc31v%qz*h6}H2Lu=A|+dE={zSHG4x z3%(6IVBPEK^JaJzta&3n&%qX0^Uw6W4whi%&Gg*+<@NmkE&s#l>p1K0fZ3_u0*v~- zsQqkLU#+3q-xb*Bm0mH4z|E8 z?Hu}f^n4Uw+#CD-0zc*aMfSQ6QT)xR-|KVz*67qPuiy33^~Y{+cmmY-q&)Sy{mJOg zk)A&1q3fk9pqJm<@$dKF?PYf__7A~-z!HAigM8mX_c3hc{uQ9dlkPM0U&CKAkM+H= zXYl=IQ*@g9VvgsEt2v-KCu-j1@PC=jJv4w+uw+;0PAh8y58rHzd!Z9)Lhj*isk(MgFN(}_c`YA z^xhQRe>s1y*Y^Xb;<|oK?wRJQ{@t`<@c!MfO8psj?&UXnzh6+Lz8`t+2?xPucoaMv zj)gbD9_{IS-cGRiR$32#J8?A3!&aD?n?7&(S7He^znj+Cd5NvC1A6~GpCuiCJ?h!h z>Ra$m%D-t&qSrf}dRv2fOF_Nr-z4HqhVzziyaI8j2JzpZZtd@nU9aNLvG@i0s(7U; z`#XxfJ%9Pte#x(&N7-MDA8}FrU5}r?TR)YL$Cpm=%H^wj>->uQEcW7Fi~F$_FJLWJ zdk@cH9*9@47H?)P&SNcp$y)5sIS_RYHD~HL7h+cDBw(|ib1%;~`kd-EKi&J)1NPv# z@1OP|NB`@nt1m2B-EJ?tE3j`uKMK}cU))}HS7Uzzd_ehNFF$Vo1iBZYzXx0|-Am|a z!48-sp7zh}e{Sc}&!@k4YUqRd`Z@k}4n&=Yo!R%@p~qJ|aW!;nLiuybzx#{qBfa8g z>4Vqn{&%x`>-}*3FuT{f-w*Lz?=|^3((Z-siS9?W_d)T*v++MRh~x3Rp2%MLxn6N6 z1ogUJ^UJ9@rg`Oz=9cEyo}AM`Q1?RT!s+L>IXJ({)ARFu%EhlVp5lm#^BwoHM)whV zf2-9ij@}!JBf9@Lh^x7v@1324c|E^M{a&0~-4prM`@-`XTBUvvc@BlcU=E%FFNasc zdtt+S>AkfdEWMxBqd!O-2U}qQ)_j~k&vzuY!`vrn-S}x@0cJi+Yp>VyS<>-)QqNGU zuhT~<-{H{fok6{Ypx$=XZ3U};Q;By!T=?OVjaMY@Q$hR>sayN|W7n(rpIiJQeO0{n zD*HQzygh&U)qcsZZBIt_f5MNrsQ&K6&)e2d<>T?CQ@nEd>fSoLaF4})ti{7vi`TFg ztG$QgnFr!uSc?y^78kM>mt)_>Cf1_Pq2^3I=R$1MISH84bMEEUMxRsNnO7SHYzXF= z_MwG&T2Gw=V7t}r`!Bn{U_TuF7?`!bxV`Ld!Tv7ztn$HLe%$`==-z<-9&o*MZ=s(D zGn}Uu;%Wcfesw#Sem?!ZQ%4`v*JbP+_<0z}=LbNKuXy5y=r#@fx_|c<+3S3|UU3`g zgV*c&A?S2(y&tY0glJrW zP_OGXznq$5npe(fZfSlE!J6z zTD{`vy`eaw`~Q%*nhW~gSsTpjud37^%(>M)kzc(pJfCB$)DI)iW8o;+0?>!pU$t z?EiWC9(fpSUy#=0zDS%13$O_5zDl3Bex29>TmGHa&EF&zVa>N`?e%&-OFI6})N`!W z*KJ|ScQo{R=TL7ksJDZ7A8YYh)?#P&SzML1IGnYpbEr9!bf2JK z2x~Y`dE#mR+=>ESYuI7TiclHS8brV4t)oK~fN6nUNo$G|+i3f=?n zhcjT)cj^1o2-xwTw4Rt*`v0Uh1r}im)-RntFD#Ro>6DmN(Bo>;AKp?>Ol7eooz`px#VSulhHWc(1_PB^|q6mgM^v2O zQdbr>Lho<2dd1OuLvcj+zao9oT+sKsk34B=V?6;E`+%i)AO2NBsRkqt!vWr%*yCs4i=!->-j9{_%~7C z3$SMSl>e|565F8HKajeM71o~*>Q}sO#9b9O{lxL>$fJ9Z&j33Qi@P7nXQ1VirT>cG z@dNi`E`9g<6i555IDVdG{~dnBMfLX!`n;p{Tlsi==@hSAzPk6$VO_Wf@CM_vti`3c zKVrFiyzWZLzu1d)#NGHj;#58ti>$?V)?&Fib}#cxEU}LGC7(NMxc3JbeJ;-A^H&4D z%X8mv?OTEQUF4j+0dv$n4!XVUUdDbQcHPiVgoVIfcCTXp7W@h-uKalXpK*>>g#O-f zy>u(1uZ8t6!~NI(x_uvXec{ext}@pX(KO`Ji6cYu-9FcQrqq(Hzx0ox^;XuQ|c} z(K&MZIoI5b^7Z^YpK|dlji)%G$5Ec5=X)IYQ1`sRIcS5fKc!0jTKLg9mS4R;-2Wz3 z>bw0iy_eU3-C;fK1NVc2;Yhd;uChw2mrn7@<*R$| zT);dKH)k%0Ls*NKvKGtT<9nDV;!~_6&gS!o{Wu3=qwXin8Fg+ucW@FS0uV`*GM!f<3Uy2KKT$8v7IB zc~EiX$Kzjy?mGBi?;SIc?gsQzU=ilYQ~PV?nP<_x2xq_#pw2^vIpX%q+CA|5p!Y;Q z{mVk_OIOZ;&XuThbtIo33q8K#iG9%R5cqZf?k}=eKCV~XZRtZT^{HOhOScPp^+$HD z-y5Cgiucd;$DqH|_&96jB|p#5r|3Rbd;dJ{JNSP$h@-f=|6WgIAL$kUnxJ0yuX*d# z+|~SaHgd0W0Y~!u6sUWsbL8}MK9+t(`FehyPr3M&##0>8<0wzj^Zk~&p?jWXZZ`$< zy9;$!s=ovMGf;l@{_uPru2MgVJa2n{ZLD_$?+ z_J*T>;`mwe=ojR3oSlco-4Eq6((-Ah|B7G3IczC&9;5x}L|tB=;%L7W$Ir9u*TRpu zsQxy?&+n|?%E#kNr+DS^)xCF)Su34?@p0DTeAeRH+#j*rJ>F^EX+}g_N~PHZs(kQ3-k10 z3UqtfeSv)~x?XS^ECu$m`x^VDI2Wry#g!kAzYe-hp}%)rFWu(o8(<@>W1qFZZa)Ow zLGW;R8f?Knuk&IKu0W@IAnG3IJyE3pC8&M5$eg<>DqWf6w{Zl+~ z1pZGB;wY}}ztsQdVZcy zx%idFQykIbC{NMzy@-3Ld#?FDkMrRAtE$v*ho8Yve)axv|9e)c@5Os&Ti6da!Xa=3 zJQN)rFRHM(SPMfECejc!v=e~d1 zhi3X;LtUG~qSfv8vO5?1{^*CnI_rzu%kF&aFNHTNAMEAF?e9kS2=w=W>!o`feH(0t z&BW9Gx&7DZbS_1mOMmZV=!5z?2md+;qRvB4_I+#U@fA<(f^J19e@^*#f02EpSKNB; z-+$F>0s7dz^?sN?)R-c*LzKV2HU;RJ<5>V4t<_pDOikN3)+a1d;UN5Qk< zSa=icu|;}s?F2JD(|QV=2J3sL=cR_kx;}|nShsar7hwt3Z$W&!{Y9T^6AjrOukO9G`T);YF7v@gHQG718uohcci{<9nNamNAXC3i=K6h#kuFm}zeJ)Pm^Q!|+ z4(5mUEyw(Bp^w+Wdg|^E{k+KT3hbw0Hxo8tmkaD=cQy7mzz3k>%8$o?0^N(y-#f0C z?j`iIUUet3R@H{U6b(pWZ*$UxWT}<0q_@ zm;8K5pL7pJ-N$P0pT}K=d%7x=f2ZPkJ&}E+SN!LLdfmU~ty6PX^V1p4QO(nvxOX>0 z-9w!tr=N4p%_v{b&+{o4ztVV$BYGU=DSEz}a=vuWbDV>5!Tj!1rT(Ajzl8Fu_lM{6 zL6!QM_Dc@S^_WEz4?i%VYl&Qa6eXs^7-Z0`G38(zT@pI%c zD#+(LI}eMyAIj$@%O}r1D1P<_?nf``^7<4<`>i;(of+Bhg&%QI{T+gz%dFqZ$Ky+< zc;)idy?0LSo6f)Z32SjR?v1z)Yq8ut9*64o1dSkgcwhZ@G ztYaNrhq3DOh7T8Fh+F!Rn58Xv@JiHASurCJnK8;TI zK-4|Zd!mE;nxTK%ml@0_ohwo2Y6H&2CORKhfZ~Z?;cqGQ^5>L)bC-$iBfa8&Lmy^Q z=lAtm0O^)xKBzykGkNA0HdnlVuHV?^j^@vqJpVo~_F*i2itb~z_fPS}8}UCmh@-gQ z-+wD8vXAtNdtgwnxzA|cIyHASKb@MVK1a3g$$jYq8==mT)6e;?^ef8O^YeVl#jiA; z;)otcd5WIzBiu*bbIteKV17SarT%#OG#1LQ-XEUNX;tcnk>{~+6l{U#!5iUZI34!i zHNDplgLS*5bsL-o8~04lI|d|X_eyMr*}c=c9d^LR#`HW7yQ}r4#QhRB{KWAyyQlg)LChein8M;ArgffxYY=#Qt$O8!E2+c>K4~eF*)%<9g{nLB9~z zaQ@oKQ~T@otD##Ht_Qb;S>{J0bo>3$=^lu>2YOGm(7!y?z8r4n%FoyReEu->_=+c< zhwjqAulsj@k-g5j>lODx`Y@dORIlr$y8^xXBRkh$k52vc{<;1k^luqg<~^#sosqkn!B2x&S;Kmo=)f9JqvXYb&i~V z&NVlqd_6zUr(FC><0+2lag?X%`3~S7>YnR+@04JE52;fB9eSN(`PKWw^I3tomFgFu z{|0v2Cw&j7fvdqSVQ)AP&Vrx8!hXrVX<*`T*uH;Sw=^Y|V29R2((~K_=wLgnJ1{-> zdOe>d9ltB}Z3|oA%t0yN2I}_ur&D)5b(hN2p9$($yfMTb3)_C;_<8b}5ajcSorlHU z59Kr6@+q(nir@SL_hS%sd3}nb{Z<@5&$2%rKjNbL`y+ntwtg!gk1w6#mCIN6-Z^vM zbpFManG0ec*5Zk*#d7!f^1;c!IEi({2lzZX*tZAu{tKP%fv9_+_e2f-tApB? z&zVm;SEA0fA<&JM|#CwgZsXaxukmCzjW)PSAS&Z`ps;v zc>i3#hs~W6S>FJam;6koPtkp>_WmiJ_$2CJ_(Aik7%pRQ9^WZ|5J2XA7IV`am zwrG8LdY&1E4(4D1dcB^{l8%29^}PUV4oUeBYffx~UjIPqE>>87KB!;ux)FC(*z^;} zuOpA{K|TZQJS^^hD4&6rPnP~Ge#Z~okGb^S>r))455f|0pFX;1*)^FwG z@ugF|a{21sJBJ;_J%BeDpJgpB#r+Y>-Q#tCm;8&pSV!EA&m&IdbFs);Y-cT&n`8Gf z&%_ezh+p!#vxa+rfYImTOg?`#;JZBc{now}nBPUt$r~_7-Q%F!%kE|D7h=~9{X|#@ z>}B^V_HV(jpyJAp$Nw4UXhrDn9oI{@GWuFr4>R0~qlVPeK>n z2fZg+>0<$EU(T^}<>%`aK7Sp0e2;rGy1N3u?%(}I_B!XTSNz-P!#L_wy{?z;KJ@C3 z>|FmCI?WaDpX*;kuel>`&OB0H^3&Vyq3)&bW3~5B@x=Y`KRAfv@w}eMUirCRahDJ3 zb-m`TQ*&4I(;3ZC&C@x|hxwWl+#j7Ir=N4p%_v{b&+{o4ztVV$BYGU=DSE!gaSwIR z3!H;C==xKt)USmfon!gc`@{WjQl-Az5$V0W2J8;&VIR0391KUog>aQ4lb_P?#L-73 zj)R$F)4KJz#12?6k>Xe-8CGR#<;s zP`~0$BJN~3?wn*@7cmksP?cQp1V!t zuY6puxZBc)TIy51u9t2X^y-i7T)#Iu%@yyT>yJTysqt~v%1eHpp-<6$toHtS+;{N* zZV*Rtb^pDd$Uf35{xw0p?qBoPsky89>1^a)q`e&g0>iyyQJY1!I5_#SRr@|t97QO@D zh0C0nz9)}^H^Sx->3QdoiM23)Qd-xKPHcg#TAz}h*PV(E=3xnXy`ImKjz67xKY;br zJ7!d>V;=PSM^blth4mML`W3GiaeKqjKXLpldGrhNInK_*;_ip?8EN@6(|^UU;T*P< zIginPbfPY=PjR&0isR>5_G{rsTvUIX;pcbOZ{_3hrBl3e`Rd*~$NWB>fAMkF;(XTP z+T0(p+&$ju(NopNs9R#SG^}EH}qyaDK!N))80bemm=VeyTCgx&#-% zuLCakhtx0MZ|z%&`Q6Sr`4;Bs!xZTDvik!2T6DeOG*}AkW%o7qOK~n%gNiFZ9)BHl zn?ir@xL&%=(Ko4*DLM|^kEA1sb1Gh_cD6*M|Q4%6P^0${d4`l z(QEFA`!J7`m;4Ooent1O+WV(?;t2eo9K=yv-G8qqvXAtNyKzvj``5g6YVK-&I-@zN zdAbbur3=(O)H!ncIoI5b^7Z^YpK|dlji)%G$5Ec5=X(+NQ1@K(eIDn*^;cD?-wr>6 zq5SIo;r{omQs0aB%(k!}Y=lGL2zW9a4{J|L@2M?e$LVQ3@r=YNuQ}s{i2Dre{1eA7 zk;lv+pKr-e=V5X8L-{Q8$Fwi%PY35w@mqi3eoUY)uTOEb--_esS@w6}M_g2YkKyN2 z>$mdp_|hp}xqNl+o!yuN;y$d!Q&@|4u@=kS<9{$u#JQ{^e#Pezhj9+X9BVPpTGY9% z;k?w_xjCHqCAP4RIGN9#nu9;*{);{r$ME_20j~_^hxVm zpgz^>dg+cpul~r+^(UayT=D+7{sQ!O8Q)^9yyWLy`lNd(>ONL`|2*!}+|%Wt{5uuT z>xt|mz2ZL<)a(8=Z=IUEnxD>Sj%uEc=iXffbq{rpoPN$VH=}$#KhLLJ{7T~~j_7fe zr|9{v$@$VfZ{{3~4(9iURqFqW{#_`)dVhF6uUDymiacL{GhsWN50^eSeGgj>t_P>U zCt=IDr0a2BVgoE(kk*YCCAPw%))%Me*-OyD0_=cZujjL*ku62g8X!ar|cT7#8Gnk)4Od-4Eq6-tuW-9~8g-2ku9A>hk&& zNBgZfex7B&9e%_`^|v>E&a!@gpN}OVo#K_tSNGmIX>25qtBwvytal8w;#EV7Gkg$Law$;JIyg zM*G&m{LavaHDLj^LARIPuh`!Pbc5h5*b&&vZguR}hJB#o%8$q25#0dj?;Y1mw-5Rz zn1fmNS^Mkur=U9>o&&Fit=Jc!+uw&y_dwJ=(0iht``Q7uFVpQ@`T1Iv^RNc=_=+da z$KNM`U-$3+B72>4*DLM^^r4OVRIlr$`vSfCBRkjs2c7!q{d4`VZSH9PoXB(KB|j(A z*XTZ0d;b(qyd3{m25}Tu_uuP@>?6J6?h(}M{xxr%n!B2xPR&!Fqgt=Wec2FZq0W)h z&w20Qyem)7&+{o4ztVV$BYGU=DSCfz=N{^wcTiX7V17SPrT$?2oos&f{_uQ`tx`XT zJcq(zFb7Y8m%}UJy|CfZ^d8#})?A*}(_kCSUXh-+Uzu1xF|iTWUzOG+*bcK-r{^uu z>-Bt=bo`OjcP(s(y(Xl*Cql1(J?hR^SbuX+zv9g$?z^zZPaMC4JQf7`tZCJ>hDeb{L=cZd_2B%idQaQ-Fs)R z%Tk}k6IqK_u@+xqEtb2-pHYw4iMbMSH9n6xhR?-3Yq7vuEH}r_VSb6NtRp_d=T6PR zjky1!&&5f6eoMgngZZI-Yhixp>FezvhSl|DO_@V5v2&bAL`O z!gj51OwXHdLI+E*W>R|Y^?E)_I{q@$w+YO_r>;-=_MmRB|6b~@qwZpv`a9@@*ROb^ zhSlsyN6VZ=`dDu*z+F!T73f*<^CipNc zVqXgCeHoqZfv9_+_e4g0gW8ul%qN{IQRk{R=VDvv`755-1>MR}{+#mf{v!KGued94 z-{&!xRImG&?pNs5pYQF=;5Rl`YOH@I&un9J=TO#{LgghtSJJ2GK304G6i>Vd|Mv%R z6j%4(>xt|mz2Y7d)a(8=Z=IUEnx9V1Q=g++@63JK4K_oaBd4G9!SpN2*Yopy%EhlV zp5lleM|p~#?~B}T-E+M&cU8VjE`gA3fU%fv(p9`zhk0Q_0;24;PSHXMW{cr|s z`b&DRkAU@4(s~x02b*tA&oj3tHo~0NcckYXFmq>GH^Wxw^?E)_I{tX-dl+VJPI(Wy zCGr1Z&+X$hk?Q~dOQ=oBvX8X_yn@A3Ga=W`#A->ctwTysrrrqB2H*Yk0%>-D}l?{m)k zoNHzt%=y2Qc@K_p{=Jp?8*f?Sz68#Af#bK4$10V4wu=3*r0Zcm?~HspsK4AmU zhq~wdjN^J6C-<}Vf5ML(ufONzo7lh2V9J<>QQHvva)C z<;B08!nnpQ_`b$V_+Ab&mcxu?vp#k)eM}B9uJK{MPud4};QY(%i#PNA?G@fz=^w7! z0R4NAeR3!4X5O=5?icND!G0lj%cAdt0~LGiZpZ#-@DXTS{bc+n&^-t9-buZ>rPyzi zU^^T&Px?UGuZM0!xEb6Lc460Du|Ei1?L2r-^i#(H=(>C?_Eqk$TlxMDnE7YibJ1N` z@tgkBU(Mcqo_gbdnL5m7e$F@b>b{2F`e>K>Z=$oWWc^bAWAyeNxfb`idFf}}IEQ&2 zTRnfqliT2byGoplm-DIF+b>dY+-Ipn&Nub;+oXNh{+X=xQTyrLoV#B_&!PJ$nfu(n zS<5%`%Y2%}A8S10$c$s2GV|S=bLcrAU?0qbssCV$`d8q`eXL*akMzGri~3~;%f0+^ zxC(5C>%nc{cJKhW5H9_#;%Dfp!dc%goDD~>DdYZY3rApM9%I;h9XdD)JHA^!&-rFP z|LOSaFuxsPKYZxwlJ5-Wo%6q&`FDlX#&NxkllxiwPvS?8*Wc;*xhd*xJ{ez~@tWo9xlcYsKagwD z7v%Pga;f;g_D?n?icOei~Vf$XTizXbyV!N+Y|eJ;nC2z`pNj8 zMt2&_dnfhkzJPuX9E82(>H4Pqb?B~#KZ5te5$s1R^ZhG2&w=zDcu%xbzYgfSEW!V%jw~oG&^-KL; z(RYq#{4Ho+`ni@m)y`w9=g)ZZF8tqHiDO*Pf6k|7U(*}+l*)Y5zx_68-?e`x?WfsC z9Us7X`5^3t?xSSx^P{L&E#J&9^Jx};tnrK^Gmd%6%=aThfOd^GB%ea2U3yk_|}+vn+D{pp;Gv*BDg znfiK8(*7Ry>HY8_I0~PEEB&DC*Hz(Wa2~u1_W!Wxrv0dJ1{}JjjJxL-4#Hu_x0TPk zZbt`)VB^Q-^UOc<`A^4xlKHN|JiFmFHX-J~t&jc2aC>On#eTxUuIToLdGCb0p>ALFvtTdmB2U*h?N3H`8axwT4hOLx zs?7Hmbe;q0Iq;qs<-9hipX+ir{mFeL-B;_fFW%t(hzS@^K7+rd(CaU$|8Uo++1K>O z{X2D7z&sbvHv*`8G5x{%XczLv3ei`xeyQIe`i}kQcs^g87wd2mb*i1mR?naDbphc*c<#$2?``dp+mTb8dg1TXP~C$Ncn@ z_169$_>trFw*qx~N7T!FGQK+FHOtp?ll&RyNiNU+l+Dh8`?bakm`{xdvTm|=Zgc+5 zqo4eTi1Pq!;CC`id+pA|{!8%Na5Vg+{rAw_2y65A^N-{26Z#E@&HOd9pHCjHWA?=e z*Z3`Z*I91L`saFmmAvP|tzzAB{W6~ZRjp_CG?Lhbr-wudK&-=VQE;e^Kh@ z{CZ-&+o)5mUYAgp%uhe&r=Q#}+TVa5IbMH1#m|ePUgneW)ful@zMh-pshlTy8)Mn* z9PCBDHJ--z^7X8f?2L8GbLx4O_f+=3^Xevl&(TiAAA$>D)>FF!us;-j1`dXww7&qI zb(4$uJp0r?@Mj&Q^>Dt)+Wd_tUrSwI7xgxdG+xf9W?$1A_wLGk)4%&6X`NI52kK?r zvahH9FD>eq{Z;8FFNdqZcDNqg25turfD7T$_ZL5teqA^SN8zNA^7&NQ_uDcaT8P~v zh3mp;a1f5d#{U%E033qDaOR`s`&qF6u`(WlS+AVWe_Q^CQQtYx`X2Y2GVc*stM_>8 zIZ&ym@i%0hH-bGAET3uQwN)j*11tOUKUFXDJ1p`Wjq}nm&ht=Pzvoz|oWF6Mzj5#;bWNI;$On&oTX+KB!o4`M7YV=U(}mfJs2&YOHMWBGf=@@)?m zy_~~XUcy*5>r3`m={fY=pGp1Xg^XqA?@B(hhq3${WBHQb7rnfNv0US!^1a-Su^jnB z`M$<$A1>d^X7|K3t`%K#y)mGAH(M(aZk_3ue_7-0(fSui|b<^8Q*wv5c{huewz8K+1KKKn0eOb zoB68yI(8lO+nwNC=zdIl?d%iMJ|SOBKk%L8I(UAQo@dWzvfJ}Yesf^Hn=;>GyhiOrTrJF`&jeU{>$Y16=*)AP3CJolg>Nmn{{?ecNU_0lf&d!w_yS?JPcjnvA_h-T{!EeK1;@j8K z{`=_s9p$@zQRRJqFM5AxNq=W)=Q;FU=sR|e_#KnKXEHzi%RRB*r{YI{v-v*#)$D8f z*V13sgOlhl&M*C|+YG(+&@S~`p|gHjuhf4O{n79$cs)Fk^K%|-)&BG*_QstPaqnfk z5ZaeBe%jxHeysM!9jw@8yxQ;mzcSC-?|0wL`FpzA?`PwsfBiMH*KS$P-%Qv8GoPIA z^USMepL%s|`0tFk&EhSGzGk2CQm6mn%6UBw|Nb3d68C`jZ2JFPi~5~-r}!>xaF2Me zr2qG|s9%7&$MK=N)&y;aD?17{ID4(}IU%05T%>S8U+fs!&-&%eP$#bmvbyf0fH6Q1@GX9$7 zza~24XS|%R>+l!WL#{ts>Lrh0EN^8jM;OahA20UuCdTp~jHUaalYP(|{1s#Q<0p%M z`I4u~SpMX%Wh`B{vF@8y{#NYeCeN0!yp^&172^?j)8C6;-pW|cdaisgH({U3V;J|s zT*rsm&ocMLg1?05N@rOUVv_QTvCYqKxj4cn>9R&bPgO=3Q2uib9g?*)&5 z+D)$5e-_;r;BcO+2&nFQ^i%OW9rnUGm3Z3y0Q>oH1Zp?8V*dy_&yjtpjeZpAHkOHV z=6TzS&)c!XUkPZ^v#1?1m%c?fFXk52Ca0**^x^hpGPp`nhljo%=TR7qqC?uYFhA zcRSf9U2p&n!ck~nlb-7?_Jwqx^zga+WKv~++{k=>1kEpbC*Nm&<|DISHUBk#Y5xo2 z*6Nk|$I*L_$<4UGJeOJbZtDCa>Smvoo;&Ngzz8t~-?<;YP*Ql&l&Az5L z?pl@kXTIyBvtI5?>yvtQ-Pm=J_u+5^df%nJb_Za8DEtf@4nJvsD!Q}b5bHP$Q?Kqk z^cTYG;B4;SQ!4MxyU_U#l56nZH0~(z`?+ri;XCm=0}jCj@LA}+FFSb;f+nR_34iu87WhWqnewZUgK#fnCtNx+?YAjd$ow_yKqnoJzf?!HjeoSM zy|cclSGNgvTfkl5EY7?4R@(20?sRw-JO{Qhzjm1R=cD^Nv=0rl4^sb4biaZRX z-L>fTt6ln6_XG3;`2BXpzdHYJ(vMEN{CmbM?hpIAe{b*|@@v-R>B{;nAg@L6BkY6Y z;Caw{%YCw-vR@tue;@xB{h614KkCKboJ#zM_}sqcJ~^0`gbIm`*DQ*^aPy6JJxrber4MKv59@^jq@CK9mMN`sec;X zSoP{AgLh$ zA9gLz{~=yc*a>IC*>Je6d_QZY!U5R3avAr-LD;?u{@?&y1Sh?!d_Q&7!f9|W9ELgn zoX>w-{@xrg|R;7lkwFVuUWqKxhLs&a>lad zyvcJI%Re%ftG&GF<^GK2*BHz1GnNY(%MCdHveiDe^eam~^4lwxvCKX_!oHIKYTw?9 z{wtF! zM_}5o$i7$)c5r^ZH&g%G7WMjdU&=%A(@s3&&SGre9^o9hFJv40CG+dV?{sLqc8eM?e`^aZT_iO_hIZl4nGe&I0v0D?XN+12lO7cuBpGNMZJFQEAkaDF8g;T z>uH@`w|3UAKhC-5eTdI*;l8*HX1>28--Xcl$;bIV;~P(o)ql-j+Al*LYV}C{I_SHg z@67Ato!L&mN_*{g!+tM#1k|phVt*{U6Vt^4{{M0>&zLz}Chi$y$ z?7wNR-EXmf1TOWGvfoDVGg_J7a_Clu4fban%y@4^Hw~(@Z>3({0qFf*aXsg=pZWQ_ zAnmoAh5d)&Nw61t{iJU2d>`E{P@VT}`d9Y^`VsPZ4)#ng>(B?&Uc0|y z{~TOpQnBmCPCse?8gx_PLe7Q1!&3habUW&webH0dAL?eKpGQ9Tz&ET`^4tn$JnfFf z{xk4P@U__KC+#mrcO{%pp6=_^52L#e`nz)m>ydhOFMes6$NR|Va1bTIQqJInTt({@UI~%(JIF)tlgsHy?-5t<7{fE9>8lZmfFu z)mN}{U%BqNK4+pEt6tru*fq$zt&;!6=*Fs7_ap4|>p98%zm0CJdUZd=ZWKC?^nV-Q zk5zv>ecyY;KH6XDr>C{3e-?d%b1Ij1921zz=bJ$D@b7RTZyb#7Bk+0h_V0A5KN{VM z@DB7phj+tY!nAMjx%a?A#>P$k%Ujf6!uh`(UIT~VZSZ&SVYtj%<-OJiFM?C2md}S_ zW4$t-45z~W4bW}K_irrxG8}|Mu(473z7zJqUN{P;brjtUIB8@2!#QvWX8m%0|LyZR zm36olTK|qp{r_F{om;8z2CRS2`ej{u;R~Hl2YGD{-x4(66Ug`TZ~(6P0@t&a|A(U9 z4bIbKINtM9Ti@#{^)PPkuRMR+{~SLu>pNC|zsApsu|C>oe09camal#9)9aS~EN^5i z|H@b{$9a^k_L)V@N1i|*mBTM^U%hd&QV;pYH~3&4`zHAJU;j&WBJBu_=E3) zxt`Z?FZ}^dqApWlH=GUAUb{bH{{&oa?Gk?wyP=BxO6Xn#N8?`1c+=2r1M}WYy}BOs z4er4;<6fM^eVF#z9f|$1@Jy)PlY4Yl z73w9GT(X?Gd+ zSHauiRO~jd*x!ZjK{!aB?(2-#m{Rgs4o+qrroz;#do%hy$>S*aV|afhKkeR%{Wfqf zctiNf_y?f-F!bHxIZ6G==+1=QoTI~G>ec-Ky}D!3FCxEJbDyRC{n$MW+gWe-W$Iu0 z`cnUu;B54LF!ky>(H~46pM@90YbyEeh224LggEZYjMt0q6zINtM`eB0%|pM;=4F0s z!MDR*VaB@)y9ePp#JRi@ufaQNIq1H7q@q{%X7neJ$5-J^@UBXJyJELDbRVo+srOOn zd#cve3Hmox{HFi(SF<;t)IZOB zYx7I}3jS_|3wS5Uo!?OQ+rDrV`p#R8cjs&1FX6**KJ&g4HjDqBCh^jL`tzM5*Tdfy zZ~=54OOvOxuCBB1v|Y|2H_A)`-Av=ta{^&u&&x2g`WXv+>G}T zz8|Z85pj|$;>X`lN#FVYo=JL6T@U%1_??pZn@7gac=~VVPe1M}*U5e5{*jr_YpFxc zKJ{;Ae{LCk8{^c!kI(mq{@y#fvVZ5Gy9m0^"xL-!r1U)Lk^c@~|0Rljp9{wMMI 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%0Aj0=Kjz9+)f?0 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
  • ^QA_-VJ-< zsN>I<@B85>oOXKoJnQHDX8bRm-vO-O8PN6UWgX^5{hQU-dN!zM8*H!C_j9cOP+zJ4 zF#J!)Kb<_zgy#m$?;i4d5RSq_|HJjF<@=MYXRKeIhgR3?rOY$uJ4~G1A9XrGCr8%=fkI-Z9emvzx(KdGm5?YXeM=Su#fhJ^T>MFeWyXL2s-?gmc zt@MQtu#UIFKKA7|V6NK;>of`{vrewtJjOqQPs61v`)!DP=EDQXLuNhH{dA1_U&nm^ z-T8kg>lgbx^Zy+B>);LW2k--Qrk$ozE#`qyP3Kzj` z*tc?P_J!yAddBl%8~Z_ifwBAn`$RU&_r50irM>gCZ#hrSmojGtTvDwmw;Z z^J!dO@_7-QI>GasOrC32@?DnwKT+ywzVC{Bdt$wtoyS(!_dBd(*2B2j4|0F}9Q(gP z>#2R})fumu|DSp;VD_8zZ(sZj{ZZcZ|FCcF;Z~37|6dM~L)wOvL+o)XhqQ-MjM&Cu zLTS$=)5sE!XF=CHn4zcE|6eG5A%6ShWMl9bEIix*^81cKV-}8F! zKi+fQ*JrKvH2eF#e!st7*R%HfK0NnxKlkUeRA6zEsxVmHdmE z8=6~{^zo`bXLjKEB6=Te!}CV;docF?l%E(qml}93ZSg?Ti~gLN@L>A8xPtXcc;rLr z?@@oMPY+xo4?Umd@>8Ndhi+}S0o)E&@IF!r zJ>IV92El4{hXwk*(TV%AJ^;FZ`8}GyYaUeb{^a_L(A@?n@!rw^XTV1IID8Jezp40X zFn`wsdd0m@cJ%8k=>D~jKI~^-I0(+*J#H>^`(L4(2z8(P^ZazZbbm&#KGJ-0{p09f zfbu&m@V@}v8qDXaS?Qh)gca05_uJ#it{wIp!tG%Wd--wuUg-3kXk@N6LD&Bry`CfD zB*mlddJZ1PoVy5qMLwECViohLf50R8d>G6_&rkV?o1p6q70;>o?k}>B^uM7FQ9azh zboJOxh4;ZCc{d09eH7huurKx3dzHsKnCH4UkoC`?>yP8}n_(5_SPgX!W619!SP1f! zAH8?z`PmTk+cU&{6&BE`Pd(qxyq9bRcZPl73aIxK@khL$6uGC(@Bn+x>UsMJpKruH zt%R?@*WfSc_miOKtN7w+_&q0xtM~=}?*1bCNZ*ZpNBejGCsIH0RMsP*>-G7s_`B+w z3(os&bfxO0y8}CYZ(l@zF5x{Y7t~93_hbJMd=)lf-{QwMxCouzhnwgd^^wVQs&jAZ zz7ISCs*m&>aQort^j@txRtEL_9r_!f=6Z9Wzp6~V{OY}4T!fzn;^^LXXFh389fd7`h3Er;`L^l%Z`@=?jf7lFe4G)HgLyvzPeoi%iYX*A7 z9gDsr@10u(@1N35KtBSVz8`r$zd~24Ub=ehl*dj%KGHpmeht2VZ4KXp`hMp5y@{Q^ zS1ZomLA({{^}So%o$pIab<;5o=aKZ>pXsz zKi4a+b3OK<-&33~@_UPZ?{E&%bKC+dj{A3ik-h9TBfl#0sD<)VWUc!k>ido8-(Pyt z$D;aB_rkW5%gV>~%6muhSDyMELV1Z<`MLis@f-Pfy>z{?TLLSnpX+zw@1^RcJJ9^< z+}!`(=t|W~HyFExQ2TKIhw%4O_0jK@zr|1V`=s*l`10rWk$yLRXA*a3y=U z1h0m7!-_fS_lipB`TZH)(@?+5%-3_p4D>t6vCOR#;jiFf#5pF2x32wes(YX3^XNUK z2k#Sm!vmn+OQPRDv*OwIauSOK-c%+dyBq@KFz+D1pD8sOuc?*YvO%Te%B1% z7v4sv-*KeVdzR<_NtyaXnU^O(KNt5uv`oGJopmDr?pm~eXV$;t>UVRGH-WyG1gF3T zcqe=uJ`LZ4BmSK3%SEvI@w6_&iYL;#JM0T5K9xSt&rh5SyFQcFRj@yt2%BK;*`%w0 zb+8dO!HLf$-89(!`LwQqUJu{j|Mvad!Z|zvRsZo%raBa1bRPe%diM?Lt$g;OFZPA` z|Ka)dC(nUFz9$C#-B$HfzQ3}38|?nA>V1mNcO~cO^-x@|hu=rpZ$>@ERrS{mKS$a5 zC?Ah6o#JKXt2sFIFX?`XSFjfEVJ$9XEq3I-isjCs`Rq?@W-YGybjq(CT$?@+JF*tr zdQRv6n(`ITV=WGSnR>&AjW4kl&wVB7#j99Pg?AY@do}6BU$PdjWbOSko#*1Su%3F) zghjXly1ndP#C`!>3Trs0TIlv)qFdwPlz)!>}CY^b?7dKdX7z_-#y-K=nC?WZbqP&ZV~zw|VHjF1p8|`d;(N_0lz?A3;77U=gl>ZZEqpu>U9A=|^|i-)4&7@|@8vUs{*rF3N7KIEAdfHMelMoaYoN!I-MZLs1b2kHV<$gu-xJ;5 zP~TH@Ph5Wly5nIp_h@A>pQW3GUb+pLpJ$O@eXzefu=_7KgMOSF^z-xRUWe-Y_QCl| zw{~Ny^J4N?^QE-z0r!Pok8QBq8P*axFJV_yoGY z272j6qQ8JVu7jV$wRzw2{4T-nDp*OK)fcY62i+Vv2>r3a`AGL3`Yzi6T~GKP`hNuZjX3fg*UUhQ4boySjn0eQyx;{lViao;V8o(Se^Vf02C@zYF_}_Urjdr|+9j@?I=<?Nj&M`^vv(dOqtDH;V6iozr~I&Ckj8(m9L4_aXg$;MDI4`u)J!@;d@^THoWv zF?{azsHPtV2H&rhhsXDL@}K2Tenk1v`Kqt=y<6ui`uTdjv;4XKHtKR8e1&^bgsy)N z-7@$fx~BsDSLoKHZ*>oK4(`7Wot{(jtGrx)MVa~^lc(ma_PI33|By2EkJ3j^!RKJ7 z1?fF&Yq&ey2Ob0ufdgJo`kFTr3$O_;fh%DBB6P62nAQ!j0Q>$ueLf$qfK`jr=e4i^ ztKUzb&w$fDU=6F5r1iIO=MU5Rbm-^h`}^O%pQ~R>`+X1=sDHb6(&r;!Rd61vfA{y2 zz8coRCg|sr=Y0G;rg084px0md%_h&eaK+pIyYg)$?B;-?}wACE7c;^{s_{`H>XEG|s_EuQp7T8sCx7C&MwR`Om` z?t72kb86q^eg$mi^N9cC@1p83e-+=G4&i-C^yhY0=7t!(SNVCV?&oQ~k#`?h2OFT< z%kC!ZrF$BE@xN0YbL`vgWp@wu_rsT9C3dQx+y4#S`>>uqEkM^x_YwMk!1d@iozKD` z-yfjc40eURVU4{9d;ERT9SVO2&wzSwo{t~5AC0aKUIPCJi`cCQ?C(PN0GtP3hZQ`B zxZdFS~kzPK54atoW6@*_t6BKt_MxNF<+<(HC_9tqa{Rqiy>vTbr#yIcl{$V4~w6tb@wk4t6&2xz~<%Y?{!}$7U0QW zrS({tTanh?;W*gzb^5%^KNAPSli^r+BlPYVkG`Bo-)~Z!{;&WWq1RvejiGPG!NUKteCx=2LXiI>)ct>Iy_Nqg z%YSvBe?RI{YJI$aWPc=n#8vfoDt=}K=jHLGQ#`*vuD_9c`3!7k-t=ou_oe~Xat=N} zeO~%Kt+#us`B-F5HrT!N{FKjf@>&6_{)gw6TbAnA4tl=({tv6C^6h2$Rx)q(Jp6Z` z?>x>is~*b3`$P7x;YVCme;?qdS8zTaUpmFpeTeeady4a)yuXOQUYhzxyo0s)Hfyn6 ziSG&Z(R+{He*&JsdyzPrb;O7HyZAI~QFT&Z)zfF9=2ofiT|Z!+h<#Z{JcYkI^L#$X zsJWH(UUv)cb!rIL{Y>~I^nP&r7ty@}--Mq*y_Z+;{^#}^+P(7orT5VGsz20o z?*{y;&qVdvK>Fr5=G=+FS3vHihC(_Y34mc`*;7+U5#G#lAY^s zK&QFY#p>z$x#%_5M9nwlB|n;H)9`x@b&Kw=-%G8d`>FV10spgtIEt%z;rom1Bfa8& zNL_sY?*D6as+ZTt^_u5S&2`Ohr{=ikwet_mbM>9m?}_Gcl%MD0@jYIt{^eJcU(G$` zC3=1nmuhc z_d_Q;*Q-vaewXSbu1~#0-}f=Ol!rKQjkFdIUOTP-Ut@uN@4ZgizxWr{;u6-)P<`2- zzSOztoKN5!#phXzl^dpb;#I80KW>!%emlIrV_J*-D$-h9%K964+Q#YcW8v%YEx67m z>F?qPtVO?PvpOZccyZ^n7O(4)*5a0%r?vRa7HR!G+-b|S-VGiA`@^Be*I0``*gDyZ zPp}rZ+a~>8tYR%LsZ4(tdv2T7;&I!hwRjq9@jKRHzwMJ=+-%3R7Q3+)8(E7px+T5% zI%{$1uIcaM-+HFCSo@>2J{j)0XIhKf?3LEy%|A(N@k!Qi!YdC*e;4N;oYvy+ewx-k zpFU%biBp+NH^4=3DICTes)Z}sCBN<0NnF{1HTS^dZO!Q$V-@+WGZJ3EnI19dAv_xC7yJOk^|$Fw` ztAyq*r#${ZJ~zWTunT!~5Atb3_a@Z2%@69cCZBHzrCS*2NAS7MxsvBjcj)^Wi(WjR z^{)f}MLt)Z*4ZG{Ya{6XKSeKo#`>$k|3vCO74E=1=nLKdNmm)~!&liwME|7LWh>ZMz6 zt<;zDJ2&wEJ^oA8Z;ancD8KUq|C^Pm-xvKrD8CB>{|A(*m*0`t$?uZD|4?+L>ZQ9J zJNaD^_#ca|RK0X}VW;=^M&9FnK1@MZs$RNhu#?}W!2c|CrRt?yf}Q*p1OKm}D^)Mu zy7-gd=D`1F_%Bs2-H!Nc@f)1)#^_4bOSh-;#cxI6e;0J6>ZQ~7T=~^=#{1{T_%Btj z?~l%5ysz}7nbG^<{ zzxy0P9Q|JN5^MclM0T04w=k{|&!8 zbq&rphfZwIdP99~0p+)fzu(XNn;-msumieM_4}Y70QLKv;#fMl{mazL@6p(u0w+P; zgK^ZW%Vw!RcZD8*7IqK8_SB(sP>=sc_X)fbot`7^e^35C2n)4ufF;_cH)}+Ui(+#6oYuuZH&H#x(pBM zvo5+)_0s(iyFKxHK;VBfbfxNtqCWq0)C04KrU!z!Kwy@Kbp+v)f4Td^;| z*WhpY-TD@&dr}>ohy029ecjog{PcUfo}0ek&&cCj_!xG24|4r={9U@U`Ca`y==wX* zi+8gwK-cRzHi+k$cou8*-N>Lnq#KWZD0!U}QG_3wj`esr1o%h2BpJCT?2T+CYMpxyaHWcQ>I>i zuf?v2-(_$GTnTsCF2(N)J^rcqiTt_V|2_GzA0_|#_fpsUzdLJv0`p0B;?=t+e+@A5 zC;Ke@wZ!=YoC)>s-tK>!ty26w;g(&~dON6dRNdXao7rdScP&%@6ZA*JF65;=x1?^} zgZdq6_F4KtW$KmJ2<%3~>*2HX%e(Mfs64!$k7D->ychjE==!hGtwmj~Lifi&KLOoM zus3!4Nl-uO?nSRU%g*z;6Q@#tjd`g_pnzgrRY->r!H?^Z-T$Mqc0f5#$z&hz0x z=Bnnp=Boa?7E%9Q%h}A`v9Q-JX}|l!pY=>@{dXtgS5@irZRlIg*`xMPpXBU_+K#Ezn}LT#90Iv z8(sg4Rm^8GdFed1)_-^b3@ep@c6fKKKDY|&%%%Eqx_VoID>uYzo&Cv zbwJ8<3cMLEBks3l#`k!u>R*2DC;!OL1LV7qJU#EI-tPZy{6zk|{>n@JAiHPqqw^Ns zUUs6+S^9|Dr~8ZSBfb86%Xg^nGI%ukYaa*lJQNRMeH7I5((`GDpN-7li>zHQo#MZY zPI1r5h_^fXec(S~H|#u~>o-9c>E-t@{AT5|Ke|%&(rN$7L;LsqYw%yHUg!M2owMeF z&b20}m)?gom(I(0|5?fV)0*7NQE+rHPh58ax>Dn9i@rOog^Jr?{=A-9_O4f)KKRY5 zM-OzR>hI$@^$|C$+1ZVXA?)G|rcj|rK>F@KAKiOsJH{pFN zdQWu!1IpANg?>1!g(pCN5BGRypgRX%1TTlKk969f>-GKSMBW!pffqv8cmH8}&hHK{ z+cvGQfv(>dU4J+po$OpM-9YrefTzO!upb!2`z5+N;3B^FeF3-KHRZcM^!QI<*90HK z?m6iCPUO)Q>U-uPf&TZ~rTACF!RUs=$?&?s{twvAhd=0%{QVFPf@eX`_han7gzeDD zkLx>bpZx3p3lT^0`7r8uCHyng|K}kpj{BECQF>=&e-wF~X!)EToUigeAN}v(rBHpL zeR;lapQYb;hg82U;nh2*^>pa|d!pM5UW!h3u9xm0^gn~Yg1^CDe%$_Ybl1S*PAR`n zpzCiy_cEM?RZ#h@AWuIJ?L+_H*}Ldu=lbRN-O~20b9DVm^kO^g)(i5{=cW4J z7(b=zrMnEfKSAx=^FM;WA8-1(tX+Rpnfh_)FNE^@XyE?_drn-F-_OJan>i{r2c~g9Y@mbNx@y9SjeH=fKJP zP!~8I-U{!6v!MH5j34nM*2`d|cim^`zk_S_PI+wrJ45%k4WI7@b&k5nuHU{)eINAu zzyskxxZR#9&z?~Kzq0cj{{EM~N&k1)4E6sti+%S>x`W^^pzkLuzbyNG$g9-+Jihkx zPOu->KT6%+f&YcwLvU%owC``A+rMP?S^8JY)PIbAP3kh6JpK~o^Ld&26=mu-ArJML z_l4J|OPTtM(O(H)`7!+o-M@6#qQ48i4#!|O3C@D@>;68&PW+PfKcVX{?UVAm8qV4~ zt)GCde-zy_@N#t10{zbPVJ~%YMwTmp5^Jin}Xu2)`nk)QHX9bA7Mx>EJhJ%HWI@J(2R zpFxjzAD^$P{YKPlOL!*F=SjiyzZ<&U;SbTt&hwLQfApG@vU7bObfxO0tHDlr-xB11 zFuGFp(jAYT{OUc%^B;n)RQ(>j&+QF=0&C!4I2?MsF1&wl1G~Zfpz9A_JI$YgumKjJ z>!mx9zt@|c>vQds|8-#p_+#k$M}M01Pr>J4pZ@9d1K?123LFK`fzKS8^mT(0b2W)o zumBg@t=`38Ui`bx z_l*+kp**}lWdA;X#H{*8{#M{;U~oPjUpmFpe2x5Tj&FHb>Su8@YjMK?>F?qI*5Yfd z#V!MrUfi3txPrAfW@YANfYP41iHUn?Oy4AUBlaXd1-e7$; zm~%K1dOnITo`C(xAdccqWcL#Gufb2D>{{Mi&Hj6InzNPkRh8zD>ATt-);vC*&#ST1dv`Ps zbnlO_d++z(!sirEyb$||fuAgYk-g@R#~;Ez!~L3pbf;sdx~fhl&q;SJdVR0hf%nBG z`(EMpvb!1kJK^JSuK98M=h5l8s_$79ycfCt1N3_CiamMWR$|xky@R=+??ajsc|M;4 zHOIwbFi#Xudip%rV?dPKV3#{ZhRUJI9q2gZ#{dj z^Y=SFCsz=^*4}^Qw+8=XpxzTiy)XEF6;Eu&etF<0%U@(4#h=FhZ-%~K&-ZS0dhhjm zxc+JMdM_3?<$YK0lP!LDZq>mD?7hn0uRNaoi+{tu82FLD9KVaWzsNq)D{d~>pZi}A zo$8_AjkJH)>-&UL-zzG3p6a>m_R=}^JtT*{{J6bzPJMrAd2b2c2lRd9B<@o^)b|tr z{_!vG1C~&hKa=MacNB5;eMs-cKjghYboLB|5^&TWYZr_gg zUcHCwcfor4-}M`psqaVLdJog@j8_Kt=g>0s<9SZ$xh}u@9nQAfC?O z&rGa?g;8l;bvB=$!+K0&J#2;($EMGx!$$ZjTmmc3#U2)6Gprbw{+@?j&P(g=uo@l# zn_v-E{wnFK;0#!CLHfLMJb#Ck7p8Sz_{p!+`b+5N=k@*n^=w@|FQ`rS_d)er1^re{ z-;7iLSbumw`1$*J`+4p`e-Ha*%HuTnpN`*$JobV68%KHQ}v4S9b@&Z zwezd`H=o}hgZ(S6=859^`OE$R{D@x9QvE%SpMThS$ll{ir+8WUKF>Y*9%^3qXI@uO z?`r7twOM)^N! z_3m!x{qH{C4}*FruJ@PshwQ(^kLdL+)!$m2%dU1lviJDXDPC5-Tk+mB2o`uhnmaP} zcb?}`UB>&6?xCJr6FDb;pYeR}CtmXzDPE4a|LOR1$zvY;i&6QtBfpJcCA^W z?-1))i8b1=bb3Z|Zx4=JI0ZvsgJg*^4)_o&lfFpzcNef9QMf zN4zJC{@n2IJ^tR-@BFl1(Z3g6#rI;-zbAjld!Ojvqek%kIg9z=d-h-WzAf&__ia(% z!+l<9{)m?|cj{rJmu?EW>jJ$#&zf)BXUwaf%qRWMvQWRb@ZRG6-Nfgf{~YpsU-=SO z@m=pakDsM~h&+{Vr2mL~mReq}*Zg*>KCbt=XdTsOF!eYQ?n3^We^)anG%qG{FB+i7 zANFtdcMAUW9PDm$(Bq#`re1!Xdd~XX)mn4cLFJ|ApX>inre1#aUL?MS zA3cxNhkAZi@*Hin=cb;Y&3swJ4(xt#p2 zfd0F?=er|$924Z@dg+vZYva4Wms`0X`8%HdoB)+?Ry|aIr_RIc;pd{Y&d2pt8~@80P33<>~srm8q9sea{j%;rmo4``)zy-PUY+I6;~|Pf8@{YyIXy{9O|0(5aqYKi5mA-wj6a@01hZFy2G+!Tab7#MAE#qTiEUxG#CT7i-~H z-vdR(^?c=D?2Y~2fuAgYk$n{ZhwLNTkLN4hp4e$Fs1B}|?gaGu9x#vnHN*DwuiMM+ z6ztE06JXK&xcwFA^gEG$e`w^~Tz@Be{f;F5gU_>mpV99zdN0lK{M7r~Nc$bYe-H3{ z6knW({p7$;mcPhezejld57@W%@B4ARbl+mv@*YneTrb^D{2r%&_v*p#AvJIWbbHzL zz`hq804HKMEwCSsPQMd2@}8!DxA1tsLa*Nu#kqXm!23c0K1^Kwt|RI>sX49Rdpw@} zi|^v^{lKsM=Yshk*+=?&*;lkb&sRGAu3AqWR2SDvw~{zjUSso zj$CA(H&8#-QO|k(4%N^i@E6%fdd2NbfBSyDewFA{ zFR#bH==nWG|8C*WJN-L^o^$%0u$kXebsnPsUhVO+{JCCvId`^y4^e&JK1OHr`z`e%_aSJb?*PpGWAQjKYEYVJ-8<5->=Km58=H< z??LkW$H4yyW$JI^xv1x^{LT&h|EWy`aAQ;!ias!wa{q54nY945kNFHZF>!nV$*p1h_6`Rx_-&+4j=@_B-M3e;&y zEBjOR&f1UScz-V^kDft2TrZvCsa}!)mV2!G4EOv^>KE}$*5c)?#m8BTD_CnT97|nA z^{MW`t?W;HkhR#J`5|^@EskI<`rOg{iP)KQ7JW`V#NS2LHEV8N$=q^I59XQ9VuI)?*x0m zdgAFk-TtTO)R&_AQgJJYUkO!L?}u5$dkB63)fb}r!}C#mv4XzY)cQ+)#K>P{AL$i$ z9Ch*id%nLxr+RsPTt6MX?zy;(&%Mr5?cVtP@q3|lbUzeNydVE_f;b+}_Y>Lce!E_A zUkLW=dd)LuG}m;mqq(N}Hj=&^19eZlpSAYBZo)3g*Yopyvf`H-PjN)W*_!;SpyrO} zTdrPlG)EOjbpMNpuQ}lJ-t`}rslSlE)jjd|UiUw#O#PEQXP$=(;4=6*th_Wm?<+4) ztcR78(z?qPiPcvo*1#rMQJ+2^4Vz)^_v!Nr*cI*!eSe-$bsOh%81c`udK4$8eYK}9 zQGHrl57mDM&Y?Rzo%nUIt@EiOuiim^Z;+?=&+4j=@;QloYKT9vmHnxDXYEIEyuYWA z$4fyyTrZvCsa}!)mV2!G3|}*LxGeRrxC?9XMAqUo)|w07avwzXsqVpn+zat2*5VA- z;vCjud*+JheWUpkaSryP y715tI&np-`YTh4yLJkxm$r2b9RZ7Hm?I{5j^?i}n@ z-`?0YL)FRcWp^(27s6{{(fqjmP3Z1|I{yapcfEA?qMr?4fK{A}&eQEbK&QSG)t8D} zAbulMUA-TUAl}jN8tV)156?&O#RB%T0zX;)BKs!%Me)0E|9t=dW6i*zC|Diz~kLUY|>~+6guefIh`*pqMnKPPeKHqdtof~rg zonRHL3Fv*DM;GPm`T3m9ieG9x#SsYn&}ulwJ%O#R6`XGX#?@Je_!Y!t6f&-tor5*y*%Yty z*TV)_fb-z9(Dx%qTkBPsz)uWDj%z#mST3Zj*|4HJ{hwBr!61H_dP2{y8$nQMz z^!{00^-(@+PoZC7clvHs`&0GK+K=LRfA^*iqk?+4UOL57y(0fD_gMECj=d_?L7d52 ze2%ra7JV=FwR?C2=PasEbr0TSf8y7y#s16>aVTqX25Zs#M)N1)Q09^7bLt!ZE~>6s zeen|g<6IQXGo8m$&LL0TCc{drgP*_bHsO3!-v!jO-ssJePTd_lZ#U@z+n?+?#M@x>bK zj|lu^`HSq;pHcj|)W!Gj`p3|zUS1#9FG8<-F81WUd!1jmd*k=V?}gUU{ZKsdbNqi5 z#PN8(pU7VK+x3duA=t0$HP4*UT=V&+dFH%_{+tbUPrRSC_P(y5UQxcDpU>H>_@%~E z98qzOV_$iwx#Rhkt5+P&QNQPBO`opL`t*wXZe=_GV0^W6Fs&6A~>wNO$H73Y!^PqoLSACSvt>jZro#wZ)KUMFn z{V0z2_X6_h7}Ue{(kY(m75Q(u$GXpOvp=MM5eKps&tNUy!dhI&T619^>ME*Fbq_9P zf8uql#U-r8uUL!ynJ=Qx9nGJJUtur$oVuPq5LMT#xiyNpimn$L)T09Df;EG1O1aHp3c+l zyP;EGit0~+6guedXV{kmTB z%o)u!pKqFH&H?n(5U6|N{j9b3bpg95U(e6yY*zeI<0+1)INvd^D#%lF$MY>$uQ-~c ziX*!JdBoQo@Okh0XUfzcN8jq6_Z*_OIgos+h(ChzKf6G1AeTEMhm$DW&xHa8J@c`E1IM$jAZ*d<)^{MW`_A`<{aWB^5MAqU|*5VS@ zqW6vFPsFLrBhly7-t>W}x@Pr7N9LBZYcS7r9zCdcfx5i_Ypo7`{<0g4z3STuyC$oX z+ske!_Q%1ou+jXu{jbqo26g^*nulf}-4*Dkz?raubJ2O4dG2X+>Pu05skrsTZ-A<+ z_d_q@?F~m;UwD6bK8i2aV}DKHC(B=CU%+1!e+6~%{kwh*yT@K1*LSshuKPZU&%Mr_ z?cVtP@q3|lbUzeN+yno8f;b+}_Y>Lce!E_A2L}6fz2=!SnrlAaG|!x$a1WQm3i_cc zp!ao6&_Bx4^Yb~I6~EMYiX$q{jqIxcHFvzec2y; zd*biC?ter2yj1-`JZA>LA#fBt2R4W^({s4u-oyqtt&rA@e@bkEHUE{?_3#UrzdwCm z2kYTN_{~D?uwbWxGjOx?cdMMs)oWl(G(S51DIpVi6s zeQ_WCGNw~#lvY`39Dc~cqsJ!c|Nsm zoX;7=zs~BBqaNL1RG-$?L-jw1bLbB*o15y}0NXmB8uA(v>~U^>Dp(il=%-{#)*`?lb(-*kg9;AMr5O;zg{*xvVu8wxX`0 z`c(JeB<_WH9&2$vYw>l~Vt3|>=zXL46Y+KIMW0jW(+8sJnl-luF}Iw!Vdg)$7zW^?U zHN?|-y8XJ=m)@U>+eG{#R9*A<7e})`AI^g63$dBcJs-svo6x-)_{s7Y*=NP?OI>{b zp6~wXbdSA0t{;wG_guV>&%Mq=?cVtP@q3|lbUzeNJO}^h25~%|?fw6n6i@Yv z{I}d=-Di01yi^DA1=ixnti|n^1L8273lDS7qWV<#VC}!8c;e=)#SyHr?#LEMAbE`FP35FTp7$Woks`iTTk6)!fLC7pTF$(z+UxTPX83VPUb*% zeX!pb9tj(;mmf3F9gpsGs5x9q{;rqqEc9dGWY|nRou}L1flhrXsxK8cPy9Nlx_Uos zN*`)wdEKYlN?j_!xziJNebI@|qJ98vLnKaqW;SKJ=Ke%-(3nKPPeKHoIYoX>MF7C_w- z?`N&Oud6thC|}Rd=WJH|QsXI(s5lq0uX?Dt_~rt;ao^*zjCp0aiVq)_M3Uta%}Q zUJLVZJiHA0{yd+CHqPg6;=f__sHPqxU{s&h)YcS8#qs`LP98mjdbnOX#Z$c^|1I}e_ZjZ_RO%P;OxEJ% zti{J!iz`@bE*wi;MfIuf!L961e2}%+p7|kmW-X3jE&ANi{E66^a~6G0J;dKd)irBw zUCG>XP7mgp&SNI$P(|Ga!XkB19sK-d_X_r^?-cB6tWIt(yVtRQ8-59^v6mmW{~q1? zcK$i?cfE8Qq3;BHzN@L8p3oeOx~sz3#cVjL*H!Q|;dP{qcLDb#y-zPrM)h zbAmV?&-WAA>wddlabF1b>w3*IXEfJzucNu9`8JZi90PSvyq~r9zHY)U%GdMre6r$~ z8c%UV#o3zts-WhM=Uc8`aWqF2M|A&-h_5-|^WOCzmZ`sxzSTYP_g?ousZ9NoJZGMV z3*a*NIjnp!J?|@<66;~*U(>qFD~Z*wCf2|vSg{~|J{mT|+-vFc3fL9y41Ir|PjwsT za~Sc@vw9R?PWx(4U84H5wjQeg4xB@GcslXxU|Z)?MP9vw{N5l>@1NCGALVlr`P2}9 zVk`So_0HOl;&^{gA&-}WdbnOX#Z$c^|1I}e_Zhxs?C?_RUvU@K;)$%qX{Qmi=1GyLCQLM!oti?I3#rDh<(fda8C*mCJMW0hg(+8sJnl-n2GPj)lf_bL%7)bq_ zsM}IlXLa!Nm)$wotG>OlYlf@S4Z!lL1Cq;r{vl zUH?P7$6g=T_p^Jh`+g;#d!75(z480w_d@IFekh(e82>|qI3CaU6WQy2yIyh64EF1K z%`;~-*L=R|o;o+={5!!aSQF6uI*%^O*Yoo^n-#y*c#0z`&Lhm3CaAgN`If6!9L-V1 z5#9fI>ZCc~^WOEBmZ{&GzSTYP_g?qEYnl3!dCrW4W8jtWYS<_)OwakMHxe7++`pxD z@vX#Wm|v9E1-R+kXM;XG^=WNARR1T5KOe47 z+)CKi`81K&f*`;1$kY30b=61tto* z5r;C5M4waN@OM#l&FYJn=pW~zV4mqbmU0ex>NXixS{?lSWw#0EqxvqOp7mBIx0hXK z?6-z{!aD5b$L;q+cPP|zp_=?%FWuqjhrlyo6Y+GOZhr|n^`)r3RNNZk*Fx3R`{4`X zeFJ-0UwD6bK8i2aV1Gp5C(B=Cul|hU&!sNDf7d^TPWAHoxPB3O-E*-g_ucFKy4@SU zKYlN?j_!xziJ#;Dt00cY^Zi8jy5Fu>+z!EhU9WlOjOLopH_bEWJ@n^nsC(l5thM)b z1@(&Z_56I!X2mZxp5lm#a~%81L(Lt}w_LsAXpSn5=>EG>C(Qw$_paZmO#LJ1bx-`g z*Zn_VroP=f={de3>;!wlJz%Z)Zqhfw+W$`LVeci@El#Y574N5Y4V(q5K1iQe!x}go zo(_F~o=;sH=W{vnAGCT@Qjh*Hs!wa{q57Z9IgEgJ{XNyU5w>+cdGZ<)v^x0t%kF;cRo^k#Rau?fUUqY^e+0e;E3ua!w|@uSM^NWqWFER+ zx=+zBhaKpjJn?j%Zr=@^`chP1DsHplQ%BX+`{5emT@PP{>I+f*;rS@O*o^%bfuAgY zk$qPDVbtYc_HPOQ0-frWv-+4kHy*w2x%d*Fd!5gXLZ#_`5Z_-Rm2}b|E+3&s@_@q zQ5^5@G30SyP!HEjr+BJYpsH=j7wRI8+@4Vqj&&oaU5&Sg}1m5qWV<#VEd)X zpSTxmaUyGRDr<2GYtj2g^C#j|=8@=gYH#{LR9&$?at~6#L`gSlDQO-2T_-E`vJ%I?Y2fknRffQ{YTk!MW%>%{=!s zI`yTfzEs?L;x|Cm)%&3r@%DzJtuMSkJRiju>#@Hk@RQ{)vM=B-iob%o`2JnLhTUVY zkL$bIJ=c97#phn<&USD7{`kGnI=UZm&K0zFh=lhB5b-!J&xC4Xzx?c0l8O=4H zZ<=S$Pq>H6VFmqA70~;-Cg>mK>G}Db&5B=YJjD?e=SKEbfSNmA-*WYeqdBTLqWd3C zoiqo0-n;&^GWFk~*FEv~UiZHteO{{mAf7V=;1Dw5SF%&$nF*TH%?9o_|ff1Xcc8|U*J@xO+uM=kZ32&4M6wjPRi8|N?se)L7E zZ;tqFolk+hW(WBl74*;Qs*mz{k9?Y_S9|(yRr^!*&f1UScz<`I4ugVvxL!KNQ@tYp zE%#XW86NqM)Gy*>*5ci)#lN!_yVyOvfVzt6Q{96n*q`_YYq2}?L+ry^oXA@Axuf|L zu@7@d^f~n=e-~BPtiHI9{&CI==9$jp1N}fy=B-X{FT1a> z{|;`(`PO1DKW@Jbx}Bk(3zf>>45Zr)eQ!7r7Ko?wH1pi4=+u{@`ciSLh+hp=SMP^c ziT5Vl)cV5v!}C#mu?qWMfuAgYk-hpeia(9I`2Jo0M|7%}*T?nq(CeOy9l7sb=Q(z7 z{Qmg8&^o#wiYLB;|JQ>!9?$m^+3SA0UU8RF2j8#jHP4*UT=V&+dFGr%e@=nAC*IFm zdtWzW7v<~u`JBy)UurzX5fx`&@~eTGJDzX3dd1NkRUFa%uOz@0-ACm|vMbFN(Q!|8EM-YbF-fN^FF~)=ukbaP~TB zJz(9$8E`J#rG5H*Z|M8;eCm~l_#e*a55%2s@#j*HB8=+O+Ike(?|bkAxD#=!VO!_Z zOkT@_{O%-A@1NCGALX;%8mZqZh(EuT{i%9q?MHFEzhys=e8g4tcQk%(3hL|erBgiB zKg^f8Fw$83Ce4Wv|4e+-c=osHbMXz<;+L$&9l2kk&!IuzC4b_vti=LraVcwY;`hm3 z{FJr0A$=?E!&Yi#2^kqJZ16YfB)}r5wfi_pSYM1(09Ku>0##(G(Ee@jZ z#SyF{sxLIhr)SLZdzt6rJFMS>eb-C*dq3*Ab0Gb77(5X+QD@cH?Jq?4TjK=QuGi;R z@%K9VWHNNUbl0Mv4sQ?q>+?tKeq6@=&~tSU;?>g!E$7dpg=0egeCfVIBL>xqE!g(RG-QdT&}_=iDK9f0Et$*l!GXf?H#!_b`vY7rKLB zz0DEVOLqwR8aM*}oOs6v`Tic=ov^5LX8w7+8_U$oubw-io;$kt;#AJ}7O3~!Ci1Ev zuS%$UsQI{zeRc@?;jiTX8dN^czw>vGr#Pb5C-NWpbNf$-tNQr;6--hal? zhk8yu!}?|TB+o}ZCr5K%>!ADB`;$}eQRDEZ_Z_#FPSicodzZf#>3wGi_ooMW9Rl@! z@JVn!?tk|(?fqWseaz{3){?KkA1P1WbFWVnFY=$|Zz<=z1@EgZ-?QnXCb$H8KC;^e z`yJuFFh@NrpxX~ZcPt!1f2dDfFI_GAQ{k_n`clsox4#|TBT(Jin)^_!vB_a^Z;KA#9xXUze9kJ;6}r}+1kvG!i<@fA<(kA6Vl*ZsS{$X;{7^@{tG zV85={oE0@EM19|LYL2S!oa#g6=~Nv(AH{M1?k}?MM4fexdhZ(<%=c}})SrhRy*KDR zLEkrhKNHH-pUivPNH_*w39p8Y;s)t^ZPkW}jd1QpXKl4Kz%37SkTJ*lr{E0Y}c_jLr`i8%Ys%utXyhQ&v z7X|Z7=dqM?$Wyn;u+r+_=P$cWI3Lw_0rjl6I=Q{=dW6i@sd|6c`hJf80- zve*4~z2bHV_Un4hGiNl{e7!JFe%sGsJcWsvH+X&k_pFDYu3G&-K=%3Y9ALVl^`P5UV`K|0v)jMlHisSvg zfIK<|^>Dp(il=%-{#)*`?latMlhiNbK-S_Jti@Yciwjw6F6={HMfIuf!Nu%PypFZF zgthn;Yq3A`MfAC&`4jOg>_wkb*V6~0>Y6pTMlrXXD`<`T3m9ieG9x#SszUAr_M{`thME5_B z_?iPg?_K{)nfl}CTip|X?{)tp%hcb-bLJj68@>czfw?Wy^FG%#F%NTFr}c_$5-We0 zSOp8P86L51`g;>B!e+Pbhldik z7PfUh739?^$nQb&^!{00^-(?tl1~-!N6>$(+MlX-)_xSn`+E#|+!xft_0lPx>J|BK zxyQQC@B!me*5U?RrTZuzz*-!~T65to?t`d4)jin0GWiqtVl7T&Ely=EE@3Tt-)R0s zoXR{BeNOF7ABd`JR$p{vZaKRK^GxT_gL)UJ+Y7MP>fq-uyTRD2zMZgZvO2lF?1o~0 z92^T9&5zsv8r@}3=U=CJXa>?6xElCTTlE3sJePT^djEg zaJ2P>_lM`B_+mZw*93mD{6+Q!{6+CsP#537>({V*?DcVdSG(uB@1ywK>)hGyjo%-? z7g|U6L-E8t@ZTqh>lJrkuwU0}o;jnr=JQSS%=roTa5=1?AF2X+U)Kcv zqdYx7pR-x6-RXc!>NA%?)gQ!jW&j)lN5OMogSbO_4p;1$*Z`+>PwU2=5}RPn&S_l_zkvB&(&u%s9!`gM zLEoR})7ZxOJV*Smq3TgfJto4aKCP{X;@!qM%zz(tOZCkWzpe8rkk{-WzoUZwSzYx} zKJSrF6ZL9O->qtYs@_@qQ5^5@PSjygP!HEjr+BJYpsIHw@>{dPG&9M&073B zYq5*n!waaZs6N#_c!K?jZ?G1-Ge5*Wti_3}MV~vGKN0&dheV%KZ}N9hbbX#< z{LMhR-O%@j17U%9I!`mtor+F!cDC&ygxi2#TTov?-lsT z@)y~wKco25sEhC4^?yXCdU<_ZKM%d`x!95W?scAH_r~v!-wUmy`=NN^EBJpsh~x2m zKasuex9b&mDRuDux?c0l8O=4HZ<=S$N%ZFwsC(l5thM)bGj>tFo}bUztoWtIQyfuo z_9ed>sJY|$maA7B%~8b>-TzABYYzClcl~G{41tQL1mpBG?t&$RCQqr}?X6Z5bcR_&2KzXn$HO6y8k1^dB6q3_T0scqwY&LIAE zR*xL@=nkX$w6-3q|3REXe|T9{s&4~q>wId+YeJ|BKxyQQC@JnNl9;tuC!&r+Ku@>jD)?C<%x{B&k-Gh_3 z7vg!W#rdqo*IA3*nJc3Ajpk3p*RdCUPMuF5h^lMW+#1B(at;sXna<-(>fg*9=|KG& ztPXzuvb!34)prPX6;>y=m)%tCZ-fuP9QN|#_K%`_7V7*P*@x?;dlCHtxD?h9Pv`0O z>snuWe=2Sh@rzJ(&EsDj&H8*e3#u=~WKj>J4jPKA`t?J-R4g&(G&2uoll{EzV~xdf#aNL_C*y zB>J4%f<6#c*Q~x+hMjX|Fwb-z9jI?Tb(;yRtqy+vvfBfD)pt4lQ}8;O1KIV#eqVSb zY`|WA%sh8Iy3?WNa4q?}Ub?f;kAah6Gx2nuZhr?l^`)r3RNOrA>!9lD{je#0umwEA z`ojCe^HF>;kNxPtPnN&PUi}%xUr1ei|E_-*o$BTFas5j4y655`?z`9dEB38>BkKP6 zz0f+kABrb#!aeG2_fv61#q<3{_K{w3dj$J+|C(pcXs-Eu(>!xN&%Iaxbx*vXwf4TQ z;#{J9JwKnbS@BDar#PbGT*$uaq2`X~TdrPlG)EOjbpQRRljeZWd)FUQrv7d8x+nhL z>;69}Q@=yM^jzH)_J)JtU|1*am-NlBt~#y9{UovBfW!imJ`HW0&)vj-!|G8@Jx0K&KCP{X>OX;Vm`&D@Yd?zP{k@z#dIt4yy>yDFdPV+Q?y>GO+;iX5FXEZ3#miZXkFyq6 zu-05Smb!}SQ{97G*`N3zYq34^L+s329Kl-jxuf|Lu`}l^`kZ=*zl*AC*4(<1x#gT5 z%rl+GOwOT-x($Ry>Y_UM`OEGV>{Z_>*wt8_++KFCWB)e%5>{g`KW_g$y7le+bL8)O z={7>&3HE^X#M61Y{ZG-UFGcmG;#Ls95~{A=53`8(5c~qFFGTf+=cD*y1%0!r^_TpJ zk-x}3(kt#b>f-zNe1C&Z_44|-emZ*Hb8#7;d!47+z480w_d@IFekh)JKmO+gaXg;y zC$iW5cD>@h5bW3WnrF^vuIXM!b4~MYBz-vs>YjK%YwdmAgk6-c=jZuk#V<9U;)sf~ zHThLR%^lCTT)pCGjw+7m{udEnbHL}l>pv`0e<6LVd*biC?tfC5`X_nLJP#MZW$<%Y zd2o8(SN$}x0WN_H4@sXl!)FgoYtPU9)wI&zG1yPAd>Y7OKJ@%n@cBOE8Re_}EyaH` z+#UP=aCOI9LEM!={Oia=^>6L|6mQr5=^VS@zb2zzsz+8n^5gw6oH$no`*FQ=il_68 z{Hu>Ip`Rnp;P2}5r>ML57HjV-&+j1oh=;TOIdpxL&+jdt0`ZlH82O9rT`#|L@c)?Y z+x5%ohi_rK!&1L&1Gj@U;=uIxMp$!rTKBI>%>OL04(5KI*46Mi)GOTxUS)7qK5}@fgtt%{89qjmXvbzO))%RrVDy>d#FS|RizZX6QE3lUzw|@!Un^5Q9#5{Dp zbZ?_y3|GQh;^{oyzO(hE_ow0(iQlX|bkFgxzPOn6W$+28z7W+Po{!>-MeN@T{ABry z?6czcr!KyK&-Z8ObdSA0u0IpK?z#9VpL?B8wR_|D$M1#K(fv?7@gn?R62$R%zMsfm z_uKV~J3ZL1>ow1u(OmQSrg`SvhkiN;>Yk{No!-|C*hTqzem-Zj;+GmvaYV)WlzEjS zPt6_Aw_LsAXpSn5=>BICUvt3cz3U$=Q-3&pt9#<_z3%_mGWAn<&fEZRgO9?;VY4_S zJ@;#mOl*crhNX4I(TSC?0T$tb$E3eE!X{XROW`-r_viUk5WlVR*^>B&SUn2VVzEK0`5)R8ratP6O5zWr?^d-xRqw3*D315{ z$>ecUP!HEjr+BJYpsKVk4WbuE@CbIleM@9b3hznbK!aVP*k7l9&CD4iYM;G zS{%n(yo9y5khSQ2qxlo@66TTUb82V$KvZ3``r>=+oE?r$`}OnFd32?|4b*KOtg$+{ zz3dLaUiEE?Pd2<><@>hz=HX4`%&o5hnmBA@^`&-7owj4r^6iQqVsh7Iq1}v zqWV&C>xf?uRafta?TNQDJjwdP`@{25e6bGuivvGd{v!JZ{6+DXP#537>;HjH_44|- zzJuL!-S^}9-0Qrq-5b9@elN6+?uX)u+u^@k5Xa;BejkeHu0N_w{io=4PyD^t{eN4gzBkXAec(axcz7bL7mwq)bbMkxocN2hE}W3q2&+#_ z>pJ)ztUW1xo`-dCGQ1x8{yd*T8|U+9;(rKLj~ePR4o3B9Z9Nok3g<8lzFC{<+YH+} zp9b=}Ey(YXpnq0ZeU#6upsJS zho^oK$Fmmyz*>BTwbL(O5#^R)z$mq3F18q*S5a! z{_uPhU#!G_`@m0@zsO$w8O5JSU3~wp|2;a@%j@I%ndo)T#qast>wJgZ8^1q(FSL&C zhvJEkq%;ME1Jhu21oStQwKl-A_-fIU}(a7GdSc^!ddwcV=2wz)IKy?hSo^ zo=;61=W`74FSU9!pO*I5g}OxbX>C1J|K6NKUwA(8>tS2xQ%zn61^InQp58yJt3JwS zH2KsLe_AX1Q}xc;PfHwY@Y~4aouD2j&q=3vs#oN{VVv=hW%+fvCD>&8_{ITh4*O zJkxm$r~XCe$Vymmb@20--9^}|z6W8KvpTuG>@LCn3V1tgHa~8EAG(L2&c8tZu9xl+ z^iRS?u$p{zo^JmYI`yTfzEs>s;x|Fn)%)Qj;++m}h3X4Y{o(m2zSxNU6M>&Bf02Dw z{O;U8-@oVkBfH05AJ-4Gd#?L_6Q6sXe`@!}?~mULt)u&)c;bopKQ)Ns@q9m#earne z1H~O5?APQu%`;~-*L=Qdo;kOopLT%Nur{Fgbsf4WU(e6yY*zeI<0+1)I4?41im+ww zSiUn@pWF2YlYU{<<>tyV1A0C;r~+{`V!2R4mrn6iugHJPJ=T4OzdI|{L7c~0{2Oa=6Z&54Z};#X&RJBS>K=T-{>1f|8{#n5 z;;F2~xvWL+8_l1Hr!tR3pHu782cqhl)fewz=Uf`hGo8mu&Y_OFO@~!h2S0z=ZO8ej zzKf}EgVo9HW!DY+-QdBn9((z5`$6cAhI%g4kiYAtI}ZKHa6Bv$ujM?=!BlkWOHqBP zxV6O3L)F#$VQu)QQP98vLXJGsa{(kpJ)V88BP^UN8| zHJ@*qXU>PY7f(Xn6YpoOy{{`dmndJ)&*yAb{8Hm7j;J_iv9CI)x#Rhkt5+P&QN0(-eG%r*OY0H;hn@2d zkE=Yl{RZ1ubkTw+h6&gpiWAXA3lpm83RQp&L%?8iC<>v7VweOQL@|hVFvTzdj0K^H z78JlR!4%O&XrdSfLJ`FvS}?_MNBVxt&(#XwGaln$=ebvZoOQmXw}0>Z?!86eq=3yQ z2h4$~(czo{9|Y5<1ilW;fJcBQf}Wqp(>#~sxg7tGT0Ls0M?Dy;&yTH#>VGWv&=R)~&vYLXxQ7&V+Z^n$I{5udZwmUV?^yKGRwvh& z-XrKg1-=8;pf5YF|1ol3gS!82_Myv5?mOfM&^Lp?EdF$#uD=m->Pw;ea;9JER|%@F z-VfK}?*{NKP<Br>dcNBH;{5{^^Bd2+p%y`3##IpC6wKon!MMf5L09KPlqJ{dqnyea*Ma%kSh!zAmqQ<`~;+zTdRZ9Ea1F zBSFoH_p{F4*Ln0}@p^o|XG{5?Re$m$l%K_jF9mAvc)aDx%a8V`{0QCtlla#j@O|&{ zFO?~OBz>zn@%LW0e{z}fck-OM7kmhO9sDO)d1`pxSN<_z7OebJI9H4bSTi485OEP&l$az^<5qTuqN=jZX%%;k7C#s6VekB-wqKGVTieST~`RR3kThbnMi{5F7d zJDwDA4T;3}C~g7Ea|j~|I#}MebsjedIhVK>r3xY^p6Bj z2RqD;>z{|*WuWfAnfP5^a#tch5u6OBxEI~0>%WMc`ckOAl;0fwTS3*;`(bPR?EsFk zzWBHPuz=)Wm_z^Ch@DdQV)}XPnfpY3E0{me-{qIEIrjRv{7{>7&HJhFUgy_-To2ONqgYm_Pr^bP^SE1^sVN^ z-+Rq`vSOL?d-9wa4vqv*1y2K8g=dE6dg`oztzgSJ;oLDUU;)gW8_qef|9Rn@1)ISf zcoTRx==pg(9dkLJSMa}})uVxWj0a=&`LXp-{qMwo8~F9vq0W`~pWE@|iR+Wlm7AIB#n`%L#Sm3zogx6xpw)xqyydi}T$)%PLlnYB8(zVrs7zZke0*nqz5xc)DZ z+XU2ep@#TfUUI)eej9KEn8%;))Af%>PJJmizH*{@w=%TVHs8cs%ki zOryVb#7-%DF@5!C%zq1Y@%&x>R^(JKuaC<=iM-}qxH9wZb$-O=#^=Z9Lg(0g$e-|^ z*ncfrghy!M%6Y_Iu#(>`;&g8rNcYEHbLb@skas8=jrkI(mP zDgU$TPkw~*vkQ4;KHE)3^k7YA(k-+);#xg?y^;I&|CeBf)qG`KUkFX;Js zJPmU>o|Eu@z15?Vdenlk`ux~>sQ!C$5B1<>7lrz^f^$2b3~`N&#J6CifBsYTQ9KtB zPnJ5h{mA}Qy-VdIKi=OD5y$u7zs-{=NKXD#ubBOrbF6s=7dSuki*R$!!u>c4FXSw2 z=d8W3Hgy%MPc;X}aNoi+ISV^E3*Y4|tYyCly-wOcF?<(&q3@})=mVkZT54|{z}|8^ zBC^kPAEUX4gt`p^TdfXu{fYFhL0|P9iC)U;`|n^M zy1e9GL;h`W2AIL0?$h;`wZ8QJl-~mWyA_A#9Q*2vF`Ul=9|YAGLiLBoBmcqz`fo+- zl(HAoFXew2b@BW?-rpdnIrjRv{1M1&&V~2Gdz}xpx$*h&xzIT_AMz(W4f|(A{J1~Q zC#J9Yc6s@o5Xsl&wa*-5d(HQo_L<{m^wTz==0tt$=zX0-FBY%I=Xf2vo^{>(YnJcHL=8tz9pm9y|0&cgNB1Hw_Z7oMOGh3Zqy z!O~X-f5J653mZ8L&)_WVzZq0ry&neSZ%y!E>kID>k4OH6S@g$5?3A(>)6Zcq=D&-& zc>XT`3395J*T>}-wK>d7%8$_P?@XPv2YlbV{61yMe}uf|#NT_}{e~&@?Rav;H8B$3_L2ViPt`~9JV!iv>NNdF_NVGyDj)gr{vJRbwuscj z;WvspjAg@)JJFSy;vX5U$Qy z*vMJvdq?{xhO2YWLf=!5@q3}_T54}y#oltfDYDOWACtL>g4*;dl&tWzy-M9I`n17^%qBOc`zaFO3>vcw-WM0z|FxN{&b(Nzc+H~OQHHw zepC3b0aaJ;hX?WZ7}($X!u!MHk$+(d{lO7CrR>G@)t@o{P1MEnclq;?Q@y-CE`Jm9 znsedz@LuOhHa9*$J{LO2=0pC3Q?UO?#E<*)d}8{VZH{c#>!4vV{ z49@L%(!{k*B)<2E)BEQ?RUgH34Dn>}KmJGdr|MlQpP7EF!6y>O>ydhxcp^FZQ@vvL zXU?(a8GOfZ&|gCT3OD5}`~zoU3uoy$@Qgo z2KwiM*MZ$;$MtVP?ru=`-%9*0FS+}We+ZlkrioYg>H1$Hr@j=bFXcCn{|-=f^?o=Q zf4>8-1=SZq^@qnJ|H3@_4@T^ivKP}Y<-eNw^ZY&Db!?8kJ}$qr&AI0NDtNE+b~ZOY zKRy>a$L2%+ga={&(1;)R=lR6+XU?}N$nWS#z9yb%pE<_%n(sI5GshL_ry*b(%tX-p zI*VK^UXRcBY$^Y<>Q8=z^79mXrU1^|I~H)c^75lSDnCLqpNykU+5^7tUH;NC<$pon zYEJyU*X?gsru?xyXHEvkf>(jpfE~g+!gD@-XTT1y{jPBCZVQd^+q>hojkq540M|4wju{MLYTJDvh@y&Z|~OyczZ z`A^kH@htsU`W64R^xf?Cr|MlQANleA-iA0%jnu>CB`1HXSIqv*Io3Rbr{5mxAe_uu z_zGv?QuMuWn9bph+_O-9syXG!T7Hmdec3gi~ z{mzUiB$d3d^g9ZG}yiYT533BR7q54vOGx%=+Rafta{`A2@;MUd`-X9iD zBLBh+`Ugksl(HAoSAWL*w^J9--{qe{PWAe?`k2BrI6`!PoYZ9e5kD1Vkt64Q^#%kQ8_zHVRp%rUmte7|X*Io``$JOpY^yq|UUzD{v3 zv3NZ`-?OFs&#FK95z5bzg0vRDOhRe<*d*9`Jqd@*9^a{}l3?6Mye@ z`>&QMzsx=1Ildw|1l$7L3TzNg4)O)C;l6Mll@Hkb_kcMt^*}ghzz4zfl)%@48Sn`3 zM9}l|c$(*OJeTADQL9G{^{5A9_4%>&Q2meP9vZ>B?+^9u0Oxi*S>hTSiEoWa|NN)w zqj>Hho*Z@R{E_{sdY8&ae!RcmCXSUO^>BH~$)D;Kvp;i=HP7H`_lABEj^HdjiL>x_ z&cZIv+6y~TSE2e;b8r#)39siYoX%M|kbNSo=PdNSqx}=Zf!wpu_tXviUZ}d3+FPfx zw;abs_L=Tu0{4)jZkvN0RtLX-=}kdj^&N{|+Un%`(t8B`r@(i>8uVqy^*=`LYf$&! z%|3K_$$f|X0QzPSn8ly&)Act(PJJmJN`c{)GvB z)8G0_c7!o|G5wgl{Enh7p1;TYd*oCvuaC=*Ltb+(d>uZqI-g;4u3Lzoe-i)N1HSKF{-rYIkECxkC;r~+_D?QT{!X4V z_ks_BuY>;tD<2Hc`^tv{X2Hrw!nxwnfHjW=OoMqac|7n3g9We~Or8k8Uld#(^!z-Y znze102@|h0C>hojkq53bwJye1F;=RZ{+#j^+T zr19VQBl}bJE|rh`cz=&2j{76^aCynepXwE}KXZ;X&)~y`GdK%ZcqsIy8her09 z?qhT6ou_V7!3L{?-@o(@LSOYAf?mPuk2H04sr@j=bFXcCf|5i|S^?ukIe>;F^LP0rY>vG?E{GL2#hJz!)Q^C`~ zR^e0Oxt@ADU@O@2OgMM^BVYl{JR8nAu>W)6oCTY~9C#CWH|Y6!JRNg6o>%a{pw**+ zdW;8S_4%>&Q2p=3e;fF9N2qfp{^xc)dE$B~65nBw{`pVUNAY}4JO%1iMc>VCf2!W4 z@{u3!?;+ITfJi-DUUKrMdd2L|oMX*1c*v8XUxX7l3-949{EV}(+UD>a>MB&9Y7U+w zKjC|vg|+Mt;dY#b<2eg`?`Z$Ta69&q(D&5){9dTKmgY24VxxVxUqQ4lp8rXoo?703fk=q2+bD@U#U0!m(LVg=?1enL4 z?$h;;M^1eyRA0((8vk{m>gxUQ7XID`2U}lwe|S9dFHEDqb;M37dog|WXUu;Kb@BXN z{#N8vFRzcwKZ(5NT(~mx?sa~|=Emp8=R)V$e8`{hpV)sl;>Z1YJ~4gGx68}#4C>(d zy1e$8V{EVae$zg4yn_Cm2x?BepLO=WPN-KbUXRcBY$^Y<>Q8=z^0NzhWkBs6kGEWT z`OzMgAEDb{lsah-_`Y}f<;s-58F|f#zxTTRd&`vng6GV);DG1DbA4rSRj>}sb@HD0 zQosgq)GOg!^J>5}m;rO(TjHk%xdQk#==r$+{7>xvar}J+D&HFNtp{WImz%HbA46S_ z2k(A4)T;yhsr_e(V{9azH6r&vr}CHo+wq^H4%5r*C)KZ1yt3>4_%?o5j^yj|l9NBx zBW7Q7*2TOD2fq;RU-+{Z!&$g3XW@~YW7y2^tLSUTZQz9s>VNPQL*EOdxTk+Z>b4B` zCiK0rEx#9*+9OlgA41eU|Ib?YsW##Hqfoq>oad%YTKu=0f-@ z=0$on=ue|w>N}zO&+W^ea54IFN$X$P5ytGr^keetkw+{akGDT_EnJXuB^Z-;Iqj8J z^2~#-pTe&8j!=6?&wbhHz>fA{&gRzVH#V=!M&?!ih4*4VAMxYeHpVitNL}!>E7T$p!SaE^E~sc zxz2FU4WP@vS*H9r?5I!mo~q}G+rO+#`9105;owN{RPZ#g6|5}#+x=#UuZnm*{)Bk924^)N)nh1isR571UlaIK`>!RA z%_H%=p}45WoX%hV566E!{_4xDuj*GSUfK12n}FXJBl)_#f^n*M`07^X7EMB*xY{1{glEP$a(!#hpFt3>BPMZeNamr zb)f4@?+x_3z=V1!U)gc}3gi|6WAzmOSF3B5xKzJ#?U!qB8RA?C^nP&vl3Nw|HNh>x z2I5y9u0I?(^`Y=u_%7<9d%FXBvHpqmNvuEQPuPL|=OTXOSN-bw#PnnG@;fe)uiMu= zH4vZrLg@Ls{siB9E{pMO7K^9KQQ z;N76d>-JM~*#27B+edMNdE)H?r(66TU#WOy*Zb`V{7#DG>++J5KlMY*zUIVng?B<92zTQw z%yQOTW$B+7p2zQn>O1xEYTTo+o^uAAWEh*<`?;S|_+(_hRfn6{AMM2bHdsL%DbVXL zy<5?513N(FD?6^=iQKDTte)aex4PC5m+Dup{c`QSO`IQr-Vg3ya-SjpHMk`GlqP=V z;reS^AF3aZfp4Q8y0ePh$Ncf5II0uZ{STU-hf!6Vs2$%kPLtzHVRhlqNp) zh0ybN{Ugv*9sRlD@+Xuj{{?gSEjZxAuy5l@o3%kR)`ICT|PXji9 zXMrBC+wY#k_P@d28j2HaCf+u%-Qv%Y$6ICQqk24vpAK+I>{rVV_*41sB#x<(c>buk z$ahZXFaL{t9QtCqu*~|Zex>4_j$QA!&B^olNWLyFIr&pR#O!NM96w-wgsae(!aD2w zI_@ck2k?8L`c8fPFY*&sQ;!<(c*EG-p2ysl!U>W2Rvku@|9IlQ6YM0;ZqVy5y+5Mg z1m-~HD?6^=g4~T@te)ccvbv_Ilj>Kl{c`QyNu2kA+Ovw!{Y!2N@{fUUf|bOtJY4@< zY;nv!}>;jr2dKZNvuEQPuPI{V^YeIqYX2vZXN%=qPrg|&mVdeVs-7oP*HgjAz6|v%fIqeWCgK$3N5I#? z8uZnFuKyKsnmgf6%$wq_p+Annp88g({*CqJ^vLs6{)Crd|C)#&_viV<^cA1W%kMA9 zHzCgy=<<@=*yZ;5)SlKHX)g#%QV{rhM!U3Pwl^oI0i-H`McsG?>U{n{O^SSTKv_PSzpz!RJ^k5{WcoE zcSZ7bdCAG2`XOdtbKM8zzt*#m3QvJ%c zU#`6`i1Rzp`@#K7t{?rg5V#6hNBqje^*2LKeJC6Q-%dSrZx>-N)<3a6iS>v430tv$ zN5qf(s$V^yn0`!NevgRc>-IHIb;PH>5PJTuKN>yN(Vr_We`cBT1LhCU-9^AGlFTgztYdNREGYn&MdlmOn z3U7+cx9TvC{9B0oA+U>kNQlSlFTL~89}l*I%6Fz6Gth?IyR5OF>QY7Z(t_b<6;k$)Nd6igAn@^Jk{tPjYrGj#QH=2 zgjwv5iTH7Uo=;3)@wvSGZXU_kOg$%;Brx+u-+L zzXikotpQsX3g^_q0b7KNhI7MW0n>{ItOI`sdc1DGV-DMY1$zrBPOyP^$Ac{vf0jHR zEHfX~<0kyHf}buD>QNy-Ke7Kd;+PzX=Rn0pzH>T%`Tr3Aoz$bV%=)T+rQ(%c@3%qZ zxpyRAmzSLUsUKqYH7AabGe5%l=}Tda^?eO>is2UgUZ}oPAHP6;!V2nK3GQteo7GT*Ah2=Z?v?u)@T;_Lvu{?a=T{ZU{RRKBv~`c2541IFqpenYEkLY-8hzLNWLzwc~V`~7ede9^#_rc>gdl&mtUhy`H9Tojo_W&)8MmU zQW>5{*(CyYgN;jubK}wh)5`>`{8_*hxC!X-y8YZ7w*MFGy=3vGiFXv}@z;^ZMP=rr zdW@znS@40SLOnXcpW1&Dag2+^vyR>0oX%hV@5O%$b!aKGzN%lTcxBi7Z5n=8kL2s} zl9NC6L(IPB#PM?GNB9rU!o>PMp-wSeoZk!8ck1Ko$WPeGxd5(C-G#Ba-GaF-g*!*) zTXh&pzQc%nB-lheIne7by>-y91?xcND?6@VkKAxDR!{K@SY11aOZ6+)e!2EW66cYi z_N?M_|C0Ly@+X29fO+Cq9X9C)HJbA@uxRe;W6pI{I_c<-aOZ{#fSlWN<8a6?hHU0oGN8=TaUV zwp=(5TOnZOiUA8?H@MKCzw4XZJU!^Oyf~@ZU%s8q2J&>Q^dW+4X*#jNdPH5BOKUE-yLxQ$NJ) zYfc>hXW4N7!mBw8J2-2uI_TFJzRvH3>O1xEaone{g>x(TrD1Gt7iVru;h@NTs}3{R zA64A{24FpLG=N@z>CH!dD!>$|d}YV=tC3q9jMY>83s%=0ajAag+Ar7M2E_R*(EGvt zOKvOVcL0A2HWR<{aQ%~!Qy&T+gsh|PpYf>Lg@Ls{$%n}9sN1!@{g7&zYTM^6SyaM6!-@)2c}jId#M?$N`-UP zDgg^%>#E_L2VVv~Ubml~!}fQ?-U$|O;pZW~3gY$nyW!U-?pe)8^%z85Qs8g#*9iX9 z{;P>&Xe6Fz6c>5V>HOt?IR1y>Z&;c2RsBlEE4$urg^irE;3I~yxqY4cDTUJ_^Q}5O$^Pgf?g8{c zHF2atufO!3LBA9129>Yuxc+qHz6E3T6n~x7wSl-)zjE!DYi|I3uvnxY+`r_OLVkI0 zT`)uZ%ER?{LQZ`sya>LNdg$J+#a^s`Vto?p5BU@3vHxJikNm1%J)f98tT_a$2 z&4A6|4WP&C_A9YBr|hqQz3mkz*h;*eV3)<8Cy)NbJ*)Ys9@FsC4X%s*Ve$k1RQ{(E z$Balke^y-NJ*V@R|Fu^SeNlzKsxs@V`jv`TcD>(5;P;Y9zAi60`BOi{>}yUO7iMmR zTXGgQ*jzPmPcb}|-wV}u>f@hrkHTS`>%dD4V{>~8_frZdN9J2~n85yMBkt$H>D)sl z@p%2E_hX&R@XFfsea|!FW27l#Q7SiJ*fEHzvTXj{QKbi z^ivJ-D-YLS(fUyRcrbhm_0YW?V|}AOQvbyIB-S7DCv3+4MG-&l&-01tD?XQ(-<>1* zy1eG8hWOMMLeJmzN1&%V`g6tQ4=Ypt1Lp8k@EdT0wZh*0EqE%}1Wp_pe&6~_aNU4; zuyTWNPJ`Kv!a1o8SP7=U8n9vG@cRxh*(97V2CoCV!KzKe@0-Df&BFOSFb5XE^ycCB zb-xNY7MuXy3_bvQeLeq*nqa5(|B?L9Ts!1D8Pxrb-Z1b5Q1@NWJvD)|d_UY%1DFNV z+>7qd??>@$P2X(?Hq7Jk)e+~Ok$CrGe&&^WD&Es9-Uhqx=={y*{m$SXy&m%G{pI~3 z{UxcVaCYsjik;us{U{#yFFE-u74OT;*`n-Q?bjLWg?Y=YA5i<&_o?=0ihD_e>Z5kf zzE9Ka)2!{+jNMx&=PuCmRlErDQhXO#e9iWL`(y8G5P6o$SAPAz zrN1tAgtKdJE9{Jk)ZhI}PX5%-v3T{};duHl!n_Ela~7ufP7&_SS$ImB-!VC!_p$Go zQGCzD@MV54{E%}Dx2A7|yK)w)ZXMQNI%^MU50v_js^WV|nAZ1G1pPhc667599kx1q zNI0wCWsmUw@AyjOdrf`v5B96RGk2!m&0q`Y{VBaK(U;sq$fu}xE$I5v`v(2_>C5H8 z40^gh*IyO6p`e}vdarVM$*qHYEm#M3D^A|~Tz?tD@ig+uZv6`dsQ9n@{-{rm#Oa;>Z1Y zeldOR7nhgc-%=OP-{p@+PWAHoxV-keqxQV^xuf>F_P66J%(42;QFEfdgJ}=P;`4ai zzx$h2`?4#PUF|)^CG_|vun)8s^mm`e$iBa!O!;Z-0rj=)>hFRc&sSy2FT6!~FIf^? z0o)V(6L=Na0zUNXpx3b#xNX1!ShIaNXTaQ!;hfqjU=5fC>%iun!|%Jn)GpzCC-^W} zxohBS!B()jF7UU2c`*4+;4@&uZs9x;oD4n%z6pALJ^$*hgPo55NAkZu9rB$D>V7Be z5cq_9)_pf}UoGG)-w*fH4CZuy+>7qd??>?*Oy3;}HqYbnH4x{qk$6v{uJcMg74J0` zZ?oNZbpB@Zeg{zpuZR44e|djMe_iYdXV>0V*!jKPkK%Fvl9Rtu@qW#m4Q1bIzYZD} z<}C|q-}*k){!DW(8Bl%H#o701hJBi|{hGCVo6fl+vM&|y+w8|Ku=2k={%-R4B9hPI z%*B7peJG#7+l9W;{ruGZGJ(FB)%y8-N&hzN2xr&c6zuem+^74Ooc#Ixx%>{y^=Pnx z_le2dgnLNQUwXgr_a}c}@;TRYSMN^^%&X?uSC;u5ljnIK`;KYidnSfo^LybU^hFF0=J&#*I15#`ZtE|dwTH9^N_|Jw z^4%oNaE_tB$J~XyW5WK~&M?DS@Aa|ovUhpUaQr6n{-Hkkl>Msj%p<6OE7%Tte@bsz z`b%q2)Ag8@2)c(_VyXXSb0dlIB*T?0x-yOB*wa*>3 z*R{VLzhQ5v?;JHJ`a78Ra4bHL$Njs%S+y^_LfO^cQ(QuiZ!-HpdqK~K@sWN1Sef#R z(r4;x+12yM<5{ju`L%Wr?L z9u%-+WWZ!pz%*C~RvZ@iabP=G08_sUzt4a`sM$B{d!9@tMwbcN2u>Pp!#X@!GTZFS9u}*G#ykw zG(`Hr@89p+?^FKA(AQ^xt@Bts&BS$aB)-e%a=jGa6pOE5_gBNc&8hp_oV-1M`BlHj zuiwA)cf*cwcI_R6o%8KJ6p#CtocxuF_j=~$bx`}ck^S6Ez4PE5wtq|QTi>U(>`CoU zkNpQFV*2B(lyC3Phf62*Tsd&F-uGZ%LNbf`A4ha3-4eI?!-HLz+uH z$Mk-rJ*f8^k6-?`;k|4an4QPssUxmEBk`R|-_EUiDZVilUyAujgL;3R-TPXUJWJ&( zzkc7+Uj;kD*|oPGc8-bF-vW@F{3X;S7O%b|mKYx9L%1Jj;a!}CPjD7~#aZ|(-m8V> zey4P?9~yWc(R-feG<68?o8UhV4QHY9PFr7SZvWf9YyQv>@)P=ZPWlhw_rkZ231{K_ z$AV$A#Yu@8T?cg|oF=GKM{SD_F-p909h1?V#&R?@sjZ1)l@ErN=$G{#4|; zK<#zCSGoNBdxbm~0rg$1esg)r)gqtbyLNN?&h6yv`qJAB{jI?LR>}UUGTlTY0~K5={91t^!?OdJm%iIQUOcdessA50U#4OtIf$+`fx8f`dEJla`_Z; zYk~=Vrtc<~m)u^+*O14~U@NG<1G&ER_C^0d@B}btc3l5Y$ejar+g!N(b;#WcX6TQG zNdHUjHRJ~z73#POI0`%gbbr!&6aDwV`SuBR_A@)KzYucEfO?>v5qZh&hWw4h@hG@Bf9Fg^{@!^6ddGuXQ0JW@^*$fD zE5JV@cWy*pa*rZElsI+(^>^6IBJsV2-p8Q&;E9O81@{YeUJ85*xlbbUlG_6L7m4F@ zaPZN=-UguG@4o0A4DLwX)fX;*3UX(H&B#vxU0!m3MgC;sxD>n(d^!@}Gw8hvzK@?T zBmVw{T*CXh`bPKW@vVg1YKCiYcKIXV^_?KpcfzgIy&ZgwyoB#^{sf$0@3H;C0W z_#*mmMC_EZ7t`1KwEKU6{A2mLyyW!Vv=MRc51w#r=+8?)*I&rKv-G{SANPsEPw#_YxPWAeWtk61n)ujKT-necrmJel(aU=8nKb>K48Nqa$c zI~aaVzO#hyQHRgKQt^x})4$u(d%SQr>>UJlgO%jtbF~Wb3*G)cCG5Gp>RN%G>NxCy+z{~f!jhrXX3wWqarW^muv9T(k`4j2K^FZynTO#u$xvP*D-phFk z_%P`4Jpum$xE^)dI#RDUk^2N(2szc+?T=w^>$#;o9*pF3L7DPPV@G>jdq;73JgG9} z7d}4p`;y=a;CA5ufPVtd0uMVO=rx}dFnbDTur(Xb^?wYQJ1t;lY`{EN09#KFd_-?S7`>3Jb zqd>23x79aAJ!`=6pz7`QmH*-N!2w`)9*bubaUBtf?|8`xSGxHt!Rulf#@HF*;xeIP?92 zxi9rTp+3@c?O5(j?+Y{cq9q{zLx`gq%*^e_GKM)Is)tjyFu?a>D_~V6LJ$J zPo1hj*O%V?=syg;2F~;w(SH}YPr#Xboq2J8lKTSrZ^5PMZ{6>c5r2b_`#D$*ra|3* zp8I$I+atF#xCeMRsD8=NAFh7}a+*V-=FsP>l{w0T*ID0r|G7We7j~ilNyJVmdog|W zf6V`Ll~YR`4|2j`wvC@xIfP?rmy&1UVgWsE}p;3?}eP6C+cI>$L00>aMW`|&jUw2 z7qtH!^&HS%(EgA4cYkhwR_)1-PJ4$OdxQ|R%Q(sy~qu>kvBaR@yQe_oZc zw~6IZN?&p4J)oAj^c+)MdXBmOg^`cxyZpKAJ?&BbovMTHY?r^hO!;xlq2^w83laO5 zl_|d??*Y4k`+;M@>%lzOF8-YGzLh&SVDtH$!S)Nox#6OK`Tq@=j1QOrn{~c4@L4dq zES%fGzk{`x2fqG_fX(1-px4{u?V88qz4Yvm*At-XchkjzucVHxV1fEoQ8(2mN1a;1 zJlFviz+u!)_4NA5|1sR-@nCKqiziE5Ve|u_K&ad%I)jk9Hr5$NfuA{z}FB9&@v@_7nSP6#J-^dC}bLMEx^h9*pgu zyv;S&wz6~o=L=YBY3N!;(dX5UkAIvz2h5Z_cKuMYqNV_Gq{&h z`O2@~xAd2!Uc%Y6w<>lHj@91+kevJ_)Fl@0^~{Om+2g{z2;bu@T$1-x;SQXIN0)ey z?PmV#c;C=_+{`(=B=}DvxFftU!`bm5_~#7^oQ0}W#`;NT^_8B(S$huac^t!w_&yN& zcf-^C-mw#Y6`t!ty=UmXSl=0U@w|6@F!KGOdw+pG=-|C)8knU{EughqBE4_XPa(HC z*amh)^re^3UjxCFLHU&(_g{_NdZ6}tj(Kr;$!&!EufV;)tnCrkKLELdz~6y?0@WW4 z>JKw;1#+4rq2@^6r9K}S=EVDJApNljxHYIg6RO`VoJ9VGXP|$6#7-%DG5u2hKc_Cr zzmxso@k;JHuCyuZIAgrlb-LZcIM@K>ZUmrYF>RVb&k!a{0moL z53FqaKz@YsXXzy|{g}M`?m=BVf44spIqiS#bJfS?wZ9!R>MYmtUd$CgiQSg&zM<^3>kY^CTO2UTjjP{5!~N zE@W5FE05>%GUdM^&iN;V_l1SQ^}xNsBf;aq?XL>*6@L!ceNDj1YXjC?7cdW2ULVfs z8v^FQ4xRrJ`1%_I7QpmP;XLYQ^uPx|&)?&#o5$k&^_3xy!$H+&#-zY!S^_52E2X-C zb=0F3%!3_Z0qh3rsgvsG^^*Swxu-|K?s+Vp4&r(~65lJ-ZEn>|@%5u_s$bgfuYr4+ zQ};KTygh&Ut;3)E`u$7)0_+H9*WNYQdB*NT@wk7<$zQ2>&tz`y1+{NBpU8dywST(V zFY1ePxQ`q-KC*8VM+f!OTn%HMG*_OF;#rzKxUBZ!JRV<)IEO^yT}*Q~kJMA~?r!l` zaId=WIeovAxks;u{Ca`tI`!%> zZ)u+Udj9LVRqA=Kxvb~DMuM%(o1SYPzx-cJ9OJ=`c`TkBaZQZG_cV2zTlG?W&slsK zy^n!>fJIPORF8cIFdzyj#{(z_h}405BvZcue} zed%3={&nDep!~{?>pz0rGobn-;koGYl6xNcSHaK0yv@DqFK&J7{VTuTpK1Ei``}vk z{te(ep!z_le(-qYU$_Q+w4U{o>W&mQOIe|HNUEl%b$h3_JC0P zKzcs^ZPdHJ&5h4bx$`3b!W8xgNBp=y&o8F0`F45vy@$GZ{x1JGa;lg1qw3@G+J}y@ zy{Ng?Uex|`yq3AT3DlhVJm~Cmk!LPq@p^n7PbvSi>Q8=z@-v9MYQQw;@s=wuKib3c zBXs*u*&fmJp*gbuUnx_58hb@^CA)h5csyT~DZlV7;k{r+W*a3Ef$=}28$AcZ< zr=Zu%^J)Jt&*wL-A^(#>)qnKefiHkr?juFL>p`z?!RlK{9aCTvsCs*S<$ovoU{|nV z9*d`*xJE?c+ixz{OYxm;@ultlYPc`W$B(_g8QhcSFTd&+`Stsk{*u&BIJ@>%#m;Z+ zJ`|7pmz?~SiuY3H<_R#%KD+6zFh7;-HSM=<_Lt`99PT3rChV=)KGVL^Ts7KUc|M9~ z3~`;IeLIiG*G!xjN8&w&y3Q;0RJ>Cx-U{wj_dTcYcPMr6ddTm;^_Mk>^f$qdaCYtO zh@E5XeiV=A5zNd+T67YA<^H z^1lpmRDpH#SUf4>8WM?bSNc}Z`JcL8if<2#uOagOH@o*Wm3t|bul)LbOaD{s2xr$` zKkB}9r2g(-a`IP4ePZ$Iz1wl*ZDC%7cXJkg&RMt?@43R=Bk#Ql?;CoLQy)FV9136I z9K-qV4e`bB8h$VQ8|N5SQYYaGoQ0}mEBxaT)N?w|euzD%-{Ltg)O&>9v)b4zLhYGu zcs=L!o~-YZFL~ZO_J1JM%lk$5emeUyO`S%7?O*|Ped+xL{YK<22D`xu>gD>H z8XOL)U+U-&Q%{aZPID;K9Qu6an4?zkf35Gl|J$&BVwnNy_mlGKj!~I@~*M{ z;qsDu8u=>ZrRVaJdkJ~fPkJu@K60wJ*Vp9-*k1JgsQu@5+PJTaZ4dZ9@Hy8xHt+H; zycPR*M*O%x&o8F0edY4<>?{5FBGUYerJzz_4 zNAP&?a_~0rZt&6v!}~+?!vV98at7NT59iDi0b8F6*!^_Cx{iQZuX-vNs9y#3Qhl1KQx0qe^I!*9 zOWjmYub=!M%sn0oHqT@6G!WOZk@!xU%k@%x*I0brc7Ju;%bdEuLFDcE%dh%He*ONX zzbYlG;<^I-v!UXBn0TKC3*feMxt_83pSOCq*?rIH`~50X5Bc@} z^8S$i0@PFJ^_^9FOJQd-yC3Phf62*Tsd(3Bu7-oDM?zm8(H^h^)cb&*Q>C8&noB*$ zmSGNk4|@FaKZH1{!OT1sPYrQx5Q*;q`gU&BOYt3S@l`TEb)eqYX7|3PaWAFvm0!Pa z>CaESgtKdJDeUYKslWS|oc!s1HWshmlO0cbD9nrSCCWx=ekhu8G0|y@|>R(!8_o+Uv%#evoG`1dn(vKoyLQ%FTD@ZuS9Mr*aGGw`qJx0 z|4VRj`b~ai$Ng6!w<@T;-pstXyyR9#{uki3V1w-u*WVSn-NAjqqe1mYhJJAUbCA;< z2{lLhF7^4SV@|x!zQoVB;QH2Q-ftd{{0omq|Bn$nrR>G@)$cL?Z&4TJ-_Cw;dC7f* zyyR3bm;Vwu)mQsQ^>q2AZIAgrlb-LZHs-cZ zW=3N z3O~eGBuziaFPJoJ`9tyxB}v^6@e3!ZALJKFlD&UOe$k}z2l>SkHOBv~)h}5*QRDRG zi$y4e7vR495=rM83;y3!@BiN~Su$y@`5}I(q;~QT@k=M^ALN%whW#M_v!vqwAF{J- zlH`AguS&90eu!T#$-VwV{104iF|&Tj4_sm|zv92upoi#}42tk8MfjB?d@92K{NMPV zvFe|E^1c6}*dfKKSS-?rtd_%!lo!q?nc{C|o+o5NoN-vB=e{x0~`UxU2t zKLekJzbO1VnFe3zQ7rycVW*f>Z(d1T;5UL_9zG4f9DEJD=J9d(t>81rkAdF{z8n7c z@W;Y8{4Mz12mWIC4&!f!uem$OzlHp?B0pbJoQu!HT=a)ut+*e1_&j_Xe*Yrhdyn@7 zJFW1SBADR|jgr0A%}PKVjqp~(06&6u4t;In3D3U;#hhIl>+kaQxSM?TL5 ze1?4P#UOYJ@mCKZug<_f55J@M_P|etKMcMGJBPqu0-wDv$PXy`>-o7IzWIT`Zy)I7 z3HSoM`oI4IA)d^XAipW{o5SafKLNe~e?#$Jdw!bXn;#B#h6Xyh9$qgBs>2j`y(kCoNFFP9V+FFwPHKjNojCy(F#v9sjBkXQ0(AQmQ`T_b#RgntUY z5<4TX)4v!%PhT~_kAmM6zF_>Z@O6)ccy>nqTzI`89RoiJK8O5}Vt@Di^n7Ra_Vbg$ z&e%XF@4#oC3jAg83lztsM?QJFFFzPQ2R{z^U%}UO1o;N|;gUE0IC#C#?T-9;@OvB> zh$i?u;q`(yeNy1l%=KDBz_mw>N^ zujKtf&xJI6VthS(cXhBM`3A|G{WIYUCjV#n4&(m@pEv#)_~{=OFRu8rIPrJEx0-xX zY~bGd7+(e7YsNdc>8Z~!?5mzb;Inq`o5817 z2^N;Z{@(D(kiahq|9kjC&)^h)#GehHH+~{~%IxRib0+^XeAf8S;WNfBR=l8|d<(0E zc+~%^!>3LD*YGLh_k&N2KNdc3_Rp0(b2^0j+y!4n{}ivO_vbPAPV2)r;4}1z-gCZ( zPa8j|*f72M4hs1e-^hD^HiJ*E7YjO;oFR#D&FjO!?&1x|Kg(VsZWc^FAG23 zToW6%ASum!sqOH*Dl`T{6O~Yc{*S5LDrLRweics*I7UO629H?`Zau;@w>~u<#i~0 zt=-qj@WZU0=fUT!Zr8(Sjh`a>X6FU?wB_{?e4F*vfZ~fpPknOsTw4jg#qzCzud;l% zmb}^D4?f`@mtjsD;m4c(v*4SIzXHC|_?zJ?ES?A8N16O{@b$*O1D~}zd@tVi!%D?O zdi%=izm9mj_if=bc8?kH=Jy2nDzkr%cF*@}f}j3L*u&bZ z3l(2e{PbzTe(`bN`*VQoTfRrb53~Ck1K(-($HOP~o_RZb zm-&4Ze){Jj9_{m2;VUe!PvASv&cNaeSWkUwZ0=Tu?=t)A!gm_K4SdS%jDT;qe18vL zSUK$f;`R0ZoGUxl50l^%vW#z>xkKg{?}_$7^h8~)J+LOlAO`UJlA+fe85 zf0N{U_>uPgwQ%tTxVN4rzZ`r9`Qo2(dVhw%SDXBL@CWgJTm17y@6VR-!_Dt5@I#T8 z{r%t@zYme?yZbQs_HX*;bprhE{X-q(w+X(@?(quv7UNrG-}+>V>=^%o>=^$Z{CMNP zg>N!`@!~@0sehyKtH9UVJgyHv%H+3$uQz^Q_+iE$0bgzQPlYf1Jk+!JIP3kn41T}) z0lyGBW`CjLKho%_TR-EMh5yd_YA}42<+~yL zczd4i3}4`Ty!e{e`*R5VaO?A9;qRW&w{K5_&s*PK2>;Ujp`Pmh9DG|>uoHfpB)7m% z9oSd?Uihyp-$&uQ@hdx>@JICvjPCIr_&dJ~elzf;hF8 zs^OdLem92CSwHLrKi=l_ckq=T^xXp|%D%~;3!hjYw!rU09hC1~@D+{3mYi+Nd3ZJuixeUI*`%>{Us`uv(_%!c_#c}KXc>z9e z`{!f$M(dLWivI|iHn?Yflb_Z?k>AK76b3Tf^5`|J1=Z*?ZJ*_+i%n4e;;L|BB}n_)g2W8NSW- z#&z(!*uJ_GzF_zGBz%k6`6qnF<}OKvy0usxD&cd+r{LQy{&nHUoBWpWqpUyohTqQe zIs`s%bC-p0Grt$W?_~FNC495Rb2I!|$n%fOlE1;fn}q&UKR*nA5Bo=b`w#dgv;QXi zUu`da1pf)o7xlxp@Okc0?=4IJJlxA`)JNYPE5TRW9$N=~ls%`mgwNXFi}r^fZ+&u% z+MiuW|_ftTT1tRFsvZ!^DN!;i8( zyu>P@&Ix}vD_%$M&qna4*mugd@J&{?;qYTD{zKvaX#COeReU$8-%f?Epx>15IqJfxpfAWFmYTUiWeb{Km#lfv>PS zya1oE=hVmW^)@fx!+(r@#lOhlQ0H3vzE}ainSUOk_mg$tr+*fn*UEQm_ zuebgD2l$ljfoAwowy&;}9pmqXud}&(0{*u=mvt|l@WU z>O2U(7CV~LU%-DypQxT2!=G;T+!j7#@7ue>-@)@sc^v>h%<6Cy{2+_-6!>b3^E~*a ziAVM?hyQ&3aPI@?hZgu+dk>rppR@h*Jbaq}{lJ#knE^kFxzHY4ygJl*81HY2X9f7I zy|=Fp|1-;XL-;DocRTo#?76lZd&AE|Dq!FO<9p{hx8 z0eqV0_!`vb9{Bf(M|RrbPqFWj7vOKTetQExM?D8(|0DPnY+k;Gud;kAih=cfm(_D$ zdf!_fzS-`5UHDC@v*Q01dm~74w-4cK?0&z6uQq;>wL+b1ZU3(dKg^y-8^d2m-!4EuZwFst{k#|a ze8!K2Z?pIt;aiM98@}4^aRPjm@wdQN82@+p>HP1J79##<;k%4~8@|){FX7wlUMkiO z^{n!~g>NzWU%-#Ie18q!Zhm)%Z!>>Gc)?3>>v_^s?a@e=ry%|$ExMmE>?!dKe< zd<=d%|Gae(>iimf6@4iFBlz(ae=?LkVEwr)e9roC2z(Ry>hIMX!oQ8Y_VZTo3)=Tr z9sI5APd!HtfbX)r{s7-(_jo#d)}9wv!mnuG%YT7i&+2>^e5K9rBk*7I98{byz*kw_ zrosQx?0*GcVe*x~2=!0wJ$5L3t?h@c;2W(Dd%<^F-F^pOuzNWkzRCLGO!&*}-Y2w2Z=`<~rf=VbKbbz!-s^_H$m019emc+n3hXTQ%TUh@f43?A znZ5UCJ@^LelO5s5*grqo7ycEi+oABIto|p$*Bd_$K1)2sKU4Sq+zOxYo>n~e{=5ud z;O`##-zR(tKg#B=q9)|~7khvE8T^M<{~_=h`@Y@+{#>i`&hXt<=MnH%@?6%u{|^2! zcs*y2gMX0sTix#%_zK(Sm%>+D|K9@NZhbxlzRTi#7QT-C8QwaI|Joq@I<}Xl!Pl@i zH1FTS7tH=5>xB9@S>2Y0Z?iam0iUrx+!nsd@*NIeXY$9u53_zd1AZ;rKNrHkZT)aH ze5d7g8~o~K=RWufdmcRj|0k=%%kYi1XFi0lwfMh>-=BHZ``&`L(4udw?%0e(9FyRSu=>vQ3|jK2oH)A%;{cH^If zZ!`W)_!jH8e~CBwh1U!99B+IIzRCCvByaY&haYA4yB~bL@khW9vwEHazpC}yS&}z9 zSHRaAe=~fC_49r3d3e1SJq7;?-#gk%ufjK49X^47(fTJ@Kh(3s_{HHLHGU=d2aF#I zf3nTdrttTe{0{JmJ%2~S7xj~E z|FX#U#FNE-HTLUz`Kly0CB&J6KMXtFJ^#XZ@rUb4PJ!?EIPk|He<^%jci@i?klYQg z|G>t#$iFT-{EN=NR)cOF;w)HwmV@s!exoAa^Y5Rgz6=igQ-|U3HD3pQ6#N)?{RciW z#4}Oy{0BcqObWlazsUFe`@(tZGoHL&>g9|7Ub+4I!XLo58Q*`CkXNhmtHHMzU)#%9 zCCQWFUgWm{KJ$2Aejx-w{4#{0Z=h@mInZUhCUe z55nh-e;+<){L-6+c(TTC0-rHH1D`hjO!$=Xx4q3b&lrC$eA@Wi;Zw$U!Y9Vh_p1<3;nlwJuL++wz79TT{BiJE(zYcuimA>)s37dRfs2R{I>8J z<9`RAHoh4?W&EA+iSe(&7hdcef4{9mJbB~Sg3lRW2cI?mc=(L**TJWae+oWj{Fm^F z@hfc;;w-$-H~y{Q^Trr3W3-M%(-vmBw{7Cqe@n^y(#@`5Ec&=~!FTm%G{}w)H{OZF(oLS>{ zhR+y(41C)7@$f0*r@$x1zYAY@wr~6^Y#-vu8^0@j&iE7Hv&QG(GsZsxpEmvj_>}RB z?-1fijNb&l@Q($1H>dXJf$(|bo8WWC-wvNOeky#%`1yAX@uZDk7d~bDVeo}#`o=jP zK5u+Ge9rg};j_jsw^N8GWBj)8Y2*I@pE7DM;px8de+i#Ae$Xx<&YbbPz-NtbgwGg%HGJCmcKDR> zAHf%%>KkX}uHpMDH)FouKL40MByCybd%u4_2=W!YKkNtJZu|-GdE+mDZ!^BN$oG8r zH7_xLujRuR2@YOEzF}HlzhA?9xewcmfY5dZX#`tqy5cN@Pce3$Y2 zz!!`^8otx`X7~={uZM3p{t@`R@dfxcZvdY&ei!)h#vfkfd+ss6 zPpEUxe{ZPg=WOIFtt{D{~^Keq{V{Y754~vWo%wHfUh@x zclbKv4~HLS{8{j6}P%JJg`3G z)oA<>_y*&D1wYF8;YGg3Z{_6RcXj;!QFd(qUnV=ox4~zOe+ItZ_>YTxkKZ)^!D7wP zlKX_bTCES)f^RW?d-$C3zl9%fe74B<`0e;d$ah!v-qpz0*`B-yewgtu!KaP?6u#E@ z%6)_1)a!lwYJ(!*)1P_khh5;?j6WQ{)%daSEyiC{vxF}A+O4R_RV)q_zL5P!6(Ka2tWPJzIIM6@;!dDEB5t!4f1ss=e_X5jDHzE zZTx5OwZ<>8fACwmdhn~~(S}97_j|$ma98+t-5dH9r+sD zGjG6G8~;6g%J`}SLi|<6Z&>7e{I+h|*Y7^aH<fk z@YTkD3!gH6nS+=k#-ECv!pp(V z$fZI&6Oqr^cfoz|%NHZqOBy5TeSbzh9uuOuJ z2+T4pi5(ui2pouv1Bd{5%Hst@g0cMgK0X0i1bN{1udY+wbxv3Hn0!y)XW!}HIaPJ) z)Y7$ecZc`|!EXXrepr3*Lm~(K&#SZ_K1}-k?>{^O8#K-I|SbfuIkmw zxUN@sU#Tn5VbWg{`pd*m3H~M%R;jNIx(7tDh3zB=}W5ov(4hE5tVnJ_WAQ&F$3b zK7s1zD@lL#|M2#B3-ObJf0XzM!S5!1T=4sduLyowU)#SV_&D*t;0@vnf?r4cu;6{- zhXj8kxbnmJ%ent=C;c(ux3k1I2>w0dIl&)xz0TJqF~5E$xJvhITc>;Hm@fDIq<>hf z^Bf_5Nbo-(J}LO05Z@*EY2p)t|0D6b;Qs-x>|FhAZRaf2&nFLbzRrqup%U>kg1?CP zX~ADX{0_m7gR6AMUa!;ry(eh@yr1+h-pA|boy0E){w?C?1^+SebAoRiQoaN)5I-aM zKH{eZUm$*m;I9Rb{JE<0b^6gdUmqs@HKBio_$k4^Lwr^6`-z_v{HY_I?%@yVbiej^ zo$elRH9j8`1Ul9EJ#Lo-4XTSLx=?>U1AY?e{*?9~b(U9o6=46nvccnBWcK z8w9_Ocuw#>@k^o|y%9WWN9VbnA0_=Up?^2=4T9fCJSX^N$8^3fiGE|8_(j1R#4iYb z9k{Y{{Gzt=>5tX*^9IsCFZAC+{G8w)A%0fy&l5i*_yzE&{@l;gebkc9*J*LTcqZ{X z1m8-0P4JfzKPC7L;40n2kGVX`XpQ>SKO+4T!p|Qkeq8XsC%z*1cZn|v{_tg;?&?)K zUDN;M!Bszy7y7%2ZxVc-__*LJ#5W55Zty6-&*ka<9qIRl{yoGO1b^@i+Rnp*Uq$?o z;4c7=>Q!B*yOaDJkp4w+UtS`9LGZT{KQH))iJuev3*ai<{tlh)Js}JSxXN_va5uzc0=mJ?gh~ zz7_<3F7d;HZzX<6@FuuQckOp{x*wtb_AR78Df+_?5Z@*E=ZQ}U{x8Jqf z?`S(u3;kyizeDhC#McCW8SztszY;tu_fKg1pZ{c?@Y_g#Qrwr66v24 z{rMALMfno^`NZqu9OJdbCj_4(epbZuyTs23{x0Hq5zk)|-z4}~iQggO`2q3MfbRT0l!#7_!-FYyzC=U$`pbzJbL z5zmQqYs4=J{e#3W3f?7tLGaguN9}0mL!%1y2UqHP^%2sa6!rP@#CHjPf%t^r4|=W6 zS6%R@6VD4?C%#GW7ZV>ByhnVa;BO#4CitHb-yrzkfGa)L@bz)+hkHnWQnbgP z65l2GRj-yrxU;yJ+|cUar^zm zHwpgKKhXIa7raV*qu>X?Rk{;z;^~e^e^TsUzk&EJ!EYlzA^6`AuM7Uq;40noZ|CVg z?5@dd%}CVp7(ZxcTx_+>Zg zbjNSw={^%&&1Wa?d3e-7H|S=X`)|Z|3I0;z6M`=iuM7SbaFyTFALHqMob=Cro2UB) z;%5Z^F7eZXKjih={yPN!1#p$_;ZO2(_mciuVdp&YGlIW{_-Vo4P5chQKMAhV&3%@q z`z_L66YcKD#7_yn@eMj(tAZDZpA>u_xJq~R3q0NHNqLVW-o|4e`N;5Sme5_Voie3#%aAU+}Z6!E&?*MqBc&wqob`)1M~6L#K4e1qV3 z5zh(!&%`f@^3C0>(_Oijr@IL}YDXfTEyQ;T9uS`pe2I8n@VA1i{En*+%3FT^9O<7B z`rjmeT=1U|UlII?C$#-bf|tQnx~J6#>+x@i))SUV|Ad(TzM1%O!Pkhd3Vs*ylY-w1 z9@VRdKP*bu)T<3|(so`H?fvJ8Ul9D)h@Thy5b<+@9|e!<)#G@&ZzKINQ6JWbZxH;8 z#B+k*OZ<{Z_wqOEbXT6t(|s1Ws#kpx&#w_*5d3At4-0;j_#we>0gvj{GkCh6ApH}f z-F=1lalyY&d`0j_yoKtO;G4jsdi6Y>?g7%jDD3PIzaaQc#Lo+UEAexJe+FEod$`Qg z{Wj^J5c)qMeq8XU+@kZfB6ykjlHmKnRl2!f<>{`FeqXe^w-a9w{C47p1wTvtkl^0~ zSLv>9*Xch0@~AoG9`lFFe!PF?i~9aMu5s>Hz?J^lU*~qdB+`FUZcU7%M#N7E{$}E< zg5O5`q~Ldft91KQJl*?9|Af%L?5*1W#|0lJz9M*o_>$n)fva@KUdq!wM*3@_ot_|m zO7IU6UlsgsiJuhw9&nZJ+AL4^k#E!aIxE`CFA_f^_|?Qu3;q(~cL=@=uF{?C@O0l! z`h8*NM~N>8ewO%Q!S5q}NbrZ9)ahPaxl9mW5d7uD4-0;b_#wgn5M1T= z#P9HQKS}y|(O$kre3RfmBt9J_ zpCXKK_bzS!lHgARSLvR(lc)P@q`xN0u3?_Adzj9B^f4?j9b`0n%R)`W@m+ zg5N~(oc%73=cA;5Q9Pe=H}MOC-$(JR{y@hwLkk&CT-ElU7xRnf6F(>TwcsjWWB zrYWA4$MSeyL;7PPo_7=9AowRKp2;WjcR?B>2<7m7m9-%H!EW`X_|` zZxTN)_!7l)@fkdxKO+6J!Ve!Oen#-Wr+7|3SI6^|C*-1k|4RC6VtxD3@74J_CHV7* zuL{16_({R1!IdA*|2LlQO{9N9=-*2GxZs~5z9RV7i7yHMBk-vGPU&>N{tTVpr`}5S zN}Ru~62Bzg+i-yRMZr77F9?1U@$-V;O8lJQpCNu$@UIg;BlwSqpBDUzKh^oVL-0KD zHNkfiKPC7)@m0ZBh@TYv-Na7_emn8wf`5(pis0WPz9jgg{!HhqFZeTwF9^Ps_+i0c zO8k)EHxQo`{4KWm+&Fal9v)#%bfEzexHkly08* zO%WfboMRpKW88;R$BPV1ZaKSca6aTEVp;-`rpp!n}6KK?`<&pzVM{-CyVg}BM@9^&VT zn{@lcC$8l2oFu+Vd@sfS*Ti!hwLX?vqJQ@oed5OcM}J7$lY5fZH|6*O;)jVpi{hCk zzDj%#@mGUCB=`OM=`#Mg8CMef|6^Y~RduKYd+`j_P%oBQ}zb-!fn zd43en#@x!CJf0Uu{O5AJggx8AbGgUm&OL|gAEJ1SA58qS5x+8*JI(d4e2lW^5xJZx zSPF0h^v6tK>-T04U-j_YJp7X${&^4o-yZ&b5C4gWKXNUX8@KXf{(LsLE5BtA-{Rpf z^6&)@f3=6d#lvs)@K1R7=REw&9{vpv|2Gf6{3C9^ZS?S>hfjIfwLk;h**JFMIemJp6|qu0BXHW-6uid!>gz2b_j-mUb?;-J^fV!{O<3`-|_I*c=+2q z{5B82-NV1^;s5O6-}mrG{)OAmKkwm158vtG2R(e&!$%(eDi6Qa!$0cbf8*g_@$heW z_`iGjWq;}R=VLs4+`|hV{;M9o+rwY(;X@C9wTHjQ!$0ETr#<}39{wE<|AB`;^mezO zpXlN5^V~zae2K*Ns{q`Sw^gra`XFU8LJp4Nz z{$mfn;;-EPe6EM*mfFo=rZ)&T&*Xxjzq}NT`oU<>JQ@y$VNf^HK+A?Ry?z)BM}x(g zQ4q{64qLr0LU%`lUi)VaUI>QaD3}e8wr0YgHEa>#V03fT8zAT;tlql3W3f9kQufRv z+Upma?QXN9B6djU+r8;#d*~LeL_Dwz}mk%tXBJ2;Fv&$64RM?(thr^*|o|Tzax24K@uDRHb-DHVXksUdf zEw`jpO=m-7tv8chOL)V_TE1I~j*Q%&HLo}~2(Cr=l7TTKX=7j!>(RO=-8C0fV$CjxBTes}l z6I`?XH?G^af7?`W?e+t^_HD}yw0GZ@{X3^JRrX~{Q>l{nWD}k6zP{=pn(b@CvB z`^~{i=h>8myWo-JZ6#o5LZyb6Ix` zb(`7Zm8uqzd2>|?SvQ=hNqKKqku8*1dIir{6=Z!T4!7>JNJTsQxGi zOfHv@@8*nhz$9+FO*K4AX>E<_ItCZ5?)-t~^p@`IZro+{wdy5QML!a32^L!O3qd

    wZ}$Q7*1}ecz(EO4RS_`76-@0D>ew4GYI1&E4;1|9)$HELRjxc$f5Vs_@B}h zw2z86FS2IIm+<=}vYvs(Tu|;52;YD?OTtJ9eQ}E13zSDT`Ad+p5z;H5{M8VGaSrJP zwS65z+gmYl}xHYsE)I#svxT!y$EOOT%{Z#HZ8~|4jIj%k_B?+iN=3uNEh;B z_t1R@QWxmbq>m$!f4BIibfnQ$5gc`>)wYOzfa@u~=mkOCdVS!hH;7wr2AF9iQ0u({ zW(}w{HC$_Ius}l%q&EO*bd8yxj>L~(aTt`J1HpF!Eezs2v_6nvY)f~ zD$w%3CFuWEH7M7FnzAMjpqgTZkM;;xRePC_M;^78cj4gx$VqW|QE_fF2%0lPaCxLJ z^Mb^A1=jTK7H6*;A%~6^q4SkX+gi{9LvUwg%_U?-$BSwoV>b-M6KMx9?MR@BbOe}T zpggkSiF661XF*Q5;JGH!R7t{3=fasF--z^mu7f-Z^CJY&P_zOw&0d3`IfL+CWN^$^ zQp{gq{SzS^EQ4^vAZX4Y9EuFSS0hB7#O5i;p{FS67l@%~p-MrTa0cOGWbjKGp(U*I z2!S4`qhA2wdxM}kgW!qseW?*1fOS7Y__Yi|>N5%xH7T4yC?DlZxhVB82iA`hLPOCC z#IX2Tji5P$kQC(`pb<90dIKR8i@rjjOZlPCDFk#K;pz#b-7qR_8zInuI}Yn(ARchP zg1JF(&BcTUoa(`al7g8?I1^B#s0ufAK(U|TOa$a~7Og;$@)qeLY0eepCQ>CEyZ+s{zL58cXRPYAos2WcY!g;85f%ToB+!GMSfEf+y z|2+hHCxZXyrOHTJ+q3W>?vTK}dedF^>hXcCJdV=pr#TbwtSH|HI^g9%e-Y$V75zZ9 z#~TFA8HC59d?DXTk>7^(K0>Hd2BDcj(40Y-9p$@IBYX|(ON3BR27zuKQ$NiagvC+5 zg&Lvq=eX7kavF+$pcK6gg60gu(kR~vjgSHBMugD648ll*pgFI^WIrF}t9V7~;VxKr z2U&yYv4*i?WK>&Y9)xNS>g&#=GETfN3Z|tw6Xvcc&jjscA{>mTFhfP33(BjAR7t^I zW_g%7c1Kk`Lsqnkco`NeK)i}L4dx3HXcb|9fxBuU7a5Hx2HF5#iT?<9s_VEq#z z+$@8TvRs!!a|Yp?D9?i$A?g&?LLety^i?TnI$02CjmYOu!V`TJ?BWr~=y7h&*)gYf+)A$%BnNY4rc`oZv;!oo{w;-pZXsNL_?EzfSl@y$QP$+*#d6R!cC@&(b9a(^K z*Fm6-m{&;H<`(8bIEmCFpgaP|-;b31Gq`yUG~go=UQ%UkNtbz_G4TdCsfsV__*VS@ ze0p2+2Qc0b;!C}GXR&Jv;!C~#!Q2m0SC^Nq(Dir>zU^=8RE@X>E4sS;6qIIz`0BFO zD`#m=*{W0U zSs7#%ZWE}pI2~;PL-@fBiiJlc`3jQzsN^7Z4$Y()!CdhxM=(;P$Dom5q2%JV# zM(4+tvCosZ!&WGM-GOiNi8pUR%X+Z87~*ItoEd%pM0xwuIHGo057+BJPG6UMHGcmw z2%0kpHKILhHNsI?A0dQ_#VRN@dD3K*B`MgA5zZh)Mti=|2*1FZwg8+~r4VTPT_-8{ z=&o>ymipN-(V=(!gi_G-8-+9L2s*o_)m%$3d7!}bdr)luuj%)c=;2DJa3v_3E}Tj2sHf$ue9W+xw<0T3DKc-e?|;6 z6>o&~1`yA}$H5#UxC}84oOC({PID%p#Awe@f}ME`t#MvM!S53_?b<_nJm7QutEK*eQqURE zKv?$&ss8)9G18oI+br5Ukc_D4Pr={`kn>e3x72^bR_VYsXAoLMd)H}%5?F5{ggDXX zz;meowvrSZF=3*}iLO@l2K-W=Jqe2wAnvn&fcXuSM{0qN+jW%+;Qy!Ns2QZV~dSzAU| zJ405~TOWkQAW$CVaF?A2X)fWsCswY7!zYr23#h`GP+CQM6K+ajw!-{%f;cZ)f&S8G zwQe}gc_hKUGrC51LZJTg8LU46sXAOPMtE{VxDajBCEB-GyZsvme}bI#q7|saFC+yk zf8k8v-J^Y`(FMzF9&L%UG^2Stlwprr~O|M~Q)-mA(k$kLn%K%Jwu!r2%75zZX-)j&wXAr)P_HNb)U%~oILKsvE zfx7i-gP=JR_z%(Ei#qUnU*moOkP7@mW28Cb_LpdHtv@92XRybz0OWj9$}M&4_zk+9 zG?yTCVgDXoZ8jlLx84cs?Vv!n&KJXf&AVlKb!XATjR(S+5dVz!9?~J62KW~gVsFt3 z)a^(~39>Y25dMkw2LCCAw7zA|RvPl7Y^@B0q54F{3SPUbp?rtj{O-CdJ z%Shpj-*GXXDt}28yanqw3E@*W0v~z4lN7xBk^GL23GGQ%bmX}RiwmGU%HboA?+R{# z0y*?fFZ#KTJjs%TCq#rZp-hPJJg-A(2=fL6(Ll5U?fI5L(40Y-9pgQv5xT*;3n3gT zg+QIQ=@u1Mkl~_L0$$7?6Pow8blP#S9s>$=+D>Ble|6d-(ZjB(aFw)!4EcMe|B@MSS#?yu1s7M*GZbS&zO9ezrz4Kc&g60fDNsRYd zjc^yNyA#3{(GOJ0Zw5hg2I2J>?@5g?5!T}gA!wWOs1T@9s!B?LtEEe^C8k>HEvb}Z zSg!zarMwH~0KsL7aiCJ#7&y(DfVReX2NE1r$`x3DLkOKp1w@r{)*xukAiNV(VVy<@ z#V%L~$oZxW0zICgews4~@5fZQq7gD--GmU5L_biijSPb348p;f3Jq{q9+%>7Sob7^ z7H))`?ftRfFbL-hFgsj`@vJ4QW5}8Ui%Fo|0}xh$SqaJ`wfr+kISA=J5Wo199xkDu z&5xNVUj4P_*75Rs@)mTjg7D*`yf*P#RUH_972`Rr<30L4raO>x+8r;?hn03HSoC(` zOo=bWc;am-@h`Cci4ej?i|dR_{DeU$AiqDyc$ShCl{o4LoGF92#4W+(5s?~~_yI`$ zKwRSI1P0Fw7(f-8De+S1J`TcW)(G9?1K{$gD6zl1#5nh7zazbb&S^3nV-Uq2iB#0p*W@Fci!n5@tf!2xcV-3m`Z@;XW5o{&EQ0z?6`%9>O1Bu7C#Y zgwW+bDkwf1ohA_mS&dsG!h!X|S9lO1osF)+S@` z1>&v0i(oE*q!(^9~$!V^mCa@pwJ&AX22d=m@3uU@bo|Cxb0+j*^+HNC&?5jDPC&Z1X&?%nH%xT~zJ5qiJWu!gu>I}rU?QV3KeypOE)G@ zL3>_x|!#l%Sz569t; z*hMABu?h9Wd)#w$9U+mAMtP!PTbeVI%ILpE(GD1lMHY7iwR^u;){w64XT9r z1|zG=?>M}Ia%Z@OMKOrfzYM$hy(uJ!m)n>=Xdi>PRG{^1x6JNjpIfbIdzIoMgLsD!@bLNO& zFV^$8Mz{p)uL$8*8H90rluO&voIz+7>p7?qD&efJBFLE``W!>fVo;O{+fLo%nq}Z0`s_3?C6YGhnEC>@|Jr3lLb|Fajl)Wy=z&+!_nNa+(p1U>B zO8{98a_Wj!pi?xL6il$f8HC$nJuhm6cVPWC$ZZN%q`T}aw&as{vAt*ql z0l2aXi?2bse?zYd&Il`m@<=T|0@+O=Wq^3Pdr5$8OLHDwC$r^rqc?Q#0^!HixJ^uO z@DR?#-Zj?KlcJ!8cm^g5K+ay#3dCMvulTS=Q0(`{dj6|p-wBKDAddYsm@hziq{gw^ zx3EEl6plT1uY$2H&6SD07WC#---UxV!_p9m(azvMzN}kfpgWU9lr$Juy|Kl=wEUg^%wl zm){zfn$s<4Dt0M!7lZu2x?Iu}Fow_zznh?(&?+JaK6oW@aGR}C3q2DR(*ehnZk*l2 z^RwNcO$&7tm$rq zv69>q!Ccj#kBSunC!Iy2^8j>0tMRee=P9k@G@PQ~XXBvid^=MK$A&-%c}xlXTB#Ny zaL&E%oG08l8{IjdyL0|_=hU6$^3zEKeo56>5okrbU4@K?F$;5N2VyzG$@IJ?9wl<6 z7rrUNFCBxd-*s_|{*dN#zI5q2!{#VJeoa>16D}e6Ntf`f2pronm(aC3Rc9AkaXTxY zc3Etg?-DM!g>DN~4%g=wBC!8z&$w)!c-Ey>cabY+fC#jvalUisq%3x+?QjW&^_Qp| z>OI~t?gBQRTOTaR^ggawPUhE~?v-Q?vBOdqXtftyLMIV8ke}Q+2VQik(R6qP+T2K*vcgb_s`9x&-@WmvBIYNpN3i ztx`F+?zgO%aIO?uG&-|at8`X+Uj$Mr5G9P2!e1qwYP6?Hry6axM%hxV!#J61^kGR3 zMxS(^bP0uBUkMnj5qvsbWHaA-S0wF4ph!MYn*5MaA$?_-N+?V2PVmVu0SD8FMW^D;*julM> zgZeqLHIO-vGa2B6Z7P}DyWDmqP#jxC2XBVEU6PA1Ef)?FfjoYyba*D1?Mg4)DFV#| zo|;@BpQpgg1b@49o#Y+LDWN-sB5--=9Xa$Ply({=(V*;c>z3OY(0x?vT1K~yWOIk# zE&`YNk_gm>Yn35Qcs+M3Jo=9B2PzrGM^U`Jf2h ztXAPANvGi(?MiRFCs2kKD&6PVXW;IUY=Z0JG8-)E1ovPd-T6+^xh_Y_Vv#~!q_K-N zw)2W)v+gyQ?tZO1&FH4eN{#EXoe11|54&;-^_#Tlb%%+O(g%K%xZS>tD%Jfy zX{W2~sqmhT{!TNk2s$zd_FpuJ<$NHzLCCf`^{9kJZ$U&Vy*=!MJ5^owm&UM{jgP_i z$p5a!Dh{da$3kQ`=#Ksa29jNO(x`_0?hsJ+rgUgJ>U+>#k|J}3-+QIOAbZMPn6y+vsys%wNO zA=bjNl1{6}Ig$?8!j~m|Dq8(rHz-Poj_LE9`;UU={`s*H=;aiJ@4AeG0AM20#@CEK zI`?HGu<83a8)U2{Os%q-xNg79XA8p+KoW|6{6+tON9d^k-E|fn4k*j90KzZ{&lem zpO$=@_up3es;jAnr4tortLX5XsrHCK@1?LZ7NU0SYN~eaa18ARAJgm*77?)==g@dv z*w3nE(;J5)IXt2&C0h@ckAze?q9#@D8JW{e;g)p+POtAJc_X?pg2sX2H|hD-kjl9* z-&3X|9&`IgqB-?FVIqXmuq;ePSaZ; zuU`!=!&}`^5d5a6s{i(~pP<~}Mh&RkUn7zP&%)xnbJn!M2TaF_j#W|<+2?9hx`^!D zoyfWiy`Vd&;1Gm&MGsHEkzR$yzTC@5o{0SMAm_N`KZJ%ayeh(fP}#cyN3Wy8Lg=O> z)A^iJZoG0#CxA{(5#ED<9+D{{AD2Ql*1@%q1ly{Tg}ez?M%O3=@K0EEYHhnuvTbEe zqa)WpVMRQ+DyOh8hJ~v=Sa_C%^v}~E+zR8br>4*KK(NA-H9Q?@MA?NkJRQ0uqMZ{%Aw`AD%RxK;rTV%001}d^ zDtw-{l5BMt1)FsKpn7U}HOkCvI{M)emR&oX-*k!#wU3hqf1Er$Jd{38ZgtpY9JSPr z3Q9RbvT~Gd9Gy0f+LdzD(Kxzh9Cg)>swL^@hLtjU#2BTL21hqm8}&kxs)i@SwFK@Zx*9t z($8MjuN@9VJk*wi@p0^B4Ez7+wEs zUj1H9ETC8$;0nPvxbl(BBX)%vmtoj(y@q|}Y#zBUsl+YViJS+@UQgp^Rai1P8iie> zbWnpDEs(f6EQETdXW@dW**tvKgz>;?j}yq2pllvSYr}XLokzmQl*q&B6{Yz&&c?=p zvUx18Q=aSNv?L8wbTSW4z6$d^a+j)>qCHqh*q6gRCv?J4Z1LIG!#wx(R2rR&H{ya` zeFRvc8FIFVRiz5V#5*f6}a!c_&)O!>>Zo0%NseL3Yt}FC&8zbu?bdG~^Qy}cXa(^u-wpr1CkK|B`S4IbCo#Xb0jqscZ$akrL=lDvwK?m_hk>CxOwMRLWy+`HM`dK$s3; zJV?DsCG!DQwgzG|lWgLkb^$8qLC$TWq28p@Vu;eGH>SJ@U0O$u!iAZBu5?PHbs@i# zrlkaht|%OiH~h2lPMRx#;CIr{T;~P3-bvF@^l|zo9EO^*#5-wHYl&qstQH$fZm?G+ zWSm~0PR$EjB9m>aI*1!=Fqr-%j6}_?1+xN_cOLrx>#Z$=>8&l4$!}_@n1UU55WlJA z9x&ZNd_U@r2UPXomV_PfjJLD=KylLjsBc1NCn%3{_zu2GskT)ffz;hs$UL|AlNjL$jn@fi8}WT5iXexZ7S&KSfhr{XlSd7*QM=8Rt~(x&+7by0`xL^tM{O}6c+~y_S3iMVqjs;UcFnm*?HAhe>4w-N04Ymu zu<(8=NX$E^Q!{G4jcn@{G`YcgKo>;PO84tsErcC|6|n76Ez;SR)>1%Wa%HafTwT5s?s6V>X2`eZb(wj`2~0#wH&ZL z);^j}E{1tNfnshlM)W8I^#~}p285+x7L!mB!d@_YNca;77r|U0;Rgtnn%GuFP#&T6 zZv{bHJ5p;f|7Y-Gy>lE0JVIfKF;3OPb-Ql1a zD7PVmZB1=!6DT(cf-e(m3Q!)|I^jCG&Dh@*Ne=MsZMnevLj^Hin2RJk#na+C>X`pa@_=? zxkPQ$G`@Nz3X0;m9R|07IKoH4j3R-8S_Nh$s5Qmo+z>eG-~RIVtALI?uMayoynP@V z$-J}JU0norzLT0FRV#<~=$A@qaAW;0)KE-#=u!%1BC-y{-FxJpK4w+^5jX+mky`#7 zr1XGvCurzKfp`LjG)LmN=A0BqIka=5j@0`_4R?nE!j22~oFq>)=2ruz807y@j)Z#5 z(;>1Ior6w;$$uN6>y3jz2UGQ|c`w}**lfneR=BqlbojP}vw-^o#J5g{p(D|+oYfh6 zW@j{Fq;1sz`I97HyPZtRd{F*sIb_|ok3!ehV_;lZP7LWD zp%R#&VsIbr6ns;tJH8W%<9`=yb^0rbV}0)#uNc%?fvzA~t?2B!1fH!7>Cw%_0$qv% z!kP3>jS&#_=y3>UG>CiBJ7D&aK%J-RDBL~-$|D=@(H$Wbg1ATDVX9Gc?jAje@adM( zCD304QayUG2}E;=2$Oy`dh}^Bq8_~$2D?BUVWrWSB0wC}U0}L`RF8gG;J8Om5kdE8 zY7c)KNz^@>8_C%-NL7BINB5P|SXSa51XB6vG4Iq28v5fhL`n@Sg+fK~0oL+1xY}kTe=J6ffbYK4#ri5zuLrGfR9*)6ldQ zC2HvVd*NX~c<6BL;SgZn1#u_vj>XyuLLRBHr|w9(12nXuKor4{Isq!d*j@alK7|bQ3!FCd+7bz1i zTA<2tzKtChHZ3=xns&Q&BT4V|8z2hx}0oc{j@5fpLFPQ3;*5a)e8Atfx;n%Vwe&h`X0qV=d}?N z@C8m#9_8=~xeKIDApcFV(ktZ25Cq)dxoxsa^q{Hsi4-HLWR zOJLHZxg0SfhAJc+F$f8}o2kg+`S>VMJ^=Ad9W&9kB0xMj4+8T5D35ITh_MRNauD~< z+}=7m&C#NoezXR9o+72*`2+O71F0iMTN8-p64?YsIAT z4r3d^yb4lBj7|c_M~uEA=p)7$Ap27!Q6DiV5#K+++L3;NBSw2Ejb$b7M=*24t35}- z&~)@Q+b+EusKDyw?o_i* z^bokhkIT)Sc!MeS0xI@`aPPtYkF+z7vwHgD|L4wU#uT&MnJMxmrjUHqSJ_(TUNbkh zQ3|apOC~~$(n69_Nn}ZjrLv?fSrS=8me5L3WG9g*OR`qh-}C)G@AK)-;P?CEH;>1w z&ikDA_Bq?-SZ>#mD8Y3E{V_j&%OvOZaYQ3DCHYWT%g5Qd8z@$L_ ze4ikG=*ZAd3Bq8T2p?BJtP)}AbPgNKtOsbPvnI-v7B6RXIyaGi14vza+Aag8dQ0?B zRfxno)DM?<)teCc#H;=>QavS8b?b4QA^_{)A4%-5r@v9_bj>jRQF-N=T8CxtR-=3+LGXNfK{?FsYLZDS}yXngg z#=;j>^8BkM;6DQ^e|qc(9^gVUJ_*Kzi}+9vL7YkBx?m%*;NLQU#(`~Id zZ<(M}iYy$L0;^Rq(ktvG>?@8Q<=VC45R}XQvHadpx0LlU1Fg83Dy_gB_KMRaX$yWE zSKb2Jw!>>y`d78v3C7%7ePr55S? z7%igI<_uQ1M%K)pfwR(*L*LXZd`_H^cGenmM*?kU7ZDf)62hkK>=mfzL3PSh%tz1_ zTad~b^sT$?7oxcE)pW9KNPk@N( z^F&k0hTBS12K94>!K3y0MAUTvTAwdAZ|Dl)i|X?%(r*>BS6jNhv2-4UW$g-QL~bt- z8)5yN1!6YHvJ^yT0>^{&ViSJuB)7Zh_U)p9=&I=HHptU8 ztRG%2`sC?`A$}o9y?y?!_UbClrzSKASiDXBE`k$3>ONrfb9W!Xa1Mo|5W ziGF~9%mAidPm z{pd&5L!5>E&vq8FgBD1}j;$Xa*xoFhk7Qqf>lJK+vsoojQNS;Q{T5W)H zaV1alBE%(d4Fmc#bqDwY^P$MGlW*OXd~UTJhJvpY6-%5Tw)% z*F5d=spjVoyl}of*(C^P_l~M3le=qHooj2#q?%pmB;0Y+_c=Z}1UWr!%B@-V9VgYg z$Q?Iragsl7+PUa7Ih%D zkZtqk4VxizT2W!KJi;7NaJsS06QZvv&@*;tSc;ylt18MkqT0`;*x}_8JEA(GB<%Fl z@%|)Zb&(xW4Ssj|?~bSvE!oF+D!;ktpwph6{7J^)MVUubFD>#%R1XmjJp?+Y$d0I< zPLw+`ImH{=W*VI#qMf15k)bh>q1$R0niUzE78$z78(J0_deR%(P{R<>&d__2pPeJ4;+tKp z$6$j_*AV6Ms-V~o%r36s4$;n?rz3Zsk7P=Vb6Ze#>V^wy$Pn#h?vG@?k7QaF*L5

    xvgZFN5 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�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 OI~fI>6B!nlx&H^bC4<)h literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/src/c_lib.rs b/ivy/engines/XLA/rust_api/src/c_lib.rs new file mode 100644 index 0000000000000..556531efa3533 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/c_lib.rs @@ -0,0 +1,6 @@ +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] +#![allow(dead_code)] + +include!(concat!(env!("OUT_DIR"), "/c_xla.rs")); diff --git a/ivy/engines/XLA/rust_api/src/error.rs b/ivy/engines/XLA/rust_api/src/error.rs new file mode 100644 index 0000000000000..08c53368034f7 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/error.rs @@ -0,0 +1,89 @@ +use pyo3::prelude::*; +use pyo3::exceptions::{PyOSError}; +use std::str::Utf8Error; + +/// Main library error type. +#[derive(thiserror::Error, Debug)] +pub enum Error { + /// Incorrect number of elements. + #[error("wrong element count {element_count} for dims {dims:?}")] + WrongElementCount { dims: Vec, element_count: usize }, + + /// Error from the xla C++ library. + #[error("xla error {msg}\n{backtrace}")] + XlaError { msg: String, backtrace: String }, + + #[error("unexpected element type {0}")] + UnexpectedElementType(i32), + + #[error("unexpected number of dimensions, expected: {expected}, got: {got} ({dims:?})")] + UnexpectedNumberOfDims { expected: usize, got: usize, dims: Vec }, + + #[error("not an element type, got: {got:?}")] + NotAnElementType { got: crate::PrimitiveType }, + + #[error("not an array, expected: {expected:?}, got: {got:?}")] + NotAnArray { expected: Option, got: crate::Shape }, + + #[error("cannot handle unsupported shapes {shape:?}")] + UnsupportedShape { shape: crate::Shape }, + + #[error("unexpected number of tuple elements, expected: {expected}, got: {got}")] + UnexpectedNumberOfElemsInTuple { expected: usize, got: usize }, + + #[error("element type mismatch, on-device: {on_device:?}, on-host: {on_host:?}")] + ElementTypeMismatch { on_device: crate::ElementType, on_host: crate::ElementType }, + + #[error("unsupported element type for {op}: {ty:?}")] + UnsupportedElementType { ty: crate::PrimitiveType, op: &'static str }, + + #[error( + "target buffer is too large, offset {offset}, shape {shape:?}, buffer_len: {buffer_len}" + )] + TargetBufferIsTooLarge { offset: usize, shape: crate::ArrayShape, buffer_len: usize }, + + #[error("binary buffer is too large, element count {element_count}, buffer_len: {buffer_len}")] + BinaryBufferIsTooLarge { element_count: usize, buffer_len: usize }, + + #[error("empty literal")] + EmptyLiteral, + + #[error("index out of bounds {index}, rank {rank}")] + IndexOutOfBounds { index: i64, rank: usize }, + + #[error("npy/npz error {0}")] + Npy(String), + + /// I/O error. + #[error(transparent)] + Io(#[from] std::io::Error), + + /// Zip file format error. + #[error(transparent)] + Zip(#[from] zip::result::ZipError), + + /// Integer parse error. + #[error(transparent)] + ParseInt(#[from] std::num::ParseIntError), + + #[error("cannot create literal with shape {ty:?} {dims:?} from bytes data with len {data_len_in_bytes}")] + CannotCreateLiteralWithData { + data_len_in_bytes: usize, + ty: crate::PrimitiveType, + dims: Vec, + }, + + #[error("invalid dimensions in matmul, lhs: {lhs_dims:?}, rhs: {rhs_dims:?}, {msg}")] + MatMulIncorrectDims { lhs_dims: Vec, rhs_dims: Vec, msg: &'static str }, + + #[error("Invalid UTF-8 data: {0}")] + Utf8Error(#[from] Utf8Error), +} + +impl From for PyErr { + fn from(err: Error) -> PyErr { + PyOSError::new_err(err.to_string()) + } +} + +pub type Result = std::result::Result; diff --git a/ivy/engines/XLA/rust_api/src/lib.rs b/ivy/engines/XLA/rust_api/src/lib.rs new file mode 100644 index 0000000000000..06df9110db4ff --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/lib.rs @@ -0,0 +1,1821 @@ +mod c_lib; +mod error; +mod wrappers; + +use std::rc::Rc; +pub use error::{Error, Result}; +pub use wrappers::*; +use pyo3::prelude::*; +use ndarray::{ArrayD}; +use numpy::{PyArrayDyn, ToPyArray}; +use half::{f16, bf16}; +use pyo3::exceptions::PyTypeError; +use pyo3::{exceptions, wrap_pyfunction}; + + +#[derive(Debug, Copy, Clone)] +pub enum TfLogLevel { + Info, + Warning, + Error, + Fatal, +} + +impl TfLogLevel { + fn as_env_variable_str(&self) -> &'static str { + match self { + Self::Info => "0", + Self::Warning => "1", + Self::Error => "2", + Self::Fatal => "3", + } + } +} + +pub fn set_tf_min_log_level(log_level: TfLogLevel) { + std::env::set_var("TF_CPP_MIN_LOG_LEVEL", log_level.as_env_variable_str()) +} + + +#[derive(Debug)] +enum ArrayDyn { + Pred(ArrayD), + I8(ArrayD), + I16(ArrayD), + I32(ArrayD), + I64(ArrayD), + U8(ArrayD), + U16(ArrayD), + U32(ArrayD), + U64(ArrayD), + Bf16(ArrayD), + F16(ArrayD), + F32(ArrayD), + F64(ArrayD), +} + +#[derive(Debug)] +#[pyclass(unsendable)] +pub struct Tensor { + x: ArrayDyn +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::Pred(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::I8(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::I16(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::I32(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::I64(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::U8(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::U16(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::U32(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::U64(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::Bf16(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::F16(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::F32(x), + } + } +} + +impl From> for Tensor { + fn from(x: ArrayD) -> Self { + Tensor { + x: ArrayDyn::F64(x), + } + } +} + + +#[pymethods] +impl Tensor { + fn __repr__(&self) -> PyResult { + let desc = match &self.x { + ArrayDyn::Pred(array) => format!("{:?}", array), + ArrayDyn::I8(array) => format!("{:?}", array), + ArrayDyn::I16(array) => format!("{:?}", array), + ArrayDyn::I32(array) => format!("{:?}", array), + ArrayDyn::I64(array) => format!("{:?}", array), + ArrayDyn::U8(array) => format!("{:?}", array), + ArrayDyn::U16(array) => format!("{:?}", array), + ArrayDyn::U32(array) => format!("{:?}", array), + ArrayDyn::U64(array) => format!("{:?}", array), + ArrayDyn::Bf16(array) => format!("{:?}", array), + ArrayDyn::F16(array) => format!("{:?}", array), + ArrayDyn::F32(array) => format!("{:?}", array), + ArrayDyn::F64(array) => format!("{:?}", array), + }; + Ok(format!("Tensor({})", desc)) + } +} + +#[derive(Clone, Debug)] +#[pyclass(unsendable)] +struct Bf16Array { + x: Py> +} +impl From>> for Bf16Array { + fn from(x: Py>) -> Self { + Bf16Array { + x + } + } +} + +#[derive(Clone, Debug)] +#[pyclass(unsendable)] +struct F16Array { + x: Py> +} +impl From>> for F16Array { + fn from(x: Py>) -> Self { + F16Array { + x + } + } +} + +#[pyfunction] +fn create_bf16_array(x: Py>) -> PyResult { + let x = Bf16Array{x}; + Ok(x) +} + +#[pyfunction] +fn create_f16_array(x: Py>) -> PyResult { + let x = F16Array{x}; + Ok(x) +} + +#[derive(Debug)] +enum DynamicPyArray { + Pred(Py>), + I8(Py>), + I16(Py>), + I32(Py>), + I64(Py>), + U8(Py>), + U16(Py>), + U32(Py>), + U64(Py>), + Bf16(Bf16Array), + F16(F16Array), + F32(Py>), + F64(Py>), +} + +impl<'source> FromPyObject<'source> for DynamicPyArray { + fn extract(obj: &'source PyAny) -> PyResult { + if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::Pred(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::I8(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::I16(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::I32(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::I64(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::U8(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::U16(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::U32(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::U64(arr)) + } + else if let Ok(arr) = obj.extract::() { + Ok(DynamicPyArray::Bf16(arr)) + } + else if let Ok(arr) = obj.extract::() { + Ok(DynamicPyArray::F16(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::F32(arr)) + } + else if let Ok(arr) = obj.extract::>>() { + Ok(DynamicPyArray::F64(arr)) + } + else { + Err(PyErr::from(PyTypeError::new_err( + "Expected a numpy array of one of the valid types", + ))) + } + } +} + +#[pyfunction] +fn constant_array(py: Python, array: DynamicPyArray, builder: XlaBuilder) -> PyResult { + match array { + DynamicPyArray::Pred(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::I8(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::I16(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::I32(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::I64(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::U8(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::U16(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::U32(py_array) => { + let x = Literal::vec1(unsafe { py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice() }); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::U64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::Bf16(py_array) => { + let x = Literal::vec1(unsafe {py_array.x.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}).convert(PrimitiveType::Bf16)?; + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::F16(py_array) => { + let x = Literal::vec1(unsafe {py_array.x.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}).convert(PrimitiveType::F16)?; + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::F32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + DynamicPyArray::F64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + let x = builder.constant_literal(&x)?; + Ok(x) + }, + } +} + + +#[pyfunction] +fn gather_params(py: Python, arrays: Vec) -> PyResult> { + let mut literals = Vec::with_capacity(arrays.len()); + for array in arrays { + match array { + DynamicPyArray::Pred(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::I8(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::I16(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::I32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::I64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::U8(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::U16(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::U32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::U64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::Bf16(py_array) => { + let x = Literal::vec1(unsafe {py_array.x.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}).convert(PrimitiveType::Bf16)?; + literals.push(x); + }, + DynamicPyArray::F16(py_array) => { + let x = Literal::vec1(unsafe {py_array.x.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}).convert(PrimitiveType::F16)?; + literals.push(x); + }, + DynamicPyArray::F32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + DynamicPyArray::F64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + literals.push(x); + }, + } + } + Ok(literals) +} + +#[pyfunction] +fn new_input(py: Python, input: DynamicPyArray) -> PyResult { + match input { + DynamicPyArray::Pred(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::I8(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::I16(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::I32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::I64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::U8(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::U16(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::U32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::U64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::Bf16(py_array) => { + let x = Literal::vec1(unsafe {py_array.x.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}).convert(PrimitiveType::Bf16)?; + Ok(x) + }, + DynamicPyArray::F16(py_array) => { + let x = Literal::vec1(unsafe {py_array.x.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}).convert(PrimitiveType::F16)?; + Ok(x) + }, + DynamicPyArray::F32(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + DynamicPyArray::F64(py_array) => { + let x = Literal::vec1(unsafe {py_array.as_ref(py).as_array().to_owned().into_raw_vec().as_slice()}); + Ok(x) + }, + } +} + +#[pyfunction] +fn swap_param(x: Literal, mut params: Vec) -> PyResult> { + params[0] = x; + Ok(params) +} + +#[pyfunction] +fn to_tensor(literal: Literal) -> PyResult { + let shape = literal.shape().unwrap(); + let shape = ArrayShape::try_from(&shape).unwrap(); + let shape: Vec = shape.dims().iter().map(|&x| x as usize).collect(); + + match literal.ty().unwrap() { + ElementType::Pred => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::S8 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::S16 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::S32 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::S64 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::U8 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::U16 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::U32 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::U64 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::Bf16 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::F16 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::F32 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + ElementType::F64 => { + let data: Vec = literal.to_vec().unwrap(); + let array = ArrayD::from_shape_vec(shape, data).unwrap(); + Ok(Tensor::from(array)) + } + _ => Err(PyErr::from(PyTypeError::new_err( + "Unsupported date type", + ))) + + } +} + +#[pyfunction] +fn to_numpy(py: Python, literal: Literal) -> PyResult { + let shape = literal.shape().unwrap(); + let shape = ArrayShape::try_from(&shape).unwrap(); + let shape: Vec = shape.dims().iter().map(|&x| x as usize).collect(); + + match literal.ty().unwrap() { + ElementType::Pred => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::S8 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::S16 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::S32 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::S64 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::U8 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::U16 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::U32 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::U64 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::Bf16 | ElementType::F16 => { + let literal = literal.convert(PrimitiveType::F32)?; + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::F32 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + ElementType::F64 => { + let data: Vec = literal.to_vec()?; + let array = ArrayD::from_shape_vec(shape, data).unwrap().to_pyarray(py); + Ok(array.to_object(py)) + } + _ => Err(PyErr::from(PyTypeError::new_err( + "Unsupported data type", + ))) + } +} + +#[pyfunction] +fn to_tuple(literal: Literal) -> PyResult> { + let y = literal.to_tuple()?; + Ok(y) +} + + +macro_rules! param_gen { + ($name:ident, $type:ty) => { + #[pyfunction] + fn $name(builder: XlaBuilder, param_number: i64, dims: Vec, name: &str) -> PyResult { + let shape = &Shape::array::<$type>(dims); + let param = builder.parameter_s(param_number, shape, name)?; + Ok(param) + } + } +} + +param_gen!(param_pred, bool); +param_gen!(param_i8, i8); +param_gen!(param_i16, i16); +param_gen!(param_i32, i32); +param_gen!(param_i64, i64); +param_gen!(param_u8, u8); +param_gen!(param_u16, u16); +param_gen!(param_u32, u32); +param_gen!(param_u64, u64); +param_gen!(param_bf16, Bf16); +param_gen!(param_f16, F16); +param_gen!(param_f32, f32); +param_gen!(param_f64, f64); + + +macro_rules! constant { + ($name:ident, $type:ty) => { + #[pyfunction] + fn $name(b: XlaBuilder, v: $type) -> PyResult { + let c = b.c0(v)?; + Ok(c) + } + }; +} + +constant!(constant_bool, bool); +constant!(constant_i8, i8); +constant!(constant_i16, i16); +constant!(constant_i32, i32); +constant!(constant_i64, i64); +constant!(constant_u8, u8); +constant!(constant_u16, u16); +constant!(constant_u32, u32); +constant!(constant_u64, u64); +constant!(constant_f32, f32); +constant!(constant_f64, f64); + + +macro_rules! astype { + ($name:ident, $primitive:ident) => { + #[pyfunction] + fn $name(x: XlaOp) -> PyResult { + let y = x.astype(PrimitiveType::$primitive)?; + Ok(y) + } + }; +} + +astype!(astype_bool, Pred); +astype!(astype_i8, S8); +astype!(astype_i16, S16); +astype!(astype_i32, S32); +astype!(astype_i64, S64); +astype!(astype_u8, U8); +astype!(astype_u16, U16); +astype!(astype_u32, U32); +astype!(astype_u64, U64); +astype!(astype_bf16, Bf16); +astype!(astype_f16, F16); +astype!(astype_f32, F32); +astype!(astype_f64, F64); + + +#[pyfunction] +fn cpu_client() -> PyResult { + let client = PjRtClient::cpu()?; + Ok(client) +} + +#[pyfunction] +fn gpu_client(memory_fraction: f64, preallocate: bool) -> PyResult { + let client = PjRtClient::gpu(memory_fraction, preallocate)?; + Ok(client) +} + +#[pyfunction] +fn xla_builder(name: &str) -> PyResult { + let builder = XlaBuilder::new(name); + Ok(builder) +} + +#[pyfunction] +fn build(op: XlaOp) -> PyResult { + let computation = op.build()?; + Ok(computation) +} + +#[pyfunction] +fn get_hlo_proto(comp: &XlaComputation) -> PyResult { + let hlo_proto = comp.proto(); + Ok(hlo_proto) +} + +#[pyfunction] +fn hlo_module_from_proto(proto: &HloModuleProto) -> PyResult { + let hlo_module = HloModule::from_proto(proto)?; + Ok(hlo_module) +} + +#[pyfunction] +fn hlo_module_to_string(module: &HloModule) -> PyResult { + let module_str = module.to_string()?; + Ok(module_str) +} + +#[pyfunction] +fn get_hlo_module_entry_computation(module: &HloModule) -> PyResult { + let hlo_comp = module.get_entry_computation()?; + Ok(hlo_comp) +} + +#[pyfunction] +fn computation_count(module: &HloModule) -> PyResult { + let comp_count = module.computation_count()?; + Ok(comp_count) +} + +#[pyfunction] +fn instruction_count(module: &HloModule) -> PyResult { + let instruct_count = module.instruction_count()?; + Ok(instruct_count) +} + +#[pyfunction] +fn compile(client: PjRtClient, computation: &XlaComputation) -> PyResult { + let executable = client.compile(computation)?; + Ok(executable) +} + +#[pyfunction] +fn execute(executable: &PjRtLoadedExecutable, args: Vec) -> PyResult { + let buffer = executable.execute::(args.as_slice())?[0].remove(0); + Ok(buffer) +} + +#[pyfunction] +fn to_literal(buffer: &PjRtBuffer) -> PyResult { + let literal = buffer.to_literal_sync()?; + Ok(literal) +} + +#[pyfunction] +fn add(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.add_(rhs)?; + Ok(y) +} + +#[pyfunction] +fn sub(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.sub_(rhs)?; + Ok(y) +} + +#[pyfunction] +fn mul(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.mul_(rhs)?; + Ok(y) +} + +#[pyfunction] +fn div(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.div_(rhs)?; + Ok(y) +} + +#[pyfunction] +fn rem(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.rem_(rhs)?; + Ok(y) +} + +#[pyfunction] +fn pow(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.pow(rhs)?; + Ok(y) +} + +#[pyfunction] +fn max(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.max(rhs)?; + Ok(y) +} + +#[pyfunction] +fn min(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.min(rhs)?; + Ok(y) +} + +#[pyfunction] +fn _and(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.and(rhs)?; + Ok(y) +} + +#[pyfunction] +fn _or(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.or(rhs)?; + Ok(y) +} + +#[pyfunction] +fn xor(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.xor(rhs)?; + Ok(y) +} + +#[pyfunction] +fn eq(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.eq(rhs)?; + Ok(y) +} + +#[pyfunction] +fn ne(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.ne(rhs)?; + Ok(y) +} + +#[pyfunction] +fn ge(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.ge(rhs)?; + Ok(y) +} + +#[pyfunction] +fn gt(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.gt(rhs)?; + Ok(y) +} + +#[pyfunction] +fn le(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.le(rhs)?; + Ok(y) +} + +#[pyfunction] +fn lt(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.lt(rhs)?; + Ok(y) +} + +#[pyfunction] +fn lshift(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.lshift(rhs)?; + Ok(y) +} + +#[pyfunction] +fn rshift(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.rshift_arith(rhs)?; + Ok(y) +} + +#[pyfunction] +fn atan2(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.atan2(rhs)?; + Ok(y) +} + +#[pyfunction] +fn dot(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.dot(rhs)?; + Ok(y) +} + +#[pyfunction] +fn matmul(lhs: XlaOp, rhs: &XlaOp) -> PyResult { + let y = lhs.matmul(rhs)?; + Ok(y) +} + +#[pyfunction] +fn population_count(x: XlaOp) -> PyResult { + let y = x.population_count()?; + Ok(y) +} + +#[pyfunction] +fn _not(x: XlaOp) -> PyResult { + let y = x.not()?; + Ok(y) +} + +#[pyfunction] +fn neg(x: XlaOp) -> PyResult { + let y = x.neg()?; + Ok(y) +} + +#[pyfunction] +fn abs(x: XlaOp) -> PyResult { + let y = x.abs()?; + Ok(y) +} + +#[pyfunction] +fn floor(x: XlaOp) -> PyResult { + let y = x.floor()?; + Ok(y) +} + +#[pyfunction] +fn ceil(x: XlaOp) -> PyResult { + let y = x.ceil()?; + Ok(y) +} + +#[pyfunction] +fn round(x: XlaOp) -> PyResult { + let y = x.round()?; + Ok(y) +} + +#[pyfunction] +fn round_nearest_even(x: XlaOp) -> PyResult { + let y = x.round_nearest_even()?; + Ok(y) +} + +#[pyfunction] +fn exp(x: XlaOp) -> PyResult { + let y = x.exp()?; + Ok(y) +} + +#[pyfunction] +fn expm1(x: XlaOp) -> PyResult { + let y = x.expm1()?; + Ok(y) +} + +#[pyfunction] +fn log(x: XlaOp) -> PyResult { + let y = x.log()?; + Ok(y) +} + +#[pyfunction] +fn log1p(x: XlaOp) -> PyResult { + let y = x.log1p()?; + Ok(y) +} + +#[pyfunction] +fn logistic(x: XlaOp) -> PyResult { + let y = x.logistic()?; + Ok(y) +} + +#[pyfunction] +fn sign(x: XlaOp) -> PyResult { + let y = x.sign()?; + Ok(y) +} + +#[pyfunction] +fn clz(x: XlaOp) -> PyResult { + let y = x.clz()?; + Ok(y) +} + +#[pyfunction] +fn sin(x: XlaOp) -> PyResult { + let y = x.sin()?; + Ok(y) +} + +#[pyfunction] +fn cos(x: XlaOp) -> PyResult { + let y = x.cos()?; + Ok(y) +} + +#[pyfunction] +fn tanh(x: XlaOp) -> PyResult { + let y = x.tanh()?; + Ok(y) +} + +#[pyfunction] +fn real(x: XlaOp) -> PyResult { + let y = x.real()?; + Ok(y) +} + +#[pyfunction] +fn imag(x: XlaOp) -> PyResult { + let y = x.imag()?; + Ok(y) +} + +#[pyfunction] +fn conj(x: XlaOp) -> PyResult { + let y = x.conj()?; + Ok(y) +} + +#[pyfunction] +fn square(x: XlaOp) -> PyResult { + let y = x.square()?; + Ok(y) +} + +#[pyfunction] +fn sqrt(x: XlaOp) -> PyResult { + let y = x.sqrt()?; + Ok(y) +} + +#[pyfunction] +fn rsqrt(x: XlaOp) -> PyResult { + let y = x.rsqrt()?; + Ok(y) +} + +#[pyfunction] +fn cbrt(x: XlaOp) -> PyResult { + let y = x.cbrt()?; + Ok(y) +} + +#[pyfunction] +fn upper_triangle(x: XlaOp) -> PyResult { + let y = x.upper_triangle()?; + Ok(y) +} + +#[pyfunction] +fn lower_triangle(x: XlaOp) -> PyResult { + let y = x.lower_triangle()?; + Ok(y) +} + +#[pyfunction] +fn erf(x: XlaOp) -> PyResult { + let y = x.erf()?; + Ok(y) +} + +#[pyfunction] +fn is_finite(x: XlaOp) -> PyResult { + let y = x.is_finite()?; + Ok(y) +} + +#[pyfunction] +fn zeros_like(x: XlaOp) -> PyResult { + let y = x.zeros_like()?; + Ok(y) +} + +#[pyfunction] +fn copy(x: XlaOp) -> PyResult { + let y = x.copy()?; + Ok(y) +} + +#[pyfunction] +fn sigmoid(x: XlaOp) -> PyResult { + let y = x.sigmoid()?; + Ok(y) +} + +#[pyfunction] +fn silu(x: XlaOp) -> PyResult { + let y = x.silu()?; + Ok(y) +} + +#[pyfunction] +fn relu(x: XlaOp) -> PyResult { + let y = x.relu()?; + Ok(y) +} + +#[pyfunction] +fn gelu(x: XlaOp) -> PyResult { + let y = x.gelu()?; + Ok(y) +} + +#[pyfunction] +fn gelu_approx(x: XlaOp) -> PyResult { + let y = x.gelu_approx()?; + Ok(y) +} + +#[pyfunction] +fn einsum1(x: XlaOp, config: &str) -> PyResult { + let y = x.einsum1(config)?; + Ok(y) +} + +#[pyfunction] +fn einsum2(x: XlaOp, rhs: &XlaOp, config: &str) -> PyResult { + let y = x.einsum2(rhs, config)?; + Ok(y) +} + +#[pyfunction] +fn reshape(x: XlaOp, dims: Vec) -> PyResult { + let dims = dims.as_slice(); + let y = x.reshape(dims)?; + Ok(y) +} + +#[pyfunction] +fn dynamic_reshape( + x: XlaOp, + dim_sizes: Vec, + new_size_bounds: Vec, + dims_are_dynamic: Vec +) -> PyResult { + let dim_sizes = dim_sizes.as_slice(); + let new_size_bounds = new_size_bounds.as_slice(); + let y = x.dynamic_reshape(dim_sizes, new_size_bounds, dims_are_dynamic)?; + Ok(y) +} + +#[pyfunction] +fn broadcast(x: XlaOp, dims: Vec) -> PyResult { + let dims = dims.as_slice(); + let y = x.broadcast(dims)?; + Ok(y) +} + +#[pyfunction] +fn broadcast_in_dim(x: XlaOp, out_dims: Vec, broadcast_dims: Vec) -> PyResult { + let out_dims = out_dims.as_slice(); + let broadcast_dims = broadcast_dims.as_slice(); + let y = x.broadcast_in_dim(out_dims, broadcast_dims)?; + Ok(y) +} + +#[pyfunction] +fn collapse(x: XlaOp, dims: Vec) -> PyResult { + let dims = dims.as_slice(); + let y = x.collapse(dims)?; + Ok(y) +} + +#[pyfunction] +fn transpose(x: XlaOp, index_perm: Vec) -> PyResult { + let index_perm = index_perm.as_slice(); + let y = x.transpose(index_perm)?; + Ok(y) +} + +#[pyfunction] +fn swap_dims(x: XlaOp, index1: i64, index2: i64) -> PyResult { + let y = x.swap_dims(index1, index2)?; + Ok(y) +} + +#[pyfunction] +fn pad(x: XlaOp, padding_value: &XlaOp, padding_config:Vec<(i64, i64, i64)> ) -> PyResult { + let y = x.pad(padding_value, padding_config)?; + Ok(y) +} + +#[pyfunction] +fn pad_in_dim(x: XlaOp, padding_value: &XlaOp, dinmo: i64, pad_low: i64, pad_high: i64) -> PyResult { + let y = x.pad_in_dim(padding_value, dinmo, pad_low, pad_high)?; + Ok(y) +} + +#[pyfunction] +fn slice(x: XlaOp, start_indices: Vec, limit_indices: Vec, strides: Vec) -> PyResult { + let start_indices = start_indices.as_slice(); + let limit_indices = limit_indices.as_slice(); + let strides = strides.as_slice(); + let y = x.slice(start_indices, limit_indices, strides)?; + Ok(y) +} + +#[pyfunction] +fn slice_in_dim(x: XlaOp, start_index: i64, stop_index: i64, stride: i64, dim: i64) -> PyResult { + let y = x.slice_in_dim(start_index, stop_index, stride, dim)?; + Ok(y) +} + +#[pyfunction] +fn dynamic_slice(x: XlaOp, start_indices: Vec, slice_indices: Vec) -> PyResult { + let start_indices = start_indices.as_slice(); + let slice_indices = slice_indices.as_slice(); + let y = x.dynamic_slice(start_indices, slice_indices)?; + Ok(y) +} + +#[pyfunction] +fn dynamic_update_slice(x: XlaOp, update: &XlaOp, start_indices: Vec) -> PyResult { + let start_indices = start_indices.as_slice(); + let y = x.dynamic_update_slice(update, start_indices)?; + Ok(y) +} + +#[pyfunction] +fn at(x: XlaOp, index_in_dim: i64, dim_index: i64) -> PyResult { + let y = x.at(index_in_dim, dim_index)?; + Ok(y) +} + +#[pyfunction] +fn squeeze(x: XlaOp, index: i64) -> PyResult { + let y = x.squeeze(index)?; + Ok(y) +} + +#[pyfunction] +fn clamp(x: XlaOp, min: &XlaOp, max: &XlaOp) -> PyResult { + let y = x.clamp(min, max)?; + Ok(y) +} + +#[pyfunction] +fn concat(x: XlaOp, args: Vec, dim: i64) -> PyResult { + let args = args.as_slice(); + let y = x.concat_in_dim(args, dim)?; + Ok(y) +} + +#[pyfunction] +fn get_tuple_element(x: XlaOp, index: i64) -> PyResult { + let y = x.get_tuple_element(index)?; + Ok(y) +} + +#[pyfunction] +fn rng_uniform(min: &XlaOp, max: &XlaOp, shape: &ArrayShape) -> PyResult { + let y = XlaOp::rng_uniform(min, max, shape)?; + Ok(y) +} + +#[pyfunction] +fn rng_normal(mu: &XlaOp, sigma: &XlaOp, shape: &ArrayShape) -> PyResult { + let y = XlaOp::rng_normal(mu, sigma, shape)?; + Ok(y) +} + +#[pyfunction] +fn astype(x: XlaOp, ty: PrimitiveType) -> PyResult { + let y = x.astype(ty)?; + Ok(y) +} + +#[pyfunction] +fn dimension_size(x: XlaOp, index: i64) -> PyResult { + let y = x.dimensions_size(index)?; + Ok(y) +} + +#[pyfunction] +fn reduce( + x: XlaOp, + init_value: XlaOp, + comp: &XlaComputation, + dims: Vec, + keep_dims: bool, +) -> PyResult { + let dims = dims.as_slice(); + let y = x.reduce(init_value, comp, dims, keep_dims)?; + Ok(y) +} + +#[pyfunction] +fn call(builder: XlaBuilder, computation: &XlaComputation, operands: Vec) -> PyResult { + let operands = operands.as_slice(); + let y = builder.call(computation, operands)?; + Ok(y) +} + +#[pyfunction] +fn map(builder: XlaBuilder, + operands: Vec, + computation: &XlaComputation, + dims: Vec, + static_operands: Vec +) -> PyResult { + let operands = operands.as_slice(); + let dims = dims.as_slice(); + let static_operands = static_operands.as_slice(); + let y = builder.map(operands, computation, dims, static_operands)?; + Ok(y) +} + +#[pyfunction] +fn select(x: XlaOp, on_true: &XlaOp, on_false: &XlaOp) -> PyResult { + let y = x.select(on_true, on_false)?; + Ok(y) +} + +#[pyfunction] +fn while_loop(cond: &XlaComputation, body: &XlaComputation, init: XlaOp) -> PyResult { + let y = XlaOp::while_(cond, body, init)?; + Ok(y) +} + +#[pyfunction] +fn conditional( + x: XlaOp, + true_op: XlaOp, + true_comp: &XlaComputation, + false_op: XlaOp, + false_comp: &XlaComputation, +) -> PyResult { + let y = x.conditional(true_op, true_comp,false_op, false_comp)?; + Ok(y) +} + +#[pyfunction] +fn conv( + x: XlaOp, + rhs: &XlaOp, + window_strides: Vec, + padding: &str, + feature_group_count: i64, + batch_group_count: i64, +) -> PyResult { + let window_strides = window_strides.as_slice(); + let y = x.conv(rhs, window_strides, padding, feature_group_count, batch_group_count)?; + Ok(y) +} + +#[pyfunction] +fn conv_general_dilated( + x: XlaOp, + rhs: &XlaOp, + window_strides: Vec, + padding: Vec<(i64, i64)>, + lhs_dilations: Vec, + rhs_dilations: Vec, + input_batch_dim: i64, + input_feature_dim: i64, + input_spatial_dims: Vec, + output_batch_dim: i64, + output_feature_dim: i64, + output_spatial_dims: Vec, + kernel_input_feature_dim: i64, + kernel_output_feature_dim: i64, + kernel_spatial_dims: Vec, + feature_group_count: i64, + batch_group_count: i64 +) -> PyResult { + let window_strides = window_strides.as_slice(); + let padding = padding.as_slice(); + let lhs_dilations = lhs_dilations.as_slice(); + let rhs_dilations = rhs_dilations.as_slice(); + let input_spatial_dims = input_spatial_dims.as_slice(); + let output_spatial_dims = output_spatial_dims.as_slice(); + let kernel_spatial_dims = kernel_spatial_dims.as_slice(); + let y = x.conv_general_dilated( + rhs, + window_strides, + padding, + lhs_dilations, + rhs_dilations, + &input_batch_dim, + &input_feature_dim, + input_spatial_dims, + &output_batch_dim, + &output_feature_dim, + output_spatial_dims, + &kernel_input_feature_dim, + &kernel_output_feature_dim, + kernel_spatial_dims, + feature_group_count, + batch_group_count, + )?; + Ok(y) +} + +#[pyfunction] +fn batch_norm_inference( + x: XlaOp, + scale: &XlaOp, + offset: &XlaOp, + mean: &XlaOp, + variance: &XlaOp, + epsilon: f32, + feature_index: i64, +) -> PyResult { + let y = x.batch_norm_inference( + scale, offset, mean, variance, epsilon, feature_index + )?; + Ok(y) +} + +#[pyfunction] +fn dot_general( + x: XlaOp, + rhs: &XlaOp, + lhs_contracting_dims: Vec, + rhs_contracting_dims: Vec, + lhs_batch_dims: Vec, + rhs_batch_dims: Vec, +) -> PyResult { + let lhs_contracting_dims = lhs_contracting_dims.as_slice(); + let rhs_contracting_dims = rhs_contracting_dims.as_slice(); + let lhs_batch_dims = lhs_batch_dims.as_slice(); + let rhs_batch_dims = rhs_batch_dims.as_slice(); + let y = x.dot_general( + rhs, + lhs_contracting_dims, + rhs_contracting_dims, + lhs_batch_dims, + rhs_batch_dims + )?; + Ok(y) +} + +#[pyfunction] +fn gather( + x: XlaOp, + start_indices: &XlaOp, + offset_dims: Vec, + collapsed_slice_dims: Vec, + start_index_map: Vec, + slice_sizes: Vec, + set_index_vector_dim: Option, +) -> PyResult { + let offset_dims = offset_dims.as_slice(); + let collapsed_slice_dims = collapsed_slice_dims.as_slice(); + let start_index_map = start_index_map.as_slice(); + let slice_sizes = slice_sizes.as_slice(); + let y = x.gather( + start_indices, + offset_dims, + collapsed_slice_dims, + start_index_map, + set_index_vector_dim, + slice_sizes, + )?; + Ok(y) +} + +#[pyfunction] +fn scatter( + operands: Vec, + scatter_indices: &XlaOp, + updates: Vec, + update_computation: &XlaComputation, + update_window_dims: Vec, + inserted_window_dims: Vec, + scatter_dims_to_operand_dims: Vec, + index_vector_dim: i64 +) -> PyResult { + let operands = operands.as_slice(); + let updates = updates.as_slice(); + let update_window_dims = update_window_dims.as_slice(); + let inserted_window_dims = inserted_window_dims.as_slice(); + let scatter_dims_to_operand_dims = scatter_dims_to_operand_dims.as_slice(); + let y = XlaOp::scatter( + operands, + scatter_indices, + updates, + update_computation, + update_window_dims, + inserted_window_dims, + scatter_dims_to_operand_dims, + index_vector_dim + )?; + Ok(y) +} + +#[pyfunction] +fn take(x: XlaOp, indices: &XlaOp, axis: i64) -> PyResult { + let y = x.take(indices, axis)?; + Ok(y) +} + +#[pyfunction] +fn reduce_sum(x: XlaOp, dims: Vec, keep_dims: bool) -> PyResult { + let dims = dims.as_slice(); + let y = x.reduce_sum(dims, keep_dims)?; + Ok(y) +} + +#[pyfunction] +fn reduce_mean(x: XlaOp, dims: Vec, keep_dims: bool) -> PyResult { + let dims = dims.as_slice(); + let y = x.reduce_mean(dims, keep_dims)?; + Ok(y) +} + +#[pyfunction] +fn reduce_max(x: XlaOp, dims: Vec, keep_dims: bool) -> PyResult { + let dims = dims.as_slice(); + let y = x.reduce_max(dims, keep_dims)?; + Ok(y) +} + +#[pyfunction] +fn reduce_min(x: XlaOp, dims: Vec, keep_dims: bool) -> PyResult { + let dims = dims.as_slice(); + let y = x.reduce_min(dims, keep_dims)?; + Ok(y) +} + +#[pyfunction] +fn softmax(x: XlaOp, axis: i64) -> PyResult { + let y = x.softmax(axis)?; + Ok(y) +} + +#[pyfunction] +fn layer_norm(x: XlaOp, dims: Vec, scale: &XlaOp, bias: &XlaOp, eps: f64) -> PyResult { + let dims = dims.as_slice(); + let y = x.layer_norm(dims, scale, bias, eps)?; + Ok(y) +} + +#[pyfunction] +fn primitive_type(x: XlaOp) -> PyResult { + let prim_type = x.primitive_type()?; + Ok(prim_type) +} + +#[pyfunction] +fn element_type(x: XlaOp) -> PyResult { + let elem_type = PrimitiveType::element_type(x.ty()?)?; + Ok(elem_type) +} + +#[pyfunction] +fn dims(x: XlaOp) -> PyResult> { + let dims = x.dims()?; + Ok(dims) +} + +#[pyfunction] +fn rank(x: XlaOp) -> PyResult { + let rank = x.rank()?; + Ok(rank) +} + +#[pyfunction] +fn shape(x: XlaOp) -> PyResult> { + let shape = x.shape()?; + let shape = ArrayShape::try_from(&shape)?; + let shape: Vec = shape.dims().iter().map(|&x| x as usize).collect(); + Ok(shape) +} + +#[pyfunction] +fn array_shape(x: XlaOp) -> PyResult { + let shape = x.array_shape()?; + Ok(shape) +} + +#[pyfunction] +fn create_array_shape(ty: ElementType, dims: Vec) -> PyResult { + let shape = ArrayShape::new_with_type(ty, dims); + Ok(shape) +} + +#[pyfunction] +fn last_dim(x: XlaOp) -> PyResult { + let shape = x.shape()?; + let shape = ArrayShape::try_from(&shape)?; + let last_dim = shape.last_dim().ok_or_else(|| PyErr::new::("Shape has no dimensions"))?; + Ok(last_dim) +} + +#[pyfunction] +fn tuple(builder: XlaBuilder, args: Vec) -> PyResult { + let y = builder.tuple(&args)?; + Ok(y) +} + +#[pyfunction] +fn get_builder(x: XlaOp) -> PyResult { + let b = Rc::new(x.builder().clone()); + match Rc::try_unwrap(b) { + Ok(builder) => Ok(builder), + Err(_) => Err(PyErr::new::("Could not unwrap XlaBuilder")), + } +} + + +#[pymodule] +#[pyo3(name="xlar")] +fn module(_py: Python, m: &PyModule) -> PyResult<()> { + m.add_function(wrap_pyfunction!(xla_builder, m)?)?; + m.add_function(wrap_pyfunction!(constant_array, m)?)?; + m.add_function(wrap_pyfunction!(gather_params, m)?)?; + m.add_function(wrap_pyfunction!(swap_param, m)?)?; + m.add_function(wrap_pyfunction!(new_input, m)?)?; + m.add_function(wrap_pyfunction!(create_bf16_array, m)?)?; + m.add_function(wrap_pyfunction!(create_f16_array, m)?)?; + m.add_function(wrap_pyfunction!(to_tensor, m)?)?; + m.add_function(wrap_pyfunction!(to_numpy, m)?)?; + m.add_function(wrap_pyfunction!(to_tuple, m)?)?; + m.add_function(wrap_pyfunction!(param_pred, m)?)?; + m.add_function(wrap_pyfunction!(param_i8, m)?)?; + m.add_function(wrap_pyfunction!(param_i16, m)?)?; + m.add_function(wrap_pyfunction!(param_i32, m)?)?; + m.add_function(wrap_pyfunction!(param_i64, m)?)?; + m.add_function(wrap_pyfunction!(param_u8, m)?)?; + m.add_function(wrap_pyfunction!(param_u16, m)?)?; + m.add_function(wrap_pyfunction!(param_u32, m)?)?; + m.add_function(wrap_pyfunction!(param_u64, m)?)?; + m.add_function(wrap_pyfunction!(param_bf16, m)?)?; + m.add_function(wrap_pyfunction!(param_f16, m)?)?; + m.add_function(wrap_pyfunction!(param_f32, m)?)?; + m.add_function(wrap_pyfunction!(param_f64, m)?)?; + m.add_function(wrap_pyfunction!(cpu_client, m)?)?; + m.add_function(wrap_pyfunction!(gpu_client, m)?)?; + m.add_function(wrap_pyfunction!(build, m)?)?; + m.add_function(wrap_pyfunction!(get_hlo_proto, m)?)?; + m.add_function(wrap_pyfunction!(hlo_module_from_proto, m)?)?; + m.add_function(wrap_pyfunction!(hlo_module_to_string, m)?)?; + m.add_function(wrap_pyfunction!(get_hlo_module_entry_computation, m)?)?; + m.add_function(wrap_pyfunction!(computation_count, m)?)?; + m.add_function(wrap_pyfunction!(instruction_count, m)?)?; + m.add_function(wrap_pyfunction!(compile, m)?)?; + m.add_function(wrap_pyfunction!(execute, m)?)?; + m.add_function(wrap_pyfunction!(to_literal, m)?)?; + m.add_function(wrap_pyfunction!(add, m)?)?; + m.add_function(wrap_pyfunction!(sub, m)?)?; + m.add_function(wrap_pyfunction!(mul, m)?)?; + m.add_function(wrap_pyfunction!(div, m)?)?; + m.add_function(wrap_pyfunction!(rem, m)?)?; + m.add_function(wrap_pyfunction!(pow, m)?)?; + m.add_function(wrap_pyfunction!(max, m)?)?; + m.add_function(wrap_pyfunction!(min, m)?)?; + m.add_function(wrap_pyfunction!(_and, m)?)?; + m.add_function(wrap_pyfunction!(_or, m)?)?; + m.add_function(wrap_pyfunction!(xor, m)?)?; + m.add_function(wrap_pyfunction!(eq, m)?)?; + m.add_function(wrap_pyfunction!(ne, m)?)?; + m.add_function(wrap_pyfunction!(ge, m)?)?; + m.add_function(wrap_pyfunction!(gt, m)?)?; + m.add_function(wrap_pyfunction!(le, m)?)?; + m.add_function(wrap_pyfunction!(lt, m)?)?; + m.add_function(wrap_pyfunction!(lshift, m)?)?; + m.add_function(wrap_pyfunction!(rshift, m)?)?; + m.add_function(wrap_pyfunction!(atan2, m)?)?; + m.add_function(wrap_pyfunction!(dot, m)?)?; + m.add_function(wrap_pyfunction!(matmul, m)?)?; + m.add_function(wrap_pyfunction!(population_count, m)?)?; + m.add_function(wrap_pyfunction!(_not, m)?)?; + m.add_function(wrap_pyfunction!(neg, m)?)?; + m.add_function(wrap_pyfunction!(abs, m)?)?; + m.add_function(wrap_pyfunction!(floor, m)?)?; + m.add_function(wrap_pyfunction!(ceil, m)?)?; + m.add_function(wrap_pyfunction!(round, m)?)?; + m.add_function(wrap_pyfunction!(round_nearest_even, m)?)?; + m.add_function(wrap_pyfunction!(exp, m)?)?; + m.add_function(wrap_pyfunction!(expm1, m)?)?; + m.add_function(wrap_pyfunction!(log, m)?)?; + m.add_function(wrap_pyfunction!(log1p, m)?)?; + m.add_function(wrap_pyfunction!(logistic, m)?)?; + m.add_function(wrap_pyfunction!(sign, m)?)?; + m.add_function(wrap_pyfunction!(clz, m)?)?; + m.add_function(wrap_pyfunction!(sin, m)?)?; + m.add_function(wrap_pyfunction!(cos, m)?)?; + m.add_function(wrap_pyfunction!(tanh, m)?)?; + m.add_function(wrap_pyfunction!(real, m)?)?; + m.add_function(wrap_pyfunction!(imag, m)?)?; + m.add_function(wrap_pyfunction!(conj, m)?)?; + m.add_function(wrap_pyfunction!(square, m)?)?; + m.add_function(wrap_pyfunction!(sqrt, m)?)?; + m.add_function(wrap_pyfunction!(rsqrt, m)?)?; + m.add_function(wrap_pyfunction!(cbrt, m)?)?; + m.add_function(wrap_pyfunction!(upper_triangle, m)?)?; + m.add_function(wrap_pyfunction!(lower_triangle, m)?)?; + m.add_function(wrap_pyfunction!(erf, m)?)?; + m.add_function(wrap_pyfunction!(is_finite, m)?)?; + m.add_function(wrap_pyfunction!(zeros_like, m)?)?; + m.add_function(wrap_pyfunction!(copy, m)?)?; + m.add_function(wrap_pyfunction!(sigmoid, m)?)?; + m.add_function(wrap_pyfunction!(silu, m)?)?; + m.add_function(wrap_pyfunction!(relu, m)?)?; + m.add_function(wrap_pyfunction!(gelu, m)?)?; + m.add_function(wrap_pyfunction!(gelu_approx, m)?)?; + m.add_function(wrap_pyfunction!(einsum1, m)?)?; + m.add_function(wrap_pyfunction!(einsum2, m)?)?; + m.add_function(wrap_pyfunction!(reshape, m)?)?; + m.add_function(wrap_pyfunction!(dynamic_reshape, m)?)?; + m.add_function(wrap_pyfunction!(broadcast, m)?)?; + m.add_function(wrap_pyfunction!(broadcast_in_dim, m)?)?; + m.add_function(wrap_pyfunction!(collapse, m)?)?; + m.add_function(wrap_pyfunction!(transpose, m)?)?; + m.add_function(wrap_pyfunction!(swap_dims, m)?)?; + m.add_function(wrap_pyfunction!(pad, m)?)?; + m.add_function(wrap_pyfunction!(pad_in_dim, m)?)?; + m.add_function(wrap_pyfunction!(slice, m)?)?; + m.add_function(wrap_pyfunction!(slice_in_dim, m)?)?; + m.add_function(wrap_pyfunction!(dynamic_slice, m)?)?; + m.add_function(wrap_pyfunction!(dynamic_update_slice, m)?)?; + m.add_function(wrap_pyfunction!(at, m)?)?; + m.add_function(wrap_pyfunction!(squeeze, m)?)?; + m.add_function(wrap_pyfunction!(clamp, m)?)?; + m.add_function(wrap_pyfunction!(concat, m)?)?; + m.add_function(wrap_pyfunction!(get_tuple_element, m)?)?; + m.add_function(wrap_pyfunction!(rng_uniform, m)?)?; + m.add_function(wrap_pyfunction!(rng_normal, m)?)?; + m.add_function(wrap_pyfunction!(astype, m)?)?; + m.add_function(wrap_pyfunction!(dimension_size, m)?)?; + m.add_function(wrap_pyfunction!(reduce, m)?)?; + m.add_function(wrap_pyfunction!(call, m)?)?; + m.add_function(wrap_pyfunction!(map, m)?)?; + m.add_function(wrap_pyfunction!(select, m)?)?; + m.add_function(wrap_pyfunction!(while_loop, m)?)?; + m.add_function(wrap_pyfunction!(conditional, m)?)?; + m.add_function(wrap_pyfunction!(conv, m)?)?; + m.add_function(wrap_pyfunction!(conv_general_dilated, m)?)?; + m.add_function(wrap_pyfunction!(batch_norm_inference, m)?)?; + m.add_function(wrap_pyfunction!(dot_general, m)?)?; + m.add_function(wrap_pyfunction!(gather, m)?)?; + m.add_function(wrap_pyfunction!(scatter, m)?)?; + m.add_function(wrap_pyfunction!(take, m)?)?; + m.add_function(wrap_pyfunction!(reduce_sum, m)?)?; + m.add_function(wrap_pyfunction!(reduce_mean, m)?)?; + m.add_function(wrap_pyfunction!(reduce_max, m)?)?; + m.add_function(wrap_pyfunction!(reduce_min, m)?)?; + m.add_function(wrap_pyfunction!(softmax, m)?)?; + m.add_function(wrap_pyfunction!(layer_norm, m)?)?; + m.add_function(wrap_pyfunction!(primitive_type, m)?)?; + m.add_function(wrap_pyfunction!(element_type, m)?)?; + m.add_function(wrap_pyfunction!(rank, m)?)?; + m.add_function(wrap_pyfunction!(shape, m)?)?; + m.add_function(wrap_pyfunction!(array_shape, m)?)?; + m.add_function(wrap_pyfunction!(dims, m)?)?; + m.add_function(wrap_pyfunction!(last_dim, m)?)?; + m.add_function(wrap_pyfunction!(tuple, m)?)?; + m.add_function(wrap_pyfunction!(get_builder, m)?)?; + m.add_function(wrap_pyfunction!(constant_array, m)?)?; + m.add_function(wrap_pyfunction!(create_array_shape, m)?)?; + m.add_function(wrap_pyfunction!(constant_i32, m)?)?; + m.add_function(wrap_pyfunction!(constant_bool, m)?)?; + m.add_function(wrap_pyfunction!(constant_i8, m)?)?; + m.add_function(wrap_pyfunction!(constant_i16, m)?)?; + m.add_function(wrap_pyfunction!(constant_i32, m)?)?; + m.add_function(wrap_pyfunction!(constant_i64, m)?)?; + m.add_function(wrap_pyfunction!(constant_u8, m)?)?; + m.add_function(wrap_pyfunction!(constant_u16, m)?)?; + m.add_function(wrap_pyfunction!(constant_u32, m)?)?; + m.add_function(wrap_pyfunction!(constant_u64, m)?)?; + m.add_function(wrap_pyfunction!(constant_f32, m)?)?; + m.add_function(wrap_pyfunction!(constant_f64, m)?)?; + m.add_function(wrap_pyfunction!(astype_bool, m)?)?; + m.add_function(wrap_pyfunction!(astype_i8, m)?)?; + m.add_function(wrap_pyfunction!(astype_i16, m)?)?; + m.add_function(wrap_pyfunction!(astype_i32, m)?)?; + m.add_function(wrap_pyfunction!(astype_i64, m)?)?; + m.add_function(wrap_pyfunction!(astype_u8, m)?)?; + m.add_function(wrap_pyfunction!(astype_u16, m)?)?; + m.add_function(wrap_pyfunction!(astype_u32, m)?)?; + m.add_function(wrap_pyfunction!(astype_u64, m)?)?; + m.add_function(wrap_pyfunction!(astype_bf16, m)?)?; + m.add_function(wrap_pyfunction!(astype_f16, m)?)?; + m.add_function(wrap_pyfunction!(astype_f32, m)?)?; + m.add_function(wrap_pyfunction!(astype_f64, m)?)?; + Ok(()) +} + diff --git a/ivy/engines/XLA/rust_api/src/wrappers/literal.rs b/ivy/engines/XLA/rust_api/src/wrappers/literal.rs new file mode 100644 index 0000000000000..cc5dd8466ff77 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/literal.rs @@ -0,0 +1,287 @@ +use super::{ + ArrayElement, ArrayShape, ElementType, FromPrimitive, NativeType, PrimitiveType, Shape, +}; +use crate::{c_lib, Error, Result}; +use pyo3::prelude::*; + +/// A literal represent a value, typically a multi-dimensional array, stored on the host device. +#[derive(Debug)] +#[pyclass(unsendable)] +pub struct Literal(pub(super) c_lib::literal); + +impl Clone for Literal { + fn clone(&self) -> Self { + let v = unsafe { c_lib::literal_clone(self.0) }; + Self(v) + } +} + +impl Literal { + /// Create an uninitialized literal based on some primitive type and some dimensions. + pub fn create_from_shape(ty: PrimitiveType, dims: &[usize]) -> Self { + let dims: Vec<_> = dims.iter().map(|x| *x as i64).collect(); + let v = unsafe { c_lib::literal_create_from_shape(ty as i32, dims.as_ptr(), dims.len()) }; + Self(v) + } + + /// Create an uninitialized literal based on some primitive type, some dimensions, and some data. + /// The data is untyped, i.e. it is a sequence of bytes represented as a slice of `u8` even if + /// the primitive type is not `U8`. + pub fn create_from_shape_and_untyped_data( + ty: ElementType, + dims: &[usize], + untyped_data: &[u8], + ) -> Result { + let dims64: Vec<_> = dims.iter().map(|x| *x as i64).collect(); + let ty = ty.primitive_type(); + let v = unsafe { + c_lib::literal_create_from_shape_and_data( + ty as i32, + dims64.as_ptr(), + dims64.len(), + untyped_data.as_ptr() as *const libc::c_void, + untyped_data.len(), + ) + }; + if v.is_null() { + return Err(Error::CannotCreateLiteralWithData { + data_len_in_bytes: untyped_data.len(), + ty, + dims: dims.to_vec(), + }); + } + Ok(Self(v)) + } + + /// Get the first element from a literal. This returns an error if type `T` is not the + /// primitive type that the literal uses. + pub fn get_first_element(&self) -> Result { + let ty = self.ty()?; + if ty != T::TY { + Err(Error::ElementTypeMismatch { on_device: ty, on_host: T::TY })? + } + if self.element_count() == 0 { + Err(Error::EmptyLiteral)? + } + let v = unsafe { T::literal_get_first_element(self.0) }; + Ok(v) + } + + /// The number of elements stored in the literal. + pub fn element_count(&self) -> usize { + unsafe { c_lib::literal_element_count(self.0) as usize } + } + + /// The primitive type used by element stored in this literal. + pub fn primitive_type(&self) -> Result { + let ty = unsafe { c_lib::literal_element_type(self.0) }; + match FromPrimitive::from_i32(ty) { + None => Err(Error::UnexpectedElementType(ty)), + Some(ty) => Ok(ty), + } + } + + /// The element type used by element stored in this literal. + pub fn element_type(&self) -> Result { + self.primitive_type()?.element_type() + } + + /// The element type used by element stored in this literal, shortcut for `element_type`. + pub fn ty(&self) -> Result { + self.element_type() + } + + /// The literal size in bytes, this is the same as `element_count` multiplied by + /// `element_size_in_bytes`. + pub fn size_bytes(&self) -> usize { + unsafe { c_lib::literal_size_bytes(self.0) as usize } + } + + /// The [`Shape`] of the literal, this contains information about the dimensions of the + /// underlying array, as well as the primitive type of the array's elements. + pub fn shape(&self) -> Result { + let mut out: c_lib::shape = std::ptr::null_mut(); + unsafe { c_lib::literal_shape(self.0, &mut out) }; + let c_shape = super::shape::CShape::from_ptr(out); + c_shape.shape() + } + + pub fn array_shape(&self) -> Result { + ArrayShape::try_from(&self.shape()?) + } + + /// Copy the literal data to a slice. This returns an error if the primitive type used by the + /// literal is not `T` or if the number of elements in the slice and literal are different. + pub fn copy_raw_to(&self, dst: &mut [T]) -> Result<()> { + let ty = self.ty()?; + let element_count = self.element_count(); + if ty != T::TY { + Err(Error::ElementTypeMismatch { on_device: ty, on_host: T::TY })? + } + if dst.len() > element_count { + Err(Error::BinaryBufferIsTooLarge { element_count, buffer_len: dst.len() })? + } + unsafe { + c_lib::literal_copy_to( + self.0, + dst.as_mut_ptr() as *mut libc::c_void, + element_count * T::ELEMENT_SIZE_IN_BYTES, + ) + }; + Ok(()) + } + + /// Copy data from a slice to the literal. This returns an error if the primitive type used + /// by the literal is not `T` or if number of elements in the slice and the literal are + /// different. + pub fn copy_raw_from(&mut self, src: &[T]) -> Result<()> { + let ty = self.ty()?; + let element_count = self.element_count(); + if ty != T::TY { + Err(Error::ElementTypeMismatch { on_device: ty, on_host: T::TY })? + } + if src.len() > element_count { + Err(Error::BinaryBufferIsTooLarge { element_count, buffer_len: src.len() })? + } + unsafe { + c_lib::literal_copy_from( + self.0, + src.as_ptr() as *const libc::c_void, + element_count * T::ELEMENT_SIZE_IN_BYTES, + ) + }; + Ok(()) + } + + /// Copy the values stored in the literal in a newly created vector. The data is flattened out + /// for literals with more than one dimension. + pub fn to_vec(&self) -> Result> { + let element_count = self.element_count(); + // Maybe we should use an uninitialized vec instead? + let mut data = vec![T::ZERO; element_count]; + self.copy_raw_to(&mut data)?; + Ok(data) + } + + /// Create a literal from a scalar value, the resulting literal has zero dimensions and stores + /// a single element. + pub fn scalar(t: T) -> Self { + let ptr = unsafe { T::create_r0(t) }; + Literal(ptr) + } + + /// Create a literal from a slice of data, the resulting literal has one dimension which size + /// is the same as the slice passed as argument. + pub fn vec1(f: &[T]) -> Self { + let ptr = unsafe { T::create_r1(f.as_ptr(), f.len()) }; + Literal(ptr) + } + + /// Create a new literal containing the same data but using a different shape. This returns an + /// error if the number of elements in the literal is different from the product of the target + /// dimension sizes. + pub fn reshape(&self, dims: &[i64]) -> Result { + let mut result: c_lib::literal = std::ptr::null_mut(); + let status = + unsafe { c_lib::literal_reshape(self.0, dims.as_ptr(), dims.len(), &mut result) }; + super::handle_status(status)?; + Ok(Literal(result)) + } + + /// Create a new literal containing the data from the original literal casted to a new + /// primitive type. The dimensions of the resulting literal are the same as the dimensions of + /// the original literal. + pub fn convert(&self, ty: PrimitiveType) -> Result { + let mut result: c_lib::literal = std::ptr::null_mut(); + let status = unsafe { c_lib::literal_convert(self.0, ty as i32, &mut result) }; + super::handle_status(status)?; + Ok(Literal(result)) + } + + /// When the input is a tuple, return a vector of its elements. This replaces the original + /// value by an empty tuple, no copy is performed. + pub fn decompose_tuple(&mut self) -> Result> { + match self.shape()? { + Shape::Array(_) | Shape::Unsupported(_) => Ok(vec![]), + Shape::Tuple(shapes) => { + let tuple_len = shapes.len(); + let mut outputs = vec![std::ptr::null_mut::(); tuple_len]; + unsafe { c_lib::literal_decompose_tuple(self.0, outputs.as_mut_ptr(), tuple_len) }; + Ok(outputs.into_iter().map(Literal).collect()) + } + } + } + + pub fn to_tuple(mut self) -> Result> { + self.decompose_tuple() + } + + pub fn to_tuple1(mut self) -> Result { + let mut tuple = self.decompose_tuple()?; + if tuple.len() != 1 { + Err(Error::UnexpectedNumberOfElemsInTuple { expected: 1, got: tuple.len() })? + } + let v1 = tuple.pop().unwrap(); + Ok(v1) + } + + pub fn to_tuple2(mut self) -> Result<(Self, Self)> { + let mut tuple = self.decompose_tuple()?; + if tuple.len() != 2 { + Err(Error::UnexpectedNumberOfElemsInTuple { expected: 2, got: tuple.len() })? + } + let v2 = tuple.pop().unwrap(); + let v1 = tuple.pop().unwrap(); + Ok((v1, v2)) + } + + pub fn to_tuple3(mut self) -> Result<(Self, Self, Self)> { + let mut tuple = self.decompose_tuple()?; + if tuple.len() != 3 { + Err(Error::UnexpectedNumberOfElemsInTuple { expected: 3, got: tuple.len() })? + } + let v3 = tuple.pop().unwrap(); + let v2 = tuple.pop().unwrap(); + let v1 = tuple.pop().unwrap(); + Ok((v1, v2, v3)) + } + + pub fn to_tuple4(mut self) -> Result<(Self, Self, Self, Self)> { + let mut tuple = self.decompose_tuple()?; + if tuple.len() != 4 { + Err(Error::UnexpectedNumberOfElemsInTuple { expected: 4, got: tuple.len() })? + } + let v4 = tuple.pop().unwrap(); + let v3 = tuple.pop().unwrap(); + let v2 = tuple.pop().unwrap(); + let v1 = tuple.pop().unwrap(); + Ok((v1, v2, v3, v4)) + } + + pub fn tuple(elems: Vec) -> Self { + let elem_ptrs: Vec<_> = elems.iter().map(|e| e.0).collect(); + let literal = + unsafe { c_lib::literal_make_tuple_owned(elem_ptrs.as_ptr(), elem_ptrs.len()) }; + // Ensure that elems are only dropped after the pointers have been used. + drop(elems); + Self(literal) + } +} + +impl From for Literal { + fn from(f: T) -> Self { + Literal::scalar(f) + } +} + +impl From<&[T]> for Literal { + fn from(f: &[T]) -> Self { + Literal::vec1(f) + } +} + +impl Drop for Literal { + fn drop(&mut self) { + unsafe { c_lib::literal_free(self.0) } + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/mod.rs b/ivy/engines/XLA/rust_api/src/wrappers/mod.rs new file mode 100644 index 0000000000000..cff2017e46d19 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/mod.rs @@ -0,0 +1,508 @@ +mod literal; +mod pjrt_buffer; +mod pjrt_client; +mod pjrt_device; +mod pjrt_loaded_executable; +mod shape; +mod xla_builder; +mod xla_op; + +use crate::c_lib; +use crate::error::{Error, Result}; +use num_derive::FromPrimitive; +use num_traits::FromPrimitive; + +pub use literal::Literal; +pub use pjrt_buffer::PjRtBuffer; +pub use pjrt_client::PjRtClient; +pub use pjrt_device::PjRtDevice; +pub use pjrt_loaded_executable::PjRtLoadedExecutable; +pub use shape::{ArrayShape, Shape}; +pub use xla_builder::XlaBuilder; +pub use xla_op::XlaOp; +use pyo3::prelude::*; + +pub(self) unsafe fn c_ptr_to_string(ptr: *const std::ffi::c_char) -> String { + let str = std::ffi::CStr::from_ptr(ptr).to_string_lossy().into_owned(); + libc::free(ptr as *mut libc::c_void); + str +} + +/// The primitive types supported by XLA. `S8` is a signed 1 byte integer, +/// `U32` is an unsigned 4 bytes integer, etc. +#[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)] +#[pyclass(unsendable)] +pub enum PrimitiveType { + Invalid = 0, + Pred = 1, + S8 = 2, + S16 = 3, + S32 = 4, + S64 = 5, + U8 = 6, + U16 = 7, + U32 = 8, + U64 = 9, + F16 = 10, + F32 = 11, + Bf16 = 16, + F64 = 12, + C64 = 15, + C128 = 18, + Tuple = 13, + OpaqueType = 14, + Token = 17, +} + +impl PrimitiveType { + pub fn element_type(self) -> Result { + match self { + Self::Pred => Ok(ElementType::Pred), + Self::S8 => Ok(ElementType::S8), + Self::S16 => Ok(ElementType::S16), + Self::S32 => Ok(ElementType::S32), + Self::S64 => Ok(ElementType::S64), + Self::U8 => Ok(ElementType::U8), + Self::U16 => Ok(ElementType::U16), + Self::U32 => Ok(ElementType::U32), + Self::U64 => Ok(ElementType::U64), + Self::F16 => Ok(ElementType::F16), + Self::F32 => Ok(ElementType::F32), + Self::Bf16 => Ok(ElementType::Bf16), + Self::F64 => Ok(ElementType::F64), + Self::C64 => Ok(ElementType::C64), + Self::C128 => Ok(ElementType::C128), + Self::Invalid | Self::Tuple | Self::OpaqueType | Self::Token => { + Err(Error::NotAnElementType { got: self }) + } + } + } +} + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +#[pyclass(unsendable)] +pub enum ElementType { + Pred, + S8, + S16, + S32, + S64, + U8, + U16, + U32, + U64, + F16, + F32, + Bf16, + F64, + C64, + C128, +} + +impl ElementType { + /// The size for this element type in bytes. + pub fn element_size_in_bytes(&self) -> usize { + match self { + Self::Pred => 1, + Self::S8 => 1, + Self::S16 => 2, + Self::S32 => 4, + Self::S64 => 8, + Self::U8 => 1, + Self::U16 => 2, + Self::U32 => 4, + Self::U64 => 8, + Self::F16 => 2, + Self::F32 => 4, + Self::Bf16 => 2, + Self::F64 => 8, + Self::C64 => 8, + Self::C128 => 16, + } + } + + pub fn primitive_type(&self) -> PrimitiveType { + match self { + Self::Pred => PrimitiveType::Pred, + Self::S8 => PrimitiveType::S8, + Self::S16 => PrimitiveType::S16, + Self::S32 => PrimitiveType::S32, + Self::S64 => PrimitiveType::S64, + Self::U8 => PrimitiveType::U8, + Self::U16 => PrimitiveType::U16, + Self::U32 => PrimitiveType::U32, + Self::U64 => PrimitiveType::U64, + Self::F16 => PrimitiveType::F16, + Self::F32 => PrimitiveType::F32, + Self::Bf16 => PrimitiveType::Bf16, + Self::F64 => PrimitiveType::F64, + Self::C64 => PrimitiveType::C64, + Self::C128 => PrimitiveType::C128, + } + } +} + +pub trait ArrayElement: Copy { + const TY: ElementType; + const ELEMENT_SIZE_IN_BYTES: usize; + const ZERO: Self; +} + +#[allow(clippy::missing_safety_doc)] +/// A type implementing the `NativeType` trait can be directly converted to constant ops or +/// literals. +pub trait NativeType: Copy { + unsafe fn constant_r0(b: c_lib::xla_builder, v: Self) -> c_lib::xla_op; + unsafe fn constant_r1(b: c_lib::xla_builder, v: *const Self, l: usize) -> c_lib::xla_op; + unsafe fn constant_r1c(b: c_lib::xla_builder, v: Self, l: usize) -> c_lib::xla_op; + unsafe fn create_r0(v: Self) -> c_lib::literal; + unsafe fn create_r1(v: *const Self, l: usize) -> c_lib::literal; + unsafe fn literal_get_first_element(l: c_lib::literal) -> Self; +} + +macro_rules! native_type { + ($ty:ty, $cst0:ident, $cst1:ident, $cst1c:ident, $cre0:ident, $cre1:ident, $gf:ident) => { + impl NativeType for $ty { + unsafe fn constant_r0(b: c_lib::xla_builder, v: Self) -> c_lib::xla_op { + c_lib::$cst0(b, v) + } + unsafe fn constant_r1( + b: c_lib::xla_builder, + v: *const Self, + l: usize, + ) -> c_lib::xla_op { + c_lib::$cst1(b, v, l) + } + unsafe fn constant_r1c(b: c_lib::xla_builder, v: Self, l: usize) -> c_lib::xla_op { + c_lib::$cst1c(b, v, l) + } + unsafe fn create_r0(v: Self) -> c_lib::literal { + c_lib::$cre0(v) + } + unsafe fn create_r1(v: *const Self, l: usize) -> c_lib::literal { + c_lib::$cre1(v, l) + } + unsafe fn literal_get_first_element(l: c_lib::literal) -> Self { + c_lib::$gf(l) + } + } + }; +} + +native_type!( + bool, + constant_r0_bool, + constant_r1_bool, + constant_r1c_bool, + create_r0_bool, + create_r1_bool, + literal_get_first_element_bool +); + +native_type!( + i8, + constant_r0_int8_t, + constant_r1_int8_t, + constant_r1c_int8_t, + create_r0_int8_t, + create_r1_int8_t, + literal_get_first_element_int8_t +); + +native_type!( + i16, + constant_r0_int16_t, + constant_r1_int16_t, + constant_r1c_int16_t, + create_r0_int16_t, + create_r1_int16_t, + literal_get_first_element_int16_t +); + +native_type!( + i32, + constant_r0_int32_t, + constant_r1_int32_t, + constant_r1c_int32_t, + create_r0_int32_t, + create_r1_int32_t, + literal_get_first_element_int32_t +); + +native_type!( + i64, + constant_r0_int64_t, + constant_r1_int64_t, + constant_r1c_int64_t, + create_r0_int64_t, + create_r1_int64_t, + literal_get_first_element_int64_t +); + +native_type!( + u8, + constant_r0_uint8_t, + constant_r1_uint8_t, + constant_r1c_uint8_t, + create_r0_uint8_t, + create_r1_uint8_t, + literal_get_first_element_uint8_t +); + +native_type!( + u16, + constant_r0_uint16_t, + constant_r1_uint16_t, + constant_r1c_uint16_t, + create_r0_uint16_t, + create_r1_uint16_t, + literal_get_first_element_uint16_t +); + +native_type!( + u32, + constant_r0_uint32_t, + constant_r1_uint32_t, + constant_r1c_uint32_t, + create_r0_uint32_t, + create_r1_uint32_t, + literal_get_first_element_uint32_t +); + +native_type!( + u64, + constant_r0_uint64_t, + constant_r1_uint64_t, + constant_r1c_uint64_t, + create_r0_uint64_t, + create_r1_uint64_t, + literal_get_first_element_uint64_t +); + +native_type!( + f32, + constant_r0_float, + constant_r1_float, + constant_r1c_float, + create_r0_float, + create_r1_float, + literal_get_first_element_float +); + +native_type!( + f64, + constant_r0_double, + constant_r1_double, + constant_r1c_double, + create_r0_double, + create_r1_double, + literal_get_first_element_double +); + +macro_rules! element_type { + ($ty:ty, $v:ident, $sz:tt, $zero:expr) => { + impl ArrayElement for $ty { + const TY: ElementType = ElementType::$v; + const ELEMENT_SIZE_IN_BYTES: usize = $sz; + const ZERO: Self = $zero; + } + }; +} + +// Dummy F16 type. +#[derive(Copy, Clone, Debug)] +pub struct F16; + +impl ArrayElement for F16 { + const TY: ElementType = ElementType::F16; + const ELEMENT_SIZE_IN_BYTES: usize = 2; + const ZERO: Self = Self; +} + +// Dummy BF16 type. +#[derive(Copy, Clone, Debug)] +pub struct Bf16; + +impl ArrayElement for Bf16 { + const TY: ElementType = ElementType::Bf16; + const ELEMENT_SIZE_IN_BYTES: usize = 2; + const ZERO: Self = Self; +} + +element_type!(bool, Pred, 1, false); +element_type!(u8, U8, 1, 0); +element_type!(u16, U16, 2, 0); +element_type!(u32, U32, 4, 0); +element_type!(u64, U64, 8, 0); +element_type!(i8, S8, 1, 0); +element_type!(i16, S16, 2, 0); +element_type!(i32, S32, 4, 0); +element_type!(i64, S64, 8, 0); +element_type!(f32, F32, 4, 0.0f32); +element_type!(f64, F64, 8, 0.0f64); + + +/// A computation is built from a root [`XlaOp`]. Computations are device independent and can be +/// specialized to a given device through a compilation step. +#[derive(Clone)] +#[pyclass(unsendable)] +pub struct XlaComputation(c_lib::xla_computation); + +pub(self) fn handle_status(status: c_lib::status) -> Result<()> { + if status.is_null() { + Ok(()) + } else { + let msg = unsafe { + let error_message_ptr = c_lib::status_error_message(status); + let error_message = c_ptr_to_string(error_message_ptr); + c_lib::status_free(status); + error_message + }; + let backtrace = std::backtrace::Backtrace::capture().to_string(); + Err(Error::XlaError { msg, backtrace }) + } +} + +impl XlaComputation { + pub fn from_proto(proto: &HloModuleProto) -> Self { + let ptr = unsafe { c_lib::xla_computation_from_hlo_module_proto(proto.0) }; + Self(ptr) + } + + /// The computation name. + pub fn name(&self) -> String { + unsafe { + let ptr = c_lib::xla_computation_name(self.0); + c_ptr_to_string(ptr) + } + } + + /// Compile this computation for the specified client. + pub fn compile(&self, client: &PjRtClient) -> Result { + client.compile(self) + } + + /// Get the HloModuleProto for the computation. + pub fn proto(&self) -> HloModuleProto { + let ptr = unsafe { c_lib::xla_computation_proto(self.0) }; + HloModuleProto(ptr) + } + +} + +impl Drop for XlaComputation { + fn drop(&mut self) { + unsafe { c_lib::xla_computation_free(self.0) } + } +} + +#[pyclass(unsendable)] +pub struct HloModuleProto(c_lib::hlo_module_proto); + +impl HloModuleProto { + /// Read a HLO module from a text file. + pub fn from_text_file>(path: P) -> Result { + use std::io::Read; + let mut file = std::fs::File::open(path.as_ref())?; + let mut content = Vec::new(); + file.read_to_end(&mut content)?; + Self::parse_and_return_unverified_module(&content) + } + + /// Read a HLO module from a proto file, either in binary or pbtxt format. + pub fn from_proto_file>(path: P, binary: bool) -> Result { + use std::io::Read; + let mut file = std::fs::File::open(path.as_ref())?; + let mut content = Vec::new(); + file.read_to_end(&mut content)?; + Self::parse_proto(&content, binary) + } + + pub fn parse_and_return_unverified_module(data: &[u8]) -> Result { + let mut ptr: c_lib::hlo_module_proto = std::ptr::null_mut(); + let status = unsafe { + c_lib::hlo_module_proto_parse_and_return_unverified_module( + data.as_ptr() as *const libc::c_char, + data.len(), + &mut ptr, + ) + }; + handle_status(status)?; + Ok(Self(ptr)) + } + + pub fn parse_proto(data: &[u8], binary: bool) -> Result { + let mut ptr: c_lib::hlo_module_proto = std::ptr::null_mut(); + let status = unsafe { + c_lib::hlo_module_proto_parse_proto( + data.as_ptr() as *const libc::c_char, + data.len(), + binary, + &mut ptr, + ) + }; + handle_status(status)?; + Ok(Self(ptr)) + } +} + +impl Drop for HloModuleProto { + fn drop(&mut self) { + unsafe { c_lib::hlo_module_proto_free(self.0) } + } +} + +#[pyclass(unsendable)] +pub struct HloModule(c_lib::hlo_module); + +impl HloModule { + pub fn from_proto(proto: &HloModuleProto) -> Result { + let mut ptr = std::ptr::null_mut(); + let status = unsafe { + c_lib::hlo_module_from_proto( + proto.0, + &mut ptr, + )}; + handle_status(status)?; + Ok(Self(ptr)) + } + + pub fn to_string(&self) -> Result { + let str_ptr = unsafe { + c_lib::hlo_module_to_string(self.0) + }; + let module_str = unsafe { + let c_str = std::ffi::CStr::from_ptr(str_ptr); + let result = c_str.to_str()?.to_string(); + libc::free(str_ptr as *mut _); + Ok(result) + }; + module_str + } + + + pub fn get_entry_computation(&self) -> Result { + let entry_comp = unsafe { + c_lib::hlo_module_entry_computation(self.0) + }; + Ok(HloComputation(entry_comp)) + } + + pub fn computation_count(&self) -> Result { + let comp_count = unsafe { + c_lib::hlo_module_computation_count(self.0) + }; + Ok(comp_count) + } + + pub fn instruction_count(&self) -> Result { + let instruct_count = unsafe { + c_lib::hlo_module_instruction_count(self.0) + }; + Ok(instruct_count) + } +} + + +#[pyclass(unsendable)] +pub struct HloComputation(c_lib::hlo_computation); diff --git a/ivy/engines/XLA/rust_api/src/wrappers/pjrt_buffer.rs b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_buffer.rs new file mode 100644 index 0000000000000..460725e6df5be --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_buffer.rs @@ -0,0 +1,76 @@ +//! A view on a memory slice hosted on a device. +use super::{ArrayElement, ArrayShape, Literal, PjRtDevice, Shape}; +use crate::{c_lib, Error, Result}; +use pyo3::prelude::*; + +/// A buffer represents a view on a memory slice hosted on a device. +#[derive(Clone)] +#[pyclass(unsendable)] +pub struct PjRtBuffer { + pub(super) buffer: c_lib::pjrt_buffer, + pub(super) client: super::PjRtClient, +} + +impl PjRtBuffer { + /// The client that owns this buffer. + pub fn client(&self) -> &super::PjRtClient { + &self.client + } + + /// Copy the buffer to a different device. + pub fn copy_to_device(&self, device: PjRtDevice) -> Result { + let mut buffer: c_lib::pjrt_buffer = std::ptr::null_mut(); + let status = + unsafe { c_lib::pjrt_buffer_copy_to_device(self.buffer, device.device, &mut buffer) }; + super::handle_status(status)?; + Ok(Self { buffer, client: self.client.clone() }) + } + + /// Copy the buffer back to the host as a literal. + pub fn to_literal_sync(&self) -> Result { + let mut result: c_lib::literal = std::ptr::null_mut(); + let status = unsafe { c_lib::pjrt_buffer_to_literal_sync(self.buffer, &mut result) }; + super::handle_status(status)?; + Ok(Literal(result)) + } + + /// Retrieve the shape used by this buffer. + pub fn on_device_shape(&self) -> Result { + let shape = unsafe { c_lib::pjrt_buffer_on_device_shape(self.buffer) }; + let c_shape = super::shape::CShape::from_ptr(shape); + c_shape.shape() + } + + /// Copy the data stored in a buffer to host memory in a blocking way. + pub fn copy_raw_to_host_sync( + &self, + dst: &mut [T], + offset: usize, + ) -> Result<()> { + let shape = ArrayShape::try_from(&self.on_device_shape()?)?; + let on_host = T::TY; + let on_device = shape.primitive_type().element_type()?; + if on_device != on_host { + Err(Error::ElementTypeMismatch { on_device, on_host })? + } + if offset + dst.len() > shape.element_count() { + Err(Error::TargetBufferIsTooLarge { offset, shape, buffer_len: dst.len() })? + } + let status = unsafe { + c_lib::pjrt_buffer_copy_raw_to_host_sync( + self.buffer, + dst.as_mut_ptr() as *mut libc::c_void, + offset, + dst.len() * T::ELEMENT_SIZE_IN_BYTES, + ) + }; + super::handle_status(status)?; + Ok(()) + } +} + +impl Drop for PjRtBuffer { + fn drop(&mut self) { + unsafe { c_lib::pjrt_buffer_free(self.buffer) } + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/pjrt_client.rs b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_client.rs new file mode 100644 index 0000000000000..75636cc19915e --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_client.rs @@ -0,0 +1,189 @@ +//! A device (CPUs, GPUs, TPUs) where computations can be run. +use super::{ArrayElement, Literal, PjRtBuffer, PjRtDevice, PjRtLoadedExecutable, XlaComputation}; +use crate::{c_lib, Error, Result}; +use std::marker::PhantomData; +use std::rc::Rc; +use pyo3::prelude::*; + +pub(super) struct PjRtClientInternal(pub(self) c_lib::pjrt_client); + +/// A client represents a device that can be used to run some computations. A computation graph is +/// compiled in a way that is specific to a device before it can be run. +#[derive(Clone)] +#[pyclass(unsendable)] +pub struct PjRtClient(Rc); + +impl PjRtClient { + /// A CPU client, this can run computations on multiple CPUs at the same time. + pub fn cpu() -> Result { + let mut ptr: c_lib::pjrt_client = std::ptr::null_mut(); + let status = unsafe { c_lib::pjrt_cpu_client_create(&mut ptr) }; + super::handle_status(status)?; + Ok(Self(Rc::new(PjRtClientInternal(ptr)))) + } + + /// A GPU client, the memory requirements are limited by the specified `memory_fraction` and + /// this memory can either be allocated dynamically or pre-allocated depending on + /// `preallocate`. + pub fn gpu(memory_fraction: f64, preallocate: bool) -> Result { + let mut ptr: c_lib::pjrt_client = std::ptr::null_mut(); + let status = + unsafe { c_lib::pjrt_gpu_client_create(&mut ptr, memory_fraction, preallocate) }; + super::handle_status(status)?; + Ok(Self(Rc::new(PjRtClientInternal(ptr)))) + } + + /// A TPU client. + pub fn tpu(max_inflight_computations: usize) -> Result { + let mut ptr: c_lib::pjrt_client = std::ptr::null_mut(); + let status = + unsafe { c_lib::pjrt_tpu_client_create(&mut ptr, max_inflight_computations as i32) }; + super::handle_status(status)?; + Ok(Self(Rc::new(PjRtClientInternal(ptr)))) + } + + fn ptr(&self) -> c_lib::pjrt_client { + self.0 .0 + } + + /// Compile a computation for this device, and return the executable. + pub fn compile(&self, c: &XlaComputation) -> Result { + let mut exe: c_lib::pjrt_loaded_executable = std::ptr::null_mut(); + let status = unsafe { c_lib::compile(self.ptr(), c.0, &mut exe) }; + super::handle_status(status)?; + Ok(PjRtLoadedExecutable { exe, client: self.clone() }) + } + + /// The number of devices that this client has detected, e.g. the number of GPUs. + pub fn device_count(&self) -> usize { + unsafe { c_lib::pjrt_client_device_count(self.ptr()) as usize } + } + + /// The number of devices that this client can use. + pub fn addressable_device_count(&self) -> usize { + unsafe { c_lib::pjrt_client_addressable_device_count(self.ptr()) as usize } + } + + /// The name of the platform. + pub fn platform_name(&self) -> String { + unsafe { + let ptr = c_lib::pjrt_client_platform_name(self.ptr()); + super::c_ptr_to_string(ptr) + } + } + + /// The version of the platform. + pub fn platform_version(&self) -> String { + unsafe { + let ptr = c_lib::pjrt_client_platform_version(self.ptr()); + super::c_ptr_to_string(ptr) + } + } + + /// A list of devices attached to this client. + pub fn devices(&self) -> Vec { + let device_count = self.device_count(); + let mut device_ptrs = vec![std::ptr::null_mut(); device_count]; + unsafe { c_lib::pjrt_client_devices(self.ptr(), device_ptrs.as_mut_ptr()) }; + device_ptrs.into_iter().map(|device| PjRtDevice { device, marker: PhantomData }).collect() + } + + /// A list of devices that can be used by this client. + pub fn addressable_devices(&self) -> Vec { + let device_count = self.addressable_device_count(); + let mut device_ptrs = vec![std::ptr::null_mut(); device_count]; + unsafe { c_lib::pjrt_client_addressable_devices(self.ptr(), device_ptrs.as_mut_ptr()) }; + device_ptrs.into_iter().map(|device| PjRtDevice { device, marker: PhantomData }).collect() + } + + /// Transfer some data from the host to a `PjRtBuffer` stored on the target device. If the + /// device is not specified, the default device is used. + /// The source data is passed as a slice of the specified primitive type, as well as the + /// dimensions. The dimensions have to match the number of elements in the source data, + /// otherwise an error is returned. + pub fn buffer_from_host_buffer( + &self, + data: &[T], + dims: &[usize], + device: Option<&PjRtDevice>, + ) -> Result { + let mut buffer: c_lib::pjrt_buffer = std::ptr::null_mut(); + let element_count: usize = dims.iter().product(); + if element_count != data.len() { + Err(Error::WrongElementCount { dims: dims.to_vec(), element_count })? + } + let device = device.map_or(std::ptr::null_mut(), |d| d.device); + let dims: Vec<_> = dims.iter().map(|d| *d as i64).collect(); + let status = unsafe { + c_lib::pjrt_buffer_from_host_buffer( + self.ptr(), + device, + data.as_ptr() as *const libc::c_void, + T::TY.primitive_type() as i32, + dims.len() as i32, + dims.as_ptr(), + &mut buffer, + ) + }; + super::handle_status(status)?; + Ok(PjRtBuffer { buffer, client: self.clone() }) + } + + /// Transfer some data from the host to a `PjRtBuffer` stored on the target device. If the + /// device is not specified, the default device is used. + /// The source data is passed as a slice of raw bytes, as well as the dimensions. The + /// dimensions have to match the number of bytes in the source data, otherwise an error + /// is returned. + pub fn buffer_from_host_raw_bytes( + &self, + ty: super::ElementType, + data: &[u8], + dims: &[usize], + device: Option<&PjRtDevice>, + ) -> Result { + let mut buffer: c_lib::pjrt_buffer = std::ptr::null_mut(); + let element_count: usize = dims.iter().product(); + let element_size_in_bytes = ty.element_size_in_bytes(); + if element_count * element_size_in_bytes != data.len() { + Err(Error::WrongElementCount { dims: dims.to_vec(), element_count })? + } + let device = device.map_or(std::ptr::null_mut(), |d| d.device); + let dims: Vec<_> = dims.iter().map(|d| *d as i64).collect(); + let status = unsafe { + c_lib::pjrt_buffer_from_host_buffer( + self.ptr(), + device, + data.as_ptr() as *const libc::c_void, + ty as i32, + dims.len() as i32, + dims.as_ptr(), + &mut buffer, + ) + }; + super::handle_status(status)?; + Ok(PjRtBuffer { buffer, client: self.clone() }) + } + + /// Transfer some data from the host to a `PjRtBuffer` stored on the target device. If the + /// device is not specified, the default device is used. + /// The source data is passed as a literal. + pub fn buffer_from_host_literal( + &self, + device: Option<&PjRtDevice>, + literal: &Literal, + ) -> Result { + let mut buffer: c_lib::pjrt_buffer = std::ptr::null_mut(); + let device = device.map_or(std::ptr::null_mut(), |d| d.device); + let status = unsafe { + c_lib::pjrt_buffer_from_host_literal(self.ptr(), device, literal.0, &mut buffer) + }; + super::handle_status(status)?; + Ok(PjRtBuffer { buffer, client: self.clone() }) + } +} + +impl Drop for PjRtClientInternal { + fn drop(&mut self) { + unsafe { c_lib::pjrt_client_free(self.0) } + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/pjrt_device.rs b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_device.rs new file mode 100644 index 0000000000000..2a24bfd8a9c06 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_device.rs @@ -0,0 +1,58 @@ +use crate::{c_lib, Result}; +use std::marker::PhantomData; + +/// A device attached to a [`super::PjRtClient`]. +pub struct PjRtDevice<'a> { + pub(super) device: c_lib::pjrt_device, + pub(super) marker: PhantomData<&'a super::PjRtClient>, +} + +impl PjRtDevice<'_> { + /// The device unique identifier. + pub fn id(&self) -> usize { + (unsafe { c_lib::pjrt_device_id(self.device) }) as usize + } + + pub fn process_index(&self) -> usize { + (unsafe { c_lib::pjrt_device_process_index(self.device) }) as usize + } + + pub fn local_hardware_id(&self) -> usize { + (unsafe { c_lib::pjrt_device_local_hardware_id(self.device) }) as usize + } + + #[allow(clippy::inherent_to_string)] + pub fn to_string(&self) -> String { + unsafe { + let ptr = c_lib::pjrt_device_to_string(self.device); + super::c_ptr_to_string(ptr) + } + } + + pub fn kind(&self) -> String { + unsafe { + let ptr = c_lib::pjrt_device_kind(self.device); + super::c_ptr_to_string(ptr) + } + } + + pub fn debug_string(&self) -> String { + unsafe { + let ptr = c_lib::pjrt_device_debug_string(self.device); + super::c_ptr_to_string(ptr) + } + } + + pub fn transfer_to_infeed(&self, src: &super::Literal) -> Result<()> { + let status = unsafe { c_lib::pjrt_device_transfer_to_infeed(self.device, src.0) }; + super::handle_status(status)?; + Ok(()) + } + + /// Transfer and return a value for the given shape from the outfeed queue. + pub fn transfer_from_outfeed(&self, dst: &mut super::Literal) -> Result<()> { + let status = unsafe { c_lib::pjrt_device_transfer_from_outfeed(self.device, dst.0) }; + super::handle_status(status)?; + Ok(()) + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/pjrt_loaded_executable.rs b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_loaded_executable.rs new file mode 100644 index 0000000000000..bb7b500c1e178 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/pjrt_loaded_executable.rs @@ -0,0 +1,74 @@ +use super::{Literal, PjRtBuffer}; +use crate::{c_lib, Result}; +use pyo3::prelude::*; + +#[derive(Clone)] +#[pyclass(unsendable)] +pub struct PjRtLoadedExecutable { + pub(super) exe: c_lib::pjrt_loaded_executable, + pub(super) client: super::PjRtClient, +} + +impl PjRtLoadedExecutable { + /// The client that owns this executable. + pub fn client(&self) -> &super::PjRtClient { + &self.client + } + + fn process_execute_outputs( + &self, + outputs: *mut *mut c_lib::pjrt_buffer, + ) -> Vec> { + unsafe { + let mut vec = vec![]; + loop { + let outputs = *outputs.add(vec.len()); + if outputs.is_null() { + break; + } + let mut replica_vec = vec![]; + loop { + let buffer = *outputs.add(replica_vec.len()); + if buffer.is_null() { + break; + } + replica_vec.push(PjRtBuffer { buffer, client: self.client.clone() }); + } + libc::free(outputs as *mut libc::c_void); + vec.push(replica_vec); + } + libc::free(outputs as *mut libc::c_void); + vec + } + } + + pub fn execute>( + &self, + args: &[L], + ) -> Result>> { + let mut outputs = std::ptr::null_mut(); + let args: Vec<_> = args.iter().map(|x| x.borrow().0).collect(); + let status = + unsafe { c_lib::execute(self.exe, args.as_ptr(), args.len() as i32, &mut outputs) }; + super::handle_status(status)?; + Ok(self.process_execute_outputs(outputs)) + } + + pub fn execute_b>( + &self, + args: &[L], + ) -> Result>> { + let mut outputs = std::ptr::null_mut(); + let args: Vec<_> = args.iter().map(|x| x.borrow().buffer).collect(); + let status = + unsafe { c_lib::execute_b(self.exe, args.as_ptr(), args.len() as i32, &mut outputs) }; + super::handle_status(status)?; + Ok(self.process_execute_outputs(outputs)) + } +} + +impl Drop for PjRtLoadedExecutable { + fn drop(&mut self) { + unsafe { c_lib::pjrt_loaded_executable_free(self.exe) } + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/shape.rs b/ivy/engines/XLA/rust_api/src/wrappers/shape.rs new file mode 100644 index 0000000000000..de45c6bc76b50 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/shape.rs @@ -0,0 +1,218 @@ +use super::{ArrayElement, ElementType, PrimitiveType}; +use crate::{c_lib, Error, Result}; +use pyo3::prelude::*; + +#[derive(Clone, PartialEq, Eq, Debug)] +#[pyclass(unsendable)] +pub struct ArrayShape { + ty: ElementType, + dims: Vec, +} + +impl ArrayShape { + /// Create a new array shape. + pub fn new(dims: Vec) -> Self { + Self { ty: E::TY, dims } + } + + /// Create a new array shape. + pub fn new_with_type(ty: ElementType, dims: Vec) -> Self { + Self { ty, dims } + } + + pub fn element_type(&self) -> ElementType { + self.ty + } + + pub fn ty(&self) -> ElementType { + self.ty + } + + /// The stored primitive type. + pub fn primitive_type(&self) -> PrimitiveType { + self.ty.primitive_type() + } + + /// The number of elements stored in arrays that use this shape, this is the product of sizes + /// across each dimension. + pub fn element_count(&self) -> usize { + self.dims.iter().map(|d| *d as usize).product::() + } + + pub fn dims(&self) -> &[i64] { + &self.dims + } + + pub fn first_dim(&self) -> Option { + self.dims.first().copied() + } + + pub fn last_dim(&self) -> Option { + self.dims.last().copied() + } +} + +/// A shape specifies a primitive type as well as some array dimensions. +#[derive(Clone, PartialEq, Eq, Debug)] +pub enum Shape { + Tuple(Vec), + Array(ArrayShape), + Unsupported(PrimitiveType), +} + +impl Shape { + /// Create a new array shape. + pub fn array(dims: Vec) -> Self { + Self::Array(ArrayShape { ty: E::TY, dims }) + } + + /// Create a new array shape. + pub fn array_with_type(ty: ElementType, dims: Vec) -> Self { + Self::Array(ArrayShape { ty, dims }) + } + + /// Create a new tuple shape. + pub fn tuple(shapes: Vec) -> Self { + Self::Tuple(shapes) + } + + /// The stored primitive type. + pub fn primitive_type(&self) -> PrimitiveType { + match self { + Self::Tuple(_) => PrimitiveType::Tuple, + Self::Array(a) => a.ty.primitive_type(), + Self::Unsupported(ty) => *ty, + } + } + + pub fn is_tuple(&self) -> bool { + match self { + Self::Tuple(_) => true, + Self::Array { .. } | Self::Unsupported(_) => false, + } + } + + pub fn tuple_size(&self) -> Option { + match self { + Self::Tuple(shapes) => Some(shapes.len()), + Self::Array { .. } | Self::Unsupported(_) => None, + } + } + + #[allow(dead_code)] + pub(crate) fn c_shape(&self) -> Result { + match self { + Self::Tuple(shapes) => { + let shapes = shapes.iter().map(|s| s.c_shape()).collect::>>()?; + let ptrs: Vec<_> = shapes.iter().map(|s| s.0).collect(); + let c_shape = CShape(unsafe { c_lib::make_shape_tuple(ptrs.len(), ptrs.as_ptr()) }); + drop(shapes); + Ok(c_shape) + } + Self::Array(a) => { + let dims = a.dims(); + Ok(CShape(unsafe { + c_lib::make_shape_array(a.primitive_type() as i32, dims.len(), dims.as_ptr()) + })) + } + Self::Unsupported(_) => Err(Error::UnsupportedShape { shape: self.clone() }), + } + } +} + +impl TryFrom<&Shape> for ArrayShape { + type Error = Error; + + fn try_from(value: &Shape) -> Result { + match value { + Shape::Tuple(_) | Shape::Unsupported(_) => { + Err(Error::NotAnArray { expected: None, got: value.clone() }) + } + Shape::Array(a) => Ok(a.clone()), + } + } +} + +macro_rules! extract_dims { + ($cnt:tt, $dims:expr, $out_type:ty) => { + impl TryFrom<&ArrayShape> for $out_type { + type Error = Error; + + fn try_from(value: &ArrayShape) -> Result { + if value.dims.len() != $cnt { + Err(Error::UnexpectedNumberOfDims { + expected: $cnt, + got: value.dims.len(), + dims: value.dims.clone(), + }) + } else { + Ok($dims(&value.dims)) + } + } + } + + impl TryFrom<&Shape> for $out_type { + type Error = Error; + + fn try_from(value: &Shape) -> Result { + match value { + Shape::Tuple(_) | Shape::Unsupported(_) => { + Err(Error::NotAnArray { expected: Some($cnt), got: value.clone() }) + } + Shape::Array(a) => Self::try_from(a), + } + } + } + }; +} + +extract_dims!(1, |d: &Vec| d[0], i64); +extract_dims!(2, |d: &Vec| (d[0], d[1]), (i64, i64)); +extract_dims!(3, |d: &Vec| (d[0], d[1], d[2]), (i64, i64, i64)); +extract_dims!(4, |d: &Vec| (d[0], d[1], d[2], d[3]), (i64, i64, i64, i64)); +extract_dims!(5, |d: &Vec| (d[0], d[1], d[2], d[3], d[4]), (i64, i64, i64, i64, i64)); + +pub(crate) struct CShape(c_lib::shape); + +impl CShape { + pub(crate) fn from_ptr(ptr: c_lib::shape) -> Self { + Self(ptr) + } + + pub(crate) fn shape(&self) -> Result { + fn from_ptr_rec(ptr: c_lib::shape) -> Result { + let ty = unsafe { c_lib::shape_element_type(ptr) }; + let ty = super::FromPrimitive::from_i32(ty) + .ok_or_else(|| Error::UnexpectedElementType(ty))?; + match ty { + PrimitiveType::Tuple => { + let elem_cnt = unsafe { c_lib::shape_tuple_shapes_size(ptr) }; + let shapes: Result> = (0..elem_cnt) + .map(|i| from_ptr_rec(unsafe { c_lib::shape_tuple_shapes(ptr, i as i32) })) + .collect(); + Ok(Shape::Tuple(shapes?)) + } + ty => match ty.element_type() { + Ok(ty) => { + let rank = unsafe { c_lib::shape_dimensions_size(ptr) }; + let dims: Vec<_> = + (0..rank).map(|i| unsafe { c_lib::shape_dimensions(ptr, i) }).collect(); + Ok(Shape::Array(ArrayShape { ty, dims })) + } + Err(_) => Ok(Shape::Unsupported(ty)), + }, + } + } + from_ptr_rec(self.0) + } + + pub(crate) fn as_ptr(&self) -> c_lib::shape { + self.0 + } +} + +impl Drop for CShape { + fn drop(&mut self) { + unsafe { c_lib::shape_free(self.0) }; + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/xla_builder.rs b/ivy/engines/XLA/rust_api/src/wrappers/xla_builder.rs new file mode 100644 index 0000000000000..dcfdb48757967 --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/xla_builder.rs @@ -0,0 +1,288 @@ +use super::{ + handle_status, FromPrimitive, Literal, NativeType, PrimitiveType, Shape, XlaComputation, XlaOp, +}; +use crate::{c_lib, Error, Result}; +use std::rc::Rc; +use pyo3::prelude::*; + +/// A builder is used to keep track of a computation graph while it's being built. +pub(super) struct XlaBuilderInternal(c_lib::xla_builder); + +#[derive(Clone)] +#[pyclass(unsendable)] +pub struct XlaBuilder(Rc); + +impl XlaBuilder { + /// Create a new builder with the associated name, the name is only used for debugging + /// purposes. + pub fn new(name: &str) -> XlaBuilder { + let name = std::ffi::CString::new(name).unwrap(); + let xla_builder = unsafe { c_lib::xla_builder_create(name.as_ptr()) }; + XlaBuilder(Rc::new(XlaBuilderInternal(xla_builder))) + } + + fn ptr(&self) -> c_lib::xla_builder { + self.0 .0 + } + + /// Build a computation from the specified root node. This can only be called once. + pub fn build(&self, op: &XlaOp) -> Result { + let mut result: c_lib::xla_computation = std::ptr::null_mut(); + let status = unsafe { c_lib::build(self.ptr(), op.op, &mut result) }; + handle_status(status)?; + Ok(XlaComputation(result)) + } + + /// This returns `Ok(())` if the graph creation has not generated any error so far. Otherwise + /// the first error is returned. + pub fn first_error(&self) -> Result<()> { + let status = unsafe { c_lib::first_error(self.ptr()) }; + handle_status(status)?; + Ok(()) + } + + /// This returns `Ok(())` if the graph creation has not generated any error so far. Otherwise + /// the current status is returned. + pub fn get_current_status(&self) -> Result<()> { + let status = unsafe { c_lib::get_current_status(self.ptr()) }; + handle_status(status)?; + Ok(()) + } + + /// Create a node with a constant value defined by the specified literal. + pub fn constant_literal(&self, literal: &Literal) -> Result { + let op = unsafe { c_lib::constant_literal(self.ptr(), literal.0) }; + self.wrap(op) + } + + /// Create a node with a constant scalar value using the type of the element that is passed as + /// argument. + pub fn constant_r0(&self, f: T) -> Result { + let op = unsafe { T::constant_r0(self.ptr(), f) }; + self.wrap(op) + } + + /// A shorter notation for `constant_r0`. + pub fn c0(&self, f: T) -> Result { + self.constant_r0(f) + } + + pub fn wrap(&self, op: c_lib::xla_op) -> Result { + self.get_current_status()?; + Ok(XlaOp { op, builder: self.clone() }) + } + + /// Create an input node with the specified type and dimensions. A literal has to be passed for + /// each of the parameter in the graph when calling the `execute` function, the parameter + /// number are specified as incrementing values from 0 and represent the index of the + /// associated literal in the slice passed to `execute`. + pub fn parameter( + &self, + parameter_number: i64, + ty: super::ElementType, + dims: &[i64], + name: &str, + ) -> Result { + let name = std::ffi::CString::new(name).unwrap(); + let op = unsafe { + c_lib::parameter( + self.ptr(), + parameter_number, + ty.primitive_type() as i32, + dims.len() as i32, + dims.as_ptr(), + name.as_ptr(), + ) + }; + self.wrap(op) + } + + /// Read a single value from the implicit streaming interface of the device. + pub fn infeed(&self, ty: PrimitiveType, dims: &[i64], config: &str) -> Result { + let config = std::ffi::CString::new(config).unwrap(); + let op = unsafe { + c_lib::infeed(self.ptr(), ty as i32, dims.len() as i32, dims.as_ptr(), config.as_ptr()) + }; + self.wrap(op) + } + + pub fn parameter_s(&self, parameter_number: i64, shape: &Shape, name: &str) -> Result { + let c_shape = shape.c_shape()?; + let name = std::ffi::CString::new(name).unwrap(); + let op = unsafe { + c_lib::parameter_s(self.ptr(), parameter_number, c_shape.as_ptr(), name.as_ptr()) + }; + drop(c_shape); + self.wrap(op) + } + + pub fn constant_r1c(&self, f: T, len: usize) -> Result { + let op = unsafe { T::constant_r1c(self.ptr(), f, len) }; + self.wrap(op) + } + + /// A one dimension constant node based on some slice stored on the host. + pub fn constant_r1(&self, f: &[T]) -> Result { + let op = unsafe { T::constant_r1(self.ptr(), f.as_ptr(), f.len()) }; + self.wrap(op) + } + + /// Shorthand function for `constant_r1`. + pub fn c1(&self, f: &[T]) -> Result { + self.constant_r1(f) + } + + /// A scalar node with the zero value for the associated type. + pub fn zero(&self, ty: super::ElementType) -> Result { + let op = unsafe { c_lib::op_zero(self.ptr(), ty.primitive_type() as i32) }; + self.wrap(op) + } + + /// A scalar node with the one value for the associated type. + pub fn one(&self, ty: super::ElementType) -> Result { + let op = unsafe { c_lib::op_one(self.ptr(), ty.primitive_type() as i32) }; + self.wrap(op) + } + + /// A scalar node with the minimum value for the associated type. + pub fn min_value(&self, ty: super::ElementType) -> Result { + let op = unsafe { c_lib::op_min_value(self.ptr(), ty.primitive_type() as i32) }; + self.wrap(op) + } + + /// A scalar node with the maximum value for the associated type. + pub fn max_value(&self, ty: super::ElementType) -> Result { + let op = unsafe { c_lib::op_max_value(self.ptr(), ty.primitive_type() as i32) }; + self.wrap(op) + } + + /// A constant node with the specified shape that holds increasing values starting from 0 along + /// the iota dimension. + pub fn iota(&self, ty: super::ElementType, dims: &[i64], iota_dimension: i64) -> Result { + let op = unsafe { + c_lib::op_iota( + self.ptr(), + ty.primitive_type() as i32, + dims.len(), + dims.as_ptr(), + iota_dimension, + ) + }; + self.wrap(op) + } + + /// A constant node for a unidimensional array of increasing values starting from 0. + pub fn iota1(&self, ty: super::ElementType, size: usize) -> Result { + let op = unsafe { c_lib::op_iota1(self.ptr(), ty.primitive_type() as i32, size) }; + self.wrap(op) + } + + pub fn call(&self, computation: &XlaComputation, operands: &[XlaOp]) -> Result { + let operands: Vec<_> = operands.iter().map(|a| a.op).collect(); + let op = unsafe { + c_lib::op_call(self.ptr(), computation.0, operands.len(), operands.as_ptr()) + }; + self.wrap(op) + } + + pub fn map( + &self, + operands: &[XlaOp], + computation: &XlaComputation, + dims: &[i64], + static_operands: &[XlaOp] + ) -> Result { + let operands: Vec<_> = operands.iter().map(|a| a.op).collect(); + let static_operands: Vec<_> = static_operands.iter().map(|a| a.op).collect(); + let op = unsafe { + c_lib::op_map( + self.ptr(), + operands.len(), + operands.as_ptr(), + computation.0, + dims.len(), + dims.as_ptr(), + static_operands.len(), + static_operands.as_ptr(), + ) + }; + self.wrap(op) + } + + /// An error node, using the 'internal error' error type. + pub fn internal_error(&self, msg: &str) -> XlaOp { + let msg = std::ffi::CString::new(msg).unwrap(); + let op = unsafe { c_lib::op_internal_error(self.ptr(), msg.as_ptr()) }; + XlaOp { op, builder: self.clone() } + } + + /// An error node, using the 'unknown error' error type. + pub fn unknown_error(&self, msg: &str) -> XlaOp { + let msg = std::ffi::CString::new(msg).unwrap(); + let op = unsafe { c_lib::op_unknown_error(self.ptr(), msg.as_ptr()) }; + XlaOp { op, builder: self.clone() } + } + + /// An error node, using the 'invalid argument error' error type. + pub fn invalid_argument_error(&self, msg: &str) -> XlaOp { + let msg = std::ffi::CString::new(msg).unwrap(); + let op = unsafe { c_lib::op_invalid_argument_error(self.ptr(), msg.as_ptr()) }; + XlaOp { op, builder: self.clone() } + } + + /// Wrap a potential error in an error node. If the argument is `Ok(op)` then `op` is passed + /// back as the result. + pub fn wrap_error(&self, op: Result) -> XlaOp { + match op { + Ok(op) => op, + Err(err) => self.internal_error(&err.to_string()), + } + } + + /// The shape associated with this op. + pub fn get_shape(&self, op: &XlaOp) -> Result { + let mut out: c_lib::shape = std::ptr::null_mut(); + let status = unsafe { c_lib::get_shape(self.ptr(), op.op, &mut out) }; + handle_status(status)?; + let c_shape = super::shape::CShape::from_ptr(out); + c_shape.shape() + } + + /// The dimension sizes associated with this op. + pub fn get_dims(&self, op: &XlaOp) -> Result> { + let rank = self.get_dimensions_size(op)?; + let mut dims = vec![0; rank]; + let status = unsafe { c_lib::get_dimensions(self.ptr(), op.op, dims.as_mut_ptr()) }; + handle_status(status)?; + Ok(dims) + } + + /// The element type associated with this op. + pub fn get_primitive_type(&self, op: &XlaOp) -> Result { + let mut ty = 0i32; + let status = unsafe { c_lib::get_element_type(self.ptr(), op.op, &mut ty) }; + handle_status(status)?; + FromPrimitive::from_i32(ty).ok_or(Error::UnexpectedElementType(ty)) + } + + /// The number of dimensions (a.k.a the rank) associated with this op. + pub fn get_dimensions_size(&self, op: &XlaOp) -> Result { + let mut dsize = 0i32; + let status = unsafe { c_lib::get_dimensions_size(self.ptr(), op.op, &mut dsize) }; + handle_status(status)?; + Ok(dsize as usize) + } + + /// Build a tuple from multiple operands. + pub fn tuple>(&self, args: &[B]) -> Result { + let args: Vec<_> = args.iter().map(|a| a.borrow().op).collect(); + let op = unsafe { c_lib::op_tuple(self.ptr(), args.as_ptr(), args.len()) }; + self.wrap(op) + } +} + +impl Drop for XlaBuilderInternal { + fn drop(&mut self) { + unsafe { c_lib::xla_builder_free(self.0) } + } +} diff --git a/ivy/engines/XLA/rust_api/src/wrappers/xla_op.rs b/ivy/engines/XLA/rust_api/src/wrappers/xla_op.rs new file mode 100644 index 0000000000000..5a4094b6e497e --- /dev/null +++ b/ivy/engines/XLA/rust_api/src/wrappers/xla_op.rs @@ -0,0 +1,922 @@ +//! Nodes from the computation graph. +//! +//! An `XlaOp` value represents a node/operand in the computation graph, e.g. it can be the sum of two +//! other nodes, a constant value, an input parameter, etc. +//! +//! For details on the semantics, see +//! [operation_semantics](https://www.tensorflow.org/xla/operation_semantics). +use super::{ArrayShape, PrimitiveType, Shape, XlaBuilder, XlaComputation}; +use crate::{c_lib, Error, Result}; +use pyo3::prelude::*; + +#[pyclass(unsendable)] +pub struct XlaOp { + pub(super) op: c_lib::xla_op, + pub(super) builder: XlaBuilder, +} + +macro_rules! extract_dims { + ($fn_name:ident, $cnt:tt, $dims:expr, $out_type:ty) => { + pub fn $fn_name(&self) -> Result<$out_type> { + let dims = self.builder.get_dims(self)?; + if dims.len() != $cnt { + let dims: Vec<_> = dims.iter().map(|d| *d as i64).collect(); + Err(Error::UnexpectedNumberOfDims { expected: $cnt, got: dims.len(), dims }) + } else { + let dims = $dims(dims); + Ok(dims) + } + } + }; +} + +macro_rules! binary_op { + ($func_name:ident, $expression:expr) => { + pub fn $func_name(&self, op: &XlaOp) -> Result { + let op = unsafe { $expression(self.op, op.op) }; + self.wrap(op) + } + }; +} + +macro_rules! unary_op { + ($func_name:ident, $expression:expr) => { + pub fn $func_name(&self) -> Result { + let op = unsafe { $expression(self.op) }; + self.wrap(op) + } + }; +} + +impl Clone for XlaOp { + fn clone(&self) -> Self { + let op = unsafe { c_lib::op_clone(self.op) }; + Self { op, builder: self.builder.clone() } + } +} +impl XlaOp { + pub(super) fn wrap(&self, op: c_lib::xla_op) -> Result { + self.builder.get_current_status()?; + Ok(XlaOp { op, builder: self.builder.clone() }) + } + + pub fn builder(&self) -> &XlaBuilder { + &self.builder + } + + binary_op!(add_, c_lib::op_add); + binary_op!(sub_, c_lib::op_sub); + binary_op!(mul_, c_lib::op_mul); + binary_op!(div_, c_lib::op_div); + binary_op!(rem_, c_lib::op_rem); + binary_op!(max, c_lib::op_max); + binary_op!(min, c_lib::op_min); + binary_op!(and, c_lib::op_and); + binary_op!(or, c_lib::op_or); + binary_op!(xor, c_lib::op_xor); + binary_op!(atan2, c_lib::op_atan2); + binary_op!(pow, c_lib::op_pow); + binary_op!(dot, c_lib::op_dot); + binary_op!(eq, c_lib::op_eq); + binary_op!(ne, c_lib::op_ne); + binary_op!(ge, c_lib::op_ge); + binary_op!(gt, c_lib::op_gt); + binary_op!(le, c_lib::op_le); + binary_op!(lt, c_lib::op_lt); + binary_op!(lshift, c_lib::op_shift_left); + binary_op!(rshift_arith, c_lib::op_shift_right_arith); + binary_op!(rshift_logic, c_lib::op_shift_right_logic); + + unary_op!(population_count, c_lib::op_population_count); + unary_op!(not, c_lib::op_not); + unary_op!(abs, c_lib::op_abs); + unary_op!(exp, c_lib::op_exp); + unary_op!(expm1, c_lib::op_expm1); + unary_op!(floor, c_lib::op_floor); + unary_op!(ceil, c_lib::op_ceil); + unary_op!(round, c_lib::op_round); + unary_op!(round_nearest_even, c_lib::op_round_nearest_even); + unary_op!(log, c_lib::op_log); + unary_op!(log1p, c_lib::op_log1p); + unary_op!(logistic, c_lib::op_logistic); + unary_op!(sign, c_lib::op_sign); + unary_op!(clz, c_lib::op_clz); + unary_op!(cos, c_lib::op_cos); + unary_op!(sin, c_lib::op_sin); + unary_op!(tanh, c_lib::op_tanh); + unary_op!(real, c_lib::op_real); + unary_op!(imag, c_lib::op_imag); + unary_op!(conj, c_lib::op_conj); + unary_op!(square, c_lib::op_square); + unary_op!(sqrt, c_lib::op_sqrt); + unary_op!(rsqrt, c_lib::op_rsqrt); + unary_op!(cbrt, c_lib::op_cbrt); + unary_op!(is_finite, c_lib::op_is_finite); + unary_op!(neg, c_lib::op_neg); + unary_op!(lower_triangle, c_lib::op_lower_triangle); + unary_op!(upper_triangle, c_lib::op_upper_triangle); + unary_op!(erf, c_lib::op_erf); + unary_op!(copy, c_lib::op_copy); + unary_op!(zeros_like, c_lib::op_zeros_like); + + /// Sigmoid activation function. + /// + /// This computes the element-wise sigmoid. + pub fn sigmoid(&self) -> Result { + self.logistic() + } + + /// SiLU activation function. + /// + /// This computes the element-wise SiLU activation, x.sigmoid(x). + pub fn silu(&self) -> Result { + self * self.logistic() + } + + pub fn relu(&self) -> Result { + self.max(&self.zeros_like()?) + } + + pub fn gelu(&self) -> Result { + let prim_type = self.primitive_type()?; + let elem_type = prim_type.element_type()?; + let b = self.builder(); + let sqrt_two = b.c0(2)?.astype(prim_type)?.sqrt()?; + let one_half = b.c0(0.5)?.astype(prim_type)?; + let gauss_cdf = self.div_(&sqrt_two)?.erf()?.add_(&b.one(elem_type)?)?.mul_(&one_half)?; + self.mul_(&gauss_cdf) + } + + pub fn gelu_approx(&self) -> Result { + let prim_type = self.primitive_type()?; + let b = self.builder(); + let sqrt_two_over_pi = b.c0(2f32 / std::f32::consts::PI)?.astype(prim_type)?.sqrt()?; + let v = (sqrt_two_over_pi * ((b.c0(0.044715)?.astype(prim_type)? * self.pow(&b.c0(3f32)?)?)? + self)?)?; + (b.c0(0.5)?.astype(prim_type)? * self)? * (v.tanh()? + b.c0(1)?.astype(prim_type)?)? + } + + /// A node that applies the specified Einstein summation formula to this node. + pub fn einsum1(&self, config: &str) -> Result { + let config = std::ffi::CString::new(config).unwrap(); + let op = unsafe { c_lib::op_einsum1(self.op, config.as_ptr()) }; + self.wrap(op) + } + + /// A node that applies the specified Einstein summation formula to this node and the other + /// argument node. + pub fn einsum2(&self, rhs: &XlaOp, config: &str) -> Result { + let config = std::ffi::CString::new(config).unwrap(); + let op = unsafe { c_lib::op_einsum2(self.op, rhs.op, config.as_ptr()) }; + self.wrap(op) + } + + /// Reshape this node to a different set of dimension sizes, the number of element between the + /// two different shapes has to match. + pub fn reshape(&self, dims: &[i64]) -> Result { + let op = unsafe { c_lib::op_reshape(self.op, dims.len(), dims.as_ptr()) }; + self.wrap(op) + } + + pub fn dynamic_reshape( + &self, + dim_sizes: &[XlaOp], + new_size_bounds: &[i64], + dims_are_dynamic: Vec + ) -> Result { + let dim_sizes: Vec<_> = dim_sizes.iter().map(|a| a.op).collect(); + let op = unsafe {c_lib::op_dynamic_reshape( + self.op, dim_sizes.len(), dim_sizes.as_ptr(), + new_size_bounds.len(), new_size_bounds.as_ptr(), + dims_are_dynamic.as_ptr()) + }; + self.wrap(op) + } + + /// Add some broadcasting dimensions at the beginning of the current node shape. + pub fn broadcast(&self, dims: &[i64]) -> Result { + let op = unsafe { c_lib::op_broadcast(self.op, dims.len(), dims.as_ptr()) }; + self.wrap(op) + } + + /// Add some broadcasting dimensions at arbitrary positions. + /// + /// See the [semantics](https://www.tensorflow.org/xla/operation_semantics#broadcastindim). + pub fn broadcast_in_dim(&self, out_dims: &[i64], broadcast_dims: &[i64]) -> Result { + let op = unsafe { + c_lib::op_broadcast_in_dim( + self.op, + out_dims.len(), + out_dims.as_ptr(), + broadcast_dims.len(), + broadcast_dims.as_ptr(), + ) + }; + self.wrap(op) + } + + /// Collapse the dimensions of this node into a single dimension, [xla + /// documentation](https://www.tensorflow.org/xla/operation_semantics#collapse). + pub fn collapse(&self, dims: &[i64]) -> Result { + let op = unsafe { c_lib::op_collapse(self.op, dims.len(), dims.as_ptr()) }; + self.wrap(op) + } + + /// Permute the dimension with the specified indexes. + pub fn transpose(&self, index_perm: &[i64]) -> Result { + let op = unsafe { c_lib::op_transpose(self.op, index_perm.len(), index_perm.as_ptr()) }; + self.wrap(op) + } + + /// Permute two dimensions, this is a specialized version of `transpose`. + pub fn swap_dims(&self, index1: i64, index2: i64) -> Result { + let index1 = self.normalize_index(index1)?; + let index2 = self.normalize_index(index2)?; + let rank = self.rank()?; + let mut index_perm: Vec<_> = (0..rank as i64).collect(); + index_perm[index1 as usize] = index2; + index_perm[index2 as usize] = index1; + self.transpose(&index_perm) + } + + + pub fn pad(&self, padding_value: &XlaOp, padding_config: Vec<(i64, i64, i64)>) -> Result { + let lows: Vec<_> = padding_config.iter().map(|x| x.0).collect(); + let highs: Vec<_> = padding_config.iter().map(|x| x.1).collect(); + let interiors: Vec<_> = padding_config.iter().map(|x| x.2).collect(); + let op = unsafe {c_lib::op_pad( + self.op, padding_value.op, padding_config.len(), + lows.as_ptr(), highs.as_ptr(), interiors.as_ptr()) + }; + self.wrap(op) + } + + pub fn pad_in_dim(&self, padding_value: &XlaOp, dinmo: i64, pad_low: i64, pad_high: i64) -> Result { + let op = unsafe {c_lib::op_pad_in_dim(self.op, padding_value.op, dinmo, pad_low, pad_high)}; + self.wrap(op) + } + + pub fn slice(&self, start_indices: &[i64], limit_indices: &[i64], strides: &[i64]) -> Result { + let op = unsafe {c_lib::op_slice( + self.op,start_indices.len(),start_indices.as_ptr(), + limit_indices.len(),limit_indices.as_ptr(), + strides.len(),strides.as_ptr()) + }; + self.wrap(op) + } + + /// Create a node that has a partial view on the data of the original node. Indexes on the + /// target dimension `dim` are restricted to the values between `start_index` (inclusive) and + /// `stop_index` (exclusive), using the associated `stride` as a step between two values. + pub fn slice_in_dim( + &self, + start_index: i64, + stop_index: i64, + stride: i64, + dim: i64, + ) -> Result { + let dim = self.normalize_index(dim)?; + let op = unsafe { c_lib::op_slice_in_dim(self.op, start_index, stop_index, stride, dim) }; + self.wrap(op) + } + + /// A specialized version of `slice_in_dim` using a stride of one, so with all values with an + /// index between `start_index` (inclusive) and `stop_index` (exclusive). + pub fn slice_in_dim1(&self, start_index: i64, stop_index: i64, dim: i64) -> Result { + self.slice_in_dim(start_index, stop_index, 1, dim) + } + + pub fn dynamic_slice( + &self, + start_indices: &[XlaOp], + slice_indices: &[i64], + ) -> Result { + let start_indices: Vec<_> = start_indices.iter().map(|a| a.op).collect(); + let op = unsafe { c_lib::op_dynamic_slice( + self.op, start_indices.len(), start_indices.as_ptr(), + slice_indices.len(), slice_indices.as_ptr()) + }; + self.wrap(op) + } + + pub fn dynamic_update_slice( + &self, + update: &XlaOp, + start_indices: &[XlaOp], + ) -> Result { + let start_indices: Vec<_> = start_indices.iter().map(|a| a.op).collect(); + let op = unsafe { c_lib::op_dynamic_update_slice( + self.op, update.op, start_indices.len(), start_indices.as_ptr()) + }; + self.wrap(op) + } + + /// A new node containing only values for index `index_in_dim` on the dimension `dim_index`. + /// The target dimension is squeezed so the resulting node has one less dimension than the + /// original node. + pub fn at(&self, index_in_dim: i64, dim_index: i64) -> Result { + let slice = self.slice_in_dim(index_in_dim, index_in_dim + 1, 1, dim_index)?; + slice.squeeze(dim_index) + } + + /// Squeeze the dimension as the target index, i.e. if this dimension has size one remove it + /// for the generated node. The target dimension index can be specified as a negative value, + /// e.g. -1 for the last dimension. + pub fn squeeze(&self, index: i64) -> Result { + let index = self.normalize_index(index)?; + let dims = self.dims()?; + let mut new_dims = vec![]; + for (i, d) in dims.iter().enumerate() { + if i as i64 != index || *d != 1 { + new_dims.push(*d as i64) + } + } + self.reshape(&new_dims) + } + + /// Concat multiple nodes (together with the `self` node) along the target dimension. + pub fn concat_in_dim( + &self, + args: &[XlaOp], + dim: i64, + ) -> Result { + let dim = self.normalize_index(dim)?; + let args: Vec<_> = args.iter().map(|a| a.op).collect(); + let op = unsafe { c_lib::op_concat_in_dim(self.op, args.as_ptr(), args.len(), dim) }; + self.wrap(op) + } + + /// Index into tuples. + pub fn get_tuple_element(&self, index: i64) -> Result { + let op = unsafe { c_lib::op_get_tuple_element(self.op, index) }; + self.wrap(op) + } + + /// Clamp the values in the original node to be between `min` and `max`. + pub fn clamp(&self, min: &Self, max: &Self) -> Result { + let op = unsafe { c_lib::op_clamp(min.op, self.op, max.op) }; + self.wrap(op) + } + + /// Select values from the original tensor to be values from `on_true` if the associated + /// value in `self` is true, and the values from `on_false` otherwise. + pub fn select(&self, on_true: &Self, on_false: &Self) -> Result { + let op = unsafe { c_lib::op_select(self.op, on_true.op, on_false.op) }; + self.wrap(op) + } + + /// A node that when executed generates values using a random uniform distribution. + pub fn rng_uniform(min: &Self, max: &Self, shape: &ArrayShape) -> Result { + let dims = shape.dims(); + let op = unsafe { + c_lib::op_rng_uniform( + min.op, + max.op, + shape.primitive_type() as i32, + dims.len() as i32, + dims.as_ptr(), + ) + }; + min.wrap(op) + } + + /// A node that when executed generates values using a random normal distribution. + pub fn rng_normal(mu: &Self, sigma: &Self, shape: &ArrayShape) -> Result { + let dims = shape.dims(); + let op = unsafe { + c_lib::op_rng_normal( + mu.op, + sigma.op, + shape.primitive_type() as i32, + dims.len() as i32, + dims.as_ptr(), + ) + }; + mu.wrap(op) + } + + /// Create a new node by casting the elements of the original node to a new primitive type. + pub fn astype(&self, ty: PrimitiveType) -> Result { + let op = unsafe { c_lib::op_convert_element_type(self.op, ty as i32) }; + self.wrap(op) + } + + fn normalize_indexes(&self, indexes: &[i64]) -> Result> { + let rank = self.rank()?; + indexes + .iter() + .map(|&index| { + if index >= rank as i64 { + Err(Error::IndexOutOfBounds { index, rank }) + } else if index >= 0 { + Ok(index) + } else if index + rank as i64 >= 0 { + Ok(index + rank as i64) + } else { + Err(Error::IndexOutOfBounds { index, rank }) + } + }) + .collect() + } + + fn normalize_index(&self, index: i64) -> Result { + let rank = self.rank()?; + if index >= rank as i64 { + Err(Error::IndexOutOfBounds { index, rank }) + } else if index >= 0 { + Ok(index) + } else if index + rank as i64 >= 0 { + Ok(index + rank as i64) + } else { + Err(Error::IndexOutOfBounds { index, rank }) + } + } + + /// A node that contains the size of the dimension with the target index as a `S32` scalar + /// value. + pub fn dimensions_size(&self, index: i64) -> Result { + let index = self.normalize_index(index)?; + let op = unsafe { c_lib::op_dimensions_size(self.op, index) }; + self.wrap(op) + } + + /// Create a node by folding a computation across some target dimensions. If `keep_dims` is + /// `true`, the resulting node has a dimension of size one for the target dimensions, when + /// using `false` these dimensions are squeezed so the resulting node has a rank that is the + /// original node rank minus the number of elements in `dims`. + pub fn reduce( + &self, + init_value: Self, + comp: &XlaComputation, + dims: &[i64], + keep_dims: bool, + ) -> Result { + let dims = self.normalize_indexes(dims)?; + let op = + unsafe { c_lib::op_reduce(self.op, init_value.op, comp.0, dims.as_ptr(), dims.len()) }; + let op = self.wrap(op)?; + self.maybe_keep_dims(op, &dims, keep_dims) + } + + /// Sequentially execute `body` until `cond` fails. + /// + /// - `init` argument has a type `T`. + /// - `cond` is a computation with a single argument of type `T` producing a value of type + /// `PRED`. + /// - `body` is a computation with a single argument of type `T` producing a value of type + /// `T`. + pub fn while_(cond: &XlaComputation, body: &XlaComputation, init: Self) -> Result { + let op = unsafe { c_lib::op_while(cond.0, body.0, init.op) }; + init.wrap(op) + } + + /// Execute `true_comp` if `self` is true, `false_comp` if `self` is false, and return the result. + /// `self` has to be a scalar of type `PRED`. + /// `true_op` is used as the single argument to `true_comp` and `false_op` as the single + /// argument to `false_comp`. + pub fn conditional( + &self, + true_op: Self, + true_comp: &XlaComputation, + false_op: Self, + false_comp: &XlaComputation, + ) -> Result { + let op = unsafe { + c_lib::op_conditional(self.op, true_op.op, true_comp.0, false_op.op, false_comp.0) + }; + self.wrap(op) + } + + pub fn conv( + &self, + rhs: &XlaOp, + window_strides: &[i64], + padding: &str, + feature_group_count: i64, + batch_group_count: i64 + ) -> Result { + let padding_config = std::ffi::CString::new(padding).unwrap(); + let op = unsafe { + c_lib::op_conv( + self.op, rhs.op, + window_strides.len(), + window_strides.as_ptr(), + padding_config.as_ptr(), + feature_group_count, + batch_group_count + ) + }; + self.wrap(op) + } + + pub fn conv_general_dilated( + &self, + rhs: &XlaOp, + window_strides: &[i64], + padding: &[(i64, i64)], + lhs_dilations: &[i64], + rhs_dilations: &[i64], + input_batch_dim: &i64, + input_feature_dim: &i64, + input_spatial_dims: &[i64], + output_batch_dim: &i64, + output_feature_dim: &i64, + output_spatial_dims: &[i64], + kernel_input_feature_dim: &i64, + kernel_output_feature_dim: &i64, + kernel_spatial_dims: &[i64], + feature_group_count: i64, + batch_group_count: i64 + ) -> Result { + let padding: Vec = padding.iter().flat_map(|(a, b)| vec![*a, *b]).collect(); + let op = unsafe { + c_lib::op_conv_general_dilated( + self.op, + rhs.op, + window_strides.len(), + window_strides.as_ptr(), + padding.len() / 2, + padding.as_ptr(), + lhs_dilations.len(), + lhs_dilations.as_ptr(), + rhs_dilations.len(), + rhs_dilations.as_ptr(), + input_batch_dim, + input_feature_dim, + input_spatial_dims.len(), + input_spatial_dims.as_ptr(), + output_batch_dim, + output_feature_dim, + output_spatial_dims.len(), + output_spatial_dims.as_ptr(), + kernel_input_feature_dim, + kernel_output_feature_dim, + kernel_spatial_dims.len(), + kernel_spatial_dims.as_ptr(), + feature_group_count, + batch_group_count, + ) + }; + self.wrap(op) + } + + pub fn batch_norm_inference( + &self, + scale: &XlaOp, + offset: &XlaOp, + mean: &XlaOp, + variance: &XlaOp, + epsilon: f32, + feature_index: i64, + ) -> Result { + let op = unsafe { + c_lib::op_batch_norm_inference( + self.op, + scale.op, + offset.op, + mean.op, + variance.op, + epsilon, + feature_index, + ) + }; + self.wrap(op) + } + + pub fn outfeed(&self, ty: PrimitiveType, dims: &[i64], config: &str) { + let config = std::ffi::CString::new(config).unwrap(); + unsafe { + c_lib::outfeed(self.op, ty as i32, dims.len() as i32, dims.as_ptr(), config.as_ptr()) + } + } + + /// The kind of elements that are computed by this operand. + pub fn primitive_type(&self) -> Result { + self.builder.get_primitive_type(self) + } + + /// The kind of elements that are computed by this operand, shortcut for `primitive_type`. + pub fn ty(&self) -> Result { + self.primitive_type() + } + + /// The number of dimensions for this node. + pub fn rank(&self) -> Result { + self.builder.get_dimensions_size(self) + } + + pub fn shape(&self) -> Result { + self.builder.get_shape(self) + } + + pub fn array_shape(&self) -> Result { + ArrayShape::try_from(&self.builder.get_shape(self)?) + } + + pub fn dims(&self) -> Result> { + self.builder.get_dims(self) + } + + extract_dims!(dim1, 1, |d: Vec| d[0], usize); + extract_dims!(dim2, 2, |d: Vec| (d[0], d[1]), (usize, usize)); + extract_dims!(dim3, 3, |d: Vec| (d[0], d[1], d[2]), (usize, usize, usize)); + extract_dims!(dim4, 4, |d: Vec| (d[0], d[1], d[2], d[3]), (usize, usize, usize, usize)); + extract_dims!( + dim5, + 5, + |d: Vec| (d[0], d[1], d[2], d[3], d[4]), + (usize, usize, usize, usize, usize) + ); + + /// General dot multiplication between two nodes, specifying the dimensions that get contracted + /// as well as the batch dimensions. + pub fn dot_general( + &self, + rhs: &XlaOp, + lhs_contracting_dims: &[i64], + rhs_contracting_dims: &[i64], + lhs_batch_dims: &[i64], + rhs_batch_dims: &[i64], + ) -> Result { + let op = unsafe { + c_lib::op_dot_general( + self.op, + rhs.op, + lhs_contracting_dims.as_ptr(), + lhs_contracting_dims.len(), + rhs_contracting_dims.as_ptr(), + rhs_contracting_dims.len(), + lhs_batch_dims.as_ptr(), + lhs_batch_dims.len(), + rhs_batch_dims.as_ptr(), + rhs_batch_dims.len(), + ) + }; + self.wrap(op) + } + + pub fn gather( + &self, + start_indices: &XlaOp, + offset_dims: &[i64], + collapsed_slice_dims: &[i64], + start_index_map: &[i64], + set_index_vector_dim: Option, + slice_sizes: &[i64], + ) -> Result { + let set_index_vector_dim_ptr = + set_index_vector_dim.as_ref().map(|p| p as *const _).unwrap_or(std::ptr::null()); + let op = unsafe { + c_lib::op_gather( + self.op, + start_indices.op, + offset_dims.as_ptr(), + offset_dims.len(), + collapsed_slice_dims.as_ptr(), + collapsed_slice_dims.len(), + start_index_map.as_ptr(), + start_index_map.len(), + set_index_vector_dim_ptr, + slice_sizes.as_ptr(), + slice_sizes.len(), + ) + }; + self.wrap(op) + } + + pub fn scatter( + operands: &[XlaOp], + scatter_indices: &XlaOp, + updates: &[XlaOp], + update_computation: &XlaComputation, + update_window_dims: &[i64], + inserted_window_dims: &[i64], + scatter_dims_to_operand_dims: &[i64], + index_vector_dim: i64 + ) -> Result { + let operands: Vec<_> = operands.iter().map(|a| a.op).collect(); + let updates: Vec<_> = updates.iter().map(|a| a.op).collect(); + let op = unsafe { + c_lib::op_scatter( + operands.len(), + operands.as_ptr(), + scatter_indices.op, + updates.len(), + updates.as_ptr(), + update_computation.0, + update_window_dims.len(), + update_window_dims.as_ptr(), + inserted_window_dims.len(), + inserted_window_dims.as_ptr(), + scatter_dims_to_operand_dims.len(), + scatter_dims_to_operand_dims.as_ptr(), + index_vector_dim + ) + }; + scatter_indices.wrap(op) + } + + pub fn take(&self, indices: &XlaOp, axis: i64) -> Result { + let axis = self.normalize_index(axis)?; + let shape = self.array_shape()?; + let indices_shape = indices.array_shape()?; + let index_dims = indices_shape.dims(); + let dims = shape.dims(); + let offset_dims: Vec<_> = (0..((dims.len() + index_dims.len()) as i64 - 1)) + .filter(|x| *x < axis || *x >= axis + index_dims.len() as i64) + .collect(); + let mut slice_sizes: Vec<_> = dims.to_vec(); + slice_sizes[axis as usize] = 1; + let mut index_dims_plus_1 = index_dims.to_vec(); + index_dims_plus_1.push(1); + let indices = indices.reshape(&index_dims_plus_1)?; + // Same as in Jax: always use the last dimension for index_vector_dim. + let index_vector_dim = Some(index_dims.len() as i64); + self.gather(&indices, &offset_dims, &[axis], &[axis], index_vector_dim, &slice_sizes) + } + + fn maybe_keep_dims(&self, res: XlaOp, dims_to_keep: &[i64], keep_dims: bool) -> Result { + if keep_dims && !dims_to_keep.is_empty() { + let shape = self.array_shape()?; + let mut dims = shape.dims().to_vec(); + for d in dims_to_keep.iter() { + dims[*d as usize] = 1; + } + res.reshape(&dims) + } else { + Ok(res) + } + } + + /// A node that computes the sum across the specified dimensions, e.g. if all the dimensions + /// are passed as an argument the result is a scalar with the sum of all the elements in the + /// original node. + pub fn reduce_sum(&self, dims: &[i64], keep_dims: bool) -> Result { + let builder = XlaBuilder::new("Sum"); + let ty = self.primitive_type()?.element_type()?; + let x = builder.parameter(0, ty, &[], "x")?; + let y = builder.parameter(1, ty, &[], "y")?; + let sum = x.add_(&y)?.build()?; + let init_value = self.builder.zero(ty)?; + self.reduce(init_value, &sum, dims, keep_dims) + } + + /// A node that computes the average value across the specified dimensions. + pub fn reduce_mean(&self, dims: &[i64], keep_dims: bool) -> Result { + let b = &self.builder(); + let ty = self.primitive_type()?; + let mut scale = b.one(crate::ElementType::S32)?; + for d in dims.iter() { + scale = (scale * self.dimensions_size(*d)?)?; + } + let sum = self.reduce_sum(dims, keep_dims)?; + sum / scale.astype(ty)? + } + + /// A node that computes the maximum value across the specified dimensions. + pub fn reduce_max(&self, dims: &[i64], keep_dims: bool) -> Result { + let builder = XlaBuilder::new("Max"); + let ty = self.primitive_type()?.element_type()?; + let x = builder.parameter(0, ty, &[], "x")?; + let y = builder.parameter(1, ty, &[], "y")?; + let sum = x.max(&y)?.build()?; + let init_value = self.builder.min_value(ty)?; + self.reduce(init_value, &sum, dims, keep_dims) + } + + /// A node that computes the minimum value across the specified dimensions. + pub fn reduce_min(&self, dims: &[i64], keep_dims: bool) -> Result { + let builder = XlaBuilder::new("Min"); + let ty = self.primitive_type()?.element_type()?; + let x = builder.parameter(0, ty, &[], "x")?; + let y = builder.parameter(1, ty, &[], "y")?; + let sum = x.min(&y)?.build()?; + let init_value = self.builder.max_value(ty)?; + self.reduce(init_value, &sum, dims, keep_dims) + } + + pub fn softmax(&self, dim: i64) -> Result { + let max = self.reduce_max(&[dim], true)?; + let unnormalized = (self - max)?.exp()?; + let sum = unnormalized.reduce_sum(&[dim], true)?; + unnormalized / sum + } + + /// Layer normalization, this normalizes values on the target dimension to be of zero mean and + /// standard deviation one, and then scales the result by `scale` and adds `bias`. + pub fn layer_norm(&self, dims: &[i64], scale: &XlaOp, bias: &XlaOp, eps: f64) -> Result { + let ty = self.primitive_type().unwrap_or(PrimitiveType::F32); + let eps = self.builder().c0(eps)?.astype(ty)?; + let mean = self.reduce_mean(&dims, true)?; + let mean2 = (self * self)?.reduce_mean(&dims, true)?; + let var = (mean2 - (&mean * &mean)?)?; + let mul = (var + eps)?.rsqrt()?; + bias + ((self - mean)? * mul)? * scale + } + + /// Matrix multiplication, this is a specialized version of `dot_general` to be used for + /// matrix-matrix or matrix-vector multiplications. + pub fn matmul(&self, rhs: &Self) -> Result { + // Similar to the jax implementation but without the squeezing. + // https://github.com/google/jax/blob/849e47f79ac64ccba1a762804217c00a9905025b/jax/_src/numpy/lax_numpy.py#L3028 + let lhs_shape = self.array_shape()?; + let rhs_shape = self.array_shape()?; + let lhs_dims = lhs_shape.dims(); + let rhs_dims = rhs_shape.dims(); + let lhs_ndims = lhs_dims.len(); + let rhs_ndims = rhs_dims.len(); + if lhs_ndims < 1 || rhs_ndims < 1 { + Err(Error::MatMulIncorrectDims { + lhs_dims: lhs_dims.to_vec(), + rhs_dims: rhs_dims.to_vec(), + msg: "empty dimension", + })? + } + + let rhs_is_mat = rhs_ndims > 1; + let lhs_batch_ndims = lhs_ndims.saturating_sub(2); + let rhs_batch_ndims = rhs_ndims.saturating_sub(2); + let max_ndims = usize::max(lhs_batch_ndims, rhs_batch_ndims); + let mut lhs_batch_dims = vec![]; + let mut rhs_batch_dims = vec![]; + for idx in 0..max_ndims { + let lhs_idx = (idx + lhs_batch_ndims) as i64 - max_ndims as i64; + let rhs_idx = (idx + rhs_batch_ndims) as i64 - max_ndims as i64; + // Only one of lhs_idx and rhs_idx can be negative. + if lhs_idx < 0 && rhs_idx < 0 { + panic!("internal error: negative dim idxs {lhs_dims:?} {rhs_dims:?}") + } else if lhs_idx < 0 && rhs_idx >= 0 { + rhs_batch_dims.push(rhs_idx) + } else if lhs_idx >= 0 && rhs_idx < 0 { + lhs_batch_dims.push(lhs_idx) + } else if lhs_dims[lhs_idx as usize] == rhs_dims[rhs_idx as usize] { + lhs_batch_dims.push(lhs_idx); + rhs_batch_dims.push(rhs_idx); + } else { + Err(Error::MatMulIncorrectDims { + lhs_dims: lhs_dims.to_vec(), + rhs_dims: rhs_dims.to_vec(), + msg: "incompatible batch dimensions", + })? + } + } + self.dot_general( + rhs, + &[lhs_ndims as i64 - 1], + &[rhs_ndims as i64 - 1 - i64::from(rhs_is_mat)], + &lhs_batch_dims, + &rhs_batch_dims, + ) + } + + /// Generate a computation which root value is this node. + pub fn build(&self) -> Result { + self.builder.build(self) + } +} + +impl Drop for XlaOp { + fn drop(&mut self) { + unsafe { c_lib::xla_op_free(self.op) } + } +} + +macro_rules! bin_trait { + ($trait:ident, $fn1:ident, $fn2:ident) => { + impl> std::ops::$trait for XlaOp { + type Output = Result; + + fn $fn1(self, rhs: B) -> Self::Output { + (&self).$fn1(rhs) + } + } + + impl> std::ops::$trait for &XlaOp { + type Output = Result; + + fn $fn1(self, rhs: B) -> Self::Output { + self.$fn2(rhs.borrow()) + } + } + + impl> std::ops::$trait> for XlaOp { + type Output = Result; + + fn $fn1(self, rhs: Result) -> Self::Output { + (&self).$fn1(rhs) + } + } + + impl> std::ops::$trait> for &XlaOp { + type Output = Result; + + fn $fn1(self, rhs: Result) -> Self::Output { + self.$fn2(rhs?.borrow()) + } + } + }; +} + +bin_trait!(Add, add, add_); +bin_trait!(Sub, sub, sub_); +bin_trait!(Mul, mul, mul_); +bin_trait!(Div, div, div_); diff --git a/ivy/engines/XLA/rust_api/xla_rs/xla_rs.cc b/ivy/engines/XLA/rust_api/xla_rs/xla_rs.cc new file mode 100644 index 0000000000000..8eabce7517d9f --- /dev/null +++ b/ivy/engines/XLA/rust_api/xla_rs/xla_rs.cc @@ -0,0 +1,1402 @@ +#include "xla_rs.h" + +#define ASSIGN_OR_RETURN_STATUS(lhs, rexpr) \ + ASSIGN_OR_RETURN_STATUS_IMPL( \ + TF_STATUS_MACROS_CONCAT_NAME(_statusor, __COUNTER__), lhs, rexpr) + +#define ASSIGN_OR_RETURN_STATUS_IMPL(statusor, lhs, rexpr) \ + auto statusor = (rexpr); \ + if (!statusor.ok()) \ + return new Status(statusor.status()); \ + auto lhs = std::move(statusor.value()); + +#define MAYBE_RETURN_STATUS(rexpr) \ + MAYBE_RETURN_STATUS_IMPL(TF_STATUS_MACROS_CONCAT_NAME(_status, __COUNTER__), \ + rexpr) + +#define MAYBE_RETURN_STATUS_IMPL(statusor, rexpr) \ + auto statusor = (rexpr); \ + if (!statusor.ok()) \ + return new Status(statusor); + +#define BEGIN_PROTECT_OP try { +#define END_PROTECT_OP_B(builder) \ + } \ + catch (std::exception e) { \ + return new XlaOp(builder->ReportError(tsl::errors::Internal(e.what()))); \ + } +#define END_PROTECT_OP(arg) \ + } \ + catch (std::exception e) { \ + return new XlaOp( \ + arg->builder()->ReportError(tsl::errors::Internal(e.what()))); \ + } + +status pjrt_cpu_client_create(pjrt_client *output) { + ASSIGN_OR_RETURN_STATUS(client, xla::GetTfrtCpuClient(false)); + *output = new std::shared_ptr(std::move(client)); + return nullptr; +} + +status pjrt_gpu_client_create(pjrt_client *output, double memory_fraction, + bool preallocate) { + xla::GpuAllocatorConfig allocator = {.memory_fraction = memory_fraction, + .preallocate = preallocate}; + ASSIGN_OR_RETURN_STATUS( + client, xla::GetStreamExecutorGpuClient(false, allocator, nullptr, 0)); + *output = new std::shared_ptr(std::move(client)); + return nullptr; +} + +status pjrt_tpu_client_create(pjrt_client *output, + int max_inflight_computations) { + ASSIGN_OR_RETURN_STATUS(client, xla::GetTpuClient(max_inflight_computations)); + *output = new std::shared_ptr(std::move(client)); + return nullptr; +} + +int pjrt_client_device_count(pjrt_client c) { return (*c)->device_count(); } + +int pjrt_client_addressable_device_count(pjrt_client c) { + return (*c)->addressable_device_count(); +} + +void pjrt_client_devices(pjrt_client c, pjrt_device *outputs) { + size_t index = 0; + for (auto device : (*c)->devices()) { + outputs[index++] = device; + } +} + +void pjrt_client_addressable_devices(pjrt_client c, pjrt_device *outputs) { + size_t index = 0; + for (auto device : (*c)->addressable_devices()) { + outputs[index++] = device; + } +} + +char *pjrt_client_platform_name(pjrt_client c) { + // TODO: Avoid the double allocation when converting string views. + return strdup(std::string((*c)->platform_name()).c_str()); +} + +char *pjrt_client_platform_version(pjrt_client c) { + return strdup(std::string((*c)->platform_version()).c_str()); +} + +void pjrt_client_free(pjrt_client b) { delete b; } + +void pjrt_loaded_executable_free(pjrt_loaded_executable b) { delete b; } + +status pjrt_buffer_from_host_buffer(const pjrt_client client, + const pjrt_device device, const void *d, + int pr_type, int dsize, const int64_t *ds, + pjrt_buffer *output) { + PjRtDevice *device_ = device == nullptr ? (*client)->devices()[0] : device; + ASSIGN_OR_RETURN_STATUS( + buffer, + (*client)->BufferFromHostBuffer( + d, (PrimitiveType)pr_type, absl::Span(ds, dsize), {}, + PjRtClient::HostBufferSemantics::kImmutableOnlyDuringCall, []() {}, + device_)); + *output = buffer.release(); + return nullptr; +} + +status pjrt_buffer_from_host_literal(const pjrt_client client, + const pjrt_device device, const literal l, + pjrt_buffer *output) { + PjRtDevice *d = device == nullptr ? (*client)->devices()[0] : device; + ASSIGN_OR_RETURN_STATUS(buffer, (*client)->BufferFromHostLiteral(*l, d)); + *output = buffer.release(); + return nullptr; +} + +status pjrt_buffer_to_literal_sync(pjrt_buffer b, literal *output) { + ASSIGN_OR_RETURN_STATUS(literal, b->ToLiteralSync()); + *output = new Literal(); + **output = std::move(*literal); + return nullptr; +} + +shape pjrt_buffer_on_device_shape(pjrt_buffer b) { + return new Shape(b->on_device_shape()); +} + +status pjrt_buffer_copy_to_device(pjrt_buffer b, pjrt_device device, + pjrt_buffer *output) { + ASSIGN_OR_RETURN_STATUS(copied_b, b->CopyToDevice(device)); + *output = copied_b.release(); + return nullptr; +} + +status pjrt_buffer_copy_raw_to_host_sync(pjrt_buffer b, void *dst, + size_t offset, size_t transfer_size) { + MAYBE_RETURN_STATUS(b->CopyRawToHost(dst, offset, transfer_size).Await()); + return nullptr; +} + +void pjrt_buffer_free(pjrt_buffer b) { delete b; } + +int pjrt_device_id(pjrt_device d) { return d->id(); } + +int pjrt_device_process_index(pjrt_device d) { return d->process_index(); } + +int pjrt_device_local_hardware_id(pjrt_device d) { + return d->local_hardware_id(); +} + +status pjrt_device_transfer_to_infeed(pjrt_device d, const literal l) { + MAYBE_RETURN_STATUS(d->TransferToInfeed(*l)); + return nullptr; +} + +status pjrt_device_transfer_from_outfeed(pjrt_device d, literal l) { + MAYBE_RETURN_STATUS(d->TransferFromOutfeed(l)); + return nullptr; +} + +char *pjrt_device_kind(pjrt_device d) { + return strdup(std::string(d->device_kind()).c_str()); +} + +char *pjrt_device_debug_string(pjrt_device d) { + return strdup(std::string(d->DebugString()).c_str()); +} + +char *pjrt_device_to_string(pjrt_device d) { + return strdup(std::string(d->ToString()).c_str()); +} + +xla_builder xla_builder_create(const char *name) { + return new XlaBuilder(name); +} + +void xla_builder_free(xla_builder b) { delete b; } + +xla_op constant_literal(const xla_builder b, const literal l) { + BEGIN_PROTECT_OP + return new XlaOp(ConstantLiteral(b, *l)); + END_PROTECT_OP_B(b) +} + +#define CONST_OP_R01(native_type, primitive_type) \ + xla_op constant_r0_##native_type(const xla_builder b, native_type f) { \ + return new XlaOp(ConstantR0(b, f)); \ + } \ + xla_op constant_r1c_##native_type(const xla_builder b, native_type f, \ + size_t len) { \ + return new XlaOp(ConstantR1(b, len, f)); \ + } \ + xla_op constant_r1_##native_type(const xla_builder b, const native_type *f, \ + size_t len) { \ + return new XlaOp( \ + ConstantR1(b, absl::Span(f, len))); \ + } \ + literal create_r0_##native_type(native_type f) { \ + return new Literal(LiteralUtil::CreateR0(f)); \ + } \ + literal create_r1_##native_type(const native_type *f, size_t nel) { \ + return new Literal(LiteralUtil::CreateR1( \ + absl::Span(f, nel))); \ + } \ + native_type literal_get_first_element_##native_type(const literal l) { \ + return l->GetFirstElement(); \ + } + +FOR_EACH_NATIVE_TYPE(CONST_OP_R01) +#undef CONST_OP_R01 + +Shape make_shape_internal(int pr_type, int dsize, const int64_t *ds) { + bool has_negative_dim = false; + for (int i = 0; i < dsize; ++i) { + if (ds[i] < 0) { + has_negative_dim = true; + break; + } + } + Shape shape; + if (has_negative_dim) { + std::vector dynamic; + std::vector bounds; + for (int i = 0; i < dsize; ++i) { + if (ds[i] < 0) { + bounds.push_back(-ds[i]); + dynamic.push_back(true); + } else { + bounds.push_back(ds[i]); + dynamic.push_back(false); + } + } + shape = ShapeUtil::MakeShape( + (PrimitiveType)pr_type, + absl::Span(bounds.data(), bounds.size()), dynamic); + } else { + shape = ShapeUtil::MakeShape((PrimitiveType)pr_type, + absl::Span(ds, dsize)); + } + return shape; +} + +shape make_shape_array(int pr_type, size_t dsize, const int64_t *ds) { + return new Shape(make_shape_internal(pr_type, dsize, ds)); +} + +shape make_shape_tuple(size_t dsize, const shape *ds) { + std::vector elts; + for (size_t i = 0; i < dsize; ++i) { + elts.push_back(*ds[i]); + } + return new Shape(ShapeUtil::MakeTupleShape(elts)); +} + +xla_op parameter(const xla_builder b, int64_t id, int pr_type, int dsize, + const int64_t *ds, const char *name) { + BEGIN_PROTECT_OP + Shape shape = make_shape_internal(pr_type, dsize, ds); + return new XlaOp(Parameter(b, id, shape, std::string(name))); + END_PROTECT_OP_B(b) +} + +xla_op parameter_s(const xla_builder b, int64_t id, const shape s, + const char *name) { + BEGIN_PROTECT_OP + return new XlaOp(Parameter(b, id, *s, std::string(name))); + END_PROTECT_OP_B(b) +} + +xla_op infeed(const xla_builder b, int pr_type, int dsize, const int64_t *ds, + const char *config) { + BEGIN_PROTECT_OP + Shape shape = make_shape_internal(pr_type, dsize, ds); + return new XlaOp(Infeed(b, shape, std::string(config))); + END_PROTECT_OP_B(b) +} + +void outfeed(const xla_op op, int pr_type, int dsize, const int64_t *ds, + const char *outfeed_config) { + Shape shape = make_shape_internal(pr_type, dsize, ds); + Outfeed(*op, shape, std::string(outfeed_config)); +} + +xla_op op_add(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Add(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_sub(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Sub(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_mul(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Mul(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_div(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Div(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_rem(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Rem(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_max(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Max(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_min(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Min(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_and(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(And(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_or(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Or(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_xor(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Xor(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_atan2(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Atan2(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_pow(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Pow(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_dot(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Dot(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_dot_general(const xla_op lhs, const xla_op rhs, const int64_t *lhs_c, + size_t nlhs_c, const int64_t *rhs_c, size_t nrhs_c, + const int64_t *lhs_b, size_t nlhs_b, const int64_t *rhs_b, + size_t nrhs_b) { + BEGIN_PROTECT_OP + DotDimensionNumbers dnums; + for (size_t i = 0; i < nlhs_c; ++i) + dnums.add_lhs_contracting_dimensions(lhs_c[i]); + for (size_t i = 0; i < nrhs_c; ++i) + dnums.add_rhs_contracting_dimensions(rhs_c[i]); + for (size_t i = 0; i < nlhs_b; ++i) + dnums.add_lhs_batch_dimensions(lhs_b[i]); + for (size_t i = 0; i < nrhs_b; ++i) + dnums.add_rhs_batch_dimensions(rhs_b[i]); + return new XlaOp(DotGeneral(*lhs, *rhs, dnums)); + END_PROTECT_OP(lhs) +} + +xla_op op_eq(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Eq(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_ne(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Ne(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_ge(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Ge(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_gt(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Gt(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_le(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Le(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_lt(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(Lt(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_shift_left(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(ShiftLeft(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_shift_right_arith(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(ShiftRightArithmetic(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_shift_right_logic(const xla_op lhs, const xla_op rhs) { + BEGIN_PROTECT_OP + return new XlaOp(ShiftRightLogical(*lhs, *rhs)); + END_PROTECT_OP(lhs) +} + +xla_op op_population_count(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(PopulationCount(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_not(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Not(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_abs(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Abs(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_exp(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Exp(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_expm1(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Expm1(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_floor(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Floor(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_ceil(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Ceil(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_round(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Round(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_round_nearest_even(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(RoundNearestEven(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_log(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Log(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_log1p(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Log1p(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_logistic(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Logistic(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_sign(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Sign(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_clz(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Clz(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_cos(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Cos(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_sin(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Sin(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_tanh(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Tanh(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_real(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Real(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_imag(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Imag(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_conj(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Conj(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_square(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Square(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_sqrt(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Sqrt(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_rsqrt(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Rsqrt(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_cbrt(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Cbrt(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_is_finite(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(IsFinite(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_neg(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Neg(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_lower_triangle(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(LowerTriangle(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_upper_triangle(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(UpperTriangle(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_erf(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Erf(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_einsum1(const xla_op arg, const char *config) { + BEGIN_PROTECT_OP + return new XlaOp(Einsum(*arg, config)); + END_PROTECT_OP(arg) +} + +xla_op op_einsum2(const xla_op arg1, const xla_op arg2, const char *config) { + BEGIN_PROTECT_OP + return new XlaOp(Einsum(*arg1, *arg2, config)); + END_PROTECT_OP(arg1) +} + +xla_op op_copy(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(Copy(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_clone(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(*arg); + END_PROTECT_OP(arg) +} + +xla_op op_zeros_like(const xla_op arg) { + BEGIN_PROTECT_OP + return new XlaOp(ZerosLike(*arg)); + END_PROTECT_OP(arg) +} + +xla_op op_zero_like(const xla_op arg) { + BEGIN_PROTECT_OP + const Shape *shape = arg->builder()->GetShapePtr(*arg).value(); + return new XlaOp(Zero(arg->builder(), shape->element_type())); + END_PROTECT_OP(arg) +} + +xla_op op_reshape(const xla_op arg, size_t dsize, const int64_t *ds) { + BEGIN_PROTECT_OP + return new XlaOp(Reshape(*arg, absl::Span(ds, dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_dynamic_reshape(const xla_op arg, size_t n_ops, const xla_op *ds, + size_t n_new_size_bounds, const int64_t *new_size_bounds, + const bool *dims_are_dynamic) { + BEGIN_PROTECT_OP + std::vector vec_dim_sizes; + for (size_t i = 0; i < n_ops; ++i) { + vec_dim_sizes.push_back(*ds[i]); + } + + std::vector vec_dims_are_dynamic; + for (size_t i = 0; i < n_ops; ++i) { + vec_dims_are_dynamic.push_back(dims_are_dynamic[i]); + } + + return new XlaOp( + DynamicReshape(*arg, + absl::Span(vec_dim_sizes), + absl::Span(new_size_bounds, n_new_size_bounds), + vec_dims_are_dynamic)); + END_PROTECT_OP(arg) +} + + + +xla_op op_broadcast(const xla_op arg, size_t dsize, const int64_t *ds) { + BEGIN_PROTECT_OP + return new XlaOp(Broadcast(*arg, absl::Span(ds, dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_broadcast_in_dim(const xla_op arg, size_t out_dsize, + const int64_t *out_ds, size_t broadcast_dsize, + const int64_t *broadcast_ds) { + BEGIN_PROTECT_OP + return new XlaOp( + BroadcastInDim(*arg, absl::Span(out_ds, out_dsize), + absl::Span(broadcast_ds, broadcast_dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_collapse(const xla_op arg, size_t dsize, const int64_t *ds) { + BEGIN_PROTECT_OP + return new XlaOp(Collapse(*arg, absl::Span(ds, dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_transpose(const xla_op arg, size_t dsize, const int64_t *ds) { + BEGIN_PROTECT_OP + return new XlaOp(Transpose(*arg, absl::Span(ds, dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_clamp(const xla_op arg1, const xla_op arg2, const xla_op arg3) { + BEGIN_PROTECT_OP + return new XlaOp(Clamp(*arg1, *arg2, *arg3)); + END_PROTECT_OP(arg1) +} + +xla_op op_select(const xla_op arg1, const xla_op arg2, const xla_op arg3) { + BEGIN_PROTECT_OP + return new XlaOp(Select(*arg1, *arg2, *arg3)); + END_PROTECT_OP(arg1) +} + +xla_op op_call(const xla_builder b, const xla_computation f, size_t n_ops, const xla_op *args) { + BEGIN_PROTECT_OP + std::vector args_; + for (size_t i = 0; i < n_ops; ++i) { + args_.push_back(*args[i]); + } + return new XlaOp(Call(b, *f, absl::Span(args_))); + END_PROTECT_OP_B(b) +} + +xla_op op_map(const xla_builder b, size_t n_ops, const xla_op *ops, const xla_computation f, + size_t n_dims, const int64_t *dims, size_t n_static_ops, const xla_op *static_ops) { + BEGIN_PROTECT_OP + std::vector ops_; + for (size_t i = 0; i < n_ops; ++i) { + ops_.push_back(*ops[i]); + } + std::vector static_ops_; + for (size_t i = 0; i < n_static_ops; ++i) { + static_ops_.push_back(*static_ops[i]); + } + return new XlaOp(Map(b, absl::Span(ops_), *f, + absl::Span(dims, n_dims), + absl::Span(static_ops_))); + END_PROTECT_OP_B(b) +} + +xla_op op_rng_uniform(const xla_op arg1, const xla_op arg2, int pr_type, + int dsize, const int64_t *ds) { + BEGIN_PROTECT_OP + auto shape = ShapeUtil::MakeShape((PrimitiveType)pr_type, + absl::Span(ds, dsize)); + return new XlaOp(RngUniform(*arg1, *arg2, shape)); + END_PROTECT_OP(arg1) +} + +xla_op op_rng_normal(const xla_op arg1, const xla_op arg2, int pr_type, + int dsize, const int64_t *ds) { + BEGIN_PROTECT_OP + auto shape = ShapeUtil::MakeShape((PrimitiveType)pr_type, + absl::Span(ds, dsize)); + return new XlaOp(RngNormal(*arg1, *arg2, shape)); + END_PROTECT_OP(arg1) +} + +xla_op op_pad(const xla_op arg, + const xla_op padding_value, + size_t n_dims, + const int64_t *edge_low, + const int64_t *edge_high, + const int64_t *interior) { + BEGIN_PROTECT_OP + PaddingConfig config; + for (size_t i = 0; i < n_dims; ++i) { + auto dim = config.add_dimensions(); + dim->set_edge_padding_low(edge_low[i]); + dim->set_edge_padding_high(edge_high[i]); + dim->set_interior_padding(interior[i]); + } + return new XlaOp(Pad(*arg, *padding_value, config)); + END_PROTECT_OP(arg) +} + +xla_op op_pad_in_dim(const xla_op arg, const xla_op padding_value, + int64_t dinmo, int64_t pad_lo, int64_t pad_hi) { + BEGIN_PROTECT_OP + return new XlaOp(PadInDim(*arg, *padding_value, dinmo, pad_lo, pad_hi)); + END_PROTECT_OP(arg) +} + + +xla_op op_slice(const xla_op arg, size_t start_dsize, const int64_t *start_ds, + size_t limit_dsize, const int64_t *limit_ds, + size_t stride_dsize, const int64_t *stride_ds) { + BEGIN_PROTECT_OP + return new XlaOp(Slice(*arg, absl::Span(start_ds, start_dsize), + absl::Span(limit_ds, limit_dsize), + absl::Span(stride_ds, stride_dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_slice_in_dim(const xla_op arg, int64_t start, int64_t stop, + int64_t stride, int64_t dim) { + BEGIN_PROTECT_OP + return new XlaOp(SliceInDim(*arg, start, stop, stride, dim)); + END_PROTECT_OP(arg) +} + +xla_op op_dynamic_slice(const xla_op arg, size_t n_ops, + const xla_op *start_indices, + size_t slice_dsize, const int64_t *slice_ds) { + BEGIN_PROTECT_OP + std::vector indices; + for (size_t i = 0; i < n_ops; ++i) { + indices.push_back(*start_indices[i]); + } + return new XlaOp( + DynamicSlice(*arg, absl::Span(indices), + absl::Span(slice_ds, slice_dsize))); + END_PROTECT_OP(arg) +} + +xla_op op_dynamic_update_slice(const xla_op arg, const xla_op update, + size_t n_ops, const xla_op *start_indices) { + BEGIN_PROTECT_OP + std::vector indices; + for (size_t i = 0; i < n_ops; ++i) { + indices.push_back(*start_indices[i]); + } + return new XlaOp(DynamicUpdateSlice(*arg, *update, absl::Span(indices))); + END_PROTECT_OP(arg) +} + +xla_op op_concat_in_dim(const xla_op arg, const xla_op *args, size_t nargs, + int64_t dim) { + BEGIN_PROTECT_OP + std::vector args_ = {*arg}; + for (size_t i = 0; i < nargs; ++i) { + args_.push_back(*args[i]); + } + return new XlaOp( + ConcatInDim(arg->builder(), absl::Span(args_), dim)); + END_PROTECT_OP(arg) +} + +xla_op op_tuple(const xla_builder b, const xla_op *args, size_t nargs) { + BEGIN_PROTECT_OP + std::vector args_; + for (size_t i = 0; i < nargs; ++i) { + args_.push_back(*args[i]); + } + return new XlaOp(Tuple(b, absl::Span(args_))); + END_PROTECT_OP_B(b) +} + +xla_op op_get_tuple_element(const xla_op arg, int64_t index) { + BEGIN_PROTECT_OP + return new XlaOp(GetTupleElement(*arg, index)); + END_PROTECT_OP(arg) +} + +xla_op op_gather(const xla_op arg1, const xla_op arg2, + const int64_t *offset_dims, size_t noffset_dims, + const int64_t *collapsed_slice_dims, + size_t ncollapsed_slice_dims, const int64_t *start_index_map, + size_t nstart_index_map, const int64_t *set_index_vector_dim, + const int64_t *slice_sizes, size_t nslice_sizes) { + BEGIN_PROTECT_OP + GatherDimensionNumbers dnums; + for (size_t i = 0; i < noffset_dims; ++i) { + dnums.add_offset_dims(offset_dims[i]); + } + for (size_t i = 0; i < ncollapsed_slice_dims; ++i) { + dnums.add_collapsed_slice_dims(collapsed_slice_dims[i]); + } + for (size_t i = 0; i < nstart_index_map; ++i) { + dnums.add_start_index_map(start_index_map[i]); + } + if (set_index_vector_dim) { + dnums.set_index_vector_dim(*set_index_vector_dim); + } + auto ss = absl::Span(slice_sizes, nslice_sizes); + return new XlaOp(Gather(*arg1, *arg2, dnums, ss)); + END_PROTECT_OP(arg1) +} + +xla_op op_scatter(size_t n_ops, + const xla_op *operands, + const xla_op scatter_indices, + size_t n_updates, + const xla_op *updates, + const xla_computation comp, + size_t n_update_window_dims, + const int64_t *update_window_dims, + size_t n_inserted_window_dims, + const int64_t *inserted_window_dims, + size_t n_scatter_dims_to_operand_dims, + const int64_t *scatter_dims_to_operand_dims, + int64_t index_vector_dim + ) { + BEGIN_PROTECT_OP + std::vector operands_; + for (size_t i = 0; i < n_ops; ++i) { + operands_.push_back(*operands[i]); + } + std::vector updates_; + for (size_t i = 0; i < n_updates; ++i) { + updates_.push_back(*updates[i]); + } + ScatterDimensionNumbers dnums; + for (size_t i = 0; i < n_update_window_dims; ++i) { + dnums.add_update_window_dims(update_window_dims[i]); + } + for (size_t i = 0; i < n_inserted_window_dims; ++i) { + dnums.add_inserted_window_dims(inserted_window_dims[i]); + } + for (size_t i = 0; i < n_scatter_dims_to_operand_dims; ++i) { + dnums.add_scatter_dims_to_operand_dims(scatter_dims_to_operand_dims[i]); + } + dnums.set_index_vector_dim(index_vector_dim); + return new XlaOp(Scatter(operands_, *scatter_indices, updates_, *comp, dnums)); + END_PROTECT_OP(scatter_indices) +} + +xla_op op_convert_element_type(const xla_op arg, int pr_type) { + BEGIN_PROTECT_OP + return new XlaOp(ConvertElementType(*arg, (PrimitiveType)pr_type)); + END_PROTECT_OP(arg) +} + +xla_op op_dimensions_size(const xla_op arg, int64_t dim) { + BEGIN_PROTECT_OP + return new XlaOp(GetDimensionSize(*arg, dim)); + END_PROTECT_OP(arg) +} + +xla_op op_reduce(const xla_op arg, const xla_op init, + const xla_computation comp, const int64_t *dims, + size_t ndims) { + BEGIN_PROTECT_OP + return new XlaOp( + Reduce(*arg, *init, *comp, absl::Span(dims, ndims))); + END_PROTECT_OP(arg) +} + +xla_op op_internal_error(const xla_builder b, const char *error) { + BEGIN_PROTECT_OP + return new XlaOp(b->ReportError(tsl::errors::Internal(error))); + END_PROTECT_OP_B(b) +} + +xla_op op_unknown_error(const xla_builder b, const char *error) { + BEGIN_PROTECT_OP + return new XlaOp(b->ReportError(tsl::errors::Unknown(error))); + END_PROTECT_OP_B(b) +} + +xla_op op_invalid_argument_error(const xla_builder b, const char *error) { + BEGIN_PROTECT_OP + return new XlaOp(b->ReportError(tsl::errors::InvalidArgument(error))); + END_PROTECT_OP_B(b) +} + +xla_op op_zero(const xla_builder b, int pr_type) { + BEGIN_PROTECT_OP + return new XlaOp(Zero(b, (PrimitiveType)pr_type)); + END_PROTECT_OP_B(b) +} + +xla_op op_one(const xla_builder b, int pr_type) { + BEGIN_PROTECT_OP + return new XlaOp(One(b, (PrimitiveType)pr_type)); + END_PROTECT_OP_B(b) +} + +xla_op op_min_value(const xla_builder b, int pr_type) { + BEGIN_PROTECT_OP + return new XlaOp(MinValue(b, (PrimitiveType)pr_type)); + END_PROTECT_OP_B(b) +} + +xla_op op_max_value(const xla_builder b, int pr_type) { + BEGIN_PROTECT_OP + return new XlaOp(MaxValue(b, (PrimitiveType)pr_type)); + END_PROTECT_OP_B(b) +} + +xla_op op_iota1(const xla_builder b, int pr_type, size_t sz) { + BEGIN_PROTECT_OP + return new XlaOp(Iota(b, (PrimitiveType)pr_type, (int64_t)sz)); + END_PROTECT_OP_B(b) +} + +xla_op op_iota(const xla_builder b, int pr_type, size_t dsize, + const int64_t *ds, int64_t increasing_dim) { + BEGIN_PROTECT_OP + auto shape = ShapeUtil::MakeShape((PrimitiveType)pr_type, + absl::Span(ds, dsize)); + return new XlaOp(Iota(b, shape, increasing_dim)); + END_PROTECT_OP_B(b) +} + +xla_op op_while(const xla_computation cond, const xla_computation body, + const xla_op init) { + BEGIN_PROTECT_OP + return new XlaOp(While(*cond, *body, *init)); + END_PROTECT_OP(init) +} + +xla_op op_conditional(const xla_op pred, const xla_op true_op, + const xla_computation true_comp, const xla_op false_op, + const xla_computation false_comp) { + BEGIN_PROTECT_OP + return new XlaOp( + Conditional(*pred, *true_op, *true_comp, *false_op, *false_comp)); + END_PROTECT_OP(pred) +} + +Padding ParsePadding(const char* padding_config) { + if (std::string(padding_config) == "same") { + return Padding::kSame; + } + if (std::string(padding_config) == "valid") { + return Padding::kValid; + } + throw std::runtime_error("Invalid padding config: " + std::string(padding_config)); +} + +xla_op op_conv(const xla_op lhs, + const xla_op rhs, + size_t n_strides, + const int64_t *window_strides, + const char *padding_config, + int64_t feature_group_count, + int64_t batch_group_count) { + BEGIN_PROTECT_OP + Padding padding = ParsePadding(padding_config); + return new XlaOp( + Conv(*lhs, *rhs, absl::Span(window_strides, n_strides), padding, feature_group_count, batch_group_count)); + END_PROTECT_OP(lhs) +} + +xla_op op_conv_general_dilated(const xla_op lhs, + const xla_op rhs, + size_t n_strides, + const int64_t *window_strides, + size_t n_padding_pairs, + const int64_t *padding_values, + size_t n_lhs_dilations, + const int64_t *lhs_dilations, + size_t n_rhs_dilations, + const int64_t *rhs_dilations, + const int64_t *ibdim, + const int64_t *ifdim, + size_t n_isdims, + const int64_t *isdims, + const int64_t *obdim, + const int64_t *ofdim, + size_t n_osdims, + const int64_t *osdims, + const int64_t *kifdim, + const int64_t *kofdim, + size_t n_ksdims, + const int64_t *ksdims, + int64_t feature_group_count, + int64_t batch_group_count) { + BEGIN_PROTECT_OP + std::vector> padding_pairs; + for (size_t i = 0; i < 2 * n_padding_pairs; i += 2) { + padding_pairs.emplace_back(padding_values[i], padding_values[i + 1]); + } + ConvolutionDimensionNumbers dnums; + dnums.set_input_batch_dimension(*ibdim); + dnums.set_input_feature_dimension(*ifdim); + for (size_t i = 0; i < n_isdims; ++i) { + dnums.add_input_spatial_dimensions(isdims[i]); + } + dnums.set_output_batch_dimension(*obdim); + dnums.set_output_feature_dimension(*ofdim); + for (size_t i = 0; i < n_osdims; ++i) { + dnums.add_output_spatial_dimensions(osdims[i]); + } + dnums.set_kernel_input_feature_dimension(*kifdim); + dnums.set_kernel_output_feature_dimension(*kofdim); + for (size_t i = 0; i < n_ksdims; ++i) { + dnums.add_kernel_spatial_dimensions(ksdims[i]); + } + return new XlaOp( + ConvGeneralDilated(*lhs, + *rhs, + absl::Span(window_strides, n_strides), + absl::Span>(padding_pairs), + absl::Span(lhs_dilations, n_lhs_dilations), + absl::Span(rhs_dilations, n_rhs_dilations), + dnums, + feature_group_count, + batch_group_count)); + END_PROTECT_OP(lhs) +} + + +xla_op op_batch_norm_inference(const xla_op operand, + const xla_op scale, + const xla_op offset, + const xla_op mean, + const xla_op variance, + float epsilon, + int64_t feature_index) { + BEGIN_PROTECT_OP + return new XlaOp(BatchNormInference(*operand, *scale, *offset, *mean, *variance, epsilon, feature_index)); + END_PROTECT_OP(operand) +} + +xla_builder op_builder(const xla_op arg) { return arg->builder(); } + +int xla_op_valid(const xla_op op) { return op->valid(); } + +void xla_op_free(xla_op o) { delete o; } + +size_t shape_tuple_shapes_size(const shape s) { return s->tuple_shapes_size(); } + +shape shape_tuple_shapes(const shape s, int i) { + return (shape)&s->tuple_shapes(i); +} + +int shape_dimensions_size(const shape s) { return s->dimensions_size(); } + +int shape_element_type(const shape s) { return s->element_type(); } + +int64_t shape_dimensions(const shape s, int i) { return s->dimensions(i); } + +void shape_free(shape s) { delete s; } + +status get_shape(const xla_builder b, const xla_op o, shape *out_shape) { + ASSIGN_OR_RETURN_STATUS(shape, b->GetShape(*o)); + *out_shape = new Shape(shape); + return nullptr; +} + +status get_element_type(const xla_builder b, const xla_op o, + int *out_element_type) { + ASSIGN_OR_RETURN_STATUS(shape, b->GetShapePtr(*o)); + *out_element_type = shape->element_type(); + return nullptr; +} + +status get_dimensions_size(const xla_builder b, const xla_op o, int *out_rank) { + ASSIGN_OR_RETURN_STATUS(shape, b->GetShapePtr(*o)); + *out_rank = shape->dimensions_size(); + return nullptr; +} + +status get_dimensions(const xla_builder b, const xla_op o, size_t *out_dims) { + ASSIGN_OR_RETURN_STATUS(shape, b->GetShapePtr(*o)); + size_t dim_size = shape->dimensions_size(); + for (size_t i = 0; i < dim_size; ++i) { + out_dims[i] = shape->dimensions(i); + } + return nullptr; +} + +status build(const xla_builder b, const xla_op o, xla_computation *output) { + ASSIGN_OR_RETURN_STATUS(computation, b->Build(o)); + *output = new XlaComputation(); + **output = std::move(computation); + return nullptr; +} + +status compile(const pjrt_client client, const xla_computation computation, + pjrt_loaded_executable *output) { + CompileOptions options; + ASSIGN_OR_RETURN_STATUS(executable, + (*client)->Compile(*computation, options)); + *output = executable.release(); + return nullptr; +} + +status first_error(const xla_builder b) { + MAYBE_RETURN_STATUS(b->first_error()); + return nullptr; +} + +status get_current_status(const xla_builder b) { + MAYBE_RETURN_STATUS(b->GetCurrentStatus()); + return nullptr; +} + +status execute(const pjrt_loaded_executable exe, const literal *inputs, + int ninputs, pjrt_buffer ***outputs) { + auto client = exe->client(); + ExecuteOptions options; + options.strict_shape_checking = false; + std::vector input_buffer_ptrs; + PjRtDevice *device = client->devices()[0]; + for (int i = 0; i < ninputs; ++i) { + ASSIGN_OR_RETURN_STATUS(buffer, + client->BufferFromHostLiteral(*inputs[i], device)); + // Wait for the transfer to have completed to avoid the literal potentially + // getting out of scope before it has been transfered. + MAYBE_RETURN_STATUS(buffer->GetReadyFuture().Await()); + input_buffer_ptrs.push_back(buffer.release()); + } + ASSIGN_OR_RETURN_STATUS(results, exe->Execute({input_buffer_ptrs}, options)); + pjrt_buffer **out = + (pjrt_buffer **)malloc((results.size() + 1) * sizeof(pjrt_buffer *)); + for (size_t i = 0; i < results.size(); ++i) { + auto &replica_results = results[i]; + pjrt_buffer *per_replica_outputs = (pjrt_buffer *)malloc( + (replica_results.size() + 1) * sizeof(pjrt_buffer)); + for (size_t j = 0; j < replica_results.size(); ++j) { + per_replica_outputs[j] = replica_results[j].release(); + } + per_replica_outputs[replica_results.size()] = nullptr; + out[i] = per_replica_outputs; + } + out[results.size()] = nullptr; + *outputs = out; + return nullptr; +} + +status execute_b(const pjrt_loaded_executable exe, const pjrt_buffer *inputs, + int ninputs, pjrt_buffer ***outputs) { + auto client = exe->client(); + ExecuteOptions options; + options.strict_shape_checking = false; + std::vector input_buffer_ptrs(inputs, inputs + ninputs); + ASSIGN_OR_RETURN_STATUS(results, exe->Execute({input_buffer_ptrs}, options)); + pjrt_buffer **out = + (pjrt_buffer **)malloc((results.size() + 1) * sizeof(pjrt_buffer *)); + for (size_t i = 0; i < results.size(); ++i) { + auto &replica_results = results[i]; + pjrt_buffer *per_replica_outputs = (pjrt_buffer *)malloc( + (replica_results.size() + 1) * sizeof(pjrt_buffer)); + for (size_t j = 0; j < replica_results.size(); ++j) { + per_replica_outputs[j] = replica_results[j].release(); + } + per_replica_outputs[replica_results.size()] = nullptr; + out[i] = per_replica_outputs; + } + out[results.size()] = nullptr; + *outputs = out; + return nullptr; +} + +literal literal_create_from_shape(int pr_type, const int64_t *dims, + size_t ndims) { + auto shape = ShapeUtil::MakeShape((PrimitiveType)pr_type, + absl::Span(dims, ndims)); + Literal l = Literal::CreateFromShape(shape); + return new Literal(std::move(l)); +} + +literal literal_create_from_shape_and_data(int pr_type, const int64_t *dims, + size_t ndims, const void *data, + size_t data_len) { + auto shape = ShapeUtil::MakeShape((PrimitiveType)pr_type, + absl::Span(dims, ndims)); + Literal l = Literal::CreateFromShape(shape); + if (l.size_bytes() != data_len) { + return nullptr; + } + memcpy(l.untyped_data(), data, data_len); + return new Literal(std::move(l)); +} + +literal literal_clone(const literal l) { + return new Literal(std::move(l->Clone())); +} + +status literal_reshape(const literal l, const int64_t *dims, size_t ndims, + literal *output) { + ASSIGN_OR_RETURN_STATUS(literal, + l->Reshape(absl::Span(dims, ndims))); + *output = new Literal(std::move(literal)); + return nullptr; +} + +status literal_convert(const literal l, int pr_type, literal *output) { + ASSIGN_OR_RETURN_STATUS(literal, l->Convert((PrimitiveType)pr_type)); + *output = new Literal(std::move(literal)); + return nullptr; +} + +int64_t literal_element_count(const literal l) { return l->element_count(); } + +int64_t literal_size_bytes(const literal l) { return l->size_bytes(); } + +void literal_shape(const literal l, shape *out_shape) { + *out_shape = new Shape(l->shape()); +} + +void literal_decompose_tuple(literal l, literal *outputs, size_t noutputs) { + auto tuple = l->DecomposeTuple(); + for (int i = 0; i < std::min(noutputs, tuple.size()); ++i) { + outputs[i] = new Literal(std::move(tuple[i])); + } +} + +int literal_element_type(const literal l) { return l->shape().element_type(); } + +void literal_copy_to(const literal l, void *dst, size_t size_in_bytes) { + std::memcpy(dst, l->untyped_data(), size_in_bytes); +} + +void literal_copy_from(literal l, const void *src, size_t size_in_bytes) { + std::memcpy(l->untyped_data(), src, size_in_bytes); +} + +literal literal_make_tuple(const literal *l, size_t n) { + Literal out = LiteralUtil::MakeTuple(absl::MakeSpan(l, n)); + return new Literal(std::move(out)); +} + +literal literal_make_tuple_owned(const literal *l, size_t n) { + std::vector elems; + for (size_t i = 0; i < n; ++i) { + elems.push_back(std::move(*(l[i]))); + } + Literal out = LiteralUtil::MakeTupleOwned(std::move(elems)); + return new Literal(std::move(out)); +} + +void literal_free(literal l) { delete l; } + +void status_free(status s) { delete s; } + +char *xla_computation_name(xla_computation c) { + return strdup(std::string(c->name()).c_str()); +} + +void xla_computation_free(xla_computation c) { delete c; } + +char *status_error_message(status s) { + return strdup(s->error_message().c_str()); +} + +status hlo_module_proto_parse_and_return_unverified_module( + const char *data, size_t len, hlo_module_proto *output) { + ASSIGN_OR_RETURN_STATUS( + hmp, ParseAndReturnUnverifiedModule(std::string(data, len))); + *output = new HloModuleProto(hmp->ToProto()); + return nullptr; +} + +status hlo_module_proto_parse_proto(const char *d, size_t len, bool binary, + hlo_module_proto *output) { + std::string data(d, len); + HloSnapshot proto; + if (binary) { + if (!proto.ParseFromString(data) && + !proto.mutable_hlo()->ParseFromString(data) && + !proto.mutable_hlo()->mutable_hlo_module()->ParseFromString(data)) { + return new Status( + InvalidArgument("Failed to parse input as HLO protobuf binary")); + } + } else { + if (!tsl::protobuf::TextFormat::ParseFromString(data, &proto) && + !tsl::protobuf::TextFormat::ParseFromString(data, + proto.mutable_hlo()) && + !tsl::protobuf::TextFormat::ParseFromString( + data, proto.mutable_hlo()->mutable_hlo_module())) { + return new Status( + InvalidArgument("Failed to parse input as HLO protobuf text")); + } + } + ASSIGN_OR_RETURN_STATUS(config, HloModule::CreateModuleConfigFromProto( + proto.hlo().hlo_module(), {})); + ASSIGN_OR_RETURN_STATUS( + hmp, HloModule::CreateFromProto(proto.hlo().hlo_module(), config)); + *output = new HloModuleProto(hmp->ToProto()); + return nullptr; +} + +status hlo_module_from_proto(const hlo_module_proto input_proto, hlo_module *output) { + ASSIGN_OR_RETURN_STATUS( + config, HloModule::CreateModuleConfigFromProto(*input_proto, {})); + ASSIGN_OR_RETURN_STATUS( + hm, HloModule::CreateFromProto(*input_proto, config)); + *output = hm.release(); + return nullptr; +} + +hlo_computation hlo_module_entry_computation(const hlo_module module) { + return module->entry_computation(); +} + +int64_t hlo_module_computation_count(const hlo_module module) { + return module->computation_count(); +} + +int64_t hlo_module_instruction_count(const hlo_module module) { + return module->instruction_count(); +} + +char* hlo_module_to_string(const hlo_module module) { + std::string result = module->ToString(); + char* output = new char[result.length() + 1]; + std::strcpy(output, result.c_str()); + return output; +} + +xla_computation xla_computation_from_hlo_module_proto(const hlo_module_proto p) { + return new XlaComputation(*p); +} + +void hlo_module_proto_free(hlo_module_proto p) { delete p; } + +hlo_module_proto xla_computation_proto(const xla_computation c) { + return new HloModuleProto(c->proto()); +} \ No newline at end of file diff --git a/ivy/engines/XLA/rust_api/xla_rs/xla_rs.h b/ivy/engines/XLA/rust_api/xla_rs/xla_rs.h new file mode 100644 index 0000000000000..e414657e701e9 --- /dev/null +++ b/ivy/engines/XLA/rust_api/xla_rs/xla_rs.h @@ -0,0 +1,324 @@ +#include +#include +#include +#ifdef __cplusplus +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#pragma GCC diagnostic ignored "-Winvalid-offsetof" +#pragma GCC diagnostic ignored "-Wreturn-type" +#include "tensorflow/compiler/xla/client/client_library.h" +#include "tensorflow/compiler/xla/client/lib/constants.h" +#include "tensorflow/compiler/xla/client/lib/matrix.h" +#include "tensorflow/compiler/xla/client/lib/math.h" +#include "tensorflow/compiler/xla/client/padding.h" +#include "tensorflow/compiler/xla/client/xla_builder.h" +#include "tensorflow/compiler/xla/literal_util.h" +#include "tensorflow/compiler/xla/pjrt/gpu/gpu_helpers.h" +#include "tensorflow/compiler/xla/pjrt/gpu/se_gpu_pjrt_client.h" +#include "tensorflow/compiler/xla/pjrt/pjrt_client.h" +#include "tensorflow/compiler/xla/pjrt/pjrt_stream_executor_client.h" +#include "tensorflow/compiler/xla/pjrt/tfrt_cpu_pjrt_client.h" +#include "tensorflow/compiler/xla/pjrt/tpu_client.h" +#include "tensorflow/compiler/xla/service/hlo_parser.h" +#include "tensorflow/compiler/xla/shape_util.h" +#include "tensorflow/compiler/xla/statusor.h" +#pragma GCC diagnostic pop +using namespace xla; + +extern "C" { +typedef std::shared_ptr *pjrt_client; +typedef PjRtLoadedExecutable *pjrt_loaded_executable; +typedef PjRtDevice *pjrt_device; +typedef PjRtBuffer *pjrt_buffer; +typedef XlaBuilder *xla_builder; +typedef XlaOp *xla_op; +typedef Status *status; +typedef Shape *shape; +typedef Literal *literal; +typedef XlaComputation *xla_computation; +typedef HloModule *hlo_module; +typedef HloModuleProto *hlo_module_proto; +typedef HloComputation *hlo_computation; +#else +typedef struct _pjrt_client *pjrt_client; +typedef struct _pjrt_loaded_executable *pjrt_loaded_executable; +typedef struct _pjrt_device *pjrt_device; +typedef struct _pjrt_buffer *pjrt_buffer; +typedef struct _xla_builder *xla_builder; +typedef struct _xla_op *xla_op; +typedef struct _status *status; +typedef struct _shape *shape; +typedef struct _literal *literal; +typedef struct _xla_computation *xla_computation; +typedef struct _hlo_module *hlo_module; +typedef struct _hlo_module_proto *hlo_module_proto; +typedef struct _hlo_computation *hlo_computation; +#endif + +status pjrt_cpu_client_create(pjrt_client *); +status pjrt_gpu_client_create(pjrt_client *, double, bool); +status pjrt_tpu_client_create(pjrt_client *, int); +void pjrt_client_free(pjrt_client); +int pjrt_client_device_count(pjrt_client); +int pjrt_client_addressable_device_count(pjrt_client); +void pjrt_client_devices(pjrt_client, pjrt_device *); +void pjrt_client_addressable_devices(pjrt_client, pjrt_device *); +char *pjrt_client_platform_name(pjrt_client); +char *pjrt_client_platform_version(pjrt_client); + +void pjrt_loaded_executable_free(pjrt_loaded_executable); + +int pjrt_device_id(pjrt_device); +int pjrt_device_process_index(pjrt_device); +int pjrt_device_local_hardware_id(pjrt_device); +status pjrt_device_transfer_to_infeed(pjrt_device, const literal); +status pjrt_device_transfer_from_outfeed(pjrt_device, literal); +char *pjrt_device_kind(pjrt_device); +char *pjrt_device_debug_string(pjrt_device); +char *pjrt_device_to_string(pjrt_device); + +status pjrt_buffer_from_host_literal(const pjrt_client, const pjrt_device, + const literal, pjrt_buffer *); +status pjrt_buffer_from_host_buffer(const pjrt_client, const pjrt_device, + const void *, int, int, const int64_t *, + pjrt_buffer *); +status pjrt_buffer_to_literal_sync(pjrt_buffer, literal *); +status pjrt_buffer_copy_raw_to_host_sync(pjrt_buffer, void *, size_t, size_t); +shape pjrt_buffer_on_device_shape(pjrt_buffer); +status pjrt_buffer_copy_to_device(pjrt_buffer, pjrt_device, pjrt_buffer *); +void pjrt_buffer_free(pjrt_buffer); + +xla_builder xla_builder_create(const char *); +void xla_builder_free(xla_builder); + +xla_op constant_literal(const xla_builder, const literal); +xla_op parameter(const xla_builder, int64_t, int, int, const int64_t *, + const char *); +xla_op parameter_s(const xla_builder, int64_t, const shape, const char *); +xla_op infeed(const xla_builder, int, int, const int64_t *, const char *); +void outfeed(const xla_op, int, int, const int64_t *, const char *); + +// Ops +xla_op op_add(const xla_op, const xla_op); +xla_op op_sub(const xla_op, const xla_op); +xla_op op_mul(const xla_op, const xla_op); +xla_op op_div(const xla_op, const xla_op); +xla_op op_rem(const xla_op, const xla_op); +xla_op op_max(const xla_op, const xla_op); +xla_op op_min(const xla_op, const xla_op); +xla_op op_and(const xla_op, const xla_op); +xla_op op_or(const xla_op, const xla_op); +xla_op op_xor(const xla_op, const xla_op); +xla_op op_atan2(const xla_op, const xla_op); +xla_op op_pow(const xla_op, const xla_op); +xla_op op_dot(const xla_op, const xla_op); +xla_op op_dot_general(const xla_op, const xla_op, const int64_t *, size_t, + const int64_t *, size_t, const int64_t *, size_t, + const int64_t *, size_t); +xla_op op_eq(const xla_op, const xla_op); +xla_op op_ne(const xla_op, const xla_op); +xla_op op_ge(const xla_op, const xla_op); +xla_op op_gt(const xla_op, const xla_op); +xla_op op_le(const xla_op, const xla_op); +xla_op op_lt(const xla_op, const xla_op); +xla_op op_shift_left(const xla_op, const xla_op); +xla_op op_shift_right_arith(const xla_op, const xla_op); +xla_op op_shift_right_logic(const xla_op, const xla_op); +xla_op op_population_count(const xla_op); +xla_op op_not(const xla_op); +xla_op op_abs(const xla_op); +xla_op op_exp(const xla_op); +xla_op op_expm1(const xla_op); +xla_op op_floor(const xla_op); +xla_op op_ceil(const xla_op); +xla_op op_round(const xla_op); +xla_op op_round_nearest_even(const xla_op); +xla_op op_log(const xla_op); +xla_op op_log1p(const xla_op); +xla_op op_logistic(const xla_op); +xla_op op_sign(const xla_op); +xla_op op_clz(const xla_op); +xla_op op_cos(const xla_op); +xla_op op_sin(const xla_op); +xla_op op_tanh(const xla_op); +xla_op op_real(const xla_op); +xla_op op_imag(const xla_op); +xla_op op_conj(const xla_op); +xla_op op_square(const xla_op); +xla_op op_sqrt(const xla_op); +xla_op op_rsqrt(const xla_op); +xla_op op_cbrt(const xla_op); +xla_op op_is_finite(const xla_op); +xla_op op_neg(const xla_op); +xla_op op_lower_triangle(const xla_op); +xla_op op_upper_triangle(const xla_op); +xla_op op_erf(const xla_op); +xla_op op_einsum1(const xla_op, const char *); +xla_op op_einsum2(const xla_op, const xla_op, const char *); +xla_op op_copy(const xla_op); +xla_op op_clone(const xla_op); +xla_op op_zeros_like(const xla_op); +xla_op op_zero_like(const xla_op); +xla_op op_zero(const xla_builder, int); +xla_op op_one(const xla_builder, int); +xla_op op_min_value(const xla_builder, int); +xla_op op_max_value(const xla_builder, int); +xla_op op_reshape(const xla_op, size_t, const int64_t *); +xla_op op_dynamic_reshape(const xla_op, size_t, const xla_op *, size_t, const int64_t *, const bool *); +xla_op op_broadcast(const xla_op, size_t, const int64_t *); +xla_op op_broadcast_in_dim(const xla_op, size_t, const int64_t *, size_t, + const int64_t *); +xla_op op_collapse(const xla_op, size_t, const int64_t *); +xla_op op_transpose(const xla_op, size_t, const int64_t *); +xla_op op_clamp(const xla_op, const xla_op, const xla_op); +xla_op op_select(const xla_op, const xla_op, const xla_op); +xla_op op_call(const xla_builder, const xla_computation, size_t, const xla_op *); +xla_op op_map(const xla_builder, size_t, const xla_op *, const xla_computation, size_t, const int64_t *, size_t, const xla_op *); +xla_op op_rng_uniform(const xla_op, const xla_op, int, int, const int64_t *); +xla_op op_rng_normal(const xla_op, const xla_op, int, int, const int64_t *); +xla_op op_pad(const xla_op, const xla_op, size_t, const int64_t *, const int64_t *, const int64_t *); +xla_op op_pad_in_dim(const xla_op, const xla_op, int64_t, int64_t, int64_t); +xla_op op_slice(const xla_op, size_t, const int64_t *, size_t, const int64_t *, size_t, const int64_t *); +xla_op op_slice_in_dim(const xla_op, int64_t, int64_t, int64_t, int64_t); +xla_op op_dynamic_slice(const xla_op, size_t, const xla_op *, size_t, const int64_t *); +xla_op op_dynamic_update_slice(const xla_op, const xla_op, size_t, const xla_op *); +xla_op op_concat_in_dim(const xla_op, const xla_op *, size_t, int64_t); +xla_op op_tuple(const xla_builder, const xla_op *, size_t); +xla_op op_get_tuple_element(const xla_op, int64_t); +xla_op op_gather(const xla_op, const xla_op, const int64_t *, size_t, + const int64_t *, size_t, const int64_t *, size_t, + const int64_t *, const int64_t *, size_t); +xla_op op_scatter(size_t, const xla_op *, const xla_op, size_t, const xla_op *, const xla_computation, + size_t, const int64_t *, size_t, const int64_t *, size_t, const int64_t *, int64_t); +xla_op op_convert_element_type(const xla_op, int); +xla_op op_dimensions_size(const xla_op, int64_t); +xla_op op_reduce(const xla_op, const xla_op, const xla_computation, + const int64_t *, size_t); +xla_op op_internal_error(const xla_builder, const char *); +xla_op op_unknown_error(const xla_builder, const char *); +xla_op op_invalid_argument_error(const xla_builder, const char *); +xla_op op_iota1(const xla_builder, int, size_t); +xla_op op_iota(const xla_builder, int, size_t, const int64_t *, int64_t); +xla_op op_while(const xla_computation, const xla_computation, const xla_op); +xla_op op_conditional(const xla_op, const xla_op, const xla_computation, + const xla_op, const xla_computation); +xla_op op_conv(const xla_op, const xla_op, size_t, const int64_t *, const char*, int64_t, int64_t); +xla_op op_conv_general_dilated(const xla_op, const xla_op, + size_t, const int64_t *, + size_t, const int64_t *, + size_t, const int64_t *, + size_t, const int64_t *, + const int64_t *, + const int64_t *, + size_t, const int64_t *, + const int64_t *, + const int64_t *, + size_t, const int64_t *, + const int64_t *, + const int64_t *, + size_t, const int64_t *, + int64_t, int64_t); +xla_op op_batch_norm_inference(const xla_op, + const xla_op, + const xla_op, + const xla_op, + const xla_op, + float, + int64_t); + +xla_builder op_builder(const xla_op); + +int xla_op_valid(const xla_op); +void xla_op_free(xla_op); + +int shape_dimensions_size(const shape); +size_t shape_tuple_shapes_size(const shape); +shape shape_tuple_shapes(const shape, int); +int shape_element_type(const shape); +int64_t shape_dimensions(const shape, int); +void shape_free(shape); +shape make_shape_array(int, size_t, const int64_t *); +shape make_shape_tuple(size_t, const shape *); + +status get_shape(const xla_builder, const xla_op, shape *); +status get_element_type(const xla_builder, const xla_op, int *); +status get_dimensions_size(const xla_builder, const xla_op, int *); +status get_dimensions(const xla_builder, const xla_op, size_t *); + +status build(const xla_builder, const xla_op, xla_computation *); +status compile(const pjrt_client, const xla_computation, + pjrt_loaded_executable *); +status execute(const pjrt_loaded_executable, const literal *, int, + pjrt_buffer ***); +status execute_b(const pjrt_loaded_executable, const pjrt_buffer *, int, + pjrt_buffer ***); +status first_error(const xla_builder); +status get_current_status(const xla_builder); + +literal literal_create_from_shape(int, const int64_t *, size_t); +literal literal_create_from_shape_and_data(int, const int64_t *, size_t, + const void *, size_t); +literal literal_clone(const literal); +status literal_reshape(const literal, const int64_t *, size_t, literal *); +status literal_convert(const literal, int, literal *); +int64_t literal_element_count(const literal); +int literal_element_type(const literal); +void literal_shape(const literal, shape *); +void literal_decompose_tuple(literal, literal *, size_t); +int64_t literal_size_bytes(const literal); +void literal_copy_to(const literal, void *, size_t); +void literal_copy_from(literal, const void *, size_t); +literal literal_make_tuple(const literal *, size_t); +literal literal_make_tuple_owned(const literal *, size_t); +void literal_free(literal); + +status hlo_module_proto_parse_and_return_unverified_module(const char *, size_t, + hlo_module_proto *); +status hlo_module_proto_parse_proto(const char *, size_t, bool, + hlo_module_proto *); +status hlo_module_from_proto(const hlo_module_proto, hlo_module *); + +hlo_computation hlo_module_entry_computation(const hlo_module); +int64_t hlo_module_computation_count(const hlo_module); +int64_t hlo_module_instruction_count(const hlo_module); +char *hlo_module_to_string(const hlo_module); + +xla_computation xla_computation_from_hlo_module_proto(const hlo_module_proto); +void hlo_module_proto_free(hlo_module_proto); + +char *xla_computation_name(xla_computation); +hlo_module_proto xla_computation_proto(const xla_computation); +void xla_computation_free(xla_computation); + +void status_free(status); +char *status_error_message(status); + +#define FOR_EACH_NATIVE_TYPE(_) \ + _(bool, PRED) \ + _(int8_t, S8) \ + _(int16_t, S16) \ + _(int32_t, S32) \ + _(int64_t, S64) \ + _(uint8_t, U8) \ + _(uint16_t, U16) \ + _(uint32_t, U32) \ + _(uint64_t, U64) \ + _(float, F32) \ + _(double, F64) + +#define CONST_OP_R01(native_type, primitive_type) \ + xla_op constant_r0_##native_type(const xla_builder, native_type); \ + xla_op constant_r1c_##native_type(const xla_builder, native_type, size_t); \ + xla_op constant_r1_##native_type(const xla_builder, const native_type *, \ + size_t); \ + literal create_r0_##native_type(native_type); \ + literal create_r1_##native_type(const native_type *, size_t); \ + native_type literal_get_first_element_##native_type(const literal); + +FOR_EACH_NATIVE_TYPE(CONST_OP_R01) +#undef CONST_OP_R01 + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/ivy/engines/__init__.py b/ivy/engines/__init__.py new file mode 100644 index 0000000000000..8e29423c0acfa --- /dev/null +++ b/ivy/engines/__init__.py @@ -0,0 +1,2 @@ +from . import XLA +from .XLA import * \ No newline at end of file diff --git a/ivy/engines/ivy2xla.cpython-310-x86_64-linux-gnu.so b/ivy/engines/ivy2xla.cpython-310-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..d03f3c41341913ecd6d321ad17eb41602ff1cef2 GIT binary patch literal 827304 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 fXZ_$i82ITwQ&H}6lJvM5mD1v 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 Date: Fri, 8 Sep 2023 15:46:31 +0800 Subject: [PATCH 056/127] Update test_activations.py --- .../test_experimental/test_nn/test_activations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py index f940f291a7714..03a8c0a880b28 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py @@ -89,7 +89,7 @@ def test_logsigmoid(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): @handle_test( fn_tree="prelu", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("valid"), shape=st.shared(helpers.get_shape(), key="prelu"), large_abs_safety_factor=8, small_abs_safety_factor=8, @@ -117,7 +117,7 @@ def test_prelu(*, dtype_and_x, slope, test_flags, backend_fw, fn_name, on_device @handle_test( fn_tree="functional.ivy.experimental.relu6", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("numeric"), + available_dtypes=helpers.get_dtypes("valid"), large_abs_safety_factor=2, small_abs_safety_factor=2, safety_factor_scale="log", From affdf869553f3144ad4402993c047581bcd87948 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Fri, 8 Sep 2023 08:07:07 +0000 Subject: [PATCH 057/127] =?UTF-8?q?=F0=9F=A4=96=20Lint=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ivy/engines/XLA/__init__.py | 3 +- ivy/engines/__init__.py | 2 +- .../frontends/torch/comparison_ops.py | 2 +- .../test_paddle/test_tensor/test_tensor.py | 67 +++++++++---------- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/ivy/engines/XLA/__init__.py b/ivy/engines/XLA/__init__.py index 7eb231f181414..45a9584091f50 100644 --- a/ivy/engines/XLA/__init__.py +++ b/ivy/engines/XLA/__init__.py @@ -4,7 +4,8 @@ from .rust_api.python_frontend.activations import * from .rust_api.python_frontend.norms import * from .rust_api.python_frontend.stateful_layers import * -#from .rust_api.python_frontend.sequential_handler import * + +# from .rust_api.python_frontend.sequential_handler import * from .rust_api.python_frontend.general import * from .rust_api.python_frontend.manipulation import * from .rust_api.python_frontend.creation import * diff --git a/ivy/engines/__init__.py b/ivy/engines/__init__.py index 8e29423c0acfa..5ca851e646876 100644 --- a/ivy/engines/__init__.py +++ b/ivy/engines/__init__.py @@ -1,2 +1,2 @@ from . import XLA -from .XLA import * \ No newline at end of file +from .XLA import * diff --git a/ivy/functional/frontends/torch/comparison_ops.py b/ivy/functional/frontends/torch/comparison_ops.py index eeaadadfbf864..b743b38d135f0 100644 --- a/ivy/functional/frontends/torch/comparison_ops.py +++ b/ivy/functional/frontends/torch/comparison_ops.py @@ -290,7 +290,7 @@ def topk(input, k, dim=None, largest=True, sorted=True, *, out=None): gt = greater -ne = not_equal ge = greater_equal le = less_equal lt = less +ne = not_equal diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py index e447fcf5af317..0f6d2e7393ffd 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py @@ -3155,84 +3155,83 @@ def test_paddle_tensor_square( ) - -# stanh +# squeeze_ @handle_frontend_method( class_tree=CLASS_TREE, init_tree="paddle.to_tensor", - method_name="stanh", - dtype_and_x=helpers.dtype_and_values( + method_name="squeeze_", + dtype_value=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), + shape=st.shared(helpers.get_shape(), key="shape"), + ), + axis=helpers.get_axis( + shape=st.shared(helpers.get_shape(), key="shape"), + allow_neg=True, + force_int=True, ), - scale_a=st.floats(1e-5, 1e5), - scale_b=st.floats(1e-5, 1e5), ) -def test_paddle_tensor_stanh( - dtype_and_x, +def test_paddle_tensor_squeeze_( + dtype_value, + axis, frontend_method_data, - scale_a, - scale_b, init_flags, method_flags, frontend, - backend_fw, on_device, + backend_fw, ): - input_dtype, x = dtype_and_x + input_dtype, x = dtype_value helpers.test_frontend_method( init_input_dtypes=input_dtype, + backend_to_test=backend_fw, init_all_as_kwargs_np={ "data": x[0], }, method_input_dtypes=input_dtype, - backend_to_test=backend_fw, method_all_as_kwargs_np={ - "scale_a": scale_a, - "scale_b": scale_b, - }, + "axis": axis, + }, frontend_method_data=frontend_method_data, init_flags=init_flags, method_flags=method_flags, frontend=frontend, on_device=on_device, ) - - -# squeeze_ + + +# stanh @handle_frontend_method( class_tree=CLASS_TREE, init_tree="paddle.to_tensor", - method_name="squeeze_", - dtype_value=helpers.dtype_and_values( + method_name="stanh", + dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), - shape=st.shared(helpers.get_shape(), key="shape"), - ), - axis=helpers.get_axis( - shape=st.shared(helpers.get_shape(), key="shape"), - allow_neg=True, - force_int=True, ), + scale_a=st.floats(1e-5, 1e5), + scale_b=st.floats(1e-5, 1e5), ) -def test_paddle_tensor_squeeze_( - dtype_value, - axis, +def test_paddle_tensor_stanh( + dtype_and_x, frontend_method_data, + scale_a, + scale_b, init_flags, method_flags, frontend, - on_device, backend_fw, + on_device, ): - input_dtype, x = dtype_value + input_dtype, x = dtype_and_x helpers.test_frontend_method( init_input_dtypes=input_dtype, - backend_to_test=backend_fw, init_all_as_kwargs_np={ "data": x[0], }, method_input_dtypes=input_dtype, + backend_to_test=backend_fw, method_all_as_kwargs_np={ - "axis": axis, + "scale_a": scale_a, + "scale_b": scale_b, }, frontend_method_data=frontend_method_data, init_flags=init_flags, From c1eaf056df085d43863b2b9ec501acdcf8d450e1 Mon Sep 17 00:00:00 2001 From: rsaeta Date: Fri, 8 Sep 2023 10:18:08 +0200 Subject: [PATCH 058/127] 22781 logistic jax frontend (#23193) Co-authored-by: @AnnaTz --- ivy/functional/frontends/jax/random.py | 11 ++++ .../test_frontends/test_jax/test_random.py | 56 +++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py index 449b6f35a5cc8..c229c2e96a722 100644 --- a/ivy/functional/frontends/jax/random.py +++ b/ivy/functional/frontends/jax/random.py @@ -247,6 +247,17 @@ def loggamma(key, a, shape=None, dtype="float64"): return ivy.log(ivy.gamma(a, 1.0, shape=shape, dtype=dtype, seed=seed)) +@handle_jax_dtype +@to_ivy_arrays_and_back +@with_unsupported_dtypes( + {"0.4.14 and below": ("float16", "bfloat16")}, +) +def logistic(key, shape=(), dtype="float64"): + seed = _get_seed(key) + uniform_x = ivy.random_uniform(seed=seed, shape=shape, dtype=dtype) + return ivy.log(ivy.divide(uniform_x, ivy.subtract(1.0, uniform_x))) + + @handle_jax_dtype @to_ivy_arrays_and_back @with_unsupported_dtypes( diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py index 10ddbd13320db..692dbccc62c62 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py @@ -820,6 +820,62 @@ def call(): assert u.shape == v.shape +@pytest.mark.xfail +@handle_frontend_test( + fn_tree="jax.random.logistic", + dtype_key=helpers.dtype_and_values( + available_dtypes=["uint32"], + min_value=0, + max_value=2000, + min_num_dims=1, + max_num_dims=1, + min_dim_size=2, + max_dim_size=2, + ), + shape=helpers.get_shape(allow_none=False, min_num_dims=1, min_dim_size=1), + dtype=helpers.get_dtypes("float", full=False), + test_with_out=st.just(False), +) +def test_jax_logistic( + *, + dtype_key, + shape, + dtype, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, key = dtype_key + + def call(): + return helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + key=key[0], + shape=shape, + dtype=dtype[0], + test_values=False, + ) + + ret = call() + + if not ivy.exists(ret): + return + + ret_np, ret_from_np = ret + ret_np = helpers.flatten_and_to_np(ret=ret_np, backend=backend_fw) + ret_from_np = helpers.flatten_and_to_np(ret=ret_from_np, backend=backend_fw) + for u, v in zip(ret_np, ret_from_np): + assert u.dtype == v.dtype + assert u.shape == v.shape + + @pytest.mark.xfail @handle_frontend_test( fn_tree="jax.random.maxwell", From 1358013336828fa656c1cc8f4a39f5f401f03ee2 Mon Sep 17 00:00:00 2001 From: Eddy Oyieko <67474838+mobley-trent@users.noreply.github.com> Date: Fri, 8 Sep 2023 11:56:09 +0300 Subject: [PATCH 059/127] `torch.linalg.norm` frontend (#21955) --- ivy/functional/frontends/torch/linalg.py | 20 ++++++ .../test_frontends/test_torch/test_linalg.py | 67 +++++++++++++++++++ 2 files changed, 87 insertions(+) diff --git a/ivy/functional/frontends/torch/linalg.py b/ivy/functional/frontends/torch/linalg.py index 46b8609b82012..0b66b968144f7 100644 --- a/ivy/functional/frontends/torch/linalg.py +++ b/ivy/functional/frontends/torch/linalg.py @@ -185,6 +185,26 @@ def multi_dot(tensors, *, out=None): return ivy.multi_dot(tensors, out=out) +@to_ivy_arrays_and_back +@with_supported_dtypes( + {"2.0.1 and below": ("float32", "float64", "complex64", "complex128")}, "torch" +) +def norm(input, ord=None, dim=None, keepdim=False, *, dtype=None, out=None): + if dim is None and not (ord is None): + if input.ndim == 1: + ret = ivy.vector_norm(input, axis=dim, keepdims=keepdim, ord=ord) + else: + ret = ivy.matrix_norm(input, keepdims=keepdim, ord=ord) + elif dim is None and ord is None: + input = ivy.flatten(input) + ret = ivy.vector_norm(input, axis=0, keepdims=keepdim, ord=2) + if isinstance(dim, int): + ret = ivy.vector_norm(input, axis=dim, keepdims=keepdim, ord=ord) + elif isinstance(dim, tuple): + ret = ivy.matrix_norm(input, axis=dim, keepdims=keepdim, ord=ord) + return ret + + @to_ivy_arrays_and_back @with_supported_dtypes( {"2.0.1 and below": ("float32", "float64", "complex32", "complex64")}, "torch" diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py index 577967c5f3e1d..51a4c7c6add48 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py @@ -60,6 +60,39 @@ def _generate_multi_dot_dtype_and_arrays(draw): return input_dtype, [matrix_1[1][0], matrix_2[1][0], matrix_3[1][0]] +@st.composite +def _get_axis_and_p(draw): + p = draw(st.sampled_from(["fro", "nuc", 1, 2, -1, -2, float("inf"), -float("inf")])) + if p == "fro" or p == "nuc": + max_axes_size = 2 + min_axes_size = 2 + else: + min_axes_size = 1 + max_axes_size = 5 + x_dtype, values, axis = draw( + helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=2, + valid_axis=True, + min_value=-1e04, + max_value=1e04, + min_axes_size=min_axes_size, + max_axes_size=max_axes_size, + large_abs_safety_factor=2, + safety_factor_scale="log", + ) + ) + axis = axis[0] if isinstance(axis, tuple) and len(axis) == 1 else axis + # ToDo: fix the castable dtype helper. Right now using `dtype` causes errors + # dtype should be real for real inputs, but got ComplexDouble + x_dtype, values, dtype = draw( + helpers.get_castable_dtype( + draw(helpers.get_dtypes("valid")), x_dtype[0], values[0] + ) + ) + return p, x_dtype, values, axis, x_dtype + + # helpers @st.composite def _get_dtype_and_matrix( @@ -868,6 +901,40 @@ def test_torch_multi_dot( ) +@handle_frontend_test( + fn_tree="torch.linalg.norm", + args=_get_axis_and_p(), + keepdim=st.booleans(), + test_with_out=st.just(False), +) +def test_torch_norm( + *, + args, + keepdim, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + p, x_dtype, x, axis, dtype = args + helpers.test_frontend_function( + input_dtypes=[x_dtype], + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + rtol=1e-01, + atol=1e-08, + input=x, + ord=p, + dim=axis, + keepdim=keepdim, + dtype=dtype, + ) + + # pinv # TODO: add testing for hermitian @handle_frontend_test( From 7f22240aecbf63af360299c8040b65512fe0a432 Mon Sep 17 00:00:00 2001 From: Aaryan562 <82304628+Aaryan562@users.noreply.github.com> Date: Fri, 8 Sep 2023 14:44:42 +0530 Subject: [PATCH 060/127] Added pow frontend method (#22875) Co-authored-by: @AnnaTz --- .../frontends/paddle/tensor/tensor.py | 6 ++++ .../test_paddle/test_tensor/test_tensor.py | 36 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/tensor.py b/ivy/functional/frontends/paddle/tensor/tensor.py index 8a235fffc7803..1e19e9455d6e0 100644 --- a/ivy/functional/frontends/paddle/tensor/tensor.py +++ b/ivy/functional/frontends/paddle/tensor/tensor.py @@ -694,6 +694,12 @@ def tolist(self): def min(self, axis=None, keepdim=False, name=None): return ivy.min(self._ivy_array, axis=axis, keepdims=keepdim) + @with_supported_dtypes( + {"2.5.1 and below": ("int32", "int64", "float32", "float64")}, "paddle" + ) + def pow(self, y, name=None): + return paddle_frontend.Tensor(ivy.pow(self._ivy_array, _to_ivy_array(y))) + @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") def atan(self, name=None): return ivy.atan(self._ivy_array) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py index 0f6d2e7393ffd..d53cee3018a24 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py @@ -2629,6 +2629,42 @@ def test_paddle_tensor_numel( ) +# pow +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="paddle.to_tensor", + method_name="pow", + dtypes_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=2, + allow_inf=False, + shared_dtype=True, + ), +) +def test_paddle_tensor_pow( + dtypes_and_x, + frontend_method_data, + init_flags, + method_flags, + frontend, + on_device, + backend_fw, +): + input_dtype, x = dtypes_and_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + backend_to_test=backend_fw, + init_all_as_kwargs_np={"data": x[0]}, + method_input_dtypes=input_dtype, + method_all_as_kwargs_np={"y": x[1]}, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + frontend=frontend, + on_device=on_device, + ) + + # rad2deg @handle_frontend_method( class_tree=CLASS_TREE, From 669e6f46b1168237199181958af0d7d0b466552f Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Fri, 8 Sep 2023 07:21:30 -0400 Subject: [PATCH 061/127] Create setup_xla.sh for easier setup. --- ivy/engines/setup_xla.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 ivy/engines/setup_xla.sh diff --git a/ivy/engines/setup_xla.sh b/ivy/engines/setup_xla.sh new file mode 100644 index 0000000000000..cc15305abce3d --- /dev/null +++ b/ivy/engines/setup_xla.sh @@ -0,0 +1,13 @@ +#!/bin/bash +pip install virtualenv +cd XLA/rust_api/ +mkdir xla_build && virtualenv xla_build +source xla_build/bin/activate +wget https://github.com/elixir-nx/xla/releases/download/v0.4.4/xla_extension-x86_64-linux-gnu-cuda111.tar.gz +tar -xzvf xla_extension-x86_64-linux-gnu-cuda111.tar.gz +curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh +source "$HOME/.cargo/env" +apt install llvm-dev libclang-dev clang +export LIBCLANG_PATH=/usr/local/lib +pip install maturin +maturin develop From 17f039e12420f7c7241452d706584b13c5ad4821 Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Fri, 8 Sep 2023 17:05:14 +0530 Subject: [PATCH 062/127] fix(ivy): added ivy.engines to MODULES_TO_SKIP as it isn't backend-dependent so doesn't need to be dealt with in with_backend (#23269) --- ivy/utils/_importlib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/utils/_importlib.py b/ivy/utils/_importlib.py index f6cb3ad3a25c3..d65e7caecc270 100644 --- a/ivy/utils/_importlib.py +++ b/ivy/utils/_importlib.py @@ -11,7 +11,7 @@ # If they do, the behavior of ivy.with_backend is undefined and may not function as # expected. Import these modules along with Ivy initialization, as the import logic # assumes they exist in sys.modules. -MODULES_TO_SKIP = ["ivy.compiler"] +MODULES_TO_SKIP = ["ivy.compiler", "ivy.engines"] IS_COMPILING_WITH_BACKEND = False From a9e1bb09bc89aaf9e7941193b37ffe168dab6674 Mon Sep 17 00:00:00 2001 From: Felix Hirwa Nshuti Date: Fri, 8 Sep 2023 17:20:22 +0530 Subject: [PATCH 063/127] fix(jax-frontend): Fixed import error (#23270) --- ivy/functional/frontends/jax/random.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py index c229c2e96a722..c861bdade17f7 100644 --- a/ivy/functional/frontends/jax/random.py +++ b/ivy/functional/frontends/jax/random.py @@ -251,6 +251,7 @@ def loggamma(key, a, shape=None, dtype="float64"): @to_ivy_arrays_and_back @with_unsupported_dtypes( {"0.4.14 and below": ("float16", "bfloat16")}, + "jax", ) def logistic(key, shape=(), dtype="float64"): seed = _get_seed(key) From e443bd7cdda59b29c414475ae0df363e364c4cee Mon Sep 17 00:00:00 2001 From: Ved Patwardhan <54766411+vedpatwardhan@users.noreply.github.com> Date: Fri, 8 Sep 2023 17:25:50 +0530 Subject: [PATCH 064/127] refactor(ivy): refactored the inplace update modes logic to avoid unnecessary warnings when using with_backend (#23271) --- ivy/utils/backend/handler.py | 2 +- ivy/utils/exceptions.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ivy/utils/backend/handler.py b/ivy/utils/backend/handler.py index 5fadb1f95f1c6..9693cb035fb17 100644 --- a/ivy/utils/backend/handler.py +++ b/ivy/utils/backend/handler.py @@ -657,5 +657,5 @@ def with_backend(backend: str, cached: bool = True): compiled_backends[backend] = [ivy_pack] if ivy.backend != backend: # to avoid warning users when not using set_backend with ivy.Array.__repr__ - _handle_inplace_mode() + _handle_inplace_mode(ivy_pack=ivy_pack) return ivy_pack diff --git a/ivy/utils/exceptions.py b/ivy/utils/exceptions.py index ae7691b05ace2..886c41400d36d 100644 --- a/ivy/utils/exceptions.py +++ b/ivy/utils/exceptions.py @@ -409,9 +409,11 @@ def _handle_exceptions(*args, **kwargs): # Inplace Update -def _handle_inplace_mode(): - current_backend = ivy.current_backend_str() - if not ivy.native_inplace_support and ivy.inplace_mode == "lenient": +def _handle_inplace_mode(ivy_pack=None): + if not ivy_pack: + ivy_pack = ivy + current_backend = ivy_pack.current_backend_str() + if not ivy_pack.native_inplace_support and ivy_pack.inplace_mode == "lenient": warnings.warn( f"The current backend: '{current_backend}' does not support " "inplace updates natively. Ivy would quietly create new arrays when " From 9e62a00942dd3dfadc23791060bd9df8a7611e2d Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Fri, 8 Sep 2023 12:58:13 +0100 Subject: [PATCH 065/127] fix(frontend-paddle): Corrects namespace issues. E.g. previously we were able to call paddle.sqrt_ which shouldn't exist. --- ivy/functional/frontends/paddle/__init__.py | 29 +- ivy/functional/frontends/paddle/attribute.py | 35 ++ ivy/functional/frontends/paddle/creation.py | 222 +++++++ ivy/functional/frontends/paddle/linalg.py | 201 ++++++- ivy/functional/frontends/paddle/logic.py | 286 +++++++++ .../frontends/paddle/manipulation.py | 175 ++++++ ivy/functional/frontends/paddle/math.py | 541 ++++++++++++++++++ ivy/functional/frontends/paddle/random.py | 106 ++++ ivy/functional/frontends/paddle/search.py | 98 ++++ ivy/functional/frontends/paddle/signal.py | 0 ivy/functional/frontends/paddle/stat.py | 77 +++ .../frontends/paddle/tensor/__init__.py | 2 - .../frontends/paddle/tensor/attribute.py | 37 +- .../frontends/paddle/tensor/creation.py | 224 +------- .../frontends/paddle/tensor/einsum.py | 0 .../frontends/paddle/tensor/linalg.py | 198 +------ .../frontends/paddle/tensor/logic.py | 288 +--------- .../frontends/paddle/tensor/manipulation.py | 183 +----- .../frontends/paddle/tensor/math.py | 540 +---------------- .../frontends/paddle/tensor/random.py | 101 +--- .../frontends/paddle/tensor/search.py | 98 +--- .../frontends/paddle/tensor/stat.py | 77 +-- 22 files changed, 1764 insertions(+), 1754 deletions(-) create mode 100644 ivy/functional/frontends/paddle/attribute.py create mode 100644 ivy/functional/frontends/paddle/creation.py create mode 100644 ivy/functional/frontends/paddle/logic.py create mode 100644 ivy/functional/frontends/paddle/manipulation.py create mode 100644 ivy/functional/frontends/paddle/math.py create mode 100644 ivy/functional/frontends/paddle/random.py create mode 100644 ivy/functional/frontends/paddle/search.py delete mode 100644 ivy/functional/frontends/paddle/signal.py create mode 100644 ivy/functional/frontends/paddle/stat.py delete mode 100644 ivy/functional/frontends/paddle/tensor/einsum.py diff --git a/ivy/functional/frontends/paddle/__init__.py b/ivy/functional/frontends/paddle/__init__.py index 21853bfe07ff2..8b6e9382abe19 100644 --- a/ivy/functional/frontends/paddle/__init__.py +++ b/ivy/functional/frontends/paddle/__init__.py @@ -215,25 +215,20 @@ def promote_types_of_paddle_inputs( return x1, x2 -from . import vision from . import nn -from .nn.functional.activation import tanh -from . import linalg -from . import fft -from . import signal - -from .tensor.attribute import * -from .tensor.creation import * -from .tensor.linalg import * -from .tensor.logic import * -from .tensor.manipulation import * -from .tensor.math import * -from .tensor.random import * -from .tensor.search import * -from .tensor.einsum import * -from .tensor.stat import * - +from . import tensor from .tensor.tensor import Tensor +from . import vision +from .attribute import * +from .creation import * +from .fft import * +from .linalg import * +from .logic import * +from .manipulation import * +from .math import * +from .random import * +from .search import * +from .stat import * _frontend_array = Tensor diff --git a/ivy/functional/frontends/paddle/attribute.py b/ivy/functional/frontends/paddle/attribute.py new file mode 100644 index 0000000000000..a94192737bdcb --- /dev/null +++ b/ivy/functional/frontends/paddle/attribute.py @@ -0,0 +1,35 @@ +# global +import ivy +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@to_ivy_arrays_and_back +def imag(x): + return ivy.imag(x) + + +@to_ivy_arrays_and_back +def is_complex(x): + return ivy.is_complex_dtype(x) + + +@to_ivy_arrays_and_back +def is_floating_point(x): + return ivy.is_float_dtype(x) + + +@to_ivy_arrays_and_back +def is_integer(x): + return ivy.is_int_dtype(x) + + +@to_ivy_arrays_and_back +def rank(input): + return ivy.get_num_dims(input) + + +@to_ivy_arrays_and_back +def real(x): + return ivy.real(x) diff --git a/ivy/functional/frontends/paddle/creation.py b/ivy/functional/frontends/paddle/creation.py new file mode 100644 index 0000000000000..5a110fb73d326 --- /dev/null +++ b/ivy/functional/frontends/paddle/creation.py @@ -0,0 +1,222 @@ +# global +import ivy +from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes +import ivy.functional.frontends.paddle as paddle_frontend +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def arange(start, end=None, step=1, dtype=None, name=None): + return ivy.arange(start, end, step=step, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64", "bool")}, + "paddle", +) +@to_ivy_arrays_and_back +def assign(x, output=None): + if len(ivy.shape(x)) == 0: + x = ivy.reshape(ivy.Array(x), (1,)) + if ivy.exists(output): + output = ivy.reshape(ivy.Array(output), (1,)) + else: + x = ivy.reshape(x, ivy.shape(x)) + ret = ivy.copy_array(x, to_ivy_array=False, out=output) + return ret + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("bfloat16", "uint16", "uint32", "uint64")}, "paddle" +) +@to_ivy_arrays_and_back +def clone(x): + return ivy.copy_array(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def complex(real, imag, name=None): + assert real.dtype == imag.dtype, ( + "(InvalidArgument) The type of data we are trying to retrieve does not match" + " the type of data currently contained in the container." + ) + complex_dtype = "complex64" if real.dtype == "float32" else "complex128" + imag_cmplx = ivy.astype(imag, complex_dtype) * 1j + complex_array = real + imag_cmplx + return complex_array + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def diag(x, offset=0, padding_value=0, name=None): + if len(x.shape) == 1: + padding_value = ivy.astype(padding_value, ivy.dtype(x)) + ret = ivy.diagflat(x, offset=offset, padding_value=padding_value) + if len(ret.shape) != 2: + ret = ivy.reshape(ret, (1, 1)) + else: + ret = ivy.diag(x, k=offset) + return ret + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def diagflat(x, offset=0, name=None): + arr = ivy.diagflat(x, offset=offset) + return arr + + +@to_ivy_arrays_and_back +def empty(shape, dtype=None): + return ivy.empty(shape=shape, dtype=dtype) + + +@to_ivy_arrays_and_back +def empty_like(x, dtype=None, name=None): + return ivy.empty_like(x, dtype=dtype) + + +@to_ivy_arrays_and_back +def eye(num_rows, num_columns=None, dtype=None, name=None): + return ivy.eye(num_rows, num_columns, dtype=dtype) + + +@to_ivy_arrays_and_back +def full(shape, fill_value, /, *, dtype=None, name=None): + dtype = "float32" if dtype is None else dtype + return ivy.full(shape, fill_value, dtype=dtype) + + +@to_ivy_arrays_and_back +def full_like(x, fill_value, /, *, dtype=None, name=None): + dtype = x.dtype if dtype is None else dtype + return ivy.full_like(x, fill_value, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def linspace(start, stop, num, dtype=None, name=None): + return ivy.linspace(start, stop, num=num, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def logspace(start, stop, num, base=10.0, dtype=None, name=None): + return ivy.logspace(start, stop, num=num, base=base, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def meshgrid(*args, **kwargs): + return ivy.meshgrid(*args, indexing="ij") + + +@with_unsupported_dtypes({"2.5.1 and below": "int8"}, "paddle") +@to_ivy_arrays_and_back +def ones(shape, /, *, dtype=None, name=None): + dtype = "float32" if dtype is None else dtype + return ivy.ones(shape, dtype=dtype) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("uint8", "int8", "complex64", "complex128")}, "paddle" +) +@to_ivy_arrays_and_back +def ones_like(x, /, *, dtype=None, name=None): + dtype = x.dtype if dtype is None else dtype + return ivy.ones_like(x, dtype=dtype) + + +@to_ivy_arrays_and_back +def to_tensor(data, /, *, dtype=None, place=None, stop_gradient=True): + array = ivy.array(data, dtype=dtype, device=place) + return paddle_frontend.Tensor(array, dtype=dtype, place=place) + + +@with_unsupported_dtypes( + { + "2.5.1 and below": ( + "uint8", + "int8", + "int16", + "float16", + "complex64", + "complex128", + "bool", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def tril(x, diagonal=0, name=None): + return ivy.tril(x, k=diagonal) + + +@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") +@to_ivy_arrays_and_back +def tril_indices(row, col, offset=0, dtype="int64"): + arr = ivy.tril_indices(row, col, offset) + arr = ivy.astype(arr, dtype) + return arr + + +@with_unsupported_dtypes( + { + "2.5.1 and below": ( + "uint8", + "int8", + "int16", + "float16", + "complex64", + "complex128", + "bool", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def triu(x, diagonal=0, name=None): + return ivy.triu(x, k=diagonal) + + +@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") +@to_ivy_arrays_and_back +def triu_indices(row, col=None, offset=0, dtype="int64"): + arr = ivy.triu_indices(row, col, offset) + if not ivy.to_scalar(ivy.shape(arr[0], as_array=True)): + return arr + arr = ivy.astype(arr, dtype) + return arr + + +@with_unsupported_dtypes({"2.5.1 and below": "int8"}, "paddle") +@to_ivy_arrays_and_back +def zeros(shape, /, *, dtype=None, name=None): + dtype = "float32" if dtype is None else dtype + return ivy.zeros(shape, dtype=dtype) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("uint8", "int8", "complex64", "complex128")}, "paddle" +) +@to_ivy_arrays_and_back +def zeros_like(x, /, *, dtype=None, name=None): + dtype = x.dtype if dtype is None else dtype + return ivy.zeros_like(x, dtype=dtype) diff --git a/ivy/functional/frontends/paddle/linalg.py b/ivy/functional/frontends/paddle/linalg.py index a13f5b7eb9c71..34eff9474cb1b 100644 --- a/ivy/functional/frontends/paddle/linalg.py +++ b/ivy/functional/frontends/paddle/linalg.py @@ -1,5 +1,196 @@ -# Note: All functions are supposed to be added -# to `paddle.tensor.linalg` namespace and will -# be imported here for the sake of namespace consistency. -from . import tensor # noqa: F401 -from .tensor.linalg import * # noqa: F401, F403 +# global +import ivy +from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes +from ivy.functional.frontends.paddle import promote_types_of_paddle_inputs +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@with_supported_dtypes({"2.4.1 and above": ("int64",)}, "paddle") +@to_ivy_arrays_and_back +def bincount(x, weights=None, minlength=0, name=None): + return ivy.bincount(x, weights=weights, minlength=minlength) + + +# bmm +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def bmm(x, y, transpose_x=False, transpose_y=False, name=None): + if len(ivy.shape(x)) != 3 or len(ivy.shape(y)) != 3: + raise RuntimeError("input must be 3D matrices") + x, y = promote_types_of_paddle_inputs(x, y) + return ivy.matmul(x, y, transpose_a=transpose_x, transpose_b=transpose_y) + + +# cholesky +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def cholesky(x, /, *, upper=False, name=None): + return ivy.cholesky(x, upper=upper) + + +# cholesky_solve +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def cholesky_solve(x, y, /, *, upper=False, name=None): + if upper: + y = ivy.matrix_transpose(y) + Y = ivy.solve(y, x) + return ivy.solve(ivy.matrix_transpose(y), Y) + + +# cond +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def cond(x, p=None, name=None): + ret = ivy.cond(x, p=p, out=name) + if ret.shape == (): + ret = ret.reshape((1,)) + return ret + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def cross(x, y, /, *, axis=9, name=None): + x, y = promote_types_of_paddle_inputs(x, y) + return ivy.cross(x, y, axis=axis) + + +@with_supported_dtypes({"2.4.1 and above": ("float64", "float32")}, "paddle") +@to_ivy_arrays_and_back +def dist(x, y, p=2): + ret = ivy.vector_norm(ivy.subtract(x, y), ord=p) + return ivy.reshape(ret, (1,)) + + +# dot +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def dot(x, y, name=None): + x, y = promote_types_of_paddle_inputs(x, y) + out = ivy.multiply(x, y) + return ivy.sum(out, axis=ivy.get_num_dims(x) - 1, keepdims=False) + + +# eig +@to_ivy_arrays_and_back +def eig(x, name=None): + return ivy.eig(x) + + +# eigh +@to_ivy_arrays_and_back +def eigh(x, UPLO="L", name=None): + return ivy.eigh(x, UPLO=UPLO) + + +# eigvals +@to_ivy_arrays_and_back +def eigvals(x, name=None): + return ivy.eigvals(x) + + +# eigvalsh +@to_ivy_arrays_and_back +def eigvalsh(x, UPLO="L", name=None): + return ivy.eigvalsh(x, UPLO=UPLO) + + +# matmul +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def matmul(x, y, transpose_x=False, transpose_y=False, name=None): + x, y = promote_types_of_paddle_inputs(x, y) + return ivy.matmul(x, y, transpose_a=transpose_x, transpose_b=transpose_y) + + +# matrix_power +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def matrix_power(x, n, name=None): + return ivy.matrix_power(x, n) + + +# norm +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def norm(x, p="fro", axis=None, keepdim=False, name=None): + if axis is None and p is not None: + if p == "fro": + p = 2 + ret = ivy.vector_norm(x.flatten(), ord=p, axis=-1) + if keepdim: + ret = ret.reshape([1] * len(x.shape)) + return ret + + if isinstance(axis, tuple): + axis = list(axis) + if isinstance(axis, list) and len(axis) == 1: + axis = axis[0] + + if isinstance(axis, int): + if p == "fro": + p = 2 + if p in [0, 1, 2, ivy.inf, -ivy.inf]: + ret = ivy.vector_norm(x, ord=p, axis=axis, keepdims=keepdim) + elif isinstance(p, (int, float)): + ret = ivy.pow( + ivy.sum(ivy.pow(ivy.abs(x), p), axis=axis, keepdims=keepdim), + float(1.0 / p), + ) + + elif isinstance(axis, list) and len(axis) == 2: + if p == 0: + raise ValueError + elif p == 1: + ret = ivy.sum(ivy.abs(x), axis=axis, keepdims=keepdim) + elif p == 2 or p == "fro": + ret = ivy.matrix_norm(x, ord="fro", axis=axis, keepdims=keepdim) + elif p == ivy.inf: + ret = ivy.max(ivy.abs(x), axis=axis, keepdims=keepdim) + elif p == -ivy.inf: + ret = ivy.min(ivy.abs(x), axis=axis, keepdims=keepdim) + elif isinstance(p, (int, float)) and p > 0: + ret = ivy.pow( + ivy.sum(ivy.pow(ivy.abs(x), p), axis=axis, keepdims=keepdim), + float(1.0 / p), + ) + else: + raise ValueError + + else: + raise ValueError + + return ret + + +# pinv +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def pinv(x, rcond=1e-15, hermitian=False, name=None): + # TODO: Add hermitian functionality + return ivy.pinv(x, rtol=rcond) + + +# qr +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def qr(x, mode="reduced", name=None): + return ivy.qr(x, mode=mode) + + +# solve +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def solve(x, y, name=None): + return ivy.solve(x, y) + + +# transpose +@with_unsupported_dtypes({"2.5.1 and below": ("uint8", "int8", "int16")}, "paddle") +@to_ivy_arrays_and_back +def transpose(x, perm, name=None): + return ivy.permute_dims(x, axes=perm) diff --git a/ivy/functional/frontends/paddle/logic.py b/ivy/functional/frontends/paddle/logic.py new file mode 100644 index 0000000000000..1b2ea90fa4b06 --- /dev/null +++ b/ivy/functional/frontends/paddle/logic.py @@ -0,0 +1,286 @@ +# global +import ivy +import ivy.functional.frontends.paddle as paddle +from ivy.func_wrapper import ( + with_unsupported_dtypes, + handle_out_argument, + with_supported_dtypes, +) +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "float32", + "float64", + "bool", + "uint8", + "int8", + "int16", + "int32", + "int64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def allclose(x, y, rtol=1e-05, atol=1e-08, equal_nan=False, name=None): + ret = ivy.allclose(x, y, rtol=rtol, atol=atol, equal_nan=equal_nan) + return paddle.to_tensor([ret]) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "uint8", + "int8", + "int16", + "int32", + "int64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def bitwise_and(x, y, /, *, name=None, out=None): + return ivy.bitwise_and(x, y, out=out) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "uint8", + "int8", + "int16", + "int32", + "int64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def bitwise_not(x, out=None, name=None): + return ivy.bitwise_invert(x, out=out) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "uint8", + "int8", + "int16", + "int32", + "int64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def bitwise_or(x, y, name=None, out=None): + return ivy.bitwise_or(x, y, out=out) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "uint8", + "int8", + "int16", + "int32", + "int64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def bitwise_xor(x, y, /, *, name=None, out=None): + return ivy.bitwise_xor(x, y, out=out) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("uint8", "int8", "int16", "complex64", "complex128")}, "paddle" +) +@to_ivy_arrays_and_back +def equal(x, y, /, *, name=None): + return ivy.equal(x, y) + + +@with_unsupported_dtypes( + { + "2.5.1 and below": ( + "uint8", + "int8", + "int16", + "float16", + "complex64", + "complex128", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def equal_all(x, y, /, *, name=None): + return paddle.to_tensor([ivy.array_equal(x, y)]) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, + "paddle", +) +@to_ivy_arrays_and_back +def greater_equal(x, y, /, *, name=None): + return ivy.greater_equal(x, y) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, + "paddle", +) +@to_ivy_arrays_and_back +def greater_than(x, y, /, *, name=None): + return ivy.greater(x, y) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("uint8", "int8", "int16", "complex64", "complex128")}, "paddle" +) +@to_ivy_arrays_and_back +def is_empty(x, name=None): + return ivy.is_empty(x) + + +@to_ivy_arrays_and_back +def is_tensor(x): + return ivy.is_array(x) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "float32", + "float64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def isclose(x, y, rtol=1e-05, atol=1e-08, equal_nan=False, name=None): + return ivy.isclose(x, y, rtol=rtol, atol=atol, equal_nan=equal_nan) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, + "paddle", +) +@to_ivy_arrays_and_back +def less_equal(x, y, /, *, name=None): + return ivy.less_equal(x, y) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, + "paddle", +) +@to_ivy_arrays_and_back +def less_than(x, y, /, *, name=None): + return ivy.less(x, y) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "int8", + "int16", + "int32", + "int64", + "float32", + "float64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def logical_and(x, y, /, *, name=None, out=None): + return ivy.logical_and(x, y, out=out) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "int8", + "int16", + "int32", + "int64", + "float32", + "float64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def logical_not(x, /, *, name=None, out=None): + return ivy.logical_not(x, out=out) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "int8", + "int16", + "int32", + "int64", + "float32", + "float64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def logical_or(x, y, /, *, name=None, out=None): + return ivy.logical_or(x, y, out=out) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "int8", + "int16", + "int32", + "int64", + "float32", + "float64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +@handle_out_argument +def logical_xor(x, y, /, *, name=None, out=None): + return ivy.logical_xor(x, y, out=out) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("uint8", "int8", "int16", "complex64", "complex128")}, "paddle" +) +@to_ivy_arrays_and_back +def not_equal(x, y, /, *, name=None): + return ivy.not_equal(x, y) diff --git a/ivy/functional/frontends/paddle/manipulation.py b/ivy/functional/frontends/paddle/manipulation.py new file mode 100644 index 0000000000000..c62dda831e633 --- /dev/null +++ b/ivy/functional/frontends/paddle/manipulation.py @@ -0,0 +1,175 @@ +# global +import ivy +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) +from ivy.func_wrapper import ( + with_unsupported_dtypes, + with_supported_dtypes, + with_supported_device_and_dtypes, +) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def abs(x, name=None): + return ivy.abs(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("bool", "float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def broadcast_to(x, shape, name=None): + return ivy.broadcast_to(x, shape) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "bool", + "float16", + "float32", + "float64", + "int32", + "int64", + "uint8", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def cast(x, dtype): + return ivy.astype(x, dtype) + + +@with_unsupported_dtypes({"2.5.1 and below": ("int8", "int16")}, "paddle") +@to_ivy_arrays_and_back +def concat(x, axis, name=None): + return ivy.concat(x, axis=axis) + + +@with_supported_dtypes( + {"2.5.1 and below": ("bool", "float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def expand(x, shape, name=None): + return ivy.expand(x, shape) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("int8", "uint8", "int16", "float16")}, + "paddle", +) +@to_ivy_arrays_and_back +def flip(x, axis, name=None): + return ivy.flip(x, axis=axis) + + +@with_supported_dtypes( + {"2.5.1 and below": ("bool", "float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def gather(params, indices, axis=-1, batch_dims=0, name=None): + return ivy.gather(params, indices, axis=axis, batch_dims=batch_dims) + + +@to_ivy_arrays_and_back +def reshape(x, shape): + return ivy.reshape(x, shape) + + +@with_supported_dtypes( + { + "2.5.0 and below": ( + "float32", + "float64", + "int32", + "int64", + "complex64", + "complex128", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def roll(x, shifts, axis=None, name=None): + return ivy.roll(x, shifts, axis=axis) + + +@with_supported_device_and_dtypes( + { + "2.5.1 and above": { + "cpu": ( + "bool", + "int32", + "int64", + "float32", + "float64", + ), + "gpu": ("float16",), + }, + }, + "paddle", +) +@to_ivy_arrays_and_back +def rot90(x, k=1, axes=(0, 1), name=None): + return ivy.rot90(x, k=k, axes=axes) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("int16", "complex64", "complex128")}, + "paddle", +) +@to_ivy_arrays_and_back +def split(x, num_or_sections, axis=0, name=None): + return ivy.split(x, num_or_size_splits=num_or_sections, axis=axis) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("float16", "bfloat16", "int8", "int16")}, + "paddle", +) +@to_ivy_arrays_and_back +def squeeze(x, axis=None, name=None): + return ivy.squeeze(x, axis=axis) + + +@to_ivy_arrays_and_back +def stack(x, axis=0, name=None): + return ivy.stack(x, axis=axis) + + +def take_along_axis(arr, indices, axis): + return ivy.take_along_axis(arr, indices, axis) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("int8", "uint8", "int16", "float16")}, + "paddle", +) +@to_ivy_arrays_and_back +def tile(x, repeat_times, name=None): + return ivy.tile(x, repeats=repeat_times) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "float32", + "float64", + "int32", + "int64", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def unstack(x, axis=0, name=None): + return ivy.unstack(x, axis=axis) + + +absolute = abs diff --git a/ivy/functional/frontends/paddle/math.py b/ivy/functional/frontends/paddle/math.py new file mode 100644 index 0000000000000..242ea42e02d60 --- /dev/null +++ b/ivy/functional/frontends/paddle/math.py @@ -0,0 +1,541 @@ +# global +import ivy +from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes +from ivy.functional.frontends.paddle.func_wrapper import to_ivy_arrays_and_back + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def abs(x, name=None): + return ivy.abs(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def acos(x, name=None): + return ivy.acos(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def acosh(x, name=None): + return ivy.acosh(x) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("bool", "unsigned", "int8", "float16", "bfloat16")}, "paddle" +) +@to_ivy_arrays_and_back +def add(x, y, name=None): + return ivy.add(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def addmm(input, x, y, beta=1.0, alpha=1.0, name=None): + value = alpha * ivy.matmul(x, y) + (beta * input) + return value + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def amax(x, axis=None, keepdims=False): + if axis is None: + return ivy.max(x) + if isinstance(axis, int): + axis = [axis] + for i in range(len(axis)): + if axis[i] < 0: + axis[i] += x.ndim + for i in axis: + if i < 0 or i >= x.ndim: + raise ValueError("axis {} is out of range [-{}:{}]".format(i, 0, x.ndim)) + return ivy.max(x, axis=axis, keepdims=keepdims) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def amin(x, axis=None, keepdim=False, name=None): + return ivy.min(x, axis=axis, keepdims=keepdim) + + +@with_supported_dtypes( + {"2.5.1 and below": ("complex64", "complex128", "float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def angle(x, name=None): + return ivy.angle(x) + + +@with_supported_dtypes({"2.5.0 and below": "bool"}, "paddle") +@to_ivy_arrays_and_back +def any(x, axis=None, keepdim=False, name=None): + return ivy.any(x, axis=axis, keepdims=keepdim) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def asin(x, name=None): + return ivy.asin(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def asinh(x, name=None): + return ivy.asinh(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def atan(x, name=None): + return ivy.atan(x) + + +@with_unsupported_dtypes({"2.4.2 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def atan2(x, y, name=None): + return ivy.atan2(x, y) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def atanh(x, name=None): + return ivy.atanh(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def ceil(x, name=None): + return ivy.ceil(x) + + +@with_unsupported_dtypes({"2.4.2 and below": ("int16", "float16")}, "paddle") +@to_ivy_arrays_and_back +def conj(x, name=None): + return ivy.conj(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def cos(x, name=None): + return ivy.cos(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def cosh(x, name=None): + return ivy.cosh(x) + + +@with_supported_dtypes( + { + "2.5.1 and below": ( + "int32", + "int64", + "float32", + "float64", + "complex64", + "complex128", + ) + }, + "paddle", +) +@to_ivy_arrays_and_back +def cumprod(x, dim=None, dtype=None, name=None): + return ivy.cumprod(x, axis=dim, dtype=dtype) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def deg2rad(x, name=None): + return ivy.deg2rad(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def diff(x, n=1, axis=-1, prepend=None, append=None, name=None): + return ivy.diff(x, n=n, axis=axis, prepend=prepend, append=append) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def digamma(x, name=None): + digamma_fun = ivy.digamma + return ivy.array(digamma_fun(x), dtype=x.dtype) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def divide(x, y, name=None): + return ivy.divide(x, y) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def erf(x, name=None): + return ivy.erf(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def exp(x, name=None): + return ivy.exp(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float16", "float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def expm1(x, name=None): + return ivy.expm1(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("bfloat16", "float32", "float64")}, "paddle" +) +@to_ivy_arrays_and_back +def floor(x, name=None): + return ivy.floor(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def floor_divide(x, y, name=None): + return ivy.floor_divide(x, y) + + +@with_unsupported_dtypes({"2.5.1 and below": "bfloat16"}, "paddle") +@to_ivy_arrays_and_back +def fmax(x, y, name=None): + return ivy.fmax(x, y) + + +@with_unsupported_dtypes({"2.5.1 and below": "bfloat16"}, "paddle") +@to_ivy_arrays_and_back +def fmin(x, y, name=None): + return ivy.fmin(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def frac(x, name=None): + y = ivy.trunc(x) + return ivy.subtract(x, y) + + +@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") +@to_ivy_arrays_and_back +def gcd(x, y, name=None): + return ivy.gcd(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def heaviside(x, y, name=None): + return ivy.heaviside(x, y) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def inner(x, y, name=None): + result = ivy.inner(x, y) + if (x.shape == () and y.shape == (1,)) or (x.shape == (1,) and y.shape == ()): + result = result.reshape((1,)) + elif x.shape == (1,) and y.shape == (1,): + result = result.reshape((1,)) + return result + + +@with_supported_dtypes( + {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def isfinite(x, name=None): + return ivy.isfinite(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def isinf(x, name=None): + return ivy.isinf(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def isnan(x, name=None): + return ivy.isnan(x) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def kron(x, y, name=None): + return ivy.kron(x, y) + + +@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") +@to_ivy_arrays_and_back +def lcm(x, y, name=None): + return ivy.lcm(x, y) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def lerp(x, y, weight, name=None): + return ivy.lerp(x, y, weight) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def lgamma(x, name=None): + return ivy.lgamma(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def log(x, name=None): + return ivy.log(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def log1p(x, name=None): + return ivy.log1p(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def log2(x, name=None): + return ivy.log2(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def logit(x, eps=None, name=None): + return ivy.logit(x, eps=eps) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def max(x, axis=None, keepdim=False, name=None): + return ivy.max(x, axis=axis, keepdims=keepdim) + + +# maximum +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def maximum(x, y, name=None): + return ivy.maximum(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def min(x, axis=None, keepdim=False, name=None): + return ivy.min(x, axis=axis, keepdims=keepdim) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def minimum(x, y, name=None): + return ivy.minimum(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def mm(input, mat2, name=None): + return ivy.matmul(input, mat2) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def multiply(x, y, name=None): + return ivy.multiply(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def nansum(x, axis=None, dtype=None, name=None): + return ivy.nansum(x, axis=axis, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int8", "int16", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def neg(x, name=None): + return ivy.negative(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def outer(x, y, name=None): + return ivy.outer(x, y) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def pow(x, y, name=None): + return ivy.pow(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def prod(x, axis=None, keepdim=False, dtype=None, name=None): + return ivy.prod(x, axis=axis, keepdims=keepdim, dtype=dtype) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def rad2deg(x, name=None): + return ivy.rad2deg(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def reciprocal(x, name=None): + return ivy.reciprocal(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def remainder(x, y, name=None): + return ivy.remainder(x, y) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def round(x, name=None): + return ivy.round(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def rsqrt(x, name=None): + return 1 / ivy.sqrt(x) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def sgn(x, name=None): + return ivy.sign(x, np_variant=True) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def sign(x, name=None): + return ivy.sign(x, np_variant=False) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def sin(x, name=None): + return ivy.sin(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def sinh(x, name=None): + return ivy.sinh(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def sqrt(x, name=None): + return ivy.sqrt(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def square(x, name=None): + return ivy.square(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def stanh(x, scale_a=0.67, scale_b=1.7159, name=None): + # TODO this function will be simplified as soon as the ivy.stanh(x,a,b) is added + exp_ax = ivy.exp(ivy.multiply(scale_a, x)) + exp_minus_ax = ivy.exp(ivy.multiply(-scale_a, x)) + numerator = ivy.subtract(exp_ax, exp_minus_ax) + denominator = ivy.add(exp_ax, exp_minus_ax) + ret = ivy.multiply(scale_b, ivy.divide(numerator, denominator)) + return ret + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def subtract(x, y, name=None): + return ivy.subtract(x, y) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int6")}, "paddle" +) +@to_ivy_arrays_and_back +def take( + x, + index, + mode="raise", + name=None, +): + if mode not in ["raise", "wrap", "clip"]: + raise ValueError( + "'mode' in 'take' should be 'raise', 'wrap', 'clip', but received {}." + .format(mode) + ) + x = ivy.reshape(x, (-1,)) + if mode == "clip": + index = ivy.clip(index, 0, x.shape[-1] - 1) + elif mode == "wrap": + index = ivy.where(index < 0, index % x.shape[-1], index) + index = ivy.where(index >= x.shape[-1], index % x.shape[-1], index) + return ivy.gather(x, index, axis=0) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def tan(x, name=None): + return ivy.tan(x) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def tanh(x, name=None): + return ivy.tanh(x) + + +@with_supported_dtypes( + {"2.4.2 and below": ("float32", "float64", "int32", "int64")}, "paddle" +) +@to_ivy_arrays_and_back +def trunc(x, name=None): + return ivy.trunc(x) diff --git a/ivy/functional/frontends/paddle/random.py b/ivy/functional/frontends/paddle/random.py new file mode 100644 index 0000000000000..f5e84b9c43c65 --- /dev/null +++ b/ivy/functional/frontends/paddle/random.py @@ -0,0 +1,106 @@ +# global +import ivy +from ivy.func_wrapper import with_supported_dtypes +from ivy.func_wrapper import with_supported_device_and_dtypes, with_unsupported_dtypes +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def normal(mean=0.0, std=1.0, shape=None, name=None): + return ivy.random_normal(mean=mean, std=std, shape=shape) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def poisson(x, name=None): + return ivy.poisson(x, shape=None, device=None, dtype=None, seed=None, out=None) + + +@with_supported_device_and_dtypes( + { + "2.5.1 and above": { + "cpu": ( + "bfloat16", + "float32", + "float64", + ), + "gpu": ( + "bfloat16", + "float16", + "float32", + "float64", + ), + }, + "2.4.2 and below": { + "cpu": ( + "float32", + "float64", + ), + "gpu": ( + "float16", + "float32", + "float64", + ), + }, + }, + "paddle", +) +@to_ivy_arrays_and_back +def rand(shape, dtype=None, name=None): + return ivy.random_uniform(low=0.0, high=1.0, shape=shape, dtype=dtype, seed=None) + + +@to_ivy_arrays_and_back +def randint(low=0, high=None, shape=[1], dtype=None, name=None): + return ivy.randint(low, high, shape=shape, dtype=dtype) + + +@with_unsupported_dtypes( + {"2.5.1 and below": ("int16", "float16", "bfloat16", "uint8")}, + "paddle", +) +@to_ivy_arrays_and_back +def randint_like(x, low=0, high=None, dtype=None, name=None): + if high is None: + high = low + low = 0 + if high <= 0: + raise ivy.exceptions.IvyError( + "If high is None, low must be greater than 0, but received low = 0." + ) + return ivy.randint(low, high, shape=x.shape, dtype=dtype, seed=None) + + +def randn(shape, dtype=None, name=None): + if dtype not in ["float32", "float64"]: + raise ivy.exceptions.IvyError( + "Unsupported dtype for randn, only float32 and float64 are supported, " + ) + return ivy.random_normal(shape=shape, dtype=dtype, seed=None) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def standard_normal(shape, dtype=None, name=None): + return ivy.random_normal(mean=0, std=1, shape=shape, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64")}, + "paddle", +) +@to_ivy_arrays_and_back +def uniform(shape, dtype=None, min=-1.0, max=1.0, seed=0, name=None): + return ivy.random_uniform(low=min, high=max, shape=shape, dtype=dtype, seed=seed) diff --git a/ivy/functional/frontends/paddle/search.py b/ivy/functional/frontends/paddle/search.py new file mode 100644 index 0000000000000..205f2b6d1e5b7 --- /dev/null +++ b/ivy/functional/frontends/paddle/search.py @@ -0,0 +1,98 @@ +# global +import ivy +from ivy.func_wrapper import with_supported_dtypes +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, + "paddle", +) +@to_ivy_arrays_and_back +def argmax(x, /, *, axis=None, keepdim=False, dtype="int64", name=None): + return ivy.argmax(x, axis=axis, keepdims=keepdim, dtype=dtype) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, + "paddle", +) +@to_ivy_arrays_and_back +def argmin(x, /, *, axis=None, keepdim=False, dtype="int64", name=None): + return ivy.argmin(x, axis=axis, keepdims=keepdim, dtype=dtype) + + +@with_supported_dtypes( + {"2.4.2 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, + "paddle", +) +@to_ivy_arrays_and_back +def argsort(x, /, *, axis=-1, descending=False, name=None): + return ivy.argsort(x, axis=axis, descending=descending) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def masked_select(x, mask, name=None): + return ivy.flatten(x[mask]) + + +@with_supported_dtypes( + {"2.4.2 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, + "paddle", +) +@to_ivy_arrays_and_back +def nonzero(input, /, *, as_tuple=False): + ret = ivy.nonzero(input) + if as_tuple is False: + ret = ivy.matrix_transpose(ivy.stack(ret)) + return ret + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def searchsorted(sorted_sequence, values, out_int32=False, right=False, name=None): + if right: + side = "right" + else: + side = "left" + ret = ivy.searchsorted(sorted_sequence, values, side=side) + if out_int32: + ret = ivy.astype(ret, "int32") + return ret + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def sort(x, /, *, axis=-1, descending=False, name=None): + return ivy.sort(x, axis=axis, descending=descending) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def topk(x, k, axis=None, largest=True, sorted=True, name=None): + return ivy.top_k(x, k, axis=axis, largest=largest, sorted=sorted) + + +# where +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def where(condition, x, y, name=None): + return ivy.where(condition, x, y) diff --git a/ivy/functional/frontends/paddle/signal.py b/ivy/functional/frontends/paddle/signal.py deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ivy/functional/frontends/paddle/stat.py b/ivy/functional/frontends/paddle/stat.py new file mode 100644 index 0000000000000..bfee9e9d65d2c --- /dev/null +++ b/ivy/functional/frontends/paddle/stat.py @@ -0,0 +1,77 @@ +# global +import ivy +from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes +from ivy.functional.frontends.paddle.func_wrapper import ( + to_ivy_arrays_and_back, +) + + +@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") +@to_ivy_arrays_and_back +def mean(input, axis=None, keepdim=False, out=None): + ret = ivy.mean(input, axis=axis, keepdims=keepdim, out=out) + ret = ivy.expand_dims(ret, axis=-1) if ret.ndim == 0 else ret + return ret + + +@with_supported_dtypes( + {"2.5.1 and below": ("bool", "float16", "float32", "float64", "int32", "int64")}, + "paddle", +) +@to_ivy_arrays_and_back +def median(x, axis=None, keepdim=False, name=None): + x = ( + ivy.astype(x, ivy.float64) + if ivy.dtype(x) == "float64" + else ivy.astype(x, ivy.float32) + ) + return ivy.median(x, axis=axis, keepdims=keepdim) + + +@with_supported_dtypes( + {"2.5.0 and below": ("float16", "float32", "float64", "uint16")}, + "paddle", +) +@to_ivy_arrays_and_back +def nanmedian(x, axis=None, keepdim=True, name=None): + x = ( + ivy.astype(x, ivy.float64) + if ivy.dtype(x) == "float64" + else ivy.astype(x, ivy.float32) + ) + return ivy.median(x, axis=axis, keepdims=keepdim) + + +@with_unsupported_dtypes({"2.5.1 and below": ("complex", "int8")}, "paddle") +@to_ivy_arrays_and_back +def numel(x, name=None): + prod = ivy.prod(x.size, dtype=ivy.int64) + try: + length = len(x) + except (ValueError, TypeError): + length = 1 # if 0 dimensional tensor with 1 element + return ivy.array(prod if prod > 0 else ivy.array(length, dtype=ivy.int64)) + + +@with_supported_dtypes( + {"2.5.1 and below": ("float32", "float64", "uint16")}, + "paddle", +) +@to_ivy_arrays_and_back +def std(x, axis=None, unbiased=True, keepdim=False, name=None): + x = ( + ivy.astype(x, ivy.float64) + if ivy.dtype(x) == "float64" + else ivy.astype(x, ivy.float32) + ) + return ivy.std(x, axis=axis, correction=int(unbiased), keepdims=keepdim) + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def var(x, axis=None, unbiased=True, keepdim=False, name=None): + if unbiased: + correction = 1 + else: + correction = 0 + return ivy.var(x, axis=axis, correction=correction, keepdims=keepdim) diff --git a/ivy/functional/frontends/paddle/tensor/__init__.py b/ivy/functional/frontends/paddle/tensor/__init__.py index cefb9c41204cb..3b1f01ba23fee 100644 --- a/ivy/functional/frontends/paddle/tensor/__init__.py +++ b/ivy/functional/frontends/paddle/tensor/__init__.py @@ -2,8 +2,6 @@ from .attribute import * from . import creation from .creation import * -from . import einsum -from .einsum import * from . import linalg from .linalg import * from . import logic diff --git a/ivy/functional/frontends/paddle/tensor/attribute.py b/ivy/functional/frontends/paddle/tensor/attribute.py index a94192737bdcb..605913c9f2c85 100644 --- a/ivy/functional/frontends/paddle/tensor/attribute.py +++ b/ivy/functional/frontends/paddle/tensor/attribute.py @@ -1,35 +1,2 @@ -# global -import ivy -from ivy.functional.frontends.paddle.func_wrapper import ( - to_ivy_arrays_and_back, -) - - -@to_ivy_arrays_and_back -def imag(x): - return ivy.imag(x) - - -@to_ivy_arrays_and_back -def is_complex(x): - return ivy.is_complex_dtype(x) - - -@to_ivy_arrays_and_back -def is_floating_point(x): - return ivy.is_float_dtype(x) - - -@to_ivy_arrays_and_back -def is_integer(x): - return ivy.is_int_dtype(x) - - -@to_ivy_arrays_and_back -def rank(input): - return ivy.get_num_dims(input) - - -@to_ivy_arrays_and_back -def real(x): - return ivy.real(x) +# local +from ..attribute import * # noqa: F401 diff --git a/ivy/functional/frontends/paddle/tensor/creation.py b/ivy/functional/frontends/paddle/tensor/creation.py index 7ed0e10847fac..fa08078aa84b2 100644 --- a/ivy/functional/frontends/paddle/tensor/creation.py +++ b/ivy/functional/frontends/paddle/tensor/creation.py @@ -1,222 +1,2 @@ -# global -import ivy -from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes -from .tensor import Tensor -from ivy.functional.frontends.paddle.func_wrapper import ( - to_ivy_arrays_and_back, -) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def arange(start, end=None, step=1, dtype=None, name=None): - return ivy.arange(start, end, step=step, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64", "bool")}, - "paddle", -) -@to_ivy_arrays_and_back -def assign(x, output=None): - if len(ivy.shape(x)) == 0: - x = ivy.reshape(ivy.Array(x), (1,)) - if ivy.exists(output): - output = ivy.reshape(ivy.Array(output), (1,)) - else: - x = ivy.reshape(x, ivy.shape(x)) - ret = ivy.copy_array(x, to_ivy_array=False, out=output) - return ret - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("bfloat16", "uint16", "uint32", "uint64")}, "paddle" -) -@to_ivy_arrays_and_back -def clone(x): - return ivy.copy_array(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def complex(real, imag, name=None): - assert real.dtype == imag.dtype, ( - "(InvalidArgument) The type of data we are trying to retrieve does not match" - " the type of data currently contained in the container." - ) - complex_dtype = "complex64" if real.dtype == "float32" else "complex128" - imag_cmplx = ivy.astype(imag, complex_dtype) * 1j - complex_array = real + imag_cmplx - return complex_array - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def diag(x, offset=0, padding_value=0, name=None): - if len(x.shape) == 1: - padding_value = ivy.astype(padding_value, ivy.dtype(x)) - ret = ivy.diagflat(x, offset=offset, padding_value=padding_value) - if len(ret.shape) != 2: - ret = ivy.reshape(ret, (1, 1)) - else: - ret = ivy.diag(x, k=offset) - return ret - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def diagflat(x, offset=0, name=None): - arr = ivy.diagflat(x, offset=offset) - return arr - - -@to_ivy_arrays_and_back -def empty(shape, dtype=None): - return ivy.empty(shape=shape, dtype=dtype) - - -@to_ivy_arrays_and_back -def empty_like(x, dtype=None, name=None): - return ivy.empty_like(x, dtype=dtype) - - -@to_ivy_arrays_and_back -def eye(num_rows, num_columns=None, dtype=None, name=None): - return ivy.eye(num_rows, num_columns, dtype=dtype) - - -@to_ivy_arrays_and_back -def full(shape, fill_value, /, *, dtype=None, name=None): - dtype = "float32" if dtype is None else dtype - return ivy.full(shape, fill_value, dtype=dtype) - - -@to_ivy_arrays_and_back -def full_like(x, fill_value, /, *, dtype=None, name=None): - dtype = x.dtype if dtype is None else dtype - return ivy.full_like(x, fill_value, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def linspace(start, stop, num, dtype=None, name=None): - return ivy.linspace(start, stop, num=num, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def logspace(start, stop, num, base=10.0, dtype=None, name=None): - return ivy.logspace(start, stop, num=num, base=base, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def meshgrid(*args, **kwargs): - return ivy.meshgrid(*args, indexing="ij") - - -@with_unsupported_dtypes({"2.5.1 and below": "int8"}, "paddle") -@to_ivy_arrays_and_back -def ones(shape, /, *, dtype=None, name=None): - dtype = "float32" if dtype is None else dtype - return ivy.ones(shape, dtype=dtype) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("uint8", "int8", "complex64", "complex128")}, "paddle" -) -@to_ivy_arrays_and_back -def ones_like(x, /, *, dtype=None, name=None): - dtype = x.dtype if dtype is None else dtype - return ivy.ones_like(x, dtype=dtype) - - -@to_ivy_arrays_and_back -def to_tensor(data, /, *, dtype=None, place=None, stop_gradient=True): - array = ivy.array(data, dtype=dtype, device=place) - return Tensor(array, dtype=dtype, place=place) - - -@with_unsupported_dtypes( - { - "2.5.1 and below": ( - "uint8", - "int8", - "int16", - "float16", - "complex64", - "complex128", - "bool", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def tril(x, diagonal=0, name=None): - return ivy.tril(x, k=diagonal) - - -@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") -@to_ivy_arrays_and_back -def tril_indices(row, col, offset=0, dtype="int64"): - arr = ivy.tril_indices(row, col, offset) - arr = ivy.astype(arr, dtype) - return arr - - -@with_unsupported_dtypes( - { - "2.5.1 and below": ( - "uint8", - "int8", - "int16", - "float16", - "complex64", - "complex128", - "bool", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def triu(x, diagonal=0, name=None): - return ivy.triu(x, k=diagonal) - - -@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") -@to_ivy_arrays_and_back -def triu_indices(row, col=None, offset=0, dtype="int64"): - arr = ivy.triu_indices(row, col, offset) - if not ivy.to_scalar(ivy.shape(arr[0], as_array=True)): - return arr - arr = ivy.astype(arr, dtype) - return arr - - -@with_unsupported_dtypes({"2.5.1 and below": "int8"}, "paddle") -@to_ivy_arrays_and_back -def zeros(shape, /, *, dtype=None, name=None): - dtype = "float32" if dtype is None else dtype - return ivy.zeros(shape, dtype=dtype) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("uint8", "int8", "complex64", "complex128")}, "paddle" -) -@to_ivy_arrays_and_back -def zeros_like(x, /, *, dtype=None, name=None): - dtype = x.dtype if dtype is None else dtype - return ivy.zeros_like(x, dtype=dtype) +# local +from ..creation import * # noqa: F401 diff --git a/ivy/functional/frontends/paddle/tensor/einsum.py b/ivy/functional/frontends/paddle/tensor/einsum.py deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ivy/functional/frontends/paddle/tensor/linalg.py b/ivy/functional/frontends/paddle/tensor/linalg.py index 34eff9474cb1b..4859ac7195588 100644 --- a/ivy/functional/frontends/paddle/tensor/linalg.py +++ b/ivy/functional/frontends/paddle/tensor/linalg.py @@ -1,196 +1,2 @@ -# global -import ivy -from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes -from ivy.functional.frontends.paddle import promote_types_of_paddle_inputs -from ivy.functional.frontends.paddle.func_wrapper import ( - to_ivy_arrays_and_back, -) - - -@with_supported_dtypes({"2.4.1 and above": ("int64",)}, "paddle") -@to_ivy_arrays_and_back -def bincount(x, weights=None, minlength=0, name=None): - return ivy.bincount(x, weights=weights, minlength=minlength) - - -# bmm -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def bmm(x, y, transpose_x=False, transpose_y=False, name=None): - if len(ivy.shape(x)) != 3 or len(ivy.shape(y)) != 3: - raise RuntimeError("input must be 3D matrices") - x, y = promote_types_of_paddle_inputs(x, y) - return ivy.matmul(x, y, transpose_a=transpose_x, transpose_b=transpose_y) - - -# cholesky -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def cholesky(x, /, *, upper=False, name=None): - return ivy.cholesky(x, upper=upper) - - -# cholesky_solve -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def cholesky_solve(x, y, /, *, upper=False, name=None): - if upper: - y = ivy.matrix_transpose(y) - Y = ivy.solve(y, x) - return ivy.solve(ivy.matrix_transpose(y), Y) - - -# cond -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def cond(x, p=None, name=None): - ret = ivy.cond(x, p=p, out=name) - if ret.shape == (): - ret = ret.reshape((1,)) - return ret - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def cross(x, y, /, *, axis=9, name=None): - x, y = promote_types_of_paddle_inputs(x, y) - return ivy.cross(x, y, axis=axis) - - -@with_supported_dtypes({"2.4.1 and above": ("float64", "float32")}, "paddle") -@to_ivy_arrays_and_back -def dist(x, y, p=2): - ret = ivy.vector_norm(ivy.subtract(x, y), ord=p) - return ivy.reshape(ret, (1,)) - - -# dot -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def dot(x, y, name=None): - x, y = promote_types_of_paddle_inputs(x, y) - out = ivy.multiply(x, y) - return ivy.sum(out, axis=ivy.get_num_dims(x) - 1, keepdims=False) - - -# eig -@to_ivy_arrays_and_back -def eig(x, name=None): - return ivy.eig(x) - - -# eigh -@to_ivy_arrays_and_back -def eigh(x, UPLO="L", name=None): - return ivy.eigh(x, UPLO=UPLO) - - -# eigvals -@to_ivy_arrays_and_back -def eigvals(x, name=None): - return ivy.eigvals(x) - - -# eigvalsh -@to_ivy_arrays_and_back -def eigvalsh(x, UPLO="L", name=None): - return ivy.eigvalsh(x, UPLO=UPLO) - - -# matmul -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def matmul(x, y, transpose_x=False, transpose_y=False, name=None): - x, y = promote_types_of_paddle_inputs(x, y) - return ivy.matmul(x, y, transpose_a=transpose_x, transpose_b=transpose_y) - - -# matrix_power -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def matrix_power(x, n, name=None): - return ivy.matrix_power(x, n) - - -# norm -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def norm(x, p="fro", axis=None, keepdim=False, name=None): - if axis is None and p is not None: - if p == "fro": - p = 2 - ret = ivy.vector_norm(x.flatten(), ord=p, axis=-1) - if keepdim: - ret = ret.reshape([1] * len(x.shape)) - return ret - - if isinstance(axis, tuple): - axis = list(axis) - if isinstance(axis, list) and len(axis) == 1: - axis = axis[0] - - if isinstance(axis, int): - if p == "fro": - p = 2 - if p in [0, 1, 2, ivy.inf, -ivy.inf]: - ret = ivy.vector_norm(x, ord=p, axis=axis, keepdims=keepdim) - elif isinstance(p, (int, float)): - ret = ivy.pow( - ivy.sum(ivy.pow(ivy.abs(x), p), axis=axis, keepdims=keepdim), - float(1.0 / p), - ) - - elif isinstance(axis, list) and len(axis) == 2: - if p == 0: - raise ValueError - elif p == 1: - ret = ivy.sum(ivy.abs(x), axis=axis, keepdims=keepdim) - elif p == 2 or p == "fro": - ret = ivy.matrix_norm(x, ord="fro", axis=axis, keepdims=keepdim) - elif p == ivy.inf: - ret = ivy.max(ivy.abs(x), axis=axis, keepdims=keepdim) - elif p == -ivy.inf: - ret = ivy.min(ivy.abs(x), axis=axis, keepdims=keepdim) - elif isinstance(p, (int, float)) and p > 0: - ret = ivy.pow( - ivy.sum(ivy.pow(ivy.abs(x), p), axis=axis, keepdims=keepdim), - float(1.0 / p), - ) - else: - raise ValueError - - else: - raise ValueError - - return ret - - -# pinv -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def pinv(x, rcond=1e-15, hermitian=False, name=None): - # TODO: Add hermitian functionality - return ivy.pinv(x, rtol=rcond) - - -# qr -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def qr(x, mode="reduced", name=None): - return ivy.qr(x, mode=mode) - - -# solve -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def solve(x, y, name=None): - return ivy.solve(x, y) - - -# transpose -@with_unsupported_dtypes({"2.5.1 and below": ("uint8", "int8", "int16")}, "paddle") -@to_ivy_arrays_and_back -def transpose(x, perm, name=None): - return ivy.permute_dims(x, axes=perm) +# local +from ..linalg import * # noqa: F401 diff --git a/ivy/functional/frontends/paddle/tensor/logic.py b/ivy/functional/frontends/paddle/tensor/logic.py index 1b2ea90fa4b06..2b61d7f97cd96 100644 --- a/ivy/functional/frontends/paddle/tensor/logic.py +++ b/ivy/functional/frontends/paddle/tensor/logic.py @@ -1,286 +1,2 @@ -# global -import ivy -import ivy.functional.frontends.paddle as paddle -from ivy.func_wrapper import ( - with_unsupported_dtypes, - handle_out_argument, - with_supported_dtypes, -) -from ivy.functional.frontends.paddle.func_wrapper import ( - to_ivy_arrays_and_back, -) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "float32", - "float64", - "bool", - "uint8", - "int8", - "int16", - "int32", - "int64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def allclose(x, y, rtol=1e-05, atol=1e-08, equal_nan=False, name=None): - ret = ivy.allclose(x, y, rtol=rtol, atol=atol, equal_nan=equal_nan) - return paddle.to_tensor([ret]) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "uint8", - "int8", - "int16", - "int32", - "int64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def bitwise_and(x, y, /, *, name=None, out=None): - return ivy.bitwise_and(x, y, out=out) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "uint8", - "int8", - "int16", - "int32", - "int64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def bitwise_not(x, out=None, name=None): - return ivy.bitwise_invert(x, out=out) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "uint8", - "int8", - "int16", - "int32", - "int64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def bitwise_or(x, y, name=None, out=None): - return ivy.bitwise_or(x, y, out=out) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "uint8", - "int8", - "int16", - "int32", - "int64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def bitwise_xor(x, y, /, *, name=None, out=None): - return ivy.bitwise_xor(x, y, out=out) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("uint8", "int8", "int16", "complex64", "complex128")}, "paddle" -) -@to_ivy_arrays_and_back -def equal(x, y, /, *, name=None): - return ivy.equal(x, y) - - -@with_unsupported_dtypes( - { - "2.5.1 and below": ( - "uint8", - "int8", - "int16", - "float16", - "complex64", - "complex128", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def equal_all(x, y, /, *, name=None): - return paddle.to_tensor([ivy.array_equal(x, y)]) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, - "paddle", -) -@to_ivy_arrays_and_back -def greater_equal(x, y, /, *, name=None): - return ivy.greater_equal(x, y) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, - "paddle", -) -@to_ivy_arrays_and_back -def greater_than(x, y, /, *, name=None): - return ivy.greater(x, y) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("uint8", "int8", "int16", "complex64", "complex128")}, "paddle" -) -@to_ivy_arrays_and_back -def is_empty(x, name=None): - return ivy.is_empty(x) - - -@to_ivy_arrays_and_back -def is_tensor(x): - return ivy.is_array(x) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "float32", - "float64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def isclose(x, y, rtol=1e-05, atol=1e-08, equal_nan=False, name=None): - return ivy.isclose(x, y, rtol=rtol, atol=atol, equal_nan=equal_nan) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, - "paddle", -) -@to_ivy_arrays_and_back -def less_equal(x, y, /, *, name=None): - return ivy.less_equal(x, y) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("bool", "uint8", "int8", "int16", "complex64", "complex128")}, - "paddle", -) -@to_ivy_arrays_and_back -def less_than(x, y, /, *, name=None): - return ivy.less(x, y) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "int8", - "int16", - "int32", - "int64", - "float32", - "float64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def logical_and(x, y, /, *, name=None, out=None): - return ivy.logical_and(x, y, out=out) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "int8", - "int16", - "int32", - "int64", - "float32", - "float64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def logical_not(x, /, *, name=None, out=None): - return ivy.logical_not(x, out=out) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "int8", - "int16", - "int32", - "int64", - "float32", - "float64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def logical_or(x, y, /, *, name=None, out=None): - return ivy.logical_or(x, y, out=out) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "int8", - "int16", - "int32", - "int64", - "float32", - "float64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -@handle_out_argument -def logical_xor(x, y, /, *, name=None, out=None): - return ivy.logical_xor(x, y, out=out) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("uint8", "int8", "int16", "complex64", "complex128")}, "paddle" -) -@to_ivy_arrays_and_back -def not_equal(x, y, /, *, name=None): - return ivy.not_equal(x, y) +# local +from ..logic import * # noqa: F401 diff --git a/ivy/functional/frontends/paddle/tensor/manipulation.py b/ivy/functional/frontends/paddle/tensor/manipulation.py index f4f355275dce6..4608e65d4407e 100644 --- a/ivy/functional/frontends/paddle/tensor/manipulation.py +++ b/ivy/functional/frontends/paddle/tensor/manipulation.py @@ -1,94 +1,10 @@ -# global +# local +from ..manipulation import * # noqa: F401 import ivy from ivy.functional.frontends.paddle.func_wrapper import ( to_ivy_arrays_and_back, ) -from ivy.func_wrapper import ( - with_unsupported_dtypes, - with_supported_dtypes, - with_supported_device_and_dtypes, -) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def abs(x, name=None): - return ivy.abs(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("bool", "float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def broadcast_to(x, shape, name=None): - return ivy.broadcast_to(x, shape) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "bool", - "float16", - "float32", - "float64", - "int32", - "int64", - "uint8", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def cast(x, dtype): - return ivy.astype(x, dtype) - - -@with_unsupported_dtypes({"2.5.1 and below": ("int8", "int16")}, "paddle") -@to_ivy_arrays_and_back -def concat(x, axis, name=None): - return ivy.concat(x, axis=axis) - - -@with_supported_dtypes( - {"2.5.1 and below": ("bool", "float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def expand(x, shape, name=None): - return ivy.expand(x, shape) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("int8", "uint8", "int16", "float16")}, - "paddle", -) -@to_ivy_arrays_and_back -def flip(x, axis, name=None): - return ivy.flip(x, axis=axis) - - -@with_supported_dtypes( - {"2.5.1 and below": ("bool", "float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def gather(params, indices, axis=-1, batch_dims=0, name=None): - return ivy.gather(params, indices, axis=axis, batch_dims=batch_dims) - - -@with_supported_dtypes( - {"2.5.1 and below": ("int32", "int64", "float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def repeat_interleave(x, repeats, axis=None, name=None): - return ivy.repeat(x, repeats, axis=axis) - - -@to_ivy_arrays_and_back -def reshape(x, shape): - return ivy.reshape(x, shape) +from ivy.func_wrapper import with_unsupported_dtypes @with_unsupported_dtypes( @@ -100,96 +16,3 @@ def reshape_(x, shape): ret = ivy.reshape(x, shape) ivy.inplace_update(x, ret) return x - - -@with_supported_dtypes( - { - "2.5.0 and below": ( - "float32", - "float64", - "int32", - "int64", - "complex64", - "complex128", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def roll(x, shifts, axis=None, name=None): - return ivy.roll(x, shifts, axis=axis) - - -@with_supported_device_and_dtypes( - { - "2.5.1 and above": { - "cpu": ( - "bool", - "int32", - "int64", - "float32", - "float64", - ), - "gpu": ("float16",), - }, - }, - "paddle", -) -@to_ivy_arrays_and_back -def rot90(x, k=1, axes=(0, 1), name=None): - return ivy.rot90(x, k=k, axes=axes) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("int16", "complex64", "complex128")}, - "paddle", -) -@to_ivy_arrays_and_back -def split(x, num_or_sections, axis=0, name=None): - return ivy.split(x, num_or_size_splits=num_or_sections, axis=axis) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("float16", "bfloat16", "int8", "int16")}, - "paddle", -) -@to_ivy_arrays_and_back -def squeeze(x, axis=None, name=None): - return ivy.squeeze(x, axis=axis) - - -@to_ivy_arrays_and_back -def stack(x, axis=0, name=None): - return ivy.stack(x, axis=axis) - - -def take_along_axis(arr, indices, axis): - return ivy.take_along_axis(arr, indices, axis) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("int8", "uint8", "int16", "float16")}, - "paddle", -) -@to_ivy_arrays_and_back -def tile(x, repeat_times, name=None): - return ivy.tile(x, repeats=repeat_times) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "float32", - "float64", - "int32", - "int64", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def unstack(x, axis=0, name=None): - return ivy.unstack(x, axis=axis) - - -absolute = abs diff --git a/ivy/functional/frontends/paddle/tensor/math.py b/ivy/functional/frontends/paddle/tensor/math.py index 733c4675ad323..0f7d820f6f42c 100644 --- a/ivy/functional/frontends/paddle/tensor/math.py +++ b/ivy/functional/frontends/paddle/tensor/math.py @@ -1,582 +1,46 @@ -# global +# local +from ..math import * # noqa: F401 import ivy from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes from ivy.functional.frontends.paddle.func_wrapper import to_ivy_arrays_and_back -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def abs(x, name=None): - return ivy.abs(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def acos(x, name=None): - return ivy.acos(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def acosh(x, name=None): - return ivy.acosh(x) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("bool", "unsigned", "int8", "float16", "bfloat16")}, "paddle" -) -@to_ivy_arrays_and_back -def add(x, y, name=None): - return ivy.add(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def addmm(input, x, y, beta=1.0, alpha=1.0, name=None): - value = alpha * ivy.matmul(x, y) + (beta * input) - return value - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def amax(x, axis=None, keepdims=False): - if axis is None: - return ivy.max(x) - if isinstance(axis, int): - axis = [axis] - for i in range(len(axis)): - if axis[i] < 0: - axis[i] += x.ndim - for i in axis: - if i < 0 or i >= x.ndim: - raise ValueError("axis {} is out of range [-{}:{}]".format(i, 0, x.ndim)) - return ivy.max(x, axis=axis, keepdims=keepdims) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def amin(x, axis=None, keepdim=False, name=None): - return ivy.min(x, axis=axis, keepdims=keepdim) - - -@with_supported_dtypes( - {"2.5.1 and below": ("complex64", "complex128", "float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def angle(x, name=None): - return ivy.angle(x) - - -@with_supported_dtypes({"2.5.0 and below": "bool"}, "paddle") -@to_ivy_arrays_and_back -def any(x, axis=None, keepdim=False, name=None): - return ivy.any(x, axis=axis, keepdims=keepdim) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def asin(x, name=None): - return ivy.asin(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def asinh(x, name=None): - return ivy.asinh(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def atan(x, name=None): - return ivy.atan(x) - - -@with_unsupported_dtypes({"2.4.2 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def atan2(x, y, name=None): - return ivy.atan2(x, y) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def atanh(x, name=None): - return ivy.atanh(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def ceil(x, name=None): - return ivy.ceil(x) - - @with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") @to_ivy_arrays_and_back def ceil_(x, name=None): return ivy.ceil(x, out=x) -@with_unsupported_dtypes({"2.4.2 and below": ("int16", "float16")}, "paddle") -@to_ivy_arrays_and_back -def conj(x, name=None): - return ivy.conj(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def cos(x, name=None): - return ivy.cos(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def cosh(x, name=None): - return ivy.cosh(x) - - -@with_supported_dtypes( - { - "2.5.1 and below": ( - "int32", - "int64", - "float32", - "float64", - "complex64", - "complex128", - ) - }, - "paddle", -) -@to_ivy_arrays_and_back -def cumprod(x, dim=None, dtype=None, name=None): - return ivy.cumprod(x, axis=dim, dtype=dtype) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def deg2rad(x, name=None): - return ivy.deg2rad(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def diff(x, n=1, axis=-1, prepend=None, append=None, name=None): - return ivy.diff(x, n=n, axis=axis, prepend=prepend, append=append) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def digamma(x, name=None): - digamma_fun = ivy.digamma - return ivy.array(digamma_fun(x), dtype=x.dtype) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def divide(x, y, name=None): - return ivy.divide(x, y) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def erf(x, name=None): - return ivy.erf(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def exp(x, name=None): - return ivy.exp(x) - - @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back def exp_(x, name=None): return ivy.inplace_update(x, exp(x)) -@with_supported_dtypes({"2.5.1 and below": ("float16", "float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def expm1(x, name=None): - return ivy.expm1(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("bfloat16", "float32", "float64")}, "paddle" -) -@to_ivy_arrays_and_back -def floor(x, name=None): - return ivy.floor(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def floor_divide(x, y, name=None): - return ivy.floor_divide(x, y) - - -@with_unsupported_dtypes({"2.5.1 and below": "bfloat16"}, "paddle") -@to_ivy_arrays_and_back -def fmax(x, y, name=None): - return ivy.fmax(x, y) - - -@with_unsupported_dtypes({"2.5.1 and below": "bfloat16"}, "paddle") -@to_ivy_arrays_and_back -def fmin(x, y, name=None): - return ivy.fmin(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def frac(x, name=None): - y = ivy.trunc(x) - return ivy.subtract(x, y) - - -@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") -@to_ivy_arrays_and_back -def gcd(x, y, name=None): - return ivy.gcd(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def heaviside(x, y, name=None): - return ivy.heaviside(x, y) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def inner(x, y, name=None): - result = ivy.inner(x, y) - if (x.shape == () and y.shape == (1,)) or (x.shape == (1,) and y.shape == ()): - result = result.reshape((1,)) - elif x.shape == (1,) and y.shape == (1,): - result = result.reshape((1,)) - return result - - -@with_supported_dtypes( - {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def isfinite(x, name=None): - return ivy.isfinite(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def isinf(x, name=None): - return ivy.isinf(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def isnan(x, name=None): - return ivy.isnan(x) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float16", "float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def kron(x, y, name=None): - return ivy.kron(x, y) - - -@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle") -@to_ivy_arrays_and_back -def lcm(x, y, name=None): - return ivy.lcm(x, y) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def lerp(x, y, weight, name=None): - return ivy.lerp(x, y, weight) - - @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back def lerp_(x, y, weight, name=None): return ivy.inplace_update(x, lerp(x, y, weight)) -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def lgamma(x, name=None): - return ivy.lgamma(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def log(x, name=None): - return ivy.log(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def log1p(x, name=None): - return ivy.log1p(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def log2(x, name=None): - return ivy.log2(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def logit(x, eps=None, name=None): - return ivy.logit(x, eps=eps) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def max(x, axis=None, keepdim=False, name=None): - return ivy.max(x, axis=axis, keepdims=keepdim) - - -# maximum -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def maximum(x, y, name=None): - return ivy.maximum(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def min(x, axis=None, keepdim=False, name=None): - return ivy.min(x, axis=axis, keepdims=keepdim) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def minimum(x, y, name=None): - return ivy.minimum(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def mm(input, mat2, name=None): - return ivy.matmul(input, mat2) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def multiply(x, y, name=None): - return ivy.multiply(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def nansum(x, axis=None, dtype=None, name=None): - return ivy.nansum(x, axis=axis, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int8", "int16", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def neg(x, name=None): - return ivy.negative(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def outer(x, y, name=None): - return ivy.outer(x, y) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def pow(x, y, name=None): - return ivy.pow(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def prod(x, axis=None, keepdim=False, dtype=None, name=None): - return ivy.prod(x, axis=axis, keepdims=keepdim, dtype=dtype) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def rad2deg(x, name=None): - return ivy.rad2deg(x) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def reciprocal(x, name=None): - return ivy.reciprocal(x) - - @with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") @to_ivy_arrays_and_back def reciprocal_(x, name=None): return ivy.inplace_update(x, reciprocal(x)) -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def remainder(x, y, name=None): - return ivy.remainder(x, y) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def round(x, name=None): - return ivy.round(x) - - @with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") @to_ivy_arrays_and_back def round_(x, name=None): return ivy.inplace_update(x, round(x)) -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def rsqrt(x, name=None): - return 1 / ivy.sqrt(x) - - @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") def rsqrt_(x, name=None): return ivy.inplace_update(x, reciprocal(sqrt(x))) -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def sgn(x, name=None): - return ivy.sign(x, np_variant=True) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def sign(x, name=None): - return ivy.sign(x, np_variant=False) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def sin(x, name=None): - return ivy.sin(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def sinh(x, name=None): - return ivy.sinh(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def sqrt(x, name=None): - return ivy.sqrt(x) - - @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back def sqrt_(x, name=None): return ivy.inplace_update(x, sqrt(x)) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def square(x, name=None): - return ivy.square(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def stanh(x, scale_a=0.67, scale_b=1.7159, name=None): - # TODO this function will be simplified as soon as the ivy.stanh(x,a,b) is added - exp_ax = ivy.exp(ivy.multiply(scale_a, x)) - exp_minus_ax = ivy.exp(ivy.multiply(-scale_a, x)) - numerator = ivy.subtract(exp_ax, exp_minus_ax) - denominator = ivy.add(exp_ax, exp_minus_ax) - ret = ivy.multiply(scale_b, ivy.divide(numerator, denominator)) - return ret - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def subtract(x, y, name=None): - return ivy.subtract(x, y) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int6")}, "paddle" -) -@to_ivy_arrays_and_back -def take( - x, - index, - mode="raise", - name=None, -): - if mode not in ["raise", "wrap", "clip"]: - raise ValueError( - "'mode' in 'take' should be 'raise', 'wrap', 'clip', but received {}." - .format(mode) - ) - x = ivy.reshape(x, (-1,)) - if mode == "clip": - index = ivy.clip(index, 0, x.shape[-1] - 1) - elif mode == "wrap": - index = ivy.where(index < 0, index % x.shape[-1], index) - index = ivy.where(index >= x.shape[-1], index % x.shape[-1], index) - return ivy.gather(x, index, axis=0) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def tan(x, name=None): - return ivy.tan(x) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def tanh(x, name=None): - return ivy.tanh(x) - - -@with_supported_dtypes( - {"2.4.2 and below": ("float32", "float64", "int32", "int64")}, "paddle" -) -@to_ivy_arrays_and_back -def trunc(x, name=None): - return ivy.trunc(x) diff --git a/ivy/functional/frontends/paddle/tensor/random.py b/ivy/functional/frontends/paddle/tensor/random.py index 570983d131d34..03ca569399bd3 100644 --- a/ivy/functional/frontends/paddle/tensor/random.py +++ b/ivy/functional/frontends/paddle/tensor/random.py @@ -1,7 +1,7 @@ # global +from ..random import * # noqa: F401 import ivy from ivy.func_wrapper import with_supported_dtypes -from ivy.func_wrapper import with_supported_device_and_dtypes, with_unsupported_dtypes from ivy.functional.frontends.paddle.func_wrapper import ( to_ivy_arrays_and_back, ) @@ -16,105 +16,6 @@ def exponential_(x, lam=1.0, name=None): return ivy.multiply(lam, ivy.exp(ivy.multiply(-lam, x))) -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def normal(mean=0.0, std=1.0, shape=None, name=None): - return ivy.random_normal(mean=mean, std=std, shape=shape) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def poisson(x, name=None): - return ivy.poisson(x, shape=None, device=None, dtype=None, seed=None, out=None) - - -@with_supported_device_and_dtypes( - { - "2.5.1 and above": { - "cpu": ( - "bfloat16", - "float32", - "float64", - ), - "gpu": ( - "bfloat16", - "float16", - "float32", - "float64", - ), - }, - "2.4.2 and below": { - "cpu": ( - "float32", - "float64", - ), - "gpu": ( - "float16", - "float32", - "float64", - ), - }, - }, - "paddle", -) -@to_ivy_arrays_and_back -def rand(shape, dtype=None, name=None): - return ivy.random_uniform(low=0.0, high=1.0, shape=shape, dtype=dtype, seed=None) - - -@to_ivy_arrays_and_back -def randint(low=0, high=None, shape=[1], dtype=None, name=None): - return ivy.randint(low, high, shape=shape, dtype=dtype) - - -@with_unsupported_dtypes( - {"2.5.1 and below": ("int16", "float16", "bfloat16", "uint8")}, - "paddle", -) -@to_ivy_arrays_and_back -def randint_like(x, low=0, high=None, dtype=None, name=None): - if high is None: - high = low - low = 0 - if high <= 0: - raise ivy.exceptions.IvyError( - "If high is None, low must be greater than 0, but received low = 0." - ) - return ivy.randint(low, high, shape=x.shape, dtype=dtype, seed=None) - - -def randn(shape, dtype=None, name=None): - if dtype not in ["float32", "float64"]: - raise ivy.exceptions.IvyError( - "Unsupported dtype for randn, only float32 and float64 are supported, " - ) - return ivy.random_normal(shape=shape, dtype=dtype, seed=None) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def standard_normal(shape, dtype=None, name=None): - return ivy.random_normal(mean=0, std=1, shape=shape, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64")}, - "paddle", -) -@to_ivy_arrays_and_back -def uniform(shape, dtype=None, min=-1.0, max=1.0, seed=0, name=None): - return ivy.random_uniform(low=min, high=max, shape=shape, dtype=dtype, seed=seed) - - @with_supported_dtypes( {"2.5.1 and below": ("float32", "float64")}, "paddle", diff --git a/ivy/functional/frontends/paddle/tensor/search.py b/ivy/functional/frontends/paddle/tensor/search.py index 205f2b6d1e5b7..9fde09978f216 100644 --- a/ivy/functional/frontends/paddle/tensor/search.py +++ b/ivy/functional/frontends/paddle/tensor/search.py @@ -1,98 +1,2 @@ # global -import ivy -from ivy.func_wrapper import with_supported_dtypes -from ivy.functional.frontends.paddle.func_wrapper import ( - to_ivy_arrays_and_back, -) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, - "paddle", -) -@to_ivy_arrays_and_back -def argmax(x, /, *, axis=None, keepdim=False, dtype="int64", name=None): - return ivy.argmax(x, axis=axis, keepdims=keepdim, dtype=dtype) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, - "paddle", -) -@to_ivy_arrays_and_back -def argmin(x, /, *, axis=None, keepdim=False, dtype="int64", name=None): - return ivy.argmin(x, axis=axis, keepdims=keepdim, dtype=dtype) - - -@with_supported_dtypes( - {"2.4.2 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, - "paddle", -) -@to_ivy_arrays_and_back -def argsort(x, /, *, axis=-1, descending=False, name=None): - return ivy.argsort(x, axis=axis, descending=descending) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def masked_select(x, mask, name=None): - return ivy.flatten(x[mask]) - - -@with_supported_dtypes( - {"2.4.2 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, - "paddle", -) -@to_ivy_arrays_and_back -def nonzero(input, /, *, as_tuple=False): - ret = ivy.nonzero(input) - if as_tuple is False: - ret = ivy.matrix_transpose(ivy.stack(ret)) - return ret - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def searchsorted(sorted_sequence, values, out_int32=False, right=False, name=None): - if right: - side = "right" - else: - side = "left" - ret = ivy.searchsorted(sorted_sequence, values, side=side) - if out_int32: - ret = ivy.astype(ret, "int32") - return ret - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def sort(x, /, *, axis=-1, descending=False, name=None): - return ivy.sort(x, axis=axis, descending=descending) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def topk(x, k, axis=None, largest=True, sorted=True, name=None): - return ivy.top_k(x, k, axis=axis, largest=largest, sorted=sorted) - - -# where -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def where(condition, x, y, name=None): - return ivy.where(condition, x, y) +from ..search import * # noqa: F401 diff --git a/ivy/functional/frontends/paddle/tensor/stat.py b/ivy/functional/frontends/paddle/tensor/stat.py index bfee9e9d65d2c..4e0771fbae0b7 100644 --- a/ivy/functional/frontends/paddle/tensor/stat.py +++ b/ivy/functional/frontends/paddle/tensor/stat.py @@ -1,77 +1,2 @@ # global -import ivy -from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes -from ivy.functional.frontends.paddle.func_wrapper import ( - to_ivy_arrays_and_back, -) - - -@with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") -@to_ivy_arrays_and_back -def mean(input, axis=None, keepdim=False, out=None): - ret = ivy.mean(input, axis=axis, keepdims=keepdim, out=out) - ret = ivy.expand_dims(ret, axis=-1) if ret.ndim == 0 else ret - return ret - - -@with_supported_dtypes( - {"2.5.1 and below": ("bool", "float16", "float32", "float64", "int32", "int64")}, - "paddle", -) -@to_ivy_arrays_and_back -def median(x, axis=None, keepdim=False, name=None): - x = ( - ivy.astype(x, ivy.float64) - if ivy.dtype(x) == "float64" - else ivy.astype(x, ivy.float32) - ) - return ivy.median(x, axis=axis, keepdims=keepdim) - - -@with_supported_dtypes( - {"2.5.0 and below": ("float16", "float32", "float64", "uint16")}, - "paddle", -) -@to_ivy_arrays_and_back -def nanmedian(x, axis=None, keepdim=True, name=None): - x = ( - ivy.astype(x, ivy.float64) - if ivy.dtype(x) == "float64" - else ivy.astype(x, ivy.float32) - ) - return ivy.median(x, axis=axis, keepdims=keepdim) - - -@with_unsupported_dtypes({"2.5.1 and below": ("complex", "int8")}, "paddle") -@to_ivy_arrays_and_back -def numel(x, name=None): - prod = ivy.prod(x.size, dtype=ivy.int64) - try: - length = len(x) - except (ValueError, TypeError): - length = 1 # if 0 dimensional tensor with 1 element - return ivy.array(prod if prod > 0 else ivy.array(length, dtype=ivy.int64)) - - -@with_supported_dtypes( - {"2.5.1 and below": ("float32", "float64", "uint16")}, - "paddle", -) -@to_ivy_arrays_and_back -def std(x, axis=None, unbiased=True, keepdim=False, name=None): - x = ( - ivy.astype(x, ivy.float64) - if ivy.dtype(x) == "float64" - else ivy.astype(x, ivy.float32) - ) - return ivy.std(x, axis=axis, correction=int(unbiased), keepdims=keepdim) - - -@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") -@to_ivy_arrays_and_back -def var(x, axis=None, unbiased=True, keepdim=False, name=None): - if unbiased: - correction = 1 - else: - correction = 0 - return ivy.var(x, axis=axis, correction=correction, keepdims=keepdim) +from ..stat import * # noqa: F401 From 345f3a30d013e065ef15074223114cf0b786ce29 Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Fri, 8 Sep 2023 08:00:29 -0400 Subject: [PATCH 066/127] Update setup_xla.sh --- ivy/engines/setup_xla.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ivy/engines/setup_xla.sh b/ivy/engines/setup_xla.sh index cc15305abce3d..632b5253dff8c 100644 --- a/ivy/engines/setup_xla.sh +++ b/ivy/engines/setup_xla.sh @@ -5,9 +5,10 @@ mkdir xla_build && virtualenv xla_build source xla_build/bin/activate wget https://github.com/elixir-nx/xla/releases/download/v0.4.4/xla_extension-x86_64-linux-gnu-cuda111.tar.gz tar -xzvf xla_extension-x86_64-linux-gnu-cuda111.tar.gz -curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" +pip install maturin +apt-get update apt install llvm-dev libclang-dev clang export LIBCLANG_PATH=/usr/local/lib -pip install maturin -maturin develop +# maturin develop From c74c52989aa6ff0baf8099a10e6ed5731cdd6e0a Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:55:39 +0100 Subject: [PATCH 067/127] fix(frontend-paddle): Moves tests according to the namespace correction in 9e62a00 --- .../{test_tensor => }/test_attribute.py | 12 +- .../{test_tensor => }/test_creation.py | 0 .../{test_tensor => }/test_linalg.py | 31 +- .../{test_tensor => }/test_logic.py | 0 .../test_paddle/test_manipulation.py | 758 ++++++ .../test_frontends/test_paddle/test_math.py | 2292 ++++++++++++++++ .../test_frontends/test_paddle/test_random.py | 273 ++ .../{test_tensor => }/test_search.py | 0 .../{test_tensor => }/test_stat.py | 0 .../test_paddle/test_tensor/test_einsum.py | 0 .../test_tensor/test_manipulation.py | 745 +----- .../test_paddle/test_tensor/test_math.py | 2356 +---------------- .../test_paddle/test_tensor/test_random.py | 267 -- 13 files changed, 3379 insertions(+), 3355 deletions(-) rename ivy_tests/test_ivy/test_frontends/test_paddle/{test_tensor => }/test_attribute.py (92%) rename ivy_tests/test_ivy/test_frontends/test_paddle/{test_tensor => }/test_creation.py (100%) rename ivy_tests/test_ivy/test_frontends/test_paddle/{test_tensor => }/test_linalg.py (96%) rename ivy_tests/test_ivy/test_frontends/test_paddle/{test_tensor => }/test_logic.py (100%) create mode 100644 ivy_tests/test_ivy/test_frontends/test_paddle/test_manipulation.py create mode 100644 ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py create mode 100644 ivy_tests/test_ivy/test_frontends/test_paddle/test_random.py rename ivy_tests/test_ivy/test_frontends/test_paddle/{test_tensor => }/test_search.py (100%) rename ivy_tests/test_ivy/test_frontends/test_paddle/{test_tensor => }/test_stat.py (100%) delete mode 100644 ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_einsum.py diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_attribute.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_attribute.py similarity index 92% rename from ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_attribute.py rename to ivy_tests/test_ivy/test_frontends/test_paddle/test_attribute.py index f0a471073ab0e..c23662391620c 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_attribute.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_attribute.py @@ -6,7 +6,7 @@ @handle_frontend_test( - fn_tree="paddle.tensor.attribute.imag", + fn_tree="paddle.imag", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), ), @@ -33,7 +33,7 @@ def test_paddle_imag( @handle_frontend_test( - fn_tree="paddle.tensor.attribute.is_complex", + fn_tree="paddle.is_complex", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), ), @@ -60,7 +60,7 @@ def test_paddle_is_complex( @handle_frontend_test( - fn_tree="paddle.tensor.attribute.is_floating_point", + fn_tree="paddle.is_floating_point", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), ), @@ -87,7 +87,7 @@ def test_paddle_is_floating_point( @handle_frontend_test( - fn_tree="paddle.tensor.attribute.is_integer", + fn_tree="paddle.is_integer", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), ), @@ -114,7 +114,7 @@ def test_paddle_is_integer( @handle_frontend_test( - fn_tree="paddle.tensor.attribute.rank", + fn_tree="paddle.rank", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), ), @@ -141,7 +141,7 @@ def test_paddle_rank( @handle_frontend_test( - fn_tree="paddle.tensor.attribute.real", + fn_tree="paddle.real", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), ), diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_creation.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_creation.py similarity index 100% rename from ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_creation.py rename to ivy_tests/test_ivy/test_frontends/test_paddle/test_creation.py diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_linalg.py similarity index 96% rename from ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py rename to ivy_tests/test_ivy/test_frontends/test_paddle/test_linalg.py index 9712e8fede1d4..ceff4a4f94323 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_linalg.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_linalg.py @@ -288,7 +288,6 @@ def test_paddle_bincount( min_value=-10, max_value=10, ), - aliases=["paddle.tensor.linalg.bmm"], test_with_out=st.just(False), ) def test_paddle_bmm( @@ -315,7 +314,7 @@ def test_paddle_bmm( # cholesky @handle_frontend_test( - fn_tree="paddle.tensor.linalg.cholesky", + fn_tree="paddle.cholesky", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), min_value=0, @@ -350,7 +349,7 @@ def test_paddle_cholesky( @handle_frontend_test( - fn_tree="paddle.tensor.linalg.cholesky_solve", + fn_tree="paddle.cholesky_solve", x=_get_second_matrix(), y=_get_paddle_cholesky_matrix(), test_with_out=st.just(False), @@ -383,7 +382,7 @@ def test_paddle_cholesky_solve( @handle_frontend_test( - fn_tree="paddle.tensor.linalg.cond", + fn_tree="paddle.cond", dtype_and_x=_get_dtype_and_matrix_non_singular(dtypes=["float32", "float64"]), p=st.sampled_from([None, "fro", "nuc", np.inf, -np.inf, 1, -1, 2, -2]), test_with_out=st.just(False), @@ -416,7 +415,7 @@ def test_paddle_cond( # cross @handle_frontend_test( - fn_tree="paddle.tensor.linalg.cross", + fn_tree="paddle.cross", dtype_x_y_axis=dtype_value1_value2_axis( available_dtypes=helpers.get_dtypes("valid"), min_num_dims=1, @@ -490,7 +489,7 @@ def test_paddle_dist( # dot @handle_frontend_test( - fn_tree="paddle.tensor.linalg.dot", + fn_tree="paddle.dot", dtype_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), num_arrays=2, @@ -524,7 +523,7 @@ def test_paddle_dot( # eig @handle_frontend_test( - fn_tree="paddle.tensor.linalg.eig", + fn_tree="paddle.eig", dtype_and_input=_get_dtype_and_square_matrix(real_and_complex_only=True), test_with_out=st.just(False), ) @@ -571,7 +570,7 @@ def test_paddle_eig( # eigh @handle_frontend_test( - fn_tree="paddle.tensor.linalg.eigh", + fn_tree="paddle.eigh", dtype_and_input=_get_dtype_and_square_matrix(real_and_complex_only=True), UPLO=st.sampled_from(("L", "U")), test_with_out=st.just(False), @@ -621,7 +620,7 @@ def test_paddle_eigh( # eigvals @handle_frontend_test( - fn_tree="paddle.tensor.linalg.eigvals", + fn_tree="paddle.eigvals", dtype_x=_get_dtype_and_square_matrix(real_and_complex_only=True), test_with_out=st.just(False), ) @@ -653,7 +652,7 @@ def test_paddle_eigvals( # eigvalsh @handle_frontend_test( - fn_tree="paddle.tensor.linalg.eigvalsh", + fn_tree="paddle.eigvalsh", dtype_x=_get_dtype_and_square_matrix(real_and_complex_only=True), UPLO=st.sampled_from(("L", "U")), test_with_out=st.just(False), @@ -697,7 +696,6 @@ def test_paddle_eigvalsh( min_value=-10, max_value=10, ), - aliases=["paddle.tensor.linalg.matmul"], transpose_x=st.booleans(), transpose_y=st.booleans(), test_with_out=st.just(False), @@ -730,7 +728,7 @@ def test_paddle_matmul( # matrix_power @handle_frontend_test( - fn_tree="paddle.tensor.linalg.matrix_power", + fn_tree="paddle.matrix_power", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("float"), min_value=0, @@ -764,7 +762,7 @@ def test_paddle_matrix_power( # norm @handle_frontend_test( - fn_tree="paddle.tensor.linalg.norm", + fn_tree="paddle.norm", dtype_values_axis=_dtype_values_axis(), keepdims=st.booleans(), test_with_out=st.just(False), @@ -797,7 +795,7 @@ def test_paddle_norm( # pinv @handle_frontend_test( - fn_tree="paddle.tensor.linalg.pinv", + fn_tree="paddle.pinv", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("float"), min_num_dims=2, @@ -842,7 +840,7 @@ def test_paddle_pinv( # qr @handle_frontend_test( - fn_tree="paddle.tensor.linalg.qr", + fn_tree="paddle.qr", dtype_and_x=_get_dtype_and_matrix(), mode=st.sampled_from(("reduced", "complete")), test_with_out=st.just(False), @@ -873,8 +871,7 @@ def test_paddle_qr( # solve @handle_frontend_test( - fn_tree="paddle.tensor.linalg.solve", - aliases=["paddle.linalg.solve"], + fn_tree="paddle.solve", x=_get_first_matrix(), y=_get_second_matrix(), test_with_out=st.just(False), diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_logic.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_logic.py similarity index 100% rename from ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_logic.py rename to ivy_tests/test_ivy/test_frontends/test_paddle/test_logic.py diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_manipulation.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_manipulation.py new file mode 100644 index 0000000000000..b42f5286b70fc --- /dev/null +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_manipulation.py @@ -0,0 +1,758 @@ +# global +from hypothesis import strategies as st +import math + +# local +import ivy_tests.test_ivy.helpers as helpers +from ivy_tests.test_ivy.helpers import handle_frontend_test +from ivy_tests.test_ivy.test_functional.test_experimental.test_core.test_manipulation import ( # noqa + _get_dtype_values_k_axes_for_rot90, +) +from ivy_tests.test_ivy.test_frontends.test_torch.test_miscellaneous_ops import ( + _get_repeat_interleaves_args, +) + + +# --- Helpers --- # +# --------------- # + + +# stack +@st.composite +def _arrays_axis_n_dtypes(draw): + num_dims = draw(st.shared(helpers.ints(min_value=2, max_value=5), key="num_dims")) + num_arrays = draw( + st.shared(helpers.ints(min_value=2, max_value=4), key="num_arrays") + ) + common_shape = draw( + helpers.list_of_size( + x=helpers.ints(min_value=2, max_value=3), + size=num_dims - 1, + ) + ) + axis = draw(st.sampled_from(list(range(num_dims)))) + xs = [] + input_dtypes = draw( + helpers.array_dtypes(available_dtypes=draw(helpers.get_dtypes("numeric"))) + ) + dtype = draw(st.sampled_from(input_dtypes)) + for _ in range(num_arrays): + x = draw( + helpers.array_values( + shape=common_shape, + dtype=dtype, + ) + ) + xs.append(x) + input_dtypes = [dtype] * len(input_dtypes) + return xs, input_dtypes, axis + + +# concat +@st.composite +def _arrays_idx_n_dtypes(draw): + num_dims = draw(st.shared(helpers.ints(min_value=1, max_value=4), key="num_dims")) + num_arrays = draw( + st.shared(helpers.ints(min_value=2, max_value=4), key="num_arrays") + ) + common_shape = draw( + helpers.list_of_size( + x=helpers.ints(min_value=2, max_value=3), + size=num_dims - 1, + ) + ) + unique_idx = draw(helpers.ints(min_value=0, max_value=num_dims - 1)) + unique_dims = draw( + helpers.list_of_size( + x=helpers.ints(min_value=2, max_value=3), + size=num_arrays, + ) + ) + xs = [] + input_dtypes = draw( + helpers.array_dtypes(available_dtypes=draw(helpers.get_dtypes("valid"))) + ) + dtype = draw(st.sampled_from(input_dtypes)) + for ud in unique_dims: + x = draw( + helpers.array_values( + shape=common_shape[:unique_idx] + [ud] + common_shape[unique_idx:], + dtype=dtype, + ) + ) + xs.append(x) + input_dtypes = [dtype] * len(input_dtypes) + return xs, input_dtypes, unique_idx + + +@st.composite +def _broadcast_to_helper(draw): + dtype_and_x = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=1, + max_num_dims=6, + ) + ) + + dtype, x = dtype_and_x + input_shape = x[0].shape + + max_num_dims = 6 - len(input_shape) + shape = draw(helpers.get_shape(max_num_dims=max_num_dims)) + input_shape + + return dtype, x, shape + + +# flip +@st.composite +def _dtype_x_axis(draw, **kwargs): + dtype, x, shape = draw(helpers.dtype_and_values(**kwargs, ret_shape=True)) + axis = draw( + st.lists( + helpers.ints(min_value=0, max_value=len(shape) - 1), + min_size=len(shape), + max_size=len(shape), + unique=True, + ) + ) + return dtype, x, axis + + +# expand +@st.composite +def _expand_helper(draw): + dtype_and_x = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=1, + max_num_dims=6, + ) + ) + + dtype, x = dtype_and_x + input_shape = x[0].shape + + max_num_dims = 6 - len(input_shape) + shape = draw(helpers.get_shape(max_num_dims=max_num_dims)) + input_shape + + return dtype, x, shape + + +@st.composite +def _gather_helper(draw): + dtype_and_param = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=1, + max_num_dims=6, + ) + ) + + dtype_and_indices = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=1, + max_num_dims=6, + ) + ) + dtype, param = dtype_and_param + dtype, indices = dtype_and_indices + return dtype, param, indices + + +# split +@st.composite +def _split_helper(draw): + dtypes, values, shape = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=2, + max_num_dims=4, + min_dim_size=2, + max_dim_size=4, + ret_shape=True, + ) + ) + axis = draw(st.sampled_from(range(len(shape)))) + num_eles = shape[axis] + splits = [i for i in range(1, num_eles + 1) if num_eles % i == 0] + num_splits = draw(st.sampled_from(splits)) + return dtypes, values, num_splits, axis + + +# squeeze +@st.composite +def _squeeze_helper(draw): + shape = draw(st.shared(helpers.get_shape(), key="value_shape")) + valid_axes = [] + for index, axis in enumerate(shape): + if axis == 1: + valid_axes.append(index) + valid_axes.insert(0, None) + + return draw(st.sampled_from(valid_axes)) + + +# tile +@st.composite +def _tile_helper(draw): + dtype, x, shape = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_num_dims=1, + max_num_dims=4, + min_dim_size=2, + max_dim_size=3, + ret_shape=True, + ) + ) + repeats = draw( + helpers.list_of_size( + x=helpers.ints(min_value=1, max_value=3), + size=len(shape), + ) + ) + return dtype, x, repeats + + +# Helpers # +# ------ # + + +@st.composite +def dtypes_x_reshape(draw): + shape = draw(helpers.get_shape(min_num_dims=1)) + dtypes, x = draw( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("numeric"), + shape=shape, + ) + ) + shape = draw( + helpers.get_shape(min_num_dims=1).filter( + lambda s: math.prod(s) == math.prod(shape) + ) + ) + return dtypes, x, shape + + +# --- Main --- # +# ------------ # + + +# abs +@handle_frontend_test( + fn_tree="paddle.abs", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_abs( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +@handle_frontend_test( + fn_tree="paddle.broadcast_to", + dtype_x_and_shape=_broadcast_to_helper(), +) +def test_paddle_broadcast_to( + *, + dtype_x_and_shape, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + input_dtype, x, shape = dtype_x_and_shape + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + shape=shape, + ) + + +# cast +@handle_frontend_test( + fn_tree="paddle.cast", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), + dtype=helpers.get_dtypes("valid", full=False), +) +def test_paddle_cast( + *, + dtype_and_x, + dtype, + on_device, + backend_fw, + fn_tree, + frontend, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + dtype=dtype[0], + ) + + +@handle_frontend_test( + fn_tree="paddle.concat", + xs_n_input_dtypes_n_unique_idx=_arrays_idx_n_dtypes(), + test_with_out=st.just(False), +) +def test_paddle_concat( + *, + xs_n_input_dtypes_n_unique_idx, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + xs, input_dtypes, unique_idx = xs_n_input_dtypes_n_unique_idx + helpers.test_frontend_function( + input_dtypes=input_dtypes, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=xs, + axis=unique_idx, + ) + + +@handle_frontend_test( + fn_tree="paddle.expand", + dtype_x_and_shape=_expand_helper(), +) +def test_paddle_expand( + *, + dtype_x_and_shape, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + input_dtype, x, shape = dtype_x_and_shape + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + shape=shape, + ) + + +@handle_frontend_test( + fn_tree="paddle.flip", + dtype_x_axis=_dtype_x_axis( + available_dtypes=helpers.get_dtypes("numeric"), + min_num_dims=1, + min_dim_size=1, + ), + test_with_out=st.just(False), +) +def test_paddle_flip( + *, + dtype_x_axis, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x, axis = dtype_x_axis + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + ) + + +@handle_frontend_test( + fn_tree="paddle.gather", + dtype_param_and_indices=_gather_helper(), +) +def test_paddle_gather( + *, + dtype_param_and_indices, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, param, indices = dtype_param_and_indices + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + param=param[0], + indices=indices[0], + ) + + +# repeat_interleave +@handle_frontend_test( + fn_tree="paddle.repeat_interleave", + dtype_values_repeats_axis_output_size=_get_repeat_interleaves_args( + available_dtypes=helpers.get_dtypes("numeric"), + valid_axis=True, + max_num_dims=4, + max_dim_size=4, + ), +) +def test_paddle_repeat_interleave( + *, + dtype_values_repeats_axis_output_size, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + dtype, values, repeats, axis, _ = dtype_values_repeats_axis_output_size + + helpers.test_frontend_function( + input_dtypes=[dtype[0][0], dtype[1][0]], + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=values[0], + repeats=repeats[0], + axis=axis, + ) + + +# Tests # +# ----- # + + +# reshape +@handle_frontend_test( + fn_tree="paddle.reshape", + dtypes_x_reshape=dtypes_x_reshape(), +) +def test_paddle_reshape( + *, + dtypes_x_reshape, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x, shape = dtypes_x_reshape + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + shape=shape, + ) + + +# roll +@handle_frontend_test( + fn_tree="paddle.roll", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("numeric"), + min_num_dims=2, + min_dim_size=2, + ), + shift=helpers.ints(min_value=1, max_value=10), + axis=helpers.ints(min_value=-1, max_value=1), + test_with_out=st.just(False), +) +def test_paddle_roll( + *, + dtype_and_x, + shift, + axis, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + shifts=shift, + axis=axis, + ) + + +# rot90 +@handle_frontend_test( + fn_tree="paddle.rot90", + dtype_m_k_axes=_get_dtype_values_k_axes_for_rot90( + available_dtypes=helpers.get_dtypes(kind="valid"), + min_num_dims=1, + max_num_dims=5, + min_dim_size=1, + max_dim_size=10, + ), +) +def test_paddle_rot90( + *, + dtype_m_k_axes, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, m, k, axes = dtype_m_k_axes + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=m, + k=k, + axes=tuple(axes), + ) + + +@handle_frontend_test( + fn_tree="paddle.split", + dt_x_num_splits_axis=_split_helper(), + test_with_out=st.just(False), +) +def test_paddle_split( + *, + dt_x_num_splits_axis, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtypes, x, num_splits, axis = dt_x_num_splits_axis + helpers.test_frontend_function( + input_dtypes=input_dtypes, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + num_or_sections=num_splits, + axis=axis, + ) + + +@handle_frontend_test( + fn_tree="paddle.squeeze", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + shape=st.shared(helpers.get_shape(), key="value_shape"), + ), + axis=_squeeze_helper(), +) +def test_paddle_squeeze( + *, + dtype_and_x, + axis, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + ) + + +@handle_frontend_test( + fn_tree="paddle.stack", + _arrays_n_dtypes_axis=_arrays_axis_n_dtypes(), + test_with_out=st.just(False), +) +def test_paddle_stack( + *, + _arrays_n_dtypes_axis, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + xs, input_dtypes, axis = _arrays_n_dtypes_axis + helpers.test_frontend_function( + input_dtypes=input_dtypes, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=xs, + axis=axis, + ) + + +# take_along_axis +@handle_frontend_test( + fn_tree="paddle.take_along_axis", + dtype_indices_axis=helpers.array_indices_axis( + array_dtypes=helpers.get_dtypes(kind="valid"), + indices_dtypes=["int64"], + min_num_dims=1, + max_num_dims=5, + min_dim_size=1, + max_dim_size=10, + indices_same_dims=True, + ), +) +def test_paddle_take_along_axis( + *, + dtype_indices_axis, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtypes, value, indices, axis, _ = dtype_indices_axis + helpers.test_frontend_function( + input_dtypes=input_dtypes, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + arr=value, + indices=indices, + axis=axis, + ) + + +@handle_frontend_test( + fn_tree="paddle.tile", + dt_x_repeats=_tile_helper(), + test_with_out=st.just(False), +) +def test_paddle_tile( + *, + dt_x_repeats, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtypes, x, repeats = dt_x_repeats + helpers.test_frontend_function( + input_dtypes=input_dtypes, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + repeat_times=repeats, + ) + + +# unstack +@handle_frontend_test( + fn_tree="paddle.unstack", + dtypes_values=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("numeric"), + min_num_dims=2, + max_num_dims=2, + max_dim_size=1, + ), + number_positional_args=st.just(1), + axis=st.integers(-1, 0), + test_with_out=st.just(False), +) +def test_paddle_unstack( + *, + dtypes_values, + axis, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + x_dtype, x = dtypes_values + axis = axis + helpers.test_frontend_function( + input_dtypes=x_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py new file mode 100644 index 0000000000000..eb1dbccffaba7 --- /dev/null +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py @@ -0,0 +1,2292 @@ +# global +from hypothesis import strategies as st + +# local +import ivy_tests.test_ivy.helpers as helpers +from ivy_tests.test_ivy.helpers import handle_frontend_test +from ivy_tests.test_ivy.test_frontends.test_torch.test_blas_and_lapack_ops import ( + _get_dtype_input_and_matrices, + _get_dtype_and_3dbatch_matrices, +) + + +# --- Helpers --- # +# --------------- # + + +@st.composite +def _test_paddle_take_helper(draw): + mode = draw(st.sampled_from(["raise", "clip", "wrap"])) + + safe_bounds = mode == "raise" + + dtypes, xs, indices, _, _ = draw( + helpers.array_indices_axis( + array_dtypes=helpers.get_dtypes("float_and_integer"), + indices_dtypes=["int32", "int64"], + valid_bounds=safe_bounds, + ) + ) + + return dtypes, xs, indices, mode + + +# --- Main --- # +# ------------ # + + +# abs +@handle_frontend_test( + fn_tree="paddle.abs", + dtype_and_x=helpers.dtype_and_values(available_dtypes=helpers.get_dtypes("float")), +) +def test_paddle_abs( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# acos +@handle_frontend_test( + fn_tree="paddle.acos", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_acos( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-2, + x=x[0], + ) + + +# acosh +@handle_frontend_test( + fn_tree="paddle.acosh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_acosh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-2, + x=x[0], + ) + + +# add +@handle_frontend_test( + fn_tree="paddle.add", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_add( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# addmm +@handle_frontend_test( + fn_tree="paddle.addmm", + dtype_input_xy=_get_dtype_and_3dbatch_matrices(with_input=True, input_3d=True), + beta=st.floats( + min_value=-5, + max_value=5, + allow_nan=False, + allow_subnormal=False, + allow_infinity=False, + ), + alpha=st.floats( + min_value=-5, + max_value=5, + allow_nan=False, + allow_subnormal=False, + allow_infinity=False, + ), +) +def test_paddle_addmm( + *, + dtype_input_xy, + beta, + alpha, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, input, x, y = dtype_input_xy + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + input=input[0], + x=x[0], + y=y[0], + beta=beta, + alpha=alpha, + ) + + +# amax +@handle_frontend_test( + fn_tree="paddle.amax", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=2, + allow_inf=False, + shared_dtype=True, + ), +) +def test_paddle_amax( + *, + dtype_and_x, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + ) + + +# amin +@handle_frontend_test( + fn_tree="paddle.amin", + dtype_and_x=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("valid"), + valid_axis=True, + ), + keepdim=st.booleans(), +) +def test_paddle_amin( + *, + dtype_and_x, + keepdim, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + input_dtype, x, axis = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + axis=axis, + keepdim=keepdim, + ) + + +@handle_frontend_test( + fn_tree="paddle.angle", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=["float64", "complex64", "complex128"], + ), +) +def test_paddle_angle( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# any +@handle_frontend_test( + fn_tree="paddle.any", + dtype_and_x=helpers.dtype_values_axis( + available_dtypes=["bool"], + valid_axis=True, + allow_neg_axes=True, + force_int_axis=True, + min_num_dims=1, + ), +) +def test_paddle_any( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x, axis = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + backend_to_test=backend_fw, + x=x[0], + axis=axis, + keepdim=False, + ) + + +# asin +@handle_frontend_test( + fn_tree="paddle.asin", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_asin( + *, + dtype_and_x, + frontend, + test_flags, + fn_tree, + backend_fw, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# asinh +@handle_frontend_test( + fn_tree="paddle.asinh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_asinh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-2, + x=x[0], + ) + + +# atan +@handle_frontend_test( + fn_tree="paddle.atan", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_atan( + *, + dtype_and_x, + frontend, + test_flags, + fn_tree, + backend_fw, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# atan2 +@handle_frontend_test( + fn_tree="paddle.atan2", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_atan2( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# atanh +@handle_frontend_test( + fn_tree="paddle.atanh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_atanh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# ceil +@handle_frontend_test( + fn_tree="paddle.ceil", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_ceil( + *, + dtype_and_x, + frontend, + test_flags, + fn_tree, + backend_fw, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# conj +@handle_frontend_test( + fn_tree="paddle.conj", + dtype_and_input=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("numeric"), + ), +) +def test_paddle_conj( + *, + dtype_and_input, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_input + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# cos +@handle_frontend_test( + fn_tree="paddle.cos", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_cos( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# cosh +@handle_frontend_test( + fn_tree="paddle.cosh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_cosh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-2, + x=x[0], + ) + + +# cumprod +@handle_frontend_test( + fn_tree="paddle.cumprod", + dtype_x_axis=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("valid"), + valid_axis=True, + force_int_axis=True, + min_num_dims=1, + min_value=-5, + max_value=5, + ), +) +def test_paddle_cumprod( + *, + dtype_x_axis, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x, axis = dtype_x_axis + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + dim=axis, + ) + + +# deg2rad +@handle_frontend_test( + fn_tree="paddle.deg2rad", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_deg2rad( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# diff +@handle_frontend_test( + fn_tree="paddle.diff", + dtype_n_x_n_axis=helpers.dtype_values_axis( + available_dtypes=st.shared(helpers.get_dtypes("valid"), key="dtype"), + min_num_dims=1, + valid_axis=True, + force_int_axis=True, + ), + n=st.integers(min_value=1, max_value=1), + dtype_prepend=helpers.dtype_and_values( + available_dtypes=st.shared(helpers.get_dtypes("valid"), key="dtype"), + min_num_dims=1, + max_num_dims=1, + ), + dtype_append=helpers.dtype_and_values( + available_dtypes=st.shared(helpers.get_dtypes("valid"), key="dtype"), + min_num_dims=1, + max_num_dims=1, + ), +) +def test_paddle_diff( + *, + dtype_n_x_n_axis, + n, + dtype_prepend, + dtype_append, + test_flags, + frontend, + backend_fw, + fn_tree, + on_device, +): + input_dtype, x, axis = dtype_n_x_n_axis + _, prepend = dtype_prepend + _, append = dtype_append + helpers.test_frontend_function( + input_dtypes=input_dtype, + test_flags=test_flags, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + n=n, + axis=axis, + prepend=prepend[0], + append=append[0], + ) + + +# digamma +@handle_frontend_test( + fn_tree="paddle.digamma", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + safety_factor_scale="log", + ), +) +def test_paddle_digamma( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-4, + x=x[0], + ) + + +# divide +@handle_frontend_test( + fn_tree="paddle.divide", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_divide( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# erf +@handle_frontend_test( + fn_tree="paddle.erf", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_erf( + *, + dtype_and_x, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# exp +@handle_frontend_test( + fn_tree="paddle.exp", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_exp( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# expm1 +@handle_frontend_test( + fn_tree="paddle.expm1", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_expm1( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# floor +@handle_frontend_test( + fn_tree="paddle.floor", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_floor( + *, + dtype_and_x, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# floor_divide +@handle_frontend_test( + fn_tree="paddle.floor_divide", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_value=-10, + max_value=10, + num_arrays=2, + allow_inf=False, + shared_dtype=True, + ), +) +def test_paddle_floor_divide( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + atol=1e-5, + ) + + +@handle_frontend_test( + fn_tree="paddle.fmax", + dtypes_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), num_arrays=2, shared_dtype=True + ), +) +def test_paddle_fmax( + *, + dtypes_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtypes_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +@handle_frontend_test( + fn_tree="paddle.fmin", + dtypes_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), num_arrays=2, shared_dtype=True + ), +) +def test_paddle_fmin( + *, + dtypes_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtypes_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# frac +@handle_frontend_test( + fn_tree="paddle.frac", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=1, + max_value=1e6, + min_value=-1e6, + ), +) +def test_paddle_frac( + *, + dtype_and_x, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# gcd +@handle_frontend_test( + fn_tree="paddle.gcd", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_value=-100, + max_value=100, + min_num_dims=1, + min_dim_size=1, + num_arrays=2, + shared_dtype=True, + ), +) +def test_paddle_gcd( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# heaviside +@handle_frontend_test( + fn_tree="paddle.heaviside", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_heaviside( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# inner +@handle_frontend_test( + fn_tree="paddle.inner", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + min_value=-10, + max_value=10, + num_arrays=2, + shared_dtype=True, + ), +) +def test_paddle_inner( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# isfinite +@handle_frontend_test( + fn_tree="paddle.isfinite", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_isfinite( + *, + dtype_and_x, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# isinf +@handle_frontend_test( + fn_tree="paddle.isinf", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_isinf( + *, + dtype_and_x, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# isnan +@handle_frontend_test( + fn_tree="paddle.isnan", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_isnan( + *, + dtype_and_x, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# kron +@handle_frontend_test( + fn_tree="paddle.kron", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + shared_dtype=True, + ), +) +def test_paddle_kron( + *, + dtype_and_x, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# lcm +@handle_frontend_test( + fn_tree="paddle.lcm", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=2, + min_num_dims=1, + safety_factor_scale="log", + large_abs_safety_factor=2, + shared_dtype=True, + ), +) +def test_paddle_lcm( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# lerp +@handle_frontend_test( + fn_tree="paddle.lerp", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=3, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_lerp( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + weight=x[2], + ) + + +# lgamma +@handle_frontend_test( + fn_tree="paddle.lgamma", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + safety_factor_scale="log", + ), +) +def test_paddle_lgamma( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-4, + x=x[0], + ) + + +# log +@handle_frontend_test( + fn_tree="paddle.log", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_log( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# log1p +@handle_frontend_test( + fn_tree="paddle.log1p", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + max_value=1e5, + ), +) +def test_paddle_log1p( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# log2 +@handle_frontend_test( + fn_tree="paddle.log2", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_log2( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# logit +@handle_frontend_test( + fn_tree="paddle.logit", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_logit( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + eps=1e-2, + ) + + +# max +@handle_frontend_test( + fn_tree="paddle.max", + dtype_and_x=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("valid"), + min_axis=-1, + max_axis=0, + min_num_dims=1, + force_int_axis=False, + ), +) +def test_paddle_max( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x, axis = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + keepdim=False, + ) + + +# maximum +@handle_frontend_test( + fn_tree="paddle.maximum", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + shared_dtype=True, + ), +) +def test_paddle_maximum( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# min +@handle_frontend_test( + fn_tree="paddle.min", + dtype_and_x=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("valid"), + min_axis=-1, + max_axis=0, + min_num_dims=1, + force_int_axis=False, + ), +) +def test_paddle_min( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x, axis = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + keepdim=False, + ) + + +@handle_frontend_test( + fn_tree="paddle.minimum", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + shared_dtype=True, + ), +) +def test_paddle_minimum( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# mm +@handle_frontend_test( + fn_tree="paddle.mm", + dtype_xy=_get_dtype_input_and_matrices(), +) +def test_paddle_mm( + *, + dtype_xy, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x, y = dtype_xy + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + input=x, + mat2=y, + ) + + +# multiply +@handle_frontend_test( + fn_tree="paddle.multiply", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_multiply( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# nansum +@handle_frontend_test( + fn_tree="paddle.nansum", + dtype_and_x=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("float"), + valid_axis=True, + force_int_axis=True, + min_num_dims=1, + allow_nan=True, + ), +) +def test_paddle_nansum( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x, axis = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + rtol=1e-04, + atol=1e-04, + ) + + +# neg +@handle_frontend_test( + fn_tree="paddle.neg", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=["float32", "float64", "int8", "int16", "int32", "int64"], + ), +) +def test_paddle_neg( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# outer +@handle_frontend_test( + fn_tree="paddle.outer", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=2, + min_num_dims=1, + max_num_dims=1, + shared_dtype=True, + ), +) +def test_paddle_outer( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# pow +@handle_frontend_test( + fn_tree="paddle.pow", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=2, + allow_inf=False, + shared_dtype=True, + ), +) +def test_paddle_pow( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# prod +@handle_frontend_test( + fn_tree="paddle.prod", + dtype_and_x=helpers.dtype_values_axis( + available_dtypes=helpers.get_dtypes("numeric"), + min_axis=-1, + max_axis=0, + min_num_dims=1, + min_value=-10, + max_value=10, + force_int_axis=False, + allow_nan=False, + ), +) +def test_paddle_prod( + *, + dtype_and_x, + on_device, + backend_fw, + fn_tree, + frontend, + test_flags, +): + input_dtype, x, axis = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + axis=axis, + keepdim=False, + backend_to_test=backend_fw, + ) + + +# rad2deg +@handle_frontend_test( + fn_tree="paddle.rad2deg", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_rad2deg( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# reciprocal +@handle_frontend_test( + fn_tree="paddle.reciprocal", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_reciprocal( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# remainder +@handle_frontend_test( + fn_tree="paddle.remainder", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_remainder( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# round +@handle_frontend_test( + fn_tree="paddle.round", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_value=1, + ), +) +def test_paddle_round( + *, + dtype_and_x, + frontend, + test_flags, + fn_tree, + backend_fw, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# rsqrt +@handle_frontend_test( + fn_tree="paddle.rsqrt", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_rsqrt( + *, + dtype_and_x, + frontend, + test_flags, + fn_tree, + on_device, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +@handle_frontend_test( + fn_tree="paddle.sgn", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float_and_complex"), + min_num_dims=1, + max_num_dims=1, + min_dim_size=1, + max_dim_size=1, + abs_smallest_val=1e-10, + min_value=-10, + max_value=10, + ), +) +def test_paddle_sgn( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# sign +@handle_frontend_test( + fn_tree="paddle.sign", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_sign( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# sin +@handle_frontend_test( + fn_tree="paddle.sin", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_sin( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# diff +# sinh +@handle_frontend_test( + fn_tree="paddle.sinh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_sinh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# sqrt +@handle_frontend_test( + fn_tree="paddle.sqrt", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_sqrt( + *, + dtype_and_x, + frontend, + test_flags, + fn_tree, + backend_fw, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# square +@handle_frontend_test( + fn_tree="paddle.square", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_square( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + +# stanh +@handle_frontend_test( + fn_tree="paddle.stanh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), + scale_a=st.floats(1e-5, 1e5), + scale_b=st.floats(1e-5, 1e5), +) +def test_paddle_stanh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, + scale_a, + scale_b, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + test_flags=test_flags, + backend_to_test=backend_fw, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + scale_a=scale_a, + scale_b=scale_b, + ) + + +# subtract +@handle_frontend_test( + fn_tree="paddle.subtract", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", + shared_dtype=True, + ), +) +def test_paddle_subtract( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + y=x[1], + ) + + +# take +@handle_frontend_test( + fn_tree="paddle.take", dtype_and_values=_test_paddle_take_helper() +) +def test_paddle_take( + *, + dtype_and_values, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + dtypes, xs, indices, modes = dtype_and_values + helpers.test_frontend_function( + input_dtypes=dtypes, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=xs, + index=indices, + mode=modes, + ) + + +# tan +@handle_frontend_test( + fn_tree="paddle.tan", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_tan( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-2, + x=x[0], + ) + + +# tanh +@handle_frontend_test( + fn_tree="paddle.tanh", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), +) +def test_paddle_tanh( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + atol=1e-2, + x=x[0], + ) + + +# trunc +@handle_frontend_test( + fn_tree="paddle.trunc", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float", "int"), + ), +) +def test_paddle_trunc( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_random.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_random.py new file mode 100644 index 0000000000000..a9c2e27164924 --- /dev/null +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_random.py @@ -0,0 +1,273 @@ +# global +from hypothesis import strategies as st + +# local + +import ivy_tests.test_ivy.helpers as helpers +from ivy_tests.test_ivy.helpers import handle_frontend_test + + +@handle_frontend_test( + fn_tree="paddle.normal", + input_dtypes=st.sampled_from([["float32"], ["float64"]]), + shape=helpers.get_shape( + min_num_dims=1, + min_dim_size=1, + ), + mean=st.floats( + min_value=-10, + max_value=10, + ), + std=st.floats( + min_value=0, + max_value=10, + ), +) +def test_paddle_normal( + input_dtypes, + shape, + mean, + std, + frontend, + backend_fw, + test_flags, + fn_tree, +): + helpers.test_frontend_function( + input_dtypes=input_dtypes, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + mean=mean, + std=std, + shape=shape, + ) + + +@handle_frontend_test( + fn_tree="paddle.poisson", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_value=0, + max_value=1000, + min_num_dims=1, + max_num_dims=1, + min_dim_size=2, + max_dim_size=2, + ), +) +def test_paddle_poisson(dtype_and_x, backend_fw, frontend, test_flags, fn_tree): + dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + x=x[0], + ) + + +@handle_frontend_test( + fn_tree="paddle.rand", + input_dtypes=st.sampled_from(["int32", "int64"]), + shape=helpers.get_shape( + allow_none=False, + min_num_dims=0, + min_dim_size=1, + ), + dtype=helpers.get_dtypes("valid", full=False), +) +def test_paddle_rand( + *, + input_dtypes, + shape, + dtype, + frontend, + backend_fw, + test_flags, + fn_tree, +): + helpers.test_frontend_function( + input_dtypes=[input_dtypes], + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + shape=shape, + dtype=dtype[0], + ) + + +# randint +@handle_frontend_test( + fn_tree="paddle.randint", + low=helpers.ints(min_value=0, max_value=10), + high=helpers.ints(min_value=11, max_value=20), + dtype=helpers.get_dtypes("integer"), + shape=helpers.get_shape( + allow_none=False, min_num_dims=2, max_num_dims=7, min_dim_size=2 + ), +) +def test_paddle_randint( + low, + high, + dtype, + backend_fw, + frontend, + test_flags, + shape, + fn_tree, +): + helpers.test_frontend_function( + input_dtypes=dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_values=False, + fn_tree=fn_tree, + test_flags=test_flags, + low=low, + high=high, + shape=shape, + ) + + +@handle_frontend_test( + fn_tree="paddle.randint_like", + input_dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + shape=helpers.get_shape( + allow_none=False, min_num_dims=2, max_num_dims=7, min_dim_size=2 + ), + ), + low=st.integers(min_value=0, max_value=10), + high=st.integers(min_value=11, max_value=20), + dtype=helpers.get_dtypes("integer"), +) +def test_paddle_randint_like( + input_dtype_and_x, + low, + high, + dtype, + frontend, + backend_fw, + test_flags, + fn_tree, + on_device, +): + input_dtype, x = input_dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=False, + x=x[0], + low=low, + high=high, + dtype=dtype[0], + ) + + +@handle_frontend_test( + fn_tree="paddle.randn", + input_dtypes=st.sampled_from(["int32", "int64"]), + shape=helpers.get_shape( + allow_none=False, min_num_dims=1, max_num_dims=1, min_dim_size=2 + ), + dtype=st.sampled_from(["float32", "float64"]), +) +def test_paddle_randn( + *, + input_dtypes, + shape, + dtype, + frontend, + backend_fw, + test_flags, + fn_tree, +): + helpers.test_frontend_function( + input_dtypes=[input_dtypes], + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + shape=shape, + dtype=dtype, + ) + + +@handle_frontend_test( + fn_tree="paddle.standard_normal", + input_dtypes=st.sampled_from([["int32"], ["int64"]]), + shape=helpers.get_shape( + min_num_dims=1, + min_dim_size=1, + ), + dtype=helpers.get_dtypes("valid", full=False), +) +def test_paddle_standard_normal( + input_dtypes, + shape, + dtype, + frontend, + backend_fw, + test_flags, + fn_tree, +): + helpers.test_frontend_function( + input_dtypes=input_dtypes, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + shape=shape, + dtype=dtype[0], + ) + + +@handle_frontend_test( + fn_tree="paddle.uniform", + input_dtypes=helpers.get_dtypes("float"), + shape=st.tuples( + st.integers(min_value=2, max_value=5), st.integers(min_value=2, max_value=5) + ), + dtype=helpers.get_dtypes("valid", full=False), + min=st.floats(allow_nan=False, allow_infinity=False, width=32), + max=st.floats(allow_nan=False, allow_infinity=False, width=32), + seed=st.integers(min_value=2, max_value=5), +) +def test_paddle_uniform( + input_dtypes, + shape, + dtype, + min, + max, + seed, + frontend, + backend_fw, + test_flags, + fn_tree, +): + helpers.test_frontend_function( + input_dtypes=input_dtypes, + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + test_values=False, + shape=shape, + dtype=dtype[0], + min=min, + max=max, + seed=seed, + ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_search.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_search.py similarity index 100% rename from ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_search.py rename to ivy_tests/test_ivy/test_frontends/test_paddle/test_search.py diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_stat.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_stat.py similarity index 100% rename from ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_stat.py rename to ivy_tests/test_ivy/test_frontends/test_paddle/test_stat.py diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_einsum.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_einsum.py deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py index 95faa889aef59..74fe6f3d61248 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py @@ -1,6 +1,5 @@ # global from hypothesis import strategies as st -import math # local import ivy_tests.test_ivy.helpers as helpers @@ -8,235 +7,11 @@ from ivy_tests.test_ivy.test_functional.test_experimental.test_core.test_manipulation import ( # noqa _get_dtype_values_k_axes_for_rot90, ) -from ivy_tests.test_ivy.test_frontends.test_torch.test_miscellaneous_ops import ( - _get_repeat_interleaves_args, -) # --- Helpers --- # # --------------- # - -# stack -@st.composite -def _arrays_axis_n_dtypes(draw): - num_dims = draw(st.shared(helpers.ints(min_value=2, max_value=5), key="num_dims")) - num_arrays = draw( - st.shared(helpers.ints(min_value=2, max_value=4), key="num_arrays") - ) - common_shape = draw( - helpers.list_of_size( - x=helpers.ints(min_value=2, max_value=3), - size=num_dims - 1, - ) - ) - axis = draw(st.sampled_from(list(range(num_dims)))) - xs = [] - input_dtypes = draw( - helpers.array_dtypes(available_dtypes=draw(helpers.get_dtypes("numeric"))) - ) - dtype = draw(st.sampled_from(input_dtypes)) - for _ in range(num_arrays): - x = draw( - helpers.array_values( - shape=common_shape, - dtype=dtype, - ) - ) - xs.append(x) - input_dtypes = [dtype] * len(input_dtypes) - return xs, input_dtypes, axis - - -# concat -@st.composite -def _arrays_idx_n_dtypes(draw): - num_dims = draw(st.shared(helpers.ints(min_value=1, max_value=4), key="num_dims")) - num_arrays = draw( - st.shared(helpers.ints(min_value=2, max_value=4), key="num_arrays") - ) - common_shape = draw( - helpers.list_of_size( - x=helpers.ints(min_value=2, max_value=3), - size=num_dims - 1, - ) - ) - unique_idx = draw(helpers.ints(min_value=0, max_value=num_dims - 1)) - unique_dims = draw( - helpers.list_of_size( - x=helpers.ints(min_value=2, max_value=3), - size=num_arrays, - ) - ) - xs = [] - input_dtypes = draw( - helpers.array_dtypes(available_dtypes=draw(helpers.get_dtypes("valid"))) - ) - dtype = draw(st.sampled_from(input_dtypes)) - for ud in unique_dims: - x = draw( - helpers.array_values( - shape=common_shape[:unique_idx] + [ud] + common_shape[unique_idx:], - dtype=dtype, - ) - ) - xs.append(x) - input_dtypes = [dtype] * len(input_dtypes) - return xs, input_dtypes, unique_idx - - -@st.composite -def _broadcast_to_helper(draw): - dtype_and_x = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_num_dims=1, - max_num_dims=6, - ) - ) - - dtype, x = dtype_and_x - input_shape = x[0].shape - - max_num_dims = 6 - len(input_shape) - shape = draw(helpers.get_shape(max_num_dims=max_num_dims)) + input_shape - - return dtype, x, shape - - -# flip -@st.composite -def _dtype_x_axis(draw, **kwargs): - dtype, x, shape = draw(helpers.dtype_and_values(**kwargs, ret_shape=True)) - axis = draw( - st.lists( - helpers.ints(min_value=0, max_value=len(shape) - 1), - min_size=len(shape), - max_size=len(shape), - unique=True, - ) - ) - return dtype, x, axis - - -# expand -@st.composite -def _expand_helper(draw): - dtype_and_x = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_num_dims=1, - max_num_dims=6, - ) - ) - - dtype, x = dtype_and_x - input_shape = x[0].shape - - max_num_dims = 6 - len(input_shape) - shape = draw(helpers.get_shape(max_num_dims=max_num_dims)) + input_shape - - return dtype, x, shape - - -@st.composite -def _gather_helper(draw): - dtype_and_param = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_num_dims=1, - max_num_dims=6, - ) - ) - - dtype_and_indices = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_num_dims=1, - max_num_dims=6, - ) - ) - dtype, param = dtype_and_param - dtype, indices = dtype_and_indices - return dtype, param, indices - - -# split -@st.composite -def _split_helper(draw): - dtypes, values, shape = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_num_dims=2, - max_num_dims=4, - min_dim_size=2, - max_dim_size=4, - ret_shape=True, - ) - ) - axis = draw(st.sampled_from(range(len(shape)))) - num_eles = shape[axis] - splits = [i for i in range(1, num_eles + 1) if num_eles % i == 0] - num_splits = draw(st.sampled_from(splits)) - return dtypes, values, num_splits, axis - - -# squeeze -@st.composite -def _squeeze_helper(draw): - shape = draw(st.shared(helpers.get_shape(), key="value_shape")) - valid_axes = [] - for index, axis in enumerate(shape): - if axis == 1: - valid_axes.append(index) - valid_axes.insert(0, None) - - return draw(st.sampled_from(valid_axes)) - - -# tile -@st.composite -def _tile_helper(draw): - dtype, x, shape = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_num_dims=1, - max_num_dims=4, - min_dim_size=2, - max_dim_size=3, - ret_shape=True, - ) - ) - repeats = draw( - helpers.list_of_size( - x=helpers.ints(min_value=1, max_value=3), - size=len(shape), - ) - ) - return dtype, x, repeats - - -# Helpers # -# ------ # - - -@st.composite -def dtypes_x_reshape(draw): - shape = draw(helpers.get_shape(min_num_dims=1)) - dtypes, x = draw( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("numeric"), - shape=shape, - ) - ) - shape = draw( - helpers.get_shape(min_num_dims=1).filter( - lambda s: math.prod(s) == math.prod(shape) - ) - ) - return dtypes, x, shape - - @st.composite def dtypes_x_reshape_(draw): shape = draw(helpers.get_shape(min_num_dims=1)) @@ -252,270 +27,9 @@ def dtypes_x_reshape_(draw): # --- Main --- # # ------------ # - -# abs -@handle_frontend_test( - fn_tree="paddle.abs", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_abs( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -@handle_frontend_test( - fn_tree="paddle.broadcast_to", - dtype_x_and_shape=_broadcast_to_helper(), -) -def test_paddle_broadcast_to( - *, - dtype_x_and_shape, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - input_dtype, x, shape = dtype_x_and_shape - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - shape=shape, - ) - - -# cast -@handle_frontend_test( - fn_tree="paddle.cast", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), - dtype=helpers.get_dtypes("valid", full=False), -) -def test_paddle_cast( - *, - dtype_and_x, - dtype, - on_device, - backend_fw, - fn_tree, - frontend, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - dtype=dtype[0], - ) - - -@handle_frontend_test( - fn_tree="paddle.concat", - xs_n_input_dtypes_n_unique_idx=_arrays_idx_n_dtypes(), - test_with_out=st.just(False), -) -def test_paddle_concat( - *, - xs_n_input_dtypes_n_unique_idx, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - xs, input_dtypes, unique_idx = xs_n_input_dtypes_n_unique_idx - helpers.test_frontend_function( - input_dtypes=input_dtypes, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=xs, - axis=unique_idx, - ) - - -@handle_frontend_test( - fn_tree="paddle.expand", - dtype_x_and_shape=_expand_helper(), -) -def test_paddle_expand( - *, - dtype_x_and_shape, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - input_dtype, x, shape = dtype_x_and_shape - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - shape=shape, - ) - - -@handle_frontend_test( - fn_tree="paddle.flip", - dtype_x_axis=_dtype_x_axis( - available_dtypes=helpers.get_dtypes("numeric"), - min_num_dims=1, - min_dim_size=1, - ), - test_with_out=st.just(False), -) -def test_paddle_flip( - *, - dtype_x_axis, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x, axis = dtype_x_axis - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - ) - - -@handle_frontend_test( - fn_tree="paddle.gather", - dtype_param_and_indices=_gather_helper(), -) -def test_paddle_gather( - *, - dtype_param_and_indices, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, param, indices = dtype_param_and_indices - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - param=param[0], - indices=indices[0], - ) - - -# repeat_interleave -@handle_frontend_test( - fn_tree="paddle.repeat_interleave", - dtype_values_repeats_axis_output_size=_get_repeat_interleaves_args( - available_dtypes=helpers.get_dtypes("numeric"), - valid_axis=True, - max_num_dims=4, - max_dim_size=4, - ), -) -def test_paddle_repeat_interleave( - *, - dtype_values_repeats_axis_output_size, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - dtype, values, repeats, axis, _ = dtype_values_repeats_axis_output_size - - helpers.test_frontend_function( - input_dtypes=[dtype[0][0], dtype[1][0]], - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=values[0], - repeats=repeats[0], - axis=axis, - ) - - -# Tests # -# ----- # - - -# reshape -@handle_frontend_test( - fn_tree="paddle.reshape", - dtypes_x_reshape=dtypes_x_reshape(), -) -def test_paddle_reshape( - *, - dtypes_x_reshape, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x, shape = dtypes_x_reshape - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - shape=shape, - ) - - # reshape_ @handle_frontend_test( - fn_tree="paddle.reshape_", + fn_tree="paddle.tensor.manipulation.reshape_", dtypes_x_reshape=dtypes_x_reshape_(), ) def test_paddle_reshape_( @@ -538,260 +52,3 @@ def test_paddle_reshape_( x=x[0], shape=shape, ) - - -# roll -@handle_frontend_test( - fn_tree="paddle.roll", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("numeric"), - min_num_dims=2, - min_dim_size=2, - ), - shift=helpers.ints(min_value=1, max_value=10), - axis=helpers.ints(min_value=-1, max_value=1), - test_with_out=st.just(False), -) -def test_paddle_roll( - *, - dtype_and_x, - shift, - axis, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - shifts=shift, - axis=axis, - ) - - -# rot90 -@handle_frontend_test( - fn_tree="paddle.rot90", - dtype_m_k_axes=_get_dtype_values_k_axes_for_rot90( - available_dtypes=helpers.get_dtypes(kind="valid"), - min_num_dims=1, - max_num_dims=5, - min_dim_size=1, - max_dim_size=10, - ), -) -def test_paddle_rot90( - *, - dtype_m_k_axes, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, m, k, axes = dtype_m_k_axes - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=m, - k=k, - axes=tuple(axes), - ) - - -@handle_frontend_test( - fn_tree="paddle.split", - dt_x_num_splits_axis=_split_helper(), - test_with_out=st.just(False), -) -def test_paddle_split( - *, - dt_x_num_splits_axis, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtypes, x, num_splits, axis = dt_x_num_splits_axis - helpers.test_frontend_function( - input_dtypes=input_dtypes, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - num_or_sections=num_splits, - axis=axis, - ) - - -@handle_frontend_test( - fn_tree="paddle.squeeze", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - shape=st.shared(helpers.get_shape(), key="value_shape"), - ), - axis=_squeeze_helper(), -) -def test_paddle_squeeze( - *, - dtype_and_x, - axis, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - ) - - -@handle_frontend_test( - fn_tree="paddle.stack", - _arrays_n_dtypes_axis=_arrays_axis_n_dtypes(), - test_with_out=st.just(False), -) -def test_paddle_stack( - *, - _arrays_n_dtypes_axis, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - xs, input_dtypes, axis = _arrays_n_dtypes_axis - helpers.test_frontend_function( - input_dtypes=input_dtypes, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=xs, - axis=axis, - ) - - -# take_along_axis -@handle_frontend_test( - fn_tree="paddle.take_along_axis", - dtype_indices_axis=helpers.array_indices_axis( - array_dtypes=helpers.get_dtypes(kind="valid"), - indices_dtypes=["int64"], - min_num_dims=1, - max_num_dims=5, - min_dim_size=1, - max_dim_size=10, - indices_same_dims=True, - ), -) -def test_paddle_take_along_axis( - *, - dtype_indices_axis, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtypes, value, indices, axis, _ = dtype_indices_axis - helpers.test_frontend_function( - input_dtypes=input_dtypes, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - arr=value, - indices=indices, - axis=axis, - ) - - -@handle_frontend_test( - fn_tree="paddle.tile", - dt_x_repeats=_tile_helper(), - test_with_out=st.just(False), -) -def test_paddle_tile( - *, - dt_x_repeats, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtypes, x, repeats = dt_x_repeats - helpers.test_frontend_function( - input_dtypes=input_dtypes, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - repeat_times=repeats, - ) - - -# unstack -@handle_frontend_test( - fn_tree="paddle.unstack", - dtypes_values=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("numeric"), - min_num_dims=2, - max_num_dims=2, - max_dim_size=1, - ), - number_positional_args=st.just(1), - axis=st.integers(-1, 0), - test_with_out=st.just(False), -) -def test_paddle_unstack( - *, - dtypes_values, - axis, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - x_dtype, x = dtypes_values - axis = axis - helpers.test_frontend_function( - input_dtypes=x_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py index 69f19e2ccdb96..7d5ce9b70b273 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py @@ -1,110 +1,27 @@ -# global -from hypothesis import strategies as st - # local import ivy_tests.test_ivy.helpers as helpers from ivy_tests.test_ivy.helpers import handle_frontend_test -from ivy_tests.test_ivy.test_frontends.test_torch.test_blas_and_lapack_ops import ( - _get_dtype_input_and_matrices, - _get_dtype_and_3dbatch_matrices, -) - - -# --- Helpers --- # -# --------------- # - - -@st.composite -def _test_paddle_take_helper(draw): - mode = draw(st.sampled_from(["raise", "clip", "wrap"])) - - safe_bounds = mode == "raise" - - dtypes, xs, indices, _, _ = draw( - helpers.array_indices_axis( - array_dtypes=helpers.get_dtypes("float_and_integer"), - indices_dtypes=["int32", "int64"], - valid_bounds=safe_bounds, - ) - ) - - return dtypes, xs, indices, mode # --- Main --- # # ------------ # -# abs -@handle_frontend_test( - fn_tree="paddle.tensor.math.abs", - dtype_and_x=helpers.dtype_and_values(available_dtypes=helpers.get_dtypes("float")), -) -def test_paddle_abs( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# acos +# ceil_ @handle_frontend_test( - fn_tree="paddle.acos", + fn_tree="paddle.tensor.math.ceil_", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("float"), ), ) -def test_paddle_acos( +def test_paddle_ceil_( *, dtype_and_x, - on_device, - fn_tree, frontend, test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - atol=1e-2, - x=x[0], - ) - - -# acosh -@handle_frontend_test( - fn_tree="paddle.tensor.math.acosh", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_acosh( - *, - dtype_and_x, - on_device, fn_tree, - frontend, - test_flags, backend_fw, + on_device, ): input_dtype, x = dtype_and_x helpers.test_frontend_function( @@ -114,163 +31,52 @@ def test_paddle_acosh( test_flags=test_flags, fn_tree=fn_tree, on_device=on_device, - atol=1e-2, x=x[0], ) -# add +# exp_ @handle_frontend_test( - fn_tree="paddle.add", + fn_tree="paddle.tensor.math.exp_", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("valid"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, ), ) -def test_paddle_add( +def test_paddle_exp_( *, dtype_and_x, on_device, fn_tree, frontend, - test_flags, backend_fw, + test_flags, ): input_dtype, x = dtype_and_x helpers.test_frontend_function( input_dtypes=input_dtype, - backend_to_test=backend_fw, frontend=frontend, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# addmm -@handle_frontend_test( - fn_tree="paddle.tensor.math.addmm", - dtype_input_xy=_get_dtype_and_3dbatch_matrices(with_input=True, input_3d=True), - beta=st.floats( - min_value=-5, - max_value=5, - allow_nan=False, - allow_subnormal=False, - allow_infinity=False, - ), - alpha=st.floats( - min_value=-5, - max_value=5, - allow_nan=False, - allow_subnormal=False, - allow_infinity=False, - ), -) -def test_paddle_addmm( - *, - dtype_input_xy, - beta, - alpha, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, input, x, y = dtype_input_xy - helpers.test_frontend_function( - input_dtypes=input_dtype, backend_to_test=backend_fw, - frontend=frontend, test_flags=test_flags, fn_tree=fn_tree, on_device=on_device, - input=input[0], x=x[0], - y=y[0], - beta=beta, - alpha=alpha, ) -# amax +# lerp_ @handle_frontend_test( - fn_tree="paddle.tensor.math.amax", + fn_tree="paddle.tensor.math.lerp_", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - num_arrays=2, + available_dtypes=helpers.get_dtypes("float"), + num_arrays=3, allow_inf=False, + large_abs_safety_factor=2, + small_abs_safety_factor=2, + safety_factor_scale="log", shared_dtype=True, ), ) -def test_paddle_amax( - *, - dtype_and_x, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - ) - - -# amin -@handle_frontend_test( - fn_tree="paddle.tensor.math.amin", - dtype_and_x=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("valid"), - valid_axis=True, - ), - keepdim=st.booleans(), -) -def test_paddle_amin( - *, - dtype_and_x, - keepdim, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - input_dtype, x, axis = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - axis=axis, - keepdim=keepdim, - ) - - -@handle_frontend_test( - fn_tree="paddle.tensor.math.angle", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=["float64", "complex64", "complex128"], - ), -) -def test_paddle_angle( +def test_paddle_lerp_( *, dtype_and_x, on_device, @@ -284,83 +90,23 @@ def test_paddle_angle( input_dtypes=input_dtype, frontend=frontend, backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# any -@handle_frontend_test( - fn_tree="paddle.tensor.math.any", - dtype_and_x=helpers.dtype_values_axis( - available_dtypes=["bool"], - valid_axis=True, - allow_neg_axes=True, - force_int_axis=True, - min_num_dims=1, - ), -) -def test_paddle_any( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x, axis = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - test_flags=test_flags, fn_tree=fn_tree, - on_device=on_device, - backend_to_test=backend_fw, - x=x[0], - axis=axis, - keepdim=False, - ) - - -# asin -@handle_frontend_test( - fn_tree="paddle.tensor.math.asin", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_asin( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - backend_fw, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, test_flags=test_flags, - fn_tree=fn_tree, on_device=on_device, x=x[0], + y=x[1], + weight=x[2], ) -# asinh +# reciprocal_ @handle_frontend_test( - fn_tree="paddle.tensor.math.asinh", + fn_tree="paddle.tensor.math.reciprocal_", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("float"), ), ) -def test_paddle_asinh( +def test_paddle_reciprocal_( *, dtype_and_x, on_device, @@ -377,19 +123,19 @@ def test_paddle_asinh( test_flags=test_flags, fn_tree=fn_tree, on_device=on_device, - atol=1e-2, x=x[0], ) -# atan +# round_ @handle_frontend_test( - fn_tree="paddle.tensor.math.atan", + fn_tree="paddle.tensor.math.round_", dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("float"), + min_value=1, ), ) -def test_paddle_atan( +def test_paddle_round_( *, dtype_and_x, frontend, @@ -410,55 +156,20 @@ def test_paddle_atan( ) -# atan2 +# rsqrt_ @handle_frontend_test( - fn_tree="paddle.atan2", + fn_tree="paddle.tensor.math.rsqrt_", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, + available_dtypes=helpers.get_dtypes("valid"), ), ) -def test_paddle_atan2( +def test_paddle_rsqrt_( *, dtype_and_x, - on_device, - fn_tree, frontend, - backend_fw, test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# atanh -@handle_frontend_test( - fn_tree="paddle.tensor.math.atanh", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_atanh( - *, - dtype_and_x, - on_device, fn_tree, - frontend, - test_flags, + on_device, backend_fw, ): input_dtype, x = dtype_and_x @@ -473,19 +184,19 @@ def test_paddle_atanh( ) -# ceil +# sqrt_ @handle_frontend_test( - fn_tree="paddle.tensor.math.ceil", + fn_tree="paddle.tensor.math.sqrt_", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("valid"), ), ) -def test_paddle_ceil( +def test_paddle_sqrt_( *, dtype_and_x, + fn_tree, frontend, test_flags, - fn_tree, backend_fw, on_device, ): @@ -499,2000 +210,3 @@ def test_paddle_ceil( on_device=on_device, x=x[0], ) - - -# ceil_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.ceil_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_ceil_( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - backend_fw, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# conj -@handle_frontend_test( - fn_tree="paddle.tensor.math.conj", - dtype_and_input=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("numeric"), - ), -) -def test_paddle_conj( - *, - dtype_and_input, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_input - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# cos -@handle_frontend_test( - fn_tree="paddle.cos", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_cos( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# cosh -@handle_frontend_test( - fn_tree="paddle.tensor.math.cosh", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_cosh( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - atol=1e-2, - x=x[0], - ) - - -# cumprod -@handle_frontend_test( - fn_tree="paddle.tensor.math.cumprod", - dtype_x_axis=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("valid"), - valid_axis=True, - force_int_axis=True, - min_num_dims=1, - min_value=-5, - max_value=5, - ), -) -def test_paddle_cumprod( - *, - dtype_x_axis, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x, axis = dtype_x_axis - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - dim=axis, - ) - - -# deg2rad -@handle_frontend_test( - fn_tree="paddle.deg2rad", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_deg2rad( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# diff -@handle_frontend_test( - fn_tree="paddle.tensor.math.diff", - dtype_n_x_n_axis=helpers.dtype_values_axis( - available_dtypes=st.shared(helpers.get_dtypes("valid"), key="dtype"), - min_num_dims=1, - valid_axis=True, - force_int_axis=True, - ), - n=st.integers(min_value=1, max_value=1), - dtype_prepend=helpers.dtype_and_values( - available_dtypes=st.shared(helpers.get_dtypes("valid"), key="dtype"), - min_num_dims=1, - max_num_dims=1, - ), - dtype_append=helpers.dtype_and_values( - available_dtypes=st.shared(helpers.get_dtypes("valid"), key="dtype"), - min_num_dims=1, - max_num_dims=1, - ), -) -def test_paddle_diff( - *, - dtype_n_x_n_axis, - n, - dtype_prepend, - dtype_append, - test_flags, - frontend, - backend_fw, - fn_tree, - on_device, -): - input_dtype, x, axis = dtype_n_x_n_axis - _, prepend = dtype_prepend - _, append = dtype_append - helpers.test_frontend_function( - input_dtypes=input_dtype, - test_flags=test_flags, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - n=n, - axis=axis, - prepend=prepend[0], - append=append[0], - ) - - -# digamma -@handle_frontend_test( - fn_tree="paddle.tensor.math.digamma", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - safety_factor_scale="log", - ), -) -def test_paddle_digamma( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - atol=1e-4, - x=x[0], - ) - - -# divide -@handle_frontend_test( - fn_tree="paddle.divide", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_divide( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# erf -@handle_frontend_test( - fn_tree="paddle.tensor.math.erf", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_erf( - *, - dtype_and_x, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# exp -@handle_frontend_test( - fn_tree="paddle.exp", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_exp( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# exp_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.exp_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_exp_( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# expm1 -@handle_frontend_test( - fn_tree="paddle.expm1", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_expm1( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# floor -@handle_frontend_test( - fn_tree="paddle.tensor.math.floor", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_floor( - *, - dtype_and_x, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# floor_divide -@handle_frontend_test( - fn_tree="paddle.tensor.math.floor_divide", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_value=-10, - max_value=10, - num_arrays=2, - allow_inf=False, - shared_dtype=True, - ), -) -def test_paddle_floor_divide( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - atol=1e-5, - ) - - -@handle_frontend_test( - fn_tree="paddle.fmax", - dtypes_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), num_arrays=2, shared_dtype=True - ), -) -def test_paddle_fmax( - *, - dtypes_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtypes_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -@handle_frontend_test( - fn_tree="paddle.fmin", - dtypes_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), num_arrays=2, shared_dtype=True - ), -) -def test_paddle_fmin( - *, - dtypes_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtypes_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# frac -@handle_frontend_test( - fn_tree="paddle.tensor.math.frac", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - num_arrays=1, - max_value=1e6, - min_value=-1e6, - ), -) -def test_paddle_frac( - *, - dtype_and_x, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# gcd -@handle_frontend_test( - fn_tree="paddle.gcd", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_value=-100, - max_value=100, - min_num_dims=1, - min_dim_size=1, - num_arrays=2, - shared_dtype=True, - ), -) -def test_paddle_gcd( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# heaviside -@handle_frontend_test( - fn_tree="paddle.tensor.math.heaviside", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_heaviside( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# inner -@handle_frontend_test( - fn_tree="paddle.tensor.math.inner", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - min_value=-10, - max_value=10, - num_arrays=2, - shared_dtype=True, - ), -) -def test_paddle_inner( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# isfinite -@handle_frontend_test( - fn_tree="paddle.isfinite", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_isfinite( - *, - dtype_and_x, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# isinf -@handle_frontend_test( - fn_tree="paddle.isinf", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_isinf( - *, - dtype_and_x, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# isnan -@handle_frontend_test( - fn_tree="paddle.isnan", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_isnan( - *, - dtype_and_x, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# kron -@handle_frontend_test( - fn_tree="paddle.tensor.math.kron", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - shared_dtype=True, - ), -) -def test_paddle_kron( - *, - dtype_and_x, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# lcm -@handle_frontend_test( - fn_tree="paddle.lcm", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - num_arrays=2, - min_num_dims=1, - safety_factor_scale="log", - large_abs_safety_factor=2, - shared_dtype=True, - ), -) -def test_paddle_lcm( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# lerp -@handle_frontend_test( - fn_tree="paddle.tensor.math.lerp", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=3, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_lerp( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - weight=x[2], - ) - - -# lerp_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.lerp_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=3, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_lerp_( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - weight=x[2], - ) - - -# lgamma -@handle_frontend_test( - fn_tree="paddle.tensor.math.lgamma", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - safety_factor_scale="log", - ), -) -def test_paddle_lgamma( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - atol=1e-4, - x=x[0], - ) - - -# log -@handle_frontend_test( - fn_tree="paddle.log", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_log( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# log1p -@handle_frontend_test( - fn_tree="paddle.log1p", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - max_value=1e5, - ), -) -def test_paddle_log1p( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# log2 -@handle_frontend_test( - fn_tree="paddle.log2", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_log2( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# logit -@handle_frontend_test( - fn_tree="paddle.logit", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_logit( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - eps=1e-2, - ) - - -# max -@handle_frontend_test( - fn_tree="paddle.tensor.math.max", - dtype_and_x=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("valid"), - min_axis=-1, - max_axis=0, - min_num_dims=1, - force_int_axis=False, - ), -) -def test_paddle_max( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x, axis = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - keepdim=False, - ) - - -# maximum -@handle_frontend_test( - fn_tree="paddle.maximum", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - shared_dtype=True, - ), -) -def test_paddle_maximum( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# min -@handle_frontend_test( - fn_tree="paddle.tensor.math.min", - dtype_and_x=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("valid"), - min_axis=-1, - max_axis=0, - min_num_dims=1, - force_int_axis=False, - ), -) -def test_paddle_min( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x, axis = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - keepdim=False, - ) - - -@handle_frontend_test( - fn_tree="paddle.minimum", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - shared_dtype=True, - ), -) -def test_paddle_minimum( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# mm -@handle_frontend_test( - fn_tree="paddle.tensor.math.mm", - dtype_xy=_get_dtype_input_and_matrices(), -) -def test_paddle_mm( - *, - dtype_xy, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x, y = dtype_xy - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - input=x, - mat2=y, - ) - - -# multiply -@handle_frontend_test( - fn_tree="paddle.multiply", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_multiply( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# nansum -@handle_frontend_test( - fn_tree="paddle.tensor.math.nansum", - dtype_and_x=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("float"), - valid_axis=True, - force_int_axis=True, - min_num_dims=1, - allow_nan=True, - ), -) -def test_paddle_nansum( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x, axis = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - rtol=1e-04, - atol=1e-04, - ) - - -# neg -@handle_frontend_test( - fn_tree="paddle.neg", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=["float32", "float64", "int8", "int16", "int32", "int64"], - ), -) -def test_paddle_neg( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# outer -@handle_frontend_test( - fn_tree="paddle.tensor.math.outer", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - num_arrays=2, - min_num_dims=1, - max_num_dims=1, - shared_dtype=True, - ), -) -def test_paddle_outer( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# pow -@handle_frontend_test( - fn_tree="paddle.pow", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - num_arrays=2, - allow_inf=False, - shared_dtype=True, - ), -) -def test_paddle_pow( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# prod -@handle_frontend_test( - fn_tree="paddle.tensor.math.prod", - dtype_and_x=helpers.dtype_values_axis( - available_dtypes=helpers.get_dtypes("numeric"), - min_axis=-1, - max_axis=0, - min_num_dims=1, - min_value=-10, - max_value=10, - force_int_axis=False, - allow_nan=False, - ), -) -def test_paddle_prod( - *, - dtype_and_x, - on_device, - backend_fw, - fn_tree, - frontend, - test_flags, -): - input_dtype, x, axis = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - axis=axis, - keepdim=False, - backend_to_test=backend_fw, - ) - - -# rad2deg -@handle_frontend_test( - fn_tree="paddle.rad2deg", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_rad2deg( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# reciprocal -@handle_frontend_test( - fn_tree="paddle.reciprocal", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_reciprocal( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# reciprocal_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.reciprocal_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_reciprocal_( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# remainder -@handle_frontend_test( - fn_tree="paddle.remainder", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_remainder( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# round -@handle_frontend_test( - fn_tree="paddle.tensor.math.round", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - min_value=1, - ), -) -def test_paddle_round( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - backend_fw, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# round_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.round_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - min_value=1, - ), -) -def test_paddle_round_( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - backend_fw, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# rsqrt -@handle_frontend_test( - fn_tree="paddle.tensor.math.rsqrt", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_rsqrt( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - on_device, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# rsqrt_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.rsqrt_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_rsqrt_( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - on_device, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -@handle_frontend_test( - fn_tree="paddle.tensor.math.sgn", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float_and_complex"), - min_num_dims=1, - max_num_dims=1, - min_dim_size=1, - max_dim_size=1, - abs_smallest_val=1e-10, - min_value=-10, - max_value=10, - ), -) -def test_paddle_sgn( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# sign -@handle_frontend_test( - fn_tree="paddle.tensor.math.sign", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_sign( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# sin -@handle_frontend_test( - fn_tree="paddle.sin", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_sin( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# diff -# sinh -@handle_frontend_test( - fn_tree="paddle.sinh", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_sinh( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# sqrt -@handle_frontend_test( - fn_tree="paddle.tensor.math.sqrt", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_sqrt( - *, - dtype_and_x, - frontend, - test_flags, - fn_tree, - backend_fw, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# sqrt_ -@handle_frontend_test( - fn_tree="paddle.tensor.math.sqrt_", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_sqrt_( - *, - dtype_and_x, - fn_tree, - frontend, - test_flags, - backend_fw, - on_device, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# square -@handle_frontend_test( - fn_tree="paddle.tensor.math.square", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_square( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) - - -# stanh -@handle_frontend_test( - fn_tree="paddle.tensor.math.stanh", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), - scale_a=st.floats(1e-5, 1e5), - scale_b=st.floats(1e-5, 1e5), -) -def test_paddle_stanh( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, - scale_a, - scale_b, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - test_flags=test_flags, - backend_to_test=backend_fw, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - scale_a=scale_a, - scale_b=scale_b, - ) - - -# subtract -@handle_frontend_test( - fn_tree="paddle.subtract", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - num_arrays=2, - allow_inf=False, - large_abs_safety_factor=2, - small_abs_safety_factor=2, - safety_factor_scale="log", - shared_dtype=True, - ), -) -def test_paddle_subtract( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - fn_tree=fn_tree, - test_flags=test_flags, - on_device=on_device, - x=x[0], - y=x[1], - ) - - -# take -@handle_frontend_test( - fn_tree="paddle.take", dtype_and_values=_test_paddle_take_helper() -) -def test_paddle_take( - *, - dtype_and_values, - on_device, - fn_tree, - backend_fw, - frontend, - test_flags, -): - dtypes, xs, indices, modes = dtype_and_values - helpers.test_frontend_function( - input_dtypes=dtypes, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=xs, - index=indices, - mode=modes, - ) - - -# tan -@handle_frontend_test( - fn_tree="paddle.tensor.math.tan", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - ), -) -def test_paddle_tan( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - atol=1e-2, - x=x[0], - ) - - -# tanh -@handle_frontend_test( - fn_tree="paddle.tensor.math.tanh", - aliases=["paddle.tanh", "paddle.nn.functional.tanh"], - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), -) -def test_paddle_tanh( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - atol=1e-2, - x=x[0], - ) - - -# trunc -@handle_frontend_test( - fn_tree="paddle.trunc", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float", "int"), - ), -) -def test_paddle_trunc( - *, - dtype_and_x, - on_device, - fn_tree, - frontend, - backend_fw, - test_flags, -): - input_dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - x=x[0], - ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py index d01891a3e81ce..8880032bf12b2 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_random.py @@ -2,7 +2,6 @@ from hypothesis import strategies as st # local - import ivy_tests.test_ivy.helpers as helpers from ivy_tests.test_ivy.helpers import handle_frontend_test @@ -38,272 +37,6 @@ def test_paddle_exponential_( ) -@handle_frontend_test( - fn_tree="paddle.normal", - input_dtypes=st.sampled_from([["float32"], ["float64"]]), - shape=helpers.get_shape( - min_num_dims=1, - min_dim_size=1, - ), - mean=st.floats( - min_value=-10, - max_value=10, - ), - std=st.floats( - min_value=0, - max_value=10, - ), -) -def test_paddle_normal( - input_dtypes, - shape, - mean, - std, - frontend, - backend_fw, - test_flags, - fn_tree, -): - helpers.test_frontend_function( - input_dtypes=input_dtypes, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - test_values=False, - mean=mean, - std=std, - shape=shape, - ) - - -@handle_frontend_test( - fn_tree="paddle.poisson", - dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), - min_value=0, - max_value=1000, - min_num_dims=1, - max_num_dims=1, - min_dim_size=2, - max_dim_size=2, - ), -) -def test_paddle_poisson(dtype_and_x, backend_fw, frontend, test_flags, fn_tree): - dtype, x = dtype_and_x - helpers.test_frontend_function( - input_dtypes=dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - test_values=False, - x=x[0], - ) - - -@handle_frontend_test( - fn_tree="paddle.rand", - input_dtypes=st.sampled_from(["int32", "int64"]), - shape=helpers.get_shape( - allow_none=False, - min_num_dims=0, - min_dim_size=1, - ), - dtype=helpers.get_dtypes("valid", full=False), -) -def test_paddle_rand( - *, - input_dtypes, - shape, - dtype, - frontend, - backend_fw, - test_flags, - fn_tree, -): - helpers.test_frontend_function( - input_dtypes=[input_dtypes], - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - test_values=False, - shape=shape, - dtype=dtype[0], - ) - - -# randint -@handle_frontend_test( - fn_tree="paddle.randint", - low=helpers.ints(min_value=0, max_value=10), - high=helpers.ints(min_value=11, max_value=20), - dtype=helpers.get_dtypes("integer"), - shape=helpers.get_shape( - allow_none=False, min_num_dims=2, max_num_dims=7, min_dim_size=2 - ), -) -def test_paddle_randint( - low, - high, - dtype, - backend_fw, - frontend, - test_flags, - shape, - fn_tree, -): - helpers.test_frontend_function( - input_dtypes=dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_values=False, - fn_tree=fn_tree, - test_flags=test_flags, - low=low, - high=high, - shape=shape, - ) - - -@handle_frontend_test( - fn_tree="paddle.randint_like", - input_dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - shape=helpers.get_shape( - allow_none=False, min_num_dims=2, max_num_dims=7, min_dim_size=2 - ), - ), - low=st.integers(min_value=0, max_value=10), - high=st.integers(min_value=11, max_value=20), - dtype=helpers.get_dtypes("integer"), -) -def test_paddle_randint_like( - input_dtype_and_x, - low, - high, - dtype, - frontend, - backend_fw, - test_flags, - fn_tree, - on_device, -): - input_dtype, x = input_dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - test_values=False, - x=x[0], - low=low, - high=high, - dtype=dtype[0], - ) - - -@handle_frontend_test( - fn_tree="paddle.randn", - input_dtypes=st.sampled_from(["int32", "int64"]), - shape=helpers.get_shape( - allow_none=False, min_num_dims=1, max_num_dims=1, min_dim_size=2 - ), - dtype=st.sampled_from(["float32", "float64"]), -) -def test_paddle_randn( - *, - input_dtypes, - shape, - dtype, - frontend, - backend_fw, - test_flags, - fn_tree, -): - helpers.test_frontend_function( - input_dtypes=[input_dtypes], - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - test_values=False, - shape=shape, - dtype=dtype, - ) - - -@handle_frontend_test( - fn_tree="paddle.standard_normal", - input_dtypes=st.sampled_from([["int32"], ["int64"]]), - shape=helpers.get_shape( - min_num_dims=1, - min_dim_size=1, - ), - dtype=helpers.get_dtypes("valid", full=False), -) -def test_paddle_standard_normal( - input_dtypes, - shape, - dtype, - frontend, - backend_fw, - test_flags, - fn_tree, -): - helpers.test_frontend_function( - input_dtypes=input_dtypes, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - test_values=False, - shape=shape, - dtype=dtype[0], - ) - - -@handle_frontend_test( - fn_tree="paddle.uniform", - input_dtypes=helpers.get_dtypes("float"), - shape=st.tuples( - st.integers(min_value=2, max_value=5), st.integers(min_value=2, max_value=5) - ), - dtype=helpers.get_dtypes("valid", full=False), - min=st.floats(allow_nan=False, allow_infinity=False, width=32), - max=st.floats(allow_nan=False, allow_infinity=False, width=32), - seed=st.integers(min_value=2, max_value=5), -) -def test_paddle_uniform( - input_dtypes, - shape, - dtype, - min, - max, - seed, - frontend, - backend_fw, - test_flags, - fn_tree, -): - helpers.test_frontend_function( - input_dtypes=input_dtypes, - frontend=frontend, - backend_to_test=backend_fw, - test_flags=test_flags, - fn_tree=fn_tree, - test_values=False, - shape=shape, - dtype=dtype[0], - min=min, - max=max, - seed=seed, - ) - - @handle_frontend_test( fn_tree="paddle.tensor.random.uniform_", min=helpers.floats(min_value=-1, max_value=0), From 25fdf27b97cfee4d54b0a40bc3d908aa85330020 Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Fri, 8 Sep 2023 14:20:03 +0100 Subject: [PATCH 068/127] fix(frontend-paddle): Adds note comment about correct function placement --- ivy/functional/frontends/paddle/tensor/attribute.py | 4 ++++ ivy/functional/frontends/paddle/tensor/creation.py | 4 ++++ ivy/functional/frontends/paddle/tensor/linalg.py | 4 ++++ ivy/functional/frontends/paddle/tensor/logic.py | 4 ++++ ivy/functional/frontends/paddle/tensor/manipulation.py | 4 ++++ ivy/functional/frontends/paddle/tensor/math.py | 4 ++++ ivy/functional/frontends/paddle/tensor/random.py | 4 ++++ ivy/functional/frontends/paddle/tensor/search.py | 4 ++++ ivy/functional/frontends/paddle/tensor/stat.py | 4 ++++ 9 files changed, 36 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/attribute.py b/ivy/functional/frontends/paddle/tensor/attribute.py index 605913c9f2c85..3fcb6a41e706d 100644 --- a/ivy/functional/frontends/paddle/tensor/attribute.py +++ b/ivy/functional/frontends/paddle/tensor/attribute.py @@ -1,2 +1,6 @@ # local from ..attribute import * # noqa: F401 + +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/attribute.py`. diff --git a/ivy/functional/frontends/paddle/tensor/creation.py b/ivy/functional/frontends/paddle/tensor/creation.py index fa08078aa84b2..d6a21a6936a77 100644 --- a/ivy/functional/frontends/paddle/tensor/creation.py +++ b/ivy/functional/frontends/paddle/tensor/creation.py @@ -1,2 +1,6 @@ # local from ..creation import * # noqa: F401 + +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/creation.py`. diff --git a/ivy/functional/frontends/paddle/tensor/linalg.py b/ivy/functional/frontends/paddle/tensor/linalg.py index 4859ac7195588..0a6ef769578b7 100644 --- a/ivy/functional/frontends/paddle/tensor/linalg.py +++ b/ivy/functional/frontends/paddle/tensor/linalg.py @@ -1,2 +1,6 @@ # local from ..linalg import * # noqa: F401 + +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/linalg.py`. diff --git a/ivy/functional/frontends/paddle/tensor/logic.py b/ivy/functional/frontends/paddle/tensor/logic.py index 2b61d7f97cd96..11850f7aa1a5b 100644 --- a/ivy/functional/frontends/paddle/tensor/logic.py +++ b/ivy/functional/frontends/paddle/tensor/logic.py @@ -1,2 +1,6 @@ # local from ..logic import * # noqa: F401 + +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/logic.py`. diff --git a/ivy/functional/frontends/paddle/tensor/manipulation.py b/ivy/functional/frontends/paddle/tensor/manipulation.py index 4608e65d4407e..35ce51915f140 100644 --- a/ivy/functional/frontends/paddle/tensor/manipulation.py +++ b/ivy/functional/frontends/paddle/tensor/manipulation.py @@ -6,6 +6,10 @@ ) from ivy.func_wrapper import with_unsupported_dtypes +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/manipulation.py`. + @with_unsupported_dtypes( {"2.5.1 and below": ("int8", "uint8", "int16", "uint16", "float16", "bfloat16")}, diff --git a/ivy/functional/frontends/paddle/tensor/math.py b/ivy/functional/frontends/paddle/tensor/math.py index 0f7d820f6f42c..0f4695a7c8e14 100644 --- a/ivy/functional/frontends/paddle/tensor/math.py +++ b/ivy/functional/frontends/paddle/tensor/math.py @@ -4,6 +4,10 @@ from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes from ivy.functional.frontends.paddle.func_wrapper import to_ivy_arrays_and_back +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/math.py`. + @with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle") @to_ivy_arrays_and_back diff --git a/ivy/functional/frontends/paddle/tensor/random.py b/ivy/functional/frontends/paddle/tensor/random.py index 03ca569399bd3..ea6bd38157195 100644 --- a/ivy/functional/frontends/paddle/tensor/random.py +++ b/ivy/functional/frontends/paddle/tensor/random.py @@ -6,6 +6,10 @@ to_ivy_arrays_and_back, ) +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/random.py`. + @with_supported_dtypes( {"2.5.1 and below": ("float32", "float64")}, diff --git a/ivy/functional/frontends/paddle/tensor/search.py b/ivy/functional/frontends/paddle/tensor/search.py index 9fde09978f216..1d48ca8576aeb 100644 --- a/ivy/functional/frontends/paddle/tensor/search.py +++ b/ivy/functional/frontends/paddle/tensor/search.py @@ -1,2 +1,6 @@ # global from ..search import * # noqa: F401 + +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/search.py`. diff --git a/ivy/functional/frontends/paddle/tensor/stat.py b/ivy/functional/frontends/paddle/tensor/stat.py index 4e0771fbae0b7..e55abb99f7b40 100644 --- a/ivy/functional/frontends/paddle/tensor/stat.py +++ b/ivy/functional/frontends/paddle/tensor/stat.py @@ -1,2 +1,6 @@ # global from ..stat import * # noqa: F401 + +# NOTE: +# Only inplace functions are to be added in this file. +# Please add non-inplace counterparts to `/frontends/paddle/stat.py`. From c2d95b2c3c10ac1ea3e14869feae4c2c121cc1e8 Mon Sep 17 00:00:00 2001 From: sherry30 <65318415+sherry30@users.noreply.github.com> Date: Fri, 8 Sep 2023 18:49:50 +0500 Subject: [PATCH 069/127] Updated the youtube link for the deepdive in devices doc --- docs/overview/deep_dive/devices.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview/deep_dive/devices.rst b/docs/overview/deep_dive/devices.rst index 92b8cd8f66964..92e2d499b42ba 100644 --- a/docs/overview/deep_dive/devices.rst +++ b/docs/overview/deep_dive/devices.rst @@ -278,5 +278,5 @@ If you have any questions, please feel free to reach out on `discord`_ in the `d .. raw:: html From 52d0d7f327056a05c134af99dc175e08e751a086 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Fri, 8 Sep 2023 14:22:29 +0000 Subject: [PATCH 070/127] =?UTF-8?q?Update=20demos=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index d5b9659fc0ac4..57e4d1d5e5b01 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit d5b9659fc0ac4e6de37867db878b1d068e2c9a76 +Subproject commit 57e4d1d5e5b01a14674c9735154cbf7a5c570b66 From ef39bd32094abe84a05d59bfe5ed79a509c3416b Mon Sep 17 00:00:00 2001 From: Thathsarani-Sandarekha <108277335+Thathsarani-Sandarekha@users.noreply.github.com> Date: Fri, 8 Sep 2023 20:04:31 +0530 Subject: [PATCH 071/127] Added updated digamma function for TensorFlow frontend (#23114) Co-authored-by: Bella-wonder <108277335+Bella-wonder@users.noreply.github.com> Co-authored-by: ZoeCD <42352932+ZoeCD@users.noreply.github.com> --- ivy/functional/frontends/tensorflow/math.py | 5 ++++ .../frontends/tensorflow/raw_ops.py | 1 + .../test_tensorflow/test_math.py | 30 +++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/ivy/functional/frontends/tensorflow/math.py b/ivy/functional/frontends/tensorflow/math.py index 4283c2c151633..2779220159faf 100644 --- a/ivy/functional/frontends/tensorflow/math.py +++ b/ivy/functional/frontends/tensorflow/math.py @@ -226,6 +226,11 @@ def cumsum(x, axis, exclusive=False, reverse=False, name=None): ) +@to_ivy_arrays_and_back +def digamma(x, name=None): + return ivy.digamma(x) + + @to_ivy_arrays_and_back def divide(x, y, name=None): x, y = check_tensorflow_casting(x, y) diff --git a/ivy/functional/frontends/tensorflow/raw_ops.py b/ivy/functional/frontends/tensorflow/raw_ops.py index 3120d8395cab5..354afa54bdb71 100644 --- a/ivy/functional/frontends/tensorflow/raw_ops.py +++ b/ivy/functional/frontends/tensorflow/raw_ops.py @@ -49,6 +49,7 @@ Cosh = to_ivy_arrays_and_back(map_raw_ops_alias(tf_frontend.math.cosh)) Cumprod = to_ivy_arrays_and_back(map_raw_ops_alias(tf_frontend.math.cumprod)) Cumsum = to_ivy_arrays_and_back(map_raw_ops_alias(tf_frontend.math.cumsum)) +Digamma = to_ivy_arrays_and_back(map_raw_ops_alias(tf_frontend.math.digamma)) Div = to_ivy_arrays_and_back(map_raw_ops_alias(tf_frontend.math.divide)) Einsum = to_ivy_arrays_and_back( with_supported_dtypes( diff --git a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py index db0e0a9de988f..48935cb1b6021 100644 --- a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py +++ b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py @@ -761,6 +761,36 @@ def test_tensorflow_cumsum( # NOQA ) +# digamma +@handle_frontend_test( + fn_tree="tensorflow.math.digamma", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=1, + ), + test_with_out=st.just(False), +) +def test_tensorflow_digamma( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + # divide @handle_frontend_test( fn_tree="tensorflow.math.divide", From bf12316ba8874a0dec8de1d8f1dd6ef36e1d50e6 Mon Sep 17 00:00:00 2001 From: Kareem Morsy Date: Fri, 8 Sep 2023 17:40:18 +0300 Subject: [PATCH 072/127] docs: fix embed link --- docs/overview/deep_dive/devices.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview/deep_dive/devices.rst b/docs/overview/deep_dive/devices.rst index 92e2d499b42ba..1159535728bdb 100644 --- a/docs/overview/deep_dive/devices.rst +++ b/docs/overview/deep_dive/devices.rst @@ -278,5 +278,5 @@ If you have any questions, please feel free to reach out on `discord`_ in the `d .. raw:: html From 8759c189ac6cc522db6e8570ccbcfffb5cb20bde Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Fri, 8 Sep 2023 14:49:12 +0000 Subject: [PATCH 073/127] =?UTF-8?q?Update=20demos=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index 57e4d1d5e5b01..0491d7886cb34 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit 57e4d1d5e5b01a14674c9735154cbf7a5c570b66 +Subproject commit 0491d7886cb34dedc0416f0acc09891ca4cee70e From 69be905bea8118938de3f82d512c8595dabc8293 Mon Sep 17 00:00:00 2001 From: Shehryar Tariq Date: Fri, 8 Sep 2023 21:11:41 +0500 Subject: [PATCH 074/127] fix(testing-config): calling `as_native_dev` on backend argument in the config file --- ivy_tests/test_ivy/test_frontends/config/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy_tests/test_ivy/test_frontends/config/base.py b/ivy_tests/test_ivy/test_frontends/config/base.py index 815b1a74812e9..30c279418d94b 100644 --- a/ivy_tests/test_ivy/test_frontends/config/base.py +++ b/ivy_tests/test_ivy/test_frontends/config/base.py @@ -128,7 +128,7 @@ def as_native_dtype(self, dtype: str): return self.backend.as_native_dtype(dtype) def as_native_device(self, device: str): - return self.backend_as_native_dev(device) + return self.backend.as_native_dev(device) def isscalar(self, x): return self.backend.isscalar(x) From 09b7b62d171defe9b06d432cf4fefb4e29b0ace0 Mon Sep 17 00:00:00 2001 From: Shehryar Tariq Date: Fri, 8 Sep 2023 21:22:34 +0500 Subject: [PATCH 075/127] fix(testing-config): changing `as_native_dev` to `as_native_device` --- ivy_tests/test_ivy/helpers/function_testing.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ivy_tests/test_ivy/helpers/function_testing.py b/ivy_tests/test_ivy/helpers/function_testing.py index 5e20e7e7fa29d..072aa0449e6be 100644 --- a/ivy_tests/test_ivy/helpers/function_testing.py +++ b/ivy_tests/test_ivy/helpers/function_testing.py @@ -965,7 +965,7 @@ def arrays_to_numpy(x): # change ivy device to native devices if "device" in kwargs_frontend: - kwargs_frontend["device"] = frontend_config.as_native_dev( + kwargs_frontend["device"] = frontend_config.as_native_device( kwargs_frontend["device"] ) @@ -2092,7 +2092,7 @@ def test_frontend_method( frontend_config.as_native_dtype(x) if isinstance(x, frontend_config.Dtype) else ( - frontend_config.as_native_dev(x) + frontend_config.as_native_device(x) if isinstance(x, frontend_config.Device) else x ) @@ -2114,7 +2114,7 @@ def test_frontend_method( # change ivy device to native devices if "device" in kwargs_method_frontend: - kwargs_method_frontend["device"] = frontend_config.as_native_dev( + kwargs_method_frontend["device"] = frontend_config.as_native_device( kwargs_method_frontend["device"] ) frontend_creation_fn = getattr( From 87f703b827596beb71688db62487289fecc47b64 Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:00:48 -0400 Subject: [PATCH 076/127] Try without venv setup (Test push) --- ivy/engines/setup_xla.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ivy/engines/setup_xla.sh b/ivy/engines/setup_xla.sh index 632b5253dff8c..26429770b8dc2 100644 --- a/ivy/engines/setup_xla.sh +++ b/ivy/engines/setup_xla.sh @@ -1,8 +1,8 @@ #!/bin/bash -pip install virtualenv +#pip install virtualenv cd XLA/rust_api/ -mkdir xla_build && virtualenv xla_build -source xla_build/bin/activate +#mkdir xla_build && virtualenv xla_build +#source xla_build/bin/activate wget https://github.com/elixir-nx/xla/releases/download/v0.4.4/xla_extension-x86_64-linux-gnu-cuda111.tar.gz tar -xzvf xla_extension-x86_64-linux-gnu-cuda111.tar.gz curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y From d54c273a94c7a42a945c753f0ea8c3bb14441779 Mon Sep 17 00:00:00 2001 From: Mohammed Ayman Date: Fri, 8 Sep 2023 20:13:32 +0300 Subject: [PATCH 077/127] feat: made logit function support complex dtypes (#23213) --- .../array/experimental/activations.py | 14 +++++++-- .../container/experimental/activations.py | 13 ++++++-- .../backends/jax/experimental/activations.py | 3 +- .../numpy/experimental/activations.py | 3 +- .../paddle/experimental/activations.py | 13 ++++++-- .../tensorflow/experimental/activations.py | 3 +- .../torch/experimental/activations.py | 3 +- .../ivy/experimental/activations.py | 30 ++++++++++++++++++- ivy/stateful/activations.py | 27 +++++++++++++---- .../test_nn/test_activations.py | 2 +- .../test_stateful/test_activations.py | 2 +- 11 files changed, 93 insertions(+), 20 deletions(-) diff --git a/ivy/data_classes/array/experimental/activations.py b/ivy/data_classes/array/experimental/activations.py index 699022d70bdfa..92f997bf66ec9 100644 --- a/ivy/data_classes/array/experimental/activations.py +++ b/ivy/data_classes/array/experimental/activations.py @@ -1,6 +1,6 @@ # global import abc -from typing import Optional, Union +from typing import Optional, Union, Literal # local import ivy @@ -8,7 +8,12 @@ class _ArrayWithActivationsExperimental(abc.ABC): def logit( - self, /, *, eps: Optional[float] = None, out: Optional[ivy.Array] = None + self, + /, + *, + eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", + out: Optional[ivy.Array] = None, ) -> ivy.Array: """ ivy.Array instance method variant of ivy.logit. This method simply wraps the @@ -23,6 +28,9 @@ def logit( When eps is None the function outpus NaN where x < 0 or x > 1. and inf or -inf where x = 1 or x = 0, respectively. Otherwise if eps is defined, x is clamped to [eps, 1 - eps] + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out Optional output array. @@ -43,7 +51,7 @@ def logit( >>> print(z) ivy.array([ 1.38629448, 1.38629448, -1.38629436]) """ - return ivy.logit(self, eps=eps, out=out) + return ivy.logit(self, eps=eps, complex_mode=complex_mode, out=out) def thresholded_relu( self: ivy.Array, diff --git a/ivy/data_classes/container/experimental/activations.py b/ivy/data_classes/container/experimental/activations.py index aa60fc5bd9dfd..29c29a519761e 100644 --- a/ivy/data_classes/container/experimental/activations.py +++ b/ivy/data_classes/container/experimental/activations.py @@ -1,5 +1,5 @@ # global -from typing import Union, Optional, List, Dict +from typing import Union, Optional, List, Dict, Literal # local import ivy @@ -13,6 +13,7 @@ def static_logit( /, *, eps: Optional[Union[float, ivy.Container]] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[ivy.Container] = None, ) -> ivy.Container: """ @@ -28,6 +29,9 @@ def static_logit( When eps is None the function outpus NaN where x < 0 or x > 1. and inf or -inf where x = 1 or x = 0, respectively. Otherwise if eps is defined, x is clamped to [eps, 1 - eps] + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out Optional output Contaner. @@ -62,6 +66,7 @@ def static_logit( "logit", x, eps=eps, + complex_mode=complex_mode, out=out, ) @@ -70,6 +75,7 @@ def logit( /, *, eps: Optional[Union[float, ivy.Container]] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[ivy.Container] = None, ) -> ivy.Container: """ @@ -85,6 +91,9 @@ def logit( When eps is None the function outpus NaN where x < 0 or x > 1. and inf or -inf where x = 1 or x = 0, respectively. Otherwise if eps is defined, x is clamped to [eps, 1 - eps] + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out Optional output Contaner. @@ -115,7 +124,7 @@ def logit( b: ivy.array([-1.38629436, 1.38629448, -1.38629436]) } """ - return self.static_logit(self, eps=eps, out=out) + return self.static_logit(self, eps=eps, complex_mode=complex_mode, out=out) @staticmethod def static_thresholded_relu( diff --git a/ivy/functional/backends/jax/experimental/activations.py b/ivy/functional/backends/jax/experimental/activations.py index 788126f4b44cf..a18f2b240b61c 100644 --- a/ivy/functional/backends/jax/experimental/activations.py +++ b/ivy/functional/backends/jax/experimental/activations.py @@ -1,4 +1,4 @@ -from typing import Optional, Union +from typing import Optional, Union, Literal # global import jax @@ -13,6 +13,7 @@ def logit( /, *, eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[JaxArray] = None, ): if eps is None: diff --git a/ivy/functional/backends/numpy/experimental/activations.py b/ivy/functional/backends/numpy/experimental/activations.py index d3f8282a22de2..1ac8c43285a96 100644 --- a/ivy/functional/backends/numpy/experimental/activations.py +++ b/ivy/functional/backends/numpy/experimental/activations.py @@ -1,4 +1,4 @@ -from typing import Optional, Union +from typing import Optional, Union, Literal # global import numpy as np @@ -15,6 +15,7 @@ def logit( /, *, eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[np.ndarray] = None, ): x_dtype = x.dtype diff --git a/ivy/functional/backends/paddle/experimental/activations.py b/ivy/functional/backends/paddle/experimental/activations.py index 81bc6bdf25cb7..d4fd80403a331 100644 --- a/ivy/functional/backends/paddle/experimental/activations.py +++ b/ivy/functional/backends/paddle/experimental/activations.py @@ -1,5 +1,5 @@ # global -from typing import Optional, Union +from typing import Optional, Union, Literal import paddle import paddle.nn.functional as F @@ -10,9 +10,16 @@ @with_unsupported_device_and_dtypes( - {"2.5.1 and below": {"cpu": ("float16",)}}, backend_version + {"2.5.1 and below": {"cpu": ("float16", "bfloat16")}}, backend_version ) -def logit(x: paddle.Tensor, /, *, eps: Optional[float] = None, out=None): +def logit( + x: paddle.Tensor, + /, + *, + eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", + out=None, +): if x.dtype in [paddle.float32, paddle.float64]: return paddle.logit(x, eps) if eps is None: diff --git a/ivy/functional/backends/tensorflow/experimental/activations.py b/ivy/functional/backends/tensorflow/experimental/activations.py index f798d7b907d98..5ba64d523be10 100644 --- a/ivy/functional/backends/tensorflow/experimental/activations.py +++ b/ivy/functional/backends/tensorflow/experimental/activations.py @@ -1,4 +1,4 @@ -from typing import Optional, Union +from typing import Optional, Union, Literal # global import tensorflow as tf @@ -15,6 +15,7 @@ def logit( /, *, eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[Tensor] = None, ) -> Tensor: x_dtype = x.dtype diff --git a/ivy/functional/backends/torch/experimental/activations.py b/ivy/functional/backends/torch/experimental/activations.py index 98d72ac526c45..4331ac7b57fed 100644 --- a/ivy/functional/backends/torch/experimental/activations.py +++ b/ivy/functional/backends/torch/experimental/activations.py @@ -1,4 +1,4 @@ -from typing import Optional, Union +from typing import Optional, Union, Literal # global import torch @@ -16,6 +16,7 @@ def logit( /, *, eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[torch.Tensor] = None, ) -> torch.Tensor: return torch.logit(x, eps=eps, out=out) diff --git a/ivy/functional/ivy/experimental/activations.py b/ivy/functional/ivy/experimental/activations.py index 34203cffbaf6d..07c5279739070 100644 --- a/ivy/functional/ivy/experimental/activations.py +++ b/ivy/functional/ivy/experimental/activations.py @@ -1,5 +1,5 @@ # global -from typing import Union, Optional +from typing import Union, Optional, Callable, Literal # local import ivy @@ -14,9 +14,29 @@ inputs_to_ivy_arrays, handle_device_shifting, handle_backend_invalid, + handle_complex_input, ) +def _logit_jax_like( + x: Union[float, int, ivy.Array], + /, + *, + fn_original: Optional[Callable] = None, + eps: Optional[float] = None, + out: Optional[ivy.Array] = None, +): + real = ivy.real(x) + imag = ivy.imag(x) + if eps is None: + real = ivy.where(ivy.logical_or(real > 1, real < 0), ivy.nan, real) + else: + real = ivy.clip(real, eps, 1 - eps) + z = ivy.add(real, ivy.multiply(ivy.array(1j, dtype=x.dtype), imag)) + z = ivy.log(z / (1 - z)) + return z + + @handle_exceptions @handle_backend_invalid @handle_nestable @@ -24,11 +44,13 @@ @handle_out_argument @to_native_arrays_and_back @handle_device_shifting +@handle_complex_input def logit( x: Union[float, int, ivy.Array], /, *, eps: Optional[float] = None, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", out: Optional[ivy.Array] = None, ) -> ivy.Array: """ @@ -44,6 +66,9 @@ def logit( When eps is None the function outpus NaN where x < 0 or x > 1. and inf or -inf where x = 1 or x = 0, respectively. Otherwise if eps is defined, x is clamped to [eps, 1 - eps] + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. out Optional output array. @@ -67,6 +92,9 @@ def logit( return current_backend(x).logit(x, eps=eps, out=out) +logit.jax_like = _logit_jax_like + + @handle_exceptions @handle_nestable @handle_array_like_without_promotion diff --git a/ivy/stateful/activations.py b/ivy/stateful/activations.py index b75dd43fcce77..b83bac4fe826b 100644 --- a/ivy/stateful/activations.py +++ b/ivy/stateful/activations.py @@ -374,10 +374,25 @@ def _forward(self, x): class Logit(Module): - def __init__(self, eps=None): - """Apply the LOGIT activation function.""" + def __init__( + self, + eps=None, + complex_mode="jax", + ): + """ + Apply the LOGIT activation function. + + Parameters + ---------- + eps + The epsilon value for the logit formation. Default: ``None``. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. + """ Module.__init__(self) self._eps = eps + self._complex_mode = complex_mode def _forward(self, x): """ @@ -386,15 +401,17 @@ def _forward(self, x): ---------- x Inputs to process *[batch_shape, d]*. - eps - The epsilon value for the logit formation. Default: ``None``. Returns ------- ret The outputs following the LOGIT activation *[batch_shape, d]* """ - return ivy.logit(x, eps=self._eps) + return ivy.logit( + x, + eps=self._eps, + complex_mode=self._complex_mode, + ) class PReLU(Module): diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py index 03a8c0a880b28..7c213994ed770 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_activations.py @@ -44,7 +44,7 @@ def test_elu( @handle_test( fn_tree="functional.ivy.experimental.logit", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("float_and_complex"), large_abs_safety_factor=8, small_abs_safety_factor=8, safety_factor_scale="log", diff --git a/ivy_tests/test_ivy/test_stateful/test_activations.py b/ivy_tests/test_ivy/test_stateful/test_activations.py index e1fd840ccde11..3630421a1b7cc 100644 --- a/ivy_tests/test_ivy/test_stateful/test_activations.py +++ b/ivy_tests/test_ivy/test_stateful/test_activations.py @@ -288,7 +288,7 @@ def test_log_softmax( @handle_method( method_tree="stateful.activations.Logit.__call__", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("float_and_complex"), large_abs_safety_factor=8, small_abs_safety_factor=8, safety_factor_scale="log", From d2059c1399f4c3f341e80e142e4f9765ac29d2e2 Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Fri, 8 Sep 2023 19:34:08 +0100 Subject: [PATCH 078/127] fix(torch-frontend): Extended as_tensor to cover more supported cases (number/list inputs and None dtype) --- .../frontends/torch/creation_ops.py | 11 +++ .../test_torch/test_creation_ops.py | 70 ++++++++++++++----- 2 files changed, 65 insertions(+), 16 deletions(-) diff --git a/ivy/functional/frontends/torch/creation_ops.py b/ivy/functional/frontends/torch/creation_ops.py index ec2f79b4eb476..b275cfb9d5db8 100644 --- a/ivy/functional/frontends/torch/creation_ops.py +++ b/ivy/functional/frontends/torch/creation_ops.py @@ -5,6 +5,7 @@ to_ivy_shape, ) from ivy.func_wrapper import with_unsupported_dtypes +import ivy.functional.frontends.torch as torch_frontend @to_ivy_arrays_and_back @@ -46,6 +47,16 @@ def as_tensor( dtype=None, device=None, ): + if dtype is None: + if isinstance(data, int): + dtype = ivy.int64 + elif isinstance(data, float): + dtype = torch_frontend.get_default_dtype() + elif isinstance(data, (list, tuple)): + if all(isinstance(d, int) for d in data): + dtype = ivy.int64 + else: + dtype = torch_frontend.get_default_dtype() return ivy.asarray(data, dtype=dtype, device=device) diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py index fcbd20246b6b3..f5bda57fa6e1f 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py @@ -185,34 +185,72 @@ def test_torch_as_strided( raise e +@st.composite +def _as_tensor_helper(draw): + dtype_and_x = draw( + st.one_of( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), + st.floats(), + st.integers(), + st.lists(st.one_of(st.floats(), st.integers()), min_size=1), + ) + ) + if isinstance(dtype_and_x, tuple): + input_dtype = dtype_and_x[0] + x = dtype_and_x[1][0] + else: + input_dtype = [] + x = dtype_and_x + dtype = draw( + st.one_of( + helpers.get_castable_dtype( + draw(helpers.get_dtypes("valid")), + dtype=draw(helpers.get_dtypes("valid", full=False))[0], + x=x, + ), + st.none(), + ) + ) + if isinstance(dtype, tuple): + dtype = dtype[0] + return input_dtype, x, dtype + + # as_tensor @handle_frontend_test( fn_tree="torch.as_tensor", - dtype_and_x=helpers.dtype_and_values(available_dtypes=helpers.get_dtypes("valid")), - dtype=helpers.get_dtypes("valid", full=False), + dtype_x_dtype=_as_tensor_helper(), ) def test_torch_as_tensor( *, - dtype_and_x, - dtype, + dtype_x_dtype, on_device, fn_tree, frontend, test_flags, backend_fw, ): - input_dtype, input = dtype_and_x - helpers.test_frontend_function( - input_dtypes=input_dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - data=input[0], - dtype=dtype[0], - device=on_device, - ) + input_dtype, x, dtype = dtype_x_dtype + # ToDo: fix get_castable_dtype to avoid the exceptions + try: + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + data=x, + dtype=dtype, + device=on_device, + ) + except Exception as e: + if any(error_string in str(e) for error_string in ["overflow", "too large to convert to"]): + assume(False) + else: + raise # asarray From 8b6f65885642691eb8ea97a523febdc7a71e81de Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Fri, 8 Sep 2023 22:34:59 +0400 Subject: [PATCH 079/127] Fix small bug in ivy2xla. --- .../ivy2xla.cpython-310-x86_64-linux-gnu.so | Bin 827304 -> 830472 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ivy/engines/ivy2xla.cpython-310-x86_64-linux-gnu.so b/ivy/engines/ivy2xla.cpython-310-x86_64-linux-gnu.so index d03f3c41341913ecd6d321ad17eb41602ff1cef2..39de8148f389e58e01d21f9268b29e11fb77e055 100755 GIT binary patch literal 830472 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

  • Rq))9b%}zX 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 literal 827304 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 fXZ_$i82ITwQ&H}6lJvM5mD1v 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 Date: Fri, 8 Sep 2023 19:37:13 +0100 Subject: [PATCH 080/127] fix(testing): for get_castable_dtype complex should not be castable to non-complex and negative should not be castable to uint --- ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py b/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py index fe2d37e739c75..334b5a934a9cc 100644 --- a/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py +++ b/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py @@ -432,4 +432,6 @@ def cast_filter_helper(d, dtype, x, current_backend): max_x <= max_val and min_x >= min_val and bound_dtype_bits(d) >= bound_dtype_bits(dtype) + and (ivy_backend.is_complex_dtype(d) or not ivy_backend.is_complex_dtype(dtype)) + and (min_x > 0 or not ivy_backend.is_uint_dtype(dtype)) ) From 454122f37fdfa5cddbd5348e16532c46da8da3b1 Mon Sep 17 00:00:00 2001 From: MahmoudAshraf97 Date: Fri, 8 Sep 2023 18:59:16 +0000 Subject: [PATCH 081/127] revert #21262 as the actual implementation is missing --- .../ivy/experimental/activations.py | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/ivy/functional/ivy/experimental/activations.py b/ivy/functional/ivy/experimental/activations.py index 07c5279739070..c4519ec90fdb9 100644 --- a/ivy/functional/ivy/experimental/activations.py +++ b/ivy/functional/ivy/experimental/activations.py @@ -480,37 +480,3 @@ def elu( } """ return current_backend(x).elu(x, alpha=alpha, out=out) - - -def sequence_length( - x: Union[ivy.Array, ivy.NativeArray], /, *, out: Optional[ivy.Array] = None -) -> ivy.int64: - """ - Produce a scalar (tensor of empty shape) containing the number of tensors in the ivy - array input. - - Parameters - ---------- - x - Can be a sequence of any tensor type: bool, complex128, - complex64, double, float, float16, int16, int32, int64, - int8, string, uint16, uint32, uint64, uint8 - - Returns - ------- - length - Length of the input sequence, as a scalar (empty shape tensor). - - Examples - -------- - >>> x = ivy.array([True, False, True]) - >>> y = ivy.sequence_length(x) - >>> print(y) - 3 - - >>> x = [1.0, 2.5, -3.4, 5.6, -85.3] - >>> y = ivy.sequence_length(x) - >>> print(y) - 5 - """ - return current_backend(x).sequence_length(x, out=out) From 8814d5c2346cbca7085264e7fc5767ee55bd7fd8 Mon Sep 17 00:00:00 2001 From: MahmoudAshraf97 Date: Fri, 8 Sep 2023 21:10:07 +0000 Subject: [PATCH 082/127] added type hint to `PreciseMode` --- ivy/functional/ivy/general.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/functional/ivy/general.py b/ivy/functional/ivy/general.py index 284418141fe1c..6eb8b80c6d189 100644 --- a/ivy/functional/ivy/general.py +++ b/ivy/functional/ivy/general.py @@ -73,7 +73,7 @@ class PreciseMode: """Precise Mode Context Manager.""" # noinspection PyShadowingNames - def __init__(self, precise_mode): + def __init__(self, precise_mode: bool): self._precise_mode = precise_mode def __enter__(self): From 6934e693187076fcbb905afe29c96349e0eaccf7 Mon Sep 17 00:00:00 2001 From: MahadShahid8 <93673498+MahadShahid8@users.noreply.github.com> Date: Sat, 9 Sep 2023 03:09:30 +0500 Subject: [PATCH 083/127] Update general.py (#22570) --- ivy/functional/ivy/general.py | 70 ++++++++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/ivy/functional/ivy/general.py b/ivy/functional/ivy/general.py index 6eb8b80c6d189..cede286df1e1d 100644 --- a/ivy/functional/ivy/general.py +++ b/ivy/functional/ivy/general.py @@ -179,24 +179,51 @@ def __exit__(self, exc_type, exc_val, exc_tb): return self + def get_referrers_recursive( - item, depth=0, max_depth=None, seen_set=None, local_set=None -): + item: object, + depth: int = 0, + max_depth: int = None, + seen_set: set = None, + local_set: set = None +) -> ivy.Container: """ - Summary. + Recursively retrieve referrers for an object. + + This function recursively fetches referrers for the specified `item` up to a given `max_depth`. Parameters ---------- - item + item : object + The object for which referrers should be retrieved. + depth : int, optional + Current depth in the recursion. (default is 0) + max_depth : int, optional + Maximum depth of recursion. If `None`, there's no depth limit. (default is None) + seen_set : set, optional + Set of seen referrer IDs to prevent duplicates. (default is None) + local_set : set, optional + Set of local referrer IDs to avoid redundancy. (default is None) - depth - (Default value = 0) - max_depth - (Default value = None) - seen_set - (Default value = None) - local_set - (Default value = None`) + Returns + ------- + ivy.Container + A container representing referrers and their sub-referrers, respecting the `max_depth`. + + Examples + -------- + >>> import gc + >>> def example_function(): + ... obj = [1, 2, 3] + ... return get_referrers_recursive(obj, max_depth=2) + >>> result = example_function() + >>> print(result) + Container( + 'ref_id_1': Container( + 'ref_id_2': 'tracked', + 'ref_id_3': 'tracked' + ) + ) """ seen_set = ivy.default(seen_set, set()) local_set = ivy.default(local_set, set()) @@ -205,6 +232,7 @@ def get_referrers_recursive( alphabetical_keys=False, keyword_color_dict={"repr": "magenta"}, ) + referrers = [ ref for ref in gc.get_referrers(item) @@ -213,6 +241,7 @@ def get_referrers_recursive( and min([k in ref for k in ["depth", "max_depth", "seen_set", "local_set"]]) ) ] + local_set.add(str(id(referrers))) for ref in referrers: ref_id = str(id(ref)) @@ -220,27 +249,32 @@ def get_referrers_recursive( continue seen = ref_id in seen_set seen_set.add(ref_id) - refs_rec = lambda: get_referrers_recursive( - ref, depth + 1, max_depth, seen_set, local_set - ) + + def get_referrers_recursive_inner(): + return get_referrers_recursive( + ref, depth + 1, max_depth, seen_set, local_set + ) + this_repr = "tracked" if seen else str(ref).replace(" ", "") + if not seen and (not max_depth or depth < max_depth): val = ivy.Container( repr=this_repr, alphabetical_keys=False, keyword_color_dict={"repr": "magenta"}, ) - refs = refs_rec() + + refs = get_referrers_recursive_inner() for k, v in refs.items(): val[k] = v else: val = this_repr ret_cont[str(ref_id)] = val + return ret_cont - @handle_exceptions -@handle_backend_invalid +@handle_backend_invalid def is_native_array( x: Union[ivy.Array, ivy.NativeArray], /, *, exclusive: bool = False ) -> bool: From bce97882ea0c8886f31019478951652aa66c4393 Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Sat, 9 Sep 2023 13:18:15 +0800 Subject: [PATCH 084/127] fix: fix wrong docstring examples of log_poisson_loss --- ivy/functional/ivy/experimental/losses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/functional/ivy/experimental/losses.py b/ivy/functional/ivy/experimental/losses.py index 6070101b45ae4..8d2ef5d3e8f6a 100644 --- a/ivy/functional/ivy/experimental/losses.py +++ b/ivy/functional/ivy/experimental/losses.py @@ -66,7 +66,7 @@ def log_poisson_loss( -------- >>> x = ivy.array([0, 0, 1, 0]) >>> y = ivy.array([0.25, 0.25, 0.25, 0.25]) - >>> print(ivy.log_poisson_loss(x, z)) + >>> print(ivy.log_poisson_loss(x, y)) ivy.array([1.28402555, 1.28402555, 1.03402555, 1.28402555]) >>> z = ivy.array([0.1, 0.1, 0.7, 0.1]) From 977fa245e6895f0f5fe8a64d48a911d7313e151d Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Sat, 9 Sep 2023 13:18:41 +0800 Subject: [PATCH 085/127] feat: add array version of log_poisson_loss --- ivy/data_classes/array/experimental/losses.py | 74 +++++++++++++++++-- 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/ivy/data_classes/array/experimental/losses.py b/ivy/data_classes/array/experimental/losses.py index 45f01d9760fd0..bc03931d1cd0f 100644 --- a/ivy/data_classes/array/experimental/losses.py +++ b/ivy/data_classes/array/experimental/losses.py @@ -23,9 +23,9 @@ def l1_loss( Parameters ---------- self - input array. + input array containing true labels. target - input array containing the targeted values. + input array containing targeted labels. reduction ``'mean'``: The output will be averaged. ``'sum'``: The output will be summed. @@ -49,9 +49,69 @@ def l1_loss( """ return ivy.l1_loss(self._data, target, reduction=reduction, out=out) + def log_poisson_loss( + self: Union[ivy.Array, ivy.NativeArray], + target: Union[ivy.Array, ivy.NativeArray], + /, + *, + compute_full_loss: bool = False, + axis: int = -1, + reduction: str = "none", + out: Optional[ivy.Array] = None, + ) -> ivy.Array: + """ + ivy.Array instance method variant of ivy.log_poisson_loss. This method simply + wraps the function, and so the docstring for ivy.l1_loss also applies to this + method with minimal changes. + + Parameters + ---------- + self + input array containing true labels. + target + input array containing targeted labels. + compute_full_loss + whether to compute the full loss. If false, a constant term is dropped + in favor of more efficient optimization. Default: ``False``. + axis + the axis along which to compute the log-likelihood loss. If axis is ``-1``, + the log-likelihood loss will be computed along the last dimension. + Default: ``-1``. + reduction + ``'none'``: No reduction will be applied to the output. + ``'mean'``: The output will be averaged. + ``'sum'``: The output will be summed. Default: ``'none'``. + out + optional output array, for writing the result to. It must have a shape + that the inputs broadcast to. + + Returns + ------- + ret + The binary log-likelihood loss between the given distributions. + + + Examples + -------- + >>> x = ivy.array([0, 0, 1, 0]) + >>> y = ivy.array([0.25, 0.25, 0.25, 0.25]) + >>> loss = x.log_poisson_loss(y) + >>> print(loss) + ivy.array([1.28402555, 1.28402555, 1.03402555, 1.28402555]) + + >>> z = ivy.array([0.1, 0.1, 0.7, 0.1]) + >>> loss = x.x.log_poisson_loss(z, reduction='mean') + >>> print(loss) + ivy.array(1.1573164) + """ + return ivy.log_poisson_loss( + self._data, target, compute_full_loss=compute_full_loss, axis=axis, + reduction=reduction, out=out + ) + def huber_loss( self: ivy.Array, - pred: Union[ivy.Array, ivy.NativeArray], + target: Union[ivy.Array, ivy.NativeArray], /, *, reduction: Optional[str] = "mean", @@ -66,9 +126,9 @@ def huber_loss( Parameters ---------- self - The true (ground truth) values. - pred - The predicted values by the model. + input array containing true labels. + target + input array containing targeted labels. reduction : str, optional The type of reduction to apply to the loss. Possible values are "mean" (default) @@ -94,7 +154,7 @@ def huber_loss( ivy.array([0.125, 0.125, 0.5 , 0.125]) """ return ivy.huber_loss( - self._data, pred, reduction=reduction, delta=delta, out=out + self._data, target, reduction=reduction, delta=delta, out=out ) def smooth_l1_loss( From 853356fd6e9a60ba0bd9c4b51d942cdc749d5b3b Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Sat, 9 Sep 2023 13:26:49 +0800 Subject: [PATCH 086/127] feat: add container version of log_poisson_loss --- .../container/experimental/losses.py | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) diff --git a/ivy/data_classes/container/experimental/losses.py b/ivy/data_classes/container/experimental/losses.py index b0cf6c1c4225e..52a457252ceff 100644 --- a/ivy/data_classes/container/experimental/losses.py +++ b/ivy/data_classes/container/experimental/losses.py @@ -160,6 +160,181 @@ def l1_loss( out=out, ) + @staticmethod + def _static_log_poisson_loss( + input: Union[ivy.Container, ivy.Array, ivy.NativeArray], + target: Union[ivy.Container, ivy.Array, ivy.NativeArray], + /, + *, + compute_full_loss: bool = False, + axis: int = -1, + reduction: Optional[Union[str, ivy.Container]] = "mean", + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container static method variant of ivy.log_poisson_loss. This method simply wraps the + function, and so the docstring for ivy.log_poisson_loss also applies to this method with + minimal changes. + + Parameters + ---------- + input + input array or container. + target + input array or container containing the targeted values. + compute_full_loss + whether to compute the full loss. If false, a constant term is dropped + in favor of more efficient optimization. Default: ``False``. + axis + the axis along which to compute the log-likelihood loss. If axis is ``-1``, + the log-likelihood loss will be computed along the last dimension. + Default: ``-1``. + reduction + ``'mean'``: The output will be averaged. + ``'sum'``: The output will be summed. + ``'none'``: No reduction will be applied to the output. Default: ``'none'``. + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If input, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``input``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + out + optional output container, for writing the result to. It must have a shape + that the inputs broadcast to. + + Returns + ------- + ret + The L1 loss between the input array and the targeted values. + + Examples + -------- + With :class:`ivy.Container` inputs: + + >>> x = ivy.Container(a=ivy.array([1, 2, 3]), b=ivy.array([4, 5, 6])) + >>> y = ivy.Container(a=ivy.array([2, 2, 2]), b=ivy.array([5, 5, 5])) + >>> z = ivy.Container.static_log_poisson_loss(x, y, reduction='mean') + >>> print(z) + { + a: ivy.array(1.), + b: ivy.array(0.) + } + + With a mix of :class:`ivy.Array` and :class:`ivy.Container` inputs: + + >>> x = ivy.array([1, 2, 3]) + >>> y = ivy.Container(a=ivy.array([2, 2, 2]), b=ivy.array([5, 5, 5])) + >>> z = ivy.Container.static_log_poisson_loss(x, y, reduction='mean') + >>> print(z) + { + a: ivy.array(1.), + b: ivy.array(4.) + } + """ + return ContainerBase.cont_multi_map_in_function( + "log_poisson_loss", + input, + target, + compute_full_loss=compute_full_loss, + axis=axis, + reduction=reduction, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) + + def log_poisson_loss( + self: ivy.Container, + target: Union[ivy.Container, ivy.Array, ivy.NativeArray], + /, + *, + compute_full_loss: bool = False, + axis: int = -1, + reduction: Optional[Union[str, ivy.Container]] = "mean", + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.log_poisson_loss. This method simply wraps + the function, and so the docstring for ivy.log_poisson_loss also applies to this method + with minimal changes. + + Parameters + ---------- + self + input container. + target + input array or container containing the targeticted values. + compute_full_loss + whether to compute the full loss. If false, a constant term is dropped + in favor of more efficient optimization. Default: ``False``. + axis + the axis along which to compute the log-likelihood loss. If axis is ``-1``, + the log-likelihood loss will be computed along the last dimension. + Default: ``-1``. + reduction + ``'mean'``: The output will be averaged. + ``'sum'``: The output will be summed. + ``'none'``: No reduction will be applied to the output. Default: ``'none'``. + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If input, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``input``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + out + optional output container, for writing the result to. It must have a shape + that the inputs broadcast to. + + Returns + ------- + ret + The L1 loss between the input array and the targeticted values. + + Examples + -------- + >>> x = ivy.Container(a=ivy.array([1, 2, 3]), b=ivy.array([4, 5, 6])) + >>> y = ivy.Container(a=ivy.array([2, 2, 2]), b=ivy.array([5, 5, 5])) + >>> z = x.log_poisson_loss(y) + >>> print(z) + { + a: ivy.array(1.), + b: ivy.array(0.) + } + """ + return self._static_log_poisson_loss( + self, + target, + compute_full_loss=compute_full_loss, + axis=axis, + reduction=reduction, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) + @staticmethod def _static_smooth_l1_loss( input: Union[ivy.Container, ivy.Array, ivy.NativeArray], From ba9712ffd53cc5f78ae613ad5b5aad1261504da5 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Sat, 9 Sep 2023 08:06:33 +0000 Subject: [PATCH 087/127] =?UTF-8?q?=F0=9F=A4=96=20Lint=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ivy/data_classes/array/experimental/losses.py | 12 ++-- .../container/experimental/losses.py | 12 ++-- .../frontends/paddle/tensor/attribute.py | 4 -- .../frontends/paddle/tensor/creation.py | 4 -- .../frontends/paddle/tensor/linalg.py | 4 -- .../frontends/paddle/tensor/logic.py | 4 -- .../frontends/paddle/tensor/search.py | 4 -- .../frontends/paddle/tensor/stat.py | 4 -- ivy/functional/ivy/general.py | 20 +++--- .../hypothesis_helpers/dtype_helpers.py | 5 +- .../test_tensor/test_manipulation.py | 4 +- .../test_paddle/test_tensor/test_math.py | 4 -- .../test_torch/test_creation_ops.py | 71 ++++++++++--------- 13 files changed, 66 insertions(+), 86 deletions(-) diff --git a/ivy/data_classes/array/experimental/losses.py b/ivy/data_classes/array/experimental/losses.py index bc03931d1cd0f..8913cf936cc85 100644 --- a/ivy/data_classes/array/experimental/losses.py +++ b/ivy/data_classes/array/experimental/losses.py @@ -60,8 +60,8 @@ def log_poisson_loss( out: Optional[ivy.Array] = None, ) -> ivy.Array: """ - ivy.Array instance method variant of ivy.log_poisson_loss. This method simply - wraps the function, and so the docstring for ivy.l1_loss also applies to this + ivy.Array instance method variant of ivy.log_poisson_loss. This method simply + wraps the function, and so the docstring for ivy.l1_loss also applies to this method with minimal changes. Parameters @@ -105,8 +105,12 @@ def log_poisson_loss( ivy.array(1.1573164) """ return ivy.log_poisson_loss( - self._data, target, compute_full_loss=compute_full_loss, axis=axis, - reduction=reduction, out=out + self._data, + target, + compute_full_loss=compute_full_loss, + axis=axis, + reduction=reduction, + out=out, ) def huber_loss( diff --git a/ivy/data_classes/container/experimental/losses.py b/ivy/data_classes/container/experimental/losses.py index 52a457252ceff..482d9e82198f7 100644 --- a/ivy/data_classes/container/experimental/losses.py +++ b/ivy/data_classes/container/experimental/losses.py @@ -176,9 +176,9 @@ def _static_log_poisson_loss( out: Optional[ivy.Container] = None, ) -> ivy.Container: """ - ivy.Container static method variant of ivy.log_poisson_loss. This method simply wraps the - function, and so the docstring for ivy.log_poisson_loss also applies to this method with - minimal changes. + ivy.Container static method variant of ivy.log_poisson_loss. This method simply + wraps the function, and so the docstring for ivy.log_poisson_loss also applies + to this method with minimal changes. Parameters ---------- @@ -270,9 +270,9 @@ def log_poisson_loss( out: Optional[ivy.Container] = None, ) -> ivy.Container: """ - ivy.Container instance method variant of ivy.log_poisson_loss. This method simply wraps - the function, and so the docstring for ivy.log_poisson_loss also applies to this method - with minimal changes. + ivy.Container instance method variant of ivy.log_poisson_loss. This method + simply wraps the function, and so the docstring for ivy.log_poisson_loss also + applies to this method with minimal changes. Parameters ---------- diff --git a/ivy/functional/frontends/paddle/tensor/attribute.py b/ivy/functional/frontends/paddle/tensor/attribute.py index 3fcb6a41e706d..605913c9f2c85 100644 --- a/ivy/functional/frontends/paddle/tensor/attribute.py +++ b/ivy/functional/frontends/paddle/tensor/attribute.py @@ -1,6 +1,2 @@ # local from ..attribute import * # noqa: F401 - -# NOTE: -# Only inplace functions are to be added in this file. -# Please add non-inplace counterparts to `/frontends/paddle/attribute.py`. diff --git a/ivy/functional/frontends/paddle/tensor/creation.py b/ivy/functional/frontends/paddle/tensor/creation.py index d6a21a6936a77..fa08078aa84b2 100644 --- a/ivy/functional/frontends/paddle/tensor/creation.py +++ b/ivy/functional/frontends/paddle/tensor/creation.py @@ -1,6 +1,2 @@ # local from ..creation import * # noqa: F401 - -# NOTE: -# Only inplace functions are to be added in this file. -# Please add non-inplace counterparts to `/frontends/paddle/creation.py`. diff --git a/ivy/functional/frontends/paddle/tensor/linalg.py b/ivy/functional/frontends/paddle/tensor/linalg.py index 0a6ef769578b7..4859ac7195588 100644 --- a/ivy/functional/frontends/paddle/tensor/linalg.py +++ b/ivy/functional/frontends/paddle/tensor/linalg.py @@ -1,6 +1,2 @@ # local from ..linalg import * # noqa: F401 - -# NOTE: -# Only inplace functions are to be added in this file. -# Please add non-inplace counterparts to `/frontends/paddle/linalg.py`. diff --git a/ivy/functional/frontends/paddle/tensor/logic.py b/ivy/functional/frontends/paddle/tensor/logic.py index 11850f7aa1a5b..2b61d7f97cd96 100644 --- a/ivy/functional/frontends/paddle/tensor/logic.py +++ b/ivy/functional/frontends/paddle/tensor/logic.py @@ -1,6 +1,2 @@ # local from ..logic import * # noqa: F401 - -# NOTE: -# Only inplace functions are to be added in this file. -# Please add non-inplace counterparts to `/frontends/paddle/logic.py`. diff --git a/ivy/functional/frontends/paddle/tensor/search.py b/ivy/functional/frontends/paddle/tensor/search.py index 1d48ca8576aeb..9fde09978f216 100644 --- a/ivy/functional/frontends/paddle/tensor/search.py +++ b/ivy/functional/frontends/paddle/tensor/search.py @@ -1,6 +1,2 @@ # global from ..search import * # noqa: F401 - -# NOTE: -# Only inplace functions are to be added in this file. -# Please add non-inplace counterparts to `/frontends/paddle/search.py`. diff --git a/ivy/functional/frontends/paddle/tensor/stat.py b/ivy/functional/frontends/paddle/tensor/stat.py index e55abb99f7b40..4e0771fbae0b7 100644 --- a/ivy/functional/frontends/paddle/tensor/stat.py +++ b/ivy/functional/frontends/paddle/tensor/stat.py @@ -1,6 +1,2 @@ # global from ..stat import * # noqa: F401 - -# NOTE: -# Only inplace functions are to be added in this file. -# Please add non-inplace counterparts to `/frontends/paddle/stat.py`. diff --git a/ivy/functional/ivy/general.py b/ivy/functional/ivy/general.py index cede286df1e1d..5b63f9e020d66 100644 --- a/ivy/functional/ivy/general.py +++ b/ivy/functional/ivy/general.py @@ -179,13 +179,12 @@ def __exit__(self, exc_type, exc_val, exc_tb): return self - def get_referrers_recursive( item: object, depth: int = 0, max_depth: int = None, seen_set: set = None, - local_set: set = None + local_set: set = None, ) -> ivy.Container: """ Recursively retrieve referrers for an object. @@ -232,7 +231,7 @@ def get_referrers_recursive( alphabetical_keys=False, keyword_color_dict={"repr": "magenta"}, ) - + referrers = [ ref for ref in gc.get_referrers(item) @@ -241,7 +240,7 @@ def get_referrers_recursive( and min([k in ref for k in ["depth", "max_depth", "seen_set", "local_set"]]) ) ] - + local_set.add(str(id(referrers))) for ref in referrers: ref_id = str(id(ref)) @@ -249,32 +248,33 @@ def get_referrers_recursive( continue seen = ref_id in seen_set seen_set.add(ref_id) - + def get_referrers_recursive_inner(): return get_referrers_recursive( ref, depth + 1, max_depth, seen_set, local_set ) - + this_repr = "tracked" if seen else str(ref).replace(" ", "") - + if not seen and (not max_depth or depth < max_depth): val = ivy.Container( repr=this_repr, alphabetical_keys=False, keyword_color_dict={"repr": "magenta"}, ) - + refs = get_referrers_recursive_inner() for k, v in refs.items(): val[k] = v else: val = this_repr ret_cont[str(ref_id)] = val - + return ret_cont + @handle_exceptions -@handle_backend_invalid +@handle_backend_invalid def is_native_array( x: Union[ivy.Array, ivy.NativeArray], /, *, exclusive: bool = False ) -> bool: diff --git a/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py b/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py index 334b5a934a9cc..e725ddb7e3fe7 100644 --- a/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py +++ b/ivy_tests/test_ivy/helpers/hypothesis_helpers/dtype_helpers.py @@ -432,6 +432,9 @@ def cast_filter_helper(d, dtype, x, current_backend): max_x <= max_val and min_x >= min_val and bound_dtype_bits(d) >= bound_dtype_bits(dtype) - and (ivy_backend.is_complex_dtype(d) or not ivy_backend.is_complex_dtype(dtype)) + and ( + ivy_backend.is_complex_dtype(d) + or not ivy_backend.is_complex_dtype(dtype) + ) and (min_x > 0 or not ivy_backend.is_uint_dtype(dtype)) ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py index 74fe6f3d61248..c1265c500864e 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_manipulation.py @@ -12,6 +12,7 @@ # --- Helpers --- # # --------------- # + @st.composite def dtypes_x_reshape_(draw): shape = draw(helpers.get_shape(min_num_dims=1)) @@ -24,9 +25,6 @@ def dtypes_x_reshape_(draw): return dtypes, x, shape -# --- Main --- # -# ------------ # - # reshape_ @handle_frontend_test( fn_tree="paddle.tensor.manipulation.reshape_", diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py index 7d5ce9b70b273..692fec8fa6e5d 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py @@ -3,10 +3,6 @@ from ivy_tests.test_ivy.helpers import handle_frontend_test -# --- Main --- # -# ------------ # - - # ceil_ @handle_frontend_test( fn_tree="paddle.tensor.math.ceil_", diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py index f5bda57fa6e1f..ebcbee64b678d 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_creation_ops.py @@ -41,6 +41,39 @@ def _as_strided_helper(draw): return x_dtype, x, size, stride, offset +@st.composite +def _as_tensor_helper(draw): + dtype_and_x = draw( + st.one_of( + helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + ), + st.floats(), + st.integers(), + st.lists(st.one_of(st.floats(), st.integers()), min_size=1), + ) + ) + if isinstance(dtype_and_x, tuple): + input_dtype = dtype_and_x[0] + x = dtype_and_x[1][0] + else: + input_dtype = [] + x = dtype_and_x + dtype = draw( + st.one_of( + helpers.get_castable_dtype( + draw(helpers.get_dtypes("valid")), + dtype=draw(helpers.get_dtypes("valid", full=False))[0], + x=x, + ), + st.none(), + ) + ) + if isinstance(dtype, tuple): + dtype = dtype[0] + return input_dtype, x, dtype + + # Helper functions @@ -185,39 +218,6 @@ def test_torch_as_strided( raise e -@st.composite -def _as_tensor_helper(draw): - dtype_and_x = draw( - st.one_of( - helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("valid"), - ), - st.floats(), - st.integers(), - st.lists(st.one_of(st.floats(), st.integers()), min_size=1), - ) - ) - if isinstance(dtype_and_x, tuple): - input_dtype = dtype_and_x[0] - x = dtype_and_x[1][0] - else: - input_dtype = [] - x = dtype_and_x - dtype = draw( - st.one_of( - helpers.get_castable_dtype( - draw(helpers.get_dtypes("valid")), - dtype=draw(helpers.get_dtypes("valid", full=False))[0], - x=x, - ), - st.none(), - ) - ) - if isinstance(dtype, tuple): - dtype = dtype[0] - return input_dtype, x, dtype - - # as_tensor @handle_frontend_test( fn_tree="torch.as_tensor", @@ -247,7 +247,10 @@ def test_torch_as_tensor( device=on_device, ) except Exception as e: - if any(error_string in str(e) for error_string in ["overflow", "too large to convert to"]): + if any( + error_string in str(e) + for error_string in ["overflow", "too large to convert to"] + ): assume(False) else: raise From 3a02875a0959b4f8d63809c7957ac210ca1c1a40 Mon Sep 17 00:00:00 2001 From: Aaryan562 <82304628+Aaryan562@users.noreply.github.com> Date: Sun, 10 Sep 2023 00:26:41 +0530 Subject: [PATCH 088/127] Added trace method (#22872) Co-authored-by: bipinkrishnan --- .../frontends/paddle/tensor/tensor.py | 8 +++ .../test_paddle/test_tensor/test_tensor.py | 50 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/tensor.py b/ivy/functional/frontends/paddle/tensor/tensor.py index 1e19e9455d6e0..7a4f5dc308c88 100644 --- a/ivy/functional/frontends/paddle/tensor/tensor.py +++ b/ivy/functional/frontends/paddle/tensor/tensor.py @@ -724,6 +724,14 @@ def trunc(self, name=None): def stanh(self, scale_a=0.67, scale_b=1.7159, name=None): return paddle_frontend.stanh(self, scale_a=scale_a, scale_b=scale_b) + @with_supported_dtypes( + {"2.5.1 and below": ("int32", "int64", "float32", "float64")}, "paddle" + ) + def trace(self, offset=0, axis1=0, axis2=1, name=None): + return paddle_frontend.Tensor( + ivy.trace(self._ivy_array, offset=offset, axis1=axis1, axis2=axis2) + ) + @with_supported_dtypes( {"2.5.1 and below": ("float32", "float64", "int16", "int32", "int64", "uint8")}, "paddle", diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py index d53cee3018a24..4c9762080387f 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py @@ -3378,6 +3378,56 @@ def test_paddle_tensor_tanh( ) +# trace +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="paddle.to_tensor", + method_name="trace", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=1, + min_num_dims=2, + min_value=-1e04, + max_value=1e04, + allow_inf=False, + ), + offset=st.integers(min_value=-1e04, max_value=1e04), + axis1=st.integers(min_value=0, max_value=0), + axis2=st.integers(min_value=1, max_value=1), +) +def test_paddle_tensor_trace( + dtype_and_x, + offset, + axis1, + axis2, + frontend, + backend_fw, + frontend_method_data, + init_flags, + method_flags, + on_device, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + init_all_as_kwargs_np={ + "value": x[0], + }, + method_input_dtypes=input_dtype, + method_all_as_kwargs_np={ + "offset": offset, + "axis1": axis1, + "axis2": axis2, + }, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + frontend=frontend, + backend_to_test=backend_fw, + on_device=on_device, + ) + + @handle_frontend_method( class_tree=CLASS_TREE, init_tree="paddle.to_tensor", From 918966cfdfb47e03b2f4d839bc216da27d39a383 Mon Sep 17 00:00:00 2001 From: Arsh Pratap <62841337+arshPratap@users.noreply.github.com> Date: Sun, 10 Sep 2023 00:53:50 +0530 Subject: [PATCH 089/127] Added swish activation in Paddle frontend (#22995) Co-authored-by: bipinkrishnan --- .../paddle/nn/functional/activation.py | 6 ++++ .../test_functional/test_activation.py | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/ivy/functional/frontends/paddle/nn/functional/activation.py b/ivy/functional/frontends/paddle/nn/functional/activation.py index cbff12b6b5197..9e774211febc6 100644 --- a/ivy/functional/frontends/paddle/nn/functional/activation.py +++ b/ivy/functional/frontends/paddle/nn/functional/activation.py @@ -245,6 +245,12 @@ def softsign( return ivy.divide(x, ivy.add(1, ivy.abs(x))) +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def swish(x, name=None): + return ivy.multiply(x, ivy.sigmoid(x)) + + @with_supported_dtypes({"2.4.2 and below": ("float32", "float64")}, "paddle") @to_ivy_arrays_and_back def tanh_(x, name=None): diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_activation.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_activation.py index a1b17a2d3dbf2..799755d5378e9 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_activation.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_activation.py @@ -760,6 +760,34 @@ def test_paddle_softsign( ) +# swish +@handle_frontend_test( + fn_tree="paddle.nn.functional.swish", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + ), +) +def test_paddle_swish( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + ) + + # tanh_ @handle_frontend_test( fn_tree="paddle.nn.functional.tanh_", From ddfd42a8ba4a6e592fabd71e65c0f2118a695b0f Mon Sep 17 00:00:00 2001 From: Gadri Ebenezer Date: Sat, 9 Sep 2023 20:46:50 +0000 Subject: [PATCH 090/127] Frontend Paddle: pixel_unshuffle (#23289) Co-authored-by: nathzi1505 <41519676+nathzi1505@users.noreply.github.com> --- .../frontends/paddle/nn/functional/vision.py | 42 ++++++++++++++++++ .../test_nn/test_functional/test_vision.py | 44 +++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/ivy/functional/frontends/paddle/nn/functional/vision.py b/ivy/functional/frontends/paddle/nn/functional/vision.py index 653ed76189da5..4e98183b4ce4d 100644 --- a/ivy/functional/frontends/paddle/nn/functional/vision.py +++ b/ivy/functional/frontends/paddle/nn/functional/vision.py @@ -170,3 +170,45 @@ def pixel_shuffle(x, upscale_factor, data_format="NCHW"): return ivy.reshape( ivy.permute_dims(input_reshaped, (0, 1, 4, 2, 5, 3)), (b, oh, ow, oc) ) + + +@to_ivy_arrays_and_back +def pixel_unshuffle(x, downscale_factor, data_format="NCHW"): + if len(ivy.shape(x)) != 4: + raise ValueError( + "Input x should be 4D tensor, but received x with the shape of {}".format( + ivy.shape(x) + ) + ) + + if not isinstance(downscale_factor, int): + raise ValueError("Downscale factor must be int type") + + if downscale_factor <= 0: + raise ValueError("Downscale factor must be positive") + + if data_format not in ["NCHW", "NHWC"]: + raise ValueError( + "Attr(data_format) should be 'NCHW' or 'NHWC'." + "But recevie Attr(data_format): {} ".format(data_format) + ) + + if data_format == "NCHW": + b, c, h, w = ivy.shape(x) + oc = c * downscale_factor**2 + oh = h // downscale_factor + ow = w // downscale_factor + + x = ivy.reshape(x, (b, c, oh, downscale_factor, ow, downscale_factor)) + x = ivy.permute_dims(x, (0, 1, 3, 5, 2, 4)) + x = ivy.reshape(x, (b, oc, oh, ow)) + else: + b, h, w, c = ivy.shape(x) + oc = c * downscale_factor**2 + oh = h // downscale_factor + ow = w // downscale_factor + + x = ivy.reshape(x, (b, downscale_factor, oh, downscale_factor, ow, c)) + x = ivy.permute_dims(x, (0, 1, 3, 5, 2, 4)) + x = ivy.reshape(x, (b, oh, ow, oc)) + return x diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_vision.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_vision.py index 0659e33a95bf2..a0841ee2e9a82 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_vision.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_vision.py @@ -174,3 +174,47 @@ def test_paddle_pixel_shuffle( data_format=data_format, backend_to_test=backend_fw, ) + + +# pixel_unshuffle +@handle_frontend_test( + fn_tree="paddle.nn.functional.pixel_unshuffle", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=["float32", "float64"], + min_value=0, + min_num_dims=4, + max_num_dims=4, + min_dim_size=3, + ), + factor=helpers.ints(min_value=1), + data_format=st.sampled_from(["NCHW", "NHWC"]), +) +def test_paddle_pixel_unshuffle( + *, + dtype_and_x, + factor, + data_format, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, x = dtype_and_x + if data_format == "NCHW": + assume(ivy.shape(x[0])[2] % factor == 0) + assume(ivy.shape(x[0])[3] % factor == 0) + else: + assume(ivy.shape(x[0])[1] % factor == 0) + assume(ivy.shape(x[0])[2] % factor == 0) + helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + x=x[0], + downscale_factor=factor, + data_format=data_format, + backend_to_test=backend_fw, + ) From c98b5a35066e3bfe0c651fa8d95e9344a572a2e0 Mon Sep 17 00:00:00 2001 From: muzakkirhussain011 <138936198+muzakkirhussain011@users.noreply.github.com> Date: Sun, 10 Sep 2023 02:17:19 +0530 Subject: [PATCH 091/127] =?UTF-8?q?Implemented=20precision=5Fscore=20funct?= =?UTF-8?q?ion=20in=20=5Fclassification.py=20and=20Added=20=E2=80=A6=20(#2?= =?UTF-8?q?3277)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: nathzi1505 <41519676+nathzi1505@users.noreply.github.com> --- .../sklearn/metrics/_classification.py | 26 ++++++++++++ .../test_metrics/test_classification.py | 41 +++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/ivy/functional/frontends/sklearn/metrics/_classification.py b/ivy/functional/frontends/sklearn/metrics/_classification.py index e6679505631b5..b5fece615691b 100644 --- a/ivy/functional/frontends/sklearn/metrics/_classification.py +++ b/ivy/functional/frontends/sklearn/metrics/_classification.py @@ -1,6 +1,7 @@ import ivy from ivy.functional.frontends.numpy.func_wrapper import to_ivy_arrays_and_back from sklearn.utils.multiclass import type_of_target +from ivy.utils.exceptions import IvyValueError @to_ivy_arrays_and_back @@ -17,3 +18,28 @@ def accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None): ret = ret / y_true.shape[0] ret = ret.astype("float64") return ret + + +@to_ivy_arrays_and_back +def precision_score(y_true, y_pred, *, average="binary", sample_weight=None): + # TODO: implement sample_weight + y_type = type_of_target(y_true) + if y_type.startswith("multilabel"): + true_positives = ivy.count_nonzero( + ivy.equal(y_true, y_pred).astype("int64"), axis=0 + ) + all_positives = ivy.count_nonzero(y_pred, axis=0) + else: + true_positives = ivy.count_nonzero( + ivy.equal(y_true, y_pred).astype("int64"), axis=1 + ) + all_positives = ivy.count_nonzero(y_pred) + if average == "binary": + precision = true_positives / all_positives + elif average == "micro": + precision = ivy.sum(true_positives) / ivy.sum(all_positives) + elif average == "macro": + precision = ivy.mean(true_positives / all_positives) + else: + raise IvyValueError("Invalid value for 'average'.") + return precision diff --git a/ivy_tests/test_ivy/test_frontends/test_sklearn/test_metrics/test_classification.py b/ivy_tests/test_ivy/test_frontends/test_sklearn/test_metrics/test_classification.py index 7977c77df3d03..d94f489a169b0 100644 --- a/ivy_tests/test_ivy/test_frontends/test_sklearn/test_metrics/test_classification.py +++ b/ivy_tests/test_ivy/test_frontends/test_sklearn/test_metrics/test_classification.py @@ -43,3 +43,44 @@ def test_sklearn_accuracy_score( normalize=normalize, sample_weight=None, ) + + +@handle_frontend_test( + fn_tree="sklearn.metrics.precision_score", + arrays_and_dtypes=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float_and_integer"), + num_arrays=2, + min_value=0, + max_value=1, # Precision score typically works with binary classification + shared_dtype=True, + shape=(helpers.ints(min_value=2, max_value=5)), + ), + average=st.sampled_from(["micro", "macro", "weighted"]), +) +def test_sklearn_precision_score( + arrays_and_dtypes, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, + average, +): + dtypes, values = arrays_and_dtypes + + # Ensure binary classification labels (0 and 1) + for i in range(2): + values[i] = np.round(values[i]) + + helpers.test_frontend_function( + input_dtypes=dtypes, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + frontend=frontend, + on_device=on_device, + y_true=values[0], + y_pred=values[1], + average=average, + sample_weight=None, + ) From a6307a874077e0b88b6ef9d6795d91c7d248e223 Mon Sep 17 00:00:00 2001 From: AliTarekk Date: Sat, 9 Sep 2023 23:48:44 +0300 Subject: [PATCH 092/127] Feature/add frontend function pytorch eigh (#22637) Co-authored-by: nathzi1505 <41519676+nathzi1505@users.noreply.github.com> --- ivy/functional/frontends/torch/linalg.py | 6 +++ .../test_frontends/test_torch/test_linalg.py | 45 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/ivy/functional/frontends/torch/linalg.py b/ivy/functional/frontends/torch/linalg.py index 0b66b968144f7..f5020bcf19593 100644 --- a/ivy/functional/frontends/torch/linalg.py +++ b/ivy/functional/frontends/torch/linalg.py @@ -390,3 +390,9 @@ def vector_norm(input, ord=2, dim=None, keepdim=False, *, dtype=None, out=None): return ivy.vector_norm( input, axis=dim, keepdims=keepdim, ord=ord, out=out, dtype=dtype ) + +@with_supported_dtypes( + {"2.0.1 and below": ("float32", "float64", "complex32", "complex64", "complex128")}, "torch", +) +def eigh(A, UPLO="L", *, out=None): + return ivy.eigh(A, UPLO=UPLO, out=out) \ No newline at end of file diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py index 51a4c7c6add48..fc0b29ba83dec 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py @@ -1364,3 +1364,48 @@ def test_torch_vector_norm( keepdim=kd, dtype=dtype[0], ) + + +@handle_frontend_test( + fn_tree="torch.linalg.eigh", + dtype_and_x=_get_dtype_and_matrix(dtype="valid", square=True, invertible=True), + UPLO=st.sampled_from(("L", "U")), +) +def test_torch_eigh( + *, + dtype_and_x, + UPLO, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + dtype, x = dtype_and_x + x = np.array(x[0], dtype=dtype[0]) + # make symmetric positive-definite beforehand + x = np.matmul(x.T, x) + np.identity(x.shape[0]) * 1e-3 + + ret, frontend_ret = helpers.test_frontend_function( + input_dtypes=dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=False, + a=x, + UPLO=UPLO, + ) + ret = [ivy.to_numpy(x) for x in ret] + frontend_ret = [np.asarray(x) for x in frontend_ret] + + L, Q = ret + frontend_L, frontend_Q = frontend_ret + + assert_all_close( + ret_np=Q @ np.diag(L) @ Q.T, + ret_from_gt_np=frontend_Q @ np.diag(frontend_L) @ frontend_Q.T, + atol=1e-02, + + ) From 70ec79a2e3aa5b9c5a16cb89662d1a87e20779c6 Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Sun, 10 Sep 2023 08:06:26 +0000 Subject: [PATCH 093/127] =?UTF-8?q?=F0=9F=A4=96=20Lint=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ivy/functional/frontends/torch/linalg.py | 14 +-- .../test_frontends/test_torch/test_linalg.py | 89 +++++++++---------- 2 files changed, 52 insertions(+), 51 deletions(-) diff --git a/ivy/functional/frontends/torch/linalg.py b/ivy/functional/frontends/torch/linalg.py index f5020bcf19593..dcfc92da0a9a9 100644 --- a/ivy/functional/frontends/torch/linalg.py +++ b/ivy/functional/frontends/torch/linalg.py @@ -76,6 +76,14 @@ def eigh(a, /, UPLO="L", out=None): return ivy.eigh(a, UPLO=UPLO, out=out) +@with_supported_dtypes( + {"2.0.1 and below": ("float32", "float64", "complex32", "complex64", "complex128")}, + "torch", +) +def eigh(A, UPLO="L", *, out=None): + return ivy.eigh(A, UPLO=UPLO, out=out) + + @to_ivy_arrays_and_back @with_supported_dtypes( {"2.0.1 and below": ("float32", "float64", "complex32", "complex64")}, "torch" @@ -390,9 +398,3 @@ def vector_norm(input, ord=2, dim=None, keepdim=False, *, dtype=None, out=None): return ivy.vector_norm( input, axis=dim, keepdims=keepdim, ord=ord, out=out, dtype=dtype ) - -@with_supported_dtypes( - {"2.0.1 and below": ("float32", "float64", "complex32", "complex64", "complex128")}, "torch", -) -def eigh(A, UPLO="L", *, out=None): - return ivy.eigh(A, UPLO=UPLO, out=out) \ No newline at end of file diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py index fc0b29ba83dec..7d11bfa7b5531 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_linalg.py @@ -516,6 +516,50 @@ def test_torch_eigh( ) +@handle_frontend_test( + fn_tree="torch.linalg.eigh", + dtype_and_x=_get_dtype_and_matrix(dtype="valid", square=True, invertible=True), + UPLO=st.sampled_from(("L", "U")), +) +def test_torch_eigh( + *, + dtype_and_x, + UPLO, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + dtype, x = dtype_and_x + x = np.array(x[0], dtype=dtype[0]) + # make symmetric positive-definite beforehand + x = np.matmul(x.T, x) + np.identity(x.shape[0]) * 1e-3 + + ret, frontend_ret = helpers.test_frontend_function( + input_dtypes=dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=False, + a=x, + UPLO=UPLO, + ) + ret = [ivy.to_numpy(x) for x in ret] + frontend_ret = [np.asarray(x) for x in frontend_ret] + + L, Q = ret + frontend_L, frontend_Q = frontend_ret + + assert_all_close( + ret_np=Q @ np.diag(L) @ Q.T, + ret_from_gt_np=frontend_Q @ np.diag(frontend_L) @ frontend_Q.T, + atol=1e-02, + ) + + # eigvals @handle_frontend_test( fn_tree="torch.linalg.eigvals", @@ -1364,48 +1408,3 @@ def test_torch_vector_norm( keepdim=kd, dtype=dtype[0], ) - - -@handle_frontend_test( - fn_tree="torch.linalg.eigh", - dtype_and_x=_get_dtype_and_matrix(dtype="valid", square=True, invertible=True), - UPLO=st.sampled_from(("L", "U")), -) -def test_torch_eigh( - *, - dtype_and_x, - UPLO, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - dtype, x = dtype_and_x - x = np.array(x[0], dtype=dtype[0]) - # make symmetric positive-definite beforehand - x = np.matmul(x.T, x) + np.identity(x.shape[0]) * 1e-3 - - ret, frontend_ret = helpers.test_frontend_function( - input_dtypes=dtype, - backend_to_test=backend_fw, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - test_values=False, - a=x, - UPLO=UPLO, - ) - ret = [ivy.to_numpy(x) for x in ret] - frontend_ret = [np.asarray(x) for x in frontend_ret] - - L, Q = ret - frontend_L, frontend_Q = frontend_ret - - assert_all_close( - ret_np=Q @ np.diag(L) @ Q.T, - ret_from_gt_np=frontend_Q @ np.diag(frontend_L) @ frontend_Q.T, - atol=1e-02, - - ) From 33d00426ec7f482cda651507a917e41eaf2a282d Mon Sep 17 00:00:00 2001 From: Shreyansh Bardia <104841983+ShreyanshBardia@users.noreply.github.com> Date: Sun, 10 Sep 2023 21:02:46 +0530 Subject: [PATCH 094/127] fixed numpy.prod failing tests (#21858) Co-authored-by: ivy-branch --- ivy/functional/backends/tensorflow/creation.py | 3 +++ .../numpy/mathematical_functions/sums_products_differences.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ivy/functional/backends/tensorflow/creation.py b/ivy/functional/backends/tensorflow/creation.py index 4ee6f22cced5c..05f3487191575 100644 --- a/ivy/functional/backends/tensorflow/creation.py +++ b/ivy/functional/backends/tensorflow/creation.py @@ -93,6 +93,9 @@ def asarray( try: ret = tf.convert_to_tensor(obj, dtype) except (TypeError, ValueError): + obj = ( + obj if isinstance(obj, tf.Tensor) else tf.convert_to_tensor(obj, tf.float64) + ) ret = tf.cast(obj, dtype) return tf.identity(ret) if copy else ret diff --git a/ivy/functional/frontends/numpy/mathematical_functions/sums_products_differences.py b/ivy/functional/frontends/numpy/mathematical_functions/sums_products_differences.py index 361a55c5c0dd0..a863284396fd9 100644 --- a/ivy/functional/frontends/numpy/mathematical_functions/sums_products_differences.py +++ b/ivy/functional/frontends/numpy/mathematical_functions/sums_products_differences.py @@ -8,6 +8,7 @@ from_zero_dim_arrays_to_scalar, handle_numpy_out, ) +import ivy.functional.frontends.numpy as np_frontend @handle_numpy_out @@ -114,9 +115,10 @@ def prod( initial=None, where=True, ): - if ivy.is_array(where): + if where is not True: x = ivy.where(where, x, ivy.default(out, ivy.ones_like(x)), out=out) if initial is not None: + initial = np_frontend.array(initial, dtype=dtype).tolist() if axis is not None: s = ivy.to_list(ivy.shape(x, as_array=True)) s[axis] = 1 From 09163ecb57f222ce3041f92802c456d426b0b1ea Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Sun, 10 Sep 2023 12:15:05 -0400 Subject: [PATCH 095/127] Add patchelf for binaries handling. --- requirements/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index e14c24869e34d..ade25f709cc43 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -11,3 +11,4 @@ requests pyvis dill astunparse +patchelf From c6e6167f3a1414f2f06b9c603e2477943859b8ed Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Sun, 10 Sep 2023 16:43:49 +0000 Subject: [PATCH 096/127] =?UTF-8?q?Update=20demos=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/demos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/demos b/docs/demos index 0491d7886cb34..1ba2b6ee7fe97 160000 --- a/docs/demos +++ b/docs/demos @@ -1 +1 @@ -Subproject commit 0491d7886cb34dedc0416f0acc09891ca4cee70e +Subproject commit 1ba2b6ee7fe97fff704f103c90b2ec8ca19a703e From c010d1723df4a605a6834db67c758c79c46bda46 Mon Sep 17 00:00:00 2001 From: Akshay <59740725+Killua7362@users.noreply.github.com> Date: Sun, 10 Sep 2023 22:29:04 +0530 Subject: [PATCH 097/127] changed key and value to pos argument in multiheadattention (#23375) --- ivy/data_classes/array/layers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ivy/data_classes/array/layers.py b/ivy/data_classes/array/layers.py index 550a225b7e798..1bfbb3cc805db 100644 --- a/ivy/data_classes/array/layers.py +++ b/ivy/data_classes/array/layers.py @@ -394,10 +394,10 @@ def scaled_dot_product_attention( def multi_head_attention( self: ivy.Array, - /, - *, key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + /, + *, num_heads: int = 8, scale: Optional[float] = None, attention_mask: Optional[Union[ivy.Array, ivy.NativeArray]] = None, From 0d17da0a589a0c44916b5e6c083279287e36780e Mon Sep 17 00:00:00 2001 From: Akshay <59740725+Killua7362@users.noreply.github.com> Date: Sun, 10 Sep 2023 22:47:57 +0530 Subject: [PATCH 098/127] move from keyword arg to pos arg multihead (#23376) --- ivy/data_classes/container/layers.py | 4 ++-- ivy/functional/ivy/layers.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ivy/data_classes/container/layers.py b/ivy/data_classes/container/layers.py index b56ed5c84a9d6..8e28923ad204a 100644 --- a/ivy/data_classes/container/layers.py +++ b/ivy/data_classes/container/layers.py @@ -1094,10 +1094,10 @@ def _static_multi_head_attention( def multi_head_attention( self: ivy.Container, - /, - *, key: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, value: Optional[Union[ivy.Array, ivy.NativeArray, ivy.Container]] = None, + /, + *, num_heads: Union[int, ivy.Container] = 8, scale: Optional[Union[float, ivy.Container]] = None, attention_mask: Optional[ diff --git a/ivy/functional/ivy/layers.py b/ivy/functional/ivy/layers.py index a471d62d08a78..a378c626db5da 100644 --- a/ivy/functional/ivy/layers.py +++ b/ivy/functional/ivy/layers.py @@ -710,10 +710,10 @@ def scaled_dot_product_attention( @handle_array_function def multi_head_attention( query: Union[ivy.Array, ivy.NativeArray], - /, - *, key: Optional[Union[ivy.Array, ivy.NativeArray]] = None, value: Optional[Union[ivy.Array, ivy.NativeArray]] = None, + /, + *, num_heads: int = 8, scale: Optional[float] = None, attention_mask: Optional[Union[ivy.Array, ivy.NativeArray]] = None, From 637bbd98f70783c3db180475dfde4e628db43128 Mon Sep 17 00:00:00 2001 From: Vaatsalya <96314403+vaatsalya123@users.noreply.github.com> Date: Sun, 10 Sep 2023 15:01:08 -0400 Subject: [PATCH 099/127] Update requirements.txt --- requirements/requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index ade25f709cc43..e14c24869e34d 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -11,4 +11,3 @@ requests pyvis dill astunparse -patchelf From 7695f21fbcc14f489ddccc28ec4d478722e370a9 Mon Sep 17 00:00:00 2001 From: ReneFabricius <65137969+ReneFabricius@users.noreply.github.com> Date: Mon, 11 Sep 2023 07:12:47 +0200 Subject: [PATCH 100/127] Ivy Functional API column_stack (#23110) --- .../array/experimental/manipulation.py | 36 ++++++ .../container/experimental/manipulation.py | 107 ++++++++++++++++++ .../backends/jax/experimental/manipulation.py | 6 + .../numpy/experimental/manipulation.py | 6 + .../paddle/experimental/manipulation.py | 4 + .../torch/experimental/manipulation.py | 6 + .../ivy/experimental/manipulation.py | 67 +++++++++++ .../hypothesis_helpers/array_helpers.py | 75 ++++++++++++ .../test_core/test_manipulation.py | 74 +++++++++++- 9 files changed, 380 insertions(+), 1 deletion(-) diff --git a/ivy/data_classes/array/experimental/manipulation.py b/ivy/data_classes/array/experimental/manipulation.py index 48d9586c24dba..3acf71a02d305 100644 --- a/ivy/data_classes/array/experimental/manipulation.py +++ b/ivy/data_classes/array/experimental/manipulation.py @@ -1334,3 +1334,39 @@ def soft_thresholding( thresholded tensor on which the operator has been applied """ return ivy.soft_thresholding(self._data, threshold, out=out) + + def column_stack( + self: ivy.Array, + arrays: Sequence[Union[ivy.Array, ivy.NativeArray]], + /, + *, + out: Optional[ivy.Array] = None, + ) -> ivy.Array: + """ + ivy.Array instance method variant of ivy.column_stack. + + This method simply wraps the function, and so the docstring for + ivy.column_stack also applies to this method with minimal + changes. + + Parameters + ---------- + self + Array that will be stacked at the begining of the provided array iterable. + arrays + Arrays to be stacked. + out + Output array. + + Returns + ------- + ret + Stacked input. + """ + if not isinstance(arrays, (list, tuple)): + arrays = [arrays] + if isinstance(arrays, tuple): + x = (self._data) + arrays + else: + x = [self._data] + arrays + return ivy.column_stack(x, out=out) diff --git a/ivy/data_classes/container/experimental/manipulation.py b/ivy/data_classes/container/experimental/manipulation.py index c0e37f7b1f81d..a8a43a3f75322 100644 --- a/ivy/data_classes/container/experimental/manipulation.py +++ b/ivy/data_classes/container/experimental/manipulation.py @@ -3678,3 +3678,110 @@ def soft_thresholding( thresholded tensor on which the operator has been applied """ return self.static_soft_thresholding(self, threshold, out=out) + + @staticmethod + def static_column_stack( + xs: Sequence[Union[ivy.Array, ivy.NativeArray, ivy.Container]], + /, + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container static method variant of ivy.column_stack. + + This method simply wraps the function, and so the docstring for + ivy.column_stack also applies to this method with minimal + changes. + + Parameters + ---------- + xs + Container with leaves to stack. + + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If True, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``True``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + out + Optional output array, for writing the result to. + + Returns + ------- + ret + An output container with the results. + """ + return ContainerBase.cont_multi_map_in_function( + "column_stack", + xs, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) + + def column_stack( + self: ivy.Container, + /, + xs: Sequence[Union[ivy.Array, ivy.NativeArray, ivy.Container]], + *, + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.column_stack. + + This method simply wraps the function, and so the docstring for + ivy.column_stack also applies to this method with minimal + changes. + + Parameters + ---------- + self + Container with leaves to stack with leaves of other arrays/containers. + xs + Container with other leaves to join. + + key_chains + The key-chains to apply or not apply the method to. Default is ``None``. + to_apply + If True, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is ``True``. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is ``False``. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is ``False``. + out + Optional output array, for writing the result to. + + Returns + ------- + ret + An output container with the results. + """ + new_xs = xs.cont_copy() if ivy.is_ivy_container(xs) else list(xs).copy() + new_xs.insert(0, self.cont_copy()) + return self.static_column_stack( + new_xs, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) diff --git a/ivy/functional/backends/jax/experimental/manipulation.py b/ivy/functional/backends/jax/experimental/manipulation.py index 7258a7ae7ebe7..bd7575f2532f4 100644 --- a/ivy/functional/backends/jax/experimental/manipulation.py +++ b/ivy/functional/backends/jax/experimental/manipulation.py @@ -412,3 +412,9 @@ def fill_diagonal( a = a.at[:end:step].set(jnp.array(v).astype(a.dtype)) a = jnp.reshape(a, shape) return a + + +def column_stack( + arrays: Sequence[JaxArray], /, *, out: Optional[JaxArray] = None +) -> JaxArray: + return jnp.column_stack(arrays) diff --git a/ivy/functional/backends/numpy/experimental/manipulation.py b/ivy/functional/backends/numpy/experimental/manipulation.py index 53436987e2187..fe6971128e20c 100644 --- a/ivy/functional/backends/numpy/experimental/manipulation.py +++ b/ivy/functional/backends/numpy/experimental/manipulation.py @@ -477,3 +477,9 @@ def fill_diagonal( ) -> np.ndarray: np.fill_diagonal(a, v, wrap=wrap) return a + + +def column_stack( + arrays: Sequence[np.ndarray], /, *, out: Optional[np.ndarray] = None +) -> np.ndarray: + return np.column_stack(arrays) diff --git a/ivy/functional/backends/paddle/experimental/manipulation.py b/ivy/functional/backends/paddle/experimental/manipulation.py index 8b2a81dcb4d01..88099753ec83b 100644 --- a/ivy/functional/backends/paddle/experimental/manipulation.py +++ b/ivy/functional/backends/paddle/experimental/manipulation.py @@ -215,6 +215,10 @@ def vstack( return ivy.stack(arrays, axis=0) +@with_unsupported_device_and_dtypes( + {"2.5.1 and below": {"cpu": ("int16", "bfloat16")}}, + backend_version, +) def hstack( arrays: Sequence[paddle.Tensor], /, diff --git a/ivy/functional/backends/torch/experimental/manipulation.py b/ivy/functional/backends/torch/experimental/manipulation.py index 16c7cc3e5df76..2b6d0aa525429 100644 --- a/ivy/functional/backends/torch/experimental/manipulation.py +++ b/ivy/functional/backends/torch/experimental/manipulation.py @@ -462,3 +462,9 @@ def fill_diagonal( a = torch.where(w, v, a) a = torch.reshape(a, shape) return a + + +def column_stack( + arrays: Sequence[torch.Tensor], /, *, out: Optional[torch.Tensor] = None +) -> torch.Tensor: + return torch.column_stack(arrays) diff --git a/ivy/functional/ivy/experimental/manipulation.py b/ivy/functional/ivy/experimental/manipulation.py index 347e0d5497ab1..438b90ad4c195 100644 --- a/ivy/functional/ivy/experimental/manipulation.py +++ b/ivy/functional/ivy/experimental/manipulation.py @@ -2632,3 +2632,70 @@ def choose( ivy.array([20, 1, 12, 3]) """ return ivy.current_backend(arr).choose(arr, choices, out=out, mode=mode) + + +@handle_array_function +@inputs_to_ivy_arrays +@handle_nestable +@handle_exceptions +@handle_device_shifting +def column_stack( + arrays: Sequence[Union[ivy.Array, ivy.NativeArray]], + /, + *, + out: Optional[ivy.Array] = None, +) -> ivy.Array: + """ + Create a new array by horizontally stacking the arrays in arrays. + + Equivalent to `ivy.hstack(arrays)`, except each zero or one dimensional + array `x` in arrays is first reshaped into a `(x.size(), 1)` column + before being stacked horizontally. + + Parameters + ---------- + arrays + Arrays to be stacked. + out + Output array. + + Returns + ------- + ret + Stacked input. + + Examples + -------- + Arrays of different dtypes up to dimension 2. + >>> a0 = ivy.array(True) + >>> a1 = ivy.array([7]) + >>> a2 = ivy.array([[11.3, 13.7]]) + >>> ivy.column_stack((a0, a1, a2)) + ivy.array([[ 1. , 7. , 11.30000019, 13.69999981]]) + + Arrays of dimension 3. + >>> a = ivy.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) + >>> b = ivy.array([[[11, 12]], [[13, 14]]]) + >>> ivy.column_stack((a, b)) + ivy.array([[[ 1, 2], + [ 3, 4], + [11, 12]], + + [[ 5, 6], + [ 7, 8], + [13, 14]]]) + """ + arrays = [ivy.reshape(x, shape=(-1, 1)) if x.ndim < 2 else x for x in arrays] + + return ivy.hstack(arrays, out=out) + + +column_stack.mixed_backend_wrappers = { + "to_add": ( + "handle_backend_invalid", + "inputs_to_native_arrays", + "outputs_to_ivy_arrays", + "handle_out_argument", + ), + "to_skip": ("inputs_to_ivy_arrays",), +} diff --git a/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py b/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py index ce163e7d8a072..ecab2b63b01c0 100644 --- a/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py +++ b/ivy_tests/test_ivy/helpers/hypothesis_helpers/array_helpers.py @@ -2162,3 +2162,78 @@ def einsum_helper(draw): eq = "".join(eq_1) + "," + "".join(eq_2) + "->" + output_eq return eq, (value_1[0], value_2[0]), [dtype_1[0], dtype_2[0]] + + +@st.composite +def create_concatenable_arrays_dtypes( + draw, + min_num_dims, + max_num_dims, + min_num_arrays, + max_num_arrays, + concat_dim, + dtypes, + common_shape=None, +): + """ + Draws a random number of arrays with concatenable or stackable dimensions. Arrays + have same number of dimensions, but their shape can differ along a specified + dimension (concat_dim). If concat_dim is None, arrays have the same shape. Dtypes of + arrays can differ. + + Parameters + ---------- + min_num_dims + minimum number of dimensions + max_num_dims + maximum number of dimensions + min_num_arrays + minimum number of arrays + max_num_arrays + maximum number of arrays + concat_dim + dimension along which the shape of arrays can differ, + if None all the arrays will have the same shape + dtypes + list of dtypes from which array dtypes will be draws, + each array can have different dtype + given_common_shape + if not None, specifies the shape of the arrays + (dimension concat_dim can still be modified) + """ + num_arrays = draw(helpers.ints(min_value=min_num_arrays, max_value=max_num_arrays)) + if common_shape is None: + num_dims = draw(helpers.ints(min_value=min_num_dims, max_value=max_num_dims)) + common_shape = draw( + helpers.list_of_size( + x=helpers.ints(min_value=1, max_value=5), + size=num_dims, + ) + ) + else: + num_dims = len(common_shape) + input_dtypes = draw( + helpers.array_dtypes(num_arrays=num_arrays, available_dtypes=dtypes) + ) + array_shapes = [common_shape.copy() for i in range(num_arrays)] + if num_dims > 0 and concat_dim is not None: + unique_dims = draw( + helpers.list_of_size( + x=helpers.ints(min_value=1, max_value=5), + size=num_arrays, + ) + ) + for i in range(num_arrays): + array_shapes[i][concat_dim] = unique_dims[i] + + xs = list() + + for sh, dt in zip(array_shapes, input_dtypes): + x = draw( + helpers.array_values( + shape=sh, + dtype=dt, + ) + ) + xs.append(x) + return xs, input_dtypes diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_manipulation.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_manipulation.py index 234c75451f748..2b06ac879c412 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_manipulation.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_manipulation.py @@ -6,7 +6,7 @@ # local import ivy import ivy_tests.test_ivy.helpers as helpers -from ivy_tests.test_ivy.helpers import handle_test +from ivy_tests.test_ivy.helpers import handle_test, create_concatenable_arrays_dtypes from ivy.functional.ivy.experimental.manipulation import _check_bounds from ivy_tests.test_ivy.test_functional.test_core.test_manipulation import _get_splits @@ -375,6 +375,60 @@ def _soft_thresholding_data(draw): return x_dtype + t_dtype, x, threshold +@st.composite +def _st_col_row_stack_arrays(draw, stack_dim): + ndim = draw(st.integers(min_value=2, max_value=5)) + dtype = draw(st.sampled_from(draw(helpers.get_dtypes("valid")))) + arrays, dtypes = draw( + create_concatenable_arrays_dtypes( + min_num_dims=ndim, + max_num_dims=ndim, + min_num_arrays=1, + max_num_arrays=3, + concat_dim=stack_dim, + dtypes=[dtype], + ) + ) + if ndim == 2: + non_stack_dim_len = arrays[0].shape[1 - stack_dim] + add_1D = draw(st.booleans()) + if add_1D: + arrays_1D, dtypes_1D = draw( + create_concatenable_arrays_dtypes( + min_num_dims=None, + max_num_dims=None, + min_num_arrays=1, + max_num_arrays=2, + concat_dim=None, + dtypes=[dtype], + common_shape=[non_stack_dim_len], + ) + ) + arrays += arrays_1D + dtypes += dtypes_1D + + if non_stack_dim_len == 1: + add_0D = draw(st.booleans()) + if add_0D: + arrays_0D, dtypes_0D = draw( + create_concatenable_arrays_dtypes( + min_num_dims=0, + max_num_dims=0, + min_num_arrays=1, + max_num_arrays=2, + concat_dim=None, + dtypes=[dtype], + ) + ) + arrays += arrays_0D + dtypes += dtypes_0D + + arrays_dtypes = draw(st.permutations(list(zip(arrays, dtypes)))) + arrays, dtypes = list(zip(*arrays_dtypes)) + + return list(arrays), list(dtypes) + + def _st_tuples_or_int(n_pairs, min_val=0): return st.one_of( st_tuples( @@ -552,6 +606,24 @@ def test_broadcast_shapes(*, shapes, test_flags, backend_fw, fn_name, on_device) ) +# column_stack +@handle_test( + fn_tree="functional.ivy.experimental.column_stack", + arrays_dtypes=_st_col_row_stack_arrays(stack_dim=1), + test_gradients=st.just(False), +) +def test_column_stack(*, arrays_dtypes, test_flags, backend_fw, fn_name, on_device): + arrays, dtypes = arrays_dtypes + helpers.test_function( + input_dtypes=dtypes, + test_flags=test_flags, + on_device=on_device, + backend_to_test=backend_fw, + fn_name=fn_name, + arrays=arrays, + ) + + # concat_from_sequence @handle_test( fn_tree="functional.ivy.experimental.concat_from_sequence", From d667dc92a8f03a70d4aba1e3e485bb960edd07d6 Mon Sep 17 00:00:00 2001 From: Vaibhav Deshpande <64426988+dash96@users.noreply.github.com> Date: Mon, 11 Sep 2023 13:05:08 +0530 Subject: [PATCH 101/127] fixing maxwell() for jax frontend (#23358) --- ivy/functional/frontends/jax/random.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py index c861bdade17f7..021fafc242aa7 100644 --- a/ivy/functional/frontends/jax/random.py +++ b/ivy/functional/frontends/jax/random.py @@ -270,13 +270,11 @@ def logistic(key, shape=(), dtype="float64"): }, "jax", ) -def maxwell(key, shape=None, dtype="float64"): +def maxwell(key, shape, dtype="float64"): seed = _get_seed(key) - # generate uniform random numbers between 0 and 1 - z = ivy.random_uniform(seed=seed, shape=shape, dtype=dtype) - # applying inverse transform sampling - x = (z**2) * ivy.exp(-(z**2) / 2) - return x + shape = shape + (3,) + random_normal = ivy.random_normal(seed=seed, shape=shape, dtype=dtype) + return ivy.vector_norm(random_normal, axis=-1) @handle_jax_dtype From b0d6f60fa3aa20598d2b3c595c7886764c8c5b28 Mon Sep 17 00:00:00 2001 From: Vaibhav Deshpande <137694306+stalemate1@users.noreply.github.com> Date: Mon, 11 Sep 2023 13:32:31 +0530 Subject: [PATCH 102/127] For double sided maxwell (#21264) --- ivy/functional/frontends/jax/random.py | 26 +++++++- .../test_frontends/test_jax/test_random.py | 64 ++++++++++++++++++- 2 files changed, 87 insertions(+), 3 deletions(-) diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py index 021fafc242aa7..1afaf7a3b03af 100644 --- a/ivy/functional/frontends/jax/random.py +++ b/ivy/functional/frontends/jax/random.py @@ -277,6 +277,28 @@ def maxwell(key, shape, dtype="float64"): return ivy.vector_norm(random_normal, axis=-1) +@handle_jax_dtype +@to_ivy_arrays_and_back +@with_unsupported_dtypes( + { + "0.4.14 and below": ( + "uint32" + ) + }, + "jax", +) +def double_sided_maxwell(key, loc, scale, shape=(), dtype="float64"): + params_shapes = ivy.broadcast_shapes(ivy.shape(loc), ivy.shape(scale)) + if not shape: + shape = params_shapes + + shape = shape + params_shapes + maxwell_rvs = maxwell(key, shape=shape, dtype=dtype) + random_sign = rademacher(key, shape=shape, dtype=dtype) + + return random_sign * maxwell_rvs * scale+loc + + @handle_jax_dtype @to_ivy_arrays_and_back @with_unsupported_dtypes( @@ -387,11 +409,11 @@ def poisson(key, lam, shape=None, dtype=None): ) def rademacher(key, shape, dtype="int64"): seed = _get_seed(key) - b = ivy.bernoulli(ivy.array([0.5]), shape=shape, dtype="float32", seed=seed) + prob = ivy.full(shape, 0.5, dtype="float32") + b = ivy.bernoulli(prob, shape=shape, dtype="float32", seed=seed) b = ivy.astype(b, dtype) return 2 * b - 1 - @handle_jax_dtype @to_ivy_arrays_and_back @with_unsupported_dtypes( diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py index 692dbccc62c62..43b8c726b2ac3 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py @@ -931,6 +931,68 @@ def call(): assert u.shape == v.shape +@pytest.mark.xfail +@handle_frontend_test( + fn_tree="jax.random.double_sided_maxwell", + dtype_key=helpers.dtype_and_values( + available_dtypes=["uint32"], + min_value=1, + max_value=2000, + min_num_dims=1, + max_num_dims=1, + min_dim_size=2, + max_dim_size=2, + ), + shape=helpers.get_shape(), + dtype=helpers.get_dtypes("float", full=False), + loc=st.integers(min_value=10, max_value=100), + scale=st.floats(min_value=0, max_value=100, exclude_min=True), + test_with_out=st.just(False), +) +def test_jax_double_sided_maxwell( + *, + dtype_key, + loc, + scale, + shape, + dtype, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, key = dtype_key + + def call(): + return helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=False, + backend_to_test=backend_fw, + key=key[0], + loc=loc, + scale=scale, + shape=shape, + dtype=dtype[0], + ) + + ret = call() + + if not ivy.exists(ret): + return + + ret_np, ret_from_np = ret + ret_np = helpers.flatten_and_to_np(backend=backend_fw, ret=ret_np) + ret_from_np = helpers.flatten_and_to_np(backend=backend_fw, ret=ret_from_np) + for u, v in zip(ret_np, ret_from_np): + assert u.dtype == v.dtype + assert u.shape == v.shape + + @pytest.mark.xfail @handle_frontend_test( fn_tree="jax.random.multivariate_normal", @@ -1522,7 +1584,7 @@ def call(): @pytest.mark.xfail @handle_frontend_test( - fn_tree="jax.random.uniform", + fn_tree="jax.random.ball", dtype_key=helpers.dtype_and_values( available_dtypes=["uint32"], min_value=0, From af64f7d3474a8e7661d409e57d9a89f529abad4d Mon Sep 17 00:00:00 2001 From: ivy-branch Date: Mon, 11 Sep 2023 08:08:12 +0000 Subject: [PATCH 103/127] =?UTF-8?q?=F0=9F=A4=96=20Lint=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ivy/functional/frontends/jax/random.py | 41 +++--- .../test_frontends/test_jax/test_random.py | 124 +++++++++--------- 2 files changed, 81 insertions(+), 84 deletions(-) diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py index 1afaf7a3b03af..694b5f1004ff3 100644 --- a/ivy/functional/frontends/jax/random.py +++ b/ivy/functional/frontends/jax/random.py @@ -145,6 +145,24 @@ def dirichlet(key, alpha, shape=None, dtype="float32"): return ivy.dirichlet(alpha, size=shape, dtype=dtype, seed=seed) +@handle_jax_dtype +@to_ivy_arrays_and_back +@with_unsupported_dtypes( + {"0.4.14 and below": "uint32"}, + "jax", +) +def double_sided_maxwell(key, loc, scale, shape=(), dtype="float64"): + params_shapes = ivy.broadcast_shapes(ivy.shape(loc), ivy.shape(scale)) + if not shape: + shape = params_shapes + + shape = shape + params_shapes + maxwell_rvs = maxwell(key, shape=shape, dtype=dtype) + random_sign = rademacher(key, shape=shape, dtype=dtype) + + return random_sign * maxwell_rvs * scale + loc + + @handle_jax_dtype @to_ivy_arrays_and_back @with_unsupported_dtypes( @@ -277,28 +295,6 @@ def maxwell(key, shape, dtype="float64"): return ivy.vector_norm(random_normal, axis=-1) -@handle_jax_dtype -@to_ivy_arrays_and_back -@with_unsupported_dtypes( - { - "0.4.14 and below": ( - "uint32" - ) - }, - "jax", -) -def double_sided_maxwell(key, loc, scale, shape=(), dtype="float64"): - params_shapes = ivy.broadcast_shapes(ivy.shape(loc), ivy.shape(scale)) - if not shape: - shape = params_shapes - - shape = shape + params_shapes - maxwell_rvs = maxwell(key, shape=shape, dtype=dtype) - random_sign = rademacher(key, shape=shape, dtype=dtype) - - return random_sign * maxwell_rvs * scale+loc - - @handle_jax_dtype @to_ivy_arrays_and_back @with_unsupported_dtypes( @@ -414,6 +410,7 @@ def rademacher(key, shape, dtype="int64"): b = ivy.astype(b, dtype) return 2 * b - 1 + @handle_jax_dtype @to_ivy_arrays_and_back @with_unsupported_dtypes( diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py index 43b8c726b2ac3..7f9778edacea6 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_random.py @@ -478,6 +478,68 @@ def call(): assert u.shape == v.shape +@pytest.mark.xfail +@handle_frontend_test( + fn_tree="jax.random.double_sided_maxwell", + dtype_key=helpers.dtype_and_values( + available_dtypes=["uint32"], + min_value=1, + max_value=2000, + min_num_dims=1, + max_num_dims=1, + min_dim_size=2, + max_dim_size=2, + ), + shape=helpers.get_shape(), + dtype=helpers.get_dtypes("float", full=False), + loc=st.integers(min_value=10, max_value=100), + scale=st.floats(min_value=0, max_value=100, exclude_min=True), + test_with_out=st.just(False), +) +def test_jax_double_sided_maxwell( + *, + dtype_key, + loc, + scale, + shape, + dtype, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + input_dtype, key = dtype_key + + def call(): + return helpers.test_frontend_function( + input_dtypes=input_dtype, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=False, + backend_to_test=backend_fw, + key=key[0], + loc=loc, + scale=scale, + shape=shape, + dtype=dtype[0], + ) + + ret = call() + + if not ivy.exists(ret): + return + + ret_np, ret_from_np = ret + ret_np = helpers.flatten_and_to_np(backend=backend_fw, ret=ret_np) + ret_from_np = helpers.flatten_and_to_np(backend=backend_fw, ret=ret_from_np) + for u, v in zip(ret_np, ret_from_np): + assert u.dtype == v.dtype + assert u.shape == v.shape + + @pytest.mark.xfail @handle_frontend_test( fn_tree="jax.random.exponential", @@ -931,68 +993,6 @@ def call(): assert u.shape == v.shape -@pytest.mark.xfail -@handle_frontend_test( - fn_tree="jax.random.double_sided_maxwell", - dtype_key=helpers.dtype_and_values( - available_dtypes=["uint32"], - min_value=1, - max_value=2000, - min_num_dims=1, - max_num_dims=1, - min_dim_size=2, - max_dim_size=2, - ), - shape=helpers.get_shape(), - dtype=helpers.get_dtypes("float", full=False), - loc=st.integers(min_value=10, max_value=100), - scale=st.floats(min_value=0, max_value=100, exclude_min=True), - test_with_out=st.just(False), -) -def test_jax_double_sided_maxwell( - *, - dtype_key, - loc, - scale, - shape, - dtype, - on_device, - fn_tree, - frontend, - test_flags, - backend_fw, -): - input_dtype, key = dtype_key - - def call(): - return helpers.test_frontend_function( - input_dtypes=input_dtype, - frontend=frontend, - test_flags=test_flags, - fn_tree=fn_tree, - on_device=on_device, - test_values=False, - backend_to_test=backend_fw, - key=key[0], - loc=loc, - scale=scale, - shape=shape, - dtype=dtype[0], - ) - - ret = call() - - if not ivy.exists(ret): - return - - ret_np, ret_from_np = ret - ret_np = helpers.flatten_and_to_np(backend=backend_fw, ret=ret_np) - ret_from_np = helpers.flatten_and_to_np(backend=backend_fw, ret=ret_from_np) - for u, v in zip(ret_np, ret_from_np): - assert u.dtype == v.dtype - assert u.shape == v.shape - - @pytest.mark.xfail @handle_frontend_test( fn_tree="jax.random.multivariate_normal", From e37911b91cdfa42def298e524f4974117a5d6e2a Mon Sep 17 00:00:00 2001 From: Jomer Barcenilla <89145244+JomBarce@users.noreply.github.com> Date: Mon, 11 Sep 2023 16:19:57 +0800 Subject: [PATCH 104/127] Reformatted array_equal (#23058) --- ivy/data_classes/array/general.py | 6 ++++++ ivy/data_classes/container/general.py | 17 ++++++++++++++--- ivy/functional/backends/tensorflow/general.py | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ivy/data_classes/array/general.py b/ivy/data_classes/array/general.py index 0cbc69521ade3..6320790c8b13d 100644 --- a/ivy/data_classes/array/general.py +++ b/ivy/data_classes/array/general.py @@ -807,6 +807,12 @@ def array_equal(self: ivy.Array, x: Union[ivy.Array, ivy.NativeArray], /) -> boo >>> c = a.array_equal(b) >>> print(c) True + + >>> i = ivy.array([1, 2]) + >>> j = ivy.array([1, 2, 3]) + >>> k = i.array_equal(j) + >>> print(k) + False """ return ivy.array_equal(self, x) diff --git a/ivy/data_classes/container/general.py b/ivy/data_classes/container/general.py index 6b7dc87e08a66..32c021edc72a4 100644 --- a/ivy/data_classes/container/general.py +++ b/ivy/data_classes/container/general.py @@ -4031,14 +4031,25 @@ def array_equal( >>> b = ivy.array([[-2., 1.], [1. ,2.]]) >>> c = ivy.array([[0., 1.], [1. ,0.]]) >>> d = ivy.array([[2., 1.], [1. ,2.]]) - >>> a0 = ivy.Container(a = a, b = b) - >>> a1 = ivy.Container(a = c, b = d) - >>> y = a0.array_equal(a1) + >>> a1 = ivy.Container(a = a, b = b) + >>> a2 = ivy.Container(a = c, b = d) + >>> y = a1.array_equal(a2) >>> print(y) { a: True, b: False } + + >>> x1 = ivy.Container(a=ivy.native_array([1, 0, 0]), + b=ivy.array([1, 2, 3])) + >>> x2 = ivy.Container(a=ivy.native_array([1, 0, 1]), + b=ivy.array([1, 2, 3])) + >>> y = x1.array_equal(x2) + >>> print(y) + { + a: False, + b: True + } """ return _ContainerWithGeneral._static_array_equal( self, diff --git a/ivy/functional/backends/tensorflow/general.py b/ivy/functional/backends/tensorflow/general.py index ba239549e3fdd..cb24872314909 100644 --- a/ivy/functional/backends/tensorflow/general.py +++ b/ivy/functional/backends/tensorflow/general.py @@ -37,7 +37,7 @@ def array_equal( /, ) -> bool: x0, x1 = ivy.promote_types_of_inputs(x0, x1) - return bool((tf.experimental.numpy.array_equal(x0, x1))) + return bool(tf.experimental.numpy.array_equal(x0, x1)) def container_types(): From f5531f4d1925b6c9e7b4989ee7c0af48ed61c112 Mon Sep 17 00:00:00 2001 From: Nripesh Niketan <86844847+NripeshN@users.noreply.github.com> Date: Mon, 11 Sep 2023 12:27:59 +0400 Subject: [PATCH 105/127] docs: ivy lint (#22991) Co-authored-by: Kareem Morsy --- docs/overview/deep_dive.rst | 28 +++++++------ docs/overview/deep_dive/formatting.rst | 4 +- docs/overview/deep_dive/ivy_lint.rst | 58 ++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 docs/overview/deep_dive/ivy_lint.rst diff --git a/docs/overview/deep_dive.rst b/docs/overview/deep_dive.rst index 1fe0354d93881..024dfd599ad43 100644 --- a/docs/overview/deep_dive.rst +++ b/docs/overview/deep_dive.rst @@ -46,40 +46,43 @@ We're excited for you to get involved! 🦾 | (k) `Formatting `_ 📋 | How the code is automatically formatted | -| (l) `Function Arguments `_ 📑 +| (l) `Ivy Lint `_ 🧹 +| Ivy's Custom Code Formatters +| +| (m) `Function Arguments `_ 📑 | How to add the correct function arguments | -| (m) `Docstrings `_ 📄 +| (n) `Docstrings `_ 📄 | How to properly write docstrings | -| (n) `Docstring Examples `_ 💯 +| (o) `Docstring Examples `_ 💯 | How to add useful examples to the docstrings | -| (o) `Array API Tests `_ 🤝 +| (p) `Array API Tests `_ 🤝 | How we're borrowing the test suite from the Array API Standard | -| (p) `Ivy Tests `_ 🧪 +| (q) `Ivy Tests `_ 🧪 | How to add new tests for each Ivy function | -| (q) `Ivy Frontends `_ ➡ +| (r) `Ivy Frontends `_ ➡ | How to implement frontend functions | -| (r) `Ivy Frontend Tests `_ 🧪 +| (s) `Ivy Frontend Tests `_ 🧪 | How to add new tests for each frontend function | -| (s) `Exception Handling `_ ⚠ +| (t) `Exception Handling `_ ⚠ | How to handle exceptions and assertions in a function | -| (t) `Continuous Integration `_ 🔁 +| (u) `Continuous Integration `_ 🔁 | Ivy Tests running on the Repository | -| (u) `Gradients `_ 🔁 +| (v) `Gradients `_ 🔁 | Everything about our Gradients API | -| (v) `Operating Modes `_ 🧮 +| (w) `Operating Modes `_ 🧮 | Everything about modes Ivy can operate in, along with their purposes | -| (w) `Building the Docs Pipeline `_ 📚 +| (x) `Building the Docs Pipeline `_ 📚 | How are we building our docs @@ -99,6 +102,7 @@ We're excited for you to get involved! 🦾 deep_dive/inplace_updates.rst deep_dive/function_wrapping.rst deep_dive/formatting.rst + deep_dive/ivy_lint.rst deep_dive/function_arguments.rst deep_dive/docstrings.rst deep_dive/docstring_examples.rst diff --git a/docs/overview/deep_dive/formatting.rst b/docs/overview/deep_dive/formatting.rst index fa52cd490f053..c561f1fe04b97 100644 --- a/docs/overview/deep_dive/formatting.rst +++ b/docs/overview/deep_dive/formatting.rst @@ -27,7 +27,7 @@ We use the following linters: * `autoflake `_ * `docformatter `_ * `pydocstyle `_ -* `ivy-lint `_ (WIP 🚧) +* `ivy-lint `_ You can also take a look at our configuration for linting in `setup.cfg `_ file. @@ -76,6 +76,7 @@ You should expect to see something similar to the following output when you run flake8...................................................................Passed docformatter.............................................................Passed pydocstyle...............................................................Passed + ivy-lint.................................................................Passed [INFO] Restored changes from ~/.cache/pre-commit/patch1687898304-8072. [formatting-docs 3516aed563] Test commit 1 file changed, 1 insertion(+) @@ -98,6 +99,7 @@ If something goes wrong, you will see the following output: flake8...................................................................Passed docformatter.............................................................Passed pydocstyle...............................................................Passed + ivy-lint.................................................................Passed [INFO] Restored changes from ~/.cache/pre-commit/patch1687898304-8072. You will notice that some files have changed if you checked ``git status``, you'll need to add them and commit again. diff --git a/docs/overview/deep_dive/ivy_lint.rst b/docs/overview/deep_dive/ivy_lint.rst new file mode 100644 index 0000000000000..388e67bfd58b2 --- /dev/null +++ b/docs/overview/deep_dive/ivy_lint.rst @@ -0,0 +1,58 @@ +Ivy-Lint: Ivy's Custom Code Formatters +====================================== + +Overview +-------- + +``ivy-lint`` is a specialized suite of formatters crafted for the Ivy codebase. It addresses unique formatting requirements not catered to by standard Python formatters. While the suite currently highlights the ``FunctionOrderingFormatter``, we're continually expanding to include more formatters tailored to Ivy's needs. + +Existing Formatters +------------------- + +FunctionOrderingFormatter +~~~~~~~~~~~~~~~~~~~~~~~~~ + +This formatter ensures a standardized order of declarations within Python files, organizing functions, classes, and assignments based on a hierarchy designed for the Ivy codebase. + +**Purpose**: To bring a sense of uniformity and structure to the code files by sorting various Python declarations. + +**Target Files**: Specifically designed for frontends and tests. + +How the Formatter Works: +~~~~~~~~~~~~~~~~~~~~~~~~ + +1. **Header Management**: + - Removes pre-existing headers in the source code based on specific patterns. + +2. **Comments Handling**: + - Extracts code components along with their leading comments, ensuring that relevant comments are retained during the reordering process. + +3. **Dependency Handling**: + - Constructs dependency graphs to understand and maintain the relationships between classes and assignments. + +4. **Sorting Logic**: + - Prioritizes imports, followed by assignments based on certain dependencies, then classes, and finally functions. + - Preserves module-level docstrings at the top of the file. + - Organizes helper functions and primary functions into separate sections for clarity. + +5. **File Processing**: + - Processes files that align with certain patterns, rearranging their content as needed. + +Integration and Usage +--------------------- + +To get the best out of ``ivy-lint``, integrate it within a pre-commit hook. This ensures that whenever code changes are about to be committed, the suite checks and, if needed, formats the files to align with Ivy's standards. + +For comprehensive details on weaving ``ivy-lint`` into your development practices, kindly refer to our `formatting guide `_. + +Contribution +------------ + +We’re always thrilled to welcome contributions to ``ivy-lint``. If you're brimming with ideas for a new formatter or can enhance our existing ones, please connect with us either on our GitHub repository or our `discord `_ channel. + +Round Up +-------- + +``ivy-lint`` stands as a testament to Ivy's commitment to code clarity and uniformity. As the landscape of our needs shifts, we foresee further refining and expanding our suite of formatters. + +For all discussions or inquiries, you're always welcome on `discord `_ in the `formatting channel `_. From c6dc5974dc9ec59357bc075cba5299bfb6059334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Alava=20Pe=C3=B1a?= Date: Mon, 11 Sep 2023 10:37:20 +0100 Subject: [PATCH 106/127] fix(docs): renamed ivy.get_backend to ivy.current_backend in backend setting deep dive (#23403) --- docs/overview/deep_dive/backend_setting.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/overview/deep_dive/backend_setting.rst b/docs/overview/deep_dive/backend_setting.rst index 3777089cfd13b..b2be3a2f0a7a5 100644 --- a/docs/overview/deep_dive/backend_setting.rst +++ b/docs/overview/deep_dive/backend_setting.rst @@ -30,23 +30,23 @@ It's helpful to look at an example: .. code-block:: python x = ivy.array([[2., 3.]]) - ivy.get_backend() + ivy.current_backend() .. code-block:: python y = ivy.multiply(torch.Tensor([3.]), torch.Tensor([4.])) - ivy.get_backend() + ivy.current_backend() .. code-block:: python ivy.set_backend('jax') z = ivy.matmul(jax.numpy.array([[2.,3.]]), jax.numpy.array([[5.],[6.]])) - ivy.get_backend() + ivy.current_backend() ivy.previous_backend() - ivy.get_backend() + ivy.current_backend() In the last example above, the moment any backend is set, it will be used over the `implicit_backend`_. From 1723568b3cd1e76c2efd2ba9eaebccd932cefc73 Mon Sep 17 00:00:00 2001 From: Sai-Suraj-27 Date: Mon, 11 Sep 2023 15:26:41 +0530 Subject: [PATCH 107/127] refactor: Reformatted and Refactored few files to make the code better and clean (#23357) --- .../dashboard_automation/update_db.py | 9 ++-- determine_test_coverage.py | 5 +- determine_tests.py | 11 ++-- duplicate.py | 2 +- run_tests.py | 36 +++++-------- run_tests_CLI/array_api_determine_tests.py | 6 +-- run_tests_CLI/array_api_run_tests.py | 17 ++++--- run_tests_CLI/cron_tests_multi_version.py | 12 ++--- run_tests_CLI/get_all_tests.py | 5 +- run_tests_CLI/setup_priority_tests.py | 17 +++---- run_tests_CLI/synchronize_db.py | 13 +++-- run_tests_CLI/test_dependencies.py | 27 +++++----- run_tests_pr.py | 51 +++++++++---------- scripts/backend_generation/generate.py | 36 ++++++------- scripts/eager_mode_benchmark/benchmark.py | 24 ++++----- setup_tests.py | 7 ++- 16 files changed, 130 insertions(+), 148 deletions(-) diff --git a/automation_tools/dashboard_automation/update_db.py b/automation_tools/dashboard_automation/update_db.py index 42c3f19cefa84..092e313725f91 100644 --- a/automation_tools/dashboard_automation/update_db.py +++ b/automation_tools/dashboard_automation/update_db.py @@ -22,9 +22,10 @@ def make_clickable(url, name): - return ''.format(name) + return ( + f'' + ) def update_test_results(): @@ -45,7 +46,7 @@ def update_test_results(): res = make_clickable(action_url + run_id, result_config[result]) collection.update_one( {"_id": test_configs[workflow][1]}, - {"$set": {backend + "." + submodule: res}}, + {"$set": {f"{backend}.{submodule}": res}}, upsert=True, ) return diff --git a/determine_test_coverage.py b/determine_test_coverage.py index e2fcbf0ab6691..588399a9ab8e5 100644 --- a/determine_test_coverage.py +++ b/determine_test_coverage.py @@ -17,8 +17,7 @@ test_names = get_all_tests() # Create a Dictionary of Test Names to Index -tests["index_mapping"] = test_names -tests["tests_mapping"] = {} +tests = {"index_mapping": test_names, "tests_mapping": {}} for i in range(len(test_names)): tests["tests_mapping"][test_names[i]] = i @@ -47,7 +46,7 @@ for directory in directories: for file_name in os.listdir(directory): if file_name.endswith("cover"): - file_name = directory + "/" + file_name + file_name = f"{directory}/{file_name}" if file_name not in tests: tests[file_name] = [] with open(file_name) as f: diff --git a/determine_tests.py b/determine_tests.py index d3a94ddc91fab..c422d2bee1e2e 100644 --- a/determine_tests.py +++ b/determine_tests.py @@ -44,15 +44,15 @@ def main(): modified_files = commit._parse_diff(diff_index) for file in modified_files: try: - file_name = file.new_path + ",cover" + file_name = f"{file.new_path},cover" except: # noqa continue if file_name not in tests.keys(): continue tests_file = tests[file_name] change = file.diff_parsed - added = set([x - 1 for (x, _) in change["added"]]) - deleted = set([x - 1 for (x, _) in change["deleted"]]) + added = {x - 1 for (x, _) in change["added"]} + deleted = {x - 1 for (x, _) in change["deleted"]} updated = added.intersection(deleted) added = added.difference(updated) deleted = deleted.difference(updated) @@ -121,9 +121,8 @@ def main(): relevant_added_tests.append(test) break added_tests = relevant_added_tests - else: - if len(added_tests) > 50: - added_tests = added_tests[:50] + elif len(added_tests) > 50: + added_tests = added_tests[:50] # Add these new_tests in the Mapping old_num_tests = len(old_tests) tests["index_mapping"] += added_tests diff --git a/duplicate.py b/duplicate.py index e7ac5767d8b2c..bd084f4ca411b 100644 --- a/duplicate.py +++ b/duplicate.py @@ -8,7 +8,7 @@ def get_all_functions_from_directory(root_dir, startswith="test"): print("Invalid directory") exit(1) functions_names = [] - for filename in glob.iglob(root_dir + "/**/*.py", recursive=True): + for filename in glob.iglob(f"{root_dir}/**/*.py", recursive=True): if len(filename) >= 2 and filename[:2] == "./": filename = filename[2:] filename = filename.replace(".py", "") diff --git a/run_tests.py b/run_tests.py index 8013eaf7a9cab..0832fd9cdbfe2 100644 --- a/run_tests.py +++ b/run_tests.py @@ -46,9 +46,10 @@ def make_clickable(url, name): - return ''.format(name) + return ( + f'' + ) def get_submodule(test_path): @@ -57,9 +58,9 @@ def get_submodule(test_path): if name in test_path: if name == "test_functional": if len(test_path) > 3 and test_path[3] == "test_experimental": - coll = db_dict["test_experimental/" + test_path[4]] + coll = db_dict[f"test_experimental/{test_path[4]}"] else: - coll = db_dict["test_functional/" + test_path[-2]] + coll = db_dict[f"test_functional/{test_path[-2]}"] else: coll = db_dict[name] break @@ -80,16 +81,16 @@ def update_individual_test_results( frontend_version=None, device=None, ): - key = submod + "." + backend + key = f"{submod}.{backend}" if backend_version is not None: backend_version = backend_version.replace(".", "_") - key += "." + backend_version + key += f".{backend_version}" if frontend_version is not None: frontend_version = frontend_version.replace(".", "_") - key += "." + frontend_version - key += "." + test + key += f".{frontend_version}" + key += f".{test}" if device: - key += "." + device + key += f".{device}" collection.update_one( {"_id": id}, {"$set": {key: result}}, @@ -99,10 +100,7 @@ def update_individual_test_results( def remove_from_db(collection, id, submod, backend, test): - collection.update_one( - {"_id": id}, - {"$unset": {submod + "." + backend + ".": test}}, - ) + collection.update_one({"_id": id}, {"$unset": {f"{submod}.{backend}.": test}}) return @@ -169,7 +167,7 @@ def run_multiversion_testing(): if len(sys.argv) > 8 and sys.argv[8] != "null": run_id = sys.argv[8] else: - run_id = "https://github.com/unifyai/ivy/actions/runs/" + workflow_id + run_id = f"https://github.com/unifyai/ivy/actions/runs/{workflow_id}" failed = False # GPU Testing with_gpu = False @@ -221,13 +219,7 @@ def run_multiversion_testing(): else: res = make_clickable(run_id, result_config["success"]) frontend_version = None - if ( - coll[0] == "numpy" - or coll[0] == "jax" - or coll[0] == "tensorflow" - or coll[0] == "torch" - or coll[0] == "paddle" - ): + if coll[0] in ["numpy", "jax", "tensorflow", "torch", "paddle"]: frontend_version = "latest-stable" if priority_flag: print("Updating Priority DB") diff --git a/run_tests_CLI/array_api_determine_tests.py b/run_tests_CLI/array_api_determine_tests.py index d15665b13330d..fade279139968 100644 --- a/run_tests_CLI/array_api_determine_tests.py +++ b/run_tests_CLI/array_api_determine_tests.py @@ -41,15 +41,15 @@ def determine_tests_line(_tests_file, _line, _tests_to_run): modified_files = commit._parse_diff(diff_index) for file in modified_files: try: - file_name = file.new_path + ",cover" + file_name = f"{file.new_path},cover" except: # noqa continue if file_name not in tests.keys(): continue tests_file = tests[file_name] change = file.diff_parsed - added = set([x - 1 for (x, _) in change["added"]]) - deleted = set([x - 1 for (x, _) in change["deleted"]]) + added = {x - 1 for (x, _) in change["added"]} + deleted = {x - 1 for (x, _) in change["deleted"]} updated = added.intersection(deleted) added = added.difference(updated) deleted = deleted.difference(updated) diff --git a/run_tests_CLI/array_api_run_tests.py b/run_tests_CLI/array_api_run_tests.py index d17ae3c4528aa..bf960761b1a64 100644 --- a/run_tests_CLI/array_api_run_tests.py +++ b/run_tests_CLI/array_api_run_tests.py @@ -11,9 +11,10 @@ def make_clickable(url, name): - return ''.format(name) + return ( + f'' + ) def get_submodule(test_path): @@ -34,14 +35,14 @@ def update_individual_test_results( backend_version=None, frontend_version=None, ): - key = submod + "." + backend + key = f"{submod}.{backend}" if backend_version is not None: backend_version = backend_version.replace(".", "_") - key += "." + backend_version + key += f".{backend_version}" if frontend_version is not None: frontend_version = frontend_version.replace(".", "_") - key += "." + frontend_version - key += "." + test + key += f".{frontend_version}" + key += f".{test}" collection.update_one( {"_id": id}, {"$set": {key: result}}, @@ -60,7 +61,7 @@ def main(): if len(sys.argv) > 5: run_id = sys.argv[5] else: - run_id = "https://github.com/unifyai/ivy/actions/runs/" + workflow_id + run_id = f"https://github.com/unifyai/ivy/actions/runs/{workflow_id}" failed = False cluster = MongoClient( f"mongodb+srv://deep-ivy:{mongo_key}@cluster0.qdvf8q3.mongodb.net/?retryWrites=true&w=majority" # noqa diff --git a/run_tests_CLI/cron_tests_multi_version.py b/run_tests_CLI/cron_tests_multi_version.py index 8efbadb0ef9e4..a3ad33eaa3f74 100644 --- a/run_tests_CLI/cron_tests_multi_version.py +++ b/run_tests_CLI/cron_tests_multi_version.py @@ -52,7 +52,7 @@ "numpy/1.24.2", ] jax_req = [ - jax_ver + "/" + jaxlib_ver for jax_ver in jax_only_req for jaxlib_ver in jaxlib_req + f"{jax_ver}/{jaxlib_ver}" for jax_ver in jax_only_req for jaxlib_ver in jaxlib_req ] framework_versions = { @@ -81,21 +81,19 @@ test_names_without_backend.append(test_name) for test_name in test_names_without_backend: - for backend, backend_versions in framework_versions.items(): + for backend_versions in framework_versions.values(): for backend_version in backend_versions: - test_backend = test_name + "," + backend_version + test_backend = f"{test_name},{backend_version}" if "test_frontends" in test_name: frontend = test_name[39:] frontend = frontend[: frontend.find("/")] frontend_versions = framework_versions.get(frontend, []) for frontend_version in frontend_versions: - test_names.append(test_backend + ";" + frontend_version) + test_names.append(f"{test_backend};{frontend_version}") else: test_names.append(test_backend) -test_names = list(set(test_names)) -test_names.sort() - +test_names = sorted(set(test_names)) # Run 150 tests in each iteration of the cron job num_tests = len(test_names) print(num_tests) diff --git a/run_tests_CLI/get_all_tests.py b/run_tests_CLI/get_all_tests.py index 213eb0cb0d8ba..3568424441b94 100644 --- a/run_tests_CLI/get_all_tests.py +++ b/run_tests_CLI/get_all_tests.py @@ -37,14 +37,13 @@ def extract_tests_from_dir(directory): def get_all_tests(): test_names_without_backend = extract_tests_from_dir("ivy_tests/test_ivy") - test_names_without_backend = list(set(test_names_without_backend)) - test_names_without_backend.sort() + test_names_without_backend = sorted(set(test_names_without_backend)) random.Random(4).shuffle(test_names_without_backend) test_names = [] for test_name in test_names_without_backend: for backend in BACKENDS: - test_backend = test_name + "," + backend + test_backend = f"{test_name},{backend}" test_names.append(test_backend) return test_names diff --git a/run_tests_CLI/setup_priority_tests.py b/run_tests_CLI/setup_priority_tests.py index 3fbff574d2a48..c0bb3f1442304 100644 --- a/run_tests_CLI/setup_priority_tests.py +++ b/run_tests_CLI/setup_priority_tests.py @@ -3,15 +3,14 @@ def main(): - write_file = open("tests_to_run", "w") - with open(sys.argv[1], "r") as f: - for test in f: - test = test.strip() - if test.startswith("ivy/"): - test = test[4:] - for backend in BACKENDS: - write_file.write(f"{test},{backend}\n") - write_file.close() + with open("tests_to_run", "w") as write_file: + with open(sys.argv[1], "r") as f: + for test in f: + test = test.strip() + if test.startswith("ivy/"): + test = test[4:] + for backend in BACKENDS: + write_file.write(f"{test},{backend}\n") if __name__ == "__main__": diff --git a/run_tests_CLI/synchronize_db.py b/run_tests_CLI/synchronize_db.py index fc309e961c998..93f80a2f35986 100644 --- a/run_tests_CLI/synchronize_db.py +++ b/run_tests_CLI/synchronize_db.py @@ -24,17 +24,16 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): keys_for_deletion = [] for key, value in data.items(): - new_key = current_key + "." + key if current_key else key + new_key = f"{current_key}.{key}" if current_key else key # If this is a dictionary, recurse deeper if isinstance(value, dict): keys_for_deletion.extend(keys_to_delete_from_db(all_tests, value, new_key)) - # If the new_key is not in keys_to_keep, mark it for deletion elif key != "_id": components = new_key.split(".") submodule = components[0] function = components[-2] - test = module + "/" + submodule + "::" + function + test = f"{module}/{submodule}::{function}" if test not in all_tests: keys_for_deletion.append(".".join(components[:-1])) @@ -85,9 +84,9 @@ def get_submodule(test_path): if name in test_path: if name == "test_functional": if test_path[3] == "test_experimental": - coll = db_dict["test_experimental/" + test_path[4]] + coll = db_dict[f"test_experimental/{test_path[4]}"] else: - coll = db_dict["test_functional/" + test_path[-2]] + coll = db_dict[f"test_functional/{test_path[-2]}"] else: coll = db_dict[name] break @@ -99,12 +98,12 @@ def get_submodule(test_path): def process_test(test): coll, submod, test_fn = get_submodule(test) - return coll[0] + "/" + submod + "::" + test_fn + return f"{coll[0]}/{submod}::{test_fn}" def main(): all_tests = get_all_tests() - all_tests = set([process_test(test.split(",")[0].strip()) for test in all_tests]) + all_tests = {process_test(test.split(",")[0].strip()) for test in all_tests} mongo_key = sys.argv[1] cluster = MongoClient( f"mongodb+srv://deep-ivy:{mongo_key}@cluster0.qdvf8q3.mongodb.net/?retryWrites=true&w=majority" # noqa diff --git a/run_tests_CLI/test_dependencies.py b/run_tests_CLI/test_dependencies.py index 52ba1c061ab4d..348a63be15e6c 100644 --- a/run_tests_CLI/test_dependencies.py +++ b/run_tests_CLI/test_dependencies.py @@ -34,8 +34,8 @@ def test_imports(fname, assert_version, update_versions): global WARN global WARN_MSG global PRINT_MSG - versions_to_update = dict() - msg = "\nasserting imports work for: {}\n\n".format(fname) + versions_to_update = {} + msg = f"\nasserting imports work for: {fname}\n\n" PRINT_MSG += msg ERROR_MSG += msg WARN_MSG += msg @@ -48,7 +48,7 @@ def test_imports(fname, assert_version, update_versions): mod = importlib.import_module(mod_name) except Exception as e: ERROR = True - msg = "{} could not be imported: {}\n".format(mod_name, e) + msg = f"{mod_name} could not be imported: {e}\n" ERROR_MSG += msg PRINT_MSG += msg continue @@ -65,13 +65,11 @@ def test_imports(fname, assert_version, update_versions): detected_version = None if detected_version and expected_version: if detected_version == expected_version: - msg = "{} detected correct version: {}\n".format( - mod_name, detected_version - ) + msg = f"{mod_name} detected correct version: {detected_version}\n" else: msg = ( - "expected version {} for module {}, but detected version " - "{}\n".format(expected_version, mod_name, detected_version) + f"expected version {expected_version} for module {mod_name}, but" + f" detected version {detected_version}\n" ) versions_to_update[line_num] = { "expected": expected_version, @@ -87,17 +85,18 @@ def test_imports(fname, assert_version, update_versions): else: if detected_version: msg = ( - "{} detected version: {}, but no expected version " - "provided\n".format(mod_name, detected_version) + f"{mod_name} detected version: {detected_version}, but no expected" + " version provided\n" ) elif expected_version: - msg = "{} expected version: {}, but unable to detect version\n".format( - mod_name, expected_version + msg = ( + f"{mod_name} expected version: {expected_version}, but unable to" + " detect version\n" ) else: msg = ( - "no expected version provided, and unable to detect " - "version for {}\n".format(mod_name) + "no expected version provided, and unable to detect version for" + f" {mod_name}\n" ) WARN = True PRINT_MSG += msg diff --git a/run_tests_pr.py b/run_tests_pr.py index 167e33a26d8c5..3c5ee3391454a 100644 --- a/run_tests_pr.py +++ b/run_tests_pr.py @@ -40,9 +40,9 @@ def get_mod_submod_test(test_path): for name in modules: if name in test_path: if name == "test_functional": - module = module_map["test_functional/" + test_path[-2]] + module = module_map[f"test_functional/{test_path[-2]}"] elif name == "test_experimental": - module = module_map["test_experimental/" + test_path[-2]] + module = module_map[f"test_experimental/{test_path[-2]}"] else: module = module_map[name] break @@ -54,32 +54,29 @@ def get_mod_submod_test(test_path): if __name__ == "__main__": failed = False - f_write = open(sys.argv[1], "w") - with open("tests_to_run", "r") as f: - for line in f: - test, backend = line.split(",") - print(f"\n{'*' * 100}") - print(f"{line[:-1]}") - print(f"{'*' * 100}\n") - sys.stdout.flush() - ret = os.system( - f'docker run --rm -v "$(pwd)":/ivy -v "$(pwd)"/.hypothesis:/.hypothesis unifyai/ivy:latest python3 -m pytest --tb=short {test} --skip-compile-testing --backend {backend}' # noqa - ) - if ret != 0: - failed = True - module, submodule, test = get_mod_submod_test(test) - params = { - "module": module, - "submodule": submodule, - "backend": backend[:-1], - "test": test, - } - response = requests.get(url, params=params) - if response.status_code == 200: - if response.json(): - # The test passes on main but fails in this fork/branch + with open(sys.argv[1], "w") as f_write: + with open("tests_to_run", "r") as f: + for line in f: + test, backend = line.split(",") + print(f"\n{'*' * 100}") + print(f"{line[:-1]}") + print(f"{'*' * 100}\n") + sys.stdout.flush() + ret = os.system( + f'docker run --rm -v "$(pwd)":/ivy -v "$(pwd)"/.hypothesis:/.hypothesis unifyai/ivy:latest python3 -m pytest --tb=short {test} --skip-compile-testing --backend {backend}' # noqa + ) + if ret != 0: + failed = True + module, submodule, test = get_mod_submod_test(test) + params = { + "module": module, + "submodule": submodule, + "backend": backend[:-1], + "test": test, + } + response = requests.get(url, params=params) + if response.status_code == 200 and response.json(): f_write.write(line) - f_write.close() if failed: exit(1) diff --git a/scripts/backend_generation/generate.py b/scripts/backend_generation/generate.py index 812bae002b91d..c68757a53b8d4 100644 --- a/scripts/backend_generation/generate.py +++ b/scripts/backend_generation/generate.py @@ -113,23 +113,23 @@ def _update_native_config_value(key): try: obj = __builtins__.__dict__[parsed[-1]] except KeyError: - print(Fore.RED + f"{parsed[-1]} is not a primitive object.") + print(f"{Fore.RED}{parsed[-1]} is not a primitive object.") return False else: try: mod = import_module(parsed[0]) except ModuleNotFoundError: - print(Fore.RED + f"failed to import {parsed[0]}") + print(f"{Fore.RED}failed to import {parsed[0]}") return False try: obj = getattr(mod, parsed[-1]) except AttributeError: - print(Fore.RED + f"{parsed[-1]} is not found in module.") + print(f"{Fore.RED}{parsed[-1]} is not found in module.") return False if not inspect.isclass(obj): - print(Fore.RED + f"{obj} is not a class.") + print(f"{Fore.RED}{obj} is not a class.") return False - print(Fore.GREEN + f"Found class: {obj}") + print(f"{Fore.GREEN}Found class: {obj}") # Use alias if exists if backend["alias"] is not None: modified_namespace = parsed[0].replace( @@ -140,7 +140,7 @@ def _update_native_config_value(key): ) return True except KeyError: - print(Fore.RED + f"Couldn't find {ret}") + print(f"{Fore.RED}Couldn't find {ret}") return False return True @@ -163,7 +163,7 @@ def _should_install_backend(package_name): reqr_file.write("\n" + package_name + "\n") except subprocess.CalledProcessError as e: raise RuntimeError( - Fore.RED + f"Installing {package_name} failed. {e}" + f"{Fore.RED}Installing {package_name} failed. {e}" ) from e elif ret.lower() == "n": print( @@ -172,7 +172,7 @@ def _should_install_backend(package_name): "type checking won't be available.\n" ) else: - print(Fore.RED + f"{ret} not understood.") + print(f"{Fore.RED}{ret} not understood.") return False return True @@ -221,12 +221,12 @@ def _import_name(): _get_user_input(_import_name) global _imported_backend - print(Style.BRIGHT + f"Importing {backend['name']} for type checking...") + print(f"{Style.BRIGHT}Importing {backend['name']} for type checking...") try: _imported_backend = import_module(backend["name"]) return True except Exception as e: - print(Fore.RED + f"Failed to import {backend['name']}:{e}") + print(f"{Fore.RED}Failed to import {backend['name']}:{e}") return False return True @@ -253,9 +253,9 @@ def _update_flag_config_value(key): if ret == "y": config_flags[key] = not config_flags[key] return True - elif ret == "n" or ret == "": + elif ret in ["n", ""]: return True - print(Fore.RED + f"{ret} not understood.") + print(f"{Fore.RED}{ret} not understood.") return False @@ -327,15 +327,15 @@ def _call_generate_tree(config_name: str): for key, value in config_valids.copy().items(): all_items = fullset_mapping[key] invalid_items = list(set(all_items).difference(value)) - config_valids["in" + key] = invalid_items + config_valids[f"in{key}"] = invalid_items for key in config_valids["valid_dtypes"]: - new_key = "native_" + key + new_key = f"native_{key}" config_natives[new_key] = asdict(BackendNativeObject(name="None", namespace="")) _get_user_input(_update_native_config_value, new_key) for key in config_valids["invalid_dtypes"]: - new_key = "native_" + key + new_key = f"native_{key}" config_natives[new_key] = asdict(BackendNativeObject(name="None", namespace="")) print("\n:: Backend\n") @@ -348,10 +348,10 @@ def _call_generate_tree(config_name: str): if key.startswith("in"): continue valid_items = config_valids[key] - invalid_items = config_valids["in" + key] + invalid_items = config_valids[f"in{key}"] print("\n:: " + key.partition("_")[-1]) - print(Fore.GREEN + "valid > " + valid_items.__str__()) - print(Fore.RED + "invalid > " + invalid_items.__str__()) + print(f"{Fore.GREEN}valid > {valid_items.__str__()}") + print(f"{Fore.RED}invalid > {invalid_items.__str__()}") # Print flags for key, value in config_flags.items(): diff --git a/scripts/eager_mode_benchmark/benchmark.py b/scripts/eager_mode_benchmark/benchmark.py index f55f7fb2f484e..c2c8fe22cfaad 100644 --- a/scripts/eager_mode_benchmark/benchmark.py +++ b/scripts/eager_mode_benchmark/benchmark.py @@ -84,7 +84,7 @@ def _read_or_create_csv(output_path="./report.csv"): def _write_to_csv(df, row_list, output_path="./report.csv"): - row = {k: v for k, v in zip(COLUMNS, row_list)} + row = dict(zip(COLUMNS, row_list)) df = df.append(row, ignore_index=True) df.to_csv(output_path, index=False) @@ -206,16 +206,16 @@ def eager_benchmark( devices = ivy.default(devices, []) output_path = ivy.default(output_path, "./report.csv") print("\nBenchmarking backends : " + " ".join(backends)) - print("Number of experiments : {}".format(num_experiments) + "\n") + print(f"Number of experiments : {num_experiments}" + "\n") for i in range(num_experiments): if num_experiments > 1: print("====================") - print("Experiment {}".format(i + 1)) + print(f"Experiment {i + 1}") print("====================\n") for backend in backends: with _AvoidGPUPreallocation(backend) as _: print("------------------------------------------------\n") - print("backend : {}".format(backend)) + print(f"backend : {backend}") ivy.set_backend(backend, dynamic=True) valid_devices = [ device @@ -223,7 +223,7 @@ def eager_benchmark( if device.split(":")[0] not in ivy.invalid_devices ] for device in valid_devices: - print("device : {}".format(device)) + print(f"device : {device}") obj_call = obj if functional_api: obj_call = ivy.__dict__[obj] @@ -264,9 +264,9 @@ def eager_benchmark( ) ivy.clear_cached_mem_on_dev(device) print(LINE_UP * (len(valid_devices) - i), end=LINE_CLEAR) - print("device : {}\t --> done\n".format(device)) + print(f"device : {device}\t --> done\n") ivy.unset_backend() - print("Results written to {} ...".format(output_path)) + print(f"Results written to {output_path} ...") def visualize_speed_up( @@ -325,7 +325,7 @@ def visualize_speed_up( fig.set_figwidth(30) fig.set_figheight(12) fig.tight_layout(pad=10.0) - axes = np.asarray([axes]) if not isinstance(axes, np.ndarray) else axes + axes = axes if isinstance(axes, np.ndarray) else np.asarray([axes]) while len(axes.shape) < 2: if len(devices) > len(backends): axes = np.expand_dims(axes, len(axes.shape)) @@ -333,7 +333,7 @@ def visualize_speed_up( axes = np.expand_dims(axes, 0) for device, axis in zip(devices, axes): for backend, ax in zip(backends, axis): - ax.set_title("{} : {}".format(backend, device), {"fontsize": 18}) + ax.set_title(f"{backend} : {device}", {"fontsize": 18}) ax.set_ylabel("Percent Speed up on compiling", {"fontsize": 18}) ax.tick_params(axis="both", labelsize=15) query = df.query("backend == @backend and device == @device") @@ -341,8 +341,8 @@ def visualize_speed_up( ax.violinplot(query["percent_speed_up"]) else: warnings.warn( - "No records matching the filters passed" - "backend={} and device={}".format(backend, device) + f"No records matching the filters passedbackend={backend} and" + f" device={device}" ) plt.savefig(output_path) - print("plot saved to {} ...".format(output_path)) + print(f"plot saved to {output_path} ...") diff --git a/setup_tests.py b/setup_tests.py index 10c9f5cabb102..9f2a357d9a829 100644 --- a/setup_tests.py +++ b/setup_tests.py @@ -6,11 +6,10 @@ def main(): if len(sys.argv) < 2: return test = sys.argv[1] - if "," in test: - with open("tests_to_run", "w") as f: + with open("tests_to_run", "w") as f: + if "," in test: f.write(test + "\n") - else: - with open("tests_to_run", "w") as f: + else: for backend in BACKENDS: f.write(f"{test},{backend}\n") From 70d8127b484fa570c6431b95fd4bae19e86ce059 Mon Sep 17 00:00:00 2001 From: Sulaiman Mutawalli <64346270+sabre-code@users.noreply.github.com> Date: Mon, 11 Sep 2023 15:35:43 +0530 Subject: [PATCH 108/127] added paddle.nanmean function frontend and test for it (#23278) --- ivy/functional/frontends/paddle/math.py | 6 ++++ .../test_frontends/test_paddle/test_math.py | 31 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/ivy/functional/frontends/paddle/math.py b/ivy/functional/frontends/paddle/math.py index 242ea42e02d60..c4d3a0130f79b 100644 --- a/ivy/functional/frontends/paddle/math.py +++ b/ivy/functional/frontends/paddle/math.py @@ -376,6 +376,12 @@ def multiply(x, y, name=None): return ivy.multiply(x, y) +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def nanmean(x, axis=None, keepdims=False): + return ivy.nanmean(x, axis=axis, keepdims=keepdims) + + @with_supported_dtypes( {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle" ) diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py index eb1dbccffaba7..926836080a9b3 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py @@ -1622,6 +1622,37 @@ def test_paddle_multiply( ) +@handle_frontend_test( + fn_tree="paddle.nanmean", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("valid"), + num_arrays=1, + allow_nan=True, + ), +) +def test_paddle_nanmean( + *, + dtype_and_x, + on_device, + fn_tree, + frontend, + backend_fw, + test_flags, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_function( + input_dtypes=input_dtype, + backend_to_test=backend_fw, + frontend=frontend, + fn_tree=fn_tree, + test_flags=test_flags, + on_device=on_device, + x=x[0], + rtol=1e-04, + atol=1e-04, + ) + + # nansum @handle_frontend_test( fn_tree="paddle.nansum", From 6b545c2b7eab8bfc53806f3ba16c1e8bdd1629b9 Mon Sep 17 00:00:00 2001 From: RashulChutani Date: Mon, 11 Sep 2023 15:52:45 +0530 Subject: [PATCH 109/127] Resolve all the issues with the synchronize_db.py script and add support to remove empty containers MongoDB collections recursively [skip ci] --- run_tests_CLI/synchronize_db.py | 84 ++++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/run_tests_CLI/synchronize_db.py b/run_tests_CLI/synchronize_db.py index 93f80a2f35986..54518733fdae9 100644 --- a/run_tests_CLI/synchronize_db.py +++ b/run_tests_CLI/synchronize_db.py @@ -1,3 +1,4 @@ +import json import sys from pymongo import MongoClient from get_all_tests import get_all_tests @@ -5,8 +6,8 @@ module_map = { "core": "test_functional/test_core", - "exp_core": "test_experimental/test_core", - "nn": "test_functional/test_nn", + "exp_core": "test_functional/test_experimental/test_core", + "nn": "test_functional/test_experimental/test_nn", "exp_nn": "test_experimental/test_nn", "stateful": "test_stateful", "torch": "test_frontends/test_torch", @@ -20,20 +21,23 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): - """Recursively navigate and identify keys not in the list.""" + """ + Recursively navigate and identify keys not in the list. + """ keys_for_deletion = [] for key, value in data.items(): - new_key = f"{current_key}.{key}" if current_key else key + new_key = current_key + "." + key if current_key else key # If this is a dictionary, recurse deeper if isinstance(value, dict): - keys_for_deletion.extend(keys_to_delete_from_db(all_tests, value, new_key)) + keys_for_deletion.extend(keys_to_delete_from_db(all_tests, module, value, new_key)) + # If the new_key is not in keys_to_keep, mark it for deletion elif key != "_id": components = new_key.split(".") submodule = components[0] function = components[-2] - test = f"{module}/{submodule}::{function}" + test = module + "/" + submodule + "::" + function if test not in all_tests: keys_for_deletion.append(".".join(components[:-1])) @@ -55,7 +59,7 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore", "test_onnx", "test_sklearn", - "test_xgboost", + "test_xgboost" ) db_dict = { "test_functional/test_core": ["core", 10], @@ -74,19 +78,17 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore": ["mindspore", 23], "test_onnx": ["onnx", 24], "test_sklearn": ["sklearn", 25], - "test_xgboost": ["xgboost", 26], + "test_xgboost": ["xgboost", 26] } - - def get_submodule(test_path): test_path = test_path.split("/") for name in submodules: if name in test_path: if name == "test_functional": if test_path[3] == "test_experimental": - coll = db_dict[f"test_experimental/{test_path[4]}"] + coll = db_dict["test_experimental/" + test_path[4]] else: - coll = db_dict[f"test_functional/{test_path[-2]}"] + coll = db_dict["test_functional/" + test_path[-2]] else: coll = db_dict[name] break @@ -98,28 +100,64 @@ def get_submodule(test_path): def process_test(test): coll, submod, test_fn = get_submodule(test) - return f"{coll[0]}/{submod}::{test_fn}" + return coll[0] + "/" + submod + "::" + test_fn + + +def remove_empty_objects(document, key_prefix=''): + # Base case: if the document is not a dictionary, return an empty list + if not isinstance(document, dict): + return [] + + # List to store keys associated with empty objects + empty_keys = [] + + for key, value in document.items(): + # Generate the full key path + full_key = key_prefix + '.' + key if key_prefix else key + + # If the value is a dictionary, recursively check for empty objects + if isinstance(value, dict): + # If the dictionary is empty, store its key + if not value: + empty_keys.append(full_key) + else: + empty_keys.extend(remove_empty_objects(value, full_key)) + + return empty_keys def main(): all_tests = get_all_tests() - all_tests = {process_test(test.split(",")[0].strip()) for test in all_tests} - mongo_key = sys.argv[1] + all_tests = set([process_test(test.split(",")[0].strip()) for test in all_tests]) cluster = MongoClient( - f"mongodb+srv://deep-ivy:{mongo_key}@cluster0.qdvf8q3.mongodb.net/?retryWrites=true&w=majority" # noqa + f"mongodb+srv://rashul:rashulivy@cluster0.qdvf8q3.mongodb.net/?retryWrites=true&w=majority" # noqa ) db = cluster["Ivy_tests_multi_gpu"] for collection_name in db.list_collection_names(): collection = db[collection_name] for document in collection.find({}): - print(document) - undesired_keys = keys_to_delete_from_db( - all_tests, module_map[collection_name], document - ) + undesired_keys = keys_to_delete_from_db(all_tests, collection_name, document) for key in undesired_keys: - print(key) - # collection.update_one({"_id": document["_id"]}, {"$unset": {key: 1}}) + collection.update_one({"_id": document["_id"]}, {"$unset": {key: 1}}) + + for collection_name in db.list_collection_names(): + collection = db[collection_name] + break_flag = False + while True: + for document in collection.find({}): + keys_to_remove = remove_empty_objects(document) + if keys_to_remove: + update_operation = {'$unset': {key: 1 for key in keys_to_remove}} + collection.update_one({'_id': document['_id']}, update_operation) + else: + break_flag = True + break + if break_flag: + break_flag = False + break + + if __name__ == "__main__": - main() + main() \ No newline at end of file From c05be235f21f60b6e9e671beb3c5d4d5f914648c Mon Sep 17 00:00:00 2001 From: RashulChutani Date: Mon, 11 Sep 2023 16:01:41 +0530 Subject: [PATCH 110/127] Reformat synchronize_db.py script and update the MongoDB user account [skip ci] --- run_tests_CLI/synchronize_db.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/run_tests_CLI/synchronize_db.py b/run_tests_CLI/synchronize_db.py index 54518733fdae9..a21ee7a88337f 100644 --- a/run_tests_CLI/synchronize_db.py +++ b/run_tests_CLI/synchronize_db.py @@ -31,7 +31,9 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): # If this is a dictionary, recurse deeper if isinstance(value, dict): - keys_for_deletion.extend(keys_to_delete_from_db(all_tests, module, value, new_key)) + keys_for_deletion.extend( + keys_to_delete_from_db(all_tests, module, value, new_key) + ) # If the new_key is not in keys_to_keep, mark it for deletion elif key != "_id": components = new_key.split(".") @@ -59,7 +61,7 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore", "test_onnx", "test_sklearn", - "test_xgboost" + "test_xgboost", ) db_dict = { "test_functional/test_core": ["core", 10], @@ -78,8 +80,10 @@ def keys_to_delete_from_db(all_tests, module, data, current_key=""): "test_mindspore": ["mindspore", 23], "test_onnx": ["onnx", 24], "test_sklearn": ["sklearn", 25], - "test_xgboost": ["xgboost", 26] + "test_xgboost": ["xgboost", 26], } + + def get_submodule(test_path): test_path = test_path.split("/") for name in submodules: @@ -103,7 +107,7 @@ def process_test(test): return coll[0] + "/" + submod + "::" + test_fn -def remove_empty_objects(document, key_prefix=''): +def remove_empty_objects(document, key_prefix=""): # Base case: if the document is not a dictionary, return an empty list if not isinstance(document, dict): return [] @@ -113,7 +117,7 @@ def remove_empty_objects(document, key_prefix=''): for key, value in document.items(): # Generate the full key path - full_key = key_prefix + '.' + key if key_prefix else key + full_key = key_prefix + "." + key if key_prefix else key # If the value is a dictionary, recursively check for empty objects if isinstance(value, dict): @@ -129,14 +133,17 @@ def remove_empty_objects(document, key_prefix=''): def main(): all_tests = get_all_tests() all_tests = set([process_test(test.split(",")[0].strip()) for test in all_tests]) + mongo_key = sys.argv[1] cluster = MongoClient( - f"mongodb+srv://rashul:rashulivy@cluster0.qdvf8q3.mongodb.net/?retryWrites=true&w=majority" # noqa + f"mongodb+srv://deep-ivy:{mongo_key}@cluster0.qdvf8q3.mongodb.net/?retryWrites=true&w=majority" # noqa ) db = cluster["Ivy_tests_multi_gpu"] for collection_name in db.list_collection_names(): collection = db[collection_name] for document in collection.find({}): - undesired_keys = keys_to_delete_from_db(all_tests, collection_name, document) + undesired_keys = keys_to_delete_from_db( + all_tests, collection_name, document + ) for key in undesired_keys: collection.update_one({"_id": document["_id"]}, {"$unset": {key: 1}}) @@ -147,8 +154,8 @@ def main(): for document in collection.find({}): keys_to_remove = remove_empty_objects(document) if keys_to_remove: - update_operation = {'$unset': {key: 1 for key in keys_to_remove}} - collection.update_one({'_id': document['_id']}, update_operation) + update_operation = {"$unset": {key: 1 for key in keys_to_remove}} + collection.update_one({"_id": document["_id"]}, update_operation) else: break_flag = True break @@ -157,7 +164,5 @@ def main(): break - - if __name__ == "__main__": - main() \ No newline at end of file + main() From dfa2526b82b3c5d32df74e01bd4b968c52164951 Mon Sep 17 00:00:00 2001 From: Moses Daudu Date: Mon, 11 Sep 2023 11:43:12 +0100 Subject: [PATCH 111/127] feat: add complex type decorator and arguments for logsigmoid (#23273) --- .../array/experimental/activations.py | 6 +++++- .../container/experimental/activations.py | 10 ++++++++++ .../backends/jax/experimental/activations.py | 4 +++- .../backends/numpy/experimental/activations.py | 4 +++- .../backends/paddle/experimental/activations.py | 7 +++++-- .../tensorflow/experimental/activations.py | 6 +++++- .../backends/torch/experimental/activations.py | 4 +++- .../frontends/jax/nn/non_linear_activations.py | 2 +- ivy/functional/ivy/experimental/activations.py | 10 +++++++++- ivy/stateful/activations.py | 15 ++++++++++++--- .../test_nn/test_non_linear_activations.py | 2 +- 11 files changed, 57 insertions(+), 13 deletions(-) diff --git a/ivy/data_classes/array/experimental/activations.py b/ivy/data_classes/array/experimental/activations.py index 92f997bf66ec9..f27ef89516bbb 100644 --- a/ivy/data_classes/array/experimental/activations.py +++ b/ivy/data_classes/array/experimental/activations.py @@ -160,6 +160,7 @@ def relu6(self, /, *, out: Optional[ivy.Array] = None) -> ivy.Array: def logsigmoid( self: ivy.Array, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", ) -> ivy.Array: """ ivy.Array instance method variant of ivy.logsigmoid. This method simply wraps @@ -170,6 +171,9 @@ def logsigmoid( ---------- self Input array. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. Returns ------- @@ -187,7 +191,7 @@ def logsigmoid( >>> print(z) ivy.array([-2.57888985, -0.31326169, -0.69314718, -0.01104775]) """ - return ivy.logsigmoid(self._data) + return ivy.logsigmoid(self._data, complex_mode=complex_mode) def selu(self, /, *, out: Optional[ivy.Array] = None) -> ivy.Array: """ diff --git a/ivy/data_classes/container/experimental/activations.py b/ivy/data_classes/container/experimental/activations.py index 29c29a519761e..082fb5e062b40 100644 --- a/ivy/data_classes/container/experimental/activations.py +++ b/ivy/data_classes/container/experimental/activations.py @@ -451,6 +451,7 @@ def static_logsigmoid( to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", ) -> ivy.Container: """ ivy.Container static method variant of ivy.logsigmoid. This method simply wraps @@ -472,6 +473,9 @@ def static_logsigmoid( map_sequences Whether to also map method to sequences (lists, tuples). Default is ``False``. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. Returns ------- @@ -506,6 +510,7 @@ def static_logsigmoid( to_apply=to_apply, prune_unapplied=prune_unapplied, map_sequences=map_sequences, + complex_mode=complex_mode, ) def logsigmoid( @@ -516,6 +521,7 @@ def logsigmoid( to_apply: Union[bool, ivy.Container] = True, prune_unapplied: Union[bool, ivy.Container] = False, map_sequences: Union[bool, ivy.Container] = False, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", ) -> ivy.Container: """ Apply element-wise Log-sigmoid of x i.e. log(1 / (1 + exp(-x)). @@ -524,6 +530,9 @@ def logsigmoid( ---------- self Input container. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. Returns ------- @@ -546,6 +555,7 @@ def logsigmoid( to_apply=to_apply, prune_unapplied=prune_unapplied, map_sequences=map_sequences, + complex_mode=complex_mode, ) @staticmethod diff --git a/ivy/functional/backends/jax/experimental/activations.py b/ivy/functional/backends/jax/experimental/activations.py index a18f2b240b61c..ccb239dcbc430 100644 --- a/ivy/functional/backends/jax/experimental/activations.py +++ b/ivy/functional/backends/jax/experimental/activations.py @@ -49,7 +49,9 @@ def thresholded_relu( return jnp.where(x > threshold, x, 0).astype(x.dtype) -def logsigmoid(input: JaxArray, /, *, out: Optional[JaxArray] = None) -> JaxArray: +def logsigmoid( + input: JaxArray, /, *, complex_mode="jax", out: Optional[JaxArray] = None +) -> JaxArray: return jax.nn.log_sigmoid(input) diff --git a/ivy/functional/backends/numpy/experimental/activations.py b/ivy/functional/backends/numpy/experimental/activations.py index 1ac8c43285a96..707ecd8a4f4df 100644 --- a/ivy/functional/backends/numpy/experimental/activations.py +++ b/ivy/functional/backends/numpy/experimental/activations.py @@ -53,7 +53,9 @@ def relu6(x: np.ndarray, /, *, out: Optional[np.ndarray] = None) -> np.ndarray: @with_unsupported_dtypes({"1.25.2 and below": ("bool",)}, backend_version) @_scalar_output_to_0d_array -def logsigmoid(input: np.ndarray, /, *, out: Optional[np.ndarray] = None) -> np.ndarray: +def logsigmoid( + input: np.ndarray, /, *, complex_mode="jax", out: Optional[np.ndarray] = None +) -> np.ndarray: return -(np.log1p(np.exp(-(input)))) diff --git a/ivy/functional/backends/paddle/experimental/activations.py b/ivy/functional/backends/paddle/experimental/activations.py index d4fd80403a331..33f1d80bbf8ef 100644 --- a/ivy/functional/backends/paddle/experimental/activations.py +++ b/ivy/functional/backends/paddle/experimental/activations.py @@ -62,15 +62,18 @@ def relu6(x: paddle.Tensor, /, *, out: Optional[paddle.Tensor] = None) -> paddle return F.relu6(x.cast("float32")).cast(x.dtype) +@with_unsupported_device_and_dtypes( + {"2.5.1 and below": {"cpu": ("bfloat16",)}}, backend_version +) def logsigmoid( - input: paddle.Tensor, /, *, out: Optional[paddle.Tensor] = None + input: paddle.Tensor, /, *, complex_mode="jax", out: Optional[paddle.Tensor] = None ) -> paddle.Tensor: if input.dtype in [paddle.float32, paddle.float64]: return F.log_sigmoid(input) if paddle.is_complex(input): return paddle_backend.log( paddle_backend.divide( - 1.0, (paddle_backend.add(1.0, paddle_backend.exp(input))) + 1.0, (paddle_backend.add(1.0, paddle_backend.exp(-input))) ) ) return F.log_sigmoid(input.cast("float32")).cast(input.dtype) diff --git a/ivy/functional/backends/tensorflow/experimental/activations.py b/ivy/functional/backends/tensorflow/experimental/activations.py index 5ba64d523be10..709ae09314cd1 100644 --- a/ivy/functional/backends/tensorflow/experimental/activations.py +++ b/ivy/functional/backends/tensorflow/experimental/activations.py @@ -44,7 +44,11 @@ def relu6(x: Tensor, /, *, out: Optional[Tensor] = None) -> Tensor: @with_supported_dtypes({"2.13.0 and below": ("float",)}, backend_version) -def logsigmoid(input: Tensor, /, *, out: Optional[Tensor] = None) -> Tensor: +def logsigmoid( + input: Tensor, /, *, complex_mode="jax", out: Optional[Tensor] = None +) -> Tensor: + if input.dtype in [tf.complex64, tf.complex128]: + return tf.math.log(tf.nn.sigmoid(input)) return tf.math.log_sigmoid(input) diff --git a/ivy/functional/backends/torch/experimental/activations.py b/ivy/functional/backends/torch/experimental/activations.py index 4331ac7b57fed..5969804298c59 100644 --- a/ivy/functional/backends/torch/experimental/activations.py +++ b/ivy/functional/backends/torch/experimental/activations.py @@ -40,8 +40,10 @@ def relu6(x: torch.Tensor, /, *, out: Optional[torch.Tensor] = None) -> torch.Te @with_unsupported_dtypes({"2.0.1 and below": ("float16",)}, backend_version) def logsigmoid( - input: torch.Tensor, /, *, out: Optional[torch.Tensor] = None + input: torch.Tensor, /, *, complex_mode="jax", out: Optional[torch.Tensor] = None ) -> torch.Tensor: + if torch.is_complex(input): + return torch.log(torch.sigmoid(input)) return torch.nn.functional.logsigmoid(input) diff --git a/ivy/functional/frontends/jax/nn/non_linear_activations.py b/ivy/functional/frontends/jax/nn/non_linear_activations.py index 2f6ad3a036c69..8d10397702cec 100644 --- a/ivy/functional/frontends/jax/nn/non_linear_activations.py +++ b/ivy/functional/frontends/jax/nn/non_linear_activations.py @@ -186,7 +186,7 @@ def leaky_relu(x, negative_slope=0.01): @to_ivy_arrays_and_back def log_sigmoid(x): x = _type_conversion(x) - return ivy.negative(ivy.softplus(ivy.negative(x))).astype(x.dtype) + return ivy.logsigmoid(x, complex_mode="jax").astype(x.dtype) @to_ivy_arrays_and_back diff --git a/ivy/functional/ivy/experimental/activations.py b/ivy/functional/ivy/experimental/activations.py index c4519ec90fdb9..d4f701cf45b0d 100644 --- a/ivy/functional/ivy/experimental/activations.py +++ b/ivy/functional/ivy/experimental/activations.py @@ -267,8 +267,13 @@ def relu6( @handle_out_argument @to_native_arrays_and_back @handle_device_shifting +@handle_complex_input def logsigmoid( - input: Union[ivy.NativeArray, ivy.Array], /, *, out: Optional[ivy.Array] = None + input: Union[ivy.NativeArray, ivy.Array], + /, + *, + complex_mode: Literal["split", "magnitude", "jax"] = "jax", + out: Optional[ivy.Array] = None, ) -> ivy.Array: """ Apply element-wise Log-sigmoid of x. @@ -279,6 +284,9 @@ def logsigmoid( ---------- input Input array. + complex_mode + optional specifier for how to handle complex data types. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. Returns ------- diff --git a/ivy/stateful/activations.py b/ivy/stateful/activations.py index b83bac4fe826b..7b9c67035e117 100644 --- a/ivy/stateful/activations.py +++ b/ivy/stateful/activations.py @@ -482,8 +482,17 @@ def _forward(self, x): class LogSigmoid(Module): - def __init__(self): - """Apply the LogSigmoid activation function.""" + def __init__(self, complex_mode: Literal["split", "magnitude", "jax"] = "jax"): + """ + Apply the LogSigmoid activation function. + + Parameter + ---------- + complex_mode + Specifies how to handle complex input. See + ``ivy.func_wrapper.handle_complex_input`` for more detail. + """ + self._complex_mode = complex_mode Module.__init__(self) def _forward(self, x): @@ -499,4 +508,4 @@ def _forward(self, x): ret The outputs following the LogSigmoid activation *[batch_shape, d]* """ - return ivy.logsigmoid(x) + return ivy.logsigmoid(x, complex_mode=self._complex_mode) diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py index ef904c7854dde..98660c17328ed 100644 --- a/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py +++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_nn/test_non_linear_activations.py @@ -348,7 +348,7 @@ def test_jax_leaky_relu( @handle_frontend_test( fn_tree="jax.nn.log_sigmoid", dtype_and_x=helpers.dtype_and_values( - available_dtypes=helpers.get_dtypes("float"), + available_dtypes=helpers.get_dtypes("float_and_complex"), min_value=-100, max_value=100, large_abs_safety_factor=8, From 389434f920326346e3680539d07adc319c1d7169 Mon Sep 17 00:00:00 2001 From: Ahmed Hisham <62694574+Mghrabi@users.noreply.github.com> Date: Mon, 11 Sep 2023 14:35:24 +0300 Subject: [PATCH 112/127] fixed wrong returned shape of paddle.mean function (#23389) --- ivy/functional/frontends/paddle/stat.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ivy/functional/frontends/paddle/stat.py b/ivy/functional/frontends/paddle/stat.py index bfee9e9d65d2c..91b69d7441091 100644 --- a/ivy/functional/frontends/paddle/stat.py +++ b/ivy/functional/frontends/paddle/stat.py @@ -10,7 +10,6 @@ @to_ivy_arrays_and_back def mean(input, axis=None, keepdim=False, out=None): ret = ivy.mean(input, axis=axis, keepdims=keepdim, out=out) - ret = ivy.expand_dims(ret, axis=-1) if ret.ndim == 0 else ret return ret From e2277370ac36c58bae1d4745931ad360b000d7ba Mon Sep 17 00:00:00 2001 From: Sai-Suraj-27 Date: Mon, 11 Sep 2023 18:03:58 +0530 Subject: [PATCH 113/127] refactor: Simplified conditional logic using `De Morgan's law` at few places. (#23310) --- .../frontends/numpy/linalg/norms_and_other_numbers.py | 2 +- ivy/functional/frontends/torch/linalg.py | 2 +- .../frontends/torch/nn/functional/vision_functions.py | 4 ++-- ivy/functional/ivy/experimental/sparse_array.py | 2 +- .../array_api_testing/write_array_api_tests_k_flag.py | 2 +- .../test_ivy/test_functional/test_core/test_device.py | 2 +- .../test_functional/test_core/test_elementwise.py | 10 +++++----- ivy_tests/test_ivy/test_misc/test_array.py | 6 +++--- ivy_tests/test_ivy/test_misc/test_shape.py | 2 +- run_tests_CLI/array_api_det_coverage.py | 2 +- 10 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ivy/functional/frontends/numpy/linalg/norms_and_other_numbers.py b/ivy/functional/frontends/numpy/linalg/norms_and_other_numbers.py index 505fee51f9ee6..b02b6fe921046 100644 --- a/ivy/functional/frontends/numpy/linalg/norms_and_other_numbers.py +++ b/ivy/functional/frontends/numpy/linalg/norms_and_other_numbers.py @@ -27,7 +27,7 @@ def matrix_rank(A, tol=None, hermitian=False): @to_ivy_arrays_and_back @from_zero_dim_arrays_to_scalar def norm(x, ord=None, axis=None, keepdims=False): - if axis is None and not (ord is None): + if axis is None and (ord is not None): if x.ndim not in (1, 2): raise ValueError("Improper number of dimensions to norm.") else: diff --git a/ivy/functional/frontends/torch/linalg.py b/ivy/functional/frontends/torch/linalg.py index dcfc92da0a9a9..1055938e53a4d 100644 --- a/ivy/functional/frontends/torch/linalg.py +++ b/ivy/functional/frontends/torch/linalg.py @@ -198,7 +198,7 @@ def multi_dot(tensors, *, out=None): {"2.0.1 and below": ("float32", "float64", "complex64", "complex128")}, "torch" ) def norm(input, ord=None, dim=None, keepdim=False, *, dtype=None, out=None): - if dim is None and not (ord is None): + if dim is None and (ord is not None): if input.ndim == 1: ret = ivy.vector_norm(input, axis=dim, keepdims=keepdim, ord=ord) else: diff --git a/ivy/functional/frontends/torch/nn/functional/vision_functions.py b/ivy/functional/frontends/torch/nn/functional/vision_functions.py index 56aeb000e4f84..9d0aa88c30d1a 100644 --- a/ivy/functional/frontends/torch/nn/functional/vision_functions.py +++ b/ivy/functional/frontends/torch/nn/functional/vision_functions.py @@ -309,7 +309,7 @@ def grid_sample( ) elif mode == "bicubic": - raise ivy.exceptions.IvyError(f"Bicubic is not support in 3D grid sampling") + raise ivy.exceptions.IvyError("Bicubic is not support in 3D grid sampling") else: raise ivy.exceptions.IvyError(f"Not supported input shape {input_clone.shape}") @@ -451,7 +451,7 @@ def interpolate( if ( bool(antialias) - and not (mode in ["bilinear", "bicubic"]) + and (mode not in ["bilinear", "bicubic"]) and ivy.get_num_dims(input) == 4 ): raise ivy.utils.exceptions.IvyException( diff --git a/ivy/functional/ivy/experimental/sparse_array.py b/ivy/functional/ivy/experimental/sparse_array.py index 5c67cc823e7c1..49a13248921c8 100644 --- a/ivy/functional/ivy/experimental/sparse_array.py +++ b/ivy/functional/ivy/experimental/sparse_array.py @@ -316,7 +316,7 @@ def _is_valid_format( ): valid_formats = ["coo", "csr", "csc", "csc", "bsc", "bsr"] - if not isinstance(format, str) or not format.lower() in valid_formats: + if not isinstance(format, str) or format.lower() not in valid_formats: return False if format.endswith("o"): diff --git a/ivy_tests/array_api_testing/write_array_api_tests_k_flag.py b/ivy_tests/array_api_testing/write_array_api_tests_k_flag.py index 61b678fda7f08..a41b8243ce608 100644 --- a/ivy_tests/array_api_testing/write_array_api_tests_k_flag.py +++ b/ivy_tests/array_api_testing/write_array_api_tests_k_flag.py @@ -40,7 +40,7 @@ continue if ("#" not in s) or ( "#" in s - and not (framework in s.lower()) + and (framework not in s.lower()) and any(f in s.lower() for f in framework_tests_to_run) ): tests_to_run += ( diff --git a/ivy_tests/test_ivy/test_functional/test_core/test_device.py b/ivy_tests/test_ivy/test_functional/test_core/test_device.py index b4bf40ba7fe16..ec6c8b6a84351 100644 --- a/ivy_tests/test_ivy/test_functional/test_core/test_device.py +++ b/ivy_tests/test_ivy/test_functional/test_core/test_device.py @@ -691,7 +691,7 @@ def test_to_device( # check if native arrays are the same # these backends do not support native inplace updates - assume(not (backend_fw in ["tensorflow", "jax"])) + assume(backend_fw not in ["tensorflow", "jax"]) assert x_on_dev.data is out.data diff --git a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py index dddf7963e4f8d..953b621b1d70f 100644 --- a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py +++ b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py @@ -936,7 +936,7 @@ def test_gcd(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): def test_greater(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x # bfloat16 is not supported - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) helpers.test_function( input_dtypes=input_dtype, test_flags=test_flags, @@ -959,7 +959,7 @@ def test_greater(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): def test_greater_equal(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # make sure they're not too close together assume(not (np.any(np.isclose(x[0], x[1])) or np.any(np.isclose(x[1], x[0])))) helpers.test_function( @@ -1142,7 +1142,7 @@ def test_lcm(dtype_and_x, test_flags, backend_fw, fn_name, on_device): def test_less(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # make sure they're not too close together assume(not (np.any(np.isclose(x[0], x[1])) or np.any(np.isclose(x[1], x[0])))) helpers.test_function( @@ -1167,7 +1167,7 @@ def test_less(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): def test_less_equal(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # make sure they're not too close together assume(not (np.any(np.isclose(x[0], x[1])) or np.any(np.isclose(x[1], x[0])))) helpers.test_function( @@ -1595,7 +1595,7 @@ def test_pow(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # Make sure x2 isn't a float when x1 is integer assume( diff --git a/ivy_tests/test_ivy/test_misc/test_array.py b/ivy_tests/test_ivy/test_misc/test_array.py index 93b15c77a456e..853bb85708e63 100644 --- a/ivy_tests/test_ivy/test_misc/test_array.py +++ b/ivy_tests/test_ivy/test_misc/test_array.py @@ -873,7 +873,7 @@ def test_array__ipow__( input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # Make sure x2 isn't a float when x1 is integer assume( @@ -1502,7 +1502,7 @@ def test_array__pow__( input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # Make sure x2 isn't a float when x1 is integer assume( @@ -1881,7 +1881,7 @@ def test_array__rpow__( input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # Make sure x2 isn't a float when x1 is integer assume( diff --git a/ivy_tests/test_ivy/test_misc/test_shape.py b/ivy_tests/test_ivy/test_misc/test_shape.py index 266292f7e2500..ec84ce3ac3bfd 100644 --- a/ivy_tests/test_ivy/test_misc/test_shape.py +++ b/ivy_tests/test_ivy/test_misc/test_shape.py @@ -545,7 +545,7 @@ def test_shape__pow__( input_dtype, x = dtype_and_x # bfloat16 is not supported by numpy - assume(not ("bfloat16" in input_dtype)) + assume("bfloat16" not in input_dtype) # Make sure x2 isn't a float when x1 is integer with BackendHandler.update_backend(backend_fw) as ivy_backend: diff --git a/run_tests_CLI/array_api_det_coverage.py b/run_tests_CLI/array_api_det_coverage.py index 463f4f5944281..712ce6c8dbee1 100644 --- a/run_tests_CLI/array_api_det_coverage.py +++ b/run_tests_CLI/array_api_det_coverage.py @@ -33,7 +33,7 @@ def main(): continue if ("#" not in s) or ( "#" in s - and not (framework in s.lower()) + and (framework not in s.lower()) and any(f in s.lower() for f in framework_tests_to_run) ): submod = f"ivy_tests/array_api_testing/test_array_api/array_api_tests/test_{fname.replace('.txt', '.py')}" # noqa From f713068bd05ec2ec5ae573bff2d622ac58ef568b Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Mon, 11 Sep 2023 13:54:14 +0100 Subject: [PATCH 114/127] fix(ivy): Extends ivy.pow to work for all input and exponent cases --- ivy/functional/backends/numpy/elementwise.py | 4 +++- .../backends/tensorflow/elementwise.py | 9 ++++++++- ivy/functional/ivy/elementwise.py | 7 ------- .../test_core/test_elementwise.py | 17 +---------------- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/ivy/functional/backends/numpy/elementwise.py b/ivy/functional/backends/numpy/elementwise.py index 6c4459bbaaf4f..654c37a673245 100644 --- a/ivy/functional/backends/numpy/elementwise.py +++ b/ivy/functional/backends/numpy/elementwise.py @@ -611,7 +611,9 @@ def pow( out: Optional[np.ndarray] = None, ) -> np.ndarray: x1, x2 = ivy.promote_types_of_inputs(x1, x2) - return np.power(x1, x2, out=out) + if ivy.is_int_dtype(x1) and ivy.any(x2 < 0): + return np.float_power(x1, x2, casting='unsafe').astype(x1.dtype) + return np.power(x1, x2) pow.support_native_out = True diff --git a/ivy/functional/backends/tensorflow/elementwise.py b/ivy/functional/backends/tensorflow/elementwise.py index 1e060e8e8cae3..a8dc01ba58d3f 100644 --- a/ivy/functional/backends/tensorflow/elementwise.py +++ b/ivy/functional/backends/tensorflow/elementwise.py @@ -620,7 +620,14 @@ def pow( if x2.dtype.is_unsigned: x2 = tf.cast(x2, tf.float64) return tf.cast(tf.experimental.numpy.power(x1, x2), promoted_type) - return tf.experimental.numpy.power(x1, x2) + orig_x1_dtype = None + if ivy.is_int_dtype(x1) and ivy.any(x2 < 0): + orig_x1_dtype = x1.dtype + x1 = tf.cast(x1, tf.float32) + ret = tf.experimental.numpy.power(x1, x2) + if orig_x1_dtype is not None: + return tf.cast(ret, orig_x1_dtype) + return ret @with_unsupported_dtypes({"2.13.0 and below": ("bfloat16", "complex")}, backend_version) diff --git a/ivy/functional/ivy/elementwise.py b/ivy/functional/ivy/elementwise.py index 3d9eebc0aa71e..7909bb56cecd3 100644 --- a/ivy/functional/ivy/elementwise.py +++ b/ivy/functional/ivy/elementwise.py @@ -5201,13 +5201,6 @@ def pow( (the exponent), where ``x2_i`` is the corresponding element of the input array ``x2``. - .. note:: - If both ``x1`` and ``x2`` have integer data types, the result of ``pow`` when - ``x2_i`` is negative (i.e., less than zero) is unspecified and thus - implementation-dependent. If ``x1`` has an integer data type and ``x2`` has a - floating-point data type, behavior is implementation-dependent (type promotion - between data type "kinds" (integer versus floating-point) is unspecified). - **Special cases** For floating-point operands, diff --git a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py index 953b621b1d70f..447e5d0a34448 100644 --- a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py +++ b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py @@ -136,10 +136,6 @@ def cast_filter(dtype1_x1_dtype2): ) ) dtype2 = dtype2[0] - if "int" in dtype2: - x2 = ivy.nested_map( - x2[0], lambda x: abs(x), include_derived={"list": True}, shallow=False - ) return [dtype1, dtype2], [x1, x2] @@ -1593,19 +1589,8 @@ def test_positive(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): ) def test_pow(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x - # bfloat16 is not supported by numpy - assume("bfloat16" not in input_dtype) - - # Make sure x2 isn't a float when x1 is integer - assume( - not (ivy.is_int_dtype(input_dtype[0] and ivy.is_float_dtype(input_dtype[1]))) - ) - - # Make sure x2 is non-negative when both is integer - if ivy.is_int_dtype(input_dtype[1]) and ivy.is_int_dtype(input_dtype[0]): - x[1] = np.abs(x[1]) - + assume(not ("bfloat16" in input_dtype)) x[0] = not_too_close_to_zero(x[0]) x[1] = not_too_close_to_zero(x[1]) helpers.test_function( From 9c2dc947e00e78be19d4e3716f19e6c402951dd0 Mon Sep 17 00:00:00 2001 From: Indraneel kumar <45780459+Indraneel99@users.noreply.github.com> Date: Mon, 11 Sep 2023 20:20:36 +0530 Subject: [PATCH 115/127] feat(Paddle-frontend): added multilabel_soft_margin_loss to the paddle frontend (#20909) Co-authored-by: hirwa-nshuti --- .../frontends/paddle/nn/functional/loss.py | 18 +++++++ .../test_nn/test_functional/test_loss.py | 52 +++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/ivy/functional/frontends/paddle/nn/functional/loss.py b/ivy/functional/frontends/paddle/nn/functional/loss.py index 774e3d8e43cf4..04377a35403df 100644 --- a/ivy/functional/frontends/paddle/nn/functional/loss.py +++ b/ivy/functional/frontends/paddle/nn/functional/loss.py @@ -472,3 +472,21 @@ def triplet_margin_loss( loss = reduction(loss).astype(input.dtype) return loss + + +@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") +@to_ivy_arrays_and_back +def multi_label_soft_margin_loss( + input, label, weight=None, reduction="mean", name=None +): + reduction = _get_reduction_func(reduction) + loss = -( + label * ivy.log(ivy.sigmoid(input)) + + (1 - label) * ivy.log(1 - ivy.sigmoid(input)) + ) + + if weight is not None: + loss = ivy.multiply(weight, loss) + loss = ivy.mean(loss, axis=-1) + ret = reduction(loss).astype(input.dtype) + return ret diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_loss.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_loss.py index c6792a06158c3..2a8a9486576d2 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_loss.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_nn/test_functional/test_loss.py @@ -720,3 +720,55 @@ def test_paddle_triplet_margin_loss( swap=swap, reduction=reduction, ) + + +@handle_frontend_test( + fn_tree="paddle.nn.functional.multi_label_soft_margin_loss", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + num_arrays=2, + min_value=-2, + max_value=2, + shared_dtype=True, + allow_inf=False, + min_num_dims=2, + max_num_dims=5, + min_dim_size=1, + max_dim_size=10, + ), + dtype_and_weight=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_num_dims=2, + min_value=-2, + max_value=2, + ), + reduction=st.sampled_from(["mean", "none", "sum"]), +) +def test_paddle_multi_label_soft_margin_loss( + dtype_and_x, + dtype_and_weight, + reduction, + on_device, + fn_tree, + backend_fw, + frontend, + test_flags, +): + x_dtype, x = dtype_and_x + weight_dtype, weight = dtype_and_weight + helpers.test_frontend_function( + input_dtypes=[ + x_dtype[0], + x_dtype[1], + weight_dtype[0], + ], + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + input=x[0], + label=x[1], + weight=weight[0], + reduction=reduction, + ) From b6cdb1f58d0283456c75b89df30c714137c121c8 Mon Sep 17 00:00:00 2001 From: Javeria-Siddique <92924644+Javeria-Siddique@users.noreply.github.com> Date: Mon, 11 Sep 2023 20:03:30 +0500 Subject: [PATCH 116/127] feat(Numpy-frontend): Added eigvals function to numpy frontend (#22920) Co-authored-by: hirwa-nshuti --- .../numpy/linalg/matrix_eigenvalues.py | 5 ++ .../test_linalg/test_matrix_eigenvalues.py | 49 +++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/ivy/functional/frontends/numpy/linalg/matrix_eigenvalues.py b/ivy/functional/frontends/numpy/linalg/matrix_eigenvalues.py index d0b98b00264c7..6c3a6e61f1265 100644 --- a/ivy/functional/frontends/numpy/linalg/matrix_eigenvalues.py +++ b/ivy/functional/frontends/numpy/linalg/matrix_eigenvalues.py @@ -17,6 +17,11 @@ def eigh(a, /, UPLO="L"): return ivy.eigh(a, UPLO=UPLO) +@to_ivy_arrays_and_back +def eigvals(a): + return ivy.eig(a)[0] + + @to_ivy_arrays_and_back @from_zero_dim_arrays_to_scalar def eigvalsh(a, /, UPLO="L"): diff --git a/ivy_tests/test_ivy/test_frontends/test_numpy/test_linalg/test_matrix_eigenvalues.py b/ivy_tests/test_ivy/test_frontends/test_numpy/test_linalg/test_matrix_eigenvalues.py index d240cef1dc48b..b76655cf0897d 100644 --- a/ivy_tests/test_ivy/test_frontends/test_numpy/test_linalg/test_matrix_eigenvalues.py +++ b/ivy_tests/test_ivy/test_frontends/test_numpy/test_linalg/test_matrix_eigenvalues.py @@ -130,6 +130,55 @@ def test_numpy_eigh( ) +@handle_frontend_test( + fn_tree="numpy.linalg.eigvals", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_value=0, + max_value=10, + shape=helpers.ints(min_value=2, max_value=4).map(lambda x: tuple([x, x])), + ).filter( + lambda x: "float16" not in x[0] + and "bfloat16" not in x[0] + and np.linalg.cond(x[1][0]) < 1 / sys.float_info.epsilon + and np.linalg.det(np.asarray(x[1][0])) != 0 + ), + test_with_out=st.just(False), +) +def test_numpy_eigvals( + dtype_and_x, + on_device, + fn_tree, + frontend, + test_flags, + backend_fw, +): + dtype, x = dtype_and_x + ret, frontend_ret = helpers.test_frontend_function( + input_dtypes=dtype, + backend_to_test=backend_fw, + frontend=frontend, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=False, + a=x, + ) + with BackendHandler.update_backend(backend_fw) as ivy_backend: + ret = np.sort( + np.array([ivy_backend.to_numpy(x).astype(np.float128) for x in ret]) + ) + frontend_ret = np.sort(np.array([x.astype(np.float128) for x in frontend_ret])) + assert_all_close( + ret_np=ret, + ret_from_gt_np=frontend_ret, + backend=backend_fw, + ground_truth_backend=frontend, + atol=1e-2, + rtol=1e-2, + ) + + # eigvalsh @handle_frontend_test( fn_tree="numpy.linalg.eigvalsh", From 20440c560330196f5be6f9a7499bb64dde4ce7f9 Mon Sep 17 00:00:00 2001 From: AnnaTz <111577222+AnnaTz@users.noreply.github.com> Date: Mon, 11 Sep 2023 16:30:48 +0100 Subject: [PATCH 117/127] fix(ivy): Tests and fixes ivy.pow for int/float exponents --- ivy/data_classes/array/elementwise.py | 2 +- ivy/data_classes/container/elementwise.py | 4 +-- ivy/functional/backends/jax/elementwise.py | 12 +++++-- ivy/functional/backends/mxnet/elementwise.py | 4 +-- ivy/functional/backends/numpy/elementwise.py | 4 +-- ivy/functional/backends/paddle/elementwise.py | 10 ++++-- .../backends/tensorflow/elementwise.py | 4 +-- ivy/functional/backends/torch/elementwise.py | 4 +-- ivy/functional/ivy/elementwise.py | 11 +++++-- .../test_core/test_elementwise.py | 31 ++++++++++++------- 10 files changed, 58 insertions(+), 28 deletions(-) diff --git a/ivy/data_classes/array/elementwise.py b/ivy/data_classes/array/elementwise.py index 794da705e123c..c9ce05589e45b 100644 --- a/ivy/data_classes/array/elementwise.py +++ b/ivy/data_classes/array/elementwise.py @@ -2055,7 +2055,7 @@ def positive(self: ivy.Array, *, out: Optional[ivy.Array] = None) -> ivy.Array: def pow( self: ivy.Array, - x2: Union[ivy.Array, ivy.NativeArray], + x2: Union[int, float, ivy.Array, ivy.NativeArray], /, *, out: Optional[ivy.Array] = None, diff --git a/ivy/data_classes/container/elementwise.py b/ivy/data_classes/container/elementwise.py index 4de059cf06057..2c4432952b979 100644 --- a/ivy/data_classes/container/elementwise.py +++ b/ivy/data_classes/container/elementwise.py @@ -6755,7 +6755,7 @@ def positive( @staticmethod def _static_pow( x1: Union[ivy.Array, ivy.NativeArray, ivy.Container], - x2: Union[ivy.Array, ivy.NativeArray, ivy.Container], + x2: Union[int, float, ivy.Array, ivy.NativeArray, ivy.Container], /, *, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, @@ -6823,7 +6823,7 @@ def _static_pow( def pow( self: ivy.Container, - x2: Union[ivy.Container, ivy.Array, ivy.NativeArray], + x2: Union[int, float, ivy.Container, ivy.Array, ivy.NativeArray], /, *, key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, diff --git a/ivy/functional/backends/jax/elementwise.py b/ivy/functional/backends/jax/elementwise.py index 6de81f65a16eb..84f0f7d0b6518 100644 --- a/ivy/functional/backends/jax/elementwise.py +++ b/ivy/functional/backends/jax/elementwise.py @@ -14,6 +14,7 @@ from ivy.functional.backends.jax import JaxArray from ivy.func_wrapper import with_unsupported_dtypes from . import backend_version +from ...ivy.elementwise import _complex_to_inf def abs( @@ -401,13 +402,20 @@ def positive( def pow( - x1: Union[float, JaxArray], - x2: Union[float, JaxArray], + x1: JaxArray, + x2: Union[int, float, JaxArray], /, *, out: Optional[JaxArray] = None, ) -> JaxArray: x1, x2 = ivy.promote_types_of_inputs(x1, x2) + if ivy.is_complex_dtype(x1) and ivy.any(ivy.isinf(x2)): + inf_indices = jnp.nonzero(jnp.isinf(x2)) + ret = jnp.power(x1, x2) + ret[inf_indices] = _complex_to_inf(ret[inf_indices]) + return ret + if ivy.is_int_dtype(x1) and ivy.any(x2 < 0): + return jnp.float_power(x1, x2).astype(x1.dtype) return jnp.power(x1, x2) diff --git a/ivy/functional/backends/mxnet/elementwise.py b/ivy/functional/backends/mxnet/elementwise.py index 42a8a2788b605..5be5e5d59cf5c 100644 --- a/ivy/functional/backends/mxnet/elementwise.py +++ b/ivy/functional/backends/mxnet/elementwise.py @@ -463,8 +463,8 @@ def positive( def pow( - x1: Union[(float, None, mx.ndarray.NDArray)], - x2: Union[(float, None, mx.ndarray.NDArray)], + x1: Union[(None, mx.ndarray.NDArray)], + x2: Union[(int, float, None, mx.ndarray.NDArray)], /, *, out: Optional[Union[(None, mx.ndarray.NDArray)]] = None, diff --git a/ivy/functional/backends/numpy/elementwise.py b/ivy/functional/backends/numpy/elementwise.py index 654c37a673245..72060aae2fed1 100644 --- a/ivy/functional/backends/numpy/elementwise.py +++ b/ivy/functional/backends/numpy/elementwise.py @@ -604,8 +604,8 @@ def positive( @_scalar_output_to_0d_array def pow( - x1: Union[float, np.ndarray], - x2: Union[float, np.ndarray], + x1: np.ndarray, + x2: Union[int, float, np.ndarray], /, *, out: Optional[np.ndarray] = None, diff --git a/ivy/functional/backends/paddle/elementwise.py b/ivy/functional/backends/paddle/elementwise.py index d5dda72b4a901..09210b97a29f0 100644 --- a/ivy/functional/backends/paddle/elementwise.py +++ b/ivy/functional/backends/paddle/elementwise.py @@ -10,6 +10,7 @@ # local from . import backend_version +from ...ivy.elementwise import _complex_to_inf def _elementwise_helper(x1, x2): @@ -800,13 +801,18 @@ def square( {"2.5.1 and below": {"cpu": ("bfloat16",)}}, backend_version ) def pow( - x1: Union[float, paddle.Tensor], - x2: Union[float, paddle.Tensor], + x1: paddle.Tensor, + x2: Union[int, float, paddle.Tensor], /, *, out: Optional[paddle.Tensor] = None, ) -> paddle.Tensor: x1, x2, ret_dtype = _elementwise_helper(x1, x2) + if ivy.is_complex_dtype(x1) and ivy.any(ivy.isinf(x2)): + inf_indices = paddle.nonzero(paddle.isinf(x2)) + ret = paddle.pow(x1, x2) + ret[inf_indices] = _complex_to_inf(ret[inf_indices]) + return ret if x1.dtype in [ paddle.int8, paddle.int16, diff --git a/ivy/functional/backends/tensorflow/elementwise.py b/ivy/functional/backends/tensorflow/elementwise.py index a8dc01ba58d3f..751a42d4a24e6 100644 --- a/ivy/functional/backends/tensorflow/elementwise.py +++ b/ivy/functional/backends/tensorflow/elementwise.py @@ -605,8 +605,8 @@ def positive( backend_version, ) def pow( - x1: Union[float, tf.Tensor, tf.Variable], - x2: Union[float, tf.Tensor, tf.Variable], + x1: Union[tf.Tensor, tf.Variable], + x2: Union[int, float, tf.Tensor, tf.Variable], /, *, out: Optional[Union[tf.Tensor, tf.Variable]] = None, diff --git a/ivy/functional/backends/torch/elementwise.py b/ivy/functional/backends/torch/elementwise.py index a0a3f5c11e053..4d7c767fd5b8c 100644 --- a/ivy/functional/backends/torch/elementwise.py +++ b/ivy/functional/backends/torch/elementwise.py @@ -583,8 +583,8 @@ def square(x: torch.Tensor, /, *, out: Optional[torch.Tensor] = None) -> torch.T @handle_numpy_arrays_in_specific_backend def pow( - x1: Union[float, torch.Tensor], - x2: Union[float, torch.Tensor], + x1: torch.Tensor, + x2: Union[int, float, torch.Tensor], /, *, out: Optional[torch.Tensor] = None, diff --git a/ivy/functional/ivy/elementwise.py b/ivy/functional/ivy/elementwise.py index 7909bb56cecd3..461b1adacc179 100644 --- a/ivy/functional/ivy/elementwise.py +++ b/ivy/functional/ivy/elementwise.py @@ -5189,8 +5189,8 @@ def positive( @handle_array_function @handle_device_shifting def pow( - x1: Union[float, ivy.Array, ivy.NativeArray], - x2: Union[float, ivy.Array, ivy.NativeArray], + x1: Union[ivy.Array, ivy.NativeArray], + x2: Union[int, float, ivy.Array, ivy.NativeArray], /, *, out: Optional[ivy.Array] = None, @@ -5321,6 +5321,13 @@ def pow( pow.unsupported_gradients = {"torch": ["float16"]} +def _complex_to_inf(exponent): + if exponent < 0: + return float('inf') + ivy.nan * 1j + else: + return -0 * 1j + + @handle_exceptions @handle_backend_invalid @handle_nestable diff --git a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py index 447e5d0a34448..5fd064506ed80 100644 --- a/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py +++ b/ivy_tests/test_ivy/test_functional/test_core/test_elementwise.py @@ -126,17 +126,26 @@ def cast_filter(dtype1_x1_dtype2): max_value = int(math.log(max_val) / math.log(max_x1)) if abs(max_value) > abs(max_val) / 40 or max_value < 0: max_value = None - dtype2, x2 = draw( - helpers.dtype_and_values( - small_abs_safety_factor=16, - large_abs_safety_factor=16, - safety_factor_scale="log", - max_value=max_value, - dtype=[dtype2], + dtype_and_x2 = draw( + st.one_of( + helpers.dtype_and_values( + small_abs_safety_factor=16, + large_abs_safety_factor=16, + safety_factor_scale="log", + max_value=max_value, + dtype=[dtype2], + ), + st.floats(max_value=max_value), + st.integers(max_value=max_value), ) ) - dtype2 = dtype2[0] - return [dtype1, dtype2], [x1, x2] + input_dtypes = [dtype1] + if isinstance(dtype_and_x2, tuple): + input_dtypes += dtype_and_x2[0] + x2 = dtype_and_x2[1][0] + else: + x2 = dtype_and_x2 + return input_dtypes, [x1[0], x2] # --- Main --- # @@ -144,8 +153,7 @@ def cast_filter(dtype1_x1_dtype2): def not_too_close_to_zero(x): - f = np.vectorize(lambda item: item + (_one if np.isclose(item, 0) else _zero)) - return f(x) + return np.where(np.isclose(x, 0), x + 1, x) # abs @@ -1586,6 +1594,7 @@ def test_positive(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): @handle_test( fn_tree="functional.ivy.pow", dtype_and_x=pow_helper(), + test_gradients=st.just(False), ) def test_pow(*, dtype_and_x, test_flags, backend_fw, fn_name, on_device): input_dtype, x = dtype_and_x From 1faa24ce8d0d8d8e1ac7146e7c9eef9a600e70d2 Mon Sep 17 00:00:00 2001 From: Peter Kiprop <71701881+Kiprop2020@users.noreply.github.com> Date: Mon, 11 Sep 2023 18:54:07 +0300 Subject: [PATCH 118/127] rfftfreq (#23306) --- ivy/functional/frontends/paddle/fft.py | 9 ++++++++ .../test_frontends/test_paddle/test_fft.py | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/ivy/functional/frontends/paddle/fft.py b/ivy/functional/frontends/paddle/fft.py index bd40f59060eb0..4355c8d954eef 100644 --- a/ivy/functional/frontends/paddle/fft.py +++ b/ivy/functional/frontends/paddle/fft.py @@ -122,3 +122,12 @@ def irfft(x, n=None, axis=-1.0, norm="backward", name=None): if ivy.isreal(x): time_domain = ivy.real(time_domain) return time_domain + + +@to_ivy_arrays_and_back +def rfftfreq(n, d=1.0, dtype=None, name=None): + dtype = ivy.default_dtype() + val = 1.0 / (n * d) + pos_max = n // 2 + 1 + indices = ivy.arange(0, pos_max, dtype=dtype) + return indices * val diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py index e136ea66d7209..a03816f2f7151 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py @@ -220,3 +220,25 @@ def test_paddle_irfft( valid_axis=True, force_int_axis=True, ) + + +@handle_frontend_test( + fn_tree="paddle.fft.rfftfreq", + n=st.integers(min_value=1, max_value=1000), + sample_rate=st.integers(min_value=1, max_value=20), +) +def test_paddle_rfftfreq( + n, sample_rate, backend_fw, frontend, test_flags, fn_tree, on_device +): + d = 1 / sample_rate + helpers.test_frontend_function( + input_dtypes=[int], + frontend=frontend, + backend_to_test=backend_fw, + test_flags=test_flags, + fn_tree=fn_tree, + on_device=on_device, + test_values=True, + n=n, + d=d, + ) From b1a4da38cf956ea76e99b6ac280a5824da1957c6 Mon Sep 17 00:00:00 2001 From: Humza Tareen Date: Mon, 11 Sep 2023 21:00:27 +0500 Subject: [PATCH 119/127] updated scipy.linalg.svdvals test (#22716) --- .../test_scipy/test_linalg/test_linalg.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/ivy_tests/test_ivy/test_frontends/test_scipy/test_linalg/test_linalg.py b/ivy_tests/test_ivy/test_frontends/test_scipy/test_linalg/test_linalg.py index bb2f61a1c45b0..d73718550615a 100644 --- a/ivy_tests/test_ivy/test_frontends/test_scipy/test_linalg/test_linalg.py +++ b/ivy_tests/test_ivy/test_frontends/test_scipy/test_linalg/test_linalg.py @@ -362,31 +362,36 @@ def test_scipy_svd( # svdvals @handle_frontend_test( fn_tree="scipy.linalg.svdvals", - dtype_x=helpers.dtype_and_values( + dtype_and_x=helpers.dtype_and_values( available_dtypes=helpers.get_dtypes("float"), - min_value=0, + min_value=0.1, max_value=50, - min_num_dims=2, + shape=helpers.ints(min_value=2, max_value=5).map(lambda x: tuple([x, x])), ), + check_finite=st.booleans(), test_with_out=st.just(False), ) def test_scipy_svdvals( - dtype_x, + dtype_and_x, + check_finite, frontend, test_flags, fn_tree, - on_device, backend_fw, + on_device, ): - dtype, x = dtype_x + dtype, x = dtype_and_x + x = x[0] helpers.test_frontend_function( input_dtypes=dtype, backend_to_test=backend_fw, frontend=frontend, test_flags=test_flags, + test_values=False, fn_tree=fn_tree, on_device=on_device, - a=x[0], + a=x, + check_finite=check_finite, ) From b26bdac3f8dcb2f740be178a223e84f6eb78302d Mon Sep 17 00:00:00 2001 From: Nitesh Kesharwani <141853536+NiteshK84@users.noreply.github.com> Date: Mon, 11 Sep 2023 21:35:54 +0530 Subject: [PATCH 120/127] lcm_ (#22396) --- ivy/functional/frontends/torch/tensor.py | 21 +++++++++ .../test_frontends/test_torch/test_tensor.py | 45 +++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/ivy/functional/frontends/torch/tensor.py b/ivy/functional/frontends/torch/tensor.py index 0caec65281ba1..20c0c5326a8df 100644 --- a/ivy/functional/frontends/torch/tensor.py +++ b/ivy/functional/frontends/torch/tensor.py @@ -1833,6 +1833,27 @@ def char(self): def lcm(self, other, *, out=None): return torch_frontend.lcm(self, other, out=out) + @with_unsupported_dtypes( + { + "2.0.1 and below": ( + "float16", + "bfloat16", + "float32", + "float64", + "complex", + "uint8", + "uint16", + "uint32", + "uint64", + "int8", + ) + }, + "torch", + ) + def lcm_(self, other, *, out=None): + self.ivy_array = self.lcm(other, out=out).ivy_array + return self + @with_unsupported_dtypes( { "2.0.1 and below": ( diff --git a/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py index 53c056b9ae711..cdd54b5cf2ccd 100644 --- a/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_torch/test_tensor.py @@ -7851,6 +7851,51 @@ def test_torch_tensor_lcm( ) +# lcm_ +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="torch.tensor", + method_name="lcm_", + dtype_and_x=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("integer"), + num_arrays=2, + min_value=-100, + max_value=100, + min_num_dims=1, + max_num_dims=3, + min_dim_size=1, + max_dim_size=3, + shared_dtype=True, + ), +) +def test_torch_tensor_lcm_( + dtype_and_x, + frontend, + frontend_method_data, + init_flags, + method_flags, + on_device, + backend_fw, +): + input_dtype, x = dtype_and_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + backend_to_test=backend_fw, + init_all_as_kwargs_np={ + "data": x[0], + }, + method_input_dtypes=input_dtype, + method_all_as_kwargs_np={ + "other": x[1], + }, + frontend=frontend, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + on_device=on_device, + ) + + # less @handle_frontend_method( class_tree=CLASS_TREE, From f3ef8253e4c2682740d9ea0ba1ff1cf910d2a913 Mon Sep 17 00:00:00 2001 From: Bhushan Srivastava <59949692+he11owthere@users.noreply.github.com> Date: Mon, 11 Sep 2023 23:39:03 +0530 Subject: [PATCH 121/127] feat(frontend): Added lerp method to the Paddle frontend (#22571) Co-authored-by: hmahmood24 --- .../frontends/paddle/tensor/tensor.py | 4 ++ .../test_paddle/test_tensor/test_tensor.py | 58 +++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/ivy/functional/frontends/paddle/tensor/tensor.py b/ivy/functional/frontends/paddle/tensor/tensor.py index 7a4f5dc308c88..ad68778a1c0fe 100644 --- a/ivy/functional/frontends/paddle/tensor/tensor.py +++ b/ivy/functional/frontends/paddle/tensor/tensor.py @@ -141,6 +141,10 @@ def sin(self, name=None): def sinh(self, name=None): return paddle_frontend.Tensor(ivy.sinh(self._ivy_array)) + @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") + def lerp(self, y, weight, name=None): + return paddle_frontend.lerp(self, y, weight) + @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle") def lerp_(self, y, weight, name=None): self.ivy_array = paddle_frontend.lerp(self, y, weight).ivy_array diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py index 4c9762080387f..7ceeba34f4bff 100644 --- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py +++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py @@ -127,6 +127,30 @@ def _get_dtype_and_square_matrix(draw): return dtype, mat +@st.composite +def _get_dtype_and_values_for_lerp(draw): + is_tensor = draw(st.booleans()) + if is_tensor: + input_dtype, x = draw( + helpers.dtype_and_values( + num_arrays=3, + available_dtypes=helpers.get_dtypes("valid"), + shared_dtype=True, + ) + ) + return input_dtype, x[0], x[1], x[2] + else: + input_dtype, x = draw( + helpers.dtype_and_values( + num_arrays=2, + available_dtypes=helpers.get_dtypes("valid"), + shared_dtype=True, + ) + ) + weight = draw(st.floats()) + return input_dtype, x[0], x[1], weight + + @st.composite def _reshape_helper(draw): # generate a shape s.t len(shape) > 0 @@ -2154,6 +2178,40 @@ def test_paddle_tensor_isnan( ) +# lerp +@handle_frontend_method( + class_tree=CLASS_TREE, + init_tree="paddle.to_tensor", + method_name="lerp", + dtypes_and_x=_get_dtype_and_values_for_lerp(), +) +def test_paddle_tensor_lerp( + dtypes_and_x, + frontend_method_data, + init_flags, + method_flags, + frontend, + on_device, + backend_fw, +): + input_dtype, x, y, weight = dtypes_and_x + helpers.test_frontend_method( + init_input_dtypes=input_dtype, + backend_to_test=backend_fw, + init_all_as_kwargs_np={"data": x}, + method_input_dtypes=input_dtype, + method_all_as_kwargs_np={ + "y": y, + "weight": weight, + }, + frontend_method_data=frontend_method_data, + init_flags=init_flags, + method_flags=method_flags, + frontend=frontend, + on_device=on_device, + ) + + # lerp_ @handle_frontend_method( class_tree=CLASS_TREE, From 510ce004da64dc896cfd2c62b85ec10645d38ded Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Tue, 12 Sep 2023 08:35:14 +0800 Subject: [PATCH 122/127] chore: remove test for not fullly implemented max_unpool1d --- .../test_experimental/test_nn/test_layers.py | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_layers.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_layers.py index 4c963d7bdd711..2e131e2c7ff48 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_layers.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_layers.py @@ -1190,39 +1190,6 @@ def test_max_pool3d( ) -@handle_test( - fn_tree="functional.ivy.experimental.layers.max_unpool1d", - x_k_s_p=helpers.arrays_for_pooling(min_dims=3, max_dims=3, min_side=1, max_side=4), - indices=st.lists(st.integers(0, 1), min_size=1, max_size=4), - ground_truth_backend="jax", - test_gradients=st.just(False), -) -def test_max_unpool1d( - *, - x_k_s_p, - indices, - test_flags, - backend_fw, - fn_name, - on_device, -): - dtype, x, kernel, stride, pad = x_k_s_p - helpers.test_function( - input_dtypes=dtype, - test_flags=test_flags, - backend_to_test=backend_fw, - on_device=on_device, - fn_name=fn_name, - rtol_=1e-2, - atol_=1e-2, - x=x[0], - kernel=kernel, - strides=stride, - padding=pad, - indices=indices, - ) - - @handle_test( fn_tree="functional.ivy.experimental.reduce_window", all_args=_reduce_window_helper(_get_reduce_func), From c541422ec523528dd7781777c8ece6618e0a94e1 Mon Sep 17 00:00:00 2001 From: Daniel4078 <45633544+Daniel4078@users.noreply.github.com> Date: Tue, 12 Sep 2023 08:35:23 +0800 Subject: [PATCH 123/127] chore: remove frontend for not fullly implemented max_unpool1d --- ivy/functional/ivy/experimental/layers.py | 71 ----------------------- 1 file changed, 71 deletions(-) diff --git a/ivy/functional/ivy/experimental/layers.py b/ivy/functional/ivy/experimental/layers.py index 120ebe0279784..5003ef0472ddf 100644 --- a/ivy/functional/ivy/experimental/layers.py +++ b/ivy/functional/ivy/experimental/layers.py @@ -114,77 +114,6 @@ def max_pool1d( ) -@handle_backend_invalid -@handle_nestable -@handle_out_argument -@to_native_arrays_and_back -@handle_device_shifting -def max_unpool1d( - x: ivy.Union[ivy.Array, ivy.NativeArray], - indices: Union[ivy.Array, ivy.NativeArray], - kernel: Union[int, Tuple[int]], - strides: Union[int, Tuple[int]], - padding: str, - /, - *, - data_format: str = "NWC", - out: Optional[ivy.Array] = None, -) -> ivy.Array: - """ - Compute a 1-D max unpooling given the 1-D pooled input x and its indices. - - Parameters - ---------- - x - Pooled input image *[batch_size, w, d_in]*. - indices - Indices obtained from the corresponding max pooling operation. - kernel - Size of the kernel i.e., the sliding window for each - dimension of input. *[w]*. - strides - The stride of the sliding window for each dimension of input. - padding - SAME" or "VALID" indicating the algorithm, or list - indicating the per-dimension paddings. - data_format - NWC" or "NCW". Defaults to "NWC". - out - optional output array, for writing the result to. - - Returns - ------- - ret - The result of the unpooling operation. - - Both the description and the type hints above assume an array input - for simplicity, but this function is *nestable*, and therefore - also accepts :class:`ivy.Container` instances in place of any of - the arguments. - - Examples - -------- - >>> x = ivy.arange(0, 24.).reshape((2, 3, 4)) - >>> pool_result = ivy.max_pool1d(x, 2, 2, 'SAME') - >>> print(pool_result) - ivy.array([[[ 4., 5., 6., 7.], - [ 8., 9., 10., 11.]], - - [[16., 17., 18., 19.], - [20., 21., 22., 23.]]]) - >>> unpool_result = ivy.max_unpool1d(pool_result, indices, 2, 2, 'SAME') - >>> print(unpool_result) - ivy.array([[[ 0., 4., 0., 5., 0., 6., 0., 7., 0., 0., 0., 0.], - [ 0., 0., 0., 0., 8., 0., 9., 0., 10., 0., 11., 0.]], - - [[ 0., 0., 0., 0., 0., 0., 0., 0., 16., 0., 17., 0.], - [ 0., 18., 0., 19., 0., 0., 0., 0., 20., 0., 21., 0.]]]) - """ - return ivy.current_backend(x).max_unpool1d( - x, indices, kernel, strides, padding, data_format=data_format, out=out - ) - - @handle_backend_invalid @handle_nestable @handle_out_argument From 7bccf71d7deb7fa1a2c9a3302ea377402eba37b8 Mon Sep 17 00:00:00 2001 From: Mostafa Hani <71686115+CatB1t@users.noreply.github.com> Date: Tue, 12 Sep 2023 04:51:03 +0300 Subject: [PATCH 124/127] fix(testing): update CLI flags to be dynamically retrieved (#22788) --- .../test_ivy/helpers/test_parameter_flags.py | 32 +++++--- ivy_tests/test_ivy/helpers/testing_helpers.py | 73 ++++++++++--------- 2 files changed, 59 insertions(+), 46 deletions(-) diff --git a/ivy_tests/test_ivy/helpers/test_parameter_flags.py b/ivy_tests/test_ivy/helpers/test_parameter_flags.py index 2ab790f34b83f..8e00df11582c4 100644 --- a/ivy_tests/test_ivy/helpers/test_parameter_flags.py +++ b/ivy_tests/test_ivy/helpers/test_parameter_flags.py @@ -3,6 +3,14 @@ from . import globals as test_globals from .pipeline_helper import BackendHandler +from dataclasses import dataclass +from hypothesis.strategies import SearchStrategy + + +@dataclass +class DynamicFlag: + strategy: SearchStrategy + @st.composite def _gradient_strategy(draw): @@ -27,17 +35,17 @@ def _as_varaible_strategy(draw): return draw(st.lists(st.booleans(), min_size=1, max_size=1)) -BuiltNativeArrayStrategy = st.lists(st.booleans(), min_size=1, max_size=1) -BuiltAsVariableStrategy = _as_varaible_strategy() -BuiltContainerStrategy = st.lists(st.booleans(), min_size=1, max_size=1) -BuiltInstanceStrategy = st.booleans() -BuiltInplaceStrategy = st.just(False) -BuiltGradientStrategy = _gradient_strategy() -BuiltWithOutStrategy = st.booleans() -BuiltCompileStrategy = st.just(False) -BuiltFrontendArrayStrategy = st.booleans() -BuiltTranspileStrategy = st.just(False) -BuiltPrecisionModeStrategy = st.booleans() +BuiltNativeArrayStrategy = DynamicFlag(st.lists(st.booleans(), min_size=1, max_size=1)) +BuiltAsVariableStrategy = DynamicFlag(_as_varaible_strategy()) +BuiltContainerStrategy = DynamicFlag(st.lists(st.booleans(), min_size=1, max_size=1)) +BuiltInstanceStrategy = DynamicFlag(st.booleans()) +BuiltInplaceStrategy = DynamicFlag(st.just(False)) +BuiltGradientStrategy = DynamicFlag(_gradient_strategy()) +BuiltWithOutStrategy = DynamicFlag(st.booleans()) +BuiltCompileStrategy = DynamicFlag(st.booleans()) +BuiltFrontendArrayStrategy = DynamicFlag(st.booleans()) +BuiltTranspileStrategy = DynamicFlag(st.just(False)) +BuiltPrecisionModeStrategy = DynamicFlag(st.booleans()) flags_mapping = { @@ -61,7 +69,7 @@ def build_flag(key: str, value: bool): assert ( flags_mapping[key] in globals().keys() ), f"{flags_mapping[key]} is not a valid flag variable." - globals()[flags_mapping[key]] = value + globals()[flags_mapping[key]].strategy = value # Strategy Helpers # diff --git a/ivy_tests/test_ivy/helpers/testing_helpers.py b/ivy_tests/test_ivy/helpers/testing_helpers.py index 43de1243a3e8f..0bbd9d3ab21e0 100644 --- a/ivy_tests/test_ivy/helpers/testing_helpers.py +++ b/ivy_tests/test_ivy/helpers/testing_helpers.py @@ -17,6 +17,7 @@ from . import test_globals as t_globals from .pipeline_helper import BackendHandler from ivy_tests.test_ivy.helpers.test_parameter_flags import ( + DynamicFlag, BuiltInstanceStrategy, BuiltAsVariableStrategy, BuiltNativeArrayStrategy, @@ -51,6 +52,10 @@ ) +def _get_runtime_flag_value(flag): + return flag.strategy if isinstance(flag, DynamicFlag) else flag + + @st.composite def num_positional_args_method(draw, *, method): """ @@ -395,14 +400,14 @@ def handle_test( possible_arguments["test_flags"] = pf.function_flags( ground_truth_backend=st.just(ground_truth_backend), num_positional_args=number_positional_args, - instance_method=test_instance_method, - with_out=test_with_out, - test_gradients=test_gradients, - test_compile=test_compile, - as_variable=as_variable_flags, - native_arrays=native_array_flags, - container_flags=container_flags, - precision_mode=precision_mode, + instance_method=_get_runtime_flag_value(test_instance_method), + with_out=_get_runtime_flag_value(test_with_out), + test_gradients=_get_runtime_flag_value(test_gradients), + test_compile=_get_runtime_flag_value(test_compile), + as_variable=_get_runtime_flag_value(as_variable_flags), + native_arrays=_get_runtime_flag_value(native_array_flags), + container_flags=_get_runtime_flag_value(container_flags), + precision_mode=_get_runtime_flag_value(precision_mode), ) def test_wrapper(test_fn): @@ -526,14 +531,14 @@ def handle_frontend_test( # Generate the test flags strategy test_flags = pf.frontend_function_flags( num_positional_args=number_positional_args, - with_out=test_with_out, - inplace=test_inplace, - as_variable=as_variable_flags, - native_arrays=native_array_flags, - test_compile=test_compile, - generate_frontend_arrays=generate_frontend_arrays, - transpile=transpile, - precision_mode=precision_mode, + with_out=_get_runtime_flag_value(test_with_out), + inplace=_get_runtime_flag_value(test_inplace), + as_variable=_get_runtime_flag_value(as_variable_flags), + native_arrays=_get_runtime_flag_value(native_array_flags), + test_compile=_get_runtime_flag_value(test_compile), + generate_frontend_arrays=_get_runtime_flag_value(generate_frontend_arrays), + transpile=_get_runtime_flag_value(transpile), + precision_mode=_get_runtime_flag_value(precision_mode), ) def test_wrapper(test_fn): @@ -635,9 +640,9 @@ def handle_method( is_hypothesis_test = len(_given_kwargs) != 0 possible_arguments = { "ground_truth_backend": st.just(ground_truth_backend), - "test_gradients": test_gradients, - "test_compile": test_compile, - "precision_mode": precision_mode, + "test_gradients": _get_runtime_flag_value(test_gradients), + "test_compile": _get_runtime_flag_value(test_compile), + "precision_mode": _get_runtime_flag_value(precision_mode), } if is_hypothesis_test and is_method_tree_provided: @@ -650,9 +655,9 @@ def handle_method( possible_arguments["init_flags"] = pf.init_method_flags( num_positional_args=init_num_positional_args, - as_variable=init_as_variable_flags, - native_arrays=init_native_arrays, - precision_mode=precision_mode, + as_variable=_get_runtime_flag_value(init_as_variable_flags), + native_arrays=_get_runtime_flag_value(init_native_arrays), + precision_mode=_get_runtime_flag_value(precision_mode), ) if method_num_positional_args is None: @@ -662,10 +667,10 @@ def handle_method( possible_arguments["method_flags"] = pf.method_flags( num_positional_args=method_num_positional_args, - as_variable=method_as_variable_flags, - native_arrays=method_native_arrays, - container_flags=method_container_flags, - precision_mode=precision_mode, + as_variable=_get_runtime_flag_value(method_as_variable_flags), + native_arrays=_get_runtime_flag_value(method_native_arrays), + container_flags=_get_runtime_flag_value(method_container_flags), + precision_mode=_get_runtime_flag_value(precision_mode), ) def test_wrapper(test_fn): @@ -783,18 +788,18 @@ def test_wrapper(test_fn): param_names = inspect.signature(test_fn).parameters.keys() init_flags = pf.frontend_method_flags( num_positional_args=init_num_positional_args, - as_variable=init_as_variable_flags, - native_arrays=init_native_arrays, - test_compile=test_compile, - precision_mode=precision_mode, + as_variable=_get_runtime_flag_value(init_as_variable_flags), + native_arrays=_get_runtime_flag_value(init_native_arrays), + test_compile=_get_runtime_flag_value(test_compile), + precision_mode=_get_runtime_flag_value(precision_mode), ) method_flags = pf.frontend_method_flags( num_positional_args=method_num_positional_args, - as_variable=method_as_variable_flags, - native_arrays=method_native_arrays, - test_compile=test_compile, - precision_mode=precision_mode, + as_variable=_get_runtime_flag_value(method_as_variable_flags), + native_arrays=_get_runtime_flag_value(method_native_arrays), + test_compile=_get_runtime_flag_value(test_compile), + precision_mode=_get_runtime_flag_value(precision_mode), ) ivy_init_modules = str(ivy_init_module) framework_init_modules = str(framework_init_module) From 0f4a62e6c0d8026e84c7f887dc70e3f546c86daf Mon Sep 17 00:00:00 2001 From: Mostafa Hany Date: Tue, 12 Sep 2023 05:07:24 +0300 Subject: [PATCH 125/127] fix(testing): update compile flag to be False by default --- ivy_tests/test_ivy/helpers/test_parameter_flags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy_tests/test_ivy/helpers/test_parameter_flags.py b/ivy_tests/test_ivy/helpers/test_parameter_flags.py index 8e00df11582c4..32dfbdb8aacf5 100644 --- a/ivy_tests/test_ivy/helpers/test_parameter_flags.py +++ b/ivy_tests/test_ivy/helpers/test_parameter_flags.py @@ -42,7 +42,7 @@ def _as_varaible_strategy(draw): BuiltInplaceStrategy = DynamicFlag(st.just(False)) BuiltGradientStrategy = DynamicFlag(_gradient_strategy()) BuiltWithOutStrategy = DynamicFlag(st.booleans()) -BuiltCompileStrategy = DynamicFlag(st.booleans()) +BuiltCompileStrategy = DynamicFlag(st.just(False)) BuiltFrontendArrayStrategy = DynamicFlag(st.booleans()) BuiltTranspileStrategy = DynamicFlag(st.just(False)) BuiltPrecisionModeStrategy = DynamicFlag(st.booleans()) From 6fad2fa1f11fbf1423cfbe87b0025d76046c07d8 Mon Sep 17 00:00:00 2001 From: Mostafa Hani <71686115+CatB1t@users.noreply.github.com> Date: Tue, 12 Sep 2023 05:32:56 +0300 Subject: [PATCH 126/127] feat(github): Add Sherry as a testing CODEOWNER --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a2175bcbfaf5f..f375d2cf90da1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,7 +5,7 @@ ivy/utils/backend @VedPatwardhan @CatB1t ivy/utils/backend/ast_helpers.py @CatB1t # Ivy Testing -ivy_tests/test_ivy/helpers/ @CatB1t +ivy_tests/test_ivy/helpers/ @sherry30 @CatB1t ivy_tests/array_api_testing/ @aarsh2001 @hirwa-nshuti # Docs builder From 61ddd4c4d9a8cc833e85560cf70282a1fa403303 Mon Sep 17 00:00:00 2001 From: Vismay Suramwar <83938053+Vismay-dev@users.noreply.github.com> Date: Mon, 11 Sep 2023 22:48:48 -0500 Subject: [PATCH 127/127] Added kl_div loss to ivy experimental api (#23054) Co-authored-by: Eddy Oyieko <67474838+mobley-trent@users.noreply.github.com> --- ivy/data_classes/array/experimental/losses.py | 44 +++++++ .../container/experimental/losses.py | 114 ++++++++++++++++++ .../backends/jax/experimental/losses.py | 20 +++ .../backends/numpy/experimental/losses.py | 23 ++++ .../backends/paddle/experimental/losses.py | 26 ++++ .../tensorflow/experimental/losses.py | 22 ++++ .../backends/torch/experimental/losses.py | 29 +++++ ivy/functional/ivy/experimental/losses.py | 69 +++++++++++ .../test_experimental/test_nn/test_losses.py | 49 ++++++++ 9 files changed, 396 insertions(+) diff --git a/ivy/data_classes/array/experimental/losses.py b/ivy/data_classes/array/experimental/losses.py index 8913cf936cc85..68265a85a16e7 100644 --- a/ivy/data_classes/array/experimental/losses.py +++ b/ivy/data_classes/array/experimental/losses.py @@ -251,3 +251,47 @@ def soft_margin_loss( ivy.array([0.35667497, 0.22314353, 1.60943791]) """ return ivy.soft_margin_loss(self._data, target, reduction=reduction, out=out) + + def kl_div( + self: ivy.Array, + target: Union[ivy.Array, ivy.NativeArray], + /, + *, + reduction: Optional[str] = "mean", + out: Optional[ivy.Array] = None, + ) -> ivy.Array: + """ + ivy.Array instance method variant of ivy.kl_div. This method simply wraps the + function, and so the docstring for ivy.kl_div also applies to this method with + minimal changes. + + Parameters + ---------- + self + Array containing input probability distribution. + target + Array contaiing target probability distribution. + reduction + 'none': No reduction will be applied to the output. + 'mean': The output will be averaged. + 'batchmean': The output will be divided by batch size. + 'sum': The output will be summed. + Default: 'mean'. + out + Optional output array, for writing the result to. + It must have a shape that the inputs broadcast to. + + Returns + ------- + ret + The Kullback-Leibler divergence loss between the two input arrays. + + Examples + -------- + >>> input = ivy.array([0.2, 0.8], [0.5, 0.5]) + >>> target = ivy.array([0.6, 0.4], [0.3, 0.7]) + >>> output_array = input.kl_div(target) + >>> print(output_array) + ivy.array(0.0916) + """ + return ivy.kl_div(self._data, target, reduction=reduction, out=out) diff --git a/ivy/data_classes/container/experimental/losses.py b/ivy/data_classes/container/experimental/losses.py index 482d9e82198f7..e4ee3c40b45d7 100644 --- a/ivy/data_classes/container/experimental/losses.py +++ b/ivy/data_classes/container/experimental/losses.py @@ -787,3 +787,117 @@ def soft_margin_loss( map_sequences=map_sequences, out=out, ) + + @staticmethod + def _static_kl_div( + input: Union[ivy.Container, ivy.Array, ivy.NativeArray], + target: Union[ivy.Container, ivy.Array, ivy.NativeArray], + /, + *, + reduction: Optional[Union[str, ivy.Container]] = "mean", + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container static method variant of ivy.kl_div. This method simply wraps the + function, and so the docstring for ivy.kl_div also applies to this method with + minimal changes. + + Parameters + ---------- + input + input array or container containing input distribution. + target + input array or container containing target distribution. + reduction + the reduction method. Default: "mean". + key_chains + The key-chains to apply or not apply the method to. Default is None. + to_apply + If input, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is input. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is False. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is False. + out + optional output container, for writing the result to. It must have a shape + that the inputs broadcast to. + + Returns + ------- + ret + The Kullback-Leibler divergence loss between the given distributions. + """ + return ContainerBase.cont_multi_map_in_function( + "kl_div", + input, + target, + reduction=reduction, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) + + def kl_div( + self: ivy.Container, + target: Union[ivy.Container, ivy.Array, ivy.NativeArray], + /, + *, + reduction: Optional[Union[str, ivy.Container]] = "mean", + key_chains: Optional[Union[List[str], Dict[str, str], ivy.Container]] = None, + to_apply: Union[bool, ivy.Container] = True, + prune_unapplied: Union[bool, ivy.Container] = False, + map_sequences: Union[bool, ivy.Container] = False, + out: Optional[ivy.Container] = None, + ) -> ivy.Container: + """ + ivy.Container instance method variant of ivy.kl_div. This method simply wraps + the function, and so the docstring for ivy.kl_div also applies to this method + with minimal changes. + + Parameters + ---------- + self + input container containing input distribution. + target + input array or container containing target distribution. + reduction + the reduction method. Default: "mean". + key_chains + The key-chains to apply or not apply the method to. Default is None. + to_apply + If input, the method will be applied to key_chains, otherwise key_chains + will be skipped. Default is input. + prune_unapplied + Whether to prune key_chains for which the function was not applied. + Default is False. + map_sequences + Whether to also map method to sequences (lists, tuples). + Default is False. + out + optional output container, for writing the result to. It must have a shape + that the inputs broadcast to. + + Returns + ------- + ret + The Kullback-Leibler divergence loss between the given distributions. + """ + return self._static_kl_div( + self, + target, + reduction=reduction, + key_chains=key_chains, + to_apply=to_apply, + prune_unapplied=prune_unapplied, + map_sequences=map_sequences, + out=out, + ) diff --git a/ivy/functional/backends/jax/experimental/losses.py b/ivy/functional/backends/jax/experimental/losses.py index a5470e0afbc39..3fa778c0dbb9a 100644 --- a/ivy/functional/backends/jax/experimental/losses.py +++ b/ivy/functional/backends/jax/experimental/losses.py @@ -56,3 +56,23 @@ def soft_margin_loss( return jnp.sum(loss) else: return loss + + +def kl_div( + input: JaxArray, + target: JaxArray, + /, + *, + reduction: Optional[str] = "mean", +) -> JaxArray: + size = jnp.shape(input) + loss = jnp.sum(input * jnp.log(input / target), axis=-1) + + if reduction == "mean": + loss = jnp.mean(loss) + elif reduction == "sum": + loss = jnp.sum(loss) + elif reduction == "batchmean": + loss = jnp.divide(jnp.sum(loss), size[0]) + + return loss diff --git a/ivy/functional/backends/numpy/experimental/losses.py b/ivy/functional/backends/numpy/experimental/losses.py index 0a33b6bcf1dad..76a266109e785 100644 --- a/ivy/functional/backends/numpy/experimental/losses.py +++ b/ivy/functional/backends/numpy/experimental/losses.py @@ -70,3 +70,26 @@ def soft_margin_loss( return np.sum(loss) else: return loss + + +@with_unsupported_dtypes({"1.25.2 and below": ("bool", "bfloat16")}, backend_version) +@_scalar_output_to_0d_array +def kl_div( + input: np.ndarray, + target: np.ndarray, + /, + *, + reduction: Optional[str] = "mean", +) -> np.ndarray: + size = np.shape(input) + + loss = np.sum(input * np.log(input / target), axis=-1) + + if reduction == "mean": + loss = np.mean(loss) + elif reduction == "sum": + loss = np.sum(loss) + elif reduction == "batchmean": + loss = np.divide(np.sum(loss), size[0]) + + return loss diff --git a/ivy/functional/backends/paddle/experimental/losses.py b/ivy/functional/backends/paddle/experimental/losses.py index b0be8bda8d502..a582b43e15fb2 100644 --- a/ivy/functional/backends/paddle/experimental/losses.py +++ b/ivy/functional/backends/paddle/experimental/losses.py @@ -120,3 +120,29 @@ def soft_margin_loss( reduction: Optional[str] = "mean", ) -> paddle.Tensor: return paddle.nn.functional.soft_margin_loss(input, label, reduction=reduction) + + +@with_unsupported_device_and_dtypes( + { + "2.5.1 and below": { + "cpu": ( + "bfloat16", + "float16", + "int8", + "int16", + "int32", + "int64", + "uint8", + "complex64", + "complex128", + "bool", + ) + } + }, + backend_version, +) +def kl_div( + input: paddle.Tensor, target: paddle.Tensor, /, *, reduction: Optional[str] = "mean" +) -> paddle.Tensor: + loss = F.kl_div(input, target, reduction=reduction) + return loss diff --git a/ivy/functional/backends/tensorflow/experimental/losses.py b/ivy/functional/backends/tensorflow/experimental/losses.py index fdd493e40b8e8..e0c2da76b9958 100644 --- a/ivy/functional/backends/tensorflow/experimental/losses.py +++ b/ivy/functional/backends/tensorflow/experimental/losses.py @@ -62,3 +62,25 @@ def soft_margin_loss( return tf.reduce_mean(loss) else: return loss + + +@with_unsupported_dtypes({"2.13.0 and below": ("bool", "bfloat16")}, backend_version) +def kl_div( + input: tf.Tensor, + target: tf.Tensor, + /, + *, + reduction: Optional[str] = "mean", +) -> tf.Tensor: + size = tf.shape(input) + + loss = tf.reduce_sum(input * tf.math.log(input / target), axis=-1) + + if reduction == "mean": + loss = tf.math.reduce_mean(loss) + elif reduction == "sum": + loss = tf.math.reduce_sum(loss) + elif reduction == "batchmean": + loss = tf.math.reduce_sum(loss) / tf.cast(size[0], dtype=tf.float32) + + return loss diff --git a/ivy/functional/backends/torch/experimental/losses.py b/ivy/functional/backends/torch/experimental/losses.py index 2c24c6afd01e2..a37365922a1b6 100644 --- a/ivy/functional/backends/torch/experimental/losses.py +++ b/ivy/functional/backends/torch/experimental/losses.py @@ -97,3 +97,32 @@ def soft_margin_loss( target, reduction=reduction, ) + + +@with_unsupported_dtypes( + { + "2.0.1 and below": ( + "float16", + "uint8", + "int8", + "int16", + "int32", + "int64", + "bool", + ) + }, + backend_version, +) +def kl_div( + input: torch.Tensor, + target: torch.Tensor, + /, + *, + reduction: Optional[str] = "mean", +) -> torch.Tensor: + loss = torch.nn.functional.kl_div( + input, + target, + reduction=reduction, + ) + return loss diff --git a/ivy/functional/ivy/experimental/losses.py b/ivy/functional/ivy/experimental/losses.py index 8d2ef5d3e8f6a..f2950d682bb0d 100644 --- a/ivy/functional/ivy/experimental/losses.py +++ b/ivy/functional/ivy/experimental/losses.py @@ -408,3 +408,72 @@ def soft_margin_loss( return ivy.mean(loss, out=out) else: return ivy.inplace_update(out, loss) if out is not None else loss + + +@handle_exceptions +@handle_nestable +@inputs_to_ivy_arrays +@handle_array_function +def kl_div( + input: Union[ivy.Array, ivy.NativeArray], + target: Union[ivy.Array, ivy.NativeArray], + /, + *, + reduction: Optional[str] = "mean", + out: Optional[ivy.Array] = None, +) -> ivy.Array: + """ + Compute the Kullback-Leibler divergence loss between two input tensors + (conventionally, probability distributions). + + Parameters + ---------- + input : array_like + Input probability distribution (first tensor). + target : array_like + Target probability distribution (second tensor). + reduction : {'mean', 'sum', 'batchmean', 'none'}, optional + Type of reduction to apply to the output. Default is 'mean'. + out : array_like, optional + Optional output array, for writing the result to. + It must have a shape that the inputs broadcast to. + + Returns + ------- + ret : array + The Kullback-Leibler divergence loss between the two input tensors. + + Examples + -------- + >>> input = ivy.array([0.2, 0.8], [0.5, 0.5]) + >>> target = ivy.array([0.6, 0.4], [0.3, 0.7]) + >>> ivy.kl_div(input, target) + ivy.array(0.0916) + + >>> input = ivy.array([0.2, 0.8], [0.5, 0.5]) + >>> target = ivy.array([0.6, 0.4], [0.3, 0.7]) + >>> ivy.kl_div(input, target, reduction='sum') + ivy.array(0.1832) + + >>> input = ivy.array([0.2, 0.8], [0.5, 0.5]) + >>> target = ivy.array([0.6, 0.4], [0.3, 0.7]) + >>> ivy.kl_div(input, target, reduction='batchmean') + ivy.array(0.0916) + + >>> input = ivy.array([0.2, 0.8], [0.5, 0.5]) + >>> target = ivy.array([0.6, 0.4], [0.3, 0.7]) + >>> ivy.kl_div(input, target, reduction='none') + ivy.array([0.0378], [0.1453]) + """ + size = ivy.shape(input) + + loss = ivy.sum(input * ivy.log(input / target), axis=-1) + + if reduction == "sum": + loss = ivy.sum(loss, out=out) + elif reduction == "mean": + loss = ivy.mean(loss, out=out) + elif reduction == "batchmean": + loss = ivy.sum(loss, out=out) / size[0] + + return ivy.inplace_update(out, loss) if out is not None else loss diff --git a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_losses.py b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_losses.py index c41b3f0d2d63c..cbddd092c511e 100644 --- a/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_losses.py +++ b/ivy_tests/test_ivy/test_functional/test_experimental/test_nn/test_losses.py @@ -55,6 +55,55 @@ def test_huber_loss( ) +# kl_div +@handle_test( + fn_tree="functional.ivy.experimental.kl_div", + dtype_and_input=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_value=1e-04, + max_value=1, + allow_inf=False, + min_num_dims=1, + max_num_dims=3, + min_dim_size=3, + ), + dtype_and_target=helpers.dtype_and_values( + available_dtypes=helpers.get_dtypes("float"), + min_value=1e-04, + max_value=1, + allow_inf=False, + min_num_dims=1, + max_num_dims=3, + min_dim_size=3, + ), + reduction=st.sampled_from(["none", "sum", "batchmean", "mean"]), + test_with_out=st.just(False), +) +def test_kl_div( + dtype_and_input, + dtype_and_target, + reduction, + test_flags, + backend_fw, + fn_name, + on_device, +): + input_dtype, input = dtype_and_input + target_dtype, target = dtype_and_target + + helpers.test_function( + input_dtypes=input_dtype + target_dtype, + test_flags=test_flags, + backend_to_test=backend_fw, + fn_name=fn_name, + on_device=on_device, + atol_=1e-02, + input=input[0], + target=target[0], + reduction=reduction, + ) + + @handle_test( fn_tree="functional.ivy.experimental.l1_loss", dtype_input=helpers.dtype_and_values(
  • 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 literal 0 HcmV?d00001 diff --git a/ivy/engines/XLA/rust_api/python_frontend/stateful_layers.cpython-310-x86_64-linux-gnu.so b/ivy/engines/XLA/rust_api/python_frontend/stateful_layers.cpython-310-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..1ed2a0484ebc9b72aa411d1f0eb019f46c602ba6 GIT binary patch literal 965920 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