alloc-context 0.1.0__tar.gz → 0.1.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.
- {alloc_context-0.1.0 → alloc_context-0.1.1}/PKG-INFO +3 -1
- {alloc_context-0.1.0 → alloc_context-0.1.1}/README.md +2 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloc_context.egg-info/PKG-INFO +3 -1
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloc_context.egg-info/SOURCES.txt +1 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/__init__.py +1 -1
- {alloc_context-0.1.0 → alloc_context-0.1.1}/pyproject.toml +1 -1
- alloc_context-0.1.1/tests/test_server_json.py +35 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_workflows.py +25 -2
- {alloc_context-0.1.0 → alloc_context-0.1.1}/LICENSE +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloc_context.egg-info/dependency_links.txt +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloc_context.egg-info/entry_points.txt +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloc_context.egg-info/requires.txt +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloc_context.egg-info/top_level.txt +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/__main__.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/config.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/horizon.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/__init__.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/cf_benchmarks.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/cf_history.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/coinbase_client.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/coinbase_portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/coingecko.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/coinmarketcap.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/env_keys.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/etf_flows.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/__init__.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/coinbase_adapter.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/kraken_adapter.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/live.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/registry.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/types.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange_http.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/fear_greed.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/fred.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/http_errors.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kalshi.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kalshi_api.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kalshi_client.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kalshi_files.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kalshi_state.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kraken_client.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/kraken_portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/macro_calendar.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/macro_normalize.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/market_snapshots.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/outcome.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/parse_helpers.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/runner.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/__init__.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/assets.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/bazaar.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/contracts.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/handlers.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/http.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/payment_middleware.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/server.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/staleness.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/validation.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/x402_bazaar_dynamic.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/x402_config.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/x402_pricing.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/mcp/x402_stables.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/__init__.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/band.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/breadth.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/cf_math.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/cluster.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/cluster_config.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/comparison.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/context.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/delta.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/etf.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/fear_greed.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/macro.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/rebalance.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/regime.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/sentiment.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/snapshots.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/rollup/tape.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/status_report.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/store/__init__.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/store/db.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/store/jsonutil.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/store/meta.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/store/retention.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/store/status.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/timeutil.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/x402_production_check.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/x402_smoke_redact.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/setup.cfg +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_adr005_ingest.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_backup_sqlite.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_bump_version.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_coinbase_portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_context_snapshots.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_db_schema.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_deploy.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_dev_stack.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_etf.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_exchanges_config.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_fear_greed.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_fred.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_horizon.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_ingest_outcome.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_ingest_runner.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_kalshi_api.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_kraken_portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_macro.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_market_breadth.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_assets_regime.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_bazaar.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_contracts.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_freshness.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_handlers.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_health.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_http_lifecycle.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_live_portfolio.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_server.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_validation.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_x402.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_x402_http.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_x402_pricing.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_mcp_x402_stables.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_qa_ingest_store.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_rebalance.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_rollup.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_scaffold.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_script_runtime.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_security_hardening.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_snapshots_and_delta.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_status_report.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_x402_bazaar_dynamic.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_x402_production_check.py +0 -0
- {alloc_context-0.1.0 → alloc_context-0.1.1}/tests/test_x402_smoke_redact.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alloc-context
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: AllocContext — BTC/ETH allocation context, drift, and rebalance facts
|
|
5
5
|
License: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/negillett/alloc-context
|
|
@@ -42,6 +42,8 @@ Dynamic: license-file
|
|
|
42
42
|
|
|
43
43
|
# AllocContext
|
|
44
44
|
|
|
45
|
+
mcp-name: io.github.negillett/alloc-context
|
|
46
|
+
|
|
45
47
|
**Allocation context for BTC/ETH** — drift, band checks, USD rebalance moves,
|
|
46
48
|
and a fused market backdrop (Fear & Greed, Kalshi, ETF flows, macro) as
|
|
47
49
|
deterministic JSON over MCP.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alloc-context
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: AllocContext — BTC/ETH allocation context, drift, and rebalance facts
|
|
5
5
|
License: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/negillett/alloc-context
|
|
@@ -42,6 +42,8 @@ Dynamic: license-file
|
|
|
42
42
|
|
|
43
43
|
# AllocContext
|
|
44
44
|
|
|
45
|
+
mcp-name: io.github.negillett/alloc-context
|
|
46
|
+
|
|
45
47
|
**Allocation context for BTC/ETH** — drift, band checks, USD rebalance moves,
|
|
46
48
|
and a fused market backdrop (Fear & Greed, Kalshi, ETF flows, macro) as
|
|
47
49
|
deterministic JSON over MCP.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
7
|
+
SERVER_JSON = REPO_ROOT / "server.json"
|
|
8
|
+
|
|
9
|
+
# Official MCP Registry limit (see registry validation errors).
|
|
10
|
+
REGISTRY_DESCRIPTION_MAX_LEN = 100
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_server_json_description_within_registry_limit():
|
|
14
|
+
data = json.loads(SERVER_JSON.read_text(encoding="utf-8"))
|
|
15
|
+
description = data["description"]
|
|
16
|
+
assert len(description) <= REGISTRY_DESCRIPTION_MAX_LEN, (
|
|
17
|
+
f"server.json description is {len(description)} chars; "
|
|
18
|
+
f"registry max is {REGISTRY_DESCRIPTION_MAX_LEN}"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_server_json_version_matches_pyproject():
|
|
23
|
+
import tomllib
|
|
24
|
+
|
|
25
|
+
py_ver = tomllib.loads(
|
|
26
|
+
(REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8")
|
|
27
|
+
)["project"]["version"]
|
|
28
|
+
data = json.loads(SERVER_JSON.read_text(encoding="utf-8"))
|
|
29
|
+
assert data["version"] == py_ver
|
|
30
|
+
assert data["packages"][0]["version"] == py_ver
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def test_readme_includes_mcp_registry_name_for_pypi():
|
|
34
|
+
readme = (REPO_ROOT / "README.md").read_text(encoding="utf-8")
|
|
35
|
+
assert "mcp-name: io.github.negillett/alloc-context" in readme
|
|
@@ -72,11 +72,13 @@ def test_release_workflow_unified_pipeline():
|
|
|
72
72
|
"prepare",
|
|
73
73
|
"validate-version",
|
|
74
74
|
"publish-pypi",
|
|
75
|
+
"publish-mcp-registry",
|
|
75
76
|
"deploy",
|
|
76
77
|
]
|
|
77
78
|
|
|
78
79
|
prepare_runs = [step.get("run", "") for step in _job_steps(workflow, "prepare")]
|
|
79
80
|
assert any("scripts/bump_version.py" in run for run in prepare_runs)
|
|
81
|
+
assert any("release/v" in run and "git push" in run for run in prepare_runs)
|
|
80
82
|
|
|
81
83
|
validate_runs = [
|
|
82
84
|
step.get("run", "") for step in _job_steps(workflow, "validate-version")
|
|
@@ -98,5 +100,26 @@ def test_release_workflow_unified_pipeline():
|
|
|
98
100
|
for step in publish_steps
|
|
99
101
|
)
|
|
100
102
|
|
|
101
|
-
|
|
102
|
-
assert
|
|
103
|
+
registry = workflow["jobs"]["publish-mcp-registry"]
|
|
104
|
+
assert registry["needs"] in (
|
|
105
|
+
["publish-pypi", "validate-version"],
|
|
106
|
+
["validate-version", "publish-pypi"],
|
|
107
|
+
)
|
|
108
|
+
registry_runs = [
|
|
109
|
+
step.get("run", "") for step in _job_steps(workflow, "publish-mcp-registry")
|
|
110
|
+
]
|
|
111
|
+
assert any("mcp-publisher publish" in run for run in registry_runs)
|
|
112
|
+
|
|
113
|
+
finalize = workflow["jobs"]["finalize-tag"]
|
|
114
|
+
assert "publish-mcp-registry" in finalize["needs"]
|
|
115
|
+
|
|
116
|
+
assert "sync-main" in workflow["jobs"]
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def test_publish_mcp_registry_workflow_dispatch():
|
|
120
|
+
workflow = _load_workflow("publish-mcp-registry.yml")
|
|
121
|
+
on = _workflow_on(workflow)
|
|
122
|
+
assert "workflow_dispatch" in on
|
|
123
|
+
runs = [step.get("run", "") for step in _job_steps(workflow, "publish")]
|
|
124
|
+
assert any("install-mcp-publisher" in run for run in runs)
|
|
125
|
+
assert any("github-oidc" in run for run in runs)
|
|
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
|
{alloc_context-0.1.0 → alloc_context-0.1.1}/alloccontext/ingest/exchange/coinbase_adapter.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
|
|
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
|