wakeforge 0.4.2a1__tar.gz → 0.4.2a2__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.
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/PKG-INFO +28 -15
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/README.md +27 -14
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/wakeforge.egg-info/PKG-INFO +28 -15
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/version.py +1 -1
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/LICENSE +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/pyproject.toml +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/setup.cfg +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_augment.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_bcresnet.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_benchmark.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_checkpoint.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_cli_train_smoke.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_datagen.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_dataset.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_dataset_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_distill.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_esp32.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_export_metadata.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_feats.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_feats_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_hmm_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_inference.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_livekit_port.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_losses.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_losses_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_markov_extractors.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_metrics.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_mining.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_mining_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_models.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_models_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_new_extractors.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_new_heads.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_new_losses.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_ocsvm_training.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_onnx_advanced.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_phonmatch.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_quantize.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_quickstart.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_scripts.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_smoke.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_streaming.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_streaming_stateful.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_suggestions.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_sweep_extensions.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_sweep_strategies.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_text_modality.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_tiers.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_trainer_create_model.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_trainer_smoke.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_utils.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_utils_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_vc_helpers.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_visualization.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/test/test_viz_extended.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/wakeforge.egg-info/SOURCES.txt +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/wakeforge.egg-info/dependency_links.txt +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/wakeforge.egg-info/entry_points.txt +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/wakeforge.egg-info/requires.txt +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/wakeforge.egg-info/top_level.txt +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/__init__.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/augment.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/benchmark.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/cache.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/calibration.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/checkpoint.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/cli.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/datagen.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/dataset.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/ddp.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/distill.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/env.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/evaluation.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/export_c.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/factory.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/feats.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/few_shot.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/ga_mlflow.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/inference.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/infinite_loop.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/loop.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/loss.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/metrics.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/mining.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/model.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/multi_stage.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/phonmatch.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/py.typed +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/qat.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/quantize.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/quickstart.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/reproducibility.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/subspectralnorm.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/sweep.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/tiers.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/trainer.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/utils.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/vc_helpers.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/vendors/__init__.py +0 -0
- {wakeforge-0.4.2a1 → wakeforge-0.4.2a2}/ww_trainer/visualization.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wakeforge
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2a2
|
|
4
4
|
Summary: Full training and research suite for wake words — MFCC to HuBERT, all exported to ONNX
|
|
5
5
|
Author-email: JarbasAi <jarbasai@mailfence.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -70,23 +70,36 @@ Requires-Dist: ovos-tts-plugin-edge-tts; extra == "notebooks"
|
|
|
70
70
|
Requires-Dist: vadonnx>=0.1.0; extra == "notebooks"
|
|
71
71
|
Dynamic: license-file
|
|
72
72
|
|
|
73
|
-
#
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
# wakeforge
|
|
74
|
+
|
|
75
|
+
wakeforge is a research framework for **wake-word detection**. It implements
|
|
76
|
+
architectures, losses, and featurizers from the published wake-word
|
|
77
|
+
literature, so you can reproduce a paper's result or compare methods
|
|
78
|
+
side by side. Some included architectures exist to reproduce a published
|
|
79
|
+
result, not because they are the best default — the per-architecture pages
|
|
80
|
+
under `docs/reference/` say which is which. Train, evaluate, and export
|
|
81
|
+
lightweight on-device detectors that run anywhere from an ESP32 to a GPU
|
|
82
|
+
server. Every component exports to ONNX; production inference requires only
|
|
83
|
+
`onnxruntime` and `numpy` — no PyTorch at runtime.
|
|
84
|
+
|
|
85
|
+
An easy training run is not the same thing as a good detector. Loss going
|
|
86
|
+
down and a quickstart command exiting 0 prove the pipeline works, not that
|
|
87
|
+
the result is safe to ship — see
|
|
88
|
+
[`docs/guides/expectations.md`](docs/guides/expectations.md) for what a
|
|
89
|
+
deployable wake word actually looks like in false-accept and false-reject
|
|
90
|
+
numbers, and how much data each tier needs to get there.
|
|
80
91
|
|
|
81
92
|
## What is a wake word?
|
|
82
93
|
|
|
83
94
|
A short phrase ("hey jarvis", "computer", "alexa") that a device listens for
|
|
84
95
|
continuously. When detected, downstream STT/NLU runs. A useful detector must
|
|
85
96
|
run on tiny hardware (sub-100 KB, <10 % CPU, no internet), tolerate noise and
|
|
86
|
-
distance, almost never false-fire
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
97
|
+
distance, almost never false-fire, and trigger reliably when spoken. wakeforge
|
|
98
|
+
is the toolchain that builds such a detector from a single phrase —
|
|
99
|
+
synthesise data, train, evaluate, export, deploy. What counts as "almost
|
|
100
|
+
never" and "reliably" in numbers is in
|
|
101
|
+
[`docs/guides/expectations.md`](docs/guides/expectations.md), not repeated
|
|
102
|
+
here.
|
|
90
103
|
|
|
91
104
|
## Who is this for?
|
|
92
105
|
|
|
@@ -177,11 +190,11 @@ run with `uv run pytest`.
|
|
|
177
190
|
## Citation
|
|
178
191
|
|
|
179
192
|
```bibtex
|
|
180
|
-
@software{
|
|
181
|
-
title = {
|
|
193
|
+
@software{wakeforge,
|
|
194
|
+
title = {wakeforge: a research framework for on-device wake-word detection},
|
|
182
195
|
author = {TigreGotico contributors},
|
|
183
196
|
year = {2026},
|
|
184
|
-
url = {https://github.com/TigreGotico/
|
|
197
|
+
url = {https://github.com/TigreGotico/wakeforge},
|
|
185
198
|
note = {Funded by NGI0 Commons Fund / NLnet, grant 101135429}
|
|
186
199
|
}
|
|
187
200
|
```
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
# wakeforge
|
|
2
|
+
|
|
3
|
+
wakeforge is a research framework for **wake-word detection**. It implements
|
|
4
|
+
architectures, losses, and featurizers from the published wake-word
|
|
5
|
+
literature, so you can reproduce a paper's result or compare methods
|
|
6
|
+
side by side. Some included architectures exist to reproduce a published
|
|
7
|
+
result, not because they are the best default — the per-architecture pages
|
|
8
|
+
under `docs/reference/` say which is which. Train, evaluate, and export
|
|
9
|
+
lightweight on-device detectors that run anywhere from an ESP32 to a GPU
|
|
10
|
+
server. Every component exports to ONNX; production inference requires only
|
|
11
|
+
`onnxruntime` and `numpy` — no PyTorch at runtime.
|
|
12
|
+
|
|
13
|
+
An easy training run is not the same thing as a good detector. Loss going
|
|
14
|
+
down and a quickstart command exiting 0 prove the pipeline works, not that
|
|
15
|
+
the result is safe to ship — see
|
|
16
|
+
[`docs/guides/expectations.md`](docs/guides/expectations.md) for what a
|
|
17
|
+
deployable wake word actually looks like in false-accept and false-reject
|
|
18
|
+
numbers, and how much data each tier needs to get there.
|
|
8
19
|
|
|
9
20
|
## What is a wake word?
|
|
10
21
|
|
|
11
22
|
A short phrase ("hey jarvis", "computer", "alexa") that a device listens for
|
|
12
23
|
continuously. When detected, downstream STT/NLU runs. A useful detector must
|
|
13
24
|
run on tiny hardware (sub-100 KB, <10 % CPU, no internet), tolerate noise and
|
|
14
|
-
distance, almost never false-fire
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
distance, almost never false-fire, and trigger reliably when spoken. wakeforge
|
|
26
|
+
is the toolchain that builds such a detector from a single phrase —
|
|
27
|
+
synthesise data, train, evaluate, export, deploy. What counts as "almost
|
|
28
|
+
never" and "reliably" in numbers is in
|
|
29
|
+
[`docs/guides/expectations.md`](docs/guides/expectations.md), not repeated
|
|
30
|
+
here.
|
|
18
31
|
|
|
19
32
|
## Who is this for?
|
|
20
33
|
|
|
@@ -105,11 +118,11 @@ run with `uv run pytest`.
|
|
|
105
118
|
## Citation
|
|
106
119
|
|
|
107
120
|
```bibtex
|
|
108
|
-
@software{
|
|
109
|
-
title = {
|
|
121
|
+
@software{wakeforge,
|
|
122
|
+
title = {wakeforge: a research framework for on-device wake-word detection},
|
|
110
123
|
author = {TigreGotico contributors},
|
|
111
124
|
year = {2026},
|
|
112
|
-
url = {https://github.com/TigreGotico/
|
|
125
|
+
url = {https://github.com/TigreGotico/wakeforge},
|
|
113
126
|
note = {Funded by NGI0 Commons Fund / NLnet, grant 101135429}
|
|
114
127
|
}
|
|
115
128
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wakeforge
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2a2
|
|
4
4
|
Summary: Full training and research suite for wake words — MFCC to HuBERT, all exported to ONNX
|
|
5
5
|
Author-email: JarbasAi <jarbasai@mailfence.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -70,23 +70,36 @@ Requires-Dist: ovos-tts-plugin-edge-tts; extra == "notebooks"
|
|
|
70
70
|
Requires-Dist: vadonnx>=0.1.0; extra == "notebooks"
|
|
71
71
|
Dynamic: license-file
|
|
72
72
|
|
|
73
|
-
#
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
# wakeforge
|
|
74
|
+
|
|
75
|
+
wakeforge is a research framework for **wake-word detection**. It implements
|
|
76
|
+
architectures, losses, and featurizers from the published wake-word
|
|
77
|
+
literature, so you can reproduce a paper's result or compare methods
|
|
78
|
+
side by side. Some included architectures exist to reproduce a published
|
|
79
|
+
result, not because they are the best default — the per-architecture pages
|
|
80
|
+
under `docs/reference/` say which is which. Train, evaluate, and export
|
|
81
|
+
lightweight on-device detectors that run anywhere from an ESP32 to a GPU
|
|
82
|
+
server. Every component exports to ONNX; production inference requires only
|
|
83
|
+
`onnxruntime` and `numpy` — no PyTorch at runtime.
|
|
84
|
+
|
|
85
|
+
An easy training run is not the same thing as a good detector. Loss going
|
|
86
|
+
down and a quickstart command exiting 0 prove the pipeline works, not that
|
|
87
|
+
the result is safe to ship — see
|
|
88
|
+
[`docs/guides/expectations.md`](docs/guides/expectations.md) for what a
|
|
89
|
+
deployable wake word actually looks like in false-accept and false-reject
|
|
90
|
+
numbers, and how much data each tier needs to get there.
|
|
80
91
|
|
|
81
92
|
## What is a wake word?
|
|
82
93
|
|
|
83
94
|
A short phrase ("hey jarvis", "computer", "alexa") that a device listens for
|
|
84
95
|
continuously. When detected, downstream STT/NLU runs. A useful detector must
|
|
85
96
|
run on tiny hardware (sub-100 KB, <10 % CPU, no internet), tolerate noise and
|
|
86
|
-
distance, almost never false-fire
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
97
|
+
distance, almost never false-fire, and trigger reliably when spoken. wakeforge
|
|
98
|
+
is the toolchain that builds such a detector from a single phrase —
|
|
99
|
+
synthesise data, train, evaluate, export, deploy. What counts as "almost
|
|
100
|
+
never" and "reliably" in numbers is in
|
|
101
|
+
[`docs/guides/expectations.md`](docs/guides/expectations.md), not repeated
|
|
102
|
+
here.
|
|
90
103
|
|
|
91
104
|
## Who is this for?
|
|
92
105
|
|
|
@@ -177,11 +190,11 @@ run with `uv run pytest`.
|
|
|
177
190
|
## Citation
|
|
178
191
|
|
|
179
192
|
```bibtex
|
|
180
|
-
@software{
|
|
181
|
-
title = {
|
|
193
|
+
@software{wakeforge,
|
|
194
|
+
title = {wakeforge: a research framework for on-device wake-word detection},
|
|
182
195
|
author = {TigreGotico contributors},
|
|
183
196
|
year = {2026},
|
|
184
|
-
url = {https://github.com/TigreGotico/
|
|
197
|
+
url = {https://github.com/TigreGotico/wakeforge},
|
|
185
198
|
note = {Funded by NGI0 Commons Fund / NLnet, grant 101135429}
|
|
186
199
|
}
|
|
187
200
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|