dulus 0.2.9__tar.gz → 0.2.10__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.
- {dulus-0.2.9/dulus.egg-info → dulus-0.2.10}/PKG-INFO +15 -2
- {dulus-0.2.9 → dulus-0.2.10}/README.md +13 -1
- {dulus-0.2.9 → dulus-0.2.10/dulus.egg-info}/PKG-INFO +15 -2
- {dulus-0.2.9 → dulus-0.2.10}/dulus.egg-info/requires.txt +1 -0
- {dulus-0.2.9 → dulus-0.2.10}/pyproject.toml +6 -1
- {dulus-0.2.9 → dulus-0.2.10}/LICENSE +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/MANIFEST.in +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/agent.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/compressor.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/context.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/githook.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/marketplace.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/mempalace_bridge.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/personas.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/plugins.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/server.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/backend/tasks.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/batch_api.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/checkpoint/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/checkpoint/hooks.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/checkpoint/store.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/checkpoint/types.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/claude_code_watcher.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/clipboard_utils.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/cloudsave.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/common.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/compaction.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/config.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/context.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/data/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/data/active_persona.json +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/data/context.json +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/data/marketplace.json +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/data/personas.json +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/data/tasks.json +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/README.md +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/api.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/architecture.md +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/azure-speech-template.json +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/dashboard/index.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/divider.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/generate.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/hero.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/index.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/news.md +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/nvidia-models.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/particle-playground.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/personas/index.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/preview.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-agents.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-brainstorm.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-bridges.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-features.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-freetier.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-memory.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-models.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-perms.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-plugins.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-quickstart.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/sec-ssj.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/spinners.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/split-pane.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/terminal-boot.svg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/docs/uploads/particle-playground.html +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus.egg-info/SOURCES.txt +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus.egg-info/dependency_links.txt +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus.egg-info/entry_points.txt +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus.egg-info/top_level.txt +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus_gui.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus_mcp/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus_mcp/client.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus_mcp/config.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus_mcp/tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/dulus_mcp/types.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/agent_bridge.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/chat_widget.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/main_window.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/personas.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/session_utils.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/settings_dialog.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/sidebar.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/tasks_view.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/themes.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/gui/tool_panel.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/input.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/license_manager.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/audit.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/consolidator.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/context.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/offload.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/palace.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/scan.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/sessions.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/store.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/types.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/memory/vector_search.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/multi_agent/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/multi_agent/subagent.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/multi_agent/tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/offload_helper.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/plugin/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/plugin/autoadapter.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/plugin/loader.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/plugin/recommend.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/plugin/store.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/plugin/types.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/providers.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/setup.cfg +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skill/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skill/builtin.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skill/clawhub.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skill/executor.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skill/loader.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skill/tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/skills.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/spinner.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/string_utils.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/subagent.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/task/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/task/store.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/task/tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/task/types.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_checkpoint.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_compaction.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_diff_view.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_injection_fix.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_license.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_mcp.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_memory.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_plugin.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_skills.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_subagent.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_task.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_telegram_buffer.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_tool_registry.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tests/test_voice.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tmux_offloader.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tmux_tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tool_registry.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/tools.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/ui/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/ui/input.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/ui/render.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/voice/__init__.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/voice/keyterms.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/voice/recorder.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/voice/stt.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/voice/tts.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/webchat.py +0 -0
- {dulus-0.2.9 → dulus-0.2.10}/webchat_server.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dulus
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.10
|
|
4
4
|
Summary: Spanish-first multi-provider AI CLI — 14 NVIDIA models free, Mesa Redonda, voice, TTS, RTK token reducer, MemPalace
|
|
5
5
|
Author: KevRojo
|
|
6
6
|
License: GPL-3.0
|
|
@@ -35,6 +35,7 @@ Requires-Dist: bubblewrap-cli>=1.0.0
|
|
|
35
35
|
Requires-Dist: sounddevice
|
|
36
36
|
Requires-Dist: customtkinter>=5.2.0
|
|
37
37
|
Requires-Dist: Pillow>=10.0.0
|
|
38
|
+
Requires-Dist: typing-extensions>=4.10.0
|
|
38
39
|
Dynamic: license-file
|
|
39
40
|
|
|
40
41
|
# ▲ DULUS
|
|
@@ -84,7 +85,7 @@ SET /sticky_input ON since the first run for the best experience!
|
|
|
84
85
|
|
|
85
86
|
Dulus is a **lightweight Python reimplementation of Claude Code** that isn't locked to Claude. It ships the whole loop — REPL, tool dispatch, streaming, context compaction, checkpoints, sub-agents, voice, Telegram bridge, MCP, plugins — in roughly **12K lines you can actually read**. Fork it. Bend it. Run it offline against Qwen on your M2.
|
|
86
87
|
|
|
87
|
-
> **v0.2.
|
|
88
|
+
> **v0.2.10 — May 8, 2026** — Pin `typing-extensions>=4.10` to keep pip's resolver from blowing up (`dependency resolution exceeded maximum depth`) when reconciling anthropic / openai / pydantic / chromadb floors. New Termux/Android section in the README with a `--no-deps` workaround for the NumPy build.
|
|
88
89
|
> Type `/news` to see what changed.
|
|
89
90
|
|
|
90
91
|
---
|
|
@@ -133,6 +134,18 @@ pip install -e . # editable install
|
|
|
133
134
|
dulus
|
|
134
135
|
```
|
|
135
136
|
|
|
137
|
+
### Termux / Android
|
|
138
|
+
|
|
139
|
+
The default install pulls `mempalace` and `sounddevice`, both of which need a NumPy that has no prebuilt wheel for `aarch64-android` — pip will try to build NumPy from source and fail. Install around it:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pkg install python python-numpy python-pillow build-essential
|
|
143
|
+
pip install --no-deps dulus
|
|
144
|
+
pip install anthropic openai httpx requests rich prompt_toolkit Flask bubblewrap-cli mempalace
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Skip `sounddevice` (no usable PortAudio on Android — voice features won't work anyway). Dulus's runtime is graceful: voice / MemPalace just degrade if their deps aren't there, the CLI still boots and chats fine.
|
|
148
|
+
|
|
136
149
|
### Pick a model
|
|
137
150
|
|
|
138
151
|
```bash
|
|
@@ -45,7 +45,7 @@ SET /sticky_input ON since the first run for the best experience!
|
|
|
45
45
|
|
|
46
46
|
Dulus is a **lightweight Python reimplementation of Claude Code** that isn't locked to Claude. It ships the whole loop — REPL, tool dispatch, streaming, context compaction, checkpoints, sub-agents, voice, Telegram bridge, MCP, plugins — in roughly **12K lines you can actually read**. Fork it. Bend it. Run it offline against Qwen on your M2.
|
|
47
47
|
|
|
48
|
-
> **v0.2.
|
|
48
|
+
> **v0.2.10 — May 8, 2026** — Pin `typing-extensions>=4.10` to keep pip's resolver from blowing up (`dependency resolution exceeded maximum depth`) when reconciling anthropic / openai / pydantic / chromadb floors. New Termux/Android section in the README with a `--no-deps` workaround for the NumPy build.
|
|
49
49
|
> Type `/news` to see what changed.
|
|
50
50
|
|
|
51
51
|
---
|
|
@@ -94,6 +94,18 @@ pip install -e . # editable install
|
|
|
94
94
|
dulus
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
+
### Termux / Android
|
|
98
|
+
|
|
99
|
+
The default install pulls `mempalace` and `sounddevice`, both of which need a NumPy that has no prebuilt wheel for `aarch64-android` — pip will try to build NumPy from source and fail. Install around it:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pkg install python python-numpy python-pillow build-essential
|
|
103
|
+
pip install --no-deps dulus
|
|
104
|
+
pip install anthropic openai httpx requests rich prompt_toolkit Flask bubblewrap-cli mempalace
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Skip `sounddevice` (no usable PortAudio on Android — voice features won't work anyway). Dulus's runtime is graceful: voice / MemPalace just degrade if their deps aren't there, the CLI still boots and chats fine.
|
|
108
|
+
|
|
97
109
|
### Pick a model
|
|
98
110
|
|
|
99
111
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dulus
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.10
|
|
4
4
|
Summary: Spanish-first multi-provider AI CLI — 14 NVIDIA models free, Mesa Redonda, voice, TTS, RTK token reducer, MemPalace
|
|
5
5
|
Author: KevRojo
|
|
6
6
|
License: GPL-3.0
|
|
@@ -35,6 +35,7 @@ Requires-Dist: bubblewrap-cli>=1.0.0
|
|
|
35
35
|
Requires-Dist: sounddevice
|
|
36
36
|
Requires-Dist: customtkinter>=5.2.0
|
|
37
37
|
Requires-Dist: Pillow>=10.0.0
|
|
38
|
+
Requires-Dist: typing-extensions>=4.10.0
|
|
38
39
|
Dynamic: license-file
|
|
39
40
|
|
|
40
41
|
# ▲ DULUS
|
|
@@ -84,7 +85,7 @@ SET /sticky_input ON since the first run for the best experience!
|
|
|
84
85
|
|
|
85
86
|
Dulus is a **lightweight Python reimplementation of Claude Code** that isn't locked to Claude. It ships the whole loop — REPL, tool dispatch, streaming, context compaction, checkpoints, sub-agents, voice, Telegram bridge, MCP, plugins — in roughly **12K lines you can actually read**. Fork it. Bend it. Run it offline against Qwen on your M2.
|
|
86
87
|
|
|
87
|
-
> **v0.2.
|
|
88
|
+
> **v0.2.10 — May 8, 2026** — Pin `typing-extensions>=4.10` to keep pip's resolver from blowing up (`dependency resolution exceeded maximum depth`) when reconciling anthropic / openai / pydantic / chromadb floors. New Termux/Android section in the README with a `--no-deps` workaround for the NumPy build.
|
|
88
89
|
> Type `/news` to see what changed.
|
|
89
90
|
|
|
90
91
|
---
|
|
@@ -133,6 +134,18 @@ pip install -e . # editable install
|
|
|
133
134
|
dulus
|
|
134
135
|
```
|
|
135
136
|
|
|
137
|
+
### Termux / Android
|
|
138
|
+
|
|
139
|
+
The default install pulls `mempalace` and `sounddevice`, both of which need a NumPy that has no prebuilt wheel for `aarch64-android` — pip will try to build NumPy from source and fail. Install around it:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pkg install python python-numpy python-pillow build-essential
|
|
143
|
+
pip install --no-deps dulus
|
|
144
|
+
pip install anthropic openai httpx requests rich prompt_toolkit Flask bubblewrap-cli mempalace
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Skip `sounddevice` (no usable PortAudio on Android — voice features won't work anyway). Dulus's runtime is graceful: voice / MemPalace just degrade if their deps aren't there, the CLI still boots and chats fine.
|
|
148
|
+
|
|
136
149
|
### Pick a model
|
|
137
150
|
|
|
138
151
|
```bash
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dulus"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.10"
|
|
8
8
|
description = "Spanish-first multi-provider AI CLI — 14 NVIDIA models free, Mesa Redonda, voice, TTS, RTK token reducer, MemPalace"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -40,6 +40,11 @@ dependencies = [
|
|
|
40
40
|
"sounddevice",
|
|
41
41
|
"customtkinter>=5.2.0",
|
|
42
42
|
"Pillow>=10.0.0",
|
|
43
|
+
# Pin typing-extensions floor: anthropic, openai, pydantic, chromadb (via
|
|
44
|
+
# mempalace) each pull it with different lower bounds — without an explicit
|
|
45
|
+
# floor here pip's resolver explodes with "dependency resolution exceeded
|
|
46
|
+
# maximum depth" trying to reconcile them.
|
|
47
|
+
"typing-extensions>=4.10.0",
|
|
43
48
|
]
|
|
44
49
|
|
|
45
50
|
[project.scripts]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|