adam-cli 0.2.0__tar.gz → 0.2.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.
- {adam_cli-0.2.0 → adam_cli-0.2.2}/.claude/settings.local.json +6 -1
- {adam_cli-0.2.0 → adam_cli-0.2.2}/PKG-INFO +1 -1
- {adam_cli-0.2.0 → adam_cli-0.2.2}/pyproject.toml +1 -1
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/cli/bootstrap.py +14 -2
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/context/loader.py +33 -4
- {adam_cli-0.2.0 → adam_cli-0.2.2}/uv.lock +1 -1
- {adam_cli-0.2.0 → adam_cli-0.2.2}/.gitignore +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/CLAUDE.md +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/README.md +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/alembic.ini +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/docker-compose.yml +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/examples/balagan-tower-defense/README.md +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/examples/balagan-tower-defense/spec.md +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/examples/balagan-tower-defense/tech-stack.md +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/__main__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/architect.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/base.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/change_planner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/diagnostician.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/file_implementer.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/integration_auditor.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/module_planner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/repair_agent.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/route_discoverer.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/scaffolder.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/spec_differ.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/supervisor.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/agents/test_writer.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/cli/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/cli/app.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/cli/checkpoints.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/cli/display.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/config.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/context/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/context/condenser.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/context/fingerprint.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/migrations/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/migrations/env.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/migrations/script.py.mako +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/migrations/versions/001_initial_schema.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/migrations/versions/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/db/session.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/errors.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/execution/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/execution/dependencies.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/execution/dev_server.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/execution/runner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/git/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/git/manager.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/inspection/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/inspection/api_smoke.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/inspection/cli_verify.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/inspection/evaluator.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/inspection/screenshotter.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/llm/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/llm/client.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/llm/json_extract.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/logging_config.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/analytics.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/base.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/core.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/events.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/obligations.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/models/testing.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/checkpoint.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/engine.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/file_loop.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/monitor.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/obligations.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/planner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/policies.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/orchestrator/stop_conditions.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/pipeline/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/pipeline/iterate.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/pipeline/stages.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/profiles.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/project.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/loader.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/architect.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/change_planner.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/code_quality.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/diagnostician.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/file_implementer.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/integration_auditor.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/module_planner.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/performance.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/repair_agent.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/route_discoverer.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/security.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/spec_differ.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/supervisor.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/prompts/templates/test_writer.j2 +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/refinement/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/refinement/observe.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/refinement/refiner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/refinement/snapshot.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/repair/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/repair/planner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/store/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/store/events.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/store/slicer.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/store/store.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/types.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/base.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/file_classifier.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/hard/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/hard/build_checker.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/hard/lint_runner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/hard/test_runner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/hard/type_checker.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/soft/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/soft/code_quality.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/soft/performance.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/src/adam/validation/soft/security.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/__init__.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_bootstrap.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_checkpoints.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_context_loader.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_dependencies.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_dev_server.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_display.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_e2e.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_execution.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_file_classifier.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_file_loop_extras.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_git_manager.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_inspection.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_integration.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_json_extract.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_llm_client.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_obligations.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_observation.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_profiles.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_project.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_prompts.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_repair_planner.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_stop_conditions.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_types.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_validation.py +0 -0
- {adam_cli-0.2.0 → adam_cli-0.2.2}/tests/test_visual_pipeline.py +0 -0
|
@@ -72,7 +72,12 @@
|
|
|
72
72
|
"Bash(uv publish:*)",
|
|
73
73
|
"Bash(rsync -avz --delete --exclude='play/' dist/ root@204.168.219.211:/var/www/meetadam/)",
|
|
74
74
|
"Bash(rsync -avz --delete dist/ root@204.168.181.165:/var/www/postwriter/)",
|
|
75
|
-
"Bash(python:*)"
|
|
75
|
+
"Bash(python:*)",
|
|
76
|
+
"Bash(echo $PYPI_TOKEN)",
|
|
77
|
+
"Bash(export PYPI_TOKEN=\"pypi-AgEIcHlwaS5vcmcCJGZlMWViZmI1LTEwMmEtNGNjMC1iY2Q4LTkyN2ViZTM5M2I5ZgACKlszLCI3M2IzNzgyMS1hOTJjLTQ5MGItOGQxZi0zMTllODgyMjkyMDEiXQAABiCkA9Nm-K48TBkI--GGewUGZ83UYTV8RrxlpiH6dGvuAA\")",
|
|
78
|
+
"Bash(set -a)",
|
|
79
|
+
"Bash(source ~/.adam/config)",
|
|
80
|
+
"Bash(set +a)"
|
|
76
81
|
]
|
|
77
82
|
}
|
|
78
83
|
}
|
|
@@ -174,10 +174,22 @@ def _extract_prefilled(
|
|
|
174
174
|
prefilled["title"] = fm["title"]
|
|
175
175
|
if "features" in fm:
|
|
176
176
|
raw = fm["features"]
|
|
177
|
-
if isinstance(raw,
|
|
177
|
+
if isinstance(raw, list):
|
|
178
178
|
prefilled["features"] = [
|
|
179
|
-
f.strip() for f in raw
|
|
179
|
+
str(f).strip() for f in raw if str(f).strip()
|
|
180
180
|
]
|
|
181
|
+
elif isinstance(raw, str):
|
|
182
|
+
# Handle both comma-separated and "- item" list format
|
|
183
|
+
if "\n" in raw or raw.strip().startswith("-"):
|
|
184
|
+
prefilled["features"] = [
|
|
185
|
+
line.strip().lstrip("- ").strip()
|
|
186
|
+
for line in raw.split("\n")
|
|
187
|
+
if line.strip() and line.strip() != "-"
|
|
188
|
+
]
|
|
189
|
+
else:
|
|
190
|
+
prefilled["features"] = [
|
|
191
|
+
f.strip() for f in raw.split(",") if f.strip()
|
|
192
|
+
]
|
|
181
193
|
|
|
182
194
|
# Tech stack files → tech_stack dict
|
|
183
195
|
elif cf.context_type == ContextType.TECH_STACK:
|
|
@@ -323,11 +323,40 @@ class ContextLoader:
|
|
|
323
323
|
content = parts[2].strip()
|
|
324
324
|
|
|
325
325
|
frontmatter: dict[str, Any] = {}
|
|
326
|
+
current_key: str | None = None
|
|
327
|
+
current_list: list[str] | None = None
|
|
328
|
+
|
|
326
329
|
for line in fm_text.split("\n"):
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
330
|
+
stripped = line.strip()
|
|
331
|
+
|
|
332
|
+
# YAML list item (e.g., " - foo")
|
|
333
|
+
if stripped.startswith("- ") and current_key is not None:
|
|
334
|
+
if current_list is None:
|
|
335
|
+
current_list = []
|
|
336
|
+
current_list.append(stripped[2:].strip())
|
|
337
|
+
continue
|
|
338
|
+
|
|
339
|
+
# Flush any accumulated list
|
|
340
|
+
if current_list is not None and current_key is not None:
|
|
341
|
+
frontmatter[current_key] = current_list
|
|
342
|
+
current_list = None
|
|
343
|
+
current_key = None
|
|
344
|
+
|
|
345
|
+
# Key: value line
|
|
346
|
+
if ":" in stripped:
|
|
347
|
+
key, _, val = stripped.partition(":")
|
|
348
|
+
key = key.strip()
|
|
349
|
+
val = val.strip()
|
|
350
|
+
if val:
|
|
351
|
+
frontmatter[key] = val
|
|
352
|
+
current_key = None
|
|
353
|
+
else:
|
|
354
|
+
# Value is empty — next lines may be a YAML list
|
|
355
|
+
current_key = key
|
|
356
|
+
|
|
357
|
+
# Flush final list
|
|
358
|
+
if current_list is not None and current_key is not None:
|
|
359
|
+
frontmatter[current_key] = current_list
|
|
331
360
|
|
|
332
361
|
return content, frontmatter
|
|
333
362
|
|
|
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
|
|
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
|