Zero-label structural motion search and compression. ZPE-MoCap deterministic codec/search package.
Project description
ZPE-Mocap
What This Is
ZPE-Mocap applies the ZPE deterministic 8-primitive encoding architecture to motion-capture data — compression, search, and retrieval for spatial-temporal skeletal signals.
Real-data results (CMU fixture, 10 BVH clips): 18.77× compression, 32.45 mm MPJPE, 82.51° angle RMSE. Evidence: proofs/artifacts/2026-04-14_cmu_corpus_benchmark/.
Synthetic-corpus results (identity encoding): 85.19× compression, 1.19 mm MPJPE, 1.16e-07° angle RMSE, p@10 = 1.0 search, 26.14 ms p95 latency. Evidence: proofs/artifacts/2026-02-20_zpe_mocap_wave1/. The synthetic corpus is pre-tokenized from the codec's own alphabet — the encoder passes tokens through unchanged, so these numbers represent a theoretical ceiling, not operational performance.
Animation studios, game engines, and motion-data infrastructure teams evaluating deterministic mocap compression should benchmark against the CMU fixture numbers (18.77×, 32.45 mm). The gap to commercial readiness is real-world fidelity improvement and broader corpus validation.
Readiness: staged. Real-data compression demonstrated (18.77×) but fidelity is not production-grade (32.45 mm MPJPE). No Blender runtime pass, no CMU commercialization-safe closure, no clean-clone verification exist.
Not claimed: Production-grade fidelity on real data, real-data parity with synthetic benchmarks, fair competitive benchmarks (ACL comparison is circular), Blender runtime compatibility, clean-clone verification, commercialization-safe closure.
| Proof anchor | Location |
|---|---|
| Wave1 evidence bundle | proofs/artifacts/2026-02-20_zpe_mocap_wave1/ |
| Compression / fidelity / search / latency | wave1 bundle artifacts |
| Falsification results | wave1 bundle |
Part of the Zer0pa family. Platform layer: ZPE-IMC.
What This Is
Deterministic mocap compression and retrieval. CMU fixture corpus: 18.77× compression, 32.45 mm MPJPE across 10 real BVH clips. Synthetic corpus (identity encoding): 85.19× compression, 1.19 mm MPJPE. Compress, search, and retrieve skeletal motion data without decompression.
ZPE-Mocap targets animation pipeline teams and mocap-data infrastructure where studios archive terabytes of BVH/FBX data that can only be queried after full decompression. This codec indexes motion during encoding — downstream search never touches the raw stream.
| Question | Answer |
|---|---|
| What is this? | A deterministic mocap compression and retrieval reference stack backed by a synthetic corpus with preserved proof lineage. |
| What is the current authority state? | Imported 2026-02-20_zpe_mocap_wave1 synthetic-corpus proof bundle; no new run-of-record has been accepted inside this repo boundary. |
| What is actually proved? | CMU fixture-corpus compression (18.77×, 32.45 mm MPJPE, 82.51° RMSE) and synthetic-corpus metrics (85.19× compression, 1.19 mm MPJPE — identity encoding). The synthetic numbers are a theoretical ceiling due to pre-tokenized data bypassing quantization. |
| What is not being claimed? | No real-data parity with synthetic benchmarks (identity encoding inflates synthetic numbers). No fair competitive benchmark (ACL comparison is circular — fed synthetic data from ZPE tokens). No CMU-backed commercialization-safe closure, no Blender runtime pass, and no clean-clone verification. The bundle is historical and may retain machine-absolute paths. |
| Where should an outsider acquire and verify? | Clone https://github.com/Zer0pa/ZPE-Mocap.git, run the quick verify path below, and inspect proofs/artifacts/2026-02-20_zpe_mocap_wave1/ as the authority surface. |
| Field | Value |
|---|---|
| Architecture | SKELETON_MANIFOLD |
| Encoding | JOINT_ANGLE_V2 |
Key Metrics
CMU fixture corpus (10 real BVH clips):
| Metric | Value | Notes |
|---|---|---|
| COMPRESSION | 18.77× | vs raw BVH float32 (range 15.2×–23.0×) |
| MPJPE | 32.45 mm | mean per-joint position error |
| ANGLE RMSE | 82.51° | mean joint-angle RMSE |
Source:
results.json,summary.md
Synthetic corpus (pre-tokenized from codec alphabet):
| Metric | Value | Notes |
|---|---|---|
| COMPRESSION | 85.19× | identity encoding — synthetic tokens pass through encoder unchanged |
| MPJPE | 1.19 mm | synthetic corpus only |
| ANGLE RMSE | 1.16e-07° | synthetic corpus only |
| SEARCH | p@10 1.0 | — |
| LATENCY | 26.14 ms | p95 query latency |
Source:
mocap_compression_benchmark.json,mocap_position_fidelity.json,mocap_search_eval.json,mocap_query_latency.json
Why the gap? The synthetic corpus is pre-tokenized from the codec's own 8-direction alphabet (
synthetic.pypopulatesxy_tokens,xz_tokens,magnitudes_mmdirectly). When these fields are present, the encoder short-circuits quantization (codec.py:189-195) and passes tokens through unchanged — an identity encoding. Real BVH data must be quantized from continuous joint positions, which introduces quantization error. The synthetic numbers represent a theoretical ceiling, not operational fidelity.
Competitive Benchmarks
Circular methodology disclosure: The ACL comparison below was run on the synthetic corpus. The synthetic BVH was generated FROM ZPE tokens (the codec's own 8-direction alphabet), not from independent real BVH data. Both ZPE-Mocap and ACL were fed the same synthetic clips, but the data structurally favours ZPE-Mocap because it was generated from the ZPE token vocabulary. This comparison does not reflect real-world competitive performance. A fair comparison would require both codecs to compress the same independent BVH corpus (e.g., CMU).
Selected clips from the 10-clip direct comparator on the synthetic BVH corpus. The mean row covers all 10 compared clips.
| Clip | ZPE-Mocap | ACL | Win ratio |
|---|---|---|---|
| walk_0000 | 61.0× | 17.1× | 3.6× |
| run_0000 | 60.9× | 14.7× | 4.1× |
| jump_0000 | 52.6× | 12.3× | 4.3× |
| fall_recover_0000 | 77.8× | 15.2× | 5.1× |
| Mean | 57.0× | 19.1× | 3.0× |
Source:
acl_direct_comparator_table.json
Synthetic corpus — general-purpose compressor comparison:
| Tool | Synthetic Corpus CR | Notes |
|---|---|---|
| ZPE-Mocap | 85.19× | Synthetic benchmark (identity encoding) |
| gzip | 69.70× | ~22% behind ZPE on same synthetic corpus |
ZPE-Mocap exceeds gzip by ~22% on the synthetic corpus. This margin is considerably narrower than the ACL comparison above. Real-world corpus validation (CMU, AMASS) is pending.
CMU fixture corpus (real BVH) — compression only:
| Corpus | Mean CR | Range | Source |
|---|---|---|---|
| CMU fixture (10 clips) | 18.77× | 15.2×–23.0× | 2026-04-14 benchmark |
No ACL comparison has been run on the CMU fixture corpus.
What We Prove
Auditable guarantees backed by committed proof artifacts. Start at
AUDITOR_PLAYBOOK.md.
- Synthetic-corpus compression at 85.19× (identity encoding — tokens pass through unchanged)
- Synthetic joint-angle fidelity at 1.16e-07° RMSE (identity encoding)
- Synthetic positional fidelity at 1.19 mm MPJPE (identity encoding)
- Synthetic search ranking at p@10 = 1.0
- Synthetic query latency at 26.14 ms p95
- CMU fixture-corpus compression at 18.77× mean across 10 real BVH clips
- CMU fixture-corpus positional fidelity at 32.45 mm MPJPE
- CMU fixture-corpus joint-angle fidelity at 82.51° RMSE
What We Don't Claim
- Real-data parity with synthetic benchmarks — the synthetic corpus is pre-tokenized from the codec's own 8-direction alphabet, producing an identity encoding. Real BVH data produces substantially different fidelity (32.45 mm vs 1.19 mm MPJPE; 82.51° vs 1.16e-07° angle RMSE; 18.77× vs 85.19× compression).
- Fair competitive benchmarks — the ACL comparison used synthetic data generated from ZPE tokens, not independent BVH. This is circular methodology.
- Release readiness
- Production motion-pipeline integration
- Blender or Maya plugin support
Commercial Readiness
| Field | Value |
|---|---|
| Verdict | CONDITIONAL — synthetic only |
| Commit SHA | 34d94f1f29b4 |
| Confidence | Synthetic PASS; real-data fidelity FAIL (32.45 mm MPJPE, 82.51° angle RMSE) |
| Source | proofs/artifacts/2026-02-20_zpe_mocap_wave1/quality_gate_scorecard.json, proofs/artifacts/2026-04-14_cmu_corpus_benchmark/summary.md |
Evaluators: Synthetic-corpus wave-1 PASS (identity encoding). CMU fixture corpus shows 18.77× compression but 32.45 mm MPJPE and 82.51° angle RMSE — not production-grade fidelity. Real-corpus validation is the remaining gate.
pip install -e ./codeto evaluate. Contact hello@zer0pa.com for real-corpus evaluation access.
Tests and Verification
| Code | Check | Verdict |
|---|---|---|
| V_01 | Synthetic compression benchmark | PASS |
| V_02 | Joint-angle fidelity | PASS |
| V_03 | Position fidelity | PASS |
| V_04 | Search ranking | PASS |
| V_05 | Query latency | PASS |
| V_06 | Commercialization claim adjudication | CONDITIONAL — synthetic PASS, real-data fidelity gap open |
| V_07 | Integration readiness contract | INC |
Proof Anchors
| Path | State |
|---|---|
proofs/artifacts/2026-02-20_zpe_mocap_wave1/mocap_compression_benchmark.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/mocap_joint_fidelity.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/mocap_position_fidelity.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/mocap_search_eval.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/mocap_query_latency.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/quality_gate_scorecard.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/commercialization_claim_adjudication.json |
VERIFIED |
proofs/artifacts/2026-02-20_zpe_mocap_wave1/integration_readiness_contract.json |
PARTIAL |
proofs/artifacts/2026-04-14_cmu_corpus_benchmark/results.json |
VERIFIED |
proofs/artifacts/2026-04-14_cmu_corpus_benchmark/summary.md |
VERIFIED |
Repo Shape
| Field | Value |
|---|---|
| Proof Anchors | 10 |
| Modality Lanes | 1 |
| Authority Source | proofs/artifacts/2026-02-20_zpe_mocap_wave1/quality_gate_scorecard.json |
Quick Start
Quick Verify
Use the clone/install path below as repository verification guidance, not packaged public-release guidance.
git clone https://github.com/Zer0pa/ZPE-Mocap.git
cd ZPE-Mocap
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ./code
python -m unittest discover -s code/tests -v
python - <<'PY'
from zpe_mocap.codec import decode_zpmoc, encode_clip
from zpe_mocap.synthetic import generate_clip
clip = generate_clip(
clip_id="readme_smoke",
label="walk",
frames=120,
fps=60,
seed=20260220,
noise_scale=0.0002,
)
enc = encode_clip(clip, seed=20260220)
dec = decode_zpmoc(enc.payload)
print(enc.compression_ratio, dec.clip_id)
PY
Expected outputs:
python -m unittest discover -s code/tests -vcompletes locally after the editable install.- The smoke snippet prints a compression ratio and returns
readme_smokeas the decoded clip id. - Evidence remains anchored in
proofs/artifacts/2026-02-20_zpe_mocap_wave1/.
Shortest outsider path:
docs/README.md |
docs/ARCHITECTURE.md |
AUDITOR_PLAYBOOK.md |
License Boundary
- Free tier boundary: annual gross revenue at or below USD 100M under SAL v6.2.
- SPDX tag:
LicenseRef-Zer0pa-SAL-6.0. - Commercial or hosted use above threshold must follow the contact and enforcement terms in LICENSE.
Ecosystem
| Workstream | Route | Notes |
|---|---|---|
| ZPE-Mocap | github.com/Zer0pa/ZPE-Mocap | This motion-capture compression and retrieval workstream. |
| ZPE-IMC | github.com/Zer0pa/ZPE-IMC | Portfolio reference repo reused for documentation and structure alignment. |
| ZPE-XR | github.com/Zer0pa/ZPE-XR | Adjacent spatial-media workstream in the ZPE portfolio. |
| ZPE-Robotics | github.com/Zer0pa/ZPE-Robotics | Sibling workstream for robotics motion and control surfaces. |
| ZPE-Bio | github.com/Zer0pa/ZPE-Bio | Another proof-anchored codec workstream in the same portfolio. |
Observability: Comet dashboard (public)
Who This Is For
| Ideal first buyer | Animation pipeline or mocap-data infrastructure team evaluating deterministic compression with search for motion archives |
| Pain | Studios archive terabytes of BVH/FBX data that can only be queried after full decompression — storage costs climb, retrieval is slow |
| Deployment | Python reference implementation (pip install -e ./code). Public repo, not a packaged release |
| Family position | Proves ZPE encoding applicability to motion-capture and spatial-temporal signal domains. Staged/validation tier alongside Neuro, Prosody, and Bio |
Runtime Proof (Wave-1)
The only promoted proof surface is the imported 2026-02-20_zpe_mocap_wave1 synthetic-corpus bundle. No clean-clone verification, Blender runtime pass, or CMU-backed closure is promoted beyond this evidence.
Evidence bundle2026-02-20_zpe_mocap_wave1Imported synthetic-corpus proof artifacts retained for lineage and current claims. |
Runtime boundarypython reference onlyNo Blender runtime verification or clean-clone replay is promoted here. |
Historical Authority Surface
Accepted authority bundle2026-02-20_zpe_mocap_wave1Imported synthetic-corpus evidence bundle. No later run-of-record is promoted. |
Backend truthbackend=pythonPython reference implementation; no compiled runtime authority is claimed here. |
Performance authority CMU fixture (real): mean_cr=18.77, mpjpe_mean_mm=32.45, angle_rmse_deg=82.51Synthetic (identity): mean_cr=85.19, mpjpe_mean_mm=1.19, query_latency_p95_ms=26.14Synthetic metrics are a theoretical ceiling (identity encoding). CMU fixture metrics are the operational benchmark. |
| Surface | Locked value | Why it matters |
|---|---|---|
| Authority bundle | proofs/artifacts/2026-02-20_zpe_mocap_wave1/ |
Current proof surface for all promoted metrics. |
| Corpus type | synthetic |
All current claims are synthetic-corpus claims; no CMU-backed closure is promoted. |
| Compression ratio | zpmoc_mean_cr=85.1893 |
Synthetic-corpus mean compression ratio from the wave1 benchmark artifact. |
| Joint-angle fidelity | joint_angle_rmse_deg≈1.16e-07 |
Synthetic joint-angle RMSE for wave1 fidelity tests. |
| Position fidelity | mpjpe_mean_mm=1.1901 |
Synthetic mean per-joint position error from wave1. |
| Search ranking | p_at_10=1.0 |
Synthetic search evaluation for the wave1 corpus. |
| Query latency | query_latency_p95_ms=26.1375 |
Synthetic query latency p95 from the wave1 benchmark. |
| ACL comparator | zpmoc_mean_ratio=57.0328, acl_mean_ratio_same_raw_bvh32=19.1487 |
Circular methodology: ACL comparator captured on synthetic BVH generated from ZPE tokens, not independent real data. This structurally favours ZPE-Mocap and does not reflect real-world competitive performance. |
| External acquisition surface | https://github.com/Zer0pa/ZPE-Mocap.git |
Public clone target for this repo. |
Authority Notes
| The imported wave1 bundle is the current authority surface; no later run-of-record has been re-accepted inside this repo boundary. | Blender runtime verification remains unpromoted; existing compatibility notes are simulated only. | CMU-backed commercialization-safe closure and clean-clone verification remain gaps and are explicitly not claimed. |
Proof Anchor Notes
| Proof rung | Locked value | What it proves now |
|---|---|---|
| CMU fixture compression | mean_cr=18.77 |
Compression ratio on 10 real CMU BVH clips. Operational benchmark. |
| CMU fixture position fidelity | mpjpe_mean_mm=32.45 |
Mean per-joint position error on real CMU data. Not production-grade. |
| CMU fixture angle fidelity | angle_rmse_deg=82.51 |
Joint-angle RMSE on real CMU data. Not production-grade. |
| Synthetic compression | zpmoc_mean_cr=85.1893 |
Compression ratio on the synthetic corpus (identity encoding — theoretical ceiling). |
| Synthetic joint fidelity | joint_angle_rmse_deg≈1.16e-07 |
Joint-angle RMSE on the synthetic corpus (identity encoding — theoretical ceiling). |
| Synthetic position fidelity | mpjpe_mean_mm=1.1901 |
Mean per-joint position error on the synthetic corpus (identity encoding — theoretical ceiling). |
| Synthetic search ranking | p_at_10=1.0 |
Search evaluation at p@10 on the synthetic corpus. |
| Synthetic query latency | query_latency_p95_ms=26.1375 |
p95 query latency for the synthetic corpus. |
Modality Status Snapshot
ZPE-Mocap is a motion-capture sector. The status below reports only the synthetic-corpus evidence that exists today and marks the missing Blender, CMU, and clean-clone gates.
| Surface | Status | Proved now | Boundary and evidence |
|---|---|---|---|
| Compression | AMBER |
CMU fixture: 18.77× (real). Synthetic: 85.19× (identity encoding). | Real-data compression is proven but substantially below synthetic headline. Synthetic zpmoc_mean_cr=85.1893 is identity encoding (theoretical ceiling). |
| Joint-angle fidelity | RED |
CMU fixture: 82.51° RMSE (real). Synthetic: 1.16e-07° (identity encoding). | Real-data angle RMSE is not production-grade. Synthetic value is meaningless as an operational metric (identity encoding). |
| Position fidelity | RED |
CMU fixture: 32.45 mm MPJPE (real). Synthetic: 1.19 mm (identity encoding). | Real-data MPJPE is not production-grade. Synthetic value is identity encoding (theoretical ceiling). |
| Search ranking | GREEN |
Synthetic search evaluation in wave1. | p_at_10=1.0 in mocap_search_eval.json. |
| Query latency | GREEN |
Synthetic latency p95 in wave1. | query_latency_p95_ms=26.1375 in mocap_query_latency.json. |
| Blender runtime | RED |
No Blender runtime proof is promoted. | Compatibility notes remain simulated only. |
| CMU closure | RED |
No CMU-backed commercialization-safe closure. | Workspace CMU clone lacks usable corpus files. |
| Clean-clone verification | RED |
No clean-clone verification has been run from this repo boundary. | Evidence remains imported and unrerun in this repo. |
Throughput
No throughput benchmark is promoted. Performance summary:
|
Compression ratio CMU fixture (real): mean_cr=18.77Synthetic (identity): mean_cr=85.19CMU fixture is the operational benchmark. Synthetic is identity encoding (theoretical ceiling). |
Query latency p95query_latency_p95_ms=26.1375Synthetic query latency p95 from wave1. |
| Measure | Locked value | Meaning |
|---|---|---|
| Latency unit | ms (p95) |
All latency values are p95 in milliseconds. |
| Compression ratio (CMU real) | mean_cr=18.77 |
Mean compression ratio on 10 real CMU BVH clips. Operational benchmark. |
| Compression ratio (synthetic) | zpmoc_mean_cr=85.1893 |
Mean compression ratio on the synthetic corpus (identity encoding — theoretical ceiling). |
| Query latency p95 | query_latency_p95_ms=26.1375 |
Search query latency p95 on the synthetic corpus. |
Public ML Workbooks
No public ML workbook is promoted for ZPE-Mocap at this time. All promoted evidence remains in the local wave1 proof bundle under proofs/artifacts/2026-02-20_zpe_mocap_wave1/.
| Role | Run name | Workbook |
|---|---|---|
| Current promoted public twin | NONE |
NOT_PUBLISHED |
| Historical lineage | 2026-02-20_zpe_mocap_wave1 |
LOCAL_BUNDLE_ONLY |
Go Next
| If you need to... | Open this |
|---|---|
| Understand the runtime map and authority classes | docs/ARCHITECTURE.md |
| Navigate the documentation surface | docs/README.md |
| Read legal and lane-specific public boundaries | docs/LEGAL_BOUNDARIES.md |
| Audit historical compatibility and replay boundaries | AUDITOR_PLAYBOOK.md |
| Read public audit limits and explicit non-claims | PUBLIC_AUDIT_LIMITS.md |
| Inspect proof artifacts and logs directly | proofs/ |
| Area | Purpose |
|---|---|
README.md, CONTRIBUTING.md, SECURITY.md, SUPPORT.md, LICENSE |
Root governance and release-facing metadata |
code/ |
Installable package and codec implementation surface |
docs/ |
Architecture, legal boundaries, support, and documentation routing |
proofs/ |
Proof corpus, baselines, and falsification evidence |
Open Risks (Non-Blocking)
- Synthetic benchmark circularity: All synthetic metrics (85.19× compression, 1.19 mm MPJPE, 1.16e-07° RMSE) are produced by identity encoding — the synthetic corpus is pre-tokenized from the codec's own alphabet, so the encoder passes tokens through unchanged. These numbers are a theoretical ceiling, not operational fidelity.
- ACL comparison circularity: The ACL direct comparator was run on synthetic BVH generated from ZPE tokens, not independent real data. The "3× win" is structurally inflated.
- Real-data fidelity gap: CMU fixture corpus shows 32.45 mm MPJPE and 82.51° angle RMSE — substantially worse than synthetic numbers and not production-grade.
- Blender runtime proof remains unpromoted; compatibility notes are simulated only.
- CMU-backed commercialization-safe closure is not available in this repo boundary.
- Clean-clone verification has not been executed from this repo.
- Historical artifacts can retain machine-absolute paths from the 2026-02-20 bundle.
- No public ML workbook has been published for this repo; evidence is local to the wave1 bundle.
Contributing, Security, Support
Contribution workflow: CONTRIBUTING.md |
Security policy and reporting: SECURITY.md |
User support channel guide: docs/SUPPORT.md |
Documentation index: docs/README.md |
Autonomous agents and AI systems using this repository are subject to Section 6 of the Zer0pa SAL v6.2. | |
Ecosystem Cross-Links
ZPE-IMC— reference repo for shared repository structure and documentation alignment.code/README.md— installable package surface for the ZPE-Mocap workstream.docs/README.md— documentation router for architecture, legal boundaries, and support surfaces.proofs/README.md— proof-corpus entrypoint for the evidence carried inside this repo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zpe_mocap-0.1.0.tar.gz.
File metadata
- Download URL: zpe_mocap-0.1.0.tar.gz
- Upload date:
- Size: 57.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
054d169892a83954229cd069c704c0698af274ed7e9f714aaedfab00e6c20e6a
|
|
| MD5 |
1bfaa7612076a0b3f5c79e3b9c9ebaea
|
|
| BLAKE2b-256 |
796bb3aa0540c740e0f2a6d9c2141a7d6197d62e0ed34ad39db87ce870d07742
|
File details
Details for the file zpe_mocap-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zpe_mocap-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56d8439d9def14d500e72a3fed6ed3726811744a04a959c6d8258e3670abe0dd
|
|
| MD5 |
9092e65361a147f2a218c8ebbe980968
|
|
| BLAKE2b-256 |
bff2e7c9eb47c29dfc602ca25a10f807fcb1bd893b74d997f0dc566e87b60af5
|