memor-cli 0.4.0__tar.gz → 0.4.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.
- {memor_cli-0.4.0/memor_cli.egg-info → memor_cli-0.4.1}/PKG-INFO +1 -1
- memor_cli-0.4.1/memor/__init__.py +1 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/dashboard/static/index.html +55 -59
- {memor_cli-0.4.0 → memor_cli-0.4.1/memor_cli.egg-info}/PKG-INFO +1 -1
- {memor_cli-0.4.0 → memor_cli-0.4.1}/pyproject.toml +1 -1
- memor_cli-0.4.0/memor/__init__.py +0 -1
- {memor_cli-0.4.0 → memor_cli-0.4.1}/LICENSE +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/README.md +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/cli.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/daemon.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/dashboard/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/dashboard/server.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/distill/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/distill/distiller.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/distill/extractive.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/embed/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/embed/api.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/embed/fake.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/embed/local.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/baselines/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/baselines/base.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/baselines/claude_mem.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/baselines/graphiti.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/dataset.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/embed_benchmark.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/judge.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/metrics.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/eval/runner.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/feedback.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/hook_cli.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/hook_server.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/ingest/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/ingest/claude_code.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/ingest/documents.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/interfaces.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/llm/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/llm/anthropic.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/llm/base.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/llm/openai_compat.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/project.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/query_complexity.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/recall.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/redact.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/retrieve/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/retrieve/retriever.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/service.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/session_context.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/store/__init__.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/store/sqlite_store.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/tokencount.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/turn_metrics.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor/types.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor_cli.egg-info/SOURCES.txt +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor_cli.egg-info/dependency_links.txt +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor_cli.egg-info/entry_points.txt +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor_cli.egg-info/requires.txt +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/memor_cli.egg-info/top_level.txt +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/setup.cfg +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_cli_smoke.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_daemon.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_dashboard.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_dataset_builder.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_dimension_safety.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_distiller.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_embed.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_embed_benchmark.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_eval_ablation.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_eval_runner.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_external_baselines.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_extractive.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_feedback.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_hook.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_hook_server.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_hybrid_retrieval.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_ingest_claude_code.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_ingest_documents.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_install_hook.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_interfaces.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_judge.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_metrics.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_noise_filter.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_project_resolver.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_quality_gate.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_query_complexity.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_recall_core.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_redact.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_retriever.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_semantic_feedback.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_service.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_session_context.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_skill_recall.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_store.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_supersession.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_tokencount.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_turn_metrics.py +0 -0
- {memor_cli-0.4.0 → memor_cli-0.4.1}/tests/test_types.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.1"
|
|
@@ -172,6 +172,7 @@
|
|
|
172
172
|
background: var(--surface); border: 1px solid var(--border);
|
|
173
173
|
border-radius: var(--radius); padding: 22px 24px;
|
|
174
174
|
box-shadow: var(--card-shadow);
|
|
175
|
+
display: flex; flex-direction: column;
|
|
175
176
|
}
|
|
176
177
|
.chart-header {
|
|
177
178
|
display: flex; align-items: center; justify-content: space-between;
|
|
@@ -199,7 +200,7 @@
|
|
|
199
200
|
|
|
200
201
|
.bar-chart {
|
|
201
202
|
display: flex; align-items: flex-end; gap: 4px;
|
|
202
|
-
height: 180px; padding-top: 8px;
|
|
203
|
+
flex: 1; min-height: 180px; padding-top: 8px;
|
|
203
204
|
border-bottom: 1px solid var(--border-light);
|
|
204
205
|
}
|
|
205
206
|
.bar-group {
|
|
@@ -207,15 +208,16 @@
|
|
|
207
208
|
align-items: center; gap: 0; height: 100%;
|
|
208
209
|
justify-content: flex-end;
|
|
209
210
|
}
|
|
210
|
-
.bar-stack { display: flex; flex-direction: column-reverse; gap:
|
|
211
|
-
.bar-
|
|
212
|
-
.bar-
|
|
211
|
+
.bar-stack { display: flex; flex-direction: column-reverse; gap: 2px; width: 100%; max-width: 28px; flex: 1; align-items: center; justify-content: flex-end; }
|
|
212
|
+
.bar-cell { width: 16px; height: 10px; border-radius: 2px; transition: opacity 0.3s; }
|
|
213
|
+
.bar-cell-hit { background: var(--accent); }
|
|
214
|
+
.bar-cell-miss { background: var(--surface3); }
|
|
213
215
|
.bar-label {
|
|
214
216
|
font-size: 9px; color: var(--text-muted); margin-top: 6px;
|
|
215
217
|
text-align: center; white-space: nowrap;
|
|
216
218
|
}
|
|
217
219
|
|
|
218
|
-
.bar-group:hover .bar-
|
|
220
|
+
.bar-group:hover .bar-cell-hit { background: #f0a030; }
|
|
219
221
|
.bar-group { cursor: default; position: relative; }
|
|
220
222
|
.bar-tooltip {
|
|
221
223
|
display: none; position: absolute; bottom: calc(100% + 8px);
|
|
@@ -378,6 +380,33 @@
|
|
|
378
380
|
</div>
|
|
379
381
|
</section>
|
|
380
382
|
|
|
383
|
+
<!-- ── Token ROI hero ─────────────────────────────────── -->
|
|
384
|
+
<section>
|
|
385
|
+
<div class="chart-card" id="roi-card" style="display:none;">
|
|
386
|
+
<div style="display:flex;align-items:center;gap:20px;flex-wrap:wrap;">
|
|
387
|
+
<div>
|
|
388
|
+
<div class="chart-title" style="margin-bottom:4px;">Token ROI</div>
|
|
389
|
+
<div style="font-size:32px;font-weight:700;color:var(--ok);letter-spacing:-1px;" id="roi-value">–</div>
|
|
390
|
+
<div style="font-size:12px;color:var(--text-muted);margin-top:2px;" id="roi-desc">fewer tool calls when Memor injects context</div>
|
|
391
|
+
</div>
|
|
392
|
+
<div style="display:flex;gap:24px;flex:1;justify-content:flex-end;">
|
|
393
|
+
<div style="text-align:center;">
|
|
394
|
+
<div style="font-size:18px;font-weight:600;color:var(--text);" id="roi-tools-with">–</div>
|
|
395
|
+
<div style="font-size:10px;color:var(--text-muted);">avg tools/turn<br>with recall</div>
|
|
396
|
+
</div>
|
|
397
|
+
<div style="text-align:center;">
|
|
398
|
+
<div style="font-size:18px;font-weight:600;color:var(--text);" id="roi-tools-without">–</div>
|
|
399
|
+
<div style="font-size:10px;color:var(--text-muted);">avg tools/turn<br>without recall</div>
|
|
400
|
+
</div>
|
|
401
|
+
<div style="text-align:center;">
|
|
402
|
+
<div style="font-size:18px;font-weight:600;color:var(--text);" id="roi-turns">–</div>
|
|
403
|
+
<div style="font-size:10px;color:var(--text-muted);" id="roi-turns-sub">turns measured</div>
|
|
404
|
+
</div>
|
|
405
|
+
</div>
|
|
406
|
+
</div>
|
|
407
|
+
</div>
|
|
408
|
+
</section>
|
|
409
|
+
|
|
381
410
|
<!-- ── Recall trend chart ─────────────────────────────── -->
|
|
382
411
|
<section>
|
|
383
412
|
<div class="chart-grid">
|
|
@@ -426,32 +455,6 @@
|
|
|
426
455
|
</div>
|
|
427
456
|
</div>
|
|
428
457
|
</div>
|
|
429
|
-
<div class="chart-card">
|
|
430
|
-
<div class="chart-header">
|
|
431
|
-
<div class="chart-title">Token ROI</div>
|
|
432
|
-
</div>
|
|
433
|
-
<div id="roi-banner" style="display:none;background:var(--ok-dim);border:1px solid rgba(61,214,140,0.2);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:14px;">
|
|
434
|
-
<div style="font-size:22px;font-weight:700;color:var(--ok);letter-spacing:-0.5px;" id="roi-value">–</div>
|
|
435
|
-
<div style="font-size:11px;color:var(--text-muted);margin-top:2px;" id="roi-desc">fewer tool calls when Memor injects context</div>
|
|
436
|
-
</div>
|
|
437
|
-
<div class="side-stats" id="roi-side">
|
|
438
|
-
<div class="side-stat">
|
|
439
|
-
<div class="side-stat-label">Avg Tools / Turn (with recall)</div>
|
|
440
|
-
<div class="side-stat-value" id="roi-tools-with">–</div>
|
|
441
|
-
<div class="side-stat-sub">when Memor injected context</div>
|
|
442
|
-
</div>
|
|
443
|
-
<div class="side-stat">
|
|
444
|
-
<div class="side-stat-label">Avg Tools / Turn (without)</div>
|
|
445
|
-
<div class="side-stat-value" id="roi-tools-without">–</div>
|
|
446
|
-
<div class="side-stat-sub">when no context was injected</div>
|
|
447
|
-
</div>
|
|
448
|
-
<div class="side-stat">
|
|
449
|
-
<div class="side-stat-label">Turns Measured</div>
|
|
450
|
-
<div class="side-stat-value" id="roi-turns">–</div>
|
|
451
|
-
<div class="side-stat-sub" id="roi-turns-sub">with vs. without recall</div>
|
|
452
|
-
</div>
|
|
453
|
-
</div>
|
|
454
|
-
</div>
|
|
455
458
|
</div>
|
|
456
459
|
</section>
|
|
457
460
|
|
|
@@ -539,7 +542,7 @@
|
|
|
539
542
|
function badge(status) {
|
|
540
543
|
var map = {
|
|
541
544
|
ok: ['badge-ok', 'Success'],
|
|
542
|
-
extractive_only: ['badge-extractive','
|
|
545
|
+
extractive_only: ['badge-extractive','No Distill'],
|
|
543
546
|
no_hits: ['badge-no_hits', 'No Hits'],
|
|
544
547
|
};
|
|
545
548
|
var m = map[status] || ['badge-no_hits', status];
|
|
@@ -669,21 +672,20 @@
|
|
|
669
672
|
var recallsByDay = data.map(function(d) { return d.recalls; });
|
|
670
673
|
renderMiniBars('mb-recalls', recallsByDay);
|
|
671
674
|
|
|
675
|
+
var maxCells = 30;
|
|
672
676
|
data.forEach(function(d) {
|
|
673
|
-
var
|
|
674
|
-
var
|
|
675
|
-
var
|
|
676
|
-
var hitH = Math.max(0, pct * hitPct / 100);
|
|
677
|
-
var missH = Math.max(0, pct * missPct / 100);
|
|
677
|
+
var totalCells = Math.max(1, Math.round((d.recalls / maxRecalls) * maxCells));
|
|
678
|
+
var hitCells = Math.round((d.hits / d.recalls) * totalCells);
|
|
679
|
+
var missCells = totalCells - hitCells;
|
|
678
680
|
|
|
679
681
|
var dayStr = d.day.slice(5);
|
|
680
682
|
var group = el('div', {class: 'bar-group'});
|
|
683
|
+
var cells = '';
|
|
684
|
+
for (var i = 0; i < hitCells; i++) cells += '<div class="bar-cell bar-cell-hit"></div>';
|
|
685
|
+
for (var i = 0; i < missCells; i++) cells += '<div class="bar-cell bar-cell-miss"></div>';
|
|
681
686
|
group.innerHTML =
|
|
682
687
|
'<div class="bar-tooltip">' + esc(d.day) + '<br>' + d.recalls + ' recalls · ' + (d.hits||0) + ' hits</div>' +
|
|
683
|
-
'<div class="bar-stack">' +
|
|
684
|
-
'<div class="bar-hits" style="height:' + hitH + '%"></div>' +
|
|
685
|
-
'<div class="bar-miss" style="height:' + missH + '%"></div>' +
|
|
686
|
-
'</div>' +
|
|
688
|
+
'<div class="bar-stack">' + cells + '</div>' +
|
|
687
689
|
'<div class="bar-label">' + dayStr + '</div>';
|
|
688
690
|
container.appendChild(group);
|
|
689
691
|
});
|
|
@@ -725,7 +727,7 @@
|
|
|
725
727
|
document.getElementById('th-col3').textContent = 'Avg Score';
|
|
726
728
|
document.getElementById('th-col4').textContent = 'OK';
|
|
727
729
|
document.getElementById('th-col5').textContent = 'No Hits';
|
|
728
|
-
document.getElementById('th-col6').textContent = '
|
|
730
|
+
document.getElementById('th-col6').textContent = 'No Distill';
|
|
729
731
|
}
|
|
730
732
|
|
|
731
733
|
sorted.forEach(function(row) {
|
|
@@ -809,33 +811,27 @@
|
|
|
809
811
|
|
|
810
812
|
/* ── ROI renderer ─────────────────────────────────────── */
|
|
811
813
|
function renderROI(data) {
|
|
814
|
+
var card = document.getElementById('roi-card');
|
|
815
|
+
var roiValue = document.getElementById('roi-value');
|
|
816
|
+
var roiDesc = document.getElementById('roi-desc');
|
|
817
|
+
|
|
812
818
|
document.getElementById('roi-tools-with').textContent = data.avg_tools_with_recall;
|
|
813
819
|
document.getElementById('roi-tools-without').textContent = data.avg_tools_without_recall;
|
|
814
|
-
|
|
815
|
-
|
|
820
|
+
var totalTurns = data.turns_with_recall + data.turns_without_recall;
|
|
821
|
+
document.getElementById('roi-turns').textContent = totalTurns.toLocaleString();
|
|
816
822
|
document.getElementById('roi-turns-sub').textContent =
|
|
817
|
-
data.turns_with_recall + ' with
|
|
818
|
-
|
|
819
|
-
var banner = document.getElementById('roi-banner');
|
|
820
|
-
var roiValue = document.getElementById('roi-value');
|
|
821
|
-
var roiDesc = document.getElementById('roi-desc');
|
|
822
|
-
banner.style.display = 'none';
|
|
823
|
-
banner.style.background = 'var(--ok-dim)';
|
|
824
|
-
banner.style.borderColor = 'rgba(61,214,140,0.2)';
|
|
825
|
-
roiValue.style.color = 'var(--ok)';
|
|
826
|
-
roiValue.textContent = '–';
|
|
827
|
-
roiDesc.textContent = 'fewer tool calls when Memor injects context';
|
|
823
|
+
data.turns_with_recall + ' with · ' + data.turns_without_recall + ' without';
|
|
828
824
|
|
|
829
825
|
if (data.tool_call_reduction_pct > 0 && data.turns_with_recall >= 5 && data.turns_without_recall >= 5) {
|
|
830
826
|
roiValue.textContent = data.tool_call_reduction_pct + '% fewer';
|
|
831
|
-
|
|
827
|
+
roiValue.style.color = 'var(--ok)';
|
|
828
|
+
roiDesc.textContent = 'fewer tool calls when Memor injects context';
|
|
829
|
+
card.style.display = 'block';
|
|
832
830
|
} else if (data.tool_call_reduction_pct < 0 && data.turns_with_recall >= 5) {
|
|
833
831
|
roiValue.textContent = Math.abs(data.tool_call_reduction_pct) + '% more';
|
|
834
832
|
roiValue.style.color = 'var(--warn)';
|
|
835
833
|
roiDesc.textContent = 'tool calls with recall — investigating...';
|
|
836
|
-
|
|
837
|
-
banner.style.background = 'var(--warn-dim)';
|
|
838
|
-
banner.style.borderColor = 'rgba(232,147,32,0.2)';
|
|
834
|
+
card.style.display = 'block';
|
|
839
835
|
}
|
|
840
836
|
}
|
|
841
837
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.4.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|