fiddler-client 3.9.1__tar.gz → 3.9.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fiddler-client-3.9.1/fiddler_client.egg-info → fiddler-client-3.9.2}/PKG-INFO +1 -1
- fiddler-client-3.9.2/fiddler/VERSION +1 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/alert_rule.py +5 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/alert_rule.py +2 -1
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_alert_rule.py +25 -1
- {fiddler-client-3.9.1 → fiddler-client-3.9.2/fiddler_client.egg-info}/PKG-INFO +1 -1
- fiddler-client-3.9.1/fiddler/VERSION +0 -1
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/LICENSE.txt +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/MANIFEST.in +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/PUBLIC.md +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/README.md +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/configs.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/connection.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/alert_rule.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/baseline.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/common.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/dataset.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/events.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/job.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/model.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/model_deployment.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/constants/xai.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/decorators.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/alert_record.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/base.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/baseline.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/custom_expression.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/dataset.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/events.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/file.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/job.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/model.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/model_artifact.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/model_deployment.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/organization.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/project.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/surrogate.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/user.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/webhook.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/entities/xai.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/exceptions.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/libs/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/libs/aws.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/libs/http_client.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/libs/json_encoder.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/libs/semver.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/packtools/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/packtools/gem.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/packtools/keras_ig_helpers.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/packtools/project_attributions_helpers.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/packtools/template_model.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/alert_record.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/base.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/baseline.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/custom_expression.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/custom_features.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/dataset.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/events.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/file.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/filter_query.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/job.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/model.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/model_deployment.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/model_schema.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/model_spec.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/model_task_params.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/organization.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/project.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/response.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/server_info.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/user.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/webhook.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/xai.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/schemas/xai_params.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_alert_record.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_baseline.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_custom_metric.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_dataset.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_events.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_files.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_generate_model.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_job.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_mixin.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_model.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_model_artifact.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_model_deployment.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_model_surrogate.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_project.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_segment.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_webhook.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/apis/test_xai.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/conftest.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/constants.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/test_connection.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/test_json_encoder.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/test_logger.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/test_sagemaker_auth.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/test_utils.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/tests/utils.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/__init__.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/column_generator.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/decorators.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/helpers.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/logger.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/model_generator.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/validations.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/utils/version.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/version.py +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler_client.egg-info/SOURCES.txt +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler_client.egg-info/dependency_links.txt +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler_client.egg-info/requires.txt +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler_client.egg-info/top_level.txt +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/setup.cfg +0 -0
- {fiddler-client-3.9.1 → fiddler-client-3.9.2}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.9.2
|
|
@@ -41,6 +41,7 @@ class AlertRule(
|
|
|
41
41
|
condition: AlertCondition | str,
|
|
42
42
|
bin_size: BinSize | str,
|
|
43
43
|
threshold_type: AlertThresholdAlgo | str = AlertThresholdAlgo.MANUAL,
|
|
44
|
+
auto_threshold_params: dict[str, Any] | None = None,
|
|
44
45
|
critical_threshold: float | None = None,
|
|
45
46
|
warning_threshold: float | None = None,
|
|
46
47
|
columns: list[str] | None = None,
|
|
@@ -61,6 +62,7 @@ class AlertRule(
|
|
|
61
62
|
self.compare_bin_delta = compare_bin_delta
|
|
62
63
|
self.evaluation_delay = evaluation_delay
|
|
63
64
|
self.threshold_type = threshold_type
|
|
65
|
+
self.auto_threshold_params = auto_threshold_params
|
|
64
66
|
self.warning_threshold = warning_threshold
|
|
65
67
|
self.critical_threshold = critical_threshold
|
|
66
68
|
self.condition = condition
|
|
@@ -105,6 +107,7 @@ class AlertRule(
|
|
|
105
107
|
condition=resp_obj.condition,
|
|
106
108
|
bin_size=resp_obj.bin_size,
|
|
107
109
|
threshold_type=resp_obj.threshold_type,
|
|
110
|
+
auto_threshold_params=resp_obj.auto_threshold_params,
|
|
108
111
|
critical_threshold=resp_obj.critical_threshold,
|
|
109
112
|
warning_threshold=resp_obj.warning_threshold,
|
|
110
113
|
columns=resp_obj.columns,
|
|
@@ -238,6 +241,7 @@ class AlertRule(
|
|
|
238
241
|
'bin_size': self.bin_size,
|
|
239
242
|
'segment_id': self.segment_id,
|
|
240
243
|
'threshold_type': self.threshold_type,
|
|
244
|
+
'auto_threshold_params': self.auto_threshold_params,
|
|
241
245
|
'critical_threshold': self.critical_threshold,
|
|
242
246
|
'warning_threshold': self.warning_threshold,
|
|
243
247
|
'feature_names': self.columns,
|
|
@@ -264,6 +268,7 @@ class AlertRule(
|
|
|
264
268
|
'critical_threshold': self.critical_threshold,
|
|
265
269
|
'warning_threshold': self.warning_threshold,
|
|
266
270
|
'evaluation_delay': self.evaluation_delay,
|
|
271
|
+
'auto_threshold_params': self.auto_threshold_params,
|
|
267
272
|
}
|
|
268
273
|
|
|
269
274
|
response = self._client().patch(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
|
-
from typing import List, Optional, Union
|
|
2
|
+
from typing import Any, Dict, List, Optional, Union
|
|
3
3
|
from uuid import UUID
|
|
4
4
|
|
|
5
5
|
from pydantic.v1 import Field
|
|
@@ -36,6 +36,7 @@ class AlertRuleResp(BaseModel):
|
|
|
36
36
|
bin_size: Union[str, BinSize]
|
|
37
37
|
columns: Optional[List[str]] = Field(alias='feature_names')
|
|
38
38
|
threshold_type: Union[str, AlertThresholdAlgo]
|
|
39
|
+
auto_threshold_params: Optional[Dict[str, Any]]
|
|
39
40
|
critical_threshold: Optional[float]
|
|
40
41
|
warning_threshold: Optional[float]
|
|
41
42
|
category: Optional[str]
|
|
@@ -329,6 +329,10 @@ def test_add_alert_rule_success_auto_thresholds(mocker) -> None:
|
|
|
329
329
|
{
|
|
330
330
|
'bin_size': BinSize.DAY,
|
|
331
331
|
'threshold_type': AlertThresholdAlgo.STD_DEV_AUTO_THRESHOLD.value,
|
|
332
|
+
'auto_threshold_params': {
|
|
333
|
+
'warning_multiplier': 0.5,
|
|
334
|
+
'critical_multiplier': 1.0,
|
|
335
|
+
},
|
|
332
336
|
'warning_threshold': None,
|
|
333
337
|
'critical_threshold': None,
|
|
334
338
|
},
|
|
@@ -346,6 +350,10 @@ def test_add_alert_rule_success_auto_thresholds(mocker) -> None:
|
|
|
346
350
|
condition=AlertCondition.GREATER,
|
|
347
351
|
bin_size=BinSize.DAY,
|
|
348
352
|
threshold_type=AlertThresholdAlgo.STD_DEV_AUTO_THRESHOLD.value,
|
|
353
|
+
auto_threshold_params={
|
|
354
|
+
'warning_multiplier': 0.5,
|
|
355
|
+
'critical_multiplier': 1.0,
|
|
356
|
+
},
|
|
349
357
|
critical_threshold=None,
|
|
350
358
|
warning_threshold=None,
|
|
351
359
|
columns=['gender', 'creditscore'],
|
|
@@ -359,6 +367,10 @@ def test_add_alert_rule_success_auto_thresholds(mocker) -> None:
|
|
|
359
367
|
assert alert_rule_auto_threshold.evaluation_delay == 10
|
|
360
368
|
assert alert_rule_auto_threshold.bin_size == BinSize.DAY
|
|
361
369
|
assert alert_rule_auto_threshold.threshold_type == AlertThresholdAlgo.STD_DEV_AUTO_THRESHOLD.value
|
|
370
|
+
assert alert_rule_auto_threshold.auto_threshold_params == {
|
|
371
|
+
'warning_multiplier': 0.5,
|
|
372
|
+
'critical_multiplier': 1.0,
|
|
373
|
+
}
|
|
362
374
|
assert alert_rule_auto_threshold.critical_threshold is None
|
|
363
375
|
assert alert_rule_auto_threshold.warning_threshold is None
|
|
364
376
|
|
|
@@ -405,6 +417,10 @@ def test_update_alert_rule_success(mocker) -> None:
|
|
|
405
417
|
'warning_threshold': 13.0,
|
|
406
418
|
'critical_threshold': 14.0,
|
|
407
419
|
'evaluation_delay': 15,
|
|
420
|
+
'auto_threshold_params': {
|
|
421
|
+
'warning_multiplier': 1.5,
|
|
422
|
+
'critical_multiplier': 2.0,
|
|
423
|
+
},
|
|
408
424
|
},
|
|
409
425
|
)
|
|
410
426
|
responses.patch(
|
|
@@ -414,11 +430,19 @@ def test_update_alert_rule_success(mocker) -> None:
|
|
|
414
430
|
alert_rule.warning_threshold = 13.0
|
|
415
431
|
alert_rule.critical_threshold = 14.0
|
|
416
432
|
alert_rule.evaluation_delay = 15
|
|
433
|
+
alert_rule.auto_threshold_params = {
|
|
434
|
+
'warning_multiplier': 1.5,
|
|
435
|
+
'critical_multiplier': 2.0,
|
|
436
|
+
}
|
|
417
437
|
alert_rule.update()
|
|
438
|
+
|
|
418
439
|
assert alert_rule.warning_threshold == 13.0
|
|
419
440
|
assert alert_rule.critical_threshold == 14.0
|
|
420
441
|
assert alert_rule.evaluation_delay == 15
|
|
421
|
-
|
|
442
|
+
assert alert_rule.auto_threshold_params == {
|
|
443
|
+
'warning_multiplier': 1.5,
|
|
444
|
+
'critical_multiplier': 2.0,
|
|
445
|
+
}
|
|
422
446
|
|
|
423
447
|
@responses.activate
|
|
424
448
|
def test_update_alert_rule_not_found() -> None:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.9.1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fiddler-client-3.9.1 → fiddler-client-3.9.2}/fiddler/packtools/project_attributions_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|