veris-ai 1.11.0__tar.gz → 1.11.1__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.
Potentially problematic release.
This version of veris-ai might be problematic. Click here for more details.
- {veris_ai-1.11.0 → veris_ai-1.11.1}/PKG-INFO +2 -2
- {veris_ai-1.11.0 → veris_ai-1.11.1}/README.md +1 -1
- {veris_ai-1.11.0 → veris_ai-1.11.1}/pyproject.toml +1 -1
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/README.md +3 -3
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/api_client.py +3 -3
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/test_agents_wrapper_simple.py +1 -1
- {veris_ai-1.11.0 → veris_ai-1.11.1}/uv.lock +29 -29
- {veris_ai-1.11.0 → veris_ai-1.11.1}/.cursor/rules/documentation-management.mdc +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/.github/workflows/release.yml +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/.github/workflows/test.yml +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/.gitignore +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/.pre-commit-config.yaml +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/CHANGELOG.md +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/CLAUDE.md +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/LICENSE +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/examples/README.md +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/examples/__init__.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/examples/import_options.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/examples/openai_agents_example.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/__init__.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/agents_wrapper.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/jaeger_interface/README.md +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/jaeger_interface/__init__.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/jaeger_interface/client.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/jaeger_interface/models.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/models.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/observability.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/tool_mock.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/src/veris_ai/utils.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/README.md +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/__init__.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/conftest.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/fixtures/__init__.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/fixtures/http_server.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/fixtures/simple_app.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/test_agents_wrapper_extract.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/test_mcp_protocol_server_mocked.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/test_tool_mock.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/test_utils.py +0 -0
- {veris_ai-1.11.0 → veris_ai-1.11.1}/tests/test_veris_runner_tool_options.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: veris-ai
|
|
3
|
-
Version: 1.11.
|
|
3
|
+
Version: 1.11.1
|
|
4
4
|
Summary: A Python package for Veris AI tools
|
|
5
5
|
Project-URL: Homepage, https://github.com/veris-ai/veris-python-sdk
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/veris-ai/veris-python-sdk/issues
|
|
@@ -135,7 +135,7 @@ What this enables:
|
|
|
135
135
|
|
|
136
136
|
End-to-end propagation with the simulator:
|
|
137
137
|
- The simulator injects W3C headers when connecting to your FastAPI MCP endpoints
|
|
138
|
-
- The SDK injects W3C headers on `/
|
|
138
|
+
- The SDK injects W3C headers on `/v3/tool_mock` and logging requests back to the simulator
|
|
139
139
|
- Result: customer agent spans and tool mocks appear under the same distributed trace
|
|
140
140
|
|
|
141
141
|
## Function Mocking
|
|
@@ -110,7 +110,7 @@ What this enables:
|
|
|
110
110
|
|
|
111
111
|
End-to-end propagation with the simulator:
|
|
112
112
|
- The simulator injects W3C headers when connecting to your FastAPI MCP endpoints
|
|
113
|
-
- The SDK injects W3C headers on `/
|
|
113
|
+
- The SDK injects W3C headers on `/v3/tool_mock` and logging requests back to the simulator
|
|
114
114
|
- Result: customer agent spans and tool mocks appear under the same distributed trace
|
|
115
115
|
|
|
116
116
|
## Function Mocking
|
|
@@ -28,15 +28,15 @@ This module contains the core implementation of the Veris AI Python SDK. Each co
|
|
|
28
28
|
### Mock Flow
|
|
29
29
|
1. **Decoration**: `@veris.mock()` captures function metadata
|
|
30
30
|
2. **Session Check**: Presence of session ID determines behavior
|
|
31
|
-
3. **API Call**: POST to VERIS API endpoint `/
|
|
31
|
+
3. **API Call**: POST to VERIS API endpoint `/v3/tool_mock` (auto-configured)
|
|
32
32
|
4. **Type Conversion**: Response converted using `extract_json_schema()`
|
|
33
33
|
|
|
34
34
|
**Implementation**: [`tool_mock.py:200-250`](tool_mock.py)
|
|
35
35
|
|
|
36
36
|
### Spy Flow
|
|
37
|
-
1. **Pre-execution Logging**: Call details sent to
|
|
37
|
+
1. **Pre-execution Logging**: Call details sent to `v3/log_tool_call?session_id={session_id}`
|
|
38
38
|
2. **Function Execution**: Original function runs normally
|
|
39
|
-
3. **Post-execution Logging**: Response sent to
|
|
39
|
+
3. **Post-execution Logging**: Response sent to `v3/log_tool_response?session_id={session_id}`
|
|
40
40
|
|
|
41
41
|
**Implementation**: [`tool_mock.py:250-300`](tool_mock.py)
|
|
42
42
|
|
|
@@ -63,15 +63,15 @@ class SimulatorAPIClient:
|
|
|
63
63
|
@property
|
|
64
64
|
def tool_mock_endpoint(self) -> str:
|
|
65
65
|
"""Get the tool mock endpoint URL."""
|
|
66
|
-
return urljoin(self._get_base_url(), "
|
|
66
|
+
return urljoin(self._get_base_url(), "v3/tool_mock")
|
|
67
67
|
|
|
68
68
|
def get_log_tool_call_endpoint(self, session_id: str) -> str:
|
|
69
69
|
"""Get the log tool call endpoint URL."""
|
|
70
|
-
return urljoin(self._get_base_url(), f"
|
|
70
|
+
return urljoin(self._get_base_url(), f"v3/log_tool_call?session_id={session_id}")
|
|
71
71
|
|
|
72
72
|
def get_log_tool_response_endpoint(self, session_id: str) -> str:
|
|
73
73
|
"""Get the log tool response endpoint URL."""
|
|
74
|
-
return urljoin(self._get_base_url(), f"
|
|
74
|
+
return urljoin(self._get_base_url(), f"v3/log_tool_response?session_id={session_id}")
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
# Global singleton instance
|
|
@@ -244,7 +244,7 @@ async def test_runner_with_session_calls_endpoint(
|
|
|
244
244
|
|
|
245
245
|
# Verify the call had correct structure
|
|
246
246
|
first_call = mock_veris_endpoint["calls"][0]
|
|
247
|
-
assert first_call["endpoint"] == "http://localhost:8000/
|
|
247
|
+
assert first_call["endpoint"] == "http://localhost:8000/v3/tool_mock"
|
|
248
248
|
assert first_call["payload"]["session_id"] == "test-session-123"
|
|
249
249
|
assert "add_numbers" in str(first_call["payload"]) or "veris_tool_function" in str(
|
|
250
250
|
first_call["payload"]
|
|
@@ -40,11 +40,11 @@ wheels = [
|
|
|
40
40
|
|
|
41
41
|
[[package]]
|
|
42
42
|
name = "attrs"
|
|
43
|
-
version = "25.
|
|
43
|
+
version = "25.4.0"
|
|
44
44
|
source = { registry = "https://pypi.org/simple" }
|
|
45
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
45
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" }
|
|
46
46
|
wheels = [
|
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
47
|
+
{ url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" },
|
|
48
48
|
]
|
|
49
49
|
|
|
50
50
|
[[package]]
|
|
@@ -403,11 +403,11 @@ wheels = [
|
|
|
403
403
|
|
|
404
404
|
[[package]]
|
|
405
405
|
name = "httpx-sse"
|
|
406
|
-
version = "0.4.
|
|
406
|
+
version = "0.4.2"
|
|
407
407
|
source = { registry = "https://pypi.org/simple" }
|
|
408
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
408
|
+
sdist = { url = "https://files.pythonhosted.org/packages/63/7a/280d644f906f077e4f4a6d327e9b6e5a936624395ad1bf6ee9165a9d9959/httpx_sse-0.4.2.tar.gz", hash = "sha256:5bb6a2771a51e6c7a5f5c645e40b8a5f57d8de708f46cb5f3868043c3c18124e", size = 16000, upload-time = "2025-10-07T08:10:05.219Z" }
|
|
409
409
|
wheels = [
|
|
410
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
410
|
+
{ url = "https://files.pythonhosted.org/packages/4f/e5/ec31165492ecc52426370b9005e0637d6da02f9579283298affcb1ab614d/httpx_sse-0.4.2-py3-none-any.whl", hash = "sha256:a9fa4afacb293fa50ef9bacb6cae8287ba5fd1f4b1c2d10a35bb981c41da31ab", size = 9018, upload-time = "2025-10-07T08:10:04.257Z" },
|
|
411
411
|
]
|
|
412
412
|
|
|
413
413
|
[[package]]
|
|
@@ -1372,28 +1372,28 @@ wheels = [
|
|
|
1372
1372
|
|
|
1373
1373
|
[[package]]
|
|
1374
1374
|
name = "ruff"
|
|
1375
|
-
version = "0.
|
|
1376
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1377
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1378
|
-
wheels = [
|
|
1379
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1380
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1381
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1382
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1383
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1384
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1385
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1386
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1387
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1388
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1389
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1390
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1391
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1392
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1393
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1394
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1395
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1396
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1375
|
+
version = "0.14.0"
|
|
1376
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1377
|
+
sdist = { url = "https://files.pythonhosted.org/packages/41/b9/9bd84453ed6dd04688de9b3f3a4146a1698e8faae2ceeccce4e14c67ae17/ruff-0.14.0.tar.gz", hash = "sha256:62ec8969b7510f77945df916de15da55311fade8d6050995ff7f680afe582c57", size = 5452071, upload-time = "2025-10-07T18:21:55.763Z" }
|
|
1378
|
+
wheels = [
|
|
1379
|
+
{ url = "https://files.pythonhosted.org/packages/3a/4e/79d463a5f80654e93fa653ebfb98e0becc3f0e7cf6219c9ddedf1e197072/ruff-0.14.0-py3-none-linux_armv6l.whl", hash = "sha256:58e15bffa7054299becf4bab8a1187062c6f8cafbe9f6e39e0d5aface455d6b3", size = 12494532, upload-time = "2025-10-07T18:21:00.373Z" },
|
|
1380
|
+
{ url = "https://files.pythonhosted.org/packages/ee/40/e2392f445ed8e02aa6105d49db4bfff01957379064c30f4811c3bf38aece/ruff-0.14.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:838d1b065f4df676b7c9957992f2304e41ead7a50a568185efd404297d5701e8", size = 13160768, upload-time = "2025-10-07T18:21:04.73Z" },
|
|
1381
|
+
{ url = "https://files.pythonhosted.org/packages/75/da/2a656ea7c6b9bd14c7209918268dd40e1e6cea65f4bb9880eaaa43b055cd/ruff-0.14.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:703799d059ba50f745605b04638fa7e9682cc3da084b2092feee63500ff3d9b8", size = 12363376, upload-time = "2025-10-07T18:21:07.833Z" },
|
|
1382
|
+
{ url = "https://files.pythonhosted.org/packages/42/e2/1ffef5a1875add82416ff388fcb7ea8b22a53be67a638487937aea81af27/ruff-0.14.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ba9a8925e90f861502f7d974cc60e18ca29c72bb0ee8bfeabb6ade35a3abde7", size = 12608055, upload-time = "2025-10-07T18:21:10.72Z" },
|
|
1383
|
+
{ url = "https://files.pythonhosted.org/packages/4a/32/986725199d7cee510d9f1dfdf95bf1efc5fa9dd714d0d85c1fb1f6be3bc3/ruff-0.14.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e41f785498bd200ffc276eb9e1570c019c1d907b07cfb081092c8ad51975bbe7", size = 12318544, upload-time = "2025-10-07T18:21:13.741Z" },
|
|
1384
|
+
{ url = "https://files.pythonhosted.org/packages/9a/ed/4969cefd53315164c94eaf4da7cfba1f267dc275b0abdd593d11c90829a3/ruff-0.14.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30a58c087aef4584c193aebf2700f0fbcfc1e77b89c7385e3139956fa90434e2", size = 14001280, upload-time = "2025-10-07T18:21:16.411Z" },
|
|
1385
|
+
{ url = "https://files.pythonhosted.org/packages/ab/ad/96c1fc9f8854c37681c9613d825925c7f24ca1acfc62a4eb3896b50bacd2/ruff-0.14.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f8d07350bc7af0a5ce8812b7d5c1a7293cf02476752f23fdfc500d24b79b783c", size = 15027286, upload-time = "2025-10-07T18:21:19.577Z" },
|
|
1386
|
+
{ url = "https://files.pythonhosted.org/packages/b3/00/1426978f97df4fe331074baf69615f579dc4e7c37bb4c6f57c2aad80c87f/ruff-0.14.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eec3bbbf3a7d5482b5c1f42d5fc972774d71d107d447919fca620b0be3e3b75e", size = 14451506, upload-time = "2025-10-07T18:21:22.779Z" },
|
|
1387
|
+
{ url = "https://files.pythonhosted.org/packages/58/d5/9c1cea6e493c0cf0647674cca26b579ea9d2a213b74b5c195fbeb9678e15/ruff-0.14.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16b68e183a0e28e5c176d51004aaa40559e8f90065a10a559176713fcf435206", size = 13437384, upload-time = "2025-10-07T18:21:25.758Z" },
|
|
1388
|
+
{ url = "https://files.pythonhosted.org/packages/29/b4/4cd6a4331e999fc05d9d77729c95503f99eae3ba1160469f2b64866964e3/ruff-0.14.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb732d17db2e945cfcbbc52af0143eda1da36ca8ae25083dd4f66f1542fdf82e", size = 13447976, upload-time = "2025-10-07T18:21:28.83Z" },
|
|
1389
|
+
{ url = "https://files.pythonhosted.org/packages/3b/c0/ac42f546d07e4f49f62332576cb845d45c67cf5610d1851254e341d563b6/ruff-0.14.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:c958f66ab884b7873e72df38dcabee03d556a8f2ee1b8538ee1c2bbd619883dd", size = 13682850, upload-time = "2025-10-07T18:21:31.842Z" },
|
|
1390
|
+
{ url = "https://files.pythonhosted.org/packages/5f/c4/4b0c9bcadd45b4c29fe1af9c5d1dc0ca87b4021665dfbe1c4688d407aa20/ruff-0.14.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:7eb0499a2e01f6e0c285afc5bac43ab380cbfc17cd43a2e1dd10ec97d6f2c42d", size = 12449825, upload-time = "2025-10-07T18:21:35.074Z" },
|
|
1391
|
+
{ url = "https://files.pythonhosted.org/packages/4b/a8/e2e76288e6c16540fa820d148d83e55f15e994d852485f221b9524514730/ruff-0.14.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4c63b2d99fafa05efca0ab198fd48fa6030d57e4423df3f18e03aa62518c565f", size = 12272599, upload-time = "2025-10-07T18:21:38.08Z" },
|
|
1392
|
+
{ url = "https://files.pythonhosted.org/packages/18/14/e2815d8eff847391af632b22422b8207704222ff575dec8d044f9ab779b2/ruff-0.14.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:668fce701b7a222f3f5327f86909db2bbe99c30877c8001ff934c5413812ac02", size = 13193828, upload-time = "2025-10-07T18:21:41.216Z" },
|
|
1393
|
+
{ url = "https://files.pythonhosted.org/packages/44/c6/61ccc2987cf0aecc588ff8f3212dea64840770e60d78f5606cd7dc34de32/ruff-0.14.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a86bf575e05cb68dcb34e4c7dfe1064d44d3f0c04bbc0491949092192b515296", size = 13628617, upload-time = "2025-10-07T18:21:44.04Z" },
|
|
1394
|
+
{ url = "https://files.pythonhosted.org/packages/73/e6/03b882225a1b0627e75339b420883dc3c90707a8917d2284abef7a58d317/ruff-0.14.0-py3-none-win32.whl", hash = "sha256:7450a243d7125d1c032cb4b93d9625dea46c8c42b4f06c6b709baac168e10543", size = 12367872, upload-time = "2025-10-07T18:21:46.67Z" },
|
|
1395
|
+
{ url = "https://files.pythonhosted.org/packages/41/77/56cf9cf01ea0bfcc662de72540812e5ba8e9563f33ef3d37ab2174892c47/ruff-0.14.0-py3-none-win_amd64.whl", hash = "sha256:ea95da28cd874c4d9c922b39381cbd69cb7e7b49c21b8152b014bd4f52acddc2", size = 13464628, upload-time = "2025-10-07T18:21:50.318Z" },
|
|
1396
|
+
{ url = "https://files.pythonhosted.org/packages/c6/2a/65880dfd0e13f7f13a775998f34703674a4554906167dce02daf7865b954/ruff-0.14.0-py3-none-win_arm64.whl", hash = "sha256:f42c9495f5c13ff841b1da4cb3c2a42075409592825dada7c5885c2c844ac730", size = 12565142, upload-time = "2025-10-07T18:21:53.577Z" },
|
|
1397
1397
|
]
|
|
1398
1398
|
|
|
1399
1399
|
[[package]]
|
|
@@ -1571,7 +1571,7 @@ wheels = [
|
|
|
1571
1571
|
|
|
1572
1572
|
[[package]]
|
|
1573
1573
|
name = "veris-ai"
|
|
1574
|
-
version = "1.
|
|
1574
|
+
version = "1.11.0"
|
|
1575
1575
|
source = { editable = "." }
|
|
1576
1576
|
dependencies = [
|
|
1577
1577
|
{ name = "httpx" },
|
|
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
|