From 793ed1f2dcd3cdebb2764e9073103e4d7d8bbdd8 Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Wed, 4 Nov 2026 23:09:19 -0500 Subject: [PATCH] wai/one-way-delivery, converted to the layout of the fix: no shared append point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The change of wai/one-way-delivery (f1258784d..987625394, 28 commits), on the fix branch: its changelog entries as files of wai/changes/, its wai-conformance.yml edits as step files, corpus files and test tags, and every other file as the branch has it. - 25240c4f0 wai: timeliness — when each object of a group is of use, and whether each holder held it in time - c84992362 wai: timeliness_verify.py — the timeliness corpus's second implementation - 44036fcdc wai: timeliness in the registry, SPEC §5, the changelog and CI; http_receipts.py checks its claims - 27ce6754c wai: claim_verify.py lists not-held-by-deadline, and the claim corpus holds a session that switches for it - 73d8d8eb9 wai: timeliness corpus — each holder's own line in key order, a holder's earliest fallback, and §7.2–§7.3's unreached plan rules - 64c735f0c wai: the files timeliness changes are clippy-clean — a let chain, and the fetch callback's type allowed - b72dc36bf wai: rung price — what delivering a rung costs, by bearer and direction, and which option a comparer takes - 4e905e213 wai: rung_price_verify.py — the rung price corpus's second implementation - 711fa6126 wai: rung price in the registry, SPEC §5, the changelog and CI - 8ab70654e wai: rung price corpus — a refusal for every form rule 1 and §6.1 set, and the neighbour order a plan gives - 1bc465959 wai: rung price ranks energy by checked evidence — a class counts only on the seller's own per-hop records, current and under a confirmed key - 9e97997d9 wai: rung_price — the evidence text bound at its exact sizes, and a key confirmed for another class confirming nothing - 8f1168683 wai: rung price corpus — a key confirmed for another class, the uncertainty product, each edge and order of the evidence verdict, and the evidence a plan read - 7330e26ff wai: rung price — §6.1 links jwp-receipts at its first mention, and §10 says a record's age is its room's word - 12c099457 wai: cache authority — who served what a node holds, and on whose authority - f8f5d3e09 wai: cache_authority_verify.py — the cache authority corpus's second implementation - 354146619 wai: cache authority in the registry, SPEC §5, the changelog and CI; its corpus holds what §12 states - 55c7f3031 wai: timeliness §6 reads holdings records alone; cache-authority §9 derives the lines that read every kind - b8fc6f02b wai: cache authority's lines read records as timeliness does, its deadline claim meets the envelopes held, and its corpus fixes each order and instant - 91c5291cf wai: the files cache authority changes are clippy-clean — a boxed envelope, the base's names named once, slices borrowed - 8e479daff wai: a held envelope boxes both its forms, so neither outweighs the other - 3ec8da807 wai: impression aggregates — ad presentations counted over a bearer with no return path - 0433a35c3 wai: impression_aggregate_verify.py — the impression aggregates corpus's second implementation - 7d8e150e4 wai: impression aggregates in the registry, SPEC §5, the changelog and CI; its corpus states each receipt whole and a control for every malformed file - d5e8ace02 wai: impression aggregates' size bounds are checked at their edge, and §4.3's decides no outcome - 4bc8e13bd wai: impression aggregates' table totals are exact, and a receipt given twice is checked when either occurrence was - 3c9f20524 wai: key_log's two result enums keep their public form, and say so to clippy - 987625394 wai: Item::with_authority and Count::instance_received build only with the feature that calls each Co-Authored-By: Claude Opus 5.5 --- .../verifiers/cache-authority.sh | 33 + .../verifiers/impression-aggregates.sh | 33 + .../wai-conformance/verifiers/rung-price.sh | 32 + .github/wai-conformance/verifiers/takedown.sh | 5 +- .../wai-conformance/verifiers/timeliness.sh | 29 + wai/REGISTRY.md | 15 +- wai/SPEC.md | 61 +- ...ad-presentations-counted-over-bearer-no.md | 62 + ...-delivering-rung-costs-bearer-direction.md | 37 + ...ject-still-worth-delivering-whether-was.md | 56 + ...11-03-served-node-holds-whose-authority.md | 56 + wai/claim-conformance/README.md | 10 +- wai/claim-conformance/claim_verify.py | 203 +- wai/claim-conformance/vectors.json | 160 + wai/extensions/bearer-receipts.md | 9 +- wai/extensions/cache-authority.md | 734 + wai/extensions/carousel.md | 4 + wai/extensions/delivery-telemetry.md | 4 +- wai/extensions/holdings.md | 4 +- wai/extensions/http-delivery.md | 14 +- wai/extensions/impression-aggregates.md | 707 + wai/extensions/jwp-receipts.md | 121 +- wai/extensions/moq-streaming-format.md | 2 + wai/extensions/rung-price.md | 727 + wai/extensions/settlement.md | 2 + wai/extensions/takedown.md | 21 +- wai/extensions/telemetry-aggregation.md | 21 +- wai/extensions/timeliness.md | 608 + wai/http-conformance/http_receipts.py | 45 + wai/live-conformance/README.md | 4 + .../cache-authority/README.md | 46 + .../cache-authority/vectors.json | 17591 ++++++++++++ .../cache_authority_verify.py | 940 + .../impression_aggregate_verify.py | 1493 + wai/live-conformance/impressions/README.md | 70 + wai/live-conformance/impressions/vectors.json | 15523 ++++++++++ wai/live-conformance/prices/README.md | 66 + wai/live-conformance/prices/vectors.json | 10908 +++++++ wai/live-conformance/rung_price_verify.py | 1310 + .../stitched_presentation_verify.py | 7 +- wai/live-conformance/takedown/README.md | 10 +- wai/live-conformance/takedown/vectors.json | 323 + wai/live-conformance/takedown_verify.py | 38 +- .../telemetry_aggregate_verify.py | 32 +- wai/live-conformance/timeliness/README.md | 63 + wai/live-conformance/timeliness/vectors.json | 23550 ++++++++++++++++ wai/live-conformance/timeliness_verify.py | 871 + wai/registry/capabilities.json | 98 + wai/registry/capabilities.schema.json | 3 +- wai/signer-conformance/signer_verify.py | 2 +- wai/vocab/v2.ttl | 28 + wai/wai-rs/Cargo.toml | 76 + wai/wai-rs/src/bearer_receipts.rs | 169 +- .../src/bin/wai_cache_authority_vectors.rs | 75 + .../bin/wai_impression_aggregate_vectors.rs | 76 + wai/wai-rs/src/bin/wai_rung_price_vectors.rs | 74 + wai/wai-rs/src/bin/wai_timeliness_vectors.rs | 74 + wai/wai-rs/src/cache_authority.rs | 1072 + wai/wai-rs/src/cache_authority/corpus.rs | 2162 ++ wai/wai-rs/src/carousel.rs | 119 +- wai/wai-rs/src/claim_receipt.rs | 132 +- wai/wai-rs/src/claim_receipt/bearer.rs | 337 +- .../src/claim_receipt/corpus/session.rs | 14 + wai/wai-rs/src/claim_receipt/session.rs | 18 +- wai/wai-rs/src/claim_receipt/timeliness.rs | 502 + wai/wai-rs/src/codecs/registry.rs | 27 +- wai/wai-rs/src/delivery_terms.rs | 1 + wai/wai-rs/src/http_binding/receipts.rs | 30 +- wai/wai-rs/src/http_binding/tests_receipts.rs | 63 +- wai/wai-rs/src/impression_aggregate.rs | 1356 + wai/wai-rs/src/impression_aggregate/corpus.rs | 2303 ++ wai/wai-rs/src/key_log.rs | 17 +- wai/wai-rs/src/lib.rs | 35 + wai/wai-rs/src/region.rs | 92 + wai/wai-rs/src/route_record.rs | 42 +- wai/wai-rs/src/rung_price.rs | 1475 + wai/wai-rs/src/rung_price/corpus.rs | 2095 ++ wai/wai-rs/src/stitched_presentation.rs | 10 +- wai/wai-rs/src/takedown.rs | 19 + wai/wai-rs/src/takedown/corpus.rs | 47 + .../src/telemetry_aggregate/aggregator.rs | 134 +- wai/wai-rs/src/telemetry_aggregate/corpus.rs | 24 +- wai/wai-rs/src/telemetry_aggregate/measure.rs | 69 +- wai/wai-rs/src/telemetry_aggregate/receipt.rs | 59 +- wai/wai-rs/src/timeliness.rs | 759 + wai/wai-rs/src/timeliness/corpus.rs | 1523 + wai/wai-rs/tests/cache_authority.rs | 65 + wai/wai-rs/tests/impression_aggregate.rs | 95 + wai/wai-rs/tests/rung_price.rs | 70 + wai/wai-rs/tests/timeliness.rs | 98 + 90 files changed, 91829 insertions(+), 370 deletions(-) create mode 100644 .github/wai-conformance/verifiers/cache-authority.sh create mode 100644 .github/wai-conformance/verifiers/impression-aggregates.sh create mode 100644 .github/wai-conformance/verifiers/rung-price.sh create mode 100644 .github/wai-conformance/verifiers/timeliness.sh create mode 100644 wai/changes/2026-11-03-ad-presentations-counted-over-bearer-no.md create mode 100644 wai/changes/2026-11-03-delivering-rung-costs-bearer-direction.md create mode 100644 wai/changes/2026-11-03-object-still-worth-delivering-whether-was.md create mode 100644 wai/changes/2026-11-03-served-node-holds-whose-authority.md create mode 100644 wai/extensions/cache-authority.md create mode 100644 wai/extensions/impression-aggregates.md create mode 100644 wai/extensions/rung-price.md create mode 100644 wai/extensions/timeliness.md create mode 100644 wai/live-conformance/cache-authority/README.md create mode 100644 wai/live-conformance/cache-authority/vectors.json create mode 100644 wai/live-conformance/cache_authority_verify.py create mode 100644 wai/live-conformance/impression_aggregate_verify.py create mode 100644 wai/live-conformance/impressions/README.md create mode 100644 wai/live-conformance/impressions/vectors.json create mode 100644 wai/live-conformance/prices/README.md create mode 100644 wai/live-conformance/prices/vectors.json create mode 100644 wai/live-conformance/rung_price_verify.py create mode 100644 wai/live-conformance/timeliness/README.md create mode 100644 wai/live-conformance/timeliness/vectors.json create mode 100644 wai/live-conformance/timeliness_verify.py create mode 100644 wai/wai-rs/src/bin/wai_cache_authority_vectors.rs create mode 100644 wai/wai-rs/src/bin/wai_impression_aggregate_vectors.rs create mode 100644 wai/wai-rs/src/bin/wai_rung_price_vectors.rs create mode 100644 wai/wai-rs/src/bin/wai_timeliness_vectors.rs create mode 100644 wai/wai-rs/src/cache_authority.rs create mode 100644 wai/wai-rs/src/cache_authority/corpus.rs create mode 100644 wai/wai-rs/src/claim_receipt/timeliness.rs create mode 100644 wai/wai-rs/src/impression_aggregate.rs create mode 100644 wai/wai-rs/src/impression_aggregate/corpus.rs create mode 100644 wai/wai-rs/src/region.rs create mode 100644 wai/wai-rs/src/rung_price.rs create mode 100644 wai/wai-rs/src/rung_price/corpus.rs create mode 100644 wai/wai-rs/src/timeliness.rs create mode 100644 wai/wai-rs/src/timeliness/corpus.rs create mode 100644 wai/wai-rs/tests/cache_authority.rs create mode 100644 wai/wai-rs/tests/impression_aggregate.rs create mode 100644 wai/wai-rs/tests/rung_price.rs create mode 100644 wai/wai-rs/tests/timeliness.rs diff --git a/.github/wai-conformance/verifiers/cache-authority.sh b/.github/wai-conformance/verifiers/cache-authority.sh new file mode 100644 index 000000000..05d660add --- /dev/null +++ b/.github/wai-conformance/verifiers/cache-authority.sh @@ -0,0 +1,33 @@ +# step: cache authority · wai-rs and cache_authority_verify.py +# order: 557 +# features: cache_authority +# paths: wai/extensions/cache-authority.md +# +# wai.delivery.cache (extensions/cache-authority.md): the reference module's unit tests (an +# instant rounded up to the millisecond, coverage as the union of ranges from zero, a +# population's one form and a digest that binds its region, a retired key placed against its +# `until`, the codes listed once and the serving roles settlement's, and the corpus reaching +# every stated outcome and failing a changed one) with those of the bearer claims' bodies (a +# bitmap read in object order and refused for each defect, a cache-transmission claim held to +# its rules in order, the bearer classes' labels), and tests/cache_authority.rs +# (vectors.json regenerates byte for byte from its fixed seeds and no other file is there, +# wai-rs gives every case its stated outcome, §11 lists exactly the reference's codes, and +# jwp-receipts §3.1 lists the class's codes at their steps); then the corpus's second +# implementation, cache_authority_verify.py, written from the extension's text and sharing no +# code with wai-rs, which verifies groups and objects with jwp_verify.py, claims through steps +# 1-5 with claim_verify.py, transmissions and reconciliations with bearer_verify.py, +# acknowledgements with settlement_verify.py, key logs with signer_verify.py, held-at +# statements with timeliness_verify.py and regions with rung_price_verify.py, writes the +# placement, the claim against its group, the verdict and the tally itself, reads §11, +# requires every mutated copy of the corpus to fail, and drops each of its own checks in +# turn; run isolated (-I). Last, claim-conformance's own verifier reads every claim of the +# corpus through jwp-receipts §3.1 steps 1 to 4 and requires the stated outcome. +# +# The paths this step brings to the workflow's trigger, and why: +# wai/extensions/cache-authority.md: tests/cache_authority.rs requires §11 to list the reference's +# codes, and cache_authority_verify.py reads it. +set -euo pipefail +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- cache_authority:: claim_receipt::bearer::) +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test cache_authority) +python3 -I live-conformance/cache_authority_verify.py live-conformance/cache-authority +python3 -I claim-conformance/claim_verify.py cache-authority live-conformance/cache-authority/vectors.json diff --git a/.github/wai-conformance/verifiers/impression-aggregates.sh b/.github/wai-conformance/verifiers/impression-aggregates.sh new file mode 100644 index 000000000..095236079 --- /dev/null +++ b/.github/wai-conformance/verifiers/impression-aggregates.sh @@ -0,0 +1,33 @@ +# step: impression aggregates · wai-rs and impression_aggregate_verify.py +# order: 605 +# features: impression_aggregate +# paths: wai/extensions/impression-aggregates.md +# +# wai.delivery.impressions (extensions/impression-aggregates.md), telemetry-aggregation's +# measure 5: the reference module's unit tests (the cell index, region columns, the chunk +# length, the retention arithmetic, the deadline at the flight's last hour, the plan's order, +# settlement on every DAP error value, the integer sum, the codes and a table's totals past +# 2^64) and tests/impression_aggregate.rs (vectors.json regenerates byte for byte from its +# fixed seeds and no other file is there, wai-rs gives every case its stated outcome and every +# reason of §10 appears, §10 lists exactly the reference's codes, each standing receipt's +# result is its contributions' tally and the flight's table gives per creative +# stitched-presentation's own counts, and a task file and an upload file of exactly their +# bound read while one byte more is refused); then the corpus's second implementation, +# impression_aggregate_verify.py, written from the extension's text and sharing no code with +# wai-rs, which evaluates Prio3 and opens every report with telemetry_aggregate_verify.py, +# judges records and claims with stitched_presentation_verify.py, verifies tokens with +# ad_presentation_verify.py, confirms task-file signers with signer_verify.py and reads +# regions with rung_price_verify.py, writes the catalogue, task file, upload file, +# contribution, plan, settlement, receipt check and table itself, requires every mutated copy +# of the corpus to fail and drops each of its own checks in turn; run isolated (-I). The QoE, +# stitched, key-log and signer steps still run their own corpora, which the shared refactors +# leave byte for byte as they were. +# +# The paths this step brings to the workflow's trigger, and why: +# wai/extensions/impression-aggregates.md: tests/impression_aggregate.rs requires §10 to list the +# reference's codes, impression_aggregate_verify.py reads it, and the registry's wire +# identifiers test reads §4.1, §5.4, §6.4 and §7.2. +set -euo pipefail +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- impression_aggregate::) +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test impression_aggregate) +python3 -I live-conformance/impression_aggregate_verify.py live-conformance/impressions diff --git a/.github/wai-conformance/verifiers/rung-price.sh b/.github/wai-conformance/verifiers/rung-price.sh new file mode 100644 index 000000000..c41d962b4 --- /dev/null +++ b/.github/wai-conformance/verifiers/rung-price.sh @@ -0,0 +1,32 @@ +# step: rung price · wai-rs and rung_price_verify.py +# order: 555 +# features: rung_price +# paths: wai/extensions/rung-price.md +# +# wai.delivery.rung_price (extensions/rung-price.md): the reference module's unit tests (a +# list read back with a digest that ignores its signature, every rule refusing, the bounds no +# vector carries, a seller's latest list standing alone and a lapsed one reviving none, a +# shared transmission's whole cost per receiver unless an audience is stated, each limit, +# energy ranked by checked evidence first (a label whose records are not given, not current +# or not confirmed ranking as an estimate, one its own records refute as unknown), a hardware +# figure compared one declared uncertainty above itself, the break-even audience, the pass +# rate and its tier, and the corpus reaching every stated outcome and failing a changed one) +# with those of the region code its §2 defines (the grammar, a footprint holding a code or +# its country's and never upward, and the exact CDNI case mapping), and tests/rung_price.rs +# (vectors.json regenerates byte for byte from its fixed seeds, wai-rs gives every case its +# stated outcome, §8 lists exactly the reference's codes and §6.2 its limits, in order); then +# the corpus's second implementation, rung_price_verify.py, written from the extension's text +# and sharing no code with wai-rs, which reads documents with route_record_verify.py, per-hop +# records with live_metering_verify.py, room descriptors with fleet_verify.py and signatures +# with the shared _ed25519.py, writes the region code, the list's rules, the evidence, the +# verdict and the comparison itself, reads §8 and §6.2, requires every mutated copy of the +# corpus to fail and drops each of its own checks in turn; run isolated (-I). +# +# The paths this step brings to the workflow's trigger, and why: +# wai/extensions/rung-price.md: tests/rung_price.rs requires §8 to list the reference's codes and +# §6.2 its limits, rung_price_verify.py reads both, and the registry's wire identifiers test +# reads §4.1 and §6.1. +set -euo pipefail +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- rung_price:: region::) +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test rung_price) +python3 -I live-conformance/rung_price_verify.py live-conformance/prices diff --git a/.github/wai-conformance/verifiers/takedown.sh b/.github/wai-conformance/verifiers/takedown.sh index b35cf1888..59cae968b 100644 --- a/.github/wai-conformance/verifiers/takedown.sh +++ b/.github/wai-conformance/verifiers/takedown.sh @@ -13,8 +13,9 @@ # extension's text and sharing no code with wai-rs, which computes every closure, holder, # purge time, clock verdict and counts row itself, reads derivation records and delivery # receipts with edge_verify.py, origin claims with synthesis_verify.py, acknowledgements -# with settlement_verify.py and every record with WAI's strict Ed25519 rule and BLAKE3 -# from claim-conformance, requires every mutated copy of the corpus to fail, and drops +# with settlement_verify.py, cache-transmission claims through jwp-receipts §3.1 steps 1-4 +# with claim_verify.py, and every record with WAI's strict Ed25519 rule and BLAKE3 from +# claim-conformance, requires every mutated copy of the corpus to fail, and drops # each of its own checks in turn and requires the corpus to catch the weakened verifier; # run isolated (-I). The reference relay's DVR store honours takedowns (§10.1), tested by # joule-moq-relay's tests/dvr.rs in joule-code-conformance.yml. diff --git a/.github/wai-conformance/verifiers/timeliness.sh b/.github/wai-conformance/verifiers/timeliness.sh new file mode 100644 index 000000000..3e8d6641e --- /dev/null +++ b/.github/wai-conformance/verifiers/timeliness.sh @@ -0,0 +1,29 @@ +# step: timeliness · wai-rs and timeliness_verify.py +# order: 552 +# features: timeliness +# paths: wai/extensions/timeliness.md +# +# wai.delivery.timeliness (extensions/timeliness.md): the reference module's unit tests (the +# value function against an exact reference, the collinearity rule, each rule refusing, the +# judgement, the held-at statement's before-group test and the plan's sources, and the +# corpus reaching every stated outcome and failing a changed one) and tests/timeliness.rs +# (vectors.json regenerates byte for byte from its fixed seeds, wai-rs gives every case its +# stated outcome, §9 lists exactly the reference's codes and §6.3 its outcomes, jwp-receipts +# §3.1 lists the class codes at their steps, and delivery-telemetry §5.1 lists the switch +# reason); then the corpus's second implementation, timeliness_verify.py, written from the +# extension's text and sharing no code with wai-rs, which verifies groups and objects with +# jwp_verify.py, claims through steps 1-5 with claim_verify.py, schedules and passes with +# carousel_verify.py and records with holdings_verify.py, writes the context checks, the +# value function, the judgement and the plans itself, reads §9 and §6.3, requires every +# mutated copy of the corpus to fail, and drops each of its own checks in turn; run isolated +# (-I). Last, claim-conformance's own verifier reads every claim of the corpus through +# jwp-receipts §3.1 steps 1 to 4 and requires the stated outcome. +# +# The paths this step brings to the workflow's trigger, and why: +# wai/extensions/timeliness.md: tests/timeliness.rs requires §9 to list the reference's codes and +# §6.3 its outcomes, and timeliness_verify.py reads both. +set -euo pipefail +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- timeliness:: claim_receipt::timeliness::) +(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test timeliness) +python3 -I live-conformance/timeliness_verify.py live-conformance/timeliness +python3 -I claim-conformance/claim_verify.py timeliness live-conformance/timeliness/vectors.json diff --git a/wai/REGISTRY.md b/wai/REGISTRY.md index dee3f8f18..b55c83e38 100644 --- a/wai/REGISTRY.md +++ b/wai/REGISTRY.md @@ -71,8 +71,9 @@ they serve ([jwp-receipts](extensions/jwp-receipts.md) §7), [loc-carriage](extensions/loc-carriage.md) and [stream-termination](extensions/stream-termination.md) put on the wire outside a manifest — magic numbers, a media type, `codecs` prefixes, paths, playlist tags and attributes, document kinds, catalog fields, MOQT Setup Options, HTTP fields, a -member of a decoded frame's metadata, glTF extension names and the custom keys of CMCD and CMSD -reports — each with its kind, the section that +member of a decoded frame's metadata, glTF extension names, the custom keys of CMCD and CMSD +reports and report extensions of the Distributed Aggregation Protocol — each with its kind, the +section that defines it, and whether it is defined, provisional (test material only until registered) or proposed (not registered). A library test checks that each is written in the section it names. @@ -186,12 +187,16 @@ and a role are fixed once registered. | `wai.bearer.receipts` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.capture.take` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.audit` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | +| `wai.delivery.cache` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.fleet` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.holdings` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | +| `wai.delivery.impressions` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.ledger` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.opportunity` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.revenue_share` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | +| `wai.delivery.rung_price` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.delivery.settlement` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | +| `wai.delivery.timeliness` | record | registered | — | — | — | — | — | §5 Interactive, temporal & computed content | | `wai.derive.crop` | derivation | registered | — | — | patent-pool | — | — | §5 Prior artifacts, general tensors and derivation operations | | `wai.derive.dissolve` | derivation | registered | — | — | patent-pool | — | — | §5 Prior artifacts, general tensors and derivation operations | | `wai.derive.grid_composition` | derivation | registered | — | — | patent-pool | — | — | §5 Prior artifacts, general tensors and derivation operations | @@ -404,6 +409,9 @@ and a role are fixed once registered. | `WFR1` | magic | defined | fleet §6.1 | | `WGM1` | magic | defined | exact-tonemap §4.1 | | `WHP1` | magic | defined | http-delivery §6.2 | +| `WIC1` | magic | defined | impression-aggregates §4.1 | +| `WIT1` | magic | defined | impression-aggregates §5.4 | +| `WIU1` | magic | defined | impression-aggregates §6.4 | | `WJR1` | magic | defined | jwp-receipts §2.7.3 | | `WKE1` | magic | defined | key-release §5.1 | | `WKL1` | magic | defined | key-release §4.1 | @@ -563,6 +571,8 @@ and a role are fixed once registered. | `wai-route-record` | document-kind | defined | route-record §5.1 | | `wai-route-request` | document-kind | defined | route-record §3.1 | | `wai-route-third-party-hop` | document-kind | defined | route-record §6.2 | +| `wai-rung-prices` | document-kind | defined | rung-price §4.1 | +| `wai-rung-request` | document-kind | defined | rung-price §6.1 | | `wai-scene/1` | scheme | defined | scene-carriage §2.3 | | `wai-sequence` | document-kind | defined | direction §6 | | `wai-session` | document-kind | defined | contribution §3.1 | @@ -594,6 +604,7 @@ and a role are fixed once registered. | `wai_capabilities` | catalog | defined | moq-streaming-format §4 | | `wai_delivery_timeout_ms` | catalog | defined | packaging §8 | | `wai_determinism` | catalog | defined | moq-streaming-format §4 | +| `wai_impression_token` | dap-report-extension | proposed | impression-aggregates §7.2 | | `wai_machine_generated` | catalog | defined | timed-text §7.4 | | `wai_model` | catalog | defined | timed-text §7.2 | | `wai_origin` | catalog | defined | timed-text §7.2 | diff --git a/wai/SPEC.md b/wai/SPEC.md index da00fc368..299dc09a8 100644 --- a/wai/SPEC.md +++ b/wai/SPEC.md @@ -1817,6 +1817,47 @@ two of one instant that differ, answers whether a record holds an object, and de objects each neighbour holds, in the asker's order, and which must come from the origin. An object a neighbour serves is verified under its receipts like any other; a record is never evidence of bytes: [`extensions/holdings.md`](extensions/holdings.md). +And for **when** an object is still worth delivering — `wai.delivery.timeliness`: a publisher's +signed statement, a jwp-receipts claim of class `timeliness` beside the group receipt and one for +every bearer, of each object's instant of use, its deadline, how its value falls after it (a stated +piecewise-linear function in parts per million, floored) and the rendition a receiver presents in +its place, a separate object derived from it. A verifier holds the statement to its group and +objects, refuses one for a staged layer, sets aside two that differ, and judges each object for +each holder from holdings records, as a sink that decides at the deadline would present: on time, +replaced, held only after its deadline at a value it shows at least, or not shown +(`deadline_not_stated` where nothing is stated). An asker plans which of its sources, in its own +order, delivers each object in time; the deadline maps onto MoQ's delivery timeout, CMCD's `dl`, +DVB's target acquisition latency, ATSC's entry-package load time and a bundle's lifetime: +[`extensions/timeliness.md`](extensions/timeliness.md). +And for **what delivering a rung costs** — `wai.delivery.rung_price`: a seller's signed list +(`wai-rung-prices`) of prices per direction, bearer class, footprint of regions delivered to, +ceiling of the rung's rate and unit, each unit at the divisor of the ledger field that bills it, in +route-record's amounts with the energy the seller states; the latest of a seller's lists stands +alone, and one that lapses revives none. rung-price §2 is WAI's one region code (ISO 3166-1 alpha-2 +or ISO 3166-2, in capitals), held by a footprint that lists it or, for a subdivision, its country. A +comparer's request removes what its limits remove (a `null` is most restrictive, units are never +converted, and the least ceiling that covers a rate prices it) and ranks the rest by a cost per +receiver: a shared transmission's is held to its pass rate and divided by the audience the comparer +states or by one, never by an assumed one, and the plan states the audience at which sharing is no +dearer. A list is a quote, billed only at a tariff the buyer signed: +[`extensions/rung-price.md`](extensions/rung-price.md). +And for **who served** what a node holds, and on whose authority — `wai.delivery.cache`: the role +`cache/serve`, which a node's operator gives in its key log to the caches and peers it runs, and the +class authority `cache-transmission`. Under the role a key signs its holdings records and its +declarations, and is the upstream its receivers acknowledge; neither lets it author, transform or +sign a publisher's statement. A verifier places a server key by the heads its relying party names, +in jwp-receipts' three levels, and a placement never changes a verdict. The `cache-transmission` +claim (jwp-receipts §2.4.18), beside the group receipt, declares a multicast or unidirectional +instance of the node's own and the objects it sent over it from what it held, with a root under the +publisher's tree checked without the bytes; receivers' reconciliations over it count, the node +credited per instance and only for what it says it sent, and it never makes a group transmitted. Of +a population of receiver keys a relying party states for a region (rung-price §2's codes), fixed by +its digest, a verifier derives how many held an object by a deadline (stated, or a timeliness +entry's), on their own signed word: acknowledgements, counted reconciliations and holdings records, +read as timeliness' held-at statements, with any before the group's start set aside. The miss rate +is in parts per million, rounded up and held to a target, each hit credited to the publisher or the +nodes its evidence names, and every unknown a miss: +[`extensions/cache-authority.md`](extensions/cache-authority.md). And for **exploration** with the exact generator, and **taste** as a declared, owned objective — `wai.media.exploration`: six integer descriptors over a picture's `RGB8` samples (mean luma, chroma, detail, palette diversity and the luma centroid's two coordinates) place it without @@ -1842,9 +1883,10 @@ Aggregation Protocol (`draft-ietf-ppm-dap-20`): each measurement is secret-share and a helper aggregator and each share encrypted to its aggregator, the two check its range proof without either seeing it and refuse an out-of-range one, and neither learns a measurement as long as one of them follows the protocol. A task's `task_info` names its measure, its scope (a room id -for a room's) and the keys of its two aggregators and its collector, so every report is bound at -upload to who aggregates it; a task's minimum batch size is at least fifty, and each aggregator -refuses to release a share of a smaller batch. Each aggregator signs a statement of its aggregate +for a room's, an impression catalogue's digest for measure 5) and the keys of its two aggregators +and its collector, so every report is bound at upload to who aggregates it; a task's minimum batch +size is at least fifty, and each aggregator refuses to release a share of a smaller batch. Each +aggregator signs a statement of its aggregate share with the batch's task, count and checksum, `WQS1`; the collector's aggregate receipt, `WQA1`, carries the task, both statements and the result, and a reader recomputes the result and refuses a receipt with one aggregator, a batch below the minimum, statements that disagree, or a batch whose @@ -1852,6 +1894,19 @@ reports were uploaded to another task. A room's quality-of-experience cell is co tasks' receipts. Delivery telemetry classes every CMCD key it writes as `delivery` or `measurement`, with what each reveals, and a delivery-only Request mode carries the delivery class alone: [`extensions/telemetry-aggregation.md`](extensions/telemetry-aggregation.md). +And for **ad presentations counted over a bearer with no return path** — `wai.delivery.impressions`: +a receiver judges each ad of a shared pod-input record it presented by stitched-presentation's +rules, and reports each presentation once through the Distributed Aggregation Protocol, to a task +of `wai.telemetry.aggregate`'s measure 5, as a Prio3Histogram measurement whose one set element is +its creative, region and quartile, with the hour in DAP's own report time; the shares, statements +and receipt are that record's. A catalogue fixes the vector's meaning and is the task's scope; a +receiver accepts a task only from a task file whose signer its pinned key log lists with the +authority `aggregate/task`, generates each report once and re-sends its bytes over whatever path +it later has, and the leader holds each collection for a stated delay so late reports count. With +attestation each report carries a Privacy Pass token bound to its task and report id. A reader +recomputes, per batch, each creative's and region's presentations and quartile counts: a lower +bound of what receivers reported, never an audience: +[`extensions/impression-aggregates.md`](extensions/impression-aggregates.md). And for **robustness evidence** — what a soft binding survives, measured so anyone recomputes it — `wai.media.robustness`: a corpus document names pictures or clips each by the SHA-256 of its samples, and itself by the SHA-256 of its JCS; an attack battery is a list of registered transforms, diff --git a/wai/changes/2026-11-03-ad-presentations-counted-over-bearer-no.md b/wai/changes/2026-11-03-ad-presentations-counted-over-bearer-no.md new file mode 100644 index 000000000..cc45f410d --- /dev/null +++ b/wai/changes/2026-11-03-ad-presentations-counted-over-bearer-no.md @@ -0,0 +1,62 @@ +### Ad presentations counted over a bearer with no return path + +- **Impression aggregates** ([extensions/impression-aggregates.md](extensions/impression-aggregates.md)), + the record `wai.delivery.impressions`, and telemetry-aggregation's measure 5 `impressions`: a + receiver judges each shared stitched ad it presented by stitched-presentation's rules (steps 1 + to 10), and reports each presentation once as a Prio3Histogram report of a DAP task of that + measure: creative × region × quartile in the vector, the hour in DAP's own batch bucket. The task + layout, statements (`WQS1`) and receipt (`WQA1`) are telemetry-aggregation's; a reader checks + that the result's elements, as integers, sum to the report count (age-assurance's + `count_mismatch` otherwise) and that the batch lies in the flight, and an accepted receipt states + telemetry-aggregation's outcome and whether its reports were checked. +- **The records**: the catalogue (`WIC1`) fixing which index is which creative, region (rung-price + §2's codes, and `other`) and quartile, bound as the task's scope; the task file (`WIT1`), whose + signer a receiver confirms under its pinned key log with the new pinned-only authority + `aggregate/task` (jwp-receipts §7.5), so a task key can be revoked over the bearer; the upload + file (`WIU1`) relays forward unchanged. The registry lists the three magics and the report + extension, the last under a new kind of wire identifier, `dap-report-extension`. +- **One-way delivery**: a report is generated once, stored and re-sent until settled (never + regenerated); a duplicate is discarded by its id; the leader holds each collection for the + catalogue's `hold_s` and aggregators keep the task until its retention instant, so late reports + count; one arriving later is lost, never a phantom. With `attest`, each report carries a Privacy + Pass token bound to its task and id, in a private report extension (`wai_impression_token`, + 0x5749, proposed for DAP's registry). +- **What a reader derives**: the table per batch and in total, presentations and five quartile + counts per creative and region, a row under fifty flagged, whether each receipt's reports were + checked; a lower bound of reported presentations, never an audience, and its own class, never + billed as presented. +- **Beside it**: telemetry-aggregation registers measure 5 (§3.1), its scope (§4.1), its rule 3 + (§4.3), its reports (§5.1) and its receipt check (§8.1) by reference to the extension, and + measures 1 to 4 are unchanged. The reference client seals to the first configuration of DAP's + suite in each list; the reference aggregators hold a report's extensions to a rule (none, for + measures 1 to 4) and a collection until a batch's end and the hold have passed (a hold of 0 for + measures 1 to 4). `aggregate/task` joins the pinned-only authorities of `key_log` and + `signer_verify.py`. The QoE, stitched, key-log and signer corpora are unchanged. +- **The corpus** [`live-conformance/impressions/`](live-conformance/impressions/): catalogues, + tasks and task files (key-log confirmation among them) with a control for each rule and both + sides of every bound, contributions, end-to-end flows, uploads, plans, settlements, receipts and + tables. `impression_aggregate_verify.py` is a second implementation. +- **Breaking:** `api:rust:wai::telemetry_aggregate::measure::MEASURES`: the measures with + `impressions` (5) last, an array of 5. +- **Breaking:** `api:rust:wai::telemetry_aggregate::measure::Task::new`: refuses with the code of + the rule that fails, `Result`, as `Task::with` does, which takes the rule 3 + of a measure whose VDAF telemetry-aggregation §3.1 does not fix; `new` refuses measure 5 + `catalogue_mismatch`. +- **Breaking:** `api:rust:wai::telemetry_aggregate::receipt::Refusal`: a code and a place, + `(&'static str, &'static str)`, so `receipt::verify_with` can refuse a task with another text's + code. +- **Breaking:** `api:rust:wai::telemetry_aggregate::aggregator::client_report`: takes each + aggregator's HpkeConfigList and seals to the first configuration of DAP's suite in it + (`aggregator::choose`), and takes the report's public extensions and each input share's + private ones. +- **Breaking:** `api:rust:wai::telemetry_aggregate::aggregator::Aggregator::rule` and + `api:rust:wai::telemetry_aggregate::aggregator::Aggregator::reasons`: the rule an aggregator + holds a report's extensions to (`ReportRule`; `Aggregator::new` holds telemetry-aggregation §5.1's, + no extension) and the WAI reason it recorded beside a report error, which a struct literal of + `Aggregator` needs. +- **Breaking:** `api:rust:wai::telemetry_aggregate::aggregator::Leader::collect`: takes the + instant `now_s` and the hold `hold_s`, both in seconds, and returns `Ok(None)` while the job's + batch has not ended `hold_s` seconds before; a task that holds no collection passes 0. +- **Breaking:** `api:rust:wai::codecs::registry::WireKind::DapReportExtension` and + `api:rust:wai::codecs::registry::WireKind::all`: the kind `dap-report-extension`, which an + exhaustive match over `WireKind` needs, and the list of kinds that holds it, an array of 18. diff --git a/wai/changes/2026-11-03-delivering-rung-costs-bearer-direction.md b/wai/changes/2026-11-03-delivering-rung-costs-bearer-direction.md new file mode 100644 index 000000000..f7cff812f --- /dev/null +++ b/wai/changes/2026-11-03-delivering-rung-costs-bearer-direction.md @@ -0,0 +1,37 @@ +### What delivering a rung costs, by bearer and direction + +- **Rung price** ([extensions/rung-price.md](extensions/rung-price.md)), the record + `wai.delivery.rung_price`: a seller's signed list of delivery prices (`wai-rung-prices`), each + for a direction (`downlink`, `uplink`, as RFC 8506 §8.25 and §8.24 count octets), a bearer class + (bearer-receipts §2), the regions it delivers to (a footprint of region codes), a ceiling of the + rung's rate in bits per second, and a unit: `bytes`, `subscriber_us` or `publisher_us` on a + two-way bearer, or `bytes_sent` or `pass_us` on a shared one, each at the divisor of the ledger + field that bills it. Prices are in route-record's amounts, with the energy the seller states + beside them; a figure of a class above `Estimator` names the seller's own per-hop records + (`WMH1`) by digest, and one of a hardware class its declared uncertainty in parts per million. + The list is a strict JSON document signed over `wai:rung-prices\x01` and named by the digest of + its body without `sig`. A seller's latest list stands alone, and one that lapses revives none. +- **The region code** (rung-price §2): an ISO 3166-1 alpha-2 or ISO 3166-2 code in capitals, its + country, and when a footprint *holds* it (it lists the code, or the country of a subdivision; + never a country because it lists a subdivision of it), mapped to and from CDNI's lowercase + codes by case alone. It is WAI's one definition, which an extension that states a region cites. + In `wai-rs` it is the ungated `region` module, and `rung_price_verify.py` exports its Python + twin. +- **Comparing delivery options**: a request's candidates and the limits that remove each (a `null` + is most restrictive, units are never converted, and the least tier that covers the rung or the + pass rate prices it); a cost and an energy per receiver, a shared transmission's divided by the + audience the comparer states or by one; a ranking by price or by energy (a class counts only when + the comparer is given the seller's own current per-hop records that bear the figure out and has + confirmed the seller's key for that class; any other figure ranks as an estimate, one its own + records contradict is set aside, and a hardware figure is compared one declared uncertainty above + itself); each transmission's break-even audience; and the neighbour order a plan gives an asker + of holdings §5.4, priced holders first and the unpriced after them in key order. +- **What bills each unit**: a list is a quote, billed only at a tariff the buyer signed. Room time + is billed by a room's prices, per layer class for `subscriber_us`; downlink `bytes` by a + delivery price per object class or a room's `bytes_out` price. A transmission's pass rate is a + pure function of its carousel schedule; `bytes_sent` and `pass_us` are compared, and no tariff + field bills them yet. +- **The corpus** [`live-conformance/prices/`](live-conformance/prices/): lists with a control for + each rule, verdicts at each edge of a window, and comparisons covering every limit, decision, + evidence verdict and energy rank, among them a calibrated label against an honest model-based + figure. `rung_price_verify.py` is a second implementation. diff --git a/wai/changes/2026-11-03-object-still-worth-delivering-whether-was.md b/wai/changes/2026-11-03-object-still-worth-delivering-whether-was.md new file mode 100644 index 000000000..a64b09c98 --- /dev/null +++ b/wai/changes/2026-11-03-object-still-worth-delivering-whether-was.md @@ -0,0 +1,56 @@ +### When an object is still worth delivering, and whether it was delivered in time + +- **Timeliness** ([extensions/timeliness.md](extensions/timeliness.md)), the record + `wai.delivery.timeliness`: a publisher's signed statement, a jwp-receipts claim of class + `timeliness` (§2.4.17) beside the group receipt and one for every bearer, of when each object of + a group is of use: the instant it is useful from, the deadline by which a receiver must hold it + for its full value, how that value falls after it — a stated piecewise-linear function in parts + per million, floored, of one to sixteen points, every one a change of slope, 0 from its end — + and the rendition a receiver presents in its place, a separate object whose `derived_from` names + the primary, as packaging's floor objects do. Each entry is held to its group, its object's + content hash, and its fallback's position and derivation where they are held; an entry for a + staged layer, and a layer named as a fallback, are refused, since staged-delivery §8 alone + decides a layer's lateness. Two statements that differ for one object set both aside. +- **Judging delivery.** From holdings records (a holder's word that it held an object at an + instant), a verifier judges each object for each holder, as a sink that decides at the deadline + with what it holds would present: on time, replaced by its fallback, held only after its + deadline and at what value at least, or not shown. Every instant is an upper bound on arrival, + so every value is a lower bound; a record dated before its group began is refused; an object + with no statement is never on time. +- **Planning.** An asker plans each object from an instant it states, over its sources in its own + order — a carousel's passes, a neighbour's holdings, the origin — and gets the first source on + time, the fallback, or the best late source. Planned from each object's own `from_ms` over one + instance, it is the promise a publisher's schedule makes to a receiver that tunes in when the + object becomes of use; carousel §6.4 at the deadline is the promise to one that hears every + pass. +- **Mappings**: the MoQ per-hop `OBJECT_DELIVERY_TIMEOUT` (MOQT -23 §5.2, §10.2; numbered as in + -22) from the slack to the object's end, never 0 and never below a base's floor; priorities + unchanged; an HTTP client's abandonment at the end (http-delivery §10.1 admits it) and CMCD `dl` + (CTA-5004-B §4.3); DVB multicast ABR's `@targetAcquisitionLatency` for carouselled resources; an + ATSC 3.0 entry package's HELD `@validFrom`; a bundle's `Lifetime` (RFC 9171 §4.3.1). + delivery-telemetry §5's switch reasons gain `not-held-by-deadline`. The end-to-end MoQ timeout + draft is read and not bound. +- **The corpus** [`live-conformance/timeliness/`](live-conformance/timeliness/): claims at every + bound of the rules, the value function at every edge (a span whose products pass 2^64 among + them), verdicts, and plans. `timeliness_verify.py` is a second implementation; + `claim_verify.py timeliness` reads every claim through steps 1–4; the claim corpus holds a + `reconstruct-session` claim that switches for `not-held-by-deadline`, which both claim verifiers + accept; and http-delivery §8.2's receipt-index check holds a `timeliness` claim to its group in + both implementations. +- **Breaking:** `api:rust:wai::claim_receipt::ClaimClass::Timeliness` and + `api:rust:wai::claim_receipt::ClaimBody::Timeliness`: the class jwp-receipts §2.4.17 registers, + which an exhaustive match over either needs. +- **Breaking:** the reasons of the class, which an exhaustive match over `Reason` needs: + `api:rust:wai::claim_receipt::Reason::TimelinessNotValued`, + `api:rust:wai::claim_receipt::Reason::TimelinessObjectsMalformed`, + `api:rust:wai::claim_receipt::Reason::TimelinessWindowInvalid`, + `api:rust:wai::claim_receipt::Reason::TimelinessDecayInvalid`, + `api:rust:wai::claim_receipt::Reason::TimelinessFallbackInvalid`, + `api:rust:wai::claim_receipt::Reason::TimelinessSubjectMismatch`, + `api:rust:wai::claim_receipt::Reason::TimelinessSignerMismatch`, + `api:rust:wai::claim_receipt::Reason::TimelinessLeafOutOfRange`, + `api:rust:wai::claim_receipt::Reason::TimelinessBeforeGroup`, + `api:rust:wai::claim_receipt::Reason::TimelinessContentMismatch`, + `api:rust:wai::claim_receipt::Reason::TimelinessOnLayer`, + `api:rust:wai::claim_receipt::Reason::TimelinessFallbackMismatch` and + `api:rust:wai::claim_receipt::Reason::TimelinessFallbackNotDerived`. diff --git a/wai/changes/2026-11-03-served-node-holds-whose-authority.md b/wai/changes/2026-11-03-served-node-holds-whose-authority.md new file mode 100644 index 000000000..60e9523f7 --- /dev/null +++ b/wai/changes/2026-11-03-served-node-holds-whose-authority.md @@ -0,0 +1,56 @@ +### Who served what a node holds, and on whose authority + +- **Cache authority** ([extensions/cache-authority.md](extensions/cache-authority.md)), the record + `wai.delivery.cache`: the role `cache/serve`, which a node's operator gives in its key log to the + caches and peers it runs, and the class authority `cache-transmission`. Under the role a key signs + its holdings records and its declarations, and is the upstream its receivers acknowledge. Neither + lets it author, transform or sign a publisher's statement. A relying party places a server key by + the heads it names, over the serving roles settlement already honours and `cache/serve`, in + jwp-receipts' three levels: a revoked key is refused, a retired one past its `until` is refused, + a head that lists the key with no serving role refuses it, a key no head lists is unconfirmed, and + an unreadable head confirms nothing. A placement labels a server and never changes a verdict. +- **The `cache-transmission` claim** (jwp-receipts §2.4.18): a node's declaration that it sent, from + what it held, objects of a group another key signed, over a multicast or unidirectional instance + of its own, with a bitmap and a root under the publisher's tree, checked without the bytes, and + its energy. It is refused when signed by the group's key or on a two-way instance. Receivers' + reconciliations over a cache's instance now count, credited per instance and only for what the + cache says it sent. A cache's instance never makes a group `transmitted`. +- **Held by a deadline**: of a population of receiver keys a relying party states for a region + (rung-price §2's codes), fixed by its digest, how many held an object by a deadline (stated, or a + timeliness entry's `by_ms`) on their own signed word, read as timeliness' held-at statements: an + acknowledgement window's last microsecond, a counted reconciliation's time, or a holdings + record's instant, each rounded up to the millisecond. Evidence earlier than the group's start is + set aside (`held_before_group`). Parts from several peers complete an object together. The miss + rate is in parts per million, rounded up, and is met or `miss_target_exceeded`. Each hit is + credited to the publisher or the nodes its evidence names, and every unknown is a miss. +- **Timeliness lines from every kind of held-at statement**: cache-authority §9 derives timeliness + §6.3's lines for an entry from acknowledgements and counted reconciliations as well as holdings + records, so a key on time in one of them is a hit at that deadline in a tally of that object + whose population holds the key. Timeliness §6's own verdict and statement still read holdings + records alone. +- **Beside it**: takedown reads a cache-transmission claim as its signer's own word that it held + what it sent; settlement §13 places a serving node by `cache/serve`; holdings §9 says which key a + node signs with to be placed; and http-delivery §8.2's receipt-index check holds a + `cache-transmission` claim to its group in both implementations, where before it accepted one + unchecked. +- **The corpus** [`live-conformance/cache-authority/`](live-conformance/cache-authority/): claims, + placements, verdicts, tallies and timeliness lines, with a control for every reason, every + outcome of placing a key, an acknowledgement refused for each reason a tally reads, and each + bound on both sides. `cache_authority_verify.py` is a second implementation, and + `claim_verify.py cache-authority` reads every claim through steps 1–4. The takedown corpus holds a + node's claim with its purge of what it sent made, missing, and not verifying, which + `takedown_verify.py` reads too. +- **Breaking:** `api:rust:wai::claim_receipt::ClaimClass::CacheTransmission` and + `api:rust:wai::claim_receipt::ClaimBody::CacheTransmission`: the class jwp-receipts §2.4.18 + registers, which an exhaustive match over either needs. +- **Breaking:** the reasons of the class, which an exhaustive match over `Reason` needs: + `api:rust:wai::claim_receipt::Reason::CacheTransmissionNotTransmitted`, + `api:rust:wai::claim_receipt::Reason::CacheTransmissionOnBidirectional`, + `api:rust:wai::claim_receipt::Reason::CacheTransmissionBitmapMalformed`, + `api:rust:wai::claim_receipt::Reason::CacheTransmissionSubjectMismatch`, + `api:rust:wai::claim_receipt::Reason::CacheTransmissionByPublisher`, + `api:rust:wai::claim_receipt::Reason::CacheTransmissionLeafCountMismatch`, + `api:rust:wai::claim_receipt::Reason::CacheTransmissionObjectsNotHeld` and + `api:rust:wai::claim_receipt::Reason::CacheTransmissionRootMismatch`. +- **Breaking:** `api:rust:wai::takedown::Case::cache_transmissions`: the cache-transmission claims + a takedown case is given (takedown §8.1), which a struct literal of `Case` needs. diff --git a/wai/claim-conformance/README.md b/wai/claim-conformance/README.md index df8bd2cf6..e5d1f3319 100644 --- a/wai/claim-conformance/README.md +++ b/wai/claim-conformance/README.md @@ -219,10 +219,12 @@ The vectors cover: context: its presentations, re-decodes of byte-exact presentations that match, the objects received, its base's `WAI1` envelope and the `WAI2` envelope, and the `stage` claim it names; the model with no - context, and with its `stage` claim but neither presentations nor objects; a session - with no classical length beside an envelope whose second rendition is WAI's own; a - classical rendition of two other video capabilities; a base forgotten under the record - budget and decoded again with no layer sent again (`staged-conformance/`'s + context, and with its `stage` claim but neither presentations nor objects; the model + switching to its fallback for `not-held-by-deadline`, the reason timeliness §8.6 adds to + delivery-telemetry §5, against every context; a session with no classical length beside + an envelope whose second rendition is WAI's own; a classical rendition of two other video + capabilities; a base forgotten under the record budget and decoded again with no layer + sent again (`staged-conformance/`'s `record_budget`, its envelopes and the `stage` claim of each epoch as the sink's observer states them), naming both epochs' claims and only the first's; the base fetched twice and listed once; an encrypted `WAI2` envelope received and named by no diff --git a/wai/claim-conformance/claim_verify.py b/wai/claim-conformance/claim_verify.py index 6af68cabf..df9117bd6 100644 --- a/wai/claim-conformance/claim_verify.py +++ b/wai/claim-conformance/claim_verify.py @@ -29,6 +29,12 @@ claim are read, verified and their figures read by the OER reference verifier python3 claim_verify.py carousel steps 1-4 over the `transmission` and `schedule` claims of the carousel corpus (live-conformance/carousel) + python3 claim_verify.py timeliness + steps 1-4 over the claims of the timeliness + corpus (live-conformance/timeliness) + python3 claim_verify.py cache-authority + steps 1-4 over the claims of the cache + authority corpus (live-conformance/cache-authority) Exit status 0 only if every vector reports its declared outcome, and the fixture and the bracket arithmetic this script computes equal the literals pinned in wai-rs. @@ -183,7 +189,7 @@ ADMITS = {"energy": {"object"}, "lawful-basis": {"object", "receipt"}, "log-incl "measurement": {"object", "receipt"}, "operating-point": {"object", "receipt"}, "stage": {"object"}, "delivery-gap": {"object"}, "reconstruct-session": {"object"}, "consumption": {"object"}, "transmission": {"receipt"}, "reconciliation": {"receipt"}, - "schedule": {"receipt"}} + "schedule": {"receipt"}, "timeliness": {"receipt"}, "cache-transmission": {"receipt"}} FIGURE = ["figure_profile", "figure_index", "group", "joules_micro", "energy_provenance", "energy_uncertainty", "energy_counter_filtering", "energy_calibration_ref"] BODY = { @@ -206,6 +212,10 @@ BODY = { "reconciliation": ["bearer", "bearer_id", "leaf_count", "received", "received_root", "attests"], # §2.4.16: carousel §4.1. "schedule": ["bearer_id", "objects", "attests"], + # §2.4.17: timeliness §4.1. + "timeliness": ["objects", "attests"], + # §2.4.18: cache-authority §5.1. + "cache-transmission": ["bearer", "bearer_id", "leaf_count", "sent", "sent_root", "energy", "attests"], "reconstruct-session": ["session_nonce", "media", "host", "decoders", "units", "leaf_count", "output_root", "primary_units", "fallback_units", "switches", "switches_total", "deadline_us", "missed", "missed_units", "stage_sets", "framing", "counted_primary", "counted_fallback", @@ -286,7 +296,7 @@ SWITCH_REASONS = ("pin-malformed", "form-not-registered", "form-unreadable", "fo "prior-not-authorised", "prior-not-held", "digest-superseded", "set-malformed", "part-mismatch", "set-incomplete", "missing-capability", "module-unverified", "module-revoked", "trap", "fuel-exhausted", "memory-exhausted", "deadline-threshold", "unit-hash-mismatch", - "budget-exhausted", "recovered") + "budget-exhausted", "not-held-by-deadline", "recovered") # The capability registry (../registry/capabilities.json): each capability's kind, status # and replicate class, for a session's tiers, re-decodes and classical rendition. with open(os.path.join(HERE, "..", "registry", "capabilities.json"), encoding="utf-8") as _f: @@ -456,17 +466,19 @@ def check_body(cls, b): need(is_hex(b["received"]), 2) need(is_hex(b["received_root"], 32), 2) else: - e = b["energy"] - if e is not None: - nested(e, SESSION_ENERGY) - need(is_int(e["joules_micro"]), 2) - need(isinstance(e["energy_provenance"], str), 2) - u = e["energy_uncertainty"] - if u is not None: - nested(u, UNCERTAINTY) - need(is_int(u["relative_ppm"]) and is_int(u["window_us"]), 2) - need(e["energy_counter_filtering"] is None or isinstance(e["energy_counter_filtering"], str), 2) - need(e["energy_calibration_ref"] is None or isinstance(e["energy_calibration_ref"], str), 2) + bearer_energy_body(b["energy"]) + need(isinstance(b["attests"], str), 2) + return + if cls == "cache-transmission": + # cache-authority §5.1, in its table's order: the class from bearer-receipts' enumeration, + # the instance an absolute URI, the bitmap a byte string of any length (its length is a + # class rule, step 4), the root a hash, and the energy as a transmission's. + need(b["bearer"] in BEARERS, 2) + need(is_uri(b["bearer_id"]), 2) + need(is_int(b["leaf_count"]), 2) + need(is_hex(b["sent"]), 2) + need(is_hex(b["sent_root"], 32), 2) + bearer_energy_body(b["energy"]) need(isinstance(b["attests"], str), 2) return if cls == "schedule": @@ -485,6 +497,14 @@ def check_body(cls, b): need(all(is_int(e[k]) for k in ("first_ms", "period_ms", "duration_ms", "count")), 2) need(isinstance(b["attests"], str), 2) return + if cls == "timeliness": + # timeliness §4.1: each entry's members, then each one's type in the table's order, a + # point's members and the fallback's where the table reaches them. + need(isinstance(b["objects"], list), 2) + for e in b["objects"]: + timeliness_entry_body(e) + need(isinstance(b["attests"], str), 2) + return if cls == "consumption": # ai-usage §6.1: the arrays' lengths and a term's are in the type column. need(isinstance(b["objects"], list) and 1 <= len(b["objects"]) <= 1024 @@ -582,6 +602,22 @@ def check_body(cls, b): need(is_token(b["alg"]) and is_uri(b["resolution_endpoint"]), 2) +def bearer_energy_body(e): + """bearer-receipts §4.1 `energy` at step 2, as a transmission and a cache-transmission claim + carry it: `null`, or a session's energy object, its members and then their types.""" + if e is None: + return + nested(e, SESSION_ENERGY) + need(is_int(e["joules_micro"]), 2) + need(isinstance(e["energy_provenance"], str), 2) + u = e["energy_uncertainty"] + if u is not None: + nested(u, UNCERTAINTY) + need(is_int(u["relative_ppm"]) and is_int(u["window_us"]), 2) + need(e["energy_counter_filtering"] is None or isinstance(e["energy_counter_filtering"], str), 2) + need(e["energy_calibration_ref"] is None or isinstance(e["energy_calibration_ref"], str), 2) + + def nested(v, required): """A nested object a table fixes: an object, then its members, missing then unknown.""" need(isinstance(v, dict), 2) @@ -1597,6 +1633,50 @@ def schedule_entry_rules(e): return blocks +# timeliness §4.1: an entry's members, a decay point's and a fallback's; §2's full value. +TIMELINESS_ENTRY = ["leaf_index", "content_hash", "from_ms", "by_ms", "decay", "fallback"] +TIMELINESS_POINT = ["at_ms", "value_ppm"] +TIMELINESS_FALLBACK = ["group", "leaf_index", "content_hash", "value_ppm"] +FULL_VALUE = 1_000_000 + + +def timeliness_entry_body(e): + """timeliness §4.1 at §3.1 step 2: one entry of `objects`, its members and then their types in + the table's order, each point's and the fallback's members where the table reaches them.""" + nested(e, TIMELINESS_ENTRY) + need(is_int(e["leaf_index"]) and is_hex(e["content_hash"], 32), 2) + need(is_int(e["from_ms"]) and is_int(e["by_ms"]), 2) + need(isinstance(e["decay"], list), 2) + for p in e["decay"]: + nested(p, TIMELINESS_POINT) + need(is_int(p["at_ms"]) and is_int(p["value_ppm"]), 2) + f = e["fallback"] + if f is not None: + nested(f, TIMELINESS_FALLBACK) + need(is_hex(f["group"], 32) and is_int(f["leaf_index"]), 2) + need(is_hex(f["content_hash"], 32) and is_int(f["value_ppm"]), 2) + + +def timeliness_entry_rules(e, subject): + """timeliness §4.2 rule 3 for one entry of a claim whose `subject` is given, the first of its + three to fail: the window, the decay, the fallback.""" + need(e["from_ms"] <= e["by_ms"] < LAST_INSTANT_MS, 4, "timeliness_window_invalid") + # Rule 3.2, with (t0, v0) = (by_ms, full value) before the points. Python's integers are + # exact, so the products, which reach 2^68, need no wider type. + pts = [(e["by_ms"], FULL_VALUE)] + [(p["at_ms"], p["value_ppm"]) for p in e["decay"]] + n = len(pts) - 1 + formed = (1 <= n <= 16 and all(a[0] < b[0] for a, b in zip(pts, pts[1:])) and pts[-1][0] <= LAST_INSTANT_MS + and all(v < FULL_VALUE for _, v in pts[1:]) and all(b[1] <= a[1] for a, b in zip(pts, pts[1:])) + and pts[-1][1] == 0 and all(v >= 1 for _, v in pts[1:-1]) + and all((pts[k - 1][1] - pts[k][1]) * (pts[k + 1][0] - pts[k][0]) + != (pts[k][1] - pts[k + 1][1]) * (pts[k][0] - pts[k - 1][0]) for k in range(1, n))) + need(formed, 4, "timeliness_decay_invalid") + f = e["fallback"] + need(f is None or (1 <= f["value_ppm"] <= FULL_VALUE and f["content_hash"] != e["content_hash"] + and (f["group"] != subject or f["leaf_index"] != e["leaf_index"])), + 4, "timeliness_fallback_invalid") + + def class_rules(c): """§3.1 step 4 — §2.4.5-§2.4.7 and §2.6.""" cls, b = c["class"], c["body"] @@ -1660,6 +1740,26 @@ def class_rules(c): need(len(idx) > 0 and all(x < y for x, y in zip(idx, idx[1:])), 4, "schedule_objects_malformed") for e in b["objects"]: schedule_entry_rules(e) + elif cls == "timeliness": + # timeliness §4.2. + need(b["attests"] == "valued", 4, "timeliness_not_valued") + idx = [e["leaf_index"] for e in b["objects"]] + need(len(idx) > 0 and all(x < y for x, y in zip(idx, idx[1:])), 4, "timeliness_objects_malformed") + for e in b["objects"]: + timeliness_entry_rules(e, c["subject"]) + elif cls == "cache-transmission": + # cache-authority §5.2, rules 1 to 4 in order; the bitmap as a reconciliation's. + need(b["attests"] == "transmitted", 4, "cache_transmission_not_transmitted") + need(b["bearer"] != "bidirectional", 4, "cache_transmission_on_bidirectional") + n, bits = b["leaf_count"], bytes.fromhex(b["sent"]) + bad = "cache_transmission_bitmap_malformed" + need(n >= 1 and len(bits) == (n + 7) // 8, 4, bad) + need(not any(bits[i // 8] & (0x80 >> (i % 8)) for i in range(n, 8 * len(bits))), 4, bad) + need(any(bits), 4, bad) + e = b["energy"] + if e is not None: + need(e["joules_micro"] != 0, 4, "energy_zero_figure") + acquisition(e) elif cls == "log-inclusion": need(b["log_receipt"] != "", 4, "log_inclusion_no_evidence") elif cls in ("soft-binding", "soft-binding-span", "binding-recovery"): @@ -2385,6 +2485,79 @@ def carousel_claims(path): return 1 if fail or n == 0 else 0 +def timeliness_claims(path): + """§3.1 steps 1-4 over the claims of the timeliness corpus (live-conformance/timeliness/vectors.json, + timeliness §10): a claim a verdict or a plan states refused at one of those steps is refused there + with the stated reason, and every other `timeliness`, `transmission` or `schedule` claim passes + them; and each claim case gets the outcome it states. Steps 5 and 6 are the timeliness + verifier's.""" + with open(path, encoding="utf-8") as f: + doc = json.load(f) + fail = n = 0 + checks = [] + for case in doc["verdicts"] + doc["plans"]: + if not isinstance(case["outcome"], dict): + continue + for wire, stated in zip(case["claims"], case["outcome"]["claims"]): + m = re.fullmatch(r"reject step=(\d) reason=(\S+)", stated) + checks.append((case["name"], wire, (int(m[1]), m[2]) if m and int(m[1]) <= 4 else None, True)) + for case in doc["claims"]: + m = re.fullmatch(r"reject step=(\d) reason=(\S+)", case["outcome"]) + checks.append((case["name"], case["claim"], (int(m[1]), m[2]) if m else None, False)) + for name, wire, want, in_context in checks: + try: + c = verify_claim(wire) + if in_context and c["class"] not in ("timeliness", "transmission", "schedule"): + continue + got = None + except Reject as r: + got = (r.step, r.reason) + n += 1 + fail += got != want + print(f"{'PASS' if got == want else 'FAIL'} {name} expected={want} got={got}") + print(f"{n} timeliness claims, {fail} failure(s)") + return 1 if fail or n == 0 else 0 + + +def cache_authority_claims(path): + """§3.1 steps 1-4 over the claims of the cache authority corpus + (live-conformance/cache-authority/vectors.json, cache-authority §12): a claim a verdict or a + tally states refused at one of those steps is refused there with the stated reason, and every + other claim it gives passes them; each claim case's claim gets the outcome it states, and the + earlier claims of its signer pass; and a timeliness claim a tally takes its deadline from, or a + line case its intent from, passes. Steps 5 and 6 are the cache authority verifier's.""" + with open(path, encoding="utf-8") as f: + doc = json.load(f) + fail = n = 0 + checks = [] + for case in doc["verdicts"] + doc["tallies"]: + if not isinstance(case["outcome"], dict): + continue + for wire, stated in zip(case["claims"], case["outcome"]["claims"]): + m = re.fullmatch(r"reject step=(\d) reason=(\S+)", stated) + checks.append((case["name"], wire, (int(m[1]), m[2]) if m and int(m[1]) <= 4 else None)) + if case.get("deadline_claim") is not None: + checks.append((case["name"], case["deadline_claim"], None)) + for case in doc["claims"]: + m = re.fullmatch(r"reject step=(\d) reason=(\S+)", case["outcome"]) + checks.append((case["name"], case["claim"], (int(m[1]), m[2]) if m and int(m[1]) <= 4 else None)) + checks += [(case["name"], wire, None) for wire in case["earlier"]] + for case in doc["lines"]: + if case["outcome"]: + checks.append((case["name"], case["claim"], None)) + for name, wire, want in checks: + try: + verify_claim(wire) + got = None + except Reject as r: + got = (r.step, r.reason) + n += 1 + fail += got != want + print(f"{'PASS' if got == want else 'FAIL'} {name} expected={want} got={got}") + print(f"{n} cache authority claims, {fail} failure(s)") + return 1 if fail or n == 0 else 0 + + def main(argv): if argv[1:2] == ["brackets"]: for name, br, _, _ in bracket_fixture(): @@ -2399,6 +2572,10 @@ def main(argv): return bearer_claims(argv[2]) if argv[1:2] == ["carousel"] and len(argv) == 3: return carousel_claims(argv[2]) + if argv[1:2] == ["timeliness"] and len(argv) == 3: + return timeliness_claims(argv[2]) + if argv[1:2] == ["cache-authority"] and len(argv) == 3: + return cache_authority_claims(argv[2]) if argv[1:2] == ["fixture"]: c, canon, link = fixture() print("sig ", c["sig"]) diff --git a/wai/claim-conformance/vectors.json b/wai/claim-conformance/vectors.json index 5694237c6..6cec01af6 100644 --- a/wai/claim-conformance/vectors.json +++ b/wai/claim-conformance/vectors.json @@ -24863,6 +24863,166 @@ "step": 6, "reason": "session_stage_hash_not_exact" } + }, + { + "name": "session_switch_not_held_by_deadline_accept", + "about": "the model session switching to the fallback because the primary was not held by its deadline, the reason timeliness section 8.6 adds to delivery-telemetry section 5", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":5935,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":0,\"leaves\":4,\"module_status\":null,\"object\":\"d09526cec3961c21e36cc08f0b393323eb82dcc4203cb08df57fee36784b1113\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":4,\"leaves\":1,\"module_status\":null,\"object\":\"f18f33c4eebadf2caf00fb22a38cf394e19d31a62ebe68f3043c31c84ecbcf44\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":5,\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":0,\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":0,\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":0,\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"first_unit\":0,\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"7ff63c64ae3826c013fd8c2387f51307c4bf715842b0a803528349e200d95551\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"not-held-by-deadline\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":9995,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2fd7cc2e8a538691b92585b89b84ebdfe600e44ae5b8bec8a4b9f8aed574106fa3c2d6430d0903a11a3e5e940cb3aa0899bb188a221e27672c7a6e4e62b61606\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"d09526cec3961c21e36cc08f0b393323eb82dcc4203cb08df57fee36784b1113\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + } + ], + "objects": [ + { + "content_hash": "d09526cec3961c21e36cc08f0b393323eb82dcc4203cb08df57fee36784b1113", + "path": "primary", + "counted": 328, + "transferred": 328, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "f18f33c4eebadf2caf00fb22a38cf394e19d31a62ebe68f3043c31c84ecbcf44", + "path": "primary", + "counted": null, + "transferred": 1060, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7da40000005749563101010100040000001000000010000000100000000100000000000000030000000000000000800000000001000000000000000000000000000800000033333333333333335800000057494831010000000400000004000000040000000200000002000000020000000800000088ed3fe30c2b720028000000207259165ca81100a400842d62ce1516f300b254190111b4810047cdf7b87ea2235e87911bb87ecb" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d0200000000009800000098000000bc0200005749563101010100010000001000000010000000010000000100000000000000030000000000000000800000000001000800000033333333333333335800000057494831010000000400000004000000040000000200000002000000020000000800000088ed3fe30c2b720028000000207259165ca81100a400842d62ce1516f300b254190111b4810047cdf7b87ea2235e87911bb87ecb22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4dd3d2224ea284c09e0b1d28842547fdb90f2887c7adfccd35d58d192932741d10f2b89b96426fc87f445b7dddcd0484ddb8b9fd46864ae335cb219059d5660d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"d09526cec3961c21e36cc08f0b393323eb82dcc4203cb08df57fee36784b1113\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "146e116daf523e37f7c7e3c6af654d50ae0410659d70aefcac10af07a906e352" + } } ] } diff --git a/wai/extensions/bearer-receipts.md b/wai/extensions/bearer-receipts.md index 23f05055a..69032ca62 100644 --- a/wai/extensions/bearer-receipts.md +++ b/wai/extensions/bearer-receipts.md @@ -38,6 +38,10 @@ When each object passes on a bearer with no return path, and with which forward correction, is [carousel](carousel.md)'s: a publisher's `schedule` claim beside the transmission claim here, from which a verifier derives when a receiver within a loss bound holds each object. +A node that sends again, over a bearer instance of its own, objects it holds of a group another key +signed, declares that instance in a `cache-transmission` claim, and reconciliations over it are +counted beside the publisher's instances: [cache-authority](cache-authority.md) §5, §7. + Out of scope: a transport or a bearer; a reception-reporting protocol — a reconciliation travels on whatever path a sink later has, as a receipt file (http-delivery §8.1) or inside a bearer's own reporting (§9); a pre-emption authority ([unidirectional-delivery](unidirectional-delivery.md) @@ -56,7 +60,8 @@ verifies. It names no payload format and is not dispatchable. - `multicast`: one transmission reaches every sink that joined it, with no per-sink path on the bearer itself; a sink may have another path; - `unidirectional`: one transmission, and no path back from any sink. -- **Bearer instance**: one transmission a publisher made, named by an absolute URI, its +- **Bearer instance**: one transmission a publisher made, or a node that sends again what it holds + ([cache-authority](cache-authority.md) §5), named by an absolute URI, its `bearer_id`: a multicast session, a broadcast service, a relay chain's origin. WAI reads nothing from it and compares it byte for byte. - **Transmission**: putting a group's objects and their receipts onto a bearer instance. @@ -157,7 +162,7 @@ never in the publisher's chain, and nothing in the publisher's chain changes whe | member | type | meaning | |---|---|---| | `bearer` | string | The class of the bearer the sink received over (§2). | -| `bearer_id` | absolute URI | The bearer instance it received over: the `bearer_id` of the publisher's transmission claim for that instance. | +| `bearer_id` | absolute URI | The bearer instance it received over: the `bearer_id` of the publisher's transmission claim, or of a node's cache-transmission claim, for that instance. | | `leaf_count` | integer | The group's `leaf_count`. | | `received` | hex | A bitmap of ⌈`leaf_count` / 8⌉ bytes. Object *i* is bit `0x80 >> (i mod 8)` of byte ⌊*i* / 8⌋, so the hexadecimal reads left to right in object order; the bit is set exactly when the sink accepted object *i* under jwp-receipts §3 steps 1–6 over its bytes. | | `received_root` | 32 B hex | The root jwp-receipts §2.2 computes over the leaves of the received objects, in increasing `leaf_index`, each leaf in the form its object receipt takes (legacy or labelled). With every bit set it is the group's `root_hash`. | diff --git a/wai/extensions/cache-authority.md b/wai/extensions/cache-authority.md new file mode 100644 index 000000000..c59bc6641 --- /dev/null +++ b/wai/extensions/cache-authority.md @@ -0,0 +1,734 @@ +# WAI Extension: Cache Authority + +> Status: Draft. Registers the record `wai.delivery.cache`: who served what a node holds, and on +> whose authority. A neighbourhood cache or a peer that serves, from what it holds, objects of +> groups another key signed changes no byte: the publisher's receipts verify whatever it serves +> (jwp-receipts §3), and a receiver's acknowledgement of it (settlement §3) is already the signed +> word that it served. What was missing is the authority to place such a node and a statement for +> a bearer instance of its own with no path back. This extension adds two authorities a node's +> operator gives in its key log — the role `cache/serve` and the class authority +> `cache-transmission` (§4) — and one claim, a jwp-receipts claim of class +> **cache-transmission** (jwp-receipts §2.4.18, §5 here), by which a node declares a `multicast` +> or `unidirectional` instance of its own and the objects of a group it sent over it, with a root +> under the publisher's tree checked without the bytes. A verifier places a server key by the key +> logs its relying party names, in jwp-receipts' three levels (§4.4); derives the bearer verdict +> with the caches' instances beside the publisher's, crediting a cache per instance and only for +> what it says it sent (§7); and counts, of a population of receiver keys stated for a region, how +> many held an object by a deadline on their own signed word, with a miss rate in parts per million +> held to a target (§8). WAI defines no transport. The reference implementation is the +> `cache_authority` module of `wai-rs` (feature `cache_authority`), with the class's body in +> `claim_receipt::bearer`; the corpus is +> [`live-conformance/cache-authority/`](../live-conformance/cache-authority/), and its second +> implementation is `live-conformance/cache_authority_verify.py`. +> Keywords **MUST**, **MUST NOT**, **SHOULD**, **MAY** are RFC 2119/8174. +> +> Texts read for this revision: `draft-ietf-moq-transport-23` (MOQT) §2.1, §7.1 and §7.9; RFC 9421 +> §2.3, §2.5, §3.3.6, §4.3 and §7.2.8; RFC 9211 §2, §2.1, §2.2, §2.5 and §6; RFC 7574 §3.2, §9.2 +> and §11.2.4; RFC 8006 §4.3.8 and RFC 9388 §2.1.1.1 and §4.1. A clause number of one of them in +> this text is that text's. + +## 1. Scope + +In scope: the authorities a node that serves from what it holds signs under, who gives them, and +how a verifier places a server key (§4); the cache-transmission claim (§5); what a receiver of a +peer-served object does (§6); the bearer verdict with a cache's instances (§7); and the count of a +stated population's receivers that held an object by a deadline (§8). + +Out of scope: a transport; how a node chooses what to keep, or an asker whom to fetch from, which +are [holdings](holdings.md) §5.4's; a record of service beside settlement's acknowledgement and +declaration (settlement §3, §4), which this extension does not add; where a receiver is, which is +its own state (§8.1); a price, which is [rung-price](rung-price.md)'s; and which settlement object +class carries an object a node serves on request from what it holds outside a room (§9). + +Relationship to the core spec: `wai.delivery.cache` is a **record** ([SPEC](../SPEC.md) §5): the +cache-transmission claim is a signed record a WAI tool emits and verifies. It names no payload +format and is not dispatchable. + +## 2. Terms + +- **Group**, **link hash**, **leaf count**, **content hash**: as [jwp-receipts](jwp-receipts.md) + §2.1, §2.4.1 and §3 step 3. Object *i* of a group is its object at position *i*, from 0. +- **Publisher**: the key that signed a group. **Node**: a party that serves, from what it holds, + objects of groups another key signed — a neighbourhood cache, a peer, a home gateway. +- **Bearer**, **bearer class**, **bearer instance**: as [bearer-receipts](bearer-receipts.md) §2. + A **cache instance** is a bearer instance a node declares as its own (§5). +- **Head**: the head revision of an origin's key log (jwp-receipts §7.2), as a JSON text, keyed by + the origin; **held**: passing jwp-receipts §7.2 rules 1 to 3 for that origin. +- **Instant**: a count of milliseconds since 1970-01-01T00:00:00Z, leap seconds not counted, as + [holdings](holdings.md) §2 writes one. **Last instant**: 253,402,300,799,999 + (9999-12-31T23:59:59.999Z), as [timeliness](timeliness.md) §2 bounds a deadline. A settlement + window is in microseconds and excludes its `end` ([settlement](settlement.md) §2). +- **Held-at statement**: timeliness §2's: a key, a group, a position and an instant, the key's + signed word that it held that object no later than that instant, and its rule for a statement + before its group. +- **Region**: a region code of rung-price §2. **ppm**: parts per million. +- **Bitmap**: object *i* is bit `0x80 >> (i mod 8)` of byte ⌊*i* / 8⌋, as a reconciliation's + `received` is (bearer-receipts §5.1). + +## 3. Why two authorities and one claim + +- **No new record of service.** "These bytes, I served them" exists: a settlement declaration is + the server's word, and an acknowledgement the receiver's countersigned word, with byte ranges and + a signed window. Nothing here adds a third. +- **Two authorities, as relays already hold them.** A relay holds a role authority (`live/relay`, + [live-metering](live-metering.md) §5.2, settlement §13) and, to sign a `delivery-gap` claim, + that class's own (jwp-receipts §7.5 *Stage and delivery gap*). A node does the same: the role + `cache/serve` places it as a server, and the class authority `cache-transmission` lets it sign + the one claim this extension registers. +- **One claim, for an instance with no path back.** Over a two-way link the receiver acknowledges + what it received. Over a node's own `multicast` or `unidirectional` instance it can only + reconcile later (bearer-receipts §5), and a reconciliation over an instance nobody declared is + counted nowhere (bearer-receipts §6.2 step 5). jwp-receipts §4.3 requires relay attestation to be + "carried as a separate, parallel receipt", and §7.5's last item notes it has no class: the + cache-transmission claim is that receipt. +- **A statement about one group, as a claim.** It is about one group, travels with its receipts + on the same bearer, and is the counterpart of `transmission` and `reconciliation`, so it is a + jwp-receipts claim under the claim domain, chained per signer (jwp-receipts §2.4.3), not a binary + record. + +## 4. Authorities + +### 4.1 What `cache/serve` lets a key do + +A key that holds `cache/serve` acts as a node that serves, from what it holds, objects of groups +another key signed. Under it the key signs its holdings records (holdings §4) and its +declarations of what it served (settlement §4), and is the `upstream` of the acknowledgements its +receivers sign (settlement §3). A key that also holds `cache-transmission` signs +cache-transmission claims (§5), each declaring a bearer instance of its own and the objects of one +group it sent over it. That is all either covers. + +### 4.2 What neither lets a key claim + +- **Authorship**: one signer per group (jwp-receipts §4.3). Neither is `delivery`, and a key with + them alone confirms no group receipt (jwp-receipts §7.4 step 6, `authority_not_granted`). +- **Transformation**: other bytes are a new object ([http-delivery](http-delivery.md) §9; + [deriving-edge](deriving-edge.md) §3.2), which needs `edge/derive`. +- **The publisher's statements and rights**: every other class keeps its own authority + (jwp-receipts §7.5), and a node forwards those statements unaltered (jwp-receipts §4.1). +- **The publisher's transmission**: a `transmission` claim is signed by the group's key + (bearer-receipts §4.3 step 2). A node declares only an instance of its own (§5), never the + publisher's (§7.2 step 4), and a cache instance never makes a group `transmitted` (§7.3). +- **A room's hop**: neither is `live/relay`; a per-hop session record keeps its role + (live-metering §5.2). + +A node's class under jwp-receipts §4 is set by what it does, not by these authorities: a §4.1 relay +when it reads the receipts it forwards (jwp-receipts §4.5), an HTTP cache under jwp-receipts §4.5 +when it stores and serves byte for byte. jwp-receipts §4.3 binds it either way. + +### 4.3 Who gives them + +The **node's operator's origin** lists, in its key log, the nodes it runs with `cache/serve`, and +with `cache-transmission` those that declare instances of their own, as it lists its relays with +`live/relay` and `delivery-gap`: + +- **Integrity needs no grant.** A node changes no byte, so jwp-receipts §3 verifies what it serves + against the publisher's receipts, whoever it is. `edge/derive` comes from the source's origin + (deriving-edge §8) only because an edge publishes new bytes under the source's content. +- **The payer places the server.** Settlement §13 pays on keys "the hop's origin lists with the + authority of its role". +- **It scales without the publisher.** A neighbourhood node holds the groups of every publisher on + a broadcast; making each publisher list every node would make the content's owner run the + carrier's fleet. + +A publisher that runs its own nodes lists them under its own origin, which is then the operator's. +An origin **SHOULD NOT** give `cache/serve` or `cache-transmission` to a key it also gives +`delivery`: such a key's sending of its own groups is the publisher's (bearer-receipts §4), and its +cache-transmission claim over them is refused (`cache_transmission_by_publisher`, §5.3 step 2). +Neither authority is pinned-only: nothing a sink presents or obeys depends on it. + +### 4.4 Placing a server key + +**Inputs.** A 32-byte Ed25519 key *K*; an instant `at_ms`, the time of the item the key is placed +for; and the heads the relying party names, each a JSON text keyed by its origin (as deriving-edge +§7.1 holds them). A JSON object cannot hold one origin twice (jwp-receipts §3.1 step 1), so there is +one head per origin. No randomness and no clock. + +**Serving roles**, in this order: `cache/serve`, `live/relay`, `live/compositor`, `live/ingest` +(the last three the roles settlement §13 places). + +**Steps.** Heads are read in increasing byte order of their origins (jwp-receipts §7.1); "least" +below is first in that order. A retired entry's `until` is read as seconds since 1970, and +`at_ms` is **later than** it when `at_ms` > `until` × 1000, as jwp-receipts §7.4 step 5 compares +times. The placement is the first of these that holds: + +1. **refused `key_revoked`**, with the least such origin and the entry's `compromised_since`: a + held head has an entry whose `key` is *K* and whose `status` is `revoked`, whatever its + `may_sign`. A revocation attests that another party may hold the key (jwp-receipts §7.2), so no + role outlives it. +2. **unconfirmed `key_log_not_held`**, with the least such origin: a head is not held. It might + revoke *K*, so nothing is confirmed while it cannot be read. +3. **confirmed**, with the least such origin, the entry's `id`, the first serving role in the order + above that its `may_sign` holds and, for a retired entry, its `until`: a held head has an entry + whose `key` is *K*, whose `may_sign` holds a serving role, and which is `active`, or `retired` + with `at_ms` not later than its `until`. +4. **refused `key_retired`**, with the least such origin and its `until`: a held head has an entry + whose `key` is *K* and whose `may_sign` holds a serving role, and every such entry is retired + with `at_ms` later than its `until`. +5. **refused `authority_not_granted`**, with the least such origin: a held head lists *K* with no + serving role. +6. **unconfirmed `server_not_listed`**: no head lists *K*, including when no head is given. + +A placement is written `confirmed origin=… key_id=… role=…`, followed by ` until=…` for a retired +entry; `unconfirmed reason=server_not_listed`; `unconfirmed reason=key_log_not_held origin=…`; +`refused reason=key_revoked origin=… compromised_since=…`; +`refused reason=key_retired origin=… until=…`; or `refused reason=authority_not_granted origin=…`. + +The levels are jwp-receipts §7's, never reported as one another. A key that claims no origin +contradicts nothing by being absent from a head, so step 6 is unconfirmed; a head that lists the +key and withholds the role, or revokes or retires it, speaks against it, so steps 1, 4 and 5 are +refused. A placement is not jwp-receipts §7.4's confirmation: it uses the heads the relying party +names, held under rules 1 to 3, with no anchor (jwp-receipts §7.3), as deriving-edge §8 checks +`edge/derive`. A cache-transmission claim's own confirmation of its `signer_id` (with +`cache-transmission`) is reported beside it, as for any claim; neither changes the other. + +**Which instant.** For a cache instance (§7.2 step 4), the latest instant any of its claims' +`issued_at` allows (§8.3). For a server in a tally (§8.4), the latest on-time evidence instant that +credits it. For any other item, its own signed time. + +A placement **never** changes a verdict (§7) or a hit (§8). It decides only how a server is +reported, and which keys a payer may honour (settlement §13). A placement is never an error: no +head makes a verdict or a tally fail. + +### 4.5 The holdings key and the service key + +Holdings §9 lets a node sign each record with a fresh key, for privacy; settlement §13 pays only +keys it can place. A node whose service is to be placed signs its holdings records, its +declarations and its claims with **the key its operator lists**. An asker names, as `upstream`, the +key it found the object under (holdings §5.4), and a payer places that key. A node that signs with +fresh keys has chosen not to be linked, and privacy wins where the holder chooses it: its askers +still verify what it serves (§6), its service still counts as hits (§8), and it is reported +`unconfirmed server_not_listed`, paid as no one's. + +## 5. The cache-transmission claim (`class: "cache-transmission"`) + +A node that sent, from what it held, objects of a group another key signed, over a `multicast` or +`unidirectional` bearer instance of its own, **MAY** declare it in a `cache-transmission` claim, +one per instance and group, after it has sent what it declares. Its `subject_type` is `receipt` +and its `subject` the group receipt's link hash (jwp-receipts §3 step 3). It is signed by the +node's key, never the group's. `signer_id` is the node's operator's origin-bound `did:web` where +its log lists the key, or its `did:key` otherwise; the second form is unconfirmed under +jwp-receipts §7.4 step 1 and still placeable by §4.4, which matches the key's bytes. + +### 5.1 Body + +| member | type | meaning | +|---|---|---| +| `bearer` | string | The instance's class, one of bearer-receipts §2's; another string is `field_type` at jwp-receipts §3.1 step 2. | +| `bearer_id` | absolute URI | The node's own instance. WAI reads nothing from it and compares it byte for byte. | +| `leaf_count` | integer | The group's leaf count. | +| `sent` | hex | A bitmap of ⌈`leaf_count` / 8⌉ bytes. The bit of object *i* is set exactly when the node sent object *i* over the instance, from what it held, as the bytes the group's receipts commit to. | +| `sent_root` | 32 B hex | jwp-receipts §2.2's root over the leaves of the sent objects, in increasing position, each leaf in the form its object receipt takes (legacy or labelled). With every bit set it is the group's `root_hash`. | +| `energy` | object or `null` | As bearer-receipts §4.1 `energy`: what the instance spent sending these objects, every repetition included. `null` when not metered, never a figure of 0. | +| `attests` | string | **MUST** be `"transmitted"`. | + +One meaning has one form: the bitmap sets at least one bit and none at or past `leaf_count` +(§5.2 rule 3), hex is lowercase (jwp-receipts §2.4.3), and `energy` is `null` or an object, never +absent. + +```json +{"body":{"attests":"transmitted","bearer":"multicast","bearer_id":"https://bearer.example/mesh-c1", +"energy":null,"leaf_count":4,"sent":"50","sent_root":"<32 B hex>"},"class":"cache-transmission", +"issued_at":"2026-11-03T11:00:05Z","kind":"claim","parent_receipt_hash":null,"seq":0, +"sig":"<64 B hex>","signer_id":"did:web:operator.example#c1","signer_pubkey":"<32 B hex>", +"subject":"","subject_type":"receipt"} +``` + +(`"50"` holds objects 1 and 3 of four.) + +### 5.2 Rules + +At jwp-receipts §3.1 step 4, in order: + +1. `attests` is `"transmitted"`: otherwise `cache_transmission_not_transmitted`. A declaration that + says it attests more is refused, never read as a weaker one. +2. `bearer` is not `bidirectional`: otherwise `cache_transmission_on_bidirectional`. Over a path + back the receiver acknowledges what it received (settlement §3), and a second statement of the + same service would count it twice. +3. `leaf_count` is at least 1, `sent` holds exactly ⌈`leaf_count` / 8⌉ bytes, no bit at or past + `leaf_count` is set, and at least one bit is set: otherwise + `cache_transmission_bitmap_malformed`. A node that sent nothing has nothing to declare. +4. Where `energy` is not `null`: bearer-receipts §4.2 rule 2 (`energy_zero_figure`, + `energy_unknown_acquisition`, `energy_legacy_acquisition`, `energy_acquisition_evidence`). + +### 5.3 Against the group + +At jwp-receipts §3.1 step 6, against the group receipt the verifier holds, which passes +jwp-receipts §3 steps 1 and 2 (`context_invalid` otherwise; a receipt of another kind is +`context_mismatch`), and the object receipts it holds under that group, each of which passes +jwp-receipts §3 step 5 (inclusion at least), in order: + +1. the group's link hash is `subject`: otherwise `cache_transmission_subject_mismatch`; +2. `signer_pubkey` is not the group's: otherwise `cache_transmission_by_publisher`. A publisher's + own sending is a `transmission` (bearer-receipts §4); +3. `leaf_count` is the group's: otherwise `cache_transmission_leaf_count_mismatch`; +4. with every bit set, `sent_root` is the group's `root_hash`. Otherwise the verifier holds an + object receipt at every set position (`cache_transmission_objects_not_held`, recoverable by + obtaining them, never accepted silently), and `sent_root` is the root over their leaves + (`cache_transmission_root_mismatch`). A root over a leaf that is not the group's at its + position is refused here: the digests served are checked against a group the node did not + author, without the bytes. + +A claim checked without its group stops at step 5 and is counted nowhere (§7). + +### 5.4 What it attests + +The node says it sent those objects, from what it held, over its instance. It does not attest that +any receiver received them (a reconciliation's, bearer-receipts §5), that it authored or changed +them, or that it had any right of the publisher's to send them. A transmission is not a delivery, +on any bearer (bearer-receipts §2). + +Each of a node's statements binds to the group by hash and none re-signs or re-roots anything +(jwp-receipts §4.3): a cache-transmission claim by `subject` and by `sent_root` under the group's +root; a holdings record by its entry's `group`; a settlement record by its items' content hashes. +A node's claims chain per signer through `parent_receipt_hash` and `seq` (jwp-receipts §2.4.3), +across every group it declares, so a verifier is given its earlier claims or reports +`parent_not_held`. There is no hop bound: a peer served by a peer is two services, each checked +against the publisher's receipts at its own door (jwp-receipts §4.1). + +### 5.5 Authority + +Confirmed under jwp-receipts §7, the claim needs `cache-transmission`, which is neither pinned-only +nor `delivery`. Where `energy` is not `null`, its figure is a second item that needs +`cache-transmission` and `energy/`, as a transmission's does (bearer-receipts §4.4). The +claim's signer is placed as a server by §4.4, reported beside. + +## 6. A peer-served object at the receiver + +- **The verdict is unchanged.** The receiver verifies the object under its object receipt and the + group receipt (jwp-receipts §3): `delivered-verified` over the bytes it received, whoever sent + them (holdings §6). +- **Placement is not evidence.** A receiver **MUST NOT** treat a server's placement (§4.4) or its + claims as evidence of the bytes. It **MAY** report the placement beside the verdict, never + changing it. +- **What counts the service.** With a path back, the receiver acknowledges the server (settlement + §3, `upstream` the key it fetched from). With none, it reconciles over the server's instance + (bearer-receipts §5, `bearer_id` the node's). Either is what §8 counts. +- **Learning the server's key.** From the server's holdings record, or over HTTP from a response + signature (§10). An object whose bytes fail is refused as jwp-receipts §3 refuses it and is never + acknowledged (settlement §10). + +## 7. The verdict + +### 7.1 Inputs + +Bearer-receipts §6.1's — the group receipt, the object receipts with envelopes where held, the +claims in each signer's chain order, optionally a sink's own class and instance, a statement +offered and `count_only` — with cache-transmission claims among the claims, and the heads of §4.4. + +A verifier that implements bearer-receipts and not this extension refuses a cache-transmission +claim (`unknown_class` before this registration, `context_mismatch` at bearer-receipts §6.2 step 3 +after it) and sets aside a reconciliation over a cache instance as `bearer_not_declared`: the +unknown class is reported, as jwp-receipts §2.4.4 requires, never counted. + +### 7.2 Steps + +1. **The group and its objects**: bearer-receipts §6.2 steps 1 and 2. A group that fails is refused + with its reason, and nothing is derived from it. +2. **The claims**, in order: jwp-receipts §3.1 steps 1 to 5, then step 6: a transmission claim by + bearer-receipts §4.3, a reconciliation by bearer-receipts §5.3, a cache-transmission claim by + §5.3 here. A claim of any other class is `context_mismatch`. A refused claim takes no further + part. +3. **The publisher's declarations**: bearer-receipts §6.2 step 4. +4. **The caches' instances**: the accepted cache-transmission claims, by `bearer_id`. Every claim of + an instance is set aside `bearer_contradicted` when: + - an accepted transmission claim has that `bearer_id`, whether its declarations stand or were set + aside at step 3: the instance is the publisher's, and a party that names it as its own + contradicts the publisher, whose declarations keep what step 3 gave them; or + - two of them differ in signer or in body: one instance is one party's transmission, and a node + that changes its account of it has stated neither. Such an instance is **contradicted**. + + Two with the same signer and body are one, whatever their `issued_at` and `seq`. Otherwise the + instance **stands**; its **server** is the claims' signer, placed by §4.4. +5. **The reconciliations**, each accepted one in order, are counted as bearer-receipts §6.2 step 5 + counts them, over the publisher's declarations and the caches' instances that stand. One is set + aside, and counted nowhere, at the first of these that holds: + - step 3 set aside the declarations of its `bearer_id`, or its `bearer_id` is a contradicted + cache instance (`bearer_contradicted`); + - neither a declaration nor a cache instance that stands has its `bearer_id` + (`bearer_not_declared`); + - that declaration or instance names another `bearer` (`bearer_contradicted`); + - it is over a cache instance and signed by its server (`self_acknowledged`, settlement §3.6): + a party's statement that it received what it sent; + - `count_only` is given and its signer is not among it (`sink_not_confirmed`). + + Otherwise it is **counted** for its instance. A second counted reconciliation of one key for one + instance adds no sink (`reconciliation_duplicate_sink`); its bits are joined to the first's. +6. **The counts**: + - bearer-receipts §6.2 step 6 over every counted reconciliation, of either kind of instance: + `sinks`, `whole` and `received_by`, each key's bits joined across all instances; + - for each publisher's declaration that stands, its `sinks`, as bearer-receipts gives them; + - for each cache instance that stands, in increasing byte order of `bearer_id`: its `bearer_id`, + `bearer`, server, placement and the objects it sent; its `sinks`, the distinct keys counted + for it; and, for each object it sent, the distinct keys whose bits **over this instance's + counted reconciliations alone** hold it. A cache is never credited for an object it does not + say it sent, nor for one a key received over another instance. +7. **Energy per receiver** (§7.4). + +A claim's label is bearer-receipts §6.2's (`declared`, `counted`, +`joined reason=reconciliation_duplicate_sink`, `set-aside reason=…`, +`reject step=N reason=…`), and `cache-declared` for a cache-transmission claim whose instance +stands. + +### 7.3 Status, statements and a sink's own instance + +- **Status** is bearer-receipts §6.3's over the publisher's declarations and every counted + reconciliation: `reconciled` when a reconciliation is counted for any instance (the sinks' + word); otherwise `transmitted` when a **publisher's** declaration stands; otherwise + `published`. A cache instance that stands never makes a group `transmitted`, whose meaning is + that the publisher sent it over the bearers declared; the instances are reported beside the + status. +- **Statements** (bearer-receipts §6.4): "transmitted over a bearer class" holds only on a + publisher's declaration of that class that stands; "delivered to *k* sinks" reads `whole`, as + there. +- **A sink's own instance** (bearer-receipts §6.5): `bearer_contradicted` when its instance's + declarations were set aside or it is a contradicted cache instance; where a publisher's + declaration stands for it, `declared` when the classes agree and `bearer_contradicted` when they + do not; where a cache instance stands for it, `cache-declared` when the classes agree and + `bearer_contradicted` when they do not; otherwise `bearer_not_declared`. + +Never delivered on the publisher's word (bearer-receipts §6.3) holds unchanged, and never +delivered on a node's. + +### 7.4 Energy per receiver + +Bearer-receipts §7 for each cache instance that stands whose `energy` is not `null`: +⌈`joules_micro` / max(1, *n*)⌉, *n* its counted keys. It is an upper bound, stated with the +figure's class, and never added to another instance's or class's. A `null` figure gives no bound, +never 0. + +## 8. Held by a deadline + +### 8.1 The population + +The relying party states a **population**: a **region** and the receiver keys it counts there. The +keys are the bearer verdict's `count_only` set (bearer-receipts §6.1): the tally runs the verdict +with `count_only` the population's keys, replacing any given. + +- **Region**: a region code of rung-price §2, in its capitals, checked by its grammar alone, so + ISO's user-assigned codes pass. This text restates neither the grammar nor its CDNI case mapping. + A price entry (rung-price §4.2) applies to a population when its `footprint` holds the region + (rung-price §2 *Holds*). +- **Keys**: 1 to 1,048,576 Ed25519 keys, in strictly increasing order of their bytes: one + canonical form, no key twice. +- **Population digest**: SHA-256 over `wai:cache-population` (ASCII) and the byte 0x01; one byte, + the region's length, then the region (ASCII); a four-byte big-endian *n*, then the *n* keys in + order. Region and keys are both inside it, so a population cannot be relabelled. + +The population is the relying party's word. Nothing here places a key in a region: a receiver's +location is its own state, and "a sink can lie about its own state" +([unidirectional-delivery](unidirectional-delivery.md) §2). A key is not a receiver +(bearer-receipts §7). + +### 8.2 Inputs and checks + +The verdict's inputs (§7.1), and: the **acknowledgements**, each a `WDA1` record's bytes with the +item list of each of its entries; the **holdings records**, each a `WHD1` record's bytes (holdings +§4); the object's position *i*; the **deadline**; the population; and `miss_target_ppm`. + +The deadline is either `deadline_ms`, an instant the relying party states, or a timeliness claim +(its text) whose entry for object *i* stands (timeliness §4, §6.2 steps 2 and 3, against the same +group): `deadline_ms` is then that entry's `by_ms`, and the tally reports the claim's link hash +beside it. + +The tally is refused at the first of these that holds, and derives nothing: + +1. the population breaks §8.1: `population_invalid`; +2. a stated `deadline_ms` is past the last instant, or `miss_target_ppm` is above 999,999: + `target_invalid`; +3. the group fails: its reason (§7.2 step 1); or its `group_start` is not an RFC 3339 date-time + (jwp-receipts §2.4.3): `context_invalid`, as [carousel](carousel.md) §4.3 refuses a schedule's + group; +4. *i* is at or past the group's leaf count: `object_out_of_range` (holdings §7); +5. the verifier does not hold object *i* `delivered-verified` (§7.2 step 1, with its envelope): + `object_not_verified`. Object receipts carry no length (jwp-receipts §2.4.2), and without the + envelope's length ℓ a whole object cannot be told from part of one. The envelope gives ℓ and + the content hash *h*; +6. the deadline is a timeliness claim that is refused at jwp-receipts §3.1 steps 1 to 6 against + this group, the object receipts the verifier holds under it and their envelopes where it holds + them (timeliness §4.3, its steps 6 and 8 among them), with no claim of its signer held before + it, or that has no entry for *i*: `deadline_not_stated` (timeliness §9). An object with no + deadline is never on time. + +A head that is not held refuses nothing: it leaves placements unconfirmed (§4.4 step 2). + +### 8.3 Evidence + +Each piece of evidence is a **held-at statement** of timeliness §2, whose instant is the latest the +signed word allows, in milliseconds, rounded up where the word is finer. This text adds two kinds to +the one timeliness derives from holdings records, and restates neither the form nor the rule: + +- a counted reconciliation's instant is its `issued_at`, read as jwp-receipts §2.4.3 reads it + (offset applied, second 60 read as the next minute's first), rounded up to the millisecond: + 1000 × those seconds + ⌈*f* × 1000⌉, with *f* the written fraction as a decimal (so + `…:00.000001Z` adds 1 and `…:00.2Z` adds 200). Its whole seconds are those seconds, the fraction + dropped; +- an acknowledgement's instant is its window's **last microsecond**, `end` − 1, since a window's + `end` is excluded (settlement §2), rounded up to the millisecond: ⌈(`end` − 1) / 1000⌉. Its whole + seconds are ⌊(`end` − 1) / 1,000,000⌋. The window's `start` is never read. + +**Before the group.** By timeliness §2's rule, a statement whose whole seconds are below the seconds +jwp-receipts §2.4.3 reads from the group's `group_start` is before its group, and is set aside +`held_before_group`: it gives no evidence. For an acknowledgement, that is an `end` at or below the +group's start in microseconds. A receiver whose clock was never set signs instants near 1970, and +they are never on time. + +Only a population key's evidence is read. For each population key *k*: + +- **Reconciliation evidence.** Each reconciliation counted at §7.2 step 5 (its label `counted` or + `joined`) whose signer is *k* and whose bit *i* is set: a held-at statement at its instant, set + aside when before the group. Its **server** is its instance's sender when it sent *i*: the + group's key for a publisher's declaration, the cache's server when its `sent` holds *i*; none + otherwise. A reconciliation attests no timeliness (bearer-receipts §5.4); what is read is its + signer's signed word that it held the objects when it signed the claim, and a receiver with no + path back signs at reception and sends the claim later. +- **Acknowledgement evidence.** Each acknowledgement given is read under settlement §3.6 (its + codes, among them `truncated`, `malformed`, `unknown_version`, `ack_invalid`, + `self_acknowledged`, `bad_key` and `bad_signature`); a declaration (`mode` 2) is its server's own + word and never evidence (settlement §4.2); a record of `mode` 1 must be given one item list for + each of its entries (`record_missing`), each reading and recomputing against its entry + (`items_invalid`, `items_mismatch`). Each is labelled, in order: `reject reason=…`, + `declaration`, `before-group` when it reads and its last microsecond is before the group, and + `read` otherwise. A record that does not read gives no evidence. Items of every object class + count: the class is settlement's, and the tally reads only content hashes and ranges. Then, of the + records that read, with `downstream` *k*: + 1. take those that hold an item of *h*, setting aside those before the group, and order the rest + by `end`, then by digest (settlement §3.5); + 2. the first record at which the union of *h*'s byte ranges, in it and in the records before it, + covers every byte from 0 to ℓ − 1 gives the evidence: a held-at statement at that record's + last microsecond; + 3. its **servers** are the `upstream`s of the records up to and including that one. Parts from + several peers, as a swarm delivers them, complete an object together, and each peer that + served part of it is credited. + + Acknowledgement chains (settlement §3.7) are settlement's and are not checked here; each record + is read as its signer's word about its own window. +- **Holdings evidence.** Each holdings record given is read (holdings §4.4) and held to the group as + timeliness §6.2 step 4 holds it: refused `holdings_leaf_count_mismatch` when its entry for the + group states another leaf count, and `held_before_group` when it has an entry for the group and + its `as_of_ms` is before the group; of one holder's others, two with one `as_of_ms` and different + digests set both aside (`holdings_contradicted`). Each is labelled as timeliness labels a record. + A record of *k* that stands and holds object *i* (holdings §5.4) is a held-at statement at its + `as_of_ms` (timeliness §6.2 step 5). It names no server. + +*k* is a **hit** when some held-at statement of *k* for object *i* has an instant at or before +`deadline_ms`, and a **miss** otherwise. For an acknowledgement, that is `end` − 1 ≤ +`deadline_ms` × 1000, with no overflow in 64 bits. A line of §9 for object *i* and a hit read the +same statements, so a key `on_time` in such a line by `by_ms` is a hit at that deadline in a tally +of object *i* whose population holds it. + +### 8.4 The count + +- *n* is the population's size; `hits`; `misses` = *n* − `hits`. +- `miss_ppm` = ⌈`misses` × 1,000,000 / *n*⌉, rounded up so the reported rate is never below the + true one. +- `missing`: the keys that missed, in population order: the list an operator repairs before a + deadline, or reports after it. +- `set_aside`: each held-at statement of a population key set aside `held_before_group`, as its + key, its source (`reconciliation`, or an acknowledgement's digest in lowercase hex) and the + reason, in increasing order of key, then source. +- **Servers.** For a hit *k*, *S*(*k*) is the set of servers of its on-time evidence, and *U*(*k*) + holds when some on-time evidence of *k* credits no server. For each key in the union of the + *S*(*k*), in increasing byte order: + - its **placement**: `publisher` for the group's key, otherwise §4.4's at the latest on-time + evidence instant that credits it; + - `hits` = the number of hits *k* with the server in *S*(*k*); + - `sole` = the number of hits *k* with *S*(*k*) = {server} and not *U*(*k*): the hits it alone + served. +- `unattributed` = the number of hits *k* with *S*(*k*) empty. + +### 8.5 Outcome + +**Met** when `miss_ppm` ≤ `miss_target_ppm`; otherwise refused `miss_target_exceeded`. Reported +either way: the region, the population digest, `deadline_ms` and a timeliness claim's link hash, +*n*, `hits`, `misses`, `miss_ppm`, `missing`, `set_aside`, the servers, `unattributed`, each +acknowledgement's label, each holdings record's label, and each claim's label under §7.2. + +A met tally says that, of the stated keys, the share given held the object, by their own signed +word, by the deadline. It does not say that they presented it, that the population is everyone in +the region, that any key is one receiver, or that the population was chosen before the deadline +(§13). It is not carousel §6.4's "held by *t*", which is the publisher's plan for a receiver within +a loss bound; a relying party may hold both. The asker's plan of whom to fetch from stays holdings +§5.4's, and the operator's plan of whom to repair is `missing`. + +## 9. Composition + +- **holdings**: a holder signs with the key its operator lists to be placed (§4.5; holdings §9). A + record is the third kind of held-at statement §8.3 reads. +- **carousel**: availability (carousel §6.3) is the publisher's plan for a receiver within a loss + bound; a node repairs what that plan did not cover, and §8 counts the outcome. A cache instance + has no schedule: a schedule is signed by the group's key (carousel §4.3 step 2), and a + cache-transmission claim and a schedule share no instance (§7.2 step 4). +- **bearer-receipts**: the verdict extends its §6.2 here, as carousel's does. Its §7 bound applies + to each cache instance, and its §8 holds for a node's key: a receiver with no path back places a + node only by heads provisioned in advance, and a key log arriving over the node's instance + anchors nothing (`anchor_on_bearer`). +- **settlement**: no new object class and no figure changes. Settlement §13 places a node that + serves from what it holds by `cache/serve` from its operator's origin. A node **MAY** state a + one-way re-sending's bytes in a declaration (settlement §4, zero `downstream`) beside its + cache-transmission claim; a declaration bills nothing (settlement §4.2), and no tariff prices a + cache instance, so a node's one-way re-sending is counted, credited and placed here and billed + nowhere. Which settlement object class carries an object a node serves on request from what it + holds outside a room, and on whose word a payer honours a sink's acknowledgement outside a room, + settlement §3.3 and §13 do not say, and this text does not decide. +- **takedown**: a cache-transmission claim is its signer's own word that it held what it sent, as a + declaration is ([takedown](takedown.md) §7.1, `served`). +- **jwp-receipts §4**: the claim is the parallel receipt jwp-receipts §4.3 permits, and §4.2 lets a + relay, or a node that is not one, sign it. +- **timeliness**: it owns the per-object deadline and the held-at statement, which this text + extends with acknowledgements and counted reconciliations (§8.3). Timeliness §6's verdict and + the statement it answers (its §6.4) read holdings records alone. A verifier that holds this + text's inputs (§7.1, §8.2) and a timeliness claim **MAY** derive the lines of the claim's entry + for object *i* by timeliness §6.3 from held-at statements of all three kinds: + - the holdings records' exactly as timeliness §6.2 step 5 derives them, for the primary and its + fallback whatever envelopes the verifier holds, with a line for each holder with a record that + stands and has an entry for the group or the fallback's group; + - those §8.3 derives from acknowledgements and counted reconciliations, for every object of the + group the verifier holds `delivered-verified`, the primary and a fallback in the group among + them, with a line for each key with one. A fallback in another group is held by records alone, + since this text judges one group. + + The claim is checked as §8.2 step 6 checks a deadline's, and a claim refused there, or with no + entry for *i*, derives no lines (`deadline_not_stated`). A fallback rendition is another object + with its own content hash, so it has its own tally and is never a hit for the primary. +- **rung-price**: it owns price, direction and a price list's `footprint`, in the region codes of + its §2, which §8.1 uses. It carries no deadline and no miss target, so the tally takes the + deadline, the target and the population as stated inputs and reports the population's digest (and + a timeliness claim's link hash) so that a contract can name them. Joules are stated, never priced. + A comparer **MAY** accept a seller whose key it places with a serving role (§4.4). +- **http-delivery**: a cache-transmission claim listed in a receipt index is checked at its §8.2 + step 6 against the group of an item whose link hash is its subject and the object receipts of the + items listed under it. +- **live-rooms**: inside a room a payer may take the grants' principals as the population; §8.1 is + its analogue outside one. + +## 10. Mappings + +| standard | binding | +|---|---| +| MOQT, `draft-ietf-moq-transport-23` §7.1 (*Caching Relays*: "Relays MAY cache Objects, but are not required to"), §7.9 (*Relay Object Handling*: a relay "MUST treat the object payload as opaque" and "MUST NOT combine, split, or otherwise modify object payloads"), §2.1 ("The Original Publisher is solely responsible for the content of the object payload") | A node with `cache/serve` serving over MoQ is a §7.1 caching relay held to §7.9 and to jwp-receipts §4.1 and §4.3. | +| HTTP Message Signatures, RFC 9421 §3.3.6 (`ed25519`), §2.3 (`keyid`, `tag`), §2.5, §4.3 ("Multiple distinct signatures MAY be included"), §7.2.8 | A node serving over HTTP **MAY** sign each response with `alg="ed25519"`, `keyid` its key's `did:key` (jwp-receipts §7.1) and `tag="wai-cache"`, covering `content-digest` (RFC 9530 §2). A downstream that verifies signature and digest learns the key it names as `upstream`. An RFC 9421 signature base begins with `"` (§2.5), and every WAI signing input begins with its ASCII domain, so one key's two kinds of signature never sign the same bytes. | +| Cache-Status, RFC 9211 §2, §2.1 (`hit`), §2.2 (`fwd`), §2.5 (`stored`) | A member with `hit` is HTTP's own unsigned "served from what it held" (settlement §9.1); `fwd` with `stored` is a fill. RFC 9211 defines no signature, so its identifier is not a key and places nothing. | +| CTA-5006 `CMSD-Dynamic`, as [delivery-telemetry](delivery-telemetry.md) §6, its paragraph 6.3, maps it | A node **MAY** write its `did:key` as its entry's server string; a player that reads it learns a key it may name as `upstream`, unsigned, and **SHOULD** prefer an RFC 9421 signature where one is present. | +| PPSPP, RFC 7574 §3.2 (`HAVE`), §5, §9.2 ("reciprocity enforcement is the sole responsibility of the sending peer"), §11.2.4 | Informative: a holdings record is close to `HAVE`, and jwp-receipts §3 to PPSPP's content integrity. PPSPP leaves reciprocity and accounting local; this extension gives their portable form. | +| DVB-NIP, ETSI TS 103 876 §6.2.2 and §6.5 | A gateway that stores broadcast assets and serves them to home clients is a node: its key holds `cache/serve`, its holdings record advertises, its clients acknowledge it. | +| CDNI footprints, RFC 8006 §4.3.8 and RFC 9388 §2.1.1.1 | Through rung-price §2, which binds them: a region is ISO's capital form. | + +## 11. Reasons + +The codes this extension adds, each with where it is raised: + +| reason | raised at | +|---|---| +| `server_not_listed` | §4.4 | +| `cache_transmission_not_transmitted` | §5.2 rule 1 | +| `cache_transmission_on_bidirectional` | §5.2 rule 2 | +| `cache_transmission_bitmap_malformed` | §5.2 rule 3 | +| `cache_transmission_subject_mismatch` | §5.3 step 1 | +| `cache_transmission_by_publisher` | §5.3 step 2 | +| `cache_transmission_leaf_count_mismatch` | §5.3 step 3 | +| `cache_transmission_objects_not_held` | §5.3 step 4 | +| `cache_transmission_root_mismatch` | §5.3 step 4 | +| `population_invalid` | §8.2 | +| `target_invalid` | §8.2 | +| `object_not_verified` | §8.2 | +| `miss_target_exceeded` | §8.5 | + +The extension also raises `key_revoked`, `key_retired` and `authority_not_granted` (jwp-receipts +§7.7), at the levels §4.4 gives them, and `key_log_not_held` (deriving-edge §9), at §4.4; +`bearer_contradicted`, `bearer_not_declared`, `sink_not_confirmed`, +`reconciliation_duplicate_sink`, `delivery_not_reconciled` and `delivery_exceeds_reconciled` +(bearer-receipts §10) at §7.2 and §7.3; `self_acknowledged` (settlement §11) at §7.2 step 5; +`object_out_of_range` (holdings §7), `context_invalid` (jwp-receipts §3.1) and +`deadline_not_stated` (timeliness §9) at §8.2; settlement §3.6's codes and `record_missing` for an +acknowledgement, holdings §7's codes for a holdings record, and `held_before_group` (timeliness §9) +for any held-at statement, at §8.3; for a group or object the codes of jwp-receipts §3.3; and for a +claim every code of jwp-receipts §3.1 steps 1 to 5, bearer-receipts §4.2 rule 2's energy codes, and +those of step 6 named in §5.3. + +## 12. Conformance + +[`live-conformance/cache-authority/`](../live-conformance/cache-authority/) holds the corpus, written +from fixed seeds by `wai_cache_authority_vectors gen` as `vectors.json`. Every key comes from a +published seed of one byte repeated 32 times (jwp-receipts §7.8), both key logs are test logs, and +regions are ISO 3166-1's user-assigned codes. It has: + +- **Claims**, each through jwp-receipts §3.1 steps 1 to 6 against the context it gives: objects + sent from a group, every object with no object receipt held, the last object of a group of nine, + labelled leaves, a metered instance, a chained second claim; a chain broken and a parent not + held; one negative control for each rule of §5.2 and each step of §5.3, an unknown bearer class, + an extra member and an energy figure of 0; a context that is not a group receipt; and a claim with + no group, which stops at step 5. +- **Placements**: each step of §4.4, the least origin, a serving role other than `cache/serve`, a + retired key at its `until` and a millisecond past it, a revocation beating a confirmation and + outliving another role, a head not held, a head under another origin, and a revocation beside a + head not held. +- **Verdicts**: a cache instance beside the publisher's with per-instance credit; reconciliations + only over a cache's instance; a cache instance alone, published, with a statement of + transmission refused; an instance taken from the publisher, with the publisher's declarations + standing and contradicted; two caches on one instance; one claim twice and a cache contradicting + itself; each reason of §7.2 step 5; placements of every level beside unchanged counts, and a + retired node's two claims of one instance on either side of its `until`; a sink on a cache + instance; the energy bound before and after keys are counted, and unmetered; another class; and a + group that fails. +- **Tallies**: a target met exactly and missed by one ppm, a rate rounded up; an acknowledgement + ending at the deadline and one and two microseconds past it; a reconciliation signed at the + deadline, a microsecond past it, below a second, with an offset and at second 60; evidence before + the group of each kind, and a reconciliation in the last second before it whose instant rounds up + to its start; an object completed by two peers, in time and late, the late one with its records + given latest first, two records of one `end` that their digests order, and a part never + completed; a declaration, a key outside the population, and an acknowledgement refused for each + reason §8.3 names; an object of any class; a bit a cache did not send; servers placed at each + outcome of §4.4, a retired key before its `until` among them, a retired key credited on either + side of its `until`, and the publisher; the target and deadline bounds on both sides; a region of + every length rung-price §2 admits, and a hyphen with no subdivision, a subdivision of four + characters and a region in lowercase, each refused; a population empty, out of order and holding + a key twice; and each refusal of §8.2, with a deadline taken from a timeliness claim, one with no + entry for the object, one about another group and one whose fallback's envelope is held and not + derived. +- **Lines** (§9): from an acknowledgement and from a counted reconciliation; from a holdings record + whose object's envelope is not held; with a fallback in another group that a holder's record + alone names; and with a fallback in the group, held by an acknowledgement and a reconciliation. + +The population bound of 220 keys is carried by no case; both implementations check it +themselves. + +A conforming verifier gives every case the outcome, the reason and everything else the corpus +states. `wai_cache_authority_vectors verify` and the test `tests/cache_authority.rs` check that the +file regenerates byte for byte, that `wai-rs` gives every case its outcome, that every reason of §11 +appears, and that §11 lists exactly the reference's codes. +`live-conformance/cache_authority_verify.py` is the second implementation, written from this text: +it shares no code with `wai-rs`; it verifies groups and objects with the JWP corpus's second +implementation (`jwp-conformance/jwp_verify.py`), claims through steps 1 to 5 with the claim +corpus's (`claim-conformance/claim_verify.py`), reconciliations with the bearer corpus's +(`live-conformance/bearer_verify.py`), acknowledgements with the settlement corpus's +(`live-conformance/settlement_verify.py`), key logs with the signer corpus's +(`signer-conformance/signer_verify.py`), held-at statements with the timeliness corpus's +(`live-conformance/timeliness_verify.py`) and regions with the rung price corpus's +(`live-conformance/rung_price_verify.py`); it writes §4.4, §5.3, §7 and §8 itself, reads §11 from +this text, mutates copies of the corpus and requires every copy to fail, and drops each of its own +checks in turn and requires the corpus to catch the weakened verifier. + +## 13. Security and privacy considerations + +- **A node's claim is its word.** A false one is evidence against its key. +- **A placement is as good as the heads named.** It is the relying party's choice of logs, held + under jwp-receipts §7.2 rules 1 to 3 only; a head that is not the head of an origin it anchored + (jwp-receipts §7.3) is its own say-so. A revocation the relying party has not retrieved is not in + its heads (jwp-receipts §7.4), and the report names each head's origin. Placement never vouches + for bytes. +- **Evidence instants are the receivers' clocks.** A receiver can sign any time. The tally sets + aside times before the group exists, and otherwise reads each instant as the latest it allows. A + population of the relying party's own receivers, whose software it ships, is what makes them + worth reading. +- **A population chosen after the deadline proves nothing.** Its digest proves which keys were + counted, not when they were chosen. A relying party that must show the population was fixed first + registers a statement naming the digest with a Transparency Service before the deadline + ([transparency](transparency.md) §3); a registration witnesses existence at a time and attests + nothing else (transparency §6). This extension checks no such registration. +- **Collusion and sybils** (settlement §13). Only population keys count; a node cannot count its own + reconciliations (`self_acknowledged`) or acknowledge itself (settlement §3.6). +- **What is disclosed.** Reconciling or acknowledging to a node gives up unidirectional-delivery + §2's property for the objects named, as bearer-receipts §12 says. The tally shows each population + key's evidence to its verifier. A fresh key per record unlinks a holder and unplaces it. +- **Bounded work.** At most 220 keys; each acknowledgement and reconciliation is read + once; the byte ranges are sorted once per key; a placement is a lookup per head. diff --git a/wai/extensions/carousel.md b/wai/extensions/carousel.md index 3878d582e..1748afc1a 100644 --- a/wai/extensions/carousel.md +++ b/wai/extensions/carousel.md @@ -301,6 +301,10 @@ pass the schedule names, holds the object by *t*, but for a decoding failure no `failure_one_in` states. It does not say the passes were sent (the declaration's) or heard (a reconciliation's). +A publisher's own deadline for an object is its timeliness claim's `by_ms` +([timeliness](timeliness.md) §4.1); held by it, the statement is the publisher's plan against its +own deadline. + ## 7. The passes a receiver listens to A receiver that holds a standing schedule's entry, the instant *t* it is at, its loss bound *L*, diff --git a/wai/extensions/delivery-telemetry.md b/wai/extensions/delivery-telemetry.md index 72f070d35..c33816aea 100644 --- a/wai/extensions/delivery-telemetry.md +++ b/wai/extensions/delivery-telemetry.md @@ -132,7 +132,7 @@ host that serves the object, an Event-mode report to the content's own service ( | `st` | delivery | whether the session plays on demand, live or low-latency live, which a host may serve differently | every report | | `ot` | delivery | the kind of object requested, which a host may schedule or cache by | Request mode | | `d` | delivery | the requested object's playback duration, which a host may prefetch by | Request mode | -| `dl` | delivery | the time until the sink's buffer runs out: its buffer level | Request mode | +| `dl` | delivery | the time until the object is needed: the sink's buffer level, or, for an object no buffer governs, its deadline ([timeliness](timeliness.md) §8.2) | Request mode | | `science.transaction.wai-ch` | delivery | the exact object, by content hash, which a content-addressed host serves by | Request mode, `e=rr` | | `science.transaction.wai-lc` | delivery | the layer cap the request asks the host to apply: the sink's quality ceiling | Request mode, `wai-layer-change` | | `sid` | measurement | that reports belong to one session; it is fresh per session (§8.1), so nothing across sessions | every report | @@ -216,6 +216,8 @@ told is delivery-only refuses one that carries a key not of the delivery class, - `missing-capability`; - `module-unverified`, `module-revoked`, `trap`, `fuel-exhausted`, `memory-exhausted`, `deadline-threshold`, `unit-hash-mismatch`, `budget-exhausted`; +- `not-held-by-deadline`: the primary was not held by its deadline and its fallback was + presented ([timeliness](timeliness.md) §5.3, §8.6); - `recovered`. A later extension adds its reasons here. diff --git a/wai/extensions/holdings.md b/wai/extensions/holdings.md index 1f1184a4b..b3c235e1f 100644 --- a/wai/extensions/holdings.md +++ b/wai/extensions/holdings.md @@ -197,7 +197,9 @@ and drops each of its own checks in turn and requires the corpus to catch the we range could hold, and **SHOULD NOT** advertise what it fetched for itself alone. A node **MAY** sign each record with a fresh key, which unlinks its records from each other and from its other statements; a neighbour then cannot tell a node's later record from another node's, and - §5.3 does not apply across them. + §5.3 does not apply across them. A node whose service is to be placed signs with the key its + operator lists ([cache-authority](cache-authority.md) §4.5); a fresh key unlinks its records and + leaves its service unplaced. - **A record is its holder's word**, and costs a wasted exchange when it is false (§6). An asker that is sent wrong bytes refuses them and **MAY** stop asking that holder; nothing here scores holders. diff --git a/wai/extensions/http-delivery.md b/wai/extensions/http-delivery.md index b492fcd4c..9f6dc4afd 100644 --- a/wai/extensions/http-delivery.md +++ b/wai/extensions/http-delivery.md @@ -534,7 +534,15 @@ states; and step 6, against the receipts it names that the client holds here: one that names an object this index does not list is `context_not_held`; - a `schedule` claim, against the group of an item whose link hash is its subject and the object receipts of the items listed under it here ([carousel](carousel.md) §4.3); an - index carries no envelope bytes, so its lengths are not checked here. + index carries no envelope bytes, so its lengths are not checked here; +- a `timeliness` claim, against the group of an item whose link hash is its subject, the + object receipts of the items listed under it here, and a fallback's group and object + receipt where an item lists them ([timeliness](timeliness.md) §4.3); an index carries no + envelope bytes, so its steps 6 and 8 do not run here; +- a `cache-transmission` claim, against the group of an item whose link hash is its subject and + the object receipts of the items listed under it here + ([cache-authority](cache-authority.md) §5.3): one whose set bits name an object this index does + not list is `context_not_held`, as a reconciliation's is. A claim is accepted only when step 6 ran against what it needs. A `measurement` claim whose figure the client does not hold is `figure_not_held`, as §3.1 states; any other @@ -733,7 +741,9 @@ response never reaches its base's bytes, before or after the base verified. A cl and urgency 5 with incremental for a refinement (RFC 9218 §4.1, §4.2): by the `Priority` header (§5 there), or in a browser by the fetch `priority` option. A deadline never applies to a base: a base request that is never answered ends the fetch -(`base_unanswered`). +(`base_unanswered`). The one exception is the end a base's timeliness entry states +([timeliness](timeliness.md) §8.2), past which the base is of no value: a client **MAY** abandon +the request then, and the fetch ends as `base_unanswered`. ### 10.2 Deadlines diff --git a/wai/extensions/impression-aggregates.md b/wai/extensions/impression-aggregates.md new file mode 100644 index 000000000..4a97f1362 --- /dev/null +++ b/wai/extensions/impression-aggregates.md @@ -0,0 +1,707 @@ +# WAI Extension: Impression Aggregates + +> Status: Draft. Registers the record `wai.delivery.impressions` and measure 5, `impressions`, of +> [telemetry-aggregation](telemetry-aggregation.md) §3 (its §3.1): ad presentations counted over +> a bearer with no return path. A receiver judges each ad of a shared pod-input record it +> presented by [stitched-presentation](stitched-presentation.md)'s rules, and turns each +> presentation into one Prio3Histogram report of a task of that measure, whose `scope` is the +> digest of a **catalogue** (`WIC1`, §4) that fixes which index of the vector is which creative, +> region and quartile. It generates the report once, keeps its bytes, and sends them over +> whatever path it later has, in an **upload file** (`WIU1`, §6.4) that relays forward unchanged. +> It accepts a task only from a **task file** (`WIT1`, §5.4) whose signer its pinned key log +> lists with the authority `aggregate/task`, and with attestation each report carries a Privacy +> Pass token bound to its task and its report id, in a private report extension (§7.2). The +> leader holds each collection for the catalogue's `hold_s`, and the aggregators keep the task +> until its retention instant, so late reports still count (§7.1). The task layout, the task id, +> the aggregators, the statements (`WQS1`) and the receipt (`WQA1`) are telemetry-aggregation's; +> a reader verifies a receipt against its catalogue and recomputes a table of presentations and +> quartile counts per creative and region (§8): a lower bound of what receivers reported, never +> an audience. The reference implementation is the `impression_aggregate` module of `wai-rs` +> (feature `impression_aggregate`); the corpus is +> [`live-conformance/impressions/`](../live-conformance/impressions/), and its second +> implementation is `live-conformance/impression_aggregate_verify.py`. +> Keywords **MUST**, **MUST NOT**, **SHOULD**, **MAY** are RFC 2119/8174. +> +> Texts read for this revision: `draft-ietf-ppm-dap-20` (DAP) §2.3, §3.1, §3.6, §4.1, §4.1.1, +> §4.2, §4.2.2, §4.2.3, §4.4.1, §4.4.2, §4.4.2.1, §4.4.2.2, §4.4.3, §4.5.3.3, §4.5.3.4, §4.5.4.3, +> §4.6.1, §5.1, §6.1.1, §6.3, §6.4.1, §8.1 to §8.4, §8.6.4, §9.2, §9.2.4 and Appendix B.4; +> `draft-irtf-cfrg-vdaf-22` (VDAF) §7.4.3.1, §7.4.4, §7.4.5, §9.2, Table 4, Table 13 and §10 +> Table 19; RFC 9576 §3.3; RFC 9577 §2.1.1, §2.1.1.2 and §2.2.1; RFC 9578 §6.4 and §6.5; and, +> informatively, `draft-ietf-privacypass-batched-tokens-10` §2, §3 and §7. ISO 3166-1 and +> ISO 3166-2 were not read; the code form is the one [rung-price](rung-price.md) §2 states. A +> clause number of one of them in this text is that text's. + +## 1. Scope + +In scope: the catalogue (§4); measure 5's task, its rules and the task file (§5); the receiver's +contribution, report, upload file, upload plan and settlement (§6); what the aggregators add to +DAP: retention, the hold and the token check (§7); the verification of a receipt of an +impression task, and the impression table (§8). + +Out of scope: issuing tokens (RFC 9578, and the batched issuance of +`draft-ietf-privacypass-batched-tokens-10`); how a receiver learns its region or sets its clock; +running aggregators; choosing a helper's operator (DAP §8.7); differential privacy; prices and +invoices; an audience or a reach; and two-way paths, which keep +[stream-audit](stream-audit.md) and stitched-presentation. + +Relationship to the core spec: `wai.delivery.impressions` is a **record** ([SPEC](../SPEC.md) +§5). It names no payload format and is not dispatchable. + +Relationship to telemetry-aggregation: a task of measure 5 is one of its tasks. This text +supplies the measure's configuration and rules (§5.3), its reports (§6.3), what its aggregators +add (§7) and the layer a reader puts over its accepted receipts (§8). Every other rule of that +text stands. + +## 2. Terms + +- **DAP**, **task**, **report**, **leader**, **helper**, **collector**, **batch**, **batch + interval**, **measure**: as [telemetry-aggregation](telemetry-aggregation.md) §2. +- **Record**, **claim**, **marker**, **presented**: as stitched-presentation §2. +- **Creative digest**: as [ad-presentation](ad-presentation.md) §4. **Token**: as + ad-presentation §2. +- **Key log**, **anchor**, **pinned**, **confirmed**: as [jwp-receipts](jwp-receipts.md) §7. +- **Region code**, **holds**: as rung-price §2. +- **Instant**: a count of milliseconds since 1970-01-01T00:00:00Z, leap seconds not counted, as + [carousel](carousel.md) §2 and [holdings](holdings.md) §2. +- **Receiver**: the sink that presents the ads of a bearer and reports them. +- **Presentation**: a claim the receiver's player signs that is presented under §6.2. +- **Flight**: a task's `task_interval` (DAP §4.2.3). +- **Retention instant**: §5.3 step 3. +- **Relay**: any node that carries an upload file toward the leader. + +## 3. What one-way delivery changes + +Telemetry-aggregation §5 (its §5.1) has a sink report when its session ends, over a path it has +then, and DAP §6.1.1 says that "Clients are not expected to store any state across any upload +flows, nor are they required to implement any sort of report upload retry mechanism". On a +bearer with no return path: + +- **Late reports.** A receiver reports hours or days after it presented. DAP discards a report + of a batch already collected (§4.4.2.2), and aggregators may delete a task after its + `task_interval` (§6.4.1). So the catalogue states a hold; the leader collects no batch before + its end plus the hold, and the aggregators keep the task until the retention instant (§7.1); + a receiver sends the reports nearest their deadline first (§6.5). A report later than its + batch's collection is lost: a count is lower, never higher. +- **Duplicates.** A receiver that crashed, kept two copies of its state, or sent by two relays + could count one presentation twice. So a report is generated once, stored, and re-sent as the + same bytes until it is settled (§6.3, §6.6), and DAP's report-id check discards every later + copy. A playback session gives one report for a record and an ad (stitched-presentation §7.3 + step 7). A report is never regenerated: its id is VDAF §9.2's nonce, and a second id would be + a second count. +- **Replay.** A captured upload replayed to the same task is discarded by its ids. Replayed to + another task, its shares do not decrypt, since their authenticated data holds the task. A + token answers one report id of one task (§7.2) and travels sealed. +- **A receiver that never returns.** Its presentations are never counted. A table is a lower + bound on reported presentations, never an audience, and never the *n* of + [bearer-receipts](bearer-receipts.md) §7 (§8.3). +- **No path at play time.** No challenge reaches a receiver before an ad plays, so a token + cannot be bound to the presentation as ad-presentation §7.2 binds one; it is bound to a report + id drawn ahead (§6.1, §7.2). No HPKE configuration can be fetched (DAP §4.4.1), so the task + file carries them (§5.4). No task is trusted because it arrived on the bearer, so its signer + must be confirmed under a pinned anchor (§5.4; [unidirectional-delivery](unidirectional-delivery.md) + §3). + +## 4. The catalogue + +### 4.1 Layout + +A catalogue, `WIC1`, fixes the meaning of a task's vector. Integers are big-endian, except +inside `terms`, which is copied byte for byte from a pod-input record and is little-endian there +(stitched-presentation §4). A *short* field is a u8 length and that many bytes. + +| size | field | meaning | +|---|---|---| +| 4 | `magic` | `WIC1` (ASCII) | +| 1 | `version` | 1 | +| 4 + long | `terms` | the measurement terms exactly as a pod-input record carries them (stitched-presentation §4.1): `presentation` (1), `viewability` (1), `token_type` (u16), `issuer` (a u16 length, then its bytes); ad-presentation §8's fields | +| 4 | `hold_s` | u32: the seconds after a batch interval ends before the leader completes a collection of it (§7.1) | +| 1 | `s` | the signers' count | +| 32 × `s` | `signers` | Ed25519 keys whose shared pod-input records count, strictly ascending | +| 1 | `c` | the creatives' count | +| 32 × `c` | `creatives` | creative digests (ad-presentation §4), strictly ascending | +| 1 | `r` | the named regions' count | +| short × `r` | `regions` | region codes, strictly ascending by bytes | +| 1 | `k` | the issuer keys' count | +| (2 + n) × `k` | `keys` | each a u16 length, then the DER SubjectPublicKeyInfo of a type-0x0002 issuer key (ad-presentation §7.3), strictly ascending by bytes | + +The catalogue's **digest** is SHA-256 over all its bytes. It carries no signature: a task binds +it as its `scope` (§5.1), which enters every input share, every aggregate share and the +collector-signed receipt, and a task file signs it (§5.4). + +### 4.2 Regions and cells + +- A **code** is a region code of rung-price §2: an ISO 3166-1 alpha-2 code, or an ISO 3166-2 + code, in capitals. +- Column *j*, for 0 ≤ *j* < `r`, is `regions[j]`; column `r` is **`other`**. +- A receiver's region *g*, a byte string or none, has the column of the listed code that holds + *g* (rung-price §2 *Holds*: the code itself, or the country of which *g* is a subdivision), + and otherwise `other`. Rule 6 of §4.3 leaves at most one such code. A *g* that is none, or is + not a code, has column `other`. Relations among ISO 3166-2 subdivisions are not followed: no + code shows its parent, so a receiver in a subdivision of a listed subdivision is `other` + unless its declared code is the listed one. A deployment lists codes at the granularity its + receivers declare. + +With creative index *i* (the catalogue's order), column *j* and quartile *q* (1 to 5, +stitched-presentation §7.4), the **cell** is (*i* · (`r` + 1) + *j*) · 5 + (*q* − 1), and the +vector's length is *L* = `c` · (`r` + 1) · 5. The **chunk length** is ⌈√*L*⌉, the least integer +whose square is at least *L*: VDAF §7.4.4 recommends a chunk length "near the square root of +length", and §7.4.3.1 says the square root gives proofs "up to 50% larger than the optimal". It +fixes the configuration as one value. + +### 4.3 Reading and rules + +A reader reads exactly the given bytes, at most 1,048,576 of them. It refuses them +`catalogue_malformed` when they end before a field, go on past the last key, or when: + +1. `magic` is not `WIC1`, or `version` is not 1; +2. `terms` breaks ad-presentation §8, does not set bit 0 (**claim**), or sets **attest** with a + `token_type` other than 2; +3. `hold_s` is 0: a collection at a bucket's end loses every report of a receiver that had no + path at that moment; +4. `s` is 0 or above 16, or `signers` is not strictly ascending; +5. `c` is 0, or `creatives` is not strictly ascending; +6. a region is not a code; `regions` is not strictly ascending; or a listed two-byte code *x* + has a listed code beginning *x*`-` (rung-price §4.5 rule 3's rule, for one footprint); +7. *L* is above 4,096. *L* is a multiple of 5, so the largest is 4,095, and a leader's + measurement share is then at most 65,520 bytes (Field128: VDAF Table 4 and Table 13); +8. `k` is not 0 when **attest** is clear, or not 1 to 4 when it is set; a key is not an + id-RSASSA-PSS SubjectPublicKeyInfo with a 2,048-bit modulus (ad-presentation §7.3); or + `keys` is not strictly ascending by bytes. + +Each catalogue has exactly one encoding. The size bound decides no outcome: a catalogue that meets +these rules is under 340,000 bytes, its only long fields being the issuer and at most four keys, +each of a u16 length, so a longer buffer is refused whatever the bound. It lets a reader refuse +one without reading it. + +## 5. The task + +### 5.1 Measure 5 and its scope + +A task of telemetry-aggregation's measure **5, `impressions`**, has that text's `task_info` +(telemetry-aggregation §4.1: 153 bytes, label `wai-qoe1`) with `measure` 5 and `scope` the +digest of its **catalogue**. Its VDAF is Prio3Histogram (VDAF §7.4.4, identifier 0x00000004 in +§10 Table 19) of the catalogue's *L* and chunk length, two aggregators. Its measurement is one +presentation's cell (§6.2). + +### 5.2 Task id and verification key + +Its task id is telemetry-aggregation §4.2's, and its verification key §4.4's. Two catalogues give +two scopes, two TaskConfigurations and two ids. + +### 5.3 Rules + +Given a catalogue *C* that reads (§4.3), a TaskConfiguration is an impression task of *C* unless, +in order: + +1. `task_invalid`: telemetry-aggregation §4.3 rule 1 refuses it; +2. `catalogue_mismatch`: its `measure` is not 5, or its `scope` is not *C*'s digest; +3. `task_invalid` when its `time_precision` is below 3,600; its extensions are not exactly one + `task_interval` (DAP §4.2.3) holding an Interval of a duration of at least 1; or its + **retention instant**, in seconds, (`task_interval.start` + `task_interval.duration`) · + `time_precision` + `hold_s`, overflows a u64 or is above the last instant in seconds, + 253,402,300,799 (carousel §4.2; [timeliness](timeliness.md) §2); +4. `measure_mismatch`: `vdaf_type` is not 0x00000004, or `vdaf_configuration` is not + Prio3HistogramConfig {`length` *L*, `chunk_length` ⌈√*L*⌉} (DAP Appendix B.4); +5. `floor_too_low`: `min_batch_size` is below 50; +6. `aggregator_alone`: `leader` is `helper`. + +These are telemetry-aggregation §4.3 for a task of measure 5: its rule 2 cannot fail, since 5 is +a code of its §3, and its rule 3 is steps 2 to 4 here. The codes of steps 1 and 3 to 6 are that +text's, with its meaning. + +### 5.4 The task file + +A task file, `WIT1`, is how a task reaches receivers. Integers are big-endian. + +| size | field | meaning | +|---|---|---| +| 4 | `magic` | `WIT1` (ASCII) | +| 1 | `version` | 1 | +| 2 + n | `task` | a u16 length, then the TaskConfiguration (DAP §4.2) | +| 4 + n | `catalogue` | a u32 length, then the catalogue | +| n | `leader_hpke` | the leader's HpkeConfigList as DAP §4.4.1 encodes it, its own u16 length first | +| n | `helper_hpke` | the helper's | +| 32 | `signer` | an Ed25519 key | +| 2 + n | `signer_id` | a u16 length, then the signer's identity string (jwp-receipts §7.1), ASCII | +| 64 | `sig` | Ed25519 by `signer` over `wai:impression-task` (ASCII), 0x01, then every byte before `sig`, verified strictly (SPEC §7 *Signatures*) | + +The task file's **digest** is SHA-256 over the bytes before `sig`. Its signed bytes include +`signer` and `signer_id`, so it is a receipt of another WAI family that jwp-receipts §7.4 +confirms. + +A receiver holds key-log revisions and anchor records as bearer-receipts §8 (its §8.3) says: +provisioned logs pinned, and logs that arrive on the bearer held. It **accepts** a task file +unless, in order: + +1. `task_file_malformed`: the file exceeds 1,048,576 bytes, has another magic or version, ends + early or has bytes after `sig`, or its `signer_id` is empty or not ASCII; or an HpkeConfigList + does not read (DAP §4.4.1: `HpkeConfig HpkeConfigList<10..2^16-1>`), holds two configurations + of one `id` (DAP §4.4.1: "Aggregators MUST allocate distinct id values"), or holds none of + KEM 0x0020, KDF 0x0001 and AEAD 0x0001 with a 32-byte key (DAP §7; telemetry-aggregation §5); +2. `catalogue_malformed`: the catalogue does not read (§4.3); +3. the task fails §5.3 against that catalogue, with that step's reason; +4. `bad_key`, `bad_signature`: the signature does not verify (SPEC §7); +5. the signer is not **confirmed** under jwp-receipts §7.4 with the authority `aggregate/task`, + which is pinned-only (jwp-receipts §7.5), the item untimed: the reason of the step that + fails, one of jwp-receipts §7.7's (`signer_id_not_origin_bound`, + `signer_id_names_another_key`, `origin_not_anchored`, a key-log reason of step 3, + `key_not_listed`, `key_mismatch`, `key_revoked`, `authority_not_granted`, + `anchor_not_pinned`, `origin_not_expected`). Unconfirmed and refused are both not accepted; + the reason says which. + +A file that reaches step 5 has been read, checked and signature-verified; only the trust +decision remains. A revocation of the task key in a revision that arrived on the bearer reaches +a receiver whose anchor that revision descends from (bearer-receipts §8.2), and refuses the +file `key_revoked`. An untimed item passes a retired key (jwp-receipts §7.4 step 5): an origin +stops a task key by revoking it. + +## 6. The receiver + +### 6.1 What a receiver holds + +- The task files it accepted, and the key logs it confirmed them under. +- Its region and its clock, as its own declared state ([unidirectional-delivery](unidirectional-delivery.md) + §2). +- For a catalogue that sets **attest**, a **pool** of pairs (report id, token) for the task. + Each id comes from a cryptographically secure random number generator (VDAF §9.2; DAP + §4.4.2). Each token is a type-0x0002 token for §7.2's TokenChallenge of that id, obtained while + the receiver had a path, by RFC 9578 issuance or by batched issuance. A receiver **SHOULD** + refill its pool to a fixed size rather than by what it used since the last refill, so issuance + shows the issuer a rate and not a count of presentations. + +Evaluating anything here **MUST NOT** cause a request (unidirectional-delivery §2). A receiver +sends only §6.4's upload files, and token requests, on a path it already has. + +### 6.2 Contribution + +**Inputs:** an accepted task file; the pod-input record, by its bytes; the manifests the player +read; the creatives it holds; `claims`, the claims of this playback session already judged and +then the one judged now, each signed by the session key (stitched-presentation §5.2); `region`, +bytes or none; `at_ms`, the instant the presentation ended by the receiver's clock, or none when +the clock is not set; and `pool`, the unused pairs of an attested catalogue. + +**Output:** **report**, with the cell, the creative index, the column, the quartile, the time +⌊`at_ms` / (1000 · `time_precision`)⌋, the report id (the chosen pair's, or a fresh one without +attestation) and the pool's ids discarded; or **no report**, with the reason of the first step +that fails, and the ids discarded: + +1. The record, under stitched-presentation §7.2 steps 1 to 3 with the catalogue's `signers` + as the keys it accepts. Its response is not checked, as that section's step 5 allows, and no + price is used. Reasons: `pod_input_malformed`, `bad_key`, `bad_signature`, + `pod_signer_unknown`. +2. `record_not_shared`: the record's `session` is not 16 zero bytes. A record of one session + needs the session key to reach its signer (stitched-presentation §4.6), which a receiver with + no path cannot do. +3. `record_terms_differ`: the record's measurement-term bytes are not the catalogue's `terms`. + Every count of a table means one rule. +4. The claim judged now, under stitched-presentation §7.3 **steps 1 to 10**, over `claims` in + order, against that record: its reason (`stitched_claim_malformed`, `bad_key`, + `bad_signature`, `claim_key_unbound`, `claim_no_decision`, `claim_manifest_unknown`, + `claim_marker_absent`, `claim_duplicate`, `claim_asset_mismatch`, `claim_frame_mismatch`, + `claim_not_viewable`). Step 11 is not run: with **attest**, the report's token takes its + place (§7.2). `claim_duplicate` here is one report for a record, an ad and a session. +5. `creative_not_listed`: the ad's creative digest is not among `creatives`. +6. `instant_unknown`: `at_ms` is none. The upload time is never used in its place. +7. `outside_task`: the time is not within `task_interval`, which is half-open (DAP §4.1.1). +8. `token_exhausted`: the catalogue sets **attest** and no pair of `pool` passes §7.2 for this + task. Pairs are tried in ascending order of report id; a pair whose token fails is discarded + and listed. + +Otherwise the quartile *q* is stitched-presentation §7.4's for the claim, the column is §4.2's +for `region`, and the cell is §4.2's. + +### 6.3 The report + +For a contribution that gives a report, the receiver generates **one** report as soon as the +presentation ends: + +- **Report id**: the chosen pair's with **attest**; otherwise 16 bytes from a cryptographically + secure random number generator. +- **Time**: the contribution's. +- **Measurement**: the one-hot vector of length *L* at the cell. +- **Sharding and sealing**: as DAP §4.4.2.1 and telemetry-aggregation §5 (its §5.1), with the + application context `dap-20` followed by the task id; each input share sealed to the + **first** configuration of its aggregator's list in the task file with KEM 0x0020, KDF + 0x0001 and AEAD 0x0001, since DAP §4.4.1 lists configurations "in decreasing order of + preference". +- **Extensions**: no public extension. With **attest**, the private extension + `wai_impression_token` (§7.2) in **both** input shares, its data the pair's token in + ad-presentation §7.1's form (354 bytes). Without it, no private extension. +- **Persistence**: the receiver stores the report's bytes under the presentation's key (the + record's digest, the ad's slot and the session), atomically, before anything is sent. It + **MUST NOT** generate a second report for a presentation that has a stored one, and **MUST + NOT** regenerate a report. VDAF §9.2: the nonce must come from a cryptographically secure + random number generator, and "Uniqueness of the nonce is not sufficient"; a regenerated report + has a new id while an earlier copy may still reach the leader by another path. + +This departs from DAP §6.1.1 in what it expects of a client, not in anything DAP forbids. DAP +§4.4.2.2's "When the Client receives an hpke_unknown_config_id error, it SHOULD invalidate any +cached HpkeConfigList and retry with a freshly generated Report" is not followed: that is the +regeneration this section forbids (§6.6). + +### 6.4 The upload file + +| size | field | meaning | +|---|---|---| +| 4 | `magic` | `WIU1` (ASCII) | +| 1 | `version` | 1 | +| 32 | `task_id` | the task the reports were made for | +| 4 + n | `upload` | a u32 length, then a DAP UploadRequest: one or more Reports (DAP §4.4.2), in strictly ascending order of report id | + +A reader reads exactly the given bytes, at most 16,777,216 of them, and refuses them +`upload_malformed` when they end early or go on past `upload`, the magic or the version is +wrong, `upload` holds no report, a report does not read as a DAP Report, or the ids are not +strictly ascending. + +- The file is unsigned: DAP reports are anonymous, and each input share's authenticated data + binds its task. +- It travels as bearer-receipts §9 (its §9.1) sends a reconciliation: when the receiver has a + path; and where a bearer's own reporting carries files or opaque payloads, it **MAY** travel + there, for a gateway to forward. +- A relay forwards `upload` unchanged as the body of a POST to `{leader}/tasks/{task-id}/reports` + (DAP §4.4.2), the leader being the `leader_aggregator_endpoint` of the TaskConfiguration of the + task file of `task_id`, which the relay holds: the task file rode the bearer. It **MAY** do so + over Oblivious HTTP (RFC 9458; DAP §8.4). +- A relay **MAY** merge files of one `task_id` into one, ascending by id. Two reports of one id + with equal bytes are one; with different bytes, each is forwarded in a separate file and the + leader keeps the first. A relay that merged gives each source file the entries of the response + whose ids are its own, in their order. Merging hides from the leader which reports came from + one receiver. + +### 6.5 The upload plan + +**Inputs:** an accepted task file, the stored reports (bytes), an instant *t* (ms) and a budget +*b* (bytes, or none for no limit). + +For a report of time τ, in this order: it is **dropped** when τ is outside `task_interval`, or +when *t* is at or past the retention instant · 1000, since the aggregators may then have deleted +the task (DAP §6.4.1). Otherwise its **deadline** is ((τ + 1) · `time_precision` + `hold_s`) · +1000, which cannot overflow since τ is within the flight: the earliest instant the hold allows +any batch holding τ to be collected. It is **timely** when *t* is before its deadline, and +**late** otherwise; a late report may still count. + +**Order:** timely before late; within each, ascending deadline, then ascending id. **Budget:** +reports are taken in that order while 41 plus the sum of their lengths stays within *b*; the first +that does not fit ends the taking. One task's reports are all of one length (one *L*, one set of +extensions), so nothing smaller follows. + +**Outputs:** `send` (ids in order, each with its class), `defer` (ids), `drop` (ids), and `file`: +the `WIU1` of `send` in ascending order of id, or none when `send` is empty. + +### 6.6 Settlement + +**Inputs:** a `WIU1` the receiver sent, and the response body. + +- The response reads as DAP's UploadErrors (DAP §4.4.2.2: ReportUploadStatus entries of a + 16-byte id and a 1-byte error, to the message's end, "in the same order as in the request") + whose ids are a subsequence of the file's. Otherwise it **settles nothing**, and every report + is kept. +- A report with no entry was accepted: **delete** it. +- `report_too_early` (8): **keep** it; DAP §4.4.2.2: "the Client MAY re-upload the report later + on". +- Any other report error of DAP §4.1 (1 to 7, 9 and 10): **delete** it. That includes + `report_replayed` (2), which a leader **MAY** set for a report of a batch already collected + (DAP §4.4.2.2), and `hpke_unknown_config_id` (4), whose retry would be a regeneration: the + report is lost, an undercount. +- A value DAP §4.1 does not define: **keep** it. A re-send never counts twice (the report id), so + keeping costs bandwidth only, and an unknown value never reads as final. + +An upload with no response keeps every report. A pending report is dropped by the plan at the +retention instant. **Outputs:** `delete` and `keep`, each a list of ids. + +## 7. The aggregators + +The aggregators and the collector run telemetry-aggregation §5, §6 and §7 as written for a task +of measure 5, with these additions. + +### 7.1 Retention and the hold + +**Retention.** An aggregator keeps the task, its batch buckets, its replay state and the HPKE +configurations the task file names until the task's retention instant (§5.3), and accepts +reports sealed to those configurations until then. DAP §6.4.1 lets it delete a task's data after +its `task_interval`, and §4.4.1 asks it to "continue to accept reports with old keys"; this sets +both bounds for a client that holds no newer configuration. + +**The hold.** The leader **MUST NOT** finish a collection job until its clock is at or past its +batch interval's end in seconds, (`start` + `duration`) · `time_precision`, plus `hold_s`; until +then the job is processing (DAP §3.1, §4.6.1). + +- A report uploaded after its batch is collected is discarded: the leader **MAY** mark it + `report_replayed` at upload (DAP §4.4.2.2), and one that reaches aggregation is + `batch_collected` (§4.5.4.3). It is lost. +- An early collection is the collector's undercount. No reader can see when a collection was + made, and nothing here claims otherwise. + +### 7.2 Report extensions and the token + +At DAP §4.5.3.4, after its input share decrypts, an aggregator refuses a report: + +- with any **public** extension, `invalid_message`; +- of a catalogue without **attest**, with any private extension, `invalid_message` (a type the + task does not use: §4.5.3.4 step 4); +- of a catalogue with **attest**, unless its private extensions are exactly one + `wai_impression_token` (0x5749), recorded as `attestation_absent` (`invalid_message` on the + wire); and unless its data reads as a token of type 0x0002 (ad-presentation §7.1), has a + `challenge_digest` that is the SHA-256 of the TokenChallenge {0x0002, the catalogue's issuer, + the redemption context *R*, an empty origin_info} in ad-presentation §7.2's form, with *R* the + SHA-256 of `wai:impression-report-attest` (ASCII), 0x01, the task id and the report id; has a + `token_key_id` that is the SHA-256 of one of the catalogue's `keys`; and verifies under that + key (ad-presentation §7.3: RSASSA-PSS with SHA-384 and a 48-byte salt), recorded as + `attestation_invalid` (`invalid_message` on the wire). + +Each aggregator checks its own input share, so a token in one share alone is refused by the +other. `attestation_absent` and `attestation_invalid` are ad-presentation §11's codes. Double +spending is the report-id replay check (DAP §2.3): RFC 9577 §2.1.1.2 says that for a non-empty +redemption context the double-spend state "only needs to be stored across the set of Origin +servers that will accept tokens with that redemption context", and *R* names one task and one +report. + +**The codepoint.** DAP §9.2.4 sets aside no range for unregistered use, and its registries are +Specification Required (DAP §9.2). `wai_impression_token`, 0x5749, is proposed, with this text as +its specification, and is not registered. An aggregator that does not know it refuses every +attested report (DAP §4.5.3.4 step 4): no count, never a false one. + +## 8. Verification + +### 8.1 A receipt of an impression task + +**Inputs:** the receipt, the catalogue, and optionally the batch's reports (each report's id, +time and task). + +**Steps**, stopping at the first refusal, which is stated with its reason and place: the +catalogue reads (§4.3; `catalogue_malformed`, at `catalogue`). Then telemetry-aggregation §8.1 +steps 1 to 11 as written, its step 2 being §5.3 here against the catalogue. Then: + +12. at `leader`: the statements' batch falls within the `task_interval` (DAP §4.1.1), otherwise + `batch_invalid` (telemetry-aggregation's code: a batch the task does not admit); +13. at `result`: each element of the result is at most the report count, and the elements' sum, + as integers, is the report count, otherwise `count_mismatch`. With *L* at most 4,095 and each + element at most a u64 count, the sum fits in a u128. + +**Outcome:** accepted, stating telemetry-aggregation §8.2's fields (measure `impressions`, scope +the catalogue's digest) and **`reports_checked`**, whether step 11 ran; or the first refusal. + +### 8.2 The table + +**Inputs:** the catalogue, the TaskConfiguration, and receipts in an order, each with its reports +where they are given. + +1. The catalogue reads (`catalogue_malformed`) and the task meets §5.3 against it; otherwise the + **table** is refused with that reason. +2. Each receipt, in order, is verified by §8.1, and its `task` must then be the given + TaskConfiguration byte for byte (`task_mismatch` at `task`, telemetry-aggregation's code). A + refused receipt is stated with its reason and place and takes no further part. +3. Of the accepted receipts, those with equal digests are one. Two whose batch intervals share a + time unit are **both** set aside, `receipts_overlap`: DAP collects a bucket once (DAP §2.3; + `batchOverlap`), so an honest pair cannot exist, and a reader holds no ground to choose + between them (carousel §6.2 step 4, holdings §5.3). With the receipts sorted by batch + start, a receipt overlaps an earlier one when the greatest end before it is past its start, + and a later one when the next start is before its end. +4. Each receipt left **stands**. + +**Outcome:** + +- for each receipt, in order: its digest where it reads, and its verdict (`stands`, + `set-aside reason=…` or `refuse reason=… at=…`); for a standing one, its batch (`start` and + `duration` in `time_precision` units, `from_ms` and `to_ms`), `collectable_from_ms` = + ((`start` + `duration`) · `time_precision` + `hold_s`) · 1000, the earliest instant the hold + allows its collection, `report_count`, `reports_checked`, and its **rows**; +- **totals**: the rows summed over the standing receipts, each counted once, with the list of + their batch intervals and whether every one's reports were checked. A receipt given more than + once is checked when any of its occurrences was: they are the same bytes, and §8.1 accepted the + one given with its reports, so the order in which they arrive changes nothing. Each total is the + exact integer sum. The standing batches share no time unit, so there are fewer than 2^27 of + them (§5.3 bounds the retention instant), and each element is at most a u64 count (§8.1 step + 13): a total is below 2^91 and fits in a u128, and a reader **MUST NOT** wrap or saturate it at + 2^64. When none stands, the totals are empty: no row, never a row of zeros. + +A **row** is a (creative index, column) pair, for every creative and column in the catalogue's +order, `other` last. It states `presentations`, the sum of its five cells; `quartiles`, five +counts, those at quartile at least 1, 2, 3, 4 and 5, as stitched-presentation §7.4 states them; +and `floor_met`, whether `presentations` is at least 50. Every row is stated: a 0 is a counted +zero of a collected batch, never an unknown. + +### 8.3 What a table states + +- An accepted receipt means that two keys signed shares whose sum is the result, over the + reports of the batch the task's aggregators named (telemetry-aggregation §8.2), with + `reports_checked` saying whether the reports' ids, times and checksum were held to it. +- A row counts the presentations that receivers reported and that reached the leader before the + collection: a **lower bound**. It does not count receivers, people or sessions; it is not an + audience or a reach ([opportunity-report](opportunity-report.md) §10.3: "no record of this + text states an audience"); and it is never the *n* of bearer-receipts §7, where a larger *n* + lowers the bound per receiver and would read an unknown audience as the optimum. +- The time resolution is the batch, never finer than `time_precision`. A sparse hour is + collected inside a wider batch (DAP §6.3). +- A party that publishes a table beyond the holders of its receipts withholds every row whose + `floor_met` is false (delivery-telemetry §8, its §8.4: "suppressed, not rounded") and + publishes no figure that is a sum over rows that include a withheld one: a total row, a + receipt's `report_count`, or a sum over creatives or regions. + +## 9. Class, money and composition + +- **A class of its own.** A table's counts are the class **aggregated**: never summed into + [revenue-share](revenue-share.md) §5.2's presented, beacons or unplaced, and never billable + under [receipt-ledger](receipt-ledger.md) §4.1's `presented_impressions` or + `billable_impressions` until a revision of the ledger names a unit for them. This is + [settlement](settlement.md) §4.2's rule for its unacknowledged class: "never billable as + acknowledged". A price list of rung-price bills delivery by the units of its §4.3 and takes no + impression. +- **Never both.** A receiver whose claim of a presentation leaves the device (stitched-presentation, + stream-audit §6.3) makes no report of it, and one that reports it sends no claim of it. +- **No energy.** A table states no energy. A transmission's energy is bearer-receipts §7's, and + its bound never divides by a table count. +- **carousel.** The task file, the key-log revisions, the pod-input records, the manifests and + the creatives' objects ride as objects of groups on a carousel. A publisher **SHOULD** schedule + the task file's group so that carousel §6.4's "the group is held by *t*" holds with *t* at + least the time its receivers take to fill a token pool before the flight starts, and the + creatives' and records' groups by the flight's start. That is the checkable promise that + receivers within a loss bound can report attested presentations from the first hour. Nothing + in a count depends on the schedule. +- **timeliness.** A creative's deadline to be on a receiver before its break is a timeliness + entry of the creative's object, with `by_ms` no later than the splice (timeliness §8.5). A + publisher **MAY** also state one for the task file's object, its `by_ms` the flight's start + less the time its receivers take to fill a pool, so that carousel §6.4 at that `by_ms` is the + promise of the bullet above. A count depends on neither. +- **holdings.** A receiver that missed the task file or a creative fetches it from a neighbour + whose holdings record lists its group (holdings §5.4) and verifies it as any object (holdings + §6). The task file still needs its signer confirmed (§5.4). A neighbour with a path back is the + natural relay. +- **cache-authority.** A peer that served a creative is not a party to its count, and a tally of + the keys that held a creative by its deadline ([cache-authority](cache-authority.md) §8) counts + holding, never presentation: the two are never summed. Both write regions in rung-price §2's + codes. +- **bearer-receipts.** An upload file travels as a reconciliation does (§6.4). A reconciliation + attests receipt and a report counts a presentation: never the same fact, never merged. Key logs + on the bearer are bearer-receipts §8 (its §8.2): held, anchoring nothing, carrying revocations. +- **unidirectional-delivery.** The contribution is a sink-evaluated, total, deterministic + function (unidirectional-delivery §2), and the task authority is anchored out of band (§3 + there). +- **age-assurance.** [age-assurance](age-assurance.md) §6 (its §6.1 to §6.3) holds device-held + type-0x0002 tokens on a one-way bearer in the same way; here the challenge is per report, not + per device. +- **live-rooms.** A binary record whose signer must hold a named authority in an origin's key + log is [live-rooms](live-rooms.md) §5's `live/room` and [capture-binding](capture-binding.md) + §6 (its §6.4) `capture/store`; `aggregate/task` is a third. + +## 10. Reasons + +The codes this extension adds, each with where it is raised: + +| reason | raised at | +|---|---| +| `catalogue_malformed` | §4.3, §5.4 step 2, §8.1, §8.2 step 1 | +| `catalogue_mismatch` | §5.3 step 2 | +| `task_file_malformed` | §5.4 step 1 | +| `record_not_shared` | §6.2 step 2 | +| `record_terms_differ` | §6.2 step 3 | +| `creative_not_listed` | §6.2 step 5 | +| `instant_unknown` | §6.2 step 6 | +| `outside_task` | §6.2 step 7 | +| `token_exhausted` | §6.2 step 8 | +| `upload_malformed` | §6.4 | +| `receipts_overlap` | §8.2 step 3 | + +This extension also raises: telemetry-aggregation §11's codes, `task_invalid`, +`measure_mismatch`, `floor_too_low` and `aggregator_alone` at §5.3, every code of its §8.1 at +§8.1, `batch_invalid` also at §8.1 step 12, and `task_mismatch` also at §8.2 step 2; +age-assurance §7.3's `count_mismatch` (a receipt's counts are not the counts they must be) at +§8.1 step 13; `truncated`, `malformed`, `unknown_version`, `bad_key` and `bad_signature`; +jwp-receipts §7.7's confirmation reasons at §5.4 step 5; stitched-presentation §9's codes and the +ad-presentation codes it reuses, at §6.2 steps 1 and 4; ad-presentation's `attestation_absent` +and `attestation_invalid` at §7.2; and DAP's report errors (DAP §4.1) and problem types (DAP +§3.6), by DAP's names, at §6.6 and §7. + +## 11. Conformance + +[`live-conformance/impressions/`](../live-conformance/impressions/) holds the corpus, written +from fixed seeds by `wai_impression_aggregate_vectors gen` as `vectors.json`. Its regions are +ISO 3166-1 user-assigned codes and their subdivisions, its origins reserved example domains, and +its issuer key RFC 9578's published test key. It has: + +- **Catalogues**: the flight's and the open one's, the bounds read at their edge (cells, regions, + signers, keys, the hold), and a control for each rule of §4.3 and each way the layout breaks. +- **Tasks**: accepted ones, with the retention instant at the last instant exactly, and a control + for each step of §5.3, an overflowing retention instant among them. +- **Task files**: accepted ones, one whose lists name another suite first; a control for each + way a file is malformed; and the confirmation's refusals under the key logs held: a signer of + an unanchored origin, a key with `delivery` alone, a fetched anchor, a key revoked by a + revision received on the bearer, and the same key accepted before that revision is held. +- **Contributions**: each quartile at its mark, both carriages, every form of region, the hour, + flight and deadline edges, a pool whose least pair fails, a catalogue without attestation, and + a control for each step of §6.2. +- **Flows**, end to end, in telemetry-aggregation's flow form with the uploads and token + outcomes: an attested flight whose reports go through two overlapping relays, directly and + through a relay that merges two receivers' files; each kind of report §7.2 and DAP refuse; a + collection held, then completed; a batch below the floor refused by both aggregators; and a + report uploaded after its batch's collection. A flight without attestation, the flight's + catalogue under another task, and a batch collected past the task's interval. +- **Uploads, plans and settlements**: files that read and a control for each rule of §6.4; + plans at each edge of the deadline, the retention instant and the budget; settlement of every + DAP report error, a value DAP does not define, and responses that settle nothing. +- **Receipts** (§8.1) accepted with and without their reports, and refused at each step this text + adds and at the telemetry steps a receipt of another catalogue or task meets; **tables** (§8.2) + with a receipt given twice, a receipt given with and without its reports in both orders, + overlapping receipts, receipts of another task and catalogue, and the table's own refusals. + +A conforming verifier gives every case the outcome, the reason and everything else the corpus +states. `wai_impression_aggregate_vectors verify` and the test `tests/impression_aggregate.rs` +check that the file regenerates byte for byte, that `wai-rs` gives every case its outcome, that +every reason of §10 appears, and that §10 lists exactly the reference's codes. The test also +checks, without storing it, that each standing receipt's result is the plaintext tally of the +cells of the contributions its reports came from, and that stitched-presentation's own +verification of the flight's claims, step 11 left out, gives per creative the presentations and +quartile counts the flight's table gives summed over its columns. The size bounds of §5.4 and +§6.4 are checked in code, since no vector carries them: a file of exactly the bound that reads in +every other respect is read, a task file then reaching step 2, and the same file one byte longer +is refused at step 1. §4.3's bound decides no outcome (§4.3), so no check can observe it. +`live-conformance/impression_aggregate_verify.py` is the second implementation, written from this +text: it shares no code with `wai-rs`, evaluates Prio3 and opens every report with the QoE +corpus's second implementation, judges records and claims with stitched-presentation's, verifies +tokens with ad-presentation's, confirms task-file signers with the signer corpus's, writes the +catalogue, the task file, the upload file, the contribution, the plan, the settlement and the +table itself, requires every mutated copy of the corpus to fail, and drops each of its own checks +in turn. + +## 12. Security and privacy considerations + +- **What the source learns.** Reporting gives up part of unidirectional-delivery §2's "the + source learns nothing": the collector learns batch sums over at least 50 presentations; each + aggregator learns each report's id, time bucket, length, task, validity and arrival; relays + learn the same, less validity; the issuer learns when a device refilled its pool. +- **Non-collusion** (telemetry-aggregation §13). The receipt names three keys and checks that the + aggregators' differ. Whether two operators pool their shares is in no byte. +- **Who may define a task.** Only a key that an origin's pinned key log lists with + `aggregate/task`. A task decides which two aggregators receive every receiver's shares, so a + fetched anchor, authority taken on first use, confirms none. A key-log revision on the bearer + revokes a task key on receivers with no path (bearer-receipts §8.2). A key compromised and not + yet revoked can name colluding aggregators for new tasks: the bound is the origin's + revocation. +- **Sybil.** Without **attest**, anyone holding a task file submits reports: the count is of + reports, not of presentations. A deployment that bills **SHOULD** set attest, as + stitched-presentation §4 (its §4.6) says of shared breaks. With attest, each counted report costs + a token issued to a device its attester vouched for, and the bound per device is the issuer's + issuance policy. A farm of genuine devices attests truthfully (ad-presentation §13). +- **The local verdict is the receiver's word** (unidirectional-delivery §2: determinism, not + enforcement). A modified receiver reports any cell in range; the range proof stops only values + out of range (DAP §2.2; telemetry-aggregation §13). +- **The aggregators' word.** `count_mismatch` catches a share that changes the integer sum or + wraps an element. It does not catch a share that moves counts between two cells that both stay + in range. A leader that holds a report's token (its private extension) can drop that report and + submit one of its own making under the same id and token, moving that presentation to another + cell. Neither adds a presentation. A correct result needs both aggregators honest (DAP §8; + telemetry-aggregation §8.2). +- **Small cells.** The batch floor of each aggregator, regions no finer than ISO 3166-2 and + buckets of at least an hour bound what a cell reveals. A collector that inserts reports it + knows shrinks a batch's effective set (DAP §8.1); attestation raises that cost. Differential + privacy (DAP §8.5) is not used, because these counts are billed, and noise in a billed figure is + not deterministic. +- **Linking.** Reports of one receiver uploaded together can be linked by their arrival, though + not by their values; relays that merge files, and Oblivious HTTP (DAP §8.4), break that. Tokens + are unlinkable to their issuance (RFC 9576 §3.3); a refill is a timing fact the issuer sees. +- **Lateness.** A receiver that never returns is never counted. The direction is always under. +- **No consent rule** (telemetry-aggregation §10). Where a regime asks, a `lawful-basis` claim + (jwp-receipts §2.4.6) states the basis. +- **Bounded work.** A catalogue is at most 1 MiB, a task file 1 MiB and an upload file 16 MiB, + each read once. A contribution is one stitched verdict and lookups; a task file's confirmation + is jwp-receipts §7.4's; a table is linear in receipts times *L*, plus a sort of the receipts. diff --git a/wai/extensions/jwp-receipts.md b/wai/extensions/jwp-receipts.md index 71d62b8fc..752ef1743 100644 --- a/wai/extensions/jwp-receipts.md +++ b/wai/extensions/jwp-receipts.md @@ -41,9 +41,10 @@ In scope: `claim` receipt (§2.4.3) carries one of the others — `energy`, `lawful-basis`, `log-inclusion`, `measurement`, `operating-point`, `stage`, `delivery-gap`, `reconstruct-session`, `consumption`, - `transmission`, `reconciliation`, `schedule` (§2.4.5–§2.4.16) — on one - envelope, one canonical form and one signature rule, so a statement other - than delivery does not need a field set of its own. + `transmission`, `reconciliation`, `schedule`, `timeliness`, + `cache-transmission` (§2.4.5–§2.4.18) — on one envelope, one canonical form and one signature + rule, so a statement other than delivery does not need a field set of its + own. - **Objects not delivered** (§3, §4.4): an object a subscriber did not receive is accounted for by its receipt, checked without the object's bytes and reported as `inclusion-verified`, never as delivered; a relay forwards @@ -341,7 +342,7 @@ nullable member is present and `null`, so one claim has one canonical form. | `subject` | 32 B hex | For `object`: the §2.1 content hash of the object the claim is about. For `receipt`: the link hash of a receipt — §3 step 3's for a group receipt, `link_hash` below for a claim — or, for a class that names a figure profile (§2.4.8–§2.4.9), the identity that profile defines ([energy-measurement](energy-measurement.md) §6.1). | | `seq` | integer | Strictly increasing across the claims of one `signer_pubkey`. | | `issued_at` | string | A date-time (below) at which the signer issued the claim. Self-asserted, like `group_end`. | -| `body` | object | Class-scoped; its members are fixed by `class` and by nothing else (§2.4.5–§2.4.12, §2.6). | +| `body` | object | Class-scoped; its members are fixed by `class` and by nothing else (§2.4.5–§2.4.18, §2.6). | | `signer_pubkey` | 32 B hex | Ed25519 verifying key per RFC 8032. | | `signer_id` | string | Bound identity string, as for a group receipt (§2.4.1, §7.1). | | `parent_receipt_hash` | 32 B hex or `null` | `link_hash` of this signer's previous claim; `null` for its first. | @@ -418,6 +419,8 @@ key. | `transmission` | `claim` | `receipt` (the group transmitted) | §2.4.14 | the group's publisher: the key that signed the group | | `reconciliation` | `claim` | `receipt` (the group reconciled) | §2.4.15 | the sink that received the objects, never the publisher | | `schedule` | `claim` | `receipt` (the group scheduled) | §2.4.16 | the group's publisher: the key that signed the group | +| `timeliness` | `claim` | `receipt` (the group whose objects it times) | §2.4.17 | the group's publisher: the key that signed the group | +| `cache-transmission` | `claim` | `receipt` (the group sent again) | §2.4.18 | a node that sent the objects from what it held, never the group's publisher | Rules: @@ -1383,6 +1386,31 @@ unchanged. [carousel](carousel.md) defines it: its body's members are §4.1 ther group receipt, whose link hash is its `subject` and whose key signs it, and the object receipts and envelopes at the positions it names. +#### 2.4.17. `class: "timeliness"` + +A publisher's statement of when each object of a group is of use: the instant it is useful from, +the deadline by which a receiver must hold it for its full value, how that value falls after the +deadline, and the rendition a receiver presents in its place when it does not hold it in time. It +attests a value over time, not a transmission or a delivery, and sits beside the group receipt, +whose bytes it leaves unchanged, one statement for every bearer. [timeliness](timeliness.md) +defines it: its body's members are §4.1 there (`objects` and `attests`), read at §3.1 step 2; its +class rules are §4.2 there, at step 4; and its context is §4.3 there, at step 6: the group +receipt, whose link hash is its `subject` and whose key signs it, the object receipts and +envelopes at the positions it names, and each fallback's group receipt, object receipt and +envelope. + +#### 2.4.18. `class: "cache-transmission"` + +A node's declaration that it sent, from what it held, objects of a group another key signed, over +a bearer instance of its own with no path back on it: a bitmap of their positions and a root over +their leaves under the group's own tree (§2.2), checked against the publisher's root without the +objects. It attests transmission, never delivery, and it is never in the publisher's chain. +[cache-authority](cache-authority.md) defines it: its body's members are §5.1 there (`bearer`, +`bearer_id`, `leaf_count`, `sent`, `sent_root`, `energy` and `attests`), read at §3.1 step 2; its +class rules are §5.2 there, at step 4; and its context is §5.3 there, at step 6: the group +receipt, whose link hash is its `subject` and whose key does not sign it, and the object receipts +at the positions it names. + ### 2.5. Worked example Manifest JSON (group receipt, formatted for readability — wire form @@ -2128,8 +2156,8 @@ order listed. is not 64 of them; a value outside an enumeration this extension defines here (`record`, `binding_type`, a bracket's `opening`, a build's `profile`, a stage's `tier`, a stage object's `status` and `evidence`, a - consumption claim's usage `vocabulary`, a transmission or reconciliation - claim's `bearer`, a schedule entry's `fec` and `esi`, a gap's `reason`, a session's + consumption claim's usage `vocabulary`, a transmission, reconciliation or + cache-transmission claim's `bearer`, a schedule entry's `fec` and `esi`, a gap's `reason`, a session's `framing`, its host's `profile`, and the paths of its decoder entries and switches); a date-time that is not one of §2.4.3 (a gap's `observed_at`); a URI that is not absolute; @@ -2138,7 +2166,8 @@ order listed. `oer_receipt`; or an operating point whose member names are not terms or whose values are not integers of §2.4.3. A member's type and encoding are checked together, before the next member is read. An object a class fixes the members - of — a lawful-basis purpose, an `energy_uncertainty`, a span — is checked + of — a lawful-basis purpose, an `energy_uncertainty`, a span, a timeliness + entry, its decay points and its fallback — is checked the same way, its members and then their types, where the table reaches it, and the entries of an array in the array's order. Of a member's value, this step checks the type column and nothing else. @@ -2166,7 +2195,10 @@ order listed. its classical rendition; in a `transmission` or `reconciliation` claim, its `attests`, a transmission's energy figure and a reconciliation's bitmap; in a `schedule` claim, its `attests`, the order of its entries, and each entry's code - parameters, symbols and passes; + parameters, symbols and passes; in a `timeliness` claim, its `attests`, the order + of its entries, and each entry's window, decay and fallback; in a + `cache-transmission` claim, its `attests`, its `bearer`, its bitmap and its energy + figure; and, in a `consumption` claim, the order of its objects, usage entries and seen digests, its subject, its terms and its `signer_id`. @@ -2182,7 +2214,7 @@ order listed. verified in the order of [pq-signatures](pq-signatures.md) §4.2 (`hybrid_required` under its policy, `pq_signature_invalid`), and its hybrid members are read at step 1, after the subject type is admitted (`pq_malformed`, `pq_suite_unknown`). -4. **Class rules**, per §2.4.5–§2.4.15 and §2.6, each with its own +4. **Class rules**, per §2.4.5–§2.4.18 and §2.6, each with its own reason (below). They run after the signature because a rule about what a signer said only means something once it is established who said it. @@ -2221,9 +2253,15 @@ order listed. `reconciliation` claim against that group receipt and the object receipts at the positions it names, each verified by inclusion at least, as [bearer-receipts](bearer-receipts.md) §4.3 and §5.3 order them (§2.4.14, - §2.4.15); and a `schedule` claim against the group receipt its subject names and + §2.4.15); a `schedule` claim against the group receipt its subject names and the object receipts and envelopes at the positions it names, as - [carousel](carousel.md) §4.3 orders them (§2.4.16). A group receipt is verified here under §3 steps 1 and 2, and one + [carousel](carousel.md) §4.3 orders them (§2.4.16); and a `timeliness` claim against the + group receipt its subject names, the object receipts and envelopes at the positions it + names, and each fallback's group receipt, object receipt and envelope that the verifier + holds, as [timeliness](timeliness.md) §4.3 orders them (§2.4.17); and a `cache-transmission` + claim against the group receipt its subject names and the object receipts at the positions it + names, each verified by inclusion at least, as [cache-authority](cache-authority.md) §5.3 + orders them (§2.4.18). A group receipt is verified here under §3 steps 1 and 2, and one that fails them is `context_invalid`. A declaration is verified here under steps 1–4, and one that fails them — or is not JSON — is `context_invalid`: its members, @@ -2328,6 +2366,14 @@ and never folds it in: confirmation changes the outcome of no step here. | 4 | `schedule_oti_invalid` | an entry's code parameters are not ones its code admits (carousel §5.1, §5.2) | | 4 | `schedule_symbols_invalid` | an entry's symbols are not ones its code can name (carousel §5.4) | | 4 | `schedule_passes_invalid` | an entry's passes are not well formed: none, of no duration, overlapping, ending past 9999, or sending more than 253 − 1 octets | +| 4 | `timeliness_not_valued` | a `timeliness` claim's `attests` is not `valued` ([timeliness](timeliness.md) §4.2) | +| 4 | `timeliness_objects_malformed` | it has no entry, or its entries' `leaf_index` values do not strictly increase | +| 4 | `timeliness_window_invalid` | an entry's `from_ms` is after its `by_ms`, or its `by_ms` is not below the last instant, 9999-12-31T23:59:59.999Z | +| 4 | `timeliness_decay_invalid` | an entry's decay is not well formed: not 1 to 16 points; instants not strictly increasing from after `by_ms` to at most the last instant; a value at or above 1,000,000, above the one before it, a last one other than 0 or another one of 0; or a point but the last on the line through its neighbours | +| 4 | `timeliness_fallback_invalid` | an entry's fallback is valued at 0 or above 1,000,000, has the entry's content hash, or names the entry's own position | +| 4 | `cache_transmission_not_transmitted` | a `cache-transmission` claim's `attests` is not `transmitted` ([cache-authority](cache-authority.md) §5.2) | +| 4 | `cache_transmission_on_bidirectional` | its `bearer` is `bidirectional` | +| 4 | `cache_transmission_bitmap_malformed` | its `leaf_count` is 0, its `sent` is not ⌈`leaf_count` / 8⌉ bytes, sets a bit at or past `leaf_count`, or sets none | | 6 | `energy_disagrees_with_delivery` | the figure differs from the `object` receipt's | | 6 | `energy_class_disagrees_with_delivery` | the object's leaf is labelled, and the `energy` claim's class or evidence differs from the label | | 6 | `figure_disagrees` | the receipt a `measurement` or `operating-point` claim names carries another figure at `figure_index` | @@ -2380,6 +2426,19 @@ and never folds it in: confirmation changes the outcome of no step here. | 6 | `schedule_before_group` | an entry's first pass starts before the group's `group_start` | | 6 | `schedule_content_mismatch` | an entry's `content_hash` is not that of the object receipt the verifier holds at its position | | 6 | `schedule_length_mismatch` | an entry's transfer length is not the length of the object's envelope the verifier holds | +| 6 | `timeliness_subject_mismatch` | a `timeliness` claim's `subject` is not the link hash of the group receipt it is checked against ([timeliness](timeliness.md) §4.3) | +| 6 | `timeliness_signer_mismatch` | it is not signed by the group's key | +| 6 | `timeliness_leaf_out_of_range` | an entry's `leaf_index` is not less than the group's `leaf_count` | +| 6 | `timeliness_before_group` | an entry's `from_ms` is before the group's `group_start`, whole seconds compared | +| 6 | `timeliness_content_mismatch` | an entry's `content_hash` is not that of the object receipt the verifier holds at its position | +| 6 | `timeliness_on_layer` | an envelope the verifier holds whose content hash is an entry's or a fallback's is a `WAI1` of a refinement-only capability | +| 6 | `timeliness_fallback_mismatch` | a fallback's `leaf_index` is not less than the leaf count of its group, where the verifier holds that group receipt, or its `content_hash` is not that of the object receipt the verifier holds at its position | +| 6 | `timeliness_fallback_not_derived` | an envelope the verifier holds whose content hash is a fallback's is not a `WAI1` whose `derived_from` names the entry's `content_hash` as its `motif` | +| 6 | `cache_transmission_subject_mismatch` | a `cache-transmission` claim's `subject` is not the link hash of the group receipt it is checked against ([cache-authority](cache-authority.md) §5.3) | +| 6 | `cache_transmission_by_publisher` | it is signed by the group's key | +| 6 | `cache_transmission_leaf_count_mismatch` | its `leaf_count` is not the group's | +| 6 | `cache_transmission_objects_not_held` | it names a position whose object receipt the verifier does not hold: recoverable, never accepted | +| 6 | `cache_transmission_root_mismatch` | its `sent_root` is not the root over the leaves at the positions it names | | 6 | `session_stage_disagrees` | a `stage` claim the session names is about a base, or lists an arrived layer object, the session did not receive; counts a unit the session never presented, or more units at a stage than the session presented at it or above; or no claim whose set holds a unit lists an applied layer that reaches a stage the session presented it at | | 6 | `session_stage_hash_not_exact` | a `stage` claim the session names states a `stage_hash`, and a decoder entry names its base at a step weaker than `decode-equivalence`, or names its base or a layer it lists without stating an exact path, whichever units it presented | @@ -2585,6 +2644,9 @@ below bind a relay that reads the receipts it forwards. the subscriber. The relay MUST NOT renumber `object_id`. - Sign a `delivery-gap` claim (§2.4.11) for an object it did not forward, under its own key, as the parallel receipt §4.3 permits. +- Sign a `cache-transmission` claim (§2.4.18) for objects it sends again, + from what it holds, over a bearer instance of its own, as the parallel + receipt §4.3 permits. A node that is not a relay (§4.5) may sign one too. - Derive new objects from those it forwards and publish them as a publisher of its own ([deriving-edge](deriving-edge.md)): each a new object with its own content hash, in a group it signs on a track of its @@ -3606,18 +3668,21 @@ A confirmation needs every one of them: | item | authorities | |---|---| | a `group` receipt, and the `object` receipts under it | `delivery`; and `energy/` for each acquisition class an `object` receipt under it labels, where its leaf binds a label (§2.2), and for the class a labelled group payload signs for the group's total (§2.3) | -| a `claim` | its class's authority: `energy/` followed by its `energy_provenance` for `energy`, for example `energy/OnChipCounter`; `lawful-basis/declaration` or `lawful-basis/decision` by its `record`; its class name for every other class — `log-inclusion`, `soft-binding`, `soft-binding-span`, `binding-recovery`, `measurement`, `operating-point`, `stage`, `delivery-gap`, `reconstruct-session`, `consumption`, `transmission`, `reconciliation` and `schedule`. And `energy/` followed by its `energy_provenance` whenever its body carries that member, whatever its class | +| a `claim` | its class's authority: `energy/` followed by its `energy_provenance` for `energy`, for example `energy/OnChipCounter`; `lawful-basis/declaration` or `lawful-basis/decision` by its `record`; its class name for every other class — `log-inclusion`, `soft-binding`, `soft-binding-span`, `binding-recovery`, `measurement`, `operating-point`, `stage`, `delivery-gap`, `reconstruct-session`, `consumption`, `transmission`, `reconciliation`, `schedule`, `timeliness` and `cache-transmission`. And `energy/` followed by its `energy_provenance` whenever its body carries that member, whatever its class | | the energy figure of a `reconstruct-session` claim whose `energy` is not `null` | `reconstruct-session`, and `energy/` followed by `energy.energy_provenance` | | the energy figure of a `transmission` claim whose `energy` is not `null` | `transmission`, and `energy/` followed by `energy.energy_provenance` | +| the energy figure of a `cache-transmission` claim whose `energy` is not `null` | `cache-transmission`, and `energy/` followed by `energy.energy_provenance` | | a receipt of another WAI family that signs its own `signer_pubkey` and `signer_id` | `receipt`; and `energy/` for each class its figures carry a label for | | a module grant (§7.9) | `module/decoder` or `module/reconstruct`, by its `form` | | a room descriptor or room grant ([live-rooms](live-rooms.md) §3, §4), or a room usage record ([ai-usage](ai-usage.md) §4.2) | `live/room` | | an upload receipt of a take ([capture-binding](capture-binding.md) §6) | `capture/store` | +| an impression task file ([impression-aggregates](impression-aggregates.md) §5.4) | `aggregate/task` | | a per-hop session record ([live-metering](live-metering.md) §3) | `live/relay`, `live/compositor` or `live/ingest`, by its role; and `energy/` for its figure's class where it is metered | | a room-session receipt (live-metering §4) signed by a key other than the room authority | `live/meter`; and, from any signer, `energy/` for each class it totals | | a steering policy or steering decision ([energy-steering](energy-steering.md) §3.5) signed by a key other than the room authority | `live/steer`; and, from any signer of a decision, `energy/` for each class among its figures | | a watermark session record ([forensic-watermark](forensic-watermark.md) §5) | `live/watermark` | | a derivation record ([deriving-edge](deriving-edge.md) §5) | `edge/derive`, from the origin of each source object it derives from (deriving-edge §8); and `energy/` for its figure's class where it is metered | +| a holdings record's `holder` ([holdings](holdings.md) §4), and the `upstream` of a settlement acknowledgement or declaration ([settlement](settlement.md) §3, §4), placed as a serving node ([cache-authority](cache-authority.md) §4.4) | `cache/serve` | A class registered in §2.4.4 registers its authority here with it, and a family that needs a narrower authority than `receipt` registers one here. @@ -3629,9 +3694,9 @@ that class's authority without this table naming the class. **Pinned-only authorities.** The hardware-class energy authorities — `energy/CalibratedInstrument`, `energy/OnChipCounter` and the legacy `energy/HwShunt` — the lawful-basis authorities — -`lawful-basis/declaration` and `lawful-basis/decision` — and any -authority registered for pre-emption are confirmed only under a pinned -anchor that has not moved (§7.4 step 6a). Every other authority is +`lawful-basis/declaration` and `lawful-basis/decision` — `aggregate/task`, +and any authority registered for pre-emption are confirmed only under a +pinned anchor that has not moved (§7.4 step 6a). Every other authority is confirmed under a pinned or a fetched anchor, and every confirmation reports which. @@ -3712,7 +3777,10 @@ its keys is that party is the origin's decision, and its log records it: anchors provisioned before it was cut off, and a key log that reaches it over the bearer anchors nothing ([bearer-receipts](bearer-receipts.md) §8). `schedule` lets a key state the passes of a group it signed over an instance (§2.4.16); an origin gives it to its publishing - keys, as it gives `transmission`, and it is neither pinned-only nor `delivery`. + keys, as it gives `transmission`, and it is neither pinned-only nor `delivery`. `timeliness` + lets a key state when the objects of a group it signed are of use (§2.4.17); an origin gives + it to its publishing keys, as it gives `schedule`, and it is neither pinned-only nor + `delivery`. - **Log inclusion.** A confirmation says under whose authority the log's evidence was attached. It does not check `log_receipt`: §2.4.7 is unchanged. @@ -3732,6 +3800,12 @@ its keys is that party is the origin's decision, and its log records it: - **Stores.** `capture/store` lets a key act as a store a room's takes are uploaded to: sign the upload receipts of a take ([capture-binding](capture-binding.md) §6.4). It is not pinned-only, and it is not `delivery`. +- **Aggregation tasks.** `aggregate/task` lets a key sign an impression task file: name a DAP + task, its two aggregators and its collector, which receivers on a bearer with no return path + report to ([impression-aggregates](impression-aggregates.md) §5.4). It is pinned-only, because + a task decides which two aggregators receive every receiver's shares and so gives up part of + [unidirectional-delivery](unidirectional-delivery.md) §2's "the source learns nothing", and a + fetched anchor is authority taken on first use. It is not `delivery`. - **Watermark edges.** `live/watermark` lets a key act as an edge that chooses forensic A/B variants for a room's viewers: sign the session records of what it embedded ([forensic-watermark](forensic-watermark.md) §5.6). It is not pinned-only, and it is not @@ -3742,9 +3816,20 @@ its keys is that party is the origin's decision, and its log records it: source's, not the edge's: an origin lists the edges it trusts with its content, and a hop is confirmed under each origin its chain reaches. It is not pinned-only, and it is not `delivery` or `live/relay`. +- **Caches and peers.** `cache/serve` lets a key act as a node that serves, from what it holds, + objects of groups another key signed ([cache-authority](cache-authority.md) §4): sign its + holdings records, sign its declarations, and be the `upstream` of the acknowledgements its + receivers sign. `cache-transmission` lets a key declare a bearer instance of its own over which + it sent such objects (§2.4.18), as `delivery-gap` lets a relay sign what it did not forward. + The origin that gives them is the node's operator's, not the publisher's: a cache changes no + byte, so the publisher's receipts verify whatever it serves. Neither is pinned-only, and + neither is `delivery`, `transmission`, `live/relay` or `edge/derive`: a cache publishes + nothing, declares none of the publisher's transmissions, signs no room's hop record and + derives nothing. A `cache-transmission` claim's subject is the publisher's group, so a + verifier expects an origin for one only where its relying party names one, as for a session. - **Pre-emption** ([unidirectional-delivery](unidirectional-delivery.md) - §3), and relay attestation (§4.3) other than a `delivery-gap` claim and a - derivation record, have no class and so no authority. When one is registered for pre-emption it is pinned-only, + §3), and relay attestation (§4.3) other than a `delivery-gap` claim, a + `cache-transmission` claim and a derivation record, have no class and so no authority. When one is registered for pre-emption it is pinned-only, and the pinned revision itself must list the key with it (§7.4 step 6a): a fetched anchor is authority taken on first use, which that section forbids for an instruction that displaces what a person chose. diff --git a/wai/extensions/moq-streaming-format.md b/wai/extensions/moq-streaming-format.md index 0ee8f0b79..8432cf104 100644 --- a/wai/extensions/moq-streaming-format.md +++ b/wai/extensions/moq-streaming-format.md @@ -320,6 +320,8 @@ tracks one subscriber priority. A slack of zero or less cannot be set, since a timeout of 0 is no timeout (MOQT §5.2): such an object cannot arrive in time for any unit it covers, and a publisher **MAY** withhold it. +- For an object that is not a layer and whose timeliness stands, the slack is to its end, and + on a base track the floor below stands: [timeliness](timeliness.md) §8.1. - A publisher **MUST NOT** set on a base track a delivery timeout of either kind shorter than the time from a base's publication to the presentation of its last unit. diff --git a/wai/extensions/rung-price.md b/wai/extensions/rung-price.md new file mode 100644 index 000000000..4353ab625 --- /dev/null +++ b/wai/extensions/rung-price.md @@ -0,0 +1,727 @@ +# WAI Extension: Rung Price + +> Status: Draft. Registers the record `wai.delivery.rung_price`: a seller's signed list of what it +> charges to deliver a rung, and one rule for comparing delivery options with it. A **rung price +> list** (`wai-rung-prices`, §4) prices delivery per direction (`downlink` or `uplink`), bearer +> class ([bearer-receipts](bearer-receipts.md) §2), footprint of regions delivered to (ISO 3166 +> codes in WAI's capitals, §2), ceiling of the rung's rate in bits per second, and unit; each unit +> is priced at the divisor of the ledger field that bills it, in [route-record](route-record.md)'s +> amounts, with the energy the seller states beside it. A seller's latest list stands alone, and +> one that lapses revives none (§5). A comparer's request removes the options its limits remove, +> and ranks the rest by a cost per receiver: a shared transmission's is held to its pass rate and +> divided by the audience the comparer states, or by one, never by an assumed one; the plan states +> the audience at which sharing is no dearer (§6). An energy figure ranks by its class only when +> the seller's own per-hop records, which the list names by digest, bear it out, are current, and +> come from a key the comparer confirmed for that class; any other figure ranks as an estimate, and +> one its own records contradict is set aside (§4.6, §6.4). A list is a quote: a buyer is billed +> only at a tariff it signed ([receipt-ledger](receipt-ledger.md) §4.2), and §7 says which tariff +> field bills each unit. The reference implementation is the `rung_price` module of `wai-rs` +> (feature `rung_price`), with the region code in `wai-rs`'s `region` module; the corpus is +> [`live-conformance/prices/`](../live-conformance/prices/), and its second implementation is +> `live-conformance/rung_price_verify.py`. +> Keywords **MUST**, **MUST NOT**, **SHOULD**, **MAY** are RFC 2119/8174. +> +> Texts read for this revision: RFC 8506, RFC 8006, RFC 9388, RFC 8216 and +> `draft-ietf-moq-msf-01`; 3GPP TS 32.291, TS 32.279 and TS 26.510 as a mirror of Release 19 gives +> them. ISO 3166 and ISO/IEC 23009-1 were not read: this text binds only the structure of a code +> (§2) and the name of an attribute. + +## 1. Scope + +In scope: the price list, its form, digest and signature, and the records its energy figures name +(§4); what a verifier derives from lists at an instant (§5); how delivery options are compared +under a request, with the records a comparer is given, and the neighbour order a comparison gives +an asker (§6); and which tariff field bills each unit of a list (§7). + +Out of scope: a transport; how a seller sets its prices; what a delivery promises, which is a +deadline, an earliest useful time, a decay or a fallback rendition ([timeliness](timeliness.md) +§4), a schedule's availability and decoding bound ([carousel](carousel.md) §6.3), or service +counted against a region and a miss target, which no price states and +[cache-authority](cache-authority.md) §8 counts; payment; the records a line +bills from, which their own extensions define; and which sellers a comparer accepts. + +Relationship to the core spec: `wai.delivery.rung_price` is a **record** ([SPEC](../SPEC.md) §5). +It names no payload format and is not dispatchable. + +## 2. Terms + +- **Seller**: an Ed25519 key that signs a list. **Comparer**: anyone who compares lists: a router, + a buyer, or an asker of [holdings](holdings.md) §5.4. +- **Time**, **amount**, **document**, **canonical form**, **digest**, **unit**, **class**: as + route-record §2. A time is in microseconds, and an amount in millionths of a minor unit + (ISO 4217, by its alphabetic code). +- **Bearer class**: `bidirectional`, `multicast` or `unidirectional`, as bearer-receipts §2. +- **Direction**: + - `downlink`: octets sent to the end user who receives the rung. This is RFC 8506 §8.25 + *CC-Output-Octets* ("sent to the end user") and 3GPP TS 32.291 §6.1.6.2.1.10 + `downlinkVolume`. + - `uplink`: octets received from the end user who contributes it. This is RFC 8506 §8.24 + *CC-Input-Octets* ("received from the end user") and TS 32.291 `uplinkVolume`. + + A peer is not a direction. A peer that serves a neighbour serves it `downlink` on a + `bidirectional` bearer, and is told apart by who signs. RFC 8506 §8.23 *CC-Total-Octets* + ("regardless of the direction") states no direction, and is neither. +- **Region code**: either of these, written as WAI writes ISO 3166 codes elsewhere + ([live-rooms](live-rooms.md) §3.7 `regions`, [channel-lineup](channel-lineup.md) §6.2 + `countries`, [forensic-watermark](forensic-watermark.md) §5.1 `region`): + - an ISO 3166-1 alpha-2 code: two capitals `A`–`Z` (`XA`); + - an ISO 3166-2 code: an alpha-2 code, `-`, then 1 to 3 capitals `A`–`Z` or digits `0`–`9` + (`XA-1`). + + A code's **country** is its first two characters. Whether ISO assigns a code is not checked, + and codes are compared byte for byte. CDNI writes the same codes in lowercase (RFC 8006 §4.3.8 + `countrycode`, RFC 9388 §2.1.1.1 `subdivisioncode`); a code maps to and from those by changing + the case of its letters, exactly, and a CDNI footprint of both kinds is a `footprintunion` (RFC + 9388 §2.2). + + This is WAI's one definition of a region code, its country and *holds*: an extension that + states a region cites this section rather than restating it. +- **Holds**: a list of region codes holds a code *r* when it lists *r*, or when *r* is an ISO + 3166-2 code and the list names *r*'s country. It never holds a country because it lists a + subdivision of it. +- **Rung rate**: the bits per second a rendition delivered to each receiver takes, as its own + description states it: + - an HLS `BANDWIDTH` (RFC 8216 §4.3.4.2, "the peak segment bit rate"); + - an MSF `bitrate` (`draft-ietf-moq-msf-01` §5.2.22, the track's maximum bitrate in bits per + second), a JSON number, taken **rounded up** to an integer; + - a DASH Representation's `@bandwidth` (ISO/IEC 23009-1); + - a packaging class's `max_kbps` × 1000 ([packaging](packaging.md) §3, its paragraph 3.3); + - a room profile layer's `max_kbps` × 1000 (live-rooms §8.1); + - a steering policy's tier bitrate ([energy-steering](energy-steering.md) §3.1 `tiers`); + - a `wai:bitrate` ([capability-constraints](capability-constraints.md) §3.1). + + A packaging class with no `max_kbps` states no rate, and a request for it states `null`, never + 0 and never the lowest tier. +- **Pass rate**: the rate a transmission's passes take on their bearer (§7.2). +- **Per-hop record**: a hop's signed record of its part in one room session, `WMH1` + ([live-metering](live-metering.md) §3). Its digest is SHA-256 over its bytes before `sig` + (live-metering §3.5); its **room** is the room descriptor (live-rooms §3.1) whose digest is its + `room`; and its **instant** is that room's `t0` + its `end` − 1, the last microsecond its span + covers ([fleet](fleet.md) §4.5). +- ⌊x⌋ is x rounded down and ⌈x⌉ is x rounded up; products are computed in integers wide enough not + to overflow. + +## 3. Why a signed list beside the price book and the tariff + +1. **A router and a buyer compare before any contract.** The price book is a router's own unsigned + statement (route-record §11). A tariff names one buyer, and binds only once that buyer signs + it (receipt-ledger §4.1, §4.2). Nothing signed lets a buyer hold a seller to a price before + both exist. The list is the seller's word to every comparer, signed, with the window it holds + for. +2. **Delivery is priced by what carries it, where, and in which direction**, not by an operation + and an endpoint. A price book's `endpoint`, `provider`, `operation` and `capability` name a + job's server and what it produces; a carrier produces nothing, and the catalogue has no + delivery operation. Its `region` and `residency` are where an endpoint runs and where data + rests, not where content is delivered to. Its `failures` are the router's own measurement, + which a seller cannot sign. What delivery needs and the price book lacks is a direction, a + bearer class, a footprint, a rate ceiling, and a signer with a validity window: those, and only + those, are added (§4.2). +3. **A shared transmission and a per-receiver delivery are compared honestly.** On a `multicast` + or `unidirectional` bearer one transmission serves every receiver, and their number is unknown + ("the source learns nothing", [unidirectional-delivery](unidirectional-delivery.md) §2). + Dividing by an assumed audience would read the unknown as the optimum. §6.3 divides by the + audience a comparer states, and by 1 otherwise, and states the audience at which sharing stops + costing more. +4. **It changes no byte of any record it prices.** Lines bill only quantities that signed records + state (§7). A list is a quote, never a charge, as the price book's figures are (receipt-ledger + §5.1, *Routing figures are never charges*). + +## 4. The list + +### 4.1 Members + +A list is a document (route-record §2) of exactly these members: + +| member | form | +|---|---| +| `kind` | `"wai-rung-prices"` | +| `version` | `1` | +| `seller` | a key: 64 lowercase hexadecimal digits | +| `currency` | three capitals `A`–`Z` (ISO 4217) | +| `issued` | a time: from when the list states its prices | +| `expires` | a time: from when it states nothing | +| `entries` | 1 to 1,024 entries (§4.2), in §4.5 rule 4's order | +| `sig` | 128 lowercase hexadecimal digits (§4.4) | + +### 4.2 An entry + +| member | form | meaning | +|---|---|---| +| `direction` | `"downlink"` or `"uplink"` | §2 | +| `bearer` | `"bidirectional"`, `"multicast"` or `"unidirectional"` | bearer-receipts §2 | +| `footprint` | 1 to 8,192 region codes (§2), strictly ascending by their bytes | the regions it delivers to | +| `max_bps` | an integer from 1 to 2⁵³ − 1 | the tier's ceiling: it prices a rung whose rate (or pass rate, for a transmission unit) is at most this, unless a lower ceiling of the same list, direction, bearer and unit, holding the region, also covers it (§6.2 `tier`) | +| `unit` | a unit (route-record §2): one of §4.3's (rule 5) | what is priced | +| `divisor` | an integer at least 1: the unit's divisor (rule 5) | as route-record §3.2 | +| `price` | an integer, at most the unit's bound (rule 5) | an amount per `divisor` units | +| `energy_uj` | an integer of at least 1, or `null` | the microjoules the seller states per `divisor` units, as route-record §3.2; `null` when it states none, and never 0, as bearer-receipts §4.2 refuses a zero figure | +| `energy_class` | a class (route-record §2), or `null` exactly when `energy_uj` is `null` | the class of that figure | +| `energy_ppm` | an integer from 1 to 2³² − 1 when `energy_class` is `CalibratedInstrument` or `OnChipCounter`, and `null` otherwise | the figure's declared uncertainty, in parts per million of it ([energy-measurement](energy-measurement.md) §2.3): the largest its records declare (§4.6 rule 4) | +| `energy_evidence` | 1 to 64 digests, each 64 lowercase hexadecimal digits, in strictly ascending order of their bytes, when `energy_class` is `CalibratedInstrument`, `OnChipCounter` or `ModelBased`; `null` otherwise | the per-hop records (§2) whose rate the figure is (§4.6) | + +- A ceiling of 2⁵³ − 1 is how a seller prices any rung. It is not a sentinel: no document states a + greater rate. +- 8,192 codes exceed the codes ISO 3166-1 and ISO 3166-2 assign together, and rule 6 forbids a + code twice in one tier, so one entry never needs more. +- **An entry is a whole price.** It is the price of what it carries, counted in its unit alone. A + seller that would also bill another unit for the same delivery has stated a price it does not + hold to. Two entries of a seller are alternatives, and a comparer ranks them as such. +- **A class above `Estimator` names its records.** A class says how a figure was obtained + (energy-measurement §2), and a list is no reading (§10). An entry whose class is above + `Estimator` names the per-hop records whose rate its figure is, and one of a hardware class + states the declared uncertainty energy-measurement §2.3 requires of that class. An entry that + names none states an estimate, and its class says so. 64 records bound what one entry costs a + comparer to read. + +### 4.3 Units, by bearer class and direction + +| unit | bearer | direction | basis | divisor | price at most | counts | +|---|---|---|---|---|---|---| +| `bytes` | `bidirectional` | `downlink` | receiver | 10⁹ | 2⁵³ − 1 | bytes one receiver is delivered | +| `subscriber_us` | `bidirectional` | `downlink` | receiver | 10⁶ | 2³² − 1 | microseconds one receiver is subscribed at the rung ([live-metering](live-metering.md) §3.3) | +| `publisher_us` | `bidirectional` | `uplink` | receiver | 10⁶ | 2³² − 1 | microseconds one contributor publishes (live-metering §4.4) | +| `bytes_sent` | `multicast`, `unidirectional` | either | transmission | 10⁹ | 2⁵³ − 1 | octets transmitted: carousel §5.4's `bytes_sent` | +| `pass_us` | `multicast`, `unidirectional` | either | transmission | 10⁶ | 2⁵³ − 1 | microseconds of passes: Σ `count` × `duration_ms` × 1000 over a schedule's entries (carousel §2, §4.1) | + +**The basis follows from the bearer class.** A `bidirectional` bearer reaches each receiver over +its own path; the other two classes reach every receiver with one transmission (bearer-receipts +§2). + +**A per-receiver unit on a shared bearer is refused**, because no sender can count it: the source +learns nothing (unidirectional-delivery §2), and receiver time on an ATSC 3.0 broadcast or a 5G +media streaming service comes only as unsigned reports (bearer-receipts §9.5; 3GPP TS 26.510 §9.6.3.2 +reports consumption under a second as 0). + +**Each divisor and bound is the ledger field's** that bills the unit (receipt-ledger §4.1 and +§6.3; §7 here): room prices are u32, per second, and delivery prices u64, per 10⁹ bytes. So every +price transcribes into its tariff field exactly, and since a unit has one divisor, a price has one +encoding. + +**Units no record can bill are absent.** No record counts an object delivered (settlement §3.4 +acknowledges byte ranges), so there is no `objects` unit; no ledger source counts uplink bytes, so +`bytes` is downlink only. A unit is added with the record and the ledger field that bill it. + +**Two units take records.** A relay's per-hop record states its energy beside the media bytes it +sent and the subscriber time it served (live-metering §3.2, §3.3), so a `bytes` or `subscriber_us` +entry may name records (§4.6). No record a seller signs states `publisher_us` beside its energy: a +room's publisher time is its room-session receipt's, signed by the room's authority or a metering +key (live-metering §4.3, §4.4). Nor does one state a transmission's: its energy is its publisher's +declaration (bearer-receipts §4.1, §4.3), and its octets and pass time are its schedule's (carousel +§5.4). An entry of those units states an estimate or no figure. A unit takes records when a record +its seller signs states its energy beside a quantity of the unit. + +### 4.4 Digest and signature + +The **digest** of a list is SHA-256 over the canonical form of the list without `sig`, written as +64 lowercase hexadecimal digits. The **signature** is Ed25519 by `seller` over `wai:rung-prices` +(ASCII) and 0x01, followed by that same canonical form: route-record §5.3's construction under its +own domain. It is verified strictly, as SPEC §7 *Signatures* verifies every signature: a key that +is not the canonical encoding of a point of large order fails, as does a signature whose scalar is +not below the group order. + +The digest leaves `sig` out, as [holdings](holdings.md) §4.3 digests a record's bytes without its +signature. Ed25519 admits many valid signatures of one body, one for each nonce, and strict +verification removes only S-malleability; a digest over `sig` would read one seller's two signings +of one body as two lists, and two such lists at one `issued` as a contradiction. The digest names +what the seller said; the signature is checked on its own. + +### 4.5 Reading and rules + +A reader is given a text. It refuses it `rung_prices_malformed` when the text holds more than +1,048,576 bytes, is not a document, or breaks one of rules 1 to 4. A list that reads is then +refused for rule 5 or rule 6, with that rule's own reason, and then for its signature +(`rung_prices_signature_invalid`, §4.4). The rules, in order: + +1. Its members are exactly §4.1's, and each entry's exactly §4.2's, each of its form. `version` is + 1. +2. `issued` is below `expires`. +3. Each `footprint` is strictly ascending by bytes, and lists no subdivision code whose country it + also lists: that would be a second encoding of the same footprint. +4. The entries are in strictly ascending order of (`direction`, `bearer`, `unit`, `max_bps`, the + first code of `footprint`): strings by their bytes, integers by value. No two entries of one + (`direction`, `bearer`, `unit`, `max_bps`) have the same `price`, `energy_uj`, `energy_class`, + `energy_ppm` and `energy_evidence`: such entries are one entry over the union of their + footprints. +5. Each entry's `unit` is one §4.3 lists, on its `bearer` and in its `direction`; its `divisor` is + that unit's; its `price` is at most that unit's bound; and it names records only when its unit + is `bytes` or `subscriber_us` (`rung_prices_unit_invalid`). +6. Within one (`direction`, `bearer`, `unit`, `max_bps`), no region code is listed by two entries, + and no entry lists a subdivision code whose country another entry lists + (`rung_prices_ambiguous`). Either would give one region two prices at one tier. + +So a list reads the same whatever the order of its members, since the canonical form is what is +signed; each region, tier and unit has at most one price in a list; and two lists that state the +same prices are the same body, with the same digest. + +### 4.6 Energy evidence + +An entry's `energy_evidence` names the per-hop records whose rate its figure is. The list signs +their digests, so the records a seller names are fixed with its prices, and a comparer that is +given them checks the figure against them (§6.4). + +A text a comparer is given (§6) **names** a digest when it holds 64 to 1,048,576 bytes: SHA-256 +over all its bytes but the last 64, as live-metering §5.1 finds a per-hop record and fleet §4.4 a +room descriptor. A named record is **given** when a text naming its digest reads and verifies as a +per-hop record of the room its own `room` names (live-metering §3.5, §3.6), live-metering §3.7's +bound not applied, as fleet §4.3 does not apply it. Its room is given when a text naming the +record's `room` reads and verifies as fleet §4.4 reads a room descriptor. Texts naming one digest +differ at most in their last 64 bytes, the signature, so every text that reads and verifies gives +the same record. A text that does not gives nothing: a damaged copy refutes nothing, and only what +a seller named and its hop signed can refute the seller's figure. + +Each given record is held to these, in order, and the first that fails **refutes** the entry's +figure, with its reason: + +1. Its `role` is 1 (`rung_prices_evidence_role`): a downlink price is a relay's, and a compositor + or an ingest gateway serves no subscriber. +2. Its `hop` is the list's `seller` (`rung_prices_evidence_signer`). A figure is the rate of its + seller's own readings, never of another key's that it chose to name. +3. Its figure is not the unmetered marker, and its class's tag is the one energy-measurement §2.7 + gives the entry's `energy_class`: 5 for `CalibratedInstrument`, 4 for `OnChipCounter`, 2 for + `ModelBased` (`rung_prices_evidence_class`). Figures of two classes are never summed + (live-metering §4.5). + +When every named record and the room of each is given, the records together are held to these, in +order: + +4. For `CalibratedInstrument` and `OnChipCounter`, `energy_ppm` is the largest `relative_ppm` among + them (`rung_prices_evidence_class`). When each record's error is within its declared relative + uncertainty, their sum's is within the largest (receipt-ledger §6.6), and so is any rate of it. +5. With *J* the sum of their `joules` and *D* the sum of their quantities in the entry's unit, *D* + is at least 1 and `energy_uj` is ⌈*J* × `divisor` / *D*⌉ (`rung_prices_evidence_figure`): the + records' rate per `divisor` units, rounded up so that it never states less than they do. For at + most 64 records *J* × `divisor` is below 2¹⁰⁰. A record's quantity is: + - in `bytes`, the `bytes` of its track entries of kind 1 (a media track) and `dir` 2 (out), as + energy-steering §5.3 counts delivery on its basis 1; + - in `subscriber_us`, its `subscriber_us` of layer classes 0 to 7, as energy-steering §5.3 + counts delivery on its basis 2 at floor tier 0. + + Either charges every joule of the hop's span to its media delivery, so the figure is never less + than any division of those joules among what the hop carried would give. + +Records that pass all five **bear out** the figure. What they bind is a rate the seller's own relay +spent and signed, not the delivery a comparer buys: which region, rung or receivers a record's +session served, it does not say (§10). Whether a comparer relies on them, at its instant and for +its seller's key, is §6.4's. + +## 5. What a verifier derives + +### 5.1 At an instant + +A list that reads and verifies is refused `rung_prices_not_yet` when the verifier's instant +`at_us` is below its `issued`. A verifier does not stretch the window. One whose clock it does not +trust **SHOULD** say which instant it used (holdings §5.1); a plan always states it (§6.6). + +### 5.2 One seller's lists + +Of a seller's lists that are not refused, the one with the greatest `issued` is the seller's +**latest**, and every other is `superseded`. + +- Two latest lists with different digests are each set aside, `rung_prices_contradicted`. +- Two latest lists with the same digest are one list, whatever their signatures (§4.4). +- A latest list whose `expires` is at or before `at_us` is refused `rung_prices_expired`. The + seller then has **no standing list**, and an earlier list stays superseded. +- Otherwise the latest list **stands**. + +This differs from holdings §5.3 on purpose. A seller that repriced has withdrawn its earlier +prices. Reviving them when the later list lapses would read a withdrawn, possibly lower, price as +current: the buyer's best case, taken from a statement its seller replaced. + +A list's verdict is written as holdings writes a record's: `stands`, `superseded`, +`set-aside reason=rung_prices_contradicted`, or `reject reason=` and the reason. + +## 6. Comparing delivery options + +A comparer computes the following from the lists it is given, the texts it is given as evidence +(§4.6), an instant and a request, and a verifier computes the same. Nothing depends on the order +the lists or the texts are given in, beyond the positions of the lists' verdicts in the plan, on a +text being given twice, on the order of a document's members, or on anything else. + +### 6.1 The request + +A request is a document of at most 65,536 bytes, of exactly these members, each of its form. +Otherwise it is refused `rung_request_invalid`, and nothing is derived. + +| member | form | +|---|---| +| `kind` | `"wai-rung-request"` | +| `direction` | `"downlink"` or `"uplink"` | +| `to` | a region code (§2): the region delivered to | +| `rate_bps` | `null`, or an integer from 1 to 2⁵³ − 1: the rung's rate (§2), held against receiver-basis entries; `null` when the comparer does not know it | +| `pass_rate_bps` | `null`, or an integer from 1 to 2⁵³ − 1: the pass rate (§7.2) of the passes the comparer plans, held against transmission-basis entries; `null` when it does not know it | +| `bearers` | `null`, or 1 to 3 bearer classes in strictly ascending order of their bytes: the classes it will consider | +| `currency` | three capitals `A`–`Z` | +| `quantities` | as route-record §3.1: 1 to 16 objects of exactly `unit` and `quantity` (an integer at least 1), in strictly ascending order of `unit`. A receiver unit's quantity is per receiver, and a transmission unit's per transmission. | +| `max_price` | as route-record §3.1's `max_price`: 0 to 16 objects of exactly `unit`, `price` and `divisor` (an integer at least 1), in strictly ascending order of `unit` | +| `audience` | `null`, or an integer at least 1: the receivers the comparer states a shared transmission reaches | +| `sort` | `"price"` or `"energy"`: the first ranking key | +| `confirmed` | 0 to 256 objects of exactly `key` (a key: 64 lowercase hexadecimal digits) and `class` (`CalibratedInstrument`, `OnChipCounter` or `ModelBased`), in strictly ascending order of `key` and, for one key, of `class`, by their bytes: the keys the comparer has confirmed for a class | +| `evidence_age_us` | an integer from 1 to 2⁵³ − 1: the most a record's instant (§2) may be before the instant used | + +`to` is required: a delivery that names no region cannot be held to any footprint. `bearers` +`null` is the comparer's statement that it considers every class; it limits nothing, as +route-record §3.1's `regions` `null` limits nothing. + +A key is **confirmed** for a class when the comparer holds, under an anchor it relies on, a head of +a key log ([jwp-receipts](jwp-receipts.md) §7.4) with an entry for the key whose `may_sign` holds +`live/relay` and `energy/` followed by the class, and that is not revoked, as live-metering §5.2 +places a hop's key; for a hardware class, only under a pinned anchor (jwp-receipts §7.5, +*Pinned-only authorities*). `confirmed` and `evidence_age_us` are the comparer's own statements, as +its `audience` is (§6.3), and the plan restates them in the request's digest. A comparison reads no +key log: it takes the keys a relying party has confirmed, as bearer-receipts §6.1 takes them. + +### 6.2 Candidates and removals + +The **candidates** are the entries of the lists that stand (§5) whose `direction` is the +request's, in ascending order of their sellers' keys, by bytes, and within each list in entry +order. A candidate's `entry` is its position in its list's `entries`, from 0. + +A candidate's **rate** is the request's `rate_bps` when its basis is receiver, and its +`pass_rate_bps` when its basis is transmission (§4.3). A `null` rate stands for 2⁵³ − 1, which only +the unbounded ceiling covers. + +Each candidate is held to every limit below, in this order, and its **removals** list each limit +that holds, in this order, with the value the limit read, as route-record §4.3 lists removals: + +| limit | removes a candidate when | value | +|---|---|---| +| `currency` | its list's `currency` is not the request's | its list's `currency` | +| `bearer` | `bearers` is not `null`, and does not list its `bearer` | its `bearer` | +| `unit` | the request states no quantity in its `unit`. Units are never converted (route-record §4.2): a `bytes` quantity never prices `bytes_sent`. | its `unit` | +| `footprint` | its `footprint` does not hold `to` (§2) | its `footprint` | +| `rate` | its `max_bps` is below its rate | its `max_bps` | +| `tier` | another entry of its list, of the same `direction`, `bearer` and `unit`, holds `to` and has a `max_bps` at least the candidate's rate and below the candidate's own: a rung is priced at the least ceiling that covers it | the least such `max_bps` | +| `unit_price` | `max_price` has an entry for its `unit`, and its `price` × that entry's `divisor` exceeds that entry's `price` × its own `divisor` (route-record §4.3) | its `price` | + +A candidate with no removal is a **survivor**. Rules 4 and 6 and the `tier` limit leave each seller +at most one survivor of each bearer class and unit. The least ceiling that covers a rate, for each +(`direction`, `bearer`, `unit`) of a list, is found in one pass over its entries. + +### 6.3 Cost and energy per receiver + +For a candidate whose unit the request states a quantity *q* for: + +- its **list cost** is *T* = ⌊*q* × `price` / `divisor`⌋; +- its **list energy** is *E* = ⌊*q* × `energy_uj` / `divisor`⌋, when `energy_uj` is stated + (route-record §4.2). + +Each is `null` past 2⁵³ − 1, and *E* is `null` when `energy_uj` is. *T* is exactly what a ledger +bills for *q* at that price, rounded once (receipt-ledger §3 rule 2). A candidate's `cost` and +`energy` are then: + +- **receiver basis** (`bidirectional`): *T* and *E*; +- **transmission basis** (`multicast`, `unidirectional`): ⌈*T* / *n*⌉ and ⌈*E* / *n*⌉, where *n* + is the request's `audience`, or **1** when it is `null`. + +A candidate the request states no quantity for has a `null` cost and energy, and one whose evidence +is refuted (§6.4) a `null` energy. + +**Why 1.** This is bearer-receipts §7's form, ⌈ · / max(1, *n*)⌉, for its reason: unknown is not +zero, and no figure divided by an assumed audience is anyone's share. With no stated audience, one +receiver bears the whole transmission: the worst case for the only option whose per-receiver +figure depends on *n*, since a receiver-basis cost does not change with *n*. Rounding up keeps each +receiver's share of *T* an upper bound in integers. + +**A stated audience is the comparer's own statement**, as a relying party's loss bound is its own +(carousel §12), and the plan restates it. + +- It **SHOULD** be at most the number of keys counted for an earlier transmission of the same + service under bearer-receipts §6.2 step 6, counting only keys the comparer confirmed under the + `reconciliation` authority from an origin that gives that authority to one key per receiver + (bearer-receipts §7 *Keys are not receivers*, jwp-receipts §7.4), or the `hits` of a tally of an + earlier transmission (cache-authority §8.4), which counts only a stated population's keys. + Unconfirmed keys can over-count receivers, and dividing by an over-count reads a shared option + as cheaper than it is. +- It **MUST NOT** be a count of aggregated reports: such reports are not authenticated, and their + floor "is a floor of reports, not of people" ([telemetry-aggregation](telemetry-aggregation.md) + §13). + +`energy` here is an **allocation over the stated audience**. It **MUST NOT** be reported as +bearer-receipts §7's bound, which counts reconciliation keys, nor as any receiver's reading. + +A candidate's `energy` is never a reading of the delivery it prices. A checked figure (§6.4) is the +rate its seller's own records state, applied to the request's quantity: its class and its energy +rank say what backs that rate, not how the delivery's energy will be read. + +### 6.4 Ranking + +Survivors are ordered by this list of keys: the request's `sort`; the other of `price` and +`energy`; `seller`; and `entry`. Two survivors compare by the first key on which they differ: + +- **`price`**: the smaller `cost` first. A `null` comes after every stated cost, and two `null`s + do not differ (route-record §4.4). +- **`energy`**: evidence first, as energy-steering §6.2 ranks pathways, where the evidence is what + the comparer checked and never the class a list names. A survivor's **energy rank** is 4 whenever + its `energy` is `null`, a figure past 2⁵³ − 1 and a refuted one among them; otherwise 0 for a + `CalibratedInstrument` figure, 1 for `OnChipCounter` and 2 for `ModelBased` when its evidence is + `checked`, and 3 for every other figure. The smaller rank first. Within rank 0 or 1, the smaller + `energy` × (10⁶ + `energy_ppm`) first; within rank 2 or 3, the smaller `energy` first; two + survivors of rank 4 do not differ. +- **`seller`**: the smaller key, by its bytes, first. +- **`entry`**: the smaller position first. + +Survivors differ in seller or entry, so the order is total. The **order** is the survivors in it, +each as its `seller` and `entry`, and each survivor's **rank** is its position there, from 1. + +A candidate's **evidence** is `null` when its entry names no records. Otherwise it is the first of +these that holds: + +1. `refuted reason=` and the reason of the first of §4.6 rules 1 to 3 that a given record breaks, + its records taken in the order of `energy_evidence`; +2. `absent`: a record it names, or the room of one, is not given (§4.6); +3. `refuted reason=` and the reason of §4.6 rule 4 or rule 5, the first that fails; +4. `outside-window`: a record's instant (§2) is below `at_us` − `evidence_age_us`, or at or after + `at_us`; +5. `unconfirmed`: `confirmed` does not hold its seller with its `energy_class`; +6. `checked`. + +A refuted figure is contradicted by records its own seller named and its own hop signed, as two +latest lists of one seller that differ contradict each other (§5.2): it is set aside, and its +`energy` is `null` (§6.3). An `absent`, `outside-window` or `unconfirmed` figure is its seller's +word, which the comparer cannot check: it ranks as an estimate, whatever class it names, at most +[oer-receipts](oer-receipts.md) §2's `projected` (§10). So a class decides nothing unless the +seller's own records, current and given, bear its figure out under a key the comparer confirmed for +it. + +**Uncertainty.** Within a hardware rank each figure is taken one declared standard uncertainty +above itself (energy-measurement §2.3), so a precise figure ranks before a slightly smaller one its +seller read less precisely. For 500,000,000 `bytes`, a `CalibratedInstrument` figure of 900,000,000 +per 10⁹ declared to 20,000 ppm is an `energy` of 450,000,000 µJ, compared as 450,000,000 × +1,020,000 = 459,000,000,000,000; one of 910,000,000 declared to 5,000 ppm is 455,000,000 µJ, +compared as 455,000,000 × 1,005,000 = 457,275,000,000,000, and ranks first. The product is a +comparison, not a limit: a standard uncertainty bounds nothing (energy-measurement §2.1), and a +plan states no product. It is below 2⁸⁶. `ModelBased` and `Estimator` figures carry no declared +uncertainty (energy-measurement §2.1), and rank by their figure. + +Figures of two ranks are never compared, so an unknown, unchecked or weaker figure never outranks a +checked one, however much smaller; every figure of rank 3 is read as an estimate and compared as +one. Route-record §4.4 compares figures whatever their class; this text follows energy-steering +§6.2, the stricter rule, with which bearer-receipts §7 and receipt-ledger §6.6 agree. + +### 6.5 The decision and the break-even audience + +`decided_by` is `none` when there is no survivor, `only_survivor` when there is one, and otherwise +the first key on which the first two survivors of the order differ: `price`, `energy`, `seller` or +`entry`. `runner_up` is the second survivor, as its `seller` and `entry`, or `null` when there are +fewer than two. + +Let *c*\* be the least stated `cost` among the receiver-basis survivors. Each transmission-basis +survivor's **break-even audience**, `break_even`, is the least audience at which its cost per +receiver is no more than *c*\*: + +- `null` when *T* is `null`, or when there is no such *c*\*; +- when *c*\* is 0: 1 when *T* is 0, and `null` otherwise; +- otherwise max(1, ⌈*T* / *c*\*⌉). + +This holds because ⌈*T* / *n*⌉ ≤ *c* exactly when *n* ≥ *T* / *c*, for an integer *c*. The figure +needs no audience and assumes none: it tells a comparer how many receivers make sharing no dearer, +and the comparer judges whether it has them. + +### 6.6 Outcome + +The outcome is either a refusal, `rung_request_invalid`, or a **plan** of these members: + +- `request`: the request's digest; +- `at_us`: the instant used; +- `lists`: for each list given, in the order given, its `verdict` (§5.2) and its `digest`, or + `null` for a list refused at reading (§4.5); +- `evidence`: the digests of the records and rooms the texts given as evidence give (§4.6), in + ascending order of their bytes, each once; +- `audience`: the *n* used; +- `candidates`: each candidate in §6.2's order, as `seller`, `entry`, `bearer`, `unit`, `max_bps`, + `basis` (`receiver` or `transmission`), `removed` (each removal as `limit` and `value`), `cost`, + `energy`, `energy_class`, `energy_ppm`, `evidence`, `energy_rank`, `transmission_cost`, + `break_even` and `rank`. `energy_ppm` is its entry's; `evidence` and `energy_rank` are §6.4's, + for every candidate; `transmission_cost` is *T* and `break_even` §6.5's figure for a + transmission-basis survivor, and both are `null` for every other candidate; `rank` is `null` for + a removed one; +- `order`: the survivors, in order; +- `decision`: `decided_by` and `runner_up`. + +**A neighbour order.** An asker of holdings §5.4 gives its neighbours' records "in the order it +prefers them", an order it judges itself, and a timeliness plan takes its holder sources in the +asker's order and chooses the first that is on time (timeliness §7.1, §7.3). An asker that orders +its neighbours by price takes the order from a plan over their lists. A neighbour's list is one +whose `seller` is the `holder` of its holdings record (holdings §4.1), the two keys compared byte +for byte. The asker's **neighbour order** is then: + +1. the sellers of the plan's `order`, each at its first position there; +2. then every other neighbour, in ascending order of its key, by bytes: those with no standing + list (§5.2), and those whose list has no survivor. + +A neighbour with no price for the delivery comes after every priced one, never before, as a `null` +cost ranks last (§6.4). Holdings §5.4 then keeps, in this order, the neighbours whose record stands and +holds the object. A holder that signs its records with a fresh key (holdings §9) has no list under +that key, and is ordered among the unpriced: unlinking its records is its choice, and this is its +cost. + +## 7. What bills each unit + +### 7.1 The table + +A list is a quote. A buyer is billed only at the tariff it signed (receipt-ledger §4.2). Each list +unit is billed by the tariff field that prices the record stating its quantity, and no line is +added where a field already prices that record: a second price would bill one quantity twice. + +| list unit | billed by | from | rung in the line | +|---|---|---|---| +| `subscriber_us` | `room` prices 1 to 9, u32 per second (receipt-ledger §4.1; §6.3 units 2 to 10) | a room-session receipt's `subscriber_us` per layer class | the layer class is the rung (live-metering §3.3): a buyer prices layer class *i* from the tier that covers that layer's rate (live-rooms §8.1, energy-steering §3.1) | +| `publisher_us` | `room` price 0, u32 per second (§6.3 unit 1) | its `publisher_us` | none | +| `bytes` (`downlink`) | `delivery` prices, u64 per 10⁹, per object class (receipt-ledger §4.1; settlement §7.1), or the `room` price of `bytes_out`, u32 per 10⁹ (receipt-ledger §4.7 item 1; §6.3 unit 14) | acknowledged bytes (settlement §3.2), or a room-session receipt's `bytes_out` | none: no acknowledgement and no room receipt names a rung, so one price bills every rung. A `bytes` price above 2³² − 1 transcribes into `delivery` only. | +| `bytes_sent`, `pass_us` | no field of receipt-ledger's tariff | — | — | + +A buyer that signs a tariff from a list copies the entry it accepts for each tier and unit into the +corresponding field, and every list price fits its field exactly (§4.3). The copy is the buyer's +own transcription, and no verifier checks it: the tariff holds its own prices (receipt-ledger §3). + +**Transmission prices are quotes no tariff bills yet.** Billing one needs a tariff field per +bearer class, unit and ceiling, and a ledger source that is a group with its standing carousel +schedules and declarations (carousel §6.2, bearer-receipts §4), which receipt-ledger does not +define. Until it does, a comparer compares transmission prices (§6), and a ledger bills none. + +### 7.2 The pass rate + +For an entry of a carousel schedule, *P* = `bytes_sent` / `count` is the octets one pass sends: Σ +*m* · T over its source blocks for `raptorq`, and L for `no-code` (carousel §5.4). The division is +exact. The entry's **pass rate** is ⌈8000 × *P* / `duration_ms`⌉ bits per second, computed in 128 +bits. + +It is a pure function of the signed schedule. It is the carriage rate the passes take on the +bearer, repair symbols included, which is what a seller of broadcast capacity prices by tier. A +pass rate above every ceiling has no price. + +### 7.3 Never delivery + +A transmission price prices what a publisher's declaration attests, that it transmitted +(bearer-receipts §4), in the octets and pass time its own schedule planned (carousel §5.4). It +**MUST NOT** be presented as delivery to anyone (bearer-receipts §6.3; settlement §4.2). 3GPP TS +32.279 §5.1.2 charges a 5G multicast-broadcast session the same way: it requires the session's +duration, allows its transmitted volume, keeps quota per rating group per session, and names no +quantity per receiving device. + +## 8. Reasons + +The codes this extension adds, each with where it is raised: + +| reason | raised at | +|---|---| +| `rung_prices_malformed` | §4.5, rules 1 to 4 | +| `rung_prices_unit_invalid` | §4.5 rule 5 | +| `rung_prices_ambiguous` | §4.5 rule 6 | +| `rung_prices_signature_invalid` | §4.4, §4.5 | +| `rung_prices_evidence_role` | §4.6 rule 1; §6.4 | +| `rung_prices_evidence_signer` | §4.6 rule 2; §6.4 | +| `rung_prices_evidence_class` | §4.6 rules 3 and 4; §6.4 | +| `rung_prices_evidence_figure` | §4.6 rule 5; §6.4 | +| `rung_prices_not_yet` | §5.1 | +| `rung_prices_expired` | §5.2 | +| `rung_prices_contradicted` | §5.2 | +| `rung_request_invalid` | §6.1 | + +## 9. Conformance + +[`live-conformance/prices/`](../live-conformance/prices/) holds the corpus, written from fixed +seeds by `wai_rung_price_vectors gen` as `vectors.json`. Its regions are ISO 3166-1 user-assigned +codes and subdivisions of them, and name no place. It has: + +- **Lists**: lists that read, among them every unit of §4.3 and both shared bearer classes, a + country beside another country's subdivision, the bounds of a ceiling, a footprint, a room price + and a window, an entry of each class that names records, an uncertainty of 2³² − 1, 64 records + named, two entries that differ only in their records and two that differ only in their + uncertainty, a list with its members in another order, and one body under a second valid + signature; and a negative control for each rule of §4.5, for each unit on a bearer or in a + direction where §4.3 does not admit it, for a class above `Estimator` that names no records, an + estimate that names some, records with no figure, an uncertainty on a class that declares none or + missing from one that does, an uncertainty of 0 or 2³², records named as an empty list, out of + order, twice, past 64, in capitals or in a unit that takes none, two entries that are one but for + their footprints, records included, and signatures that do not verify, a key of small order and a + scalar not below the group order among them. +- **Verdicts**: a list at each edge of its window; a later list superseding an earlier one, a later + one not yet issued, and a lapsed latest list reviving nothing; one list given twice, one body + signed twice, and two lists of one instant that differ. +- **Evidence**: per-hop records of two rooms, one a month older than the other, and their + descriptors, and comparisons that give each verdict of §6.4 and each reason of §4.6: a figure + checked at each class; records summed under the largest uncertainty; a figure rounded up, and one + stated a microjoule below it or above it; subscriber time without layer class 8; media bytes + without an events track's or the bytes a relay received; a record whose only copy's signature + fails, and one that also has a copy that verifies; a room not given, and one whose signature + fails; a named digest whose text is not a per-hop record; the window at both edges, and one + record of several outside it, named first or last; each verdict of §6.4 where the next that can + hold with it holds too; a record that breaks rules 1, 2 and 3, one that breaks rules 2 and 3, two + records of which the first breaks rule 3 and the second rule 1, and records that fail rules 4 + and 5; and a removed candidate's evidence and energy rank. Against an honest model-based figure, + a seller that states a calibrated figure with no records named, which does not read; with + records it does not give; with its own records under a key nobody confirmed for that class, or + confirmed only for another class; with another seller's records; over its counter's records; + with a smaller figure or uncertainty than its records state, or a larger uncertainty; with a + smaller uncertainty than the record it names first; over records of no delivery, of a compositor + or of an ingest gateway; or over a record not given, named first, and one of another class; and + a model-based figure over unmetered records. Two calibrated figures ordered by their + uncertainty, and a precise figure a hundred times larger after an imprecise one; two counter + figures ordered by theirs; and a calibrated figure before a counter's. +- **Comparisons**: the cost per receiver of a shared transmission with no audience, below, at and + above its break-even; each tier rule, for the rung's rate and the pass rate apart; a region held + by its own code or its country's and never upward; every limit, several of them on one candidate; + the energy order by checked evidence first, an unknown figure and a figure past the bound last; + every decision; holders' prices beside one holder whose list lapsed and one that prices another + region, the plan §6.6's neighbour order is taken from; a request that confirms 256 keys; and a + refusal for each rule of §6.1. + +A conforming verifier gives every case the outcome the corpus states, member for member. +`wai_rung_price_vectors verify` and the test `tests/rung_price.rs` check that the file regenerates +byte for byte, that `wai-rs` gives every case its outcome, that every reason of §8 appears and that +§8 lists exactly the reference's codes, and that every limit of §6.2, every decision of §6.5, every +evidence of §6.4 and every energy rank occurs. `live-conformance/rung_price_verify.py` is the +second implementation, written from this text: it shares no code with `wai-rs`; it reads documents +with route-record's second implementation, per-hop records with live-metering's +(`live_metering_verify.py`), room descriptors with fleet's (`fleet_verify.py`) and signatures with +the claim corpus's strict Ed25519 check, writes §2's region code, §4, §5 and §6 itself, mutates +copies of the corpus and requires every copy to fail, and drops each of its own checks in turn and +requires the corpus to catch the weakened verifier. The bounds no vector carries, a text of +1,048,577 bytes, a list of 1,025 entries, a request of 65,537 bytes and an evidence text of +1,048,577 bytes, both implementations check themselves. + +## 10. Security and privacy considerations + +- **A list is its seller's word.** It binds the seller to its prices for its window; nothing in it + is a measurement. Its energy figure is what the seller expects to spend, and no reading of any + delivery: at most [oer-receipts](oer-receipts.md) §2's `projected` grade. A figure whose evidence + is `checked` (§6.4) is, besides, the rate its seller's own signed readings state, by stated + arithmetic (§4.6), and ranks at their class; any other figure ranks as an estimate. +- **A label is not evidence.** A seller can sign any class, and can sign records of any class with + its own key: a signature settles who said a number, not how it was read (energy-measurement + §2.2). So a class counts only under a key the comparer confirmed for it from an origin it relies + on, pinned for a hardware class (§6.1), and only for a figure the seller's own current records + bear out (§4.6). A seller that names records it does not give, or that nobody confirmed, ranks as + an estimate; one whose own records contradict it ranks with the unknown. Among estimates the + smallest figure ranks first, and no rule here tells an honest one from a low one: that is which + sellers a comparer accepts. +- **Chosen records.** A seller names the records it chooses. A checked figure is the rate of those + records' spans, not of all its delivery: a seller that names its most efficient spans states + their rate, and `evidence_age_us` bounds only how old their rooms say they are: a room + descriptor's `t0` is its authority's word, which nothing here confirms, and a seller may sign its + own room. +- **Which sellers.** `compare` ranks every list it is given, and a key nobody vouches for, signing + a price of 0, ranks first. A comparer gives only lists of sellers it accepts, as an asker orders + only its own neighbours (holdings §5.4). A comparer **MAY** accept a seller whose key it places + with a serving role ([cache-authority](cache-authority.md) §4.4). +- **Ties.** Exact ties of price and energy are broken by key bytes, which a seller can choose. + That buys only a tie. +- **Unknown is restrictive** (route-record §11): an unstated footprint, rate, pass rate or quantity + removes the entry or holds it to the unbounded tier; a `null` cost or energy ranks last; an + unknown audience is one receiver; a lapsed list revives no earlier one; and a figure whose + records are not given, not current or not confirmed ranks as an estimate, and one its own records + refute as unknown. +- **Repricing.** The latest list stands alone, and two of one instant that differ offer nothing. +- **A stated audience is the comparer's.** A plan with an audience above 1 rests on that + statement, and restates it. The break-even audience lets a comparer decide without stating one. +- **What a list reveals.** It reveals the seller's prices, tiers and footprint to everyone it + reaches. A peer that signs its list with the key of its holdings record links its prices to its + holdings (holdings §9); a peer that wants its records unlinked signs with a separate key, and the + two are then not joined. A list names its records only by digest; a seller that gives a comparer + its per-hop records reveals their rooms, spans, sessions, subscriber time and bytes to that + comparer. +- **Bounded work.** A list is at most 1,048,576 bytes and a request at most 65,536, each read once. + A comparison is one pass over each standing list's entries, and each footprint test is a search + in sorted codes. Each text given as evidence is hashed once and read once as a per-hop record and + once as a room descriptor, and an entry names at most 64 records. diff --git a/wai/extensions/settlement.md b/wai/extensions/settlement.md index 064bc358b..f74244db0 100644 --- a/wai/extensions/settlement.md +++ b/wai/extensions/settlement.md @@ -737,6 +737,8 @@ itself with each of its checks dropped. hop's key that the hop's origin lists with the authority of its role (jwp-receipts §7.5, `live/relay`, `live/compositor`, `live/ingest`), and a sink whose entry names a grant, whose `principal` the acknowledgement must be (§6.3 step 3), which only the room authority can issue. + A node that serves from what it holds is placed by `cache/serve` from its operator's origin + ([cache-authority](cache-authority.md) §4.4). A statement names every downstream key in its lines, so a payer sees whom it is paying for. - **Replay.** Windows are signed and chained (§3.7); a record counts only in the period that holds its window, and a proof pays for one record. A statement for one period cannot reuse a diff --git a/wai/extensions/takedown.md b/wai/extensions/takedown.md index 2768989d0..7995d667e 100644 --- a/wai/extensions/takedown.md +++ b/wai/extensions/takedown.md @@ -393,7 +393,7 @@ pairs of a holder and a subject it must purge are the **required** pairs: | `deriver` | the signer of each closure record | the record's inputs whose content hash is in the closure, and its output | | `claimant` | the signer of each closure claim | the claim's inputs whose content hash is in the closure, and its subject | | `publisher` | the signer of each group receipt the closure's groups are expanded from (§6.3) | that group | -| `served` | the `upstream` of each acknowledgement or declaration (settlement §3, §4) whose item lists name an object of the closure | each such object | +| `served` | the `upstream` of each acknowledgement or declaration (settlement §3, §4) whose item lists name an object of the closure, and the signer of each `cache-transmission` claim ([cache-authority](cache-authority.md) §5) whose `sent` holds an object of the closure, read by position through the group's object receipts as §6.3 reads them | each such object | | `received` | the `downstream` of each acknowledgement whose `role` is a hop (settlement §3.1) and whose item lists name an object of the closure | each such object | A party that served a covered object (a cache, a relay or an edge that delivered it to a next @@ -462,6 +462,8 @@ A takedown verifier is given a **case**: - `claims`: origin claim texts (synthesis §3.1), in a list; - `acknowledgements`: acknowledgements and declarations (settlement §3, §4), each its record's bytes and the item list of each of its entries, in order; +- `cache_transmissions`: `cache-transmission` claim texts ([cache-authority](cache-authority.md) + §5), in a list; - `receipts`: group and object receipts (jwp-receipts §2.4.1, §2.4.2), as JSON values; - `matches`: match texts, in a list; - `purges`: purge texts, in a list; @@ -478,11 +480,14 @@ place, a list of names and positions: `["notice", i]`. 4. **The takedown** reads, its signature verifies, and §5.3's rules hold, in their order: at `["takedown"]`. -5. **The records**, then **the claims**, then **the acknowledgements**, in their lists' - order (§6.1, `evidence_invalid`): at `["record", i]`, `["claim", i]`, `["acknowledgement", i]`. +5. **The records**, then **the claims**, then **the acknowledgements**, then **the + cache-transmission claims**, in their lists' order (§6.1, `evidence_invalid`): at + `["record", i]`, `["claim", i]`, `["acknowledgement", i]`, `["cache_transmission", i]`. An acknowledgement reads under settlement §3.6, its signature verifies, it is given one item list for each of its entries, and each list reads and recomputes against its entry (settlement - §3.6); otherwise `evidence_invalid`. + §3.6); otherwise `evidence_invalid`. A cache-transmission claim is of that class and passes + jwp-receipts §3.1 steps 1 to 4; otherwise `evidence_invalid`. A claim whose group is not among + the receipts names no object here. 6. **The matches**, each read and its signature verified: at `["match", i]`. 7. **The purges**, each read and its signature verified, and §5.5's checks: at `["purge", i]`. 8. **The closure** (§6.1, §6.3): a group that is not expanded, at `["group", g]` with *g* its @@ -659,7 +664,9 @@ It has: - **Removals**: a request under a 48-hour deadline met, with a perceptual match purged beside the closure; an order under a 3-hour deadline missed by one holder's late purge, and the same order still pending before its deadline; a removal past its deadline with a holder's purge - missing, and one with the purge of the cache the acknowledgements name missing; a removal of + missing, one with the purge of the cache the acknowledgements name missing, and a node that + declared sending the source over an instance of its own (a cache-transmission claim) with its + purge of the source made and missing; a removal of the service's own initiative inside and after a 24-hour reply window, and one whose window a reply ended early; a removal under the unfixed clock; a group as the target, expanded from its receipts; and a take as the target. @@ -680,7 +687,9 @@ of §11 appears, and that §11 lists exactly the reference's codes. shares no code with `wai-rs`; it reads derivation records and delivery receipts with the deriving-edge corpus's second implementation (`edge-conformance/edge_verify.py`), origin claims with the synthesis corpus's (`live-conformance/synthesis_verify.py`), acknowledgements with the -settlement corpus's (`live-conformance/settlement_verify.py`), and every signature with +settlement corpus's (`live-conformance/settlement_verify.py`), cache-transmission claims through +jwp-receipts §3.1 steps 1 to 4 with the claim corpus's (`claim-conformance/claim_verify.py`), and +every signature with WAI's strict rule (`claim-conformance/_ed25519.py`); it requires every mutated copy of the corpus to fail, and, with each of its own checks dropped in turn, requires the corpus to catch the weakened verifier. The relay's behaviour is tested by `tests/dvr.rs` in `joule-moq-relay`. diff --git a/wai/extensions/telemetry-aggregation.md b/wai/extensions/telemetry-aggregation.md index 27363e1ed..d93a86003 100644 --- a/wai/extensions/telemetry-aggregation.md +++ b/wai/extensions/telemetry-aggregation.md @@ -40,8 +40,9 @@ suppression still applies, and a room's cell (§9). Out of scope: running aggregators in production; how a deployment chooses its aggregators and agrees a task with them, which DAP leaves out of band (`draft-ietf-ppm-dap-20` §4.2); -client authentication and anonymizing proxies (DAP §8.3, §8.4); differential privacy (DAP -§8.5); any VDAF but the four Prio3 variants of §3. +client authentication and anonymizing proxies (DAP §8.3, §8.4), except that a task of measure 5 +authenticates its reports by the token of [impression-aggregates](impression-aggregates.md) §7.2; +differential privacy (DAP §8.5); any VDAF but the four Prio3 variants of §3. Relationship to the core spec: `wai.telemetry.aggregate` is a **record** ([SPEC](../SPEC.md) §5): a signed record a WAI tool emits and verifies. It names no payload format and is not @@ -72,6 +73,7 @@ one Prio3 variant of `draft-irtf-cfrg-vdaf-22` §7.4, with two aggregators and o | 2 | `stalls` | Prio3Sum | `max_measurement` 65535 | `stalls`, at most 65535 | | 3 | `durations` | Prio3SumVec | `length` 3, `max_measurement` 4294967295, `chunk_length` 10 | `[stall_ms, engaged_ms, vst_ms]`, `vst_ms` 0 when `null`, each at most 4294967295 | | 4 | `start_time` | Prio3Histogram | `length` 8, `chunk_length` 3 | the bucket of `vst_ms`: 0 to 5 for a time below 250, 500, 1000, 2000, 4000 and 8000 ms, the first that holds; 6 for a later start; 7 for `null` | +| 5 | `impressions` | Prio3Histogram | `length` *L* and `chunk_length` ⌈√*L*⌉ of the catalogue whose digest is `scope` ([impression-aggregates](impression-aggregates.md) §4, §5) | not a session's: one presentation's cell ([impression-aggregates](impression-aggregates.md) §6.2) | §3.2 A figure past its measure's largest value is reported as that value, and a sum counts it at that value. Each largest value is past what one session's figures reach in practice: a @@ -98,7 +100,7 @@ A measure runs under one DAP task (`draft-ietf-ppm-dap-20` §4.2). Its configura |---|---|---| | `label` | 8 | `wai-qoe1` (ASCII) | | `measure` | 1 | the measure's code (§3.1) | -| `scope` | 32 | 32 zero bytes for a task of the service's own; the room id for a room's (§9.2) | +| `scope` | 32 | 32 zero bytes for a task of the service's own; the room id for a room's (§9.2); the digest of its catalogue for a task of measure 5 ([impression-aggregates](impression-aggregates.md) §5.1) | | `salt` | 16 | chosen by the task's author, so that two tasks of one configuration have two ids | | `leader` | 32 | the Ed25519 key the leader signs its statements with | | `helper` | 32 | the helper's | @@ -126,7 +128,10 @@ A task configuration is refused, in this order: type; 2. `measure_unknown` when `measure` is no code of §3.1; 3. `measure_mismatch` when `vdaf_type` and `vdaf_configuration` are not the measure's: its - VDAF identifier (VDAF Table 19) and its DAP Appendix B encoding; + VDAF identifier (VDAF Table 19) and its DAP Appendix B encoding. For measure 5, this rule is + [impression-aggregates](impression-aggregates.md) §5.3 steps 2 to 4 against the catalogue + whose digest is `scope`; a verifier given no such catalogue refuses the task + `catalogue_mismatch`; 4. `floor_too_low` when `min_batch_size` is below 50, the floor of delivery-telemetry §8 (its §8.4); 5. `aggregator_alone` when `leader` and `helper` are one key. @@ -150,7 +155,9 @@ report id, the time of the session's `end` or `abandon` in units of the task's `time_precision`, and the measurement of §3.1 sharded and encrypted as DAP §4.4.2.1 does, with the application context `dap-20` followed by the task id. It uploads the reports to the leader (DAP §4.4.2). A session gives at most one report to each task. Its reports carry no -`sid`, no principal and no extension. +`sid`, no principal and no extension. A task of measure 5 takes its reports from +[impression-aggregates](impression-aggregates.md) §6.3 instead: one for each presentation, its +time the presentation's, and with attestation one private extension. §5.2 **The aggregators.** The leader and the helper run DAP §4.5 and §4.6 as written, over HTTP, with the HPKE suite of DAP §7 (DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, AES-128-GCM): @@ -259,7 +266,9 @@ refusal, which it reports with the reason and where: 1. **The receipt** reads (§7.2), at `receipt`. 2. **The task** reads as a TaskConfiguration and meets §4.3, at `task`: `task_invalid`, - `measure_unknown`, `measure_mismatch`, `floor_too_low`, `aggregator_alone`. + `measure_unknown`, `measure_mismatch`, `floor_too_low`, `aggregator_alone`. A task of + measure 5 is verified by [impression-aggregates](impression-aggregates.md) §8.1, which is + given its catalogue. 3. **The collector**: `signer` is the `collector` key of `task_info`, otherwise `wrong_signer`; the signature verifies (`bad_key`, `bad_signature`), at `receipt`. 4. **The collection** reads as a CollectionJobReq with a time-interval query of a duration of diff --git a/wai/extensions/timeliness.md b/wai/extensions/timeliness.md new file mode 100644 index 000000000..61805a0f4 --- /dev/null +++ b/wai/extensions/timeliness.md @@ -0,0 +1,608 @@ +# WAI Extension: Timeliness + +> Status: Draft. Registers the record `wai.delivery.timeliness`: a publisher's signed statement, for +> each object of a group, of when the object is of use: the instant it is useful from, the deadline +> by which a receiver must hold it for its full value, how that value falls after the deadline, as a +> stated function in integers, and the rendition a receiver presents in its place when it does not +> hold it by the deadline. It is a jwp-receipts claim of class **timeliness** (jwp-receipts §2.4.17, +> §4 here), signed by the group's key beside the group receipt, one statement for every bearer. From +> it and from a holder's signed [holdings](holdings.md) record, the signed evidence WAI has that a +> party held an object at an instant, a verifier judges each object for each holder: on time, +> replaced by its fallback, held only after its deadline and at what value at least, or not shown +> (§6). An asker plans, from an instant it states, which of its sources, in its own order, delivers +> each object by its deadline: a pass of a [carousel](carousel.md), a neighbour, or the origin (§7). +> WAI defines no transport: the deadline is mapped onto the delivery timeouts, request keys, +> carousel and window parameters and bundle lifetimes the bearers already define (§8). The reference +> implementation is the `timeliness` module of `wai-rs` (feature `timeliness`), with the class's +> body in `claim_receipt::timeliness`; the corpus is +> [`live-conformance/timeliness/`](../live-conformance/timeliness/), and its second implementation +> is `live-conformance/timeliness_verify.py`. +> Keywords **MUST**, **MUST NOT**, **SHOULD**, **MAY** are RFC 2119/8174. +> +> Texts read for this revision: `draft-ietf-moq-transport-23` (MOQT; the clauses cited here, +> §5.1, §5.2 and §10.1 to §10.4, have the same numbers and meaning in -22, which +> [moq-streaming-format](moq-streaming-format.md) binds), CTA-5004-B (CMCD), RFC 9218, RFC 9171 +> (BPv7), RFC 6726 (FLUTE), ETSI TS 103 769 V1.2.1 (DVB multicast ABR), ATSC A/331:2026-04, and +> 3GPP TS 26.346 §11.2A.1.1 as a mirror of Release 19 gives it. Read and not bound (§8.1): +> `draft-sharma-moq-end-to-end-delivery-timeout-00` and `draft-frindell-moq-timestamp-00`. A clause +> number of one of them in this text is that text's. + +## 1. Scope + +In scope: the timeliness claim (§4); an object's value at an instant, and the rule by which a sink +that does not hold it by its deadline is graded (§5); judging, from holdings records, whether each +object was held by its deadline (§6); planning which source delivers it by its deadline (§7); and +the values a carriage derives from it (§8). + +Out of scope: a transport; how a sink in fact presents, which is its own and is recorded in its +`reconstruct-session` claim (jwp-receipts §2.4.12), but for the switch reason of §8.6; who may sign +as a holder, and whose word a relying party counts; counting holders, receivers, regions or rates +of missing; and prices. A value here is a fraction of the object's full value to its publisher. +It is not money, and no tariff grades a charge by it: a tariff prices the quantities that records +state ([receipt-ledger](receipt-ledger.md) §4). This text states no energy. + +A layer of a stage set ([staged-delivery](staged-delivery.md) §3) has no entry here and is no +fallback: whether a layer is late is decided by staged-delivery §8 alone +([moq-streaming-format](moq-streaming-format.md) §4.1), and a layer is not presented on its own +([http-delivery](http-delivery.md) §2). §4.3 step 6 refuses both. + +Relationship to the core spec: `wai.delivery.timeliness` is a **record** ([SPEC](../SPEC.md) §5). +It names no payload format and is not dispatchable. + +## 2. Terms + +- **Group**, **link hash**, **leaf count**, **content hash**: as [jwp-receipts](jwp-receipts.md) + §2.1, §2.4.1 and §3 step 3. Object *i* of a group is its object at position *i*, from 0. +- **Instant**: a count of milliseconds since 1970-01-01T00:00:00Z, leap seconds not counted, as + [channel-lineup](channel-lineup.md) §2 writes one. **Last instant**: 253,402,300,799,999 + (9999-12-31T23:59:59.999Z), as carousel §4.2 bounds a pass. +- **Value**: an integer from 0 to 1,000,000, parts per million of an object's full value. +- **Entry**, **primary**: an entry of a timeliness claim (§4.1), and the object it names. + **Fallback**: the object an entry names to present in the primary's place. **End**: §5.2. +- **Holder**: a node named by its Ed25519 key that signs holdings records + ([holdings](holdings.md) §2). +- **Held-at statement**: a key, a group's link hash, a position and an instant: the key's signed + word that it held that object no later than that instant. Its instant is the latest that word + allows, in milliseconds, rounded up where the word is finer. It is **before its group** when the + whole seconds of the time its word states, any fraction dropped, are below the seconds + jwp-receipts §2.4.3 reads from the group's `group_start`. Such a statement states what cannot + be, and is refused `held_before_group`. This revision derives held-at statements from holdings + records (§6.2 steps 4 and 5). Another extension that derives them from other signed records + states them in this form, under this rule. + +## 3. Why a statement beside the receipt + +WAI has deadlines that are relative leads (`lead_ms`, staged-delivery §8; a refinement's +`deadline_ms`, [packaging](packaging.md) §3, its paragraph 3.3), timeouts that each hop restarts +(moq-streaming-format §4.1), a sink's own schedule (jwp-receipts §2.4.12 `deadline_us`), a job's +billing term ([route-record](route-record.md) §5.2), and a one-way bearer's plan of when a receiver +holds an object, at an instant the relying party supplies (carousel §6.4). None is the publisher's +signed statement of when an object is of use. That statement is made beside the receipt: + +- **It is the publisher's, about its own group.** The claim is signed by the group's key and names + the group by its link hash, as a transmission claim (bearer-receipts §4) and a schedule + (carousel §4) do, and it is chained and confirmed as every claim is (jwp-receipts §3.1, §7). +- **It is one statement for every bearer.** An object's value to a receiver does not depend on the + path that brought it. Whether a bearer can meet it is a question about that bearer, which its + schedule (carousel §6.4) and an asker's plan (§7) answer. +- **It changes no byte of what it times.** A group carried before this extension, or by a party that + does not use it, verifies exactly as before. An object with no statement has none, and is never + judged on time (§6.4). +- **It is a statement of value, not of delivery.** Nothing in it says that anything was sent or + received: that is the evidence §6 reads. + +## 4. The timeliness claim (`class: "timeliness"`) + +A publisher **MAY** state the timeliness of objects of a group it signed in a `timeliness` claim. +Its `subject_type` is `receipt` and its `subject` the group receipt's link hash (jwp-receipts §3 +step 3). It is signed by the key that signed the group. A publisher **MAY** state the objects of a +group in one claim or in several; §6.2 step 3 reads them together. + +### 4.1 Body + +| member | type | meaning | +|---|---|---| +| `objects` | array | The objects stated, one entry each (below). | +| `attests` | string | **MUST** be `"valued"`. Any string passes step 2; another value is refused at step 4. | + +Each entry of `objects` has exactly these members: + +| member | type | meaning | +|---|---|---| +| `leaf_index` | integer | The object's position in the group (jwp-receipts §2.2). | +| `content_hash` | 32 B hex | The object's content hash (jwp-receipts §2.1). | +| `from_ms` | integer | The instant from which the object is of use. Holding it earlier is no fault and no gain. | +| `by_ms` | integer | The deadline: the last instant at which a receiver that first holds the object has it at its full value. | +| `decay` | array | 1 to 16 points, each exactly `{ "at_ms": integer, "value_ppm": integer }`: the object's value at instants after `by_ms` (§5). | +| `fallback` | object or `null` | The object to present in the primary's place when the primary is not held by `by_ms` (§5.3): exactly `{ "group": 32 B hex, "leaf_index": integer, "content_hash": 32 B hex, "value_ppm": integer }`, the link hash of its group receipt, its position in that group, its content hash, and the value of presenting it in the primary's place. `null` when there is none. | + +Every integer is one of jwp-receipts §2.4.3, read at §3.1 step 2 with the members of each point and +of `fallback`, in the tables' order (`field_type`). + +An example body (wire form has no whitespace; jwp-receipts §2.4.3): + + {"attests":"valued","objects":[{"by_ms":1793664060000, + "content_hash":"<64 hex>","decay":[{"at_ms":1793664062000,"value_ppm":600000}, + {"at_ms":1793664070000,"value_ppm":0}],"fallback":{"content_hash":"<64 hex>", + "group":"<64 hex>","leaf_index":0,"value_ppm":400000},"from_ms":1793664000000, + "leaf_index":0}]} + +### 4.2 Rules + +Checked at jwp-receipts §3.1 step 4, in this order: + +1. `attests` **MUST** be `"valued"` (`timeliness_not_valued`). +2. `objects` has at least one entry, and its `leaf_index` values strictly increase + (`timeliness_objects_malformed`). +3. Each entry in order, the first of these to fail: + 1. its window is well formed (`timeliness_window_invalid`): `from_ms` is at most `by_ms`, and + `by_ms` is below the last instant; + 2. its decay is well formed (`timeliness_decay_invalid`): 1 to 16 points; their `at_ms` + strictly increase, the first above `by_ms` and the last at most the last instant; each + `value_ppm` is below 1,000,000 and none above the one before it; the last is 0 and every + other at least 1; and no point but the last is on the line through its neighbours: with + (*t*0, *v*0) = (`by_ms`, 1,000,000) and the points + (*t*1, *v*1) … (*t*n, *v*n), for each *k* from 1 + to *n* − 1, (*v*k−1 − *v*k) · (*t*k+1 − *t*k) + differs from (*v*k − *v*k+1) · (*t*k − *t*k−1), + computed without overflow (the products reach 268); + 3. its fallback is well formed (`timeliness_fallback_invalid`): `null`, or a `value_ppm` from 1 + to 1,000,000, a `content_hash` other than the entry's, and a position other than the + entry's own (a `group` other than the claim's `subject`, or a `leaf_index` other than the + entry's). + +So a stated line has one form. `by_ms` is the last instant of full value, since no point after it +holds full value; nothing is implied, since a hard deadline is the one point (`by_ms` + 1, 0); a +step is a fall over one millisecond; and every point is a change of slope, since none but the last +lies on the line its neighbours give. Two entries that state different lines are two statements, +even where their floored values (§5.1) agree at every instant. + +### 4.3 Against the group + +Checked at jwp-receipts §3.1 step 6 against the group receipt the verifier holds, which has passed +jwp-receipts §3 steps 1 and 2 and whose `group_start` is an RFC 3339 date-time (`context_invalid` +otherwise; another receipt is `context_mismatch`); the object receipts it holds under that group, +each of which has passed jwp-receipts §3 step 5; the other group receipts it holds, each having +passed §3 steps 1 and 2, with the object receipts it holds under them; and the envelope bytes it +holds, each known by its content hash. In order: + +1. the group's link hash is the claim's `subject` (`timeliness_subject_mismatch`); +2. the claim's `signer_pubkey` is the group's (`timeliness_signer_mismatch`): only the publisher + states the value of its own objects; +3. every `leaf_index` is less than the group's `leaf_count` (`timeliness_leaf_out_of_range`); +4. no entry is of use before the group begins (`timeliness_before_group`): ⌊`from_ms` / 1000⌋ is + at least the seconds jwp-receipts §2.4.3 reads from `group_start`, its fraction dropped, as + carousel §4.3 step 4 reads it. Nothing is of use before it exists; +5. for each entry whose object receipt the verifier holds, the receipt's `content_hash` is the + entry's (`timeliness_content_mismatch`); +6. no entry and no fallback is a layer (`timeliness_on_layer`): an envelope the verifier holds + whose content hash is an entry's or a fallback's is not a `WAI1` envelope whose capability is + refinement-only (SPEC §5, *Refinement capabilities*; staged-delivery §3); +7. each fallback is where it says (`timeliness_fallback_mismatch`): where the verifier holds the + group receipt whose link hash is the fallback's `group`, the fallback's `leaf_index` is less + than that group's `leaf_count`; and where it holds the object receipt at that position, the + receipt's `content_hash` is the fallback's; +8. each fallback is a rendition of its primary (`timeliness_fallback_not_derived`): an envelope the + verifier holds whose content hash is a fallback's is a `WAI1` envelope whose manifest carries + `derived_from` (SPEC §7.1, *Derived renditions*) with `motif` the entry's `content_hash`, as + packaging writes on every floor object ([packaging](packaging.md) §7, its paragraph 7.2). A + `WAI2` envelope is refused here: it offers renditions a sink selects among (SPEC §7.1), so it + names no one rendition the publisher has valued. + +What the verifier does not hold is not checked: a claim checked without its group stops at step 5 +and is not counted by §6; an entry whose receipt, envelope or fallback group it does not hold +passes the steps that need them, and the publisher's word stands there. + +### 4.4 Authority + +Confirmed under jwp-receipts §7, a timeliness claim needs the authority `timeliness`, which is not +pinned-only and is not `delivery`. An origin gives it to the keys that publish its groups, as it +gives `transmission` and `schedule`. + +## 5. Value over time + +### 5.1 The value at an instant + +An entry's value at an instant *h* is: + +- 1,000,000 when *h* is at most `by_ms`; +- otherwise, with the points of `decay` preceded by the point (`by_ms`, 1,000,000), for the two + consecutive points (*t*a, *v*a) and (*t*b, *v*b) with + *t*a < *h* ≤ *t*b: + ⌊(*v*a · (*t*b − *h*) + *v*b · (*h* − *t*a)) / + (*t*b − *t*a)⌋, computed without overflow (the products reach + 268); +- 0 when *h* is past the last point. + +The value is floored, so it is never above the line the publisher stated, and it never increases +with *h* (§4.2 rule 3.2). + +### 5.2 The end + +An entry's **end** is the `at_ms` of its last point: the instant from which an object first held +is of no value. Flooring can bring the value to 0 a little before the end; §8 derives from the +end, never from an earlier zero. + +### 5.3 The sink's rule + +§6 judges, and §7 plans, for a sink that follows this rule; a sink **MAY** present otherwise, and +its session claim records what it did. At `by_ms`: + +- a sink that holds the primary presents it, at full value; +- one that does not, and holds the fallback, presents the fallback in the primary's place, at the + fallback's `value_ppm`; +- one that holds neither presents the primary when it holds it, at its value then (§5.1). A + fallback first held after `by_ms` is not presented in the primary's place. + +The rule needs nothing the sink does not hold at `by_ms`. No sink knows at its deadline when a +primary it lacks will arrive, so nothing is graded by what arrived after a fallback was due. + +### 5.4 Example + +With `by_ms` *D* and points (*D* + 2000, 600,000) and (*D* + 10,000, 0): the value is 1,000,000 at +*D*; 999,800 at *D* + 1; 800,000 at *D* + 1000; 600,000 at *D* + 2000; 300,000 at *D* + 6000; 75 +at *D* + 9999; and 0 from *D* + 10,000, its end. A hard deadline is the one point (*D* + 1, 0): +0 from *D* + 1, its end. + +## 6. Judging delivery + +### 6.1 Inputs + +The group receipts the verifier holds, in an order it chooses (the first is the one a claim about +none of them is checked against, §6.2 step 2), each with the object receipts it holds under it and +their envelope bytes where it holds them; the timeliness claims it holds about them, each signer's +in the order of its chain; the holdings records it holds; and optionally a statement offered +(§6.4). These are the verdict's inputs, and the only ones its lines and its statement read. +[cache-authority](cache-authority.md) §9 derives lines for an entry by §6.3 from its own inputs, +which add acknowledgements and the reconciliations a bearer verdict counts. + +### 6.2 Steps + +1. **The groups and their objects**: each group under jwp-receipts §3 steps 1 and 2, and each of + its object receipts as bearer-receipts §6.2 step 2 checks it. A group that fails refuses the + verdict with that step's reason. +2. **The claims**: each claim, in order, under jwp-receipts §3.1 steps 1 to 5, then step 6 by §4.3 + here against the group whose link hash is its `subject`, or the first group when none is (so a + claim about a group not given is refused `timeliness_subject_mismatch`). A claim of another + class is `context_mismatch` at step 6: a schedule is a plan, which carousel §6.4 and §7 here + read, and a reconciliation attests no timeliness (bearer-receipts §5.4), so this verdict reads + it nowhere. Its signed instant is a held-at statement only in the lines cache-authority §9 + derives, once that text's verdict counts it (cache-authority §7.2, §8.3). A claim refused at + any step takes no further part. +3. **The intents**: the entries of the accepted claims, by group and `leaf_index`. Two entries for + one object that differ set aside every entry for it (`timeliness_contradicted`): a publisher + that states two values for one object has stated neither, and a relying party holds no + statement that can change under it. Entries that are the same are one. Otherwise the entry + **stands**. +4. **The records**: each holdings record as holdings §4.4 reads and verifies it. A record that + reads and verifies is refused whole when, for a group given, its entry's `leaf_count` is not + the group's (`holdings_leaf_count_mismatch`, holdings §5.2), or its `as_of_ms` is before the + group begins (`held_before_group`): ⌊`as_of_ms` / 1000⌋ is below the seconds read from the + group's `group_start`, as §4.3 step 4 reads them. A holder that states it held an object before + the object existed misstates its holdings. Of one holder's other records, two with one + `as_of_ms` and different digests set both aside (`holdings_contradicted`, holdings §5.3), and + records with one digest are one. Every other record **stands** at its own `as_of_ms`, and at no + other instant: holdings §5.1 holds a record at its `as_of_ms`, which is below its `expires_ms` + (holdings §4.4 rule 2), and holdings §5.3 at that instant keeps it alone, since no later record + of its holder stands yet. +5. **Held-at statements**: for each record that stands and each object it holds (holdings §5.4, + *held*): the record's `holder`, the object's group and position, and the record's `as_of_ms`. + It is the holder's word that it held the object then; it says nothing of when the object + arrived, but that it was no later. These are the held-at statements (§2) this verdict derives, + and the only ones its lines and its statement (§6.4) read. Cache-authority §8.3 derives two + more kinds, from acknowledgements and counted reconciliations, and its §9 reads all three. + Step 4 refused a record dated before its group, by §2's rule. +6. **Lines**, by §6.3; the statement, by §6.4. + +### 6.3 Lines + +For each intent that stands, in the order of the groups given and then of `leaf_index`, a verifier +derives a **line** for each holder with a record that stands and has an entry for the intent's +group or its fallback's group, in increasing order of key bytes. The lines cache-authority §9 +derives by this rule also have one for each key with a held-at statement of cache-authority §8.3's +kinds for an object of the group. For a holder, *p* is the least instant of its held-at statements +for the primary, and *f* the least for the fallback; either may have none. Its **outcome** and +**value** are the first of these that holds: + +| outcome | when | value | +|---|---|---| +| `on_time` | *p* is at most `by_ms` | 1,000,000 | +| `replaced` | *f* is at most `by_ms` | the fallback's `value_ppm` | +| `after_deadline` | *p* is after `by_ms` | the primary's value at *p* (§5.1) | +| `not_shown` | §6 only: none of the above | 0 | +| `no_source` | §7 only: §7.3 rule 4 | 0 | + +A line reports its holder, *p* and *f* (each `null` where none), its outcome and its value. Each +instant is the latest the holder's word allows for the object's arrival, and §5.3 grades what a +sink holding exactly what the evidence shows would present, so every value is the least the +evidence shows. `after_deadline` says the holder held the object by *p*, not that it arrived after +`by_ms`; `not_shown` says only that this evidence shows neither object held in time, nor the +primary at all. + +A publisher's promise to a receiver within a loss bound that hears every pass is carousel §6.4's +statement with *t* the entry's `by_ms`; to one that tunes in at an instant, a plan (§7). Neither +is evidence that anyone held anything, and §6 reads neither. + +### 6.4 A statement offered + +A verifier **MAY** be asked to judge object *i* of a group for a holder. The answer is the outcome +and value of that holder's line; `not_shown` and 0 when the holder has none; and refused +`deadline_not_stated` when no intent of that object stands (§6.2 step 3): an object with no +deadline is never on time. + +## 7. Planning + +### 7.1 Inputs + +§6.1's inputs, without a statement, and with the transmission and schedule claims the asker holds +about the groups, each signer's in the order of its chain; optionally a loss bound *L* and an +overhead *h* (carousel §2); an instant *t* at which the asker plans, or the word `from_ms`, under +which each object is planned from its own entry's `from_ms`; the wanted objects, each a group's +link hash and a position; and the asker's **sources**, in the order it prefers them, each one of: + +- a **bearer instance**, by its `bearer_id`; +- a **holder**, by its key, with `fetch_ms`: the asker's estimate of the time from asking that + holder to holding an object from it; +- the **origin**, with `fetch_ms`. + +These are checked first, in this order, and refuse the plan: *L* and *h* as carousel §6.2 checks +them (`loss_bound_invalid`, `overhead_invalid`); *t* above the last instant (`instant_invalid`); +and the sources (`sources_invalid`) when there is none, when one names a kind not listed, a +`bearer_id` that is not an absolute URI, a key that is not 64 lowercase hexadecimal digits or a +`fetch_ms` that is not an integer from 1 to 253 − 1 (no fetch completes in no time); +when two name one bearer instance or one holder, or two are the origin; or when a bearer instance +is among them and *L* and *h* are not given. An estimate is the asker's own and is never signed: a +plan says what follows from it, not that it will hold. + +### 7.2 Arrivals + +§6.2 steps 1 to 4 run as there, but that step 2 also checks a transmission claim by +bearer-receipts §4.3 and a schedule by carousel §4.3; then the declarations (bearer-receipts §6.2 +step 4) and the schedules (carousel §6.2 step 4). A schedule that stands there stands here. For a +wanted object whose intent stands, from the instant *s* (*t*, or its entry's `from_ms`), each +source's **arrival** of the primary, and of the fallback where there is one, is: + +- **bearer instance**: where a schedule of the object's group stands on it with an entry for the + object, the `complete_ms` of carousel §7's plan from *s*, at *L* and *h*, holding nothing of it; + none when that is `null` or there is no such entry; +- **holder**: *s* + `fetch_ms` where a record of that holder stands at *s* (holdings §5.1 to §5.3, + and §6.2 step 4 here) and holds the object (holdings §5.4); none otherwise; +- **origin**: *s* + `fetch_ms`. + +### 7.3 The choice + +For each wanted object, in order: refused `deadline_not_stated` when no intent of it stands; +otherwise the first of these that holds, with the outcomes of §6.3: + +1. `on_time`: the first source, in the asker's order, whose arrival of the primary is at most + `by_ms`; +2. `replaced`: when the fallback's `value_ppm` is at least the greatest value (§5.1) of any + arrival of the primary, the first source whose arrival of the fallback is at most `by_ms`; +3. `after_deadline`: the source whose arrival of the primary has the greatest value, the first in + the asker's order among equals, when that value is at least 1; +4. `no_source`. + +A plan reports for each object its outcome, which object (`primary`, `fallback` or `null`), the +source by its index in the asker's list, the arrival and the value. A plan whose choice is a late +primary fetches no fallback: a sink that holds the fallback by `by_ms` presents it (§5.3). An asker +that has no path back lists no holder and no origin; one whose plan for an object is `no_source` +has no source that reaches it with any value. + +### 7.4 The publisher's check + +Planned from `from_ms` over one bearer instance alone, a plan states what the publisher's schedule +promises a receiver within *L* that starts listening when each object becomes of use: `on_time` +for every object is the promise. `after_deadline` names the objects for which such a receiver is +not served in time, though one that heard every pass may be (carousel §6.4, at *t* the entry's +`by_ms`). + +## 8. Mappings + +Each value below is derived from an entry that stands, for an object that is not a layer (§1). A +carriage derives these values and adds no field of its own. Lateness is judged only by §6, never +from them. A claim travels as a receipt file on every bearer ([bearer-receipts](bearer-receipts.md) +§9.1; [http-delivery](http-delivery.md) §8.1), listed in the receipt index of each object of its +group (http-delivery §8.2); no track carries it, so a party derives these values only from a claim +it holds. + +### 8.1 MoQ (MOQT, `draft-ietf-moq-transport-23`) + +- **Per hop.** A publisher **SHOULD** set an object's `OBJECT_DELIVERY_TIMEOUT` (MOQT §5.2, §10.2, + Property 0x02) to no more than its slack at publication: its end (§5.2), less the instant the + publisher passes it to transport, less the publisher's estimate of the path. Set on a subgroup's + first object, the property governs the subgroup and is ignored on any other object (MOQT §5.2): + a publisher derives a subgroup's timeout only where every object of the subgroup has an entry + that stands, at no more than the least of their slacks, and otherwise puts each such object first + in a subgroup of its own, as moq-streaming-format §4.1 does for layers. A slack of 0 or less + cannot be set, since 0 is no timeout (MOQT §5.2): the object cannot reach anyone with value, and + a publisher **MAY** withhold it. On the base track of a stage set, moq-streaming-format §4.1's + floor stands: no timeout is shorter than the time from the base's publication to the + presentation of its last unit, and where the slack is shorter, the floor is set. The timeout runs + at each hop (MOQT §5.2) and is not an end-to-end deadline. +- **Priority.** Unchanged. A publisher's priorities are moq-streaming-format §4.1's and packaging + §8's, in its paragraph 8.5; MOQT's default of 128 (§10.4) is never relied on. A priority orders + objects within a session (MOQT §5.1.1, §5.1.2) and states no instant; the timeout carries the + deadline. +- `MAX_CACHE_DURATION` (MOQT §10.3) is a Track property that bounds caching, not use, and is not + derived. +- **End to end: not derived.** `draft-sharma-moq-end-to-end-delivery-timeout-00` defines its + timeout for MOQT -22 alone, measures it from the first object a publisher forwards on that + publisher's own clock (§4, §5 there), and reads object timestamps whose meaning + `draft-frindell-moq-timestamp-00` (§5 there) does not state; a timeout derived from an end could + expire an object that still has value. Both are individual drafts, and this text follows them + without binding to them. + +### 8.2 HTTP + +- **Abandoning at the end.** A client **MAY** abandon its request for an object at the object's + end, on its own clock as http-delivery §10.2 runs a deadline (a clock that steps back has not + passed it): past its end the object is of no value. http-delivery §10.1 admits this abandonment + of a base and no other; the fetch then ends as one never answered (`base_unanswered`). The + client fetches the fallback where its plan (§7) chooses it. Request priority (RFC 9218 §4.1, + §4.2; http-delivery §10.1) is unchanged. +- **CMCD.** For an object no buffer level governs (a file, a creative, a still, an application + package), a sink's `object.dl_ms`, which delivery-telemetry §3 maps to CMCD `dl` (CTA-5004-B + §4.3, Table 1: "Deadline from the request time until the first sample of this Segment/Object + needs to be available"), is `by_ms` less the request's instant, 0 when that is past; for an + object within a buffered timeline, the lesser of that and the buffer level. A sink that holds an + object whole by `by_ms` has its first sample by then, so the value is never later than CMCD's + own. CTA-5004-B rounds `dl` to the nearest 100 ms, so it can be up to 50 ms late: it is a hint, + and nothing is judged from it. Nothing here sets `su`. +- **CMSD.** Nothing is derived: CMSD's `at` is an observation of availability at the origin, and + `from_ms` a statement of use. A node that discards an object at a timeout derived here counts it + in `science.transaction.wai-drop` (delivery-telemetry §6, its paragraph 6.3). + +### 8.3 Broadcast + +- **Carousel.** carousel §6.4's statement "object *i* is held by *t*", with *t* the entry's + `by_ms`, is the publisher's plan against its own deadline for a receiver that hears every pass, + with carousel's reasons; §7.4 is the plan for one that tunes in at `from_ms`. +- **DVB multicast ABR** (ETSI TS 103 769 V1.2.1). A deployment that carries an object as an + ancillary resource of an object carousel (§10.2.3.14.3) and states its `@targetAcquisitionLatency` + (§10.2.3.14.0: how often it is repeated "so that they can be acquired by a Multicast gateway + within the indicated target time") states no more than `by_ms` less `from_ms`: a longer target + does not serve a gateway that joins at `from_ms`. The attribute is a repetition target, not a + bound under loss; the schedule (carousel §4) is the signed plan. Objects carried as media + segments (bearer-receipts §9.3) have no such attribute. +- **ATSC 3.0** (A/331:2026-04). A Distribution Window (§7.1.9, Table 7.7) is the broadcaster's + schedule of when NRT files are sent, as a carousel schedule is the publisher's signed one; it is + read as a plan and nothing is derived. An object that is a broadcaster application's entry + package is loaded from its HELD's `@validFrom` (§7.1.8, Table 7.6), and its files are available + when the HELD names them (§7.1.8.2): a HELD that names an object whose entry stands sets no + `@validFrom` before that entry's `by_ms`. +- **MBMS** (3GPP TS 26.346 §11.2A.1.1, `fileSchedule`). A file's delivery windows are the bearer's + own schedule, read as a plan; nothing is derived. +- **FLUTE** (RFC 6726): an FDT instance's `Expires` (§3.4.2) is the expiry of the description, not + of a file, and is not derived. + +### 8.4 Bundles (RFC 9171) + +A node that creates a bundle carrying an object sets its `Lifetime` (§4.3.1) to the object's end +less the bundle's creation time (§4.2.7), both in milliseconds, the end converted to DTN time +(§4.2.6: from 2000-01-01T00:00:00Z, leap seconds not counted, so less 946,684,800,000). It does not +send a bundle for an object whose end is not after the creation time, and a node whose creation +time is 0, an unknown clock (§4.2.6), derives no lifetime from the entry. + +### 8.5 WAI + +- **Ads.** An entry for a creative of a break states a `by_ms` no later than the break's splice: + its cue's `t` on the room clock ([live-ads](live-ads.md) §4.1, §4.3), as an instant + ⌊(`t0` + `t`) / 1000⌋ with `t0` the room's start in microseconds since 1970-01-01T00:00:00Z + ([live-events](live-events.md) §2). The policy's `preload_ms` is when a player may fetch the + break's asset list (live-ads §3.1, §5.3, §6.2), not when a creative is of use, and nothing is + derived from it. +- **Floors.** A packaged piece's floor object (packaging §7, its paragraph 7.2) is its base's + natural fallback. +- **Holders.** No one gains by holding an object past its end: a holder **MAY** drop it then + (holdings §1 leaves what to keep to the node), and lists it in no later record. + +### 8.6 Presentation + +A sink that presents a fallback in a primary's place under §5.3, and whose path (`path`, +[delivery-telemetry](delivery-telemetry.md) §2, its paragraph 2.2) changes with it from `primary` +to `fallback`, records the switch with the reason `not-held-by-deadline` (delivery-telemetry §5, +its paragraph 5.1; jwp-receipts §2.4.12 `switches`). A fallback presented on the primary's path is +no switch. + +## 9. Reasons + +The codes this extension adds, each with where it is raised: + +| reason | raised at | +|---|---| +| `timeliness_not_valued` | §4.2 rule 1 | +| `timeliness_objects_malformed` | §4.2 rule 2 | +| `timeliness_window_invalid` | §4.2 rule 3.1 | +| `timeliness_decay_invalid` | §4.2 rule 3.2 | +| `timeliness_fallback_invalid` | §4.2 rule 3.3 | +| `timeliness_subject_mismatch` | §4.3 step 1 | +| `timeliness_signer_mismatch` | §4.3 step 2 | +| `timeliness_leaf_out_of_range` | §4.3 step 3 | +| `timeliness_before_group` | §4.3 step 4 | +| `timeliness_content_mismatch` | §4.3 step 5 | +| `timeliness_on_layer` | §4.3 step 6 | +| `timeliness_fallback_mismatch` | §4.3 step 7 | +| `timeliness_fallback_not_derived` | §4.3 step 8 | +| `timeliness_contradicted` | §6.2 step 3 | +| `held_before_group` | §6.2 step 4 | +| `deadline_not_stated` | §6.4, §7.3 | +| `instant_invalid` | §7.1 | +| `sources_invalid` | §7.1 | + +A verdict or plan also raises a group's or object's codes of jwp-receipts §3.3; a claim's codes of +jwp-receipts §3.1 steps 1 to 5 and those of step 6 named in §4.3, and in a plan in bearer-receipts +§4.3 and carousel §4.3; a record's codes of holdings §7; and a plan `loss_bound_invalid` and +`overhead_invalid` (carousel §9) at §7.1, and `bearer_contradicted`, `bearer_not_declared` +(bearer-receipts §10), `schedule_contradicted` and `schedule_on_bidirectional` (carousel §9) at +§7.2. + +## 10. Conformance + +[`live-conformance/timeliness/`](../live-conformance/timeliness/) holds the corpus, written from +fixed seeds by `wai_timeliness_vectors gen` as `vectors.json`. It has: + +- **Claims**: an entry at each bound of §4.2 on both sides — a window of one instant and an + inverted one, a deadline one millisecond before the last instant and at it, a decay of one, of + sixteen and of seventeen points and an empty one, a point at full value, a step, a plateau and a + plateau with an interior point, three points on one line and three just off it, a last point at + the last instant and past it, a fallback valued at 1 and at full value — and one negative control + for each rule, for the order of the rules within an entry and between entries, and for a body's + members at step 2. +- **Values**: §5.1 at the deadline, a millisecond after, on and between points, at and past the + end, a value floored to 0 before the end, a hard deadline, and a span whose products pass + 264. +- **Verdicts**: holders on time, at the deadline, a millisecond after, after the end, not shown; a + fallback in time, at the deadline, after it, before a late primary of lower and of higher value, + and a fallback after the deadline before a late primary; a holder's earliest record counting, for + the primary and for the fallback; lines from several holders on one intent, each from its own + records alone and in key order where the records come in another; records contradicting each + other, a record at the start of its group's second and one before it, a record misstating a leaf + count and one whose signature fails; intents contradicting and repeating; a schedule given as + evidence and refused; and one negative control for each step of §4.3, each beside the case that + shows the step passing at its edge. +- **Plans**: on time in the asker's order before an earlier source, at the deadline and a + millisecond after, a neighbour when the carousel is late, a holder's record expired and not yet + standing, a holder asked when only another holder's record holds the object, a fallback chosen and + refused on value, chosen at a value equal to the late primary's, from the first source in the + asker's order before an earlier one, and arriving at the deadline, late sources chosen by value + and order, an arrival only after the end, no source on a path with no return, the origin alone, a + schedule with no declaration and one on a two-way instance, every pass heard from the first, the + publisher's check from `from_ms` passing and failing, an object with no deadline, an instant at + and past the last instant, and each rule of §7.1. + +A conforming verifier gives every case the outcome, the reason and everything else the corpus +states. `wai_timeliness_vectors verify` and the test `tests/timeliness.rs` check that the file +regenerates byte for byte, that `wai-rs` gives every case its outcome, that every reason of §9 and +every outcome of §6.3 appears, that §9 lists exactly the reference's codes and §6.3 its outcomes, +that jwp-receipts §3.1 lists the class's codes at their steps, and that delivery-telemetry §5, in +its paragraph 5.1, lists the switch reason of §8.6. +`live-conformance/timeliness_verify.py` is the second implementation, written from this text: it +shares no code with `wai-rs`; it verifies groups and objects with the JWP corpus's second +implementation (`jwp-conformance/jwp_verify.py`), claims through steps 1–5 with the claim corpus's +(`claim-conformance/claim_verify.py`, whose step 4 holds §4.2), schedules and passes with the +carousel corpus's (`live-conformance/carousel_verify.py`) and records with the holdings corpus's +(`live-conformance/holdings_verify.py`); it writes §4.3, §5, §6 and §7 itself, reads §9 and §6.3 +from this text, mutates copies of the corpus and requires every copy to fail, and drops each of +its own checks in turn and requires the corpus to catch the weakened verifier. + +## 11. Security and privacy considerations + +- **A statement is its publisher's word, and binds it.** Two statements of one object set both + aside (§6.2 step 3), so a publisher cannot move a deadline once a deliverer holds it, and a key + that signs a second statement after a miss has stated two things under one key, which is + evidence of it. A relying party that agreed to a deadline keeps the claim it agreed to. A + deliverer that takes on a deadline checks it first (§7.4). +- **A record is its holder's word.** A holder that signs an early `as_of_ms` makes a false + statement under its key; one earlier than its group's start is refused (§6.2 step 4). Whose word + a relying party counts is its own, and nothing here scores holders. +- **Unknown is never on time.** An object with no statement is refused (§6.4), never on time; + nothing in an entry is implied; a value is floored; a sink is graded only by what it held at its + deadline (§5.3); evidence that does not show an object held is `not_shown` at 0; and every value + is the least the evidence shows. +- **It discloses a value, not an audience.** A statement names objects and instants that a + carriage already exposes through its timeouts and windows. A receiver that plans (§7) over a + bearer sends nothing, and a unidirectional bearer's property that the source learns nothing of + its receivers ([unidirectional-delivery](unidirectional-delivery.md) §2) is kept. A record used + as evidence discloses what holdings §9 says it does. +- **Bounded work.** An entry has at most 16 points; a value or a rule is a few 128-bit products; a + verdict is linear in entries times holders, and a plan in wanted objects times sources. diff --git a/wai/http-conformance/http_receipts.py b/wai/http-conformance/http_receipts.py index 956063887..9fd8c0ec6 100644 --- a/wai/http-conformance/http_receipts.py +++ b/wai/http-conformance/http_receipts.py @@ -342,6 +342,21 @@ def declaration_text(link, fetcher): return t if t is not None else "\u0000" # not UTF-8: no claim reads from it (context_invalid) +class IndexGroup: + """A group of the index as timeliness_verify.check_timeliness reads one: its receipt's link + hash, signer, leaf count and start (None where `group_start` is not a date-time), the + content hash of each object receipt listed under it here by position, each of which + passed inclusion, and no envelope.""" + + def __init__(self, g): + self.link = JV.link(g).hex() + self.signer = g["signer_pubkey"] + self.count = g["leaf_count"] + self.start = JV.seconds(g["group_start"]) + self.included = {} + self.envelopes = {} + + def step6(c, cid, passed, fetcher, exact_algs): """§3.1 step 6 over HTTP (§8.2): against the delivery items that passed and the declarations the claim names.""" @@ -413,6 +428,36 @@ def step6(c, cid, passed, fetcher, exact_algs): if v is None: raise Refused("context_not_held", 6) KV.check_schedule(c, v["g"], [(w["o"], None) for w in passed if JV.link(w["g"]).hex() == c["subject"]]) + elif cls == "timeliness": + # timeliness §4.3: against the group of an item its subject names, the object + # receipts of the items listed under it here, and a fallback's group and object + # receipt where an item lists them; an index carries no envelope bytes, so its + # steps 6 and 8 do not run here. + import timeliness_verify as TV + held = {} + for w in passed: + link = JV.link(w["g"]).hex() + if link not in held: + held[link] = IndexGroup(w["g"]) + held[link].included[w["o"]["object_id"]] = w["o"]["content_hash"].hex() + if c["subject"] not in held: + raise Refused("context_not_held", 6) + TV.check_timeliness(c, held[c["subject"]], held) + elif cls == "cache-transmission": + # cache-authority §5.3: against the group of an item its subject names and the + # object receipts of the items listed under it here; one naming an object this index + # does not list is context_not_held, as a reconciliation's is. + import cache_authority_verify as CAV + v = next((v for v in passed if JV.link(v["g"]).hex() == c["subject"]), None) + if v is None: + raise Refused("context_not_held", 6) + objs = [w["o"] for w in passed if JV.link(w["g"]).hex() == c["subject"]] + try: + CAV.check_cache_transmission(c, v["g"], objs) + except CV.Reject as r: + if r.reason == "cache_transmission_objects_not_held": + raise Refused("context_not_held", 6) + raise except CV.Reject as r: raise Refused(r.reason, r.step) diff --git a/wai/live-conformance/README.md b/wai/live-conformance/README.md index 126ad8c6e..370f23794 100644 --- a/wai/live-conformance/README.md +++ b/wai/live-conformance/README.md @@ -33,6 +33,10 @@ and the independent verifier of each, beside it. | [`bearers/`](bearers/) | [bearer-receipts](../extensions/bearer-receipts.md) (`wai.bearer.receipts`) | `wai_bearer_vectors gen` | `bearer_verify.py` | | [`carousel/`](carousel/) | [carousel](../extensions/carousel.md) (`wai.bearer.carousel`) | `wai_carousel_vectors gen` | `carousel_verify.py` | | [`holdings/`](holdings/) | [holdings](../extensions/holdings.md) (`wai.delivery.holdings`) | `wai_holdings_vectors gen` | `holdings_verify.py` | +| [`timeliness/`](timeliness/) | [timeliness](../extensions/timeliness.md) (`wai.delivery.timeliness`) | `wai_timeliness_vectors gen` | `timeliness_verify.py` | +| [`prices/`](prices/) | [rung-price](../extensions/rung-price.md) (`wai.delivery.rung_price`) | `wai_rung_price_vectors gen` | `rung_price_verify.py` | +| [`cache-authority/`](cache-authority/) | [cache-authority](../extensions/cache-authority.md) (`wai.delivery.cache`) | `wai_cache_authority_vectors gen` | `cache_authority_verify.py` | +| [`impressions/`](impressions/) | [impression-aggregates](../extensions/impression-aggregates.md) (`wai.delivery.impressions`) | `wai_impression_aggregate_vectors gen` | `impression_aggregate_verify.py` | | [`access/`](access/) | [access-services](../extensions/access-services.md) (`wai.access.services`) | `wai_access_services_vectors gen` | `access_services_verify.py` | | [`presentation/`](presentation/) | [ad-presentation](../extensions/ad-presentation.md) (`wai.live.ad_presentation`) | `wai_ad_presentation_vectors gen` | `ad_presentation_verify.py` | | [`age/`](age/) | [age-assurance](../extensions/age-assurance.md) (`wai.age.assurance`) | `wai_age_assurance_vectors gen` | `age_assurance_verify.py` | diff --git a/wai/live-conformance/cache-authority/README.md b/wai/live-conformance/cache-authority/README.md new file mode 100644 index 000000000..9e2adb422 --- /dev/null +++ b/wai/live-conformance/cache-authority/README.md @@ -0,0 +1,46 @@ +# live-conformance/cache-authority — who served what a node holds + +The corpus of [`extensions/cache-authority.md`](../../extensions/cache-authority.md) §12, in one +file, `vectors.json`. + +**Provenance.** Generated here by `wai_cache_authority_vectors gen` (`wai-rs`, feature +`cache_authority`), from Ed25519 keys on published seeds of one byte repeated 32 times +(jwp-receipts §7.8), constant instants, and envelopes of 2,000 bytes whose payloads are opaque test +bytes written by the generator; no media and no input from outside this repository. + +`keys` names every key by its role, as 64 lowercase hexadecimal digits: the publisher `P` +(`did:web:publisher.example#d1`), the nodes `C1` to `C8` and the receivers `R1` to `R4` and `R9`. +`groups` gives the link hashes of `G` (four objects, the tallied group), `G9` (nine), `GL` (labelled +leaves), `GX` (a `group_start` that is not a date-time) and `GF` (four, its object 2 a floor derived +from its object 1). `heads` holds the two test logs' head revisions, of `https://operator.example` +and `https://other.example`; `C2` is in neither. + +- `claims` (§5) are each a `claim`, the signer's `earlier` claims in chain order, the `context` + it is checked against (a group receipt, another receipt, or `null`) and the `objects` held under + it; `outcome` is `accept`, `unchecked` (no group: it stops at step 5) or + `reject step=N reason=…`. +- `placements` (§4.4) are each a `key`, an instant `at_ms` and the `heads` named, keyed by origin; + `outcome` is the placement as §4.4 writes it. +- `verdicts` (§7) are each the `group`, the `objects` (receipt, and envelope or `null`), the + `claims`, a `sink`'s own instance, a statement offered (`assertion`), `count_only` and the + `heads`; `outcome` gives each object's and each claim's label, the status, `sinks`, `whole`, + `received_by`, the publisher's `bearers` and the `caches` that stand, the sink's outcome and the + statement's (`holds` or `reject reason=…`), or `refuse reason=…` for a group that fails. +- `tallies` (§8) are a verdict's inputs, the `acknowledgements` (each a record and its item lists, + in hexadecimal), the holdings `records`, the object's `index`, a `deadline_ms` or a timeliness + `deadline_claim`, the `region`, the `population` and `miss_target_ppm`; `outcome` is `met` or + `refuse reason=miss_target_exceeded` with §8.5's figures, or `refuse reason=…` for §8.2. +- `lines` (§9) are a verdict's inputs, acknowledgements and holdings records, a timeliness `claim` + and an `index`; `outcome` is timeliness §6.3's lines for that object's entry, from held-at + statements of all three kinds. + +Everything is synthetic: keys attest nothing, both key logs are test logs, origins and bearer +instances are reserved example domains, and regions are ISO 3166-1's user-assigned codes. Each case +states the outcome it was written to have, declared in the generator, never copied from a +verifier. §8.1's bound of 1,048,576 keys is carried by no vector (32 MiB of hexadecimal); both +implementations check it themselves. + +`wai_cache_authority_vectors verify` and `tests/cache_authority.rs` check that the file regenerates +byte for byte and that `wai-rs` reaches every stated outcome. `../cache_authority_verify.py` is the +second implementation, written from the extension's text, which also mutates copies of the corpus +and drops each of its own checks in turn and requires each to be caught. diff --git a/wai/live-conformance/cache-authority/vectors.json b/wai/live-conformance/cache-authority/vectors.json new file mode 100644 index 000000000..c8c72cdfb --- /dev/null +++ b/wai/live-conformance/cache-authority/vectors.json @@ -0,0 +1,17591 @@ +{ + "about": "Conformance corpus of extensions/cache-authority.md (wai.delivery.cache): the cache-transmission claim (jwp-receipts §2.4.18) through jwp-receipts §3.1 steps 1 to 6, placing a server key by the heads named (§4.4), the bearer verdict with a cache's instances beside the publisher's (§7), the count of a stated population that held an object by a deadline (§8), and timeliness lines from acknowledgements and reconciliations (§9). Every key is Ed25519 from a published seed of one byte repeated 32 times and attests nothing, and both key logs are test logs; envelopes carry opaque test payloads no case decodes; bearer instances and origins use reserved example domains, and regions ISO 3166-1's user-assigned codes. Each case states the outcome it was written to have, declared in the generator. Regenerate with `wai_cache_authority_vectors gen`.", + "keys": { + "P": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "C1": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "C2": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "C3": "74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9", + "C4": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "C5": "bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6", + "C6": "9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e", + "C7": "ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7", + "C8": "e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b", + "R1": "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "R2": "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "R3": "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "R4": "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163", + "R9": "2f0a7b29f53652005cd4720a3fe7acd08c85a4e29cd6f48d1905e276dac6ffef" + }, + "groups": { + "G": "8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0", + "G9": "20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4", + "GL": "c7c032f476967b4bef7d0ee16de4808db148e732f8d1a872f289df498026419d", + "GX": "a27eb5b1ab93a4aac6cd1c90979489ef25d98b04ec8c6d5b98e5572ef6a3b34e", + "GF": "aacbb6f21ad34ccf7e4e77af75eeed40f075006599a715540a2d863f6a73d03e" + }, + "heads": { + "operator": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "other": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "claims": [ + { + "name": "sent_partial", + "description": "C1 sent objects 1 and 3 of G over its multicast instance: a root over two leaves.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "accept" + }, + { + "name": "sent_whole", + "description": "Every object of G over a unidirectional instance: `sent_root` is the group's root, and no object receipt is needed.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"f0\",\"sent_root\":\"e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0471508cd76de8328ec4603d6358c985cd064c0038781c269e600240646edf00bab9bc8438b0bcfe359afc685f2eedfe49831bd491920786806bf0a2267360b\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [], + "outcome": "accept" + }, + { + "name": "sent_last_of_nine", + "description": "G9's object 8 alone: the last bitmap byte's first bit.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":9,\"sent\":\"0080\",\"sent_root\":\"66e585e0d56ccbf85b5d1ed47963ab5b48f884fc758fc0148963acbf916d4668\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4c089ade96f9f926665e4541a486381bb55472f2c0d0b1455cd5848e47ae84c455060e782fcd4d9b735d51f9c188d6da838b34dc64cdc4409735bab3f6e7df00\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "913fe0f4a2f3c9270c424641e84be0360bd45665c25cae03ebc5e00a55849b81", + "leaf_count": 9, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "da38d1072149787653a29c3e1ed9e39870a71ae85e9efb79dcbda942fa80b4ef264ab94db2d5209ca870933d4aacaed7a0fd3a0a4acefd423e9668cf09baa209", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "0b62c71a008e5cc3c618d119e82acc4123008b6def66b46bdadfb3be507e9b7f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b2b5b7027cbd33cce89845e2f9548d0b2022922dfc1420325baf6609a0db49de", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "1197877a948ab791a6d7b5083475f3e0b07a69e6b125b3658c349be274820f1d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "51b35f908e9b0dd428d651477d1743d355edc3f03361bd9017ea43b331ca4cd5", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "650fd3d1fb6b7644321733a1566bd099f84639393609fd4d1dd5f30523dd490f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "01c01337ec0fedd18831ce88d9bb7eb4e2c822a9b3b3132e09d4bf36487580fe", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "73f4f3e0a31246fb1ba7bec1843e5fb21cdabcbc34e9893a18ab7746e09e99bb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c05915c39391e9d1282e6d85e79c84bd31a9d30cec5a7f5d5470ae2680d9372b", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 4, + "content_hash": "2fbdf7df14500b2869252ac4ba2a285f86e31b94c8fee7a2c1bc5f64fe8e2279", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f2c4d13ec147da33d07c50cf126c5dafd2f706c76084258fb26421ad412929f5", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 4, + "leaf_index": 4 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 5, + "content_hash": "2391f16f333edb691600b4d4ca2636ee902e6cdb4e73197c6f02cfbaa90bf2de", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d3b427e2cd3f85b401dae2bc16edaa48eb7cf901a403735741c9ef57f60ca934", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 5, + "leaf_index": 5 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 6, + "content_hash": "269e6572480e4d6e0311cac67d63fae49ceb8b68304d2b4f41bb5c628c69b8a5", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c9edb031caf51528b3b92da9bd5be64a569b13ccee36497223f70a49e00a9504", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 6, + "leaf_index": 6 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 7, + "content_hash": "887d0287badaf70750c04f43d7b38dfa05d9066283f7f38b1fe037e4675f10f7", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "47ce80844a7c2b380116a53d5ff05bc661171bd3c30521162103f0f13afa380a", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 7, + "leaf_index": 7 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 8, + "content_hash": "a13c52d9804742622936a26498d8464454a93bb2346a79dab09acc5ebb807daf", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "66e585e0d56ccbf85b5d1ed47963ab5b48f884fc758fc0148963acbf916d4668", + "681c08304fd53b3645597452899372b65e22da082fbff47b35328f210f726e81", + "b5d08b8a324b42b1ff373412e77fb7a735277ac62f5e08c6352316e2052f2ffa", + "c768cb22ce72641cabe82c88edf136be1adf230cb9e80702ed469c5f4124c99e" + ], + "direction_bits": 8, + "leaf_index": 8 + } + } + ], + "outcome": "accept" + }, + { + "name": "sent_labelled", + "description": "GL's objects 0 and 2, a root over their labelled leaves.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"a0\",\"sent_root\":\"8ce67ca44aa94cf929fad5570e3599da4a6c66bbe8c13a7ae44f040005c96801\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"18f033abfcf5341cd1d12242f3b1710750882f81ca3e43e880dd19cb4e2a7d3fce6861e1ceee9842c6720c2f5a2fecec82f9b004e3f6c4b02e49c01d028fcd01\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"c7c032f476967b4bef7d0ee16de4808db148e732f8d1a872f289df498026419d\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 3, + "group_id": 1, + "root_hash": "05c8b4d2e3641d89df5c4f21c0340d439fe9f1479b6c22fa8f0fffec44e2246d", + "leaf_count": 4, + "joules_total": 460000, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d024f429b81bba449aee0596b7d7eb55eeef91e2359d77350a3c3f307dd79ed5ee71043d8b101df91a1290fbd842c60d33e55c80bb114167dbf8c4d6c49b6e09", + "parent_receipt_hash": null, + "sign_version": 2, + "energy_provenance": "OnChipCounter", + "energy_uncertainty": { + "relative_ppm": 20000, + "window_us": 1000000 + }, + "energy_counter_filtering": "Unknown", + "energy_coverage": "Whole" + }, + "objects": [ + { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 0, + "content_hash": "2fc64a5fdca7fe4650a619d181fd7bd7fdd41d6c60cd3a6cea698cb0120e0468", + "joules_micro": 100000, + "origin": "edge-1", + "merkle_proof": { + "siblings": [ + "d2cb01c6287de37046d43faa9af5b5655933d77ce1de682a32531194faa0af94", + "9ffbda7ad04e02979a72023bba0621b8e284fb97fd14bfb538297efa0af1984d" + ], + "direction_bits": 0, + "leaf_index": 0 + }, + "leaf_version": 2, + "energy_provenance": "OnChipCounter", + "energy_uncertainty": { + "relative_ppm": 20000, + "window_us": 1000000 + }, + "energy_counter_filtering": "Unknown" + }, + { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 1, + "content_hash": "4d7aea4625419d093fb15fc289929909918a9c8343c83e62bb5e24d0a8b67648", + "joules_micro": 110000, + "origin": "edge-1", + "merkle_proof": { + "siblings": [ + "173a1167ef7c4ad12962a800bd860d46f0ec541a952cc3d6b321ed633b1ef8a3", + "9ffbda7ad04e02979a72023bba0621b8e284fb97fd14bfb538297efa0af1984d" + ], + "direction_bits": 1, + "leaf_index": 1 + }, + "leaf_version": 2, + "energy_provenance": "OnChipCounter", + "energy_uncertainty": { + "relative_ppm": 20000, + "window_us": 1000000 + }, + "energy_counter_filtering": "Unknown" + }, + { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 2, + "content_hash": "0b2a3a072d757eaa3c4b9164eb390f2d8407ca569d17dbb0fe87fc55ec6d0d75", + "joules_micro": 120000, + "origin": "edge-1", + "merkle_proof": { + "siblings": [ + "761b110fdc442d51f136dd0ee0bb0b8f04c117ab0c8540f08b6a073f61704b38", + "a0a19a87e7e6e1d301af9504fbbee827669bf161a796df77867b159e10ea6e15" + ], + "direction_bits": 2, + "leaf_index": 2 + }, + "leaf_version": 2, + "energy_provenance": "OnChipCounter", + "energy_uncertainty": { + "relative_ppm": 20000, + "window_us": 1000000 + }, + "energy_counter_filtering": "Unknown" + }, + { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 3, + "content_hash": "640850dc08530884fc3a6f8ceab6bfadbd7a483fa74bc9048fcbdff3312182b7", + "joules_micro": 130000, + "origin": "edge-1", + "merkle_proof": { + "siblings": [ + "a4f781aa394dbd7f12967f9ef7d8cb228144112fc25ba2ae3de388f7026c1bde", + "a0a19a87e7e6e1d301af9504fbbee827669bf161a796df77867b159e10ea6e15" + ], + "direction_bits": 3, + "leaf_index": 3 + }, + "leaf_version": 2, + "energy_provenance": "OnChipCounter", + "energy_uncertainty": { + "relative_ppm": 20000, + "window_us": 1000000 + }, + "energy_counter_filtering": "Unknown" + } + ], + "outcome": "accept" + }, + { + "name": "energy_metered", + "description": "The instance's figure, 10,000,000 µJ of class Estimator.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"joules_micro\":10000000},\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0a57b9a380e6ca95c5d091c952fb61e2eb606c169349587e8c05908ad84fa58d3a11061e5016846fd19203431ecdad5a547f2dba285ab045c5b236e5aa5ec90b\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "accept" + }, + { + "name": "chain_second", + "description": "C1's second claim, its parent the first's link hash, `seq` 1.", + "earlier": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c2\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"17d748e9d8a70aedb5255e96820ab199400901ce044161288e27a3bb2f0efca6\",\"seq\":1,\"sig\":\"bed4f5075af8f8d3dd1a80623b52fa72f41fbcc943cd760278aac10e9782c1299d4961a4e717b2da8c1d8119a18c52922992f0238eca828c4119672707b1e608\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "accept" + }, + { + "name": "parent_not_held", + "description": "C1's second claim given without its first.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c2\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"17d748e9d8a70aedb5255e96820ab199400901ce044161288e27a3bb2f0efca6\",\"seq\":1,\"sig\":\"bed4f5075af8f8d3dd1a80623b52fa72f41fbcc943cd760278aac10e9782c1299d4961a4e717b2da8c1d8119a18c52922992f0238eca828c4119672707b1e608\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=5 reason=parent_not_held" + }, + { + "name": "chain_break", + "description": "A second claim whose parent names another claim than the first.", + "earlier": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c2\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"seq\":1,\"sig\":\"af0afa5a57e9a7ed7e8f2742f2eec3d89c9445c6bed779b131dd34b0e4f0f8721196694dcc9a31d1a3ec30486cd61af80621a5f5cc4491636799c80d3f91d70d\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=5 reason=chain_break" + }, + { + "name": "not_transmitted", + "description": "`attests` \"served\".", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"served\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d6521110ff80ee71a6b62ec82d6d4db79a25debddb2a049c828bcd0b85b675b4ea6eb85a635f88a21f9b549654f23ff17ce52d635112739a64b88515fca1a60d\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=4 reason=cache_transmission_not_transmitted" + }, + { + "name": "on_bidirectional", + "description": "A `bidirectional` instance: its receivers acknowledge instead.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"bidirectional\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"57f1e9fe834a9af8dbc92844e81e4dc38d3b0d4845bb5b6a129fd6b637eae1b140f20b6bb95d03ab8fedbb94cc60053414d58a6df9148a044d1d315bc07faa0c\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=4 reason=cache_transmission_on_bidirectional" + }, + { + "name": "bearer_unknown", + "description": "`bearer` \"broadcast\", outside bearer-receipts' enumeration.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"broadcast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=2 reason=field_type" + }, + { + "name": "member_extra", + "description": "A body with a `region` member.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"region\":\"XA\",\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=2 reason=unknown_member" + }, + { + "name": "bitmap_none", + "description": "No bit set: a node that sent nothing has nothing to declare.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"00\",\"sent_root\":\"e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"266d98c4689fbcfec8128aaa9410d0a0523d2af4ba01abfbcb38ade90dd34a0e5497822f66e5bd44e94799e4ffb701120bf462374bf4e445a9bf0aeb12b27000\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=4 reason=cache_transmission_bitmap_malformed" + }, + { + "name": "bitmap_past_count", + "description": "G9 with bit 9 set, past its nine objects.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":9,\"sent\":\"8040\",\"sent_root\":\"913fe0f4a2f3c9270c424641e84be0360bd45665c25cae03ebc5e00a55849b81\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5dff7f98d8a8c1c4d4794592b00068143391c297e2ba0e23cc1724dec570880cf598aed88c68cfc41113ea2759af2147c196990746f71c198ee9955a573d6c0b\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "913fe0f4a2f3c9270c424641e84be0360bd45665c25cae03ebc5e00a55849b81", + "leaf_count": 9, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "da38d1072149787653a29c3e1ed9e39870a71ae85e9efb79dcbda942fa80b4ef264ab94db2d5209ca870933d4aacaed7a0fd3a0a4acefd423e9668cf09baa209", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "0b62c71a008e5cc3c618d119e82acc4123008b6def66b46bdadfb3be507e9b7f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b2b5b7027cbd33cce89845e2f9548d0b2022922dfc1420325baf6609a0db49de", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "1197877a948ab791a6d7b5083475f3e0b07a69e6b125b3658c349be274820f1d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "51b35f908e9b0dd428d651477d1743d355edc3f03361bd9017ea43b331ca4cd5", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "650fd3d1fb6b7644321733a1566bd099f84639393609fd4d1dd5f30523dd490f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "01c01337ec0fedd18831ce88d9bb7eb4e2c822a9b3b3132e09d4bf36487580fe", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "73f4f3e0a31246fb1ba7bec1843e5fb21cdabcbc34e9893a18ab7746e09e99bb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c05915c39391e9d1282e6d85e79c84bd31a9d30cec5a7f5d5470ae2680d9372b", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 4, + "content_hash": "2fbdf7df14500b2869252ac4ba2a285f86e31b94c8fee7a2c1bc5f64fe8e2279", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f2c4d13ec147da33d07c50cf126c5dafd2f706c76084258fb26421ad412929f5", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 4, + "leaf_index": 4 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 5, + "content_hash": "2391f16f333edb691600b4d4ca2636ee902e6cdb4e73197c6f02cfbaa90bf2de", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d3b427e2cd3f85b401dae2bc16edaa48eb7cf901a403735741c9ef57f60ca934", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 5, + "leaf_index": 5 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 6, + "content_hash": "269e6572480e4d6e0311cac67d63fae49ceb8b68304d2b4f41bb5c628c69b8a5", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c9edb031caf51528b3b92da9bd5be64a569b13ccee36497223f70a49e00a9504", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 6, + "leaf_index": 6 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 7, + "content_hash": "887d0287badaf70750c04f43d7b38dfa05d9066283f7f38b1fe037e4675f10f7", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "47ce80844a7c2b380116a53d5ff05bc661171bd3c30521162103f0f13afa380a", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 7, + "leaf_index": 7 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 8, + "content_hash": "a13c52d9804742622936a26498d8464454a93bb2346a79dab09acc5ebb807daf", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "66e585e0d56ccbf85b5d1ed47963ab5b48f884fc758fc0148963acbf916d4668", + "681c08304fd53b3645597452899372b65e22da082fbff47b35328f210f726e81", + "b5d08b8a324b42b1ff373412e77fb7a735277ac62f5e08c6352316e2052f2ffa", + "c768cb22ce72641cabe82c88edf136be1adf230cb9e80702ed469c5f4124c99e" + ], + "direction_bits": 8, + "leaf_index": 8 + } + } + ], + "outcome": "reject step=4 reason=cache_transmission_bitmap_malformed" + }, + { + "name": "bitmap_short", + "description": "One byte for a leaf count of 9.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":9,\"sent\":\"80\",\"sent_root\":\"913fe0f4a2f3c9270c424641e84be0360bd45665c25cae03ebc5e00a55849b81\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8e79e67e3a7e7783e4ba9d5439b190d223d0a830ea421d67d4fda25c9fe5a94094a18c6fe4258cc86f5f6f5ed0ef5d4126131c22cb9b30b3780c9fd137f3dd00\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "913fe0f4a2f3c9270c424641e84be0360bd45665c25cae03ebc5e00a55849b81", + "leaf_count": 9, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "da38d1072149787653a29c3e1ed9e39870a71ae85e9efb79dcbda942fa80b4ef264ab94db2d5209ca870933d4aacaed7a0fd3a0a4acefd423e9668cf09baa209", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "0b62c71a008e5cc3c618d119e82acc4123008b6def66b46bdadfb3be507e9b7f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b2b5b7027cbd33cce89845e2f9548d0b2022922dfc1420325baf6609a0db49de", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "1197877a948ab791a6d7b5083475f3e0b07a69e6b125b3658c349be274820f1d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "51b35f908e9b0dd428d651477d1743d355edc3f03361bd9017ea43b331ca4cd5", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "650fd3d1fb6b7644321733a1566bd099f84639393609fd4d1dd5f30523dd490f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "01c01337ec0fedd18831ce88d9bb7eb4e2c822a9b3b3132e09d4bf36487580fe", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "73f4f3e0a31246fb1ba7bec1843e5fb21cdabcbc34e9893a18ab7746e09e99bb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c05915c39391e9d1282e6d85e79c84bd31a9d30cec5a7f5d5470ae2680d9372b", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 4, + "content_hash": "2fbdf7df14500b2869252ac4ba2a285f86e31b94c8fee7a2c1bc5f64fe8e2279", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f2c4d13ec147da33d07c50cf126c5dafd2f706c76084258fb26421ad412929f5", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 4, + "leaf_index": 4 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 5, + "content_hash": "2391f16f333edb691600b4d4ca2636ee902e6cdb4e73197c6f02cfbaa90bf2de", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d3b427e2cd3f85b401dae2bc16edaa48eb7cf901a403735741c9ef57f60ca934", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 5, + "leaf_index": 5 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 6, + "content_hash": "269e6572480e4d6e0311cac67d63fae49ceb8b68304d2b4f41bb5c628c69b8a5", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c9edb031caf51528b3b92da9bd5be64a569b13ccee36497223f70a49e00a9504", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 6, + "leaf_index": 6 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 7, + "content_hash": "887d0287badaf70750c04f43d7b38dfa05d9066283f7f38b1fe037e4675f10f7", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "47ce80844a7c2b380116a53d5ff05bc661171bd3c30521162103f0f13afa380a", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 7, + "leaf_index": 7 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 8, + "content_hash": "a13c52d9804742622936a26498d8464454a93bb2346a79dab09acc5ebb807daf", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "66e585e0d56ccbf85b5d1ed47963ab5b48f884fc758fc0148963acbf916d4668", + "681c08304fd53b3645597452899372b65e22da082fbff47b35328f210f726e81", + "b5d08b8a324b42b1ff373412e77fb7a735277ac62f5e08c6352316e2052f2ffa", + "c768cb22ce72641cabe82c88edf136be1adf230cb9e80702ed469c5f4124c99e" + ], + "direction_bits": 8, + "leaf_index": 8 + } + } + ], + "outcome": "reject step=4 reason=cache_transmission_bitmap_malformed" + }, + { + "name": "leaf_count_zero", + "description": "`leaf_count` 0 and `sent` empty.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":0,\"sent\":\"\",\"sent_root\":\"e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"989c370e74c90732e89768e6b797dd4352c7fc90f53219381b7f7a3f7cd06c38706dac9c63ba74ab822ca25430959312e27a518ebeb171d6ca7255adf1ff0a0d\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=4 reason=cache_transmission_bitmap_malformed" + }, + { + "name": "energy_zero", + "description": "A figure of 0 µJ: an instance not metered states `null`.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"joules_micro\":0},\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cf81162a9d369f9b0d54cdd3270a33ed9d0246f9b39c76db091b22cea8be9b1964dcd3f0a11cc14bdf04f5227a3309910a6e6bb7056a8466f8a44c5727375909\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=4 reason=energy_zero_figure" + }, + { + "name": "subject_other_group", + "description": "A claim about G9 checked against G.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ed0926025f1004afeea3fe718385aa741ce254c5633dd561d55310acda98128e6e401dd766b14777ffa3d67180a4c144ecaf2a874e62351d77e6242d09bd0206\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=6 reason=cache_transmission_subject_mismatch" + }, + { + "name": "by_publisher", + "description": "Signed by P, the group's key: its own sending is a transmission.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3e3bb420935195f33e73443684b20eb33275bd68994737dca6e7bf0789b1a99f4e604e6fa4304bc1fa992833808f8b32f878177f765112d9266022e0bb0a9503\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=6 reason=cache_transmission_by_publisher" + }, + { + "name": "leaf_count_wrong", + "description": "`leaf_count` 8 for G9.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":8,\"sent\":\"80\",\"sent_root\":\"51b35f908e9b0dd428d651477d1743d355edc3f03361bd9017ea43b331ca4cd5\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"db8e47b85f3652033f50bf6fe3d7655bce879524efcb326a9c8ca30415c61e9c0af5879a500d70f167f3d9e106568b6b0008144d6e6c785769b752c4da0c7e0d\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "913fe0f4a2f3c9270c424641e84be0360bd45665c25cae03ebc5e00a55849b81", + "leaf_count": 9, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "da38d1072149787653a29c3e1ed9e39870a71ae85e9efb79dcbda942fa80b4ef264ab94db2d5209ca870933d4aacaed7a0fd3a0a4acefd423e9668cf09baa209", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "0b62c71a008e5cc3c618d119e82acc4123008b6def66b46bdadfb3be507e9b7f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b2b5b7027cbd33cce89845e2f9548d0b2022922dfc1420325baf6609a0db49de", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "1197877a948ab791a6d7b5083475f3e0b07a69e6b125b3658c349be274820f1d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "51b35f908e9b0dd428d651477d1743d355edc3f03361bd9017ea43b331ca4cd5", + "c47090a9819e50bcfafb47fb73c6cf683b2a2ba378374687ef46e486a09fa3ed", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "650fd3d1fb6b7644321733a1566bd099f84639393609fd4d1dd5f30523dd490f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "01c01337ec0fedd18831ce88d9bb7eb4e2c822a9b3b3132e09d4bf36487580fe", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "73f4f3e0a31246fb1ba7bec1843e5fb21cdabcbc34e9893a18ab7746e09e99bb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c05915c39391e9d1282e6d85e79c84bd31a9d30cec5a7f5d5470ae2680d9372b", + "7380e71f2f62269829c0e909eb29aaefd254900870a15fbf703d1c9e6d8c3472", + "c38f3e5767086975c555d07cc9fdf274a589809adbe1f1e1b2122fbce7da93d1", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 4, + "content_hash": "2fbdf7df14500b2869252ac4ba2a285f86e31b94c8fee7a2c1bc5f64fe8e2279", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f2c4d13ec147da33d07c50cf126c5dafd2f706c76084258fb26421ad412929f5", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 4, + "leaf_index": 4 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 5, + "content_hash": "2391f16f333edb691600b4d4ca2636ee902e6cdb4e73197c6f02cfbaa90bf2de", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d3b427e2cd3f85b401dae2bc16edaa48eb7cf901a403735741c9ef57f60ca934", + "75c6051c692335463c031cab5fe9bd2ffc27b4273217961f059cdb7d7b2fd647", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 5, + "leaf_index": 5 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 6, + "content_hash": "269e6572480e4d6e0311cac67d63fae49ceb8b68304d2b4f41bb5c628c69b8a5", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c9edb031caf51528b3b92da9bd5be64a569b13ccee36497223f70a49e00a9504", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 6, + "leaf_index": 6 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 7, + "content_hash": "887d0287badaf70750c04f43d7b38dfa05d9066283f7f38b1fe037e4675f10f7", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "47ce80844a7c2b380116a53d5ff05bc661171bd3c30521162103f0f13afa380a", + "777754258ee345c26fe46f9f9c8267deb09f4c89148a235b4ef31f927b34c788", + "da3ff91c3d0178e56d15d502384429141676b43f3cfa826abe3bcf9d0405ff46", + "b81349cc3b834214879a36cbb0d7e77620b55778c057e66dea9fbf69d7418556" + ], + "direction_bits": 7, + "leaf_index": 7 + } + }, + { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 8, + "content_hash": "a13c52d9804742622936a26498d8464454a93bb2346a79dab09acc5ebb807daf", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "66e585e0d56ccbf85b5d1ed47963ab5b48f884fc758fc0148963acbf916d4668", + "681c08304fd53b3645597452899372b65e22da082fbff47b35328f210f726e81", + "b5d08b8a324b42b1ff373412e77fb7a735277ac62f5e08c6352316e2052f2ffa", + "c768cb22ce72641cabe82c88edf136be1adf230cb9e80702ed469c5f4124c99e" + ], + "direction_bits": 8, + "leaf_index": 8 + } + } + ], + "outcome": "reject step=6 reason=cache_transmission_leaf_count_mismatch" + }, + { + "name": "objects_not_held", + "description": "Objects 1 and 3, with only object 1's receipt held.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + } + ], + "outcome": "reject step=6 reason=cache_transmission_objects_not_held" + }, + { + "name": "root_foreign_leaf", + "description": "Objects 1 and 3 with a root over G's leaf 1 and G9's leaf 3, a hash not in G at that position.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"b9c8bfb59caadac1082cda996353d320ca5ce8a9db0b50b57bb21e641d81783d\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fd2240ce70201bd7866f7752f184d85b1b62a88774093731952bcf90e19143d3ade2d3b305d95bbefb9ddd3520079c4eacb0387f649e170519cbcfeb9b720608\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=6 reason=cache_transmission_root_mismatch" + }, + { + "name": "context_not_group", + "description": "Checked against G's object receipt 1 in place of the group receipt.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + } + ], + "outcome": "reject step=6 reason=context_mismatch" + }, + { + "name": "without_group", + "description": "No group held: steps 1 to 5 pass and the claim stops there, counted nowhere.", + "earlier": [], + "claim": "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "context": null, + "objects": [], + "outcome": "unchecked" + } + ], + "placements": [ + { + "name": "confirmed_active", + "description": "C1 under the operator's head.", + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}" + }, + "outcome": "confirmed origin=https://operator.example key_id=c1 role=cache/serve" + }, + { + "name": "confirmed_least_origin", + "description": "C1, listed under both heads: the least origin in byte order.", + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "confirmed origin=https://operator.example key_id=c1 role=cache/serve" + }, + { + "name": "confirmed_relay", + "description": "C5 holds `live/relay`, a serving role settlement places.", + "key": "bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}" + }, + "outcome": "confirmed origin=https://operator.example key_id=c5 role=live/relay" + }, + { + "name": "retired_at_until", + "description": "C4, retired, for an item at its `until`.", + "key": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}" + }, + "outcome": "confirmed origin=https://operator.example key_id=c4 role=cache/serve until=2026-11-03T12:00:00Z" + }, + { + "name": "retired_past_until", + "description": "C4 for an item a millisecond past its `until`.", + "key": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "at_ms": 1793707200001, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}" + }, + "outcome": "refused reason=key_retired origin=https://operator.example until=2026-11-03T12:00:00Z" + }, + { + "name": "revoked", + "description": "C3 is revoked.", + "key": "74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}" + }, + "outcome": "refused reason=key_revoked origin=https://operator.example compromised_since=2026-11-01T06:00:00Z" + }, + { + "name": "revoked_beats_confirmed", + "description": "C6: revoked in one head, active in the other.", + "key": "9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "refused reason=key_revoked origin=https://operator.example compromised_since=2026-11-01T06:00:00Z" + }, + { + "name": "revoked_other_role", + "description": "C7: revoked under `live/relay`, active with `cache/serve` elsewhere: no role outlives a revocation.", + "key": "ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "refused reason=key_revoked origin=https://operator.example compromised_since=2026-11-01T06:00:00Z" + }, + { + "name": "not_granted", + "description": "C8 holds `delivery-gap` alone.", + "key": "e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}" + }, + "outcome": "refused reason=authority_not_granted origin=https://operator.example" + }, + { + "name": "not_listed", + "description": "C2, the fresh key, is in no log.", + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "unconfirmed reason=server_not_listed" + }, + { + "name": "no_heads", + "description": "C1, and no head named.", + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "at_ms": 1793707200000, + "heads": {}, + "outcome": "unconfirmed reason=server_not_listed" + }, + { + "name": "head_not_held", + "description": "C1; the operator's head with a broken signature, the other listing C1 active: it might revoke C1.", + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"07561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "unconfirmed reason=key_log_not_held origin=https://operator.example" + }, + { + "name": "head_other_origin", + "description": "The other origin's revision given as the operator's head.", + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "unconfirmed reason=key_log_not_held origin=https://operator.example" + }, + { + "name": "revoked_beside_unheld", + "description": "C6; the other head broken, the operator's held and revoking C6: step 1 before step 2.", + "key": "9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e", + "at_ms": 1793707200000, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"076876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "refused reason=key_revoked origin=https://operator.example compromised_since=2026-11-01T06:00:00Z" + } + ], + "verdicts": [ + { + "name": "publisher_and_cache", + "description": "P declares sat, C1 its multicast mesh-c1 with objects 1 and 3. R1 reconciles over sat, R2 over mesh-c1, R3 over both: R3 alone holds the group whole, and C1 is credited for objects 1 and 3 only.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"a0\",\"received_root\":\"06a32eff5a6f40e637ad954ab29868429d2e0fe8a90e4dbdefdb5c7ac519b60d\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"79aa9e9169a280d499e95b20313058a126559b6c7ef5fd5e59aeab0f7dc5e2c80568641bc8caf8652114f6c3b59eb71cf2b6504c9a225ac36311a4dfa0f89506\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0f5fb18ba032e08f6dc6490ef5a57710a42a38e67d686caec1063ca69eb6a3ddd0ddaa36576a615ed5517e308c8ede87a4ae251df25f5615cdc8d912352e620f\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"a0\",\"received_root\":\"06a32eff5a6f40e637ad954ab29868429d2e0fe8a90e4dbdefdb5c7ac519b60d\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"aa92e04f3507f31a125286d1fb22393f8884ec84c4237d6aef566acd73d8fba25386a7fc0c947bacb8ca084fc6f884d3cef287f8d88dd33c8cc9fbd4fd34360f\",\"signer_id\":\"did:key:z6Mkg49NtQR2LyYRDCQFK4w1VVHqhypZSSRo7HsyuN7SV7v5\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"c29fa5b129228384a0a15e80a5fb5c9a354d2367a5663e6597fb606f2edd4547\",\"seq\":1,\"sig\":\"37b52a6639b20eb9c974ab8834c87e209eaea65c5d55818f3f53f2e4d13ea5830e64016349e496bdd6ef5275dd14053a494aebef4eb6c4b58661f82ed8819d0b\",\"signer_id\":\"did:key:z6Mkg49NtQR2LyYRDCQFK4w1VVHqhypZSSRo7HsyuN7SV7v5\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted", + "counted", + "counted" + ], + "status": "reconciled", + "sinks": 3, + "whole": 1, + "received_by": [ + 2, + 2, + 2, + 2 + ], + "bearers": [ + { + "bearer_id": "https://bearer.example/sat", + "bearer": "unidirectional", + "sinks": 2, + "energy": null, + "per_receiver_upper_bound": null + } + ], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 2, + "received_by": [ + [ + 1, + 2 + ], + [ + 3, + 2 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "per_instance_credit", + "description": "R3 holds object 1 over mesh-c1 and object 3 over sat: C1 is credited for object 1, not for 3, which R3 received over another instance.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cbc5d95866c2aca4fdc3352b349883f9e63d22fc57623d1febdfde91ed676b157fe352d50c58e61465ab77f9e0c02ab9dacac1902c5a296dc5b9226982b59a03\",\"signer_id\":\"did:key:z6Mkg49NtQR2LyYRDCQFK4w1VVHqhypZSSRo7HsyuN7SV7v5\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"10\",\"received_root\":\"ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"98b801d6d2ef4396b71f6c2eec3ef4654f9f5c7d81c14b09ca2f197feddedd84\",\"seq\":1,\"sig\":\"050b7d8259a60125354dfa1973e6aa5ce8605817ded57b5f92c64883ffbc236c7b4345e2b28b27c845faf2d01c1cb3319e5a45499d21f57bc95c9da5ee28240e\",\"signer_id\":\"did:key:z6Mkg49NtQR2LyYRDCQFK4w1VVHqhypZSSRo7HsyuN7SV7v5\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 0, + 1, + 0, + 1 + ], + "bearers": [ + { + "bearer_id": "https://bearer.example/sat", + "bearer": "unidirectional", + "sinks": 1, + "energy": null, + "per_receiver_upper_bound": null + } + ], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 1, + "received_by": [ + [ + 1, + 1 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "cache_only_reconciled", + "description": "Reconciliations only over the cache's instance: counted for it, and the group is reconciled.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d22081ba31a676d7f7617a60a817542e233a10cbe3a2e835e2d18af40b2d9b2b71698ec73ba6d8f47645046601f91e4f30d6041e3655772bd61dd1a37496610a\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ], + "status": "reconciled", + "sinks": 2, + "whole": 0, + "received_by": [ + 0, + 2, + 0, + 1 + ], + "bearers": [ + { + "bearer_id": "https://bearer.example/sat", + "bearer": "unidirectional", + "sinks": 0, + "energy": null, + "per_receiver_upper_bound": null + } + ], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 2, + "received_by": [ + [ + 1, + 2 + ], + [ + 3, + 1 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "cache_declared_only", + "description": "No declaration of P's; C1's instance stands and no one reconciles: the group is published, the instance beside it.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "statement_transmitted_cache_only", + "description": "\"Transmitted over multicast\" offered when only a cache's multicast instance stands: refused, as the publisher sent nothing over it.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": { + "transmitted": "multicast" + }, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": "reject reason=bearer_not_declared" + } + }, + { + "name": "instance_taken", + "description": "C1 names sat, P's instance: C1's claim is set aside, and P's declaration and the reconciliation over it stand.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f08ff89250bc7df8745919c4850c1dc7ab9dfae5445502a40efa1eff168e498bcac80e62cca1e4165d103074559d38bd04e11c793c418cb9d9848438943b1c00\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"80\",\"received_root\":\"7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1426431949e29d48593be7e35ead5ca6a4b6551b91a83a1559d800a5f36df78cc91bcce1c15ba076935518caee063864ff9266bb26cb8565889491b286871809\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "declared", + "set-aside reason=bearer_contradicted", + "counted" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 1, + 0, + 0, + 0 + ], + "bearers": [ + { + "bearer_id": "https://bearer.example/sat", + "bearer": "unidirectional", + "sinks": 1, + "energy": null, + "per_receiver_upper_bound": null + } + ], + "caches": [], + "sink": null, + "assertion": null + } + }, + { + "name": "instance_taken_contradicted", + "description": "P's two declarations of sat differ and are both set aside; C1's claim of sat is set aside too.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"98ee50cbfc167271c63b819036bde11c7d586242039c27919cbc3ccfc3006004\",\"seq\":1,\"sig\":\"b97d3b2078c173e2fe047771a2ac204dd3d910306edbd3dbe1d62c1a9a6f2971655261a236cbe964273eaf0bb6dfd535e2265955f8e207de37c7fe61867d570f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f08ff89250bc7df8745919c4850c1dc7ab9dfae5445502a40efa1eff168e498bcac80e62cca1e4165d103074559d38bd04e11c793c418cb9d9848438943b1c00\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "set-aside reason=bearer_contradicted", + "set-aside reason=bearer_contradicted", + "set-aside reason=bearer_contradicted" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [], + "sink": null, + "assertion": null + } + }, + { + "name": "two_caches_one_instance", + "description": "C1 and C2 name one instance: both set aside, and a reconciliation over it is contradicted, not undeclared.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-x\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"603e987affb8e13c39645e6c9bf01cb4ebf86e9a96d5323db561caac2586e705020e863a35517d9e51af1e399a2748ba992a981c64f04c34e58052029a014e01\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-x\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5156c42007beeaf092b622373ee93af09af3e379156fda25a77dfe5569f5f359d1a76963ec13725ea16ee581136566c81a73304d58b480b0b3b022f9df88f50d\",\"signer_id\":\"did:key:z6MkqGC3nWZhYieEVTVDKW5v588CiGfsDSmRVG9ZwwWTvLSK\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-x\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9b0c5f7bf1aef8f19cf907ee0b93f80acc5ce86f56e17151bc42f5cc6c6a8545797b338cee45daf786b624e165dc4437c25ebbde960db7d246c93117d5ea110c\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "set-aside reason=bearer_contradicted", + "set-aside reason=bearer_contradicted", + "set-aside reason=bearer_contradicted" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [], + "sink": null, + "assertion": null + } + }, + { + "name": "same_claim_twice", + "description": "C1's two claims of mesh-c1 with one body and different `issued_at`: one instance.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:05:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"17d748e9d8a70aedb5255e96820ab199400901ce044161288e27a3bb2f0efca6\",\"seq\":1,\"sig\":\"1ca40a74d28e6acb9f194e7ee4402cd66e471439cde477695cb326d8d83a07c9fd2694257a0f61ede86993bbb388fbbdb2ecac8b27cb1df32c8e0215dfe0c807\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "cache-declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "cache_contradicts_itself", + "description": "C1 states mesh-c1 sent object 1, then 1 and 3: both set aside.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8260314c08c7f7a2d1d617f66c8950407d7a49b08f144505fcd14f918a7ef569672013ddc384825a3443c36e859dad45256e18a9284ec8978a359ea219700a0d\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"c2f39a782a1c202f109d8b4f8dceecd2d2a1e0b0f8573f39459841293f256fde\",\"seq\":1,\"sig\":\"06e44a9aad0dddc479111d6cda5d527ee56b0a9274aaadb6b061e99f0f93201d4dffec576e7eb6cdd5309d3b91f4e9f3868f4d3623d06303b6912d0bd4d1ef0f\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "set-aside reason=bearer_contradicted", + "set-aside reason=bearer_contradicted" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [], + "sink": null, + "assertion": null + } + }, + { + "name": "undeclared_instance", + "description": "A reconciliation over an instance nobody declared.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/unknown\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"60a53bccb6c46ec8b65f634ece804ad54d59aabf342bca09f298cd0090963dcb52387f10525990620e69eafb850e70fd9eb3e8e984a373110bb5c0da2f639501\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "set-aside reason=bearer_not_declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "bearer_class_differs", + "description": "R1 says unidirectional over C1's multicast instance.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d70f6b54e20667ff8fa5f4dc72a7f681719e846fe97b908efca0b20f1297d37b8b74ae6fe14b6cffe10a367036e4aa1b0d853b6146e074f5b15559b402e24c0b\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "set-aside reason=bearer_contradicted" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "self_reconciled", + "description": "C1 reconciles over its own instance: a party's statement that it received what it sent.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"17d748e9d8a70aedb5255e96820ab199400901ce044161288e27a3bb2f0efca6\",\"seq\":1,\"sig\":\"79255662eab9b32caba175fd6e3c10576ccb628e61e2d1d1db9c55e6b7a334126f9ac022bcdec153ba8a9a85f4b6093689a4a975527c3bd356f63265b9a9e805\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "set-aside reason=self_acknowledged" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "duplicate_sink", + "description": "R1 reconciles twice over mesh-c1: one sink, its bits joined.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"099ecb7c231f4fb6cc3ef03f7f3964b24ddf4cdf498ffa7d8b42928fa5f15f824d88c477b6b29ae452e0e9f8964b88cc0438edf4014c8b6bacae5e2c9b36ec02\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"10\",\"received_root\":\"ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"de1a5738d91a89d73ebace5306133bfa172bac747d8c51d505ff1c597111137b\",\"seq\":1,\"sig\":\"97efd4f77fdc369ca28164afff422579aef66e51c626d0f737327b676ad5869e693f5f423a0120e8a5f674932c0f426979b0ac0629b8443b90da05ff9a5b1a0e\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "counted", + "joined reason=reconciliation_duplicate_sink" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 0, + 1, + 0, + 1 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 1, + "received_by": [ + [ + 1, + 1 + ], + [ + 3, + 1 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "confirmed_keys_only", + "description": "`count_only` holds R1 alone: R2's reconciliation is not counted.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"099ecb7c231f4fb6cc3ef03f7f3964b24ddf4cdf498ffa7d8b42928fa5f15f824d88c477b6b29ae452e0e9f8964b88cc0438edf4014c8b6bacae5e2c9b36ec02\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"10\",\"received_root\":\"ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"54f4419c44b393b27004a065a615ef3a03c75d70653927ad9c134ba196535cd9b45548a203b28bd96ed59d939854f964757331fe0fae535dc0e2728a9fe18a08\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "counted", + "set-aside reason=sink_not_confirmed" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 0, + 1, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 1, + "received_by": [ + [ + 1, + 1 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "servers_placed", + "description": "Instances of C2 (in no log), C3 (revoked) and C4 (its claim a second past its `until`) stand: each placement is reported and the counts are unchanged.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c2\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e7565abfb191bf0dd1a419676a26b776f28b8c8c40a81b25f71fe7ceaeadda3d2417ac7844b0a31fd938d717c37c9d6ebeaf6caf8d853fec45609d8f5c337608\",\"signer_id\":\"did:key:z6MkqGC3nWZhYieEVTVDKW5v588CiGfsDSmRVG9ZwwWTvLSK\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c3\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5cc386f5e9ff5c717f294b8dd0602e76466f7f41ad43d0c115e76191d1e7a8a6dd0921f442efb9853c6a71d50467460eb237b458dca3785b08dc8a2c8578800e\",\"signer_id\":\"did:web:operator.example#c3\",\"signer_pubkey\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c4\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T12:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cb5cf5ca15d9ae4d7c3886abf07968ffb57c2f3db022cebeb604385c48d8676a5c01094c47338d6236b53a2e29cf8773f397a97ef7c4e23fd418643d9333430f\",\"signer_id\":\"did:web:operator.example#c4\",\"signer_pubkey\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c3\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cbcb1576894e0559647770162a83efdd5d4aebe322aced89a4f912d267f196599c8fa8bce7240c6cd0c5f073496ff75e397eccf166edefab78321b06364b1b03\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "cache-declared", + "cache-declared", + "counted" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 0, + 1, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c2", + "bearer": "multicast", + "server": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "sent": [ + 1 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + }, + { + "bearer_id": "https://bearer.example/mesh-c3", + "bearer": "multicast", + "server": "74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9", + "placement": "refused reason=key_revoked origin=https://operator.example compromised_since=2026-11-01T06:00:00Z", + "sent": [ + 1 + ], + "sinks": 1, + "received_by": [ + [ + 1, + 1 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + }, + { + "bearer_id": "https://bearer.example/mesh-c4", + "bearer": "multicast", + "server": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "placement": "refused reason=key_retired origin=https://operator.example until=2026-11-03T12:00:00Z", + "sent": [ + 1 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "retired_cache_latest_claim", + "description": "C4 states mesh-c4 twice with one body, a minute before its `until` and a second past it: one instance, placed at the later claim's `issued_at` (§4.4), so refused.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c4\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:59:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"65eb2730c451e57936434ab313eee59482b0e8ac91bde23f1e0541044e831f394af2389afd8f28368b024bd1bb47eb5a9d3d7c84357ef556c2cf20473c7da902\",\"signer_id\":\"did:web:operator.example#c4\",\"signer_pubkey\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c4\",\"energy\":null,\"leaf_count\":4,\"sent\":\"40\",\"sent_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T12:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"6a44c69ddf8ab3f7e9b8b6eed3352d0bf299eb52330bc8e0149d14b15663cf54\",\"seq\":1,\"sig\":\"f969c357a66d66d62726dab63ebe1601a8f6650b63f3a44a8cf7e919c2475eca94bd74c220040d486c68b1ef540843192c6504d95e5c6ded98b7ce4c6a465c01\",\"signer_id\":\"did:web:operator.example#c4\",\"signer_pubkey\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "cache-declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c4", + "bearer": "multicast", + "server": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "placement": "refused reason=key_retired origin=https://operator.example until=2026-11-03T12:00:00Z", + "sent": [ + 1 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "head_not_held", + "description": "The operator's head does not verify: the cache's placement is unconfirmed, and nothing else changes.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"099ecb7c231f4fb6cc3ef03f7f3964b24ddf4cdf498ffa7d8b42928fa5f15f824d88c477b6b29ae452e0e9f8964b88cc0438edf4014c8b6bacae5e2c9b36ec02\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"07561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "counted" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 0, + 1, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "unconfirmed reason=key_log_not_held origin=https://operator.example", + "sent": [ + 1, + 3 + ], + "sinks": 1, + "received_by": [ + [ + 1, + 1 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "sink_own_cache_instance", + "description": "The verifier is a sink on mesh-c1, which only C1's claim declares.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": { + "bearer": "multicast", + "bearer_id": "https://bearer.example/mesh-c1" + }, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": "cache-declared", + "assertion": null + } + }, + { + "name": "energy_bound_before", + "description": "C1's instance metered at 10,000,000 µJ with no key counted: the bound is the whole figure.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"joules_micro\":10000000},\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0a57b9a380e6ca95c5d091c952fb61e2eb606c169349587e8c05908ad84fa58d3a11061e5016846fd19203431ecdad5a547f2dba285ab045c5b236e5aa5ec90b\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 0, + "received_by": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "energy": { + "joules_micro": 10000000, + "class": "Estimator" + }, + "per_receiver_upper_bound": 10000000 + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "energy_bound_after", + "description": "The same with three keys counted: ⌈10,000,000 / 3⌉ = 3,333,334.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"joules_micro\":10000000},\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0a57b9a380e6ca95c5d091c952fb61e2eb606c169349587e8c05908ad84fa58d3a11061e5016846fd19203431ecdad5a547f2dba285ab045c5b236e5aa5ec90b\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d22081ba31a676d7f7617a60a817542e233a10cbe3a2e835e2d18af40b2d9b2b71698ec73ba6d8f47645046601f91e4f30d6041e3655772bd61dd1a37496610a\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0f5fb18ba032e08f6dc6490ef5a57710a42a38e67d686caec1063ca69eb6a3ddd0ddaa36576a615ed5517e308c8ede87a4ae251df25f5615cdc8d912352e620f\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ac32e3e6af1443cf623d3201d050827ea920eb3fafd464aa974e6cd183a754affb2f7e44e13cf95ff6d2a39edc0adb05451154817284ab9dfa778c738a979c08\",\"signer_id\":\"did:key:z6Mkg49NtQR2LyYRDCQFK4w1VVHqhypZSSRo7HsyuN7SV7v5\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "counted", + "counted", + "counted" + ], + "status": "reconciled", + "sinks": 3, + "whole": 0, + "received_by": [ + 0, + 3, + 0, + 3 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 3, + "received_by": [ + [ + 1, + 3 + ], + [ + 3, + 3 + ] + ], + "energy": { + "joules_micro": 10000000, + "class": "Estimator" + }, + "per_receiver_upper_bound": 3333334 + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "energy_unmetered", + "description": "`energy` null: no bound, never 0.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"50\",\"received_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d22081ba31a676d7f7617a60a817542e233a10cbe3a2e835e2d18af40b2d9b2b71698ec73ba6d8f47645046601f91e4f30d6041e3655772bd61dd1a37496610a\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "cache-declared", + "counted" + ], + "status": "reconciled", + "sinks": 1, + "whole": 0, + "received_by": [ + 0, + 1, + 0, + 1 + ], + "bearers": [], + "caches": [ + { + "bearer_id": "https://bearer.example/mesh-c1", + "bearer": "multicast", + "server": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "sent": [ + 1, + 3 + ], + "sinks": 1, + "received_by": [ + [ + 1, + 1 + ], + [ + 3, + 1 + ] + ], + "energy": null, + "per_receiver_upper_bound": null + } + ], + "sink": null, + "assertion": null + } + }, + { + "name": "other_class", + "description": "A timeliness claim among the verdict's claims: checked against nothing here.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fbbb1d1a5ce5f06ac496655e441df3bba1bf45058d74235f9c8eba1fac1cf3a3f7a0145899c5bf511addbad0c915be6e85ca9171cd2dcd14fa58f9460b955c0e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": { + "objects": [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + "claims": [ + "reject step=6 reason=context_mismatch" + ], + "status": "published", + "sinks": 0, + "whole": 0, + "received_by": [ + 0, + 0, + 0, + 0 + ], + "bearers": [], + "caches": [], + "sink": null, + "assertion": null + } + }, + { + "name": "group_refused", + "description": "The group's signature is broken: nothing is derived.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "764690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "outcome": "refuse reason=signature_verify_failed" + } + ], + "tallies": [ + { + "name": "met_by_bearer_and_peers", + "description": "R1 reconciled over sat, P's; R2 over mesh-c1, C1's; R3 acknowledges C1 and R4 the fresh C2. Every key held object 1 by the deadline.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "at_target", + "description": "R4 has no evidence: 250,000 ppm against a target of 250,000.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 250000, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 3, + "misses": 1, + "miss_ppm": 250000, + "missing": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "one_ppm_over", + "description": "The same against 249,999.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 249999, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 3, + "misses": 1, + "miss_ppm": 250000, + "missing": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "rounded_up", + "description": "Population R1–R3 with R3 missing: ⌈1,000,000 / 3⌉ = 333,334, above a target of 333,333.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9" + ], + "miss_target_ppm": 333333, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "6808bc3bf1c421c75e4dbaaf1ef318363180455ea50991e1faabd816ca46d5fc", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 3, + "hits": 2, + "misses": 1, + "miss_ppm": 333334, + "missing": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce" + ], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "ack_end_at_deadline", + "description": "R1's window ends at the deadline; its last microsecond is before it.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc06d6d005e5f060000b07c005e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa91fdd69eae50e082e6193efd1a9e288a8cffa2bce3b1c79675a05b6a4c68232699b2773b182500c6473b3d0003f8b32d588e455b660c16f65cdb1821bc5f20602", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_last_us_at_deadline", + "description": "The window ends a microsecond after the deadline: its last microsecond, `end` − 1, is the deadline itself (settlement §2: `end` is excluded).", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc16d6d005e5f060001b07c005e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa941866e3ae9d7579b4c481cb17e02f08856c2aeef5e937b06849964f916ebcefe01d21e1d5c9d94a34acfba10fc777d7c408f94d399a709001b6b592ee61cbb0c", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_end_two_past", + "description": "The window ends two microseconds after: its last microsecond rounds up to the deadline's next millisecond.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc26d6d005e5f060002b07c005e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa92722727399469ee1c253eea9a47f31e05e8a7fb84a735e441f6d07bd9e0014e542333d8801bb391c4ca96f2ca349341957da20c8f289910a2e4101ff72a7b406", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "issued_at_at_deadline", + "description": "R1's reconciliation signed at the deadline.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9b9534e010a4372bf89f62fb37943c23422d3a439b61965225847fa81e26b87d69dc0a7f20c717e7da144a7fa8dc35674d4f72b98cceaa746e33a26d43388e02\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "issued_at_fraction_past", + "description": "Signed a microsecond after: rounded up to the next millisecond.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T12:00:00.000001Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dce9fedb108dc882b038433b64a7c16da8fa7f669c19374322ac54c2598a7d36e974f7d4f9f69e157a9465edbf67d9ab2654ca90174aa35f234915c089d1d803\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "issued_at_sub_second", + "description": "Signed at .2 s against a deadline at .5 s: read at 200 ms, not at the next second.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T12:00:00.2Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5489ca23476821c2cecac5d65d2fbd509cb2fabac7d7f484bf7de4094f76796ce0c0aa664ec93cadc231f4039031c7f25222db730746148c372ba36a79d6a70d\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200500, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200500, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "issued_at_offset", + "description": "Signed at the deadline written with an offset of +02:00.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T14:00:00+02:00\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9cb0d0a3733d2e04a7a26e5adf0673bac4d1a3d4ce6cef8fa4f51aa0d4ef46d794ab36eaeacb1995a1e5c1448f1eb1f954e2164c36e9e373b2493e87c4596e0f\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "issued_at_leap", + "description": "Signed at second 60 of the minute before: the deadline itself.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:59:60Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b39cd8b7f11ee445544bb650a0b749bab813c7ad96456b3553427786792a4ad3bfd5ee177be1de12e7bc96c50a5a5845be7939f8ec0e0e3bf3baa6df8a6fcf05\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "clock_unset", + "description": "R1's reconciliation signed at 1970-01-01T00:00:00Z, before the group: set aside, and a miss.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"1970-01-01T00:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f8987ee65a7dd97f0c341d4ccf730692c78f7dd6ec8a5f6cb4853fcdb96365a92593657d3354db40fc7edc8bd66fbd1288fc098e6ba0934f07779d593194a30e\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [ + { + "key": "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "source": "reconciliation", + "reason": "held_before_group" + } + ], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "reconciliation_rounds_to_start", + "description": "R1's reconciliation signed at 09:59:59.9995Z, against G's start at 10:00:00Z: its instant rounds up to the start, but its whole seconds are before it (timeliness §2), so it is set aside, and a miss.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T09:59:59.9995Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"98a40105acf43eb45de4de2f529de4c5c98ec9e697603a98cc02acf71431d171584814bf097e59f6fd1baf68a7c0b6ff13a30b01cae3f23b0e637a451123d30d\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [ + { + "key": "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "source": "reconciliation", + "reason": "held_before_group" + } + ], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "declared", + "counted" + ] + } + }, + { + "name": "ack_before_group", + "description": "R3's window ends at the group's start: its last microsecond is before the group.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec02546535c5f0600006855535c5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa995014cd7a6efe9e2260ad2c5411de458e285478cc51400116e3fa836be86ca3fc3b2898f96e1f01da54b350e99ca19069fb648cbbab6294ab1e1361c64ef7e03", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "6d0b980d69bb0406073e5e5c03c524bbe711c25989fce72793b5d003b1d8f349", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce" + ], + "set_aside": [ + { + "key": "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "source": "8402eb00ba3e74d88ca56bd5c3ed3aa82605673598dc2a703d730e81a72d10a1", + "reason": "held_before_group" + } + ], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "before-group" + ], + "records": [], + "claims": [] + } + }, + { + "name": "two_peers_complete", + "description": "R1 holds bytes [0, 1000) from C1 and [1000, 2000) from C2, both windows before the deadline: a hit credited to both, sole to neither.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000e803000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e54106453ad1045c6f3aed113d9adf5d93ee79531167378a248f59f37f32aef601610fd3f6e6e811b92eeb83d4bd820fc9aa6192b1a8897600f152a2a20a8bc8291ca0f309b0e8286cfc5c81f83da99a8032f6d3e160a9f33d338c2999a685bc24103", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000e803000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f048075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc0ae3de05d5f060000f14ce05d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000e803000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410850ec86520eb755667a86044192724dbe960f161da2c10fbf3104e65232f4c5d0852d9f29a3977b1e35cc414be1e7dde33b7f2319ff605a544752e6859af906f6c31017295659986269004bd7a4dd0d1df1e17ab31e34171e97d7d3e38b70703", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6de803000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 1, + "sole": 0 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 0 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "two_peers_late", + "description": "The same with the second window's last microsecond past the deadline.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000e803000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e54106453ad1045c6f3aed113d9adf5d93ee79531167378a248f59f37f32aef601610fd3f6e6e811b92eeb83d4bd820fc9aa6192b1a8897600f152a2a20a8bc8291ca0f309b0e8286cfc5c81f83da99a8032f6d3e160a9f33d338c2999a685bc24103", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000e803000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f048075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc26d6d005e5f060002b07c005e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000e803000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410850ec86520eb755667a86044192724dbe960f161da2c10fbf3104e65232f4c5d592c541278894b1868ff51d92d63fec4bb2257bb6a7ce4b419519b0f4b1d776c8a7255e69ac966115f49ca9f28c707965635d6569d4b1f52b294700422e9f707", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6de803000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "two_peers_late_reversed", + "description": "two_peers_late with its records given latest first: read in order of `end`, the late window completes the object and R1 misses; read as given, the earlier window would.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f048075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc26d6d005e5f060002b07c005e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000e803000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410850ec86520eb755667a86044192724dbe960f161da2c10fbf3104e65232f4c5d592c541278894b1868ff51d92d63fec4bb2257bb6a7ce4b419519b0f4b1d776c8a7255e69ac966115f49ca9f28c707965635d6569d4b1f52b294700422e9f707", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6de803000000000000d007000000000000" + ] + }, + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000e803000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e54106453ad1045c6f3aed113d9adf5d93ee79531167378a248f59f37f32aef601610fd3f6e6e811b92eeb83d4bd820fc9aa6192b1a8897600f152a2a20a8bc8291ca0f309b0e8286cfc5c81f83da99a8032f6d3e160a9f33d338c2999a685bc24103", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000e803000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_tie_by_digest", + "description": "R1 acknowledges object 1 whole from C1 and from C2 in windows of one `end`, the record of the greater digest given first: ordered by digest, the lesser completes the object and its upstream alone is credited.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f048075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9e68ee4b1519b14c9290a3be470e415671da954f1b22f186f8ab184ecf470f2296197854fb2c9a370ebd398138a931064523ffd9537a9d0b6f83f36f9cbfbb601", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b07", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "partial_never_whole", + "description": "R1 acknowledges bytes [0, 1999) only: a part is not the object.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000cf07000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e54101bd78ae9e5626186fa2c8543d69ddee40d55e8ed86a72b239dfba09bbe6e296c85621e8e2dbcf09ace8d13ae6ed90d52f50800d8d2c9d8261915e471d9dea037c25a76515f32a7f6213733ed9f958ab69e01c710fa8f77491f88e0e6e471de03", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000cf07000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "declaration_not_evidence", + "description": "C1's declaration naming R1: the server's word, never the receiver's.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010202884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9640cec86aa9e39271e4e8a030a7a90f84003b954a94999d20ca3150dc13028e07e3875e5d8fa11804493a7440cf211816e73c7a221c46e225f5d913136ccb509", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "declaration" + ], + "records": [], + "claims": [] + } + }, + { + "name": "outside_population", + "description": "R9, outside the population, acknowledges and reconciles: the figures are unchanged and its reconciliation is not counted.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"553ae74d3e6d4c127fbd5522c4676228de074180a86015c055f09bbb102c262cfa77d2af2b02e02e838d8255a085a5b146d7b0ea1ef954047c2db4772a606f0d\",\"signer_id\":\"did:key:z6MkhctUcGzdTWV4B6TYMiG1JzkeyveTpRrvG2p1Unxt1qDg\",\"signer_pubkey\":\"2f0a7b29f53652005cd4720a3fe7acd08c85a4e29cd6f48d1905e276dac6ffef\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b2f0a7b29f53652005cd4720a3fe7acd08c85a4e29cd6f48d1905e276dac6ffefc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96843d9e448bfdc961c7ba81a73227f58b9a7bf0a293e5163881e66e2f4880542de89c905faa836858c0384fe95906fa50cdc1cc151a6aade814f3c34ec45bf04", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted", + "set-aside reason=sink_not_confirmed" + ] + } + }, + { + "name": "ack_bad_signature", + "description": "R1's record with a broken signature.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=bad_signature" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_items_mismatch", + "description": "An item list that does not recompute against its entry.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b07", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000cf07000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=items_mismatch" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_items_missing", + "description": "An entry's item list not given.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b07", + "items": [] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=record_missing" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_truncated", + "description": "R1's record a byte short.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=truncated" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_trailing_byte", + "description": "R1's record with a byte after its signature.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b0700", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=malformed" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_unknown_version", + "description": "R1's record with a version byte of 2.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131020102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b07", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=unknown_version" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_window_empty", + "description": "R1's record whose window starts at its end, signed.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd006ab9dc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa98d116cde2de2282a32e46579279f17b10215a67a3342d7488ca5fe1662d57ed2e8bf00b00db20784eefad1d5834eab5320c7fd41a229969629de5a7fdc366f09", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=ack_invalid" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_self", + "description": "R1's record naming R1 as its own upstream, signed.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "5744413101010248075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9819f265c833c3de4ac929b84ce49ceaf55ba5195f6580159b4c1231d661cfba39afdcd0b2fdff95ca3b654f85711a2e4d5c174f0542144be05f016a84d14760b", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=self_acknowledged" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_key_small_order", + "description": "A record whose downstream is the identity point, a key of small order.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b0100000000000000000000000000000000000000000000000000000000000000c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9ffcf37ee14c20e3657b50e66b1547c806fb497fd1f684cfea62f200a57683ddab2105fb9a2eb8095888f19b8cab0bb810989b6b25952b201f52937fd838a8904", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=bad_key" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_items_invalid", + "description": "R1's item list a byte short of a whole item.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa97c9fa149562402dcff31a976c4ddd714554d81e18e0f2ca889f91a0e544414ba47e260bcd911aac51e8feb35582b48f9760b9323fb6670b080e65db2a2608b07", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d0070000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [ + "reject reason=items_invalid" + ], + "records": [], + "claims": [] + } + }, + { + "name": "ack_any_class", + "description": "R1's item of object 1 in an ancillary entry: the tally reads content hashes and ranges, whatever the class.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9bf7c51e7a7a84e868e30956f8cd5bcad60d6a074490b49e83c5b9d4c543da26383a52b098ba6efac82d406c2fb20719b117040edc17c2e5df5c9341fd755bf07", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "bit_not_sent", + "description": "R1 holds object 1 over mesh-c1, which C1 says sent object 3 only: a hit, credited to no server.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"10\",\"sent_root\":\"ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5cf934acd11ee51fafbf382fa897c28d82b46e4ec0db00b878ad9beb023fe8a220788f919a807189471aaa902beafa295fe15070a5ef6e6fc9ce2be686124e03\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"099ecb7c231f4fb6cc3ef03f7f3964b24ddf4cdf498ffa7d8b42928fa5f15f824d88c477b6b29ae452e0e9f8964b88cc0438edf4014c8b6bacae5e2c9b36ec02\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [], + "unattributed": 1, + "acknowledgements": [], + "records": [], + "claims": [ + "cache-declared", + "counted" + ] + } + }, + { + "name": "set_aside_not_evidence", + "description": "R1's reconciliation over an instance nobody declared is counted nowhere, and is no evidence.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/unknown\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"60a53bccb6c46ec8b65f634ece804ad54d59aabf342bca09f298cd0090963dcb52387f10525990620e69eafb850e70fd9eb3e8e984a373110bb5c0da2f639501\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [ + "set-aside reason=bearer_not_declared" + ] + } + }, + { + "name": "revoked_server", + "description": "R1 acknowledges C3, whose key is revoked: a hit, and C3 refused.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "5744413101010274f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa948075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9b2ffb1fa9997f1ffd03d9fecd2980fdf05505c5d75eb4da70def29277fcb20f28dc3a1891c1f182b4206665567aba74e714aa18a64d7641e59fdbd998b06f805", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9", + "placement": "refused reason=key_revoked origin=https://operator.example compromised_since=2026-11-01T06:00:00Z", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "relay_server", + "description": "R1 acknowledges C5, a relay.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a648075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa91706447e86d11cf797b45b3d624ba2ca6aa67c698d338b30704f127f67b88dd54154fa3453490efbe8678fd943b8bb4bcc4ecb6d8ab790170ff5290e5ef6d709", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6", + "placement": "confirmed origin=https://operator.example key_id=c5 role=live/relay", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "publisher_direct", + "description": "R1 acknowledges P itself.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c977873748075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9eaed3b419db99f8ddeb7ceccd2dcca1bd3d17f15a2c01461937405b9d79867180005638c59a058e69f801564c0d884c0b0e1c97b499c3b958f851bcf5da82701", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "not_granted_server", + "description": "R1 acknowledges C8, which the operator's head lists with `delivery-gap` alone: a hit, and C8 refused.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa99d5777dca5c2b18d17fd3d36c381101c1897e96b53451d0878b3bad30954c4e10166a8004929feabfc558a6592acac6aa6c64e33f8e159cdc72c7ab304e4f00c", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b", + "placement": "refused reason=authority_not_granted origin=https://operator.example", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "retired_server_in_time", + "description": "R1 acknowledges C4 with a window ending ten minutes before C4's `until`: a hit, and C4 confirmed until then.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "5744413101010258936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9705a2b1daa46f50462f26617e2e8c80395251a10d954a212924b7f072a7433eec8c1aee74e0094c7dee15164b18e093707823147fa99548097ae25e714ec2601", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "placement": "confirmed origin=https://operator.example key_id=c4 role=cache/serve until=2026-11-03T12:00:00Z", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "retired_server", + "description": "R1 acknowledges C4 with a window ending thirty seconds past C4's `until`, against a deadline a minute past it: a hit, and C4 refused.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "5744413101010258936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd403137025e5f0600807346025e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9c29c3d5efd240d9b0fc57edec951728748eb1a243d3ef4d44fc35923f438c28e27a0a871a176c2a810e0bbd76aab648cfa37230b375d78b598be93bd87406400", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707260000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707260000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "placement": "refused reason=key_retired origin=https://operator.example until=2026-11-03T12:00:00Z", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "retired_server_latest", + "description": "R1 acknowledges C4 in a window ending ten minutes before C4's `until`, R2 in one ending thirty seconds past it, against a deadline a minute past it: two hits, and C4 placed at the later, refused.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "5744413101010258936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215ddc027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa9705a2b1daa46f50462f26617e2e8c80395251a10d954a212924b7f072a7433eec8c1aee74e0094c7dee15164b18e093707823147fa99548097ae25e714ec2601", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "5744413101010258936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9403137025e5f0600807346025e5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa94f5eb274de2c04bce4c77d9fef8e322b213c73de17f562e5b451631ca865863aaeaebff64db93b718b35538c85cd7b87d4915c088997d940245fd8d7365ad80b", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707260000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "f2ce340b7f293c72f58887327bd70bef28158029c0323c21bc2fd8ef3db21707", + "deadline_ms": 1793707260000, + "deadline_claim": null, + "n": 2, + "hits": 2, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c", + "placement": "refused reason=key_retired origin=https://operator.example until=2026-11-03T12:00:00Z", + "hits": 2, + "sole": 2 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [] + } + }, + { + "name": "head_not_held", + "description": "The operator's head does not verify: the figures of met_by_bearer_and_peers, every node's placement unconfirmed.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"07561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "unconfirmed reason=key_log_not_held origin=https://operator.example", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=key_log_not_held origin=https://operator.example", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "single_receiver_missed", + "description": "One key, a miss: 1,000,000 ppm, above the greatest target.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "miss_target_ppm": 999999, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "c896778d3c820fae23773c68cf67f86c38136c4c4136cc00c7fa90f7b39a2b72", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [], + "claims": [] + } + }, + { + "name": "target_zero_met", + "description": "Every key a hit against a target of 0.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "target_million", + "description": "A miss target of 1,000,000.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 1000000, + "outcome": "refuse reason=target_invalid" + }, + { + "name": "deadline_max", + "description": "The deadline at the last instant.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 253402300799999, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 253402300799999, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "deadline_past_max", + "description": "A deadline a millisecond past the last instant.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 253402300800000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=target_invalid" + }, + { + "name": "region_country", + "description": "The region a country code.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA", + "population_digest": "d1ee50ca4ac325208cd014a7bd9321b2b3c486ead9c15f8d7928903e2dc9853a", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "region_two_char", + "description": "A subdivision of two characters.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-AB", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-AB", + "population_digest": "88fc884b1a60556c1095f40af2e6bdf2447a356630582cba6eca544178769a37", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "region_three_char", + "description": "A subdivision of three characters.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-ABC", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-ABC", + "population_digest": "9f2eab555f6787bd570e56584150713a466fb8a965dbba978ea69c7322ac56ad", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "same_keys_other_region", + "description": "met_by_bearer_and_peers's keys stated for XA-2: another digest.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-2", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-2", + "population_digest": "0d3ea486729d1c356e13e5cc354054c87c6805e35f6fe8713f4f58e3368d2a23", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "region_lowercase", + "description": "The region in lowercase.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "xa-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=population_invalid" + }, + { + "name": "region_no_subdivision", + "description": "A country code and a hyphen, with no subdivision.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=population_invalid" + }, + { + "name": "region_four_char", + "description": "A subdivision of four characters.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-ABCD", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=population_invalid" + }, + { + "name": "population_empty", + "description": "No key.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [], + "miss_target_ppm": 0, + "outcome": "refuse reason=population_invalid" + }, + { + "name": "population_unsorted", + "description": "The first two keys swapped.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=population_invalid" + }, + { + "name": "population_duplicate", + "description": "A key twice.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=population_invalid" + }, + { + "name": "object_out_of_range", + "description": "Object 4 of a group of four.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 4, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=object_out_of_range" + }, + { + "name": "object_not_verified", + "description": "No envelope for object 1: its length is unknown.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=object_not_verified" + }, + { + "name": "group_start_unreadable", + "description": "GX, whose `group_start` is not a date-time.", + "group": { + "kind": "group", + "track_alias": 4, + "group_id": 1, + "root_hash": "65b2369ddea196aa172b4dbe010177493b5b2559f7821fa9e10504baf94dac56", + "leaf_count": 4, + "joules_total": 0, + "group_start": "not a time", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "1f2c376d72cd60c8da5f720f279256a95b29235f8678ff9aaaaddbf20dc014d00d538ef8b2fc15a35f9c0cb56ef7fe87a0454f1aba69e70c820d82be6d715609", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 4, + "group_id": 1, + "object_id": 0, + "content_hash": "2cb97706910d123b6e6e3a589e980b5cc220f2a977abeb9e14bef8e129ae28d7", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "8d31fa8633ada066430097aba8d0e24275ae1b73ebbbdeef045575c0d85a65ee", + "4df75828a3e592f8cd5359e4b02bb07d2059d647fc56675f557735ff786345d7" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 4, + "group_id": 1, + "object_id": 1, + "content_hash": "7bfdc26ebb5e03dc485d4ced3be5906bd02c0b4406927ac38089d7822bb55bd6", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "df95ebd676fc1a90c6b44a3b091e50faed59d1e93565c609bf6e863e9aa8d0db", + "4df75828a3e592f8cd5359e4b02bb07d2059d647fc56675f557735ff786345d7" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb" + }, + { + "receipt": { + "kind": "object", + "track_alias": 4, + "group_id": 1, + "object_id": 2, + "content_hash": "b46aee1f06e6c453bf2dc875261005bc16993f8d1a6d65470ecb363023cb802a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ab3c4224399bafcef267bae16a84ee4687778deff39a87ad93420752018c7ab9", + "bd79c43bafc640d2fe6e5a8db55421050d028661b15fa508c78ac385e2b2edf4" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 4, + "group_id": 1, + "object_id": 3, + "content_hash": "77a9c8a01d053b0f2a5c169047aa5e796a47e74df17f550cfddf3c920676e864", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "523a63a4336b857d0b1378cbbf30c313071508c1c9ec297d174a7a603524504a", + "bd79c43bafc640d2fe6e5a8db55421050d028661b15fa508c78ac385e2b2edf4" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=context_invalid" + }, + { + "name": "group_refused", + "description": "The group's signature is broken.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "764690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=signature_verify_failed" + }, + { + "name": "holdings_record_hit", + "description": "R4's holdings record of G a second before the deadline, holding object 1, and no other evidence: a hit no server is credited for.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [ + "5748443101eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163000001a1a147ca18000001a1a17eb898000000018d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa000000000000000040040da2f83adbec0d472fd35c3e90b64f516b24b6d9fa37f404b7f2d64b334a13fbb8363e2093cf2cce788c878ae0faf3cb24337728468bb6f7c1366d45b1864040f" + ], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "e6b906ea3632ca55e6a9f119d1aa2d106d90fba8a00c129488b5da60c3276021", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 1, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [], + "unattributed": 1, + "acknowledgements": [], + "records": [ + "stands" + ], + "claims": [] + } + }, + { + "name": "holdings_record_before_group", + "description": "R4's record dated a second before G's start.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [ + "5748443101eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163000001a1a0d9ed18000001a1a110db98000000018d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa000000000000000040040e789dbab48d712dc038471180dc0b09e63e816e39a8eaba5fe9ff77614d8133ddf9371be449aac376c9e6c4cdb6e899a25655b7d94ba5f3f67f18762752a3a05" + ], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "e6b906ea3632ca55e6a9f119d1aa2d106d90fba8a00c129488b5da60c3276021", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [ + "reject reason=held_before_group" + ], + "claims": [] + } + }, + { + "name": "holdings_record_contradicted", + "description": "R4's two records at one instant with different digests.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [ + "5748443101eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163000001a1a147ca18000001a1a17eb898000000018d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa000000000000000040040da2f83adbec0d472fd35c3e90b64f516b24b6d9fa37f404b7f2d64b334a13fbb8363e2093cf2cce788c878ae0faf3cb24337728468bb6f7c1366d45b1864040f", + "5748443101eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163000001a1a147ca18000001a1a17eb898000000018d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa000000000000000040060c4d553f54cd0579440c568e7a4e7085ed7f5903425d51515e1ddbedde4733eee5ef9319df0f209724822791a650f30edfaf8574901abb95d17827ecf17c26b0f" + ], + "index": 1, + "deadline_ms": 1793707200000, + "deadline_claim": null, + "region": "XA-1", + "population": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "refuse reason=miss_target_exceeded", + "region": "XA-1", + "population_digest": "e6b906ea3632ca55e6a9f119d1aa2d106d90fba8a00c129488b5da60c3276021", + "deadline_ms": 1793707200000, + "deadline_claim": null, + "n": 1, + "hits": 0, + "misses": 1, + "miss_ppm": 1000000, + "missing": [ + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "set_aside": [], + "servers": [], + "unattributed": 0, + "acknowledgements": [], + "records": [ + "set-aside reason=holdings_contradicted", + "set-aside reason=holdings_contradicted" + ], + "claims": [] + } + }, + { + "name": "deadline_from_timeliness", + "description": "The deadline given as P's timeliness claim, whose entry for object 1 has `by_ms` at D.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": null, + "deadline_claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":0},{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0fbdcbe53fefc8c554fcbc3b399cf85c281bec0fd2b5ef204e2bfba8547db9e3857534001c1f56cffb4d2059c0152efa3ecb868d46a03c00297dd14628fee30b\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": { + "outcome": "met", + "region": "XA-1", + "population_digest": "56f1f05b72229c15fb62e69253e6319e2bc318bb6d51b32043e3fdc4a50038e7", + "deadline_ms": 1793707200000, + "deadline_claim": "18290edfb9ce751ff0ea315b2f46cf1598a78543d13d22af36f7011b5c9cce0f", + "n": 4, + "hits": 4, + "misses": 0, + "miss_ppm": 0, + "missing": [], + "set_aside": [], + "servers": [ + { + "key": "884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b", + "placement": "confirmed origin=https://operator.example key_id=c1 role=cache/serve", + "hits": 2, + "sole": 2 + }, + { + "key": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0", + "placement": "unconfirmed reason=server_not_listed", + "hits": 1, + "sole": 1 + }, + { + "key": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "placement": "publisher", + "hits": 1, + "sole": 1 + } + ], + "unattributed": 0, + "acknowledgements": [ + "read", + "read" + ], + "records": [], + "claims": [ + "declared", + "cache-declared", + "counted", + "counted" + ] + } + }, + { + "name": "deadline_claim_no_entry", + "description": "P's timeliness claim with an entry for object 0 alone.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": null, + "deadline_claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3da739198f16f0349e4eb54146838ea16261ea674c611938803010ff9b230332a6108b0b70b791d44be14cd48732497455bcbf697216f8f60c9022cbabdb8d0b\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=deadline_not_stated" + }, + { + "name": "deadline_claim_other_group", + "description": "P's timeliness claim about G9, refused against G at jwp-receipts §3.1 step 6.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": null, + "deadline_claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"1197877a948ab791a6d7b5083475f3e0b07a69e6b125b3658c349be274820f1d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"013fae9bb71b5194b3886b7867ea2b9b7f7de93a1ed3f781a996f65b649d67ab45e19ca3a68d07475a5a99d003665158a314820a59d5ca6bae9ca903b1e33300\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"subject_type\":\"receipt\"}", + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=deadline_not_stated" + }, + { + "name": "deadline_claim_fallback_not_derived", + "description": "P's timeliness claim whose entry for object 1 falls back to G's object 2, whose envelope is held and is not derived from object 1: refused at timeliness §4.3 step 8 against what the verifier holds.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000cd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de0" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"energy\":null,\"leaf_count\":4,\"sent\":\"50\",\"sent_root\":\"bd8f0d5236c701c0569c9590e7f4b3e39412b177ec5aa2c64a793d2bb88dbba0\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-11-03T11:00:05Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"704faac5d091fad19619db816eb483c26d2f25fb49fa1b30aada79e24a039372d51e1b717c5572e48ce3dc60ed051dcab32c95a08039a075aaaacf5edfd4b10a\",\"signer_id\":\"did:web:operator.example#c1\",\"signer_pubkey\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/mesh-c1\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d0f46eedee10647f66bed9a3f8df28a5ae81e78780412e741e8ab0cecac6d22df7d57059ad8cf59981a8a4f3d85b2763e93b5f2c9c712416671435a0bc94be06\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + }, + { + "record": "57444131010102a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163c027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa920d5fde79726b9aa24229914be9fc5b1a9357006ec8b1abf97e95c21dd290118b51273b7fc521373ec1592eb066eed23a45b43006ff8cdb684be6797461c0c06", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "index": 1, + "deadline_ms": null, + "deadline_claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1\",\"group\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"leaf_index\":2,\"value_ppm\":400000},\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"780286ea2db306e92e52b089c3d50a12523d24dece7f9219a7195a5dcacbcb88e95b024cae15d12330417f8afb8b18d23a487ef6216a9c05e95ddd911dba6a0d\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "region": "XA-1", + "population": [ + "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9", + "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163" + ], + "miss_target_ppm": 0, + "outcome": "refuse reason=deadline_not_stated" + } + ], + "lines": [ + { + "name": "timeliness_line_from_ack", + "description": "timeliness §6.3's lines for object 1, with R3's acknowledgement of C1 given: on time, at its window's last microsecond rounded up.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [], + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fbbb1d1a5ce5f06ac496655e441df3bba1bf45058d74235f9c8eba1fac1cf3a3f7a0145899c5bf511addbad0c915be6e85ca9171cd2dcd14fa58f9460b955c0e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "index": 1, + "outcome": [ + { + "holder": "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "held_ms": 1793706600000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "name": "timeliness_line_from_reconciliation", + "description": "The same from R1's counted reconciliation over sat, at its `issued_at`; R2's over an instance nobody declared gives no line.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"360d66b0e432505a085fd89d0a91113d2e551ec5b26a579d211a43af11380a2df22bf278a73c6d586c869ba65cc321fe3ba0839d6964da6e1fadffe8c5342c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc3c449a8497c111876aee227b4f7858c5f4c0b3897ce8f5c31fd84cd2305343ea5be00a48f5942d0ddfe0a943c5bab69331aa782729519ed79331f39cc9ad06\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"multicast\",\"bearer_id\":\"https://bearer.example/unknown\",\"leaf_count\":4,\"received\":\"40\",\"received_root\":\"f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9868292b306bbed8a7c49ccd4093e72fa8375db9f41b1bf52db277d818e0e0337685d64e2c203535e057d5ba4f00e07fe88d6ac51a0c2ffeff10ee97b896d10f\",\"signer_id\":\"did:key:z6MkknhhwAGsRrcTTthPSsBbQtrNX6CMqt4poro5jdP6uCue\",\"signer_pubkey\":\"5e212c0980e4b39fc09721134aa02109374edfd260c0d3d03cb501c8d65457a9\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [], + "records": [], + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fbbb1d1a5ce5f06ac496655e441df3bba1bf45058d74235f9c8eba1fac1cf3a3f7a0145899c5bf511addbad0c915be6e85ca9171cd2dcd14fa58f9460b955c0e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "index": 1, + "outcome": [ + { + "holder": "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "held_ms": 1793705400000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "name": "timeliness_line_record_without_envelope", + "description": "No envelope held: R4's holdings record of object 1, a second before the deadline, is on time, as timeliness §6 reads it; R3's acknowledgement of object 1 gives no statement, the object's length unknown.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [ + "5748443101eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163000001a1a147ca18000001a1a17eb898000000018d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa000000000000000040040da2f83adbec0d472fd35c3e90b64f516b24b6d9fa37f404b7f2d64b334a13fbb8363e2093cf2cce788c878ae0faf3cb24337728468bb6f7c1366d45b1864040f" + ], + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fbbb1d1a5ce5f06ac496655e441df3bba1bf45058d74235f9c8eba1fac1cf3a3f7a0145899c5bf511addbad0c915be6e85ca9171cd2dcd14fa58f9460b955c0e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "index": 1, + "outcome": [ + { + "holder": "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163", + "held_ms": 1793707199000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "name": "timeliness_line_fallback_other_group", + "description": "Object 1's entry falls back to G9's object 1. R3 acknowledges the primary; R4's only record is of G9, holding the fallback a second before the deadline: R4 has a line, replaced.", + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "e3db0ca41e53b12c8995b8ffa8fed2f6fb580999526d640a34cdebf5ac58deda", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "774690cb96fd4d27623a9b41772692cdcfbeb256b5880d718d33583d54806c7419873a1ec5120301c7df78eacabef473049bd919d29df3c0e2df5ddfc6c8e304", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "982fbf44c4243a2083ae9fa3c0a6334840be516ae8f73e0a59c4b647b4136288", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "7a3fd2a50c4b5e40f836b9e01c9eef92dfea4d6191002fc2c807528f413e99d6", + "882a8d50f16c0caea26c61094097a24df9c01b584c5c76755ddda9b68c44d133" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d32070000bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "ec70245c54d48c5860bca85984b8e48868a83493623ebfaf569c778b94fc59d1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ed4fb79b72a19c52ec4991e9513b94b401d135e2c7f0cd9162b70dbaa26f24b5", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "f3c3ab5642e10d3329c3d0d09ec4bd5765885110725c5728a3fcb86afc1a86a1", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "587563c2a1c90c049033854701300050861feacf26c5f237d1f9af6e00611d98", + "d9715c5030bcb395cc839c321ef311230dce7643c0bf32c0cae5c5a0697ad9f1" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d007000000000000f79c55b86a06c3dc8852c36cb730ed9794cd8961b5dbd7fe76fbc1eb049e5410686ff2bed474b616b2acff0a2f0c4ca6dd0e218401fb38a9474aff5be7c0baa96caeef0c6d7784df02499c1abde84010be0374432aa0a758f5c4fcac39910efba835b265017f61e52922002945ab54486a838f2e65d6650a1e2cdcc50d425804", + "items": [ + "be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d0000000000000000d007000000000000" + ] + } + ], + "records": [ + "5748443101eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163000001a1a147ca18000001a1a17eb8980000000120e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4000000000000000900400051c10450a5a07537dec3cb22d35fd5a795fe82a786475bb6f55bd28a65a00c24c4fd9fbf9eca567471cb95db321a3a5bc4633d0f00718df72b406dfdef539006" + ], + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"be608c9d8ee3565ad6746ef2bf5d5962ab21fb6e81d086627249c991a03e3f6d\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"1197877a948ab791a6d7b5083475f3e0b07a69e6b125b3658c349be274820f1d\",\"group\":\"20e9ad452eafb1db6a167c09e116a381ba58e7c0fb2093bccdf804df768940f4\",\"leaf_index\":1,\"value_ppm\":400000},\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a949c1792e2091d6ea82b0cdff2f4bd6143516135bd90e28b9a960fef959ffe5fe4bc82be7d384f23d367703355e2a2080519f67aa976af25cb17fa11b904f06\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"8d6790600419c990abb9e277ef9da2a002ce0fdb4f9be9d4907a99a20aa61fa0\",\"subject_type\":\"receipt\"}", + "index": 1, + "outcome": [ + { + "holder": "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "held_ms": 1793706600000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + }, + { + "holder": "eb2cf13bf7ae3a5f614168a1fb09272d39771ec4b8523727815e466caf8ee163", + "held_ms": null, + "fallback_ms": 1793707199000, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "name": "timeliness_line_fallback_same_group", + "description": "GF's object 1 falls back to its object 2, a floor of it, both envelopes held. R1 reconciles both over sat; R3 acknowledges the fallback alone: R1 on time with both held, R3 replaced.", + "group": { + "kind": "group", + "track_alias": 5, + "group_id": 1, + "root_hash": "667151e1a2056ba9daa78e0f94365b7fd7161116fd590b6f32f6f15961560932", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T10:00:00Z", + "group_end": "2026-11-03T10:00:10Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "a005c86b0be800864a6258eb3ce84212298a01927f1b5df3107f797f7283d397b7ec4a3398a8c744521bab98a17319fbb40a0ac937a2f9428294d2cd9bd85c0d", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 5, + "group_id": 1, + "object_id": 0, + "content_hash": "d3799699e26c4d2f7681a6a01933dd21a4f87736b665858d94edd2e2f1e91064", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c1b3ae646deb73c965c8ee7ac7ed3d00982d89a9717278a38cd5a58abdf5294b", + "14de2a571582e1bb7fb3ba7948320b1114257b4578aa16680cf809128049c54f" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 5, + "group_id": 1, + "object_id": 1, + "content_hash": "b8c5c5e7f0103246ca40552d165c5f58c0fe7daea82a216ca8ffbb415eb9c58b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "40e027618aa3988a10c71c28c72a3b4122bc51d0d311a77d78f48d66e606f123", + "14de2a571582e1bb7fb3ba7948320b1114257b4578aa16680cf809128049c54f" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d320700004ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5f" + }, + { + "receipt": { + "kind": "object", + "track_alias": 5, + "group_id": 1, + "object_id": 2, + "content_hash": "54e29ca34670089e9ffec54f2123a6d35fed86638ce1f9e3bd74c2893f9d72dc", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "c519485151d19022e268b06db828a739ccbff419b67357295160915de4e1ff3a", + "53e8c0a9ccc5246f50ef3531a0c8e77eaaac6a9c0aac6d551f5241f4218443a4" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2262386335633565376630313033323436636134303535326431363563356635386330666537646165613832613231366361386666626234313565623963353862222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d520600005de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd0" + }, + { + "receipt": { + "kind": "object", + "track_alias": 5, + "group_id": 1, + "object_id": 3, + "content_hash": "98d3134c512215ebac79a7e1a5658d6997b63eee3ba37d95d3c117469171535b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9e8c80b6a14c48739539381de6b9b56bb1c5801c7465d31da7b10382fbd36354", + "53e8c0a9ccc5246f50ef3531a0c8e77eaaac6a9c0aac6d551f5241f4218443a4" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"297587f2d7391236e7f5ccf92548f86a7d649899be842f633050f45ea42b71ce97397c33e2a40ee905ce7fc266ecadc6ebde167db54f32d3d858dcf23de58d00\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"aacbb6f21ad34ccf7e4e77af75eeed40f075006599a715540a2d863f6a73d03e\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"received\",\"bearer\":\"unidirectional\",\"bearer_id\":\"https://bearer.example/sat\",\"leaf_count\":4,\"received\":\"60\",\"received_root\":\"629299c261315c9a0373ba8ca2c0496a027585f4754e3e125486a915634f9146\"},\"class\":\"reconciliation\",\"issued_at\":\"2026-11-03T11:30:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"87b46331236f733cc1d264535901befe4f2f4f8e6383898d58ea7f9948288cc20c7fa5ca7e0513fa2998dece44721c238380b0055d710129d6026ff6b6891a08\",\"signer_id\":\"did:key:z6MkjJRuJtMxfTErK55eWeV7FQLLxpsvzSUQ3AC6DmdNPFja\",\"signer_pubkey\":\"48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd\",\"subject\":\"aacbb6f21ad34ccf7e4e77af75eeed40f075006599a715540a2d863f6a73d03e\",\"subject_type\":\"receipt\"}" + ], + "sink": null, + "assertion": null, + "count_only": null, + "heads": { + "https://operator.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c3\",\"key\":\"74f85cda34d1c27c4621484731e91579c3d9c6cfc0d94b281aa11e9162058aa9\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c4\",\"key\":\"58936604abda112bc94933569c82f8d0cc0ddf92a3f8329f2f448f7f484a594c\",\"may_sign\":[\"cache/serve\",\"cache-transmission\"],\"status\":\"retired\",\"until\":\"2026-11-03T12:00:00Z\"},{\"compromised_since\":null,\"id\":\"c5\",\"key\":\"bed7d2ab668da3efad613998f06f7abf7875f3a6b7677a9f3ce947d77d7760a6\",\"may_sign\":[\"live/relay\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":\"2026-11-01T06:00:00Z\",\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"live/relay\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"c8\",\"key\":\"e92eb6054fe9bc682a1bcf3b759f65ab38a4cfbd81c4d1f3342e4cc9cded8b0b\",\"may_sign\":[\"delivery-gap\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"5042946b1913952e78a460f98e7a9c12608802a7f283dcead0aeac52fdcdc88d\",\"origin\":\"https://operator.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"e2fe2a39b7326642827d6d82d497622cd6c297fe78270eaa436b01f086b6f3cb\",\"seq\":0,\"sig\":\"06561835c6548b9dec7746edd8748bbd4149894b62b10add2a9152e818ca609c73070b1c6d449cd6412865ab17b89ab9ac027b16df9f521e8afbcf0e03f8960d\",\"status_max_age_s\":3600}", + "https://other.example": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"c1\",\"key\":\"884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c6\",\"key\":\"9109db55f79797a396462fb895c2adcea7e8683c2f3056c07a5475155537b73e\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"c7\",\"key\":\"ee45ecb9aca01a0abd83ef56dd985c8c874e6e7f4aebcedf20bd8d88c2a0add7\",\"may_sign\":[\"cache/serve\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"826bb9de627d79c4f9285f9e106fd4ccc013af39af3f5319e6c402ebab2053e5\",\"origin\":\"https://other.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"fec1428673f6afe89264b3807344ae8b269d125a503855202687db5a7128579f\",\"seq\":0,\"sig\":\"066876436ee285c580f65203666a296ae92be9c9e5dc0eb15b9474ad5b87570650650944c52da5d37ad0894c24350c21e357689e270c9483de28f36d57c4c304\",\"status_max_age_s\":3600}" + }, + "acknowledgements": [ + { + "record": "57444131010102884b8857f4eaa1613c61504db34d4beaf346517a0e31de3cddd4d9b4201d9d0b17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080cec027aadc5d5f0600006ab9dc5d5f060000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000d0070000000000009e8c80b6a14c48739539381de6b9b56bb1c5801c7465d31da7b10382fbd36354261811c7a0c3696497b53c8a8cef549b10c7b042501bc9ce2dc3a1b5dc87d8a1e303f7c105448a885def15b6cda03cb2384bfe32095a8dc8c79a6a38a6316d0a735f38fbb047a4f7d1dd94c3b8e2a1ad569051f2b34a60ed71877925efbf2d04", + "items": [ + "54e29ca34670089e9ffec54f2123a6d35fed86638ce1f9e3bd74c2893f9d72dc0000000000000000d007000000000000" + ] + } + ], + "records": [], + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793707200000,\"content_hash\":\"b8c5c5e7f0103246ca40552d165c5f58c0fe7daea82a216ca8ffbb415eb9c58b\",\"decay\":[{\"at_ms\":1793707200001,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"54e29ca34670089e9ffec54f2123a6d35fed86638ce1f9e3bd74c2893f9d72dc\",\"group\":\"aacbb6f21ad34ccf7e4e77af75eeed40f075006599a715540a2d863f6a73d03e\",\"leaf_index\":2,\"value_ppm\":400000},\"from_ms\":1793700000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T10:00:30Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"05d6ddc96d79d4ce9f45dafd4e321feff23ffe451536ef91f0073cbc444e3ad1a04132b97b339c05681045b8f22ce205a3b77c902b77fec8bfe29a54ec7d4c02\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"aacbb6f21ad34ccf7e4e77af75eeed40f075006599a715540a2d863f6a73d03e\",\"subject_type\":\"receipt\"}", + "index": 1, + "outcome": [ + { + "holder": "17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce", + "held_ms": null, + "fallback_ms": 1793706600000, + "outcome": "replaced", + "value_ppm": 400000 + }, + { + "holder": "48075a597e721a156e2e0799de5cc0c5324dc6e7eaf1cdd46250868ec53215dd", + "held_ms": 1793705400000, + "fallback_ms": 1793705400000, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ] +} diff --git a/wai/live-conformance/cache_authority_verify.py b/wai/live-conformance/cache_authority_verify.py new file mode 100644 index 000000000..5ddf0c131 --- /dev/null +++ b/wai/live-conformance/cache_authority_verify.py @@ -0,0 +1,940 @@ +#!/usr/bin/env python3 +"""Independent verifier of the cache authority corpus (extensions/cache-authority.md). + +Written from the extension's text. It shares no code with wai-rs, which generates the corpus, +and never runs it. It takes from the second implementations of the texts this extension builds +on what they define: group and object receipts, leaves and link hashes from the JWP corpus's +(`../jwp-conformance/jwp_verify.py`, jwp-receipts §2.2, §3); a claim's steps 1 to 5 from the +claim corpus's (`../claim-conformance/claim_verify.py`, jwp-receipts §3.1, whose steps 2 and 4 +hold §5.1 and §5.2 here); a transmission's and a reconciliation's step 6 and the root over +leaves from the bearer corpus's (`bearer_verify.py`, bearer-receipts §4.3, §5.3); an +acknowledgement and its item lists from the settlement corpus's (`settlement_verify.py`, +settlement §3.6); a key log revision held under rules 1 to 3 from the signer corpus's +(`../signer-conformance/signer_verify.py`, jwp-receipts §7.2); the held-at statement's rule, a +holdings record held to its group, a timeliness claim against its group and timeliness lines +from the timeliness corpus's (`timeliness_verify.py`, timeliness §2, §4.3, §6); and region codes +from the rung price corpus's (`rung_price_verify.py`, rung-price §2). Everything this extension +adds is written here: + +- §4.4: placing a server key by the heads a relying party names; +- §5.3: a cache-transmission claim against its group and the object receipts held; +- §7: the bearer verdict with the caches' instances beside the publisher's, the credit per + instance, the status, a statement offered, a sink's own instance and the energy bound; +- §8: the population, the tally's checks, the held-at statements of acknowledgements and counted + reconciliations, the count, its servers and the outcome; +- §9: timeliness lines that read acknowledgements and counted reconciliations too. + +For every case it requires the outcome the corpus states, field for field; that every reason of +§11's table appears in the corpus; then it mutates copies of the corpus, one defect each, and +requires every copy to fail; and it drops each of its own checks in turn and requires the corpus +to catch the weakened verifier. A bound no vector carries is checked directly. + + python3 cache_authority_verify.py + +Exit status 0 only if every case verifies, every mutated copy fails, every weakened verifier is +caught and every direct check holds. Python 3.8 or later; the `cryptography` package, which the +claim verifier imports. +""" + +import copy +import hashlib +import json +import os +import re +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +for d in ("claim-conformance", "jwp-conformance", "signer-conformance"): + sys.path.insert(0, os.path.join(HERE, "..", d)) +import claim_verify as CV # noqa: E402 +import jwp_verify as JV # noqa: E402 +import signer_verify as SG # noqa: E402 +import bearer_verify as BV # noqa: E402 +import settlement_verify as SET # noqa: E402 +import timeliness_verify as TV # noqa: E402 +import rung_price_verify as RP # noqa: E402 + +HV = TV.HV # the holdings corpus's reader, which the timeliness verifier loads + +EXTENSION = os.path.join(HERE, "..", "extensions", "cache-authority.md") +JWP_RECEIPTS = os.path.join(HERE, "..", "extensions", "jwp-receipts.md") +SETTLEMENT = os.path.join(HERE, "..", "extensions", "settlement.md") +LAST_INSTANT = 253_402_300_799_999 # §2, timeliness §2: 9999-12-31T23:59:59.999Z +MAX_TARGET = 999_999 # §8.2 step 2 +MAX_KEYS = 1 << 20 # §8.1: 1,048,576 keys +PPM = 1_000_000 +POPULATION = b"wai:cache-population\x01" # §8.1 +SERVING = ("cache/serve", "live/relay", "live/compositor", "live/ingest") # §4.4, in order +DECLARATION = 2 # settlement §3.1 `mode` + +# A weakened run drops one of these checks (see `WEAKENINGS`); None checks everything. +DROPPED = None + + +def drops(name): + return DROPPED == name + + +def reasons_table(): + """§11's codes, in order, each with where the table says it is raised.""" + text = TV.text_of(EXTENSION) + at = text.index("\n## 11. Reasons") + end = text.find("\n## ", at + 1) + rows = text[at:end].splitlines() + return [(r.split("`")[1], r.split("|")[2].strip()) for r in rows if r.startswith("| `")] + + +def need(ok, reason): + """jwp-receipts §3.1 step 6.""" + if not ok: + raise CV.Reject(6, reason) + + +def positions(hexbits): + """§2 *Bitmap*: the positions whose bits are set, object i being bit 0x80 >> (i mod 8) of + byte ⌊i / 8⌋.""" + bits = bytes.fromhex(hexbits) + return [i for i in range(8 * len(bits)) if bits[i // 8] & (0x80 >> (i % 8))] + + +def ceil_div(a, b): + return -(-a // b) + + +# ------------------------------------------------------------------ §8.3: instants + +def issued_ms(t): + """§8.3: a claim's `issued_at` as jwp-receipts §2.4.3 reads it, rounded up to the millisecond + (1000 × its seconds + ⌈f × 1000⌉, f its written fraction), and its whole seconds.""" + s = JV.seconds(t) + m = re.match(r"\.([0-9]+)", t[19:]) + digits = m.group(1) if m else "" + num, den = int(digits or "0"), 10 ** len(digits) + if drops("rec_second"): + ms = 1000 if num else 0 + elif drops("rec_round"): + ms = num * 1000 // den + else: + ms = ceil_div(num * 1000, den) + return 1000 * s + ms, s + + +def ack_ms(end): + """§8.3: an acknowledgement's window's last microsecond, `end` − 1, rounded up to the + millisecond, and its whole seconds.""" + last = end if drops("ack_last_us") else end - 1 + return (last // 1000 if drops("ack_round") else ceil_div(last, 1000)), last // 1_000_000 + + +def before(word_s, start, check): + """timeliness §2's rule for a statement before its group.""" + return not drops(check) and TV.before_group(word_s, start) + + +# ------------------------------------------------------------------ §4.4: placing a server key + +_HEADS = {} + + +def head(origin, text): + """A head held for `origin` (jwp-receipts §7.2 rules 1 to 3), or None.""" + k = (origin, text) + if k not in _HEADS: + try: + r = SG.parse_revision(text) + SG.check_held(r, origin) + except (SG.Stop, TypeError): + r = None + _HEADS[k] = r + return _HEADS[k] + + +def later(at_ms, until): + """§4.4: `at_ms` is later than a retired entry's `until` when `at_ms` > `until` × 1000.""" + u = SG.secs(until) * 1000 + return at_ms >= u if drops("until_inclusive") else at_ms > u + + +def roles_of(e): + """The serving roles an entry's `may_sign` holds, in §4.4's order.""" + if drops("serving"): + return list(e["may_sign"]) + return [r for r in SERVING if r in e["may_sign"]] + + +def place(key, at_ms, heads): + """§4.4: the placement of the key `key` (hexadecimal) for an item at `at_ms`, by the heads + named, keyed by origin, as §4.4 writes it.""" + origins = sorted(heads, key=lambda o: o.encode(), reverse=drops("least_origin")) + held = [(o, head(o, heads[o])) for o in origins] + listed = [] + for o, r in held: + e = None if r is None else next((e for e in r["keys"] if e["key"] == key), None) + if e is not None: + listed.append((o, e)) + first = [] + revoked = next(((o, e) for o, e in listed if e["status"] == "revoked"), None) + if revoked is not None and not drops("revoked"): + first.append(f"refused reason=key_revoked origin={revoked[0]} " + f"compromised_since={revoked[1]['compromised_since']}") + unheld = next((o for o, r in held if r is None), None) + if unheld is not None and not drops("not_held"): + first.append(f"unconfirmed reason=key_log_not_held origin={unheld}") + if first: + return first[-1] if drops("revoked_first") else first[0] + for o, e in listed: + roles = roles_of(e) + in_force = e["status"] == "active" or (e["status"] == "retired" + and (drops("until") or not later(at_ms, e["until"]))) + if roles and in_force: + out = f"confirmed origin={o} key_id={e['id']} role={roles[0]}" + return out + (f" until={e['until']}" if e["status"] == "retired" else "") + retired = next(((o, e) for o, e in listed if roles_of(e) and e["status"] == "retired"), None) + if retired is not None: + return f"refused reason=key_retired origin={retired[0]} until={retired[1]['until']}" + bare = next((o for o, e in listed if not roles_of(e)), None) + if bare is not None: + return f"refused reason=authority_not_granted origin={bare}" + return "unconfirmed reason=server_not_listed" + + +# ------------------------------------------------------------------ §5.3: step 6 + +def check_cache_transmission(c, g, objects): + """§5.3 against a group receipt that passed jwp-receipts §3 steps 1 and 2 (as jwp_verify reads + it), and the object receipts held under it, of which those that pass §3 step 5 are used.""" + b = c["body"] + need(drops("ct_subject") or JV.link(g).hex() == c["subject"], "cache_transmission_subject_mismatch") + need(drops("ct_publisher") or c["signer_pubkey"] != g["signer_pubkey"], "cache_transmission_by_publisher") + need(drops("ct_leaf_count") or b["leaf_count"] == g["leaf_count"], "cache_transmission_leaf_count_mismatch") + sent = positions(b["sent"]) + if len(sent) == g["leaf_count"]: + root = bytes.fromhex(g["root_hash"]) + else: + leaves = [] + for i in sent: + o = next((o for o in objects if o["object_id"] == i and BV.included(o, g)), None) + if o is None and drops("ct_held"): + continue + need(o is not None, "cache_transmission_objects_not_held") + leaves.append(JV.leaf(o)) + root = BV.merkle_root(leaves) + need(drops("ct_root") or root.hex() == b["sent_root"], "cache_transmission_root_mismatch") + + +def read_objects(receipts): + """The object receipts given that read (jwp-receipts §2.4.2).""" + out = [] + for o in receipts: + try: + out.append(JV.read_object(o)) + except JV.Refuse: + pass + return out + + +def context_group(ctx): + """§5.3: the group receipt a claim is checked against, after jwp-receipts §3 steps 1 and 2.""" + if not (isinstance(ctx, dict) and ctx.get("kind") == "group") and not drops("context_kind"): + raise CV.Reject(6, "context_mismatch") + try: + g = JV.read_group(ctx) + JV.verify_group(g) + except JV.Refuse: + raise CV.Reject(6, "context_invalid") + return g + + +def claim_outcome(case): + """A claim through jwp-receipts §3.1 steps 1 to 6 against the context the case gives, its + signer's previous claim the last of the earlier ones held.""" + try: + held = {} + for wire in case["earlier"]: + try: + e = TV.claim_steps(wire) + held[e["signer_pubkey"]] = e + except CV.Reject: + pass + c = TV.claim_steps(case["claim"]) + CV.check_chain(c, held.get(c["signer_pubkey"])) + if case["context"] is None and not drops("unchecked"): + return "unchecked" + if c["class"] != "cache-transmission": + raise CV.Reject(6, "context_mismatch") + check_cache_transmission(c, context_group(case["context"]), read_objects(case["objects"])) + return "accept" + except CV.Reject as r: + return f"reject step={r.step} reason={r.reason}" + + +# ------------------------------------------------------------------ §7: the verdict + +class Verdict: + """§7.2 over a case's inputs, with what §7.3, §8 and §9 read from it.""" + + def __init__(self, case, count_only): + self.g = TV.read_groups([{"group": case["group"], "objects": case["objects"]}])[0] + gr = self.g.receipt + objs = [ob for ob, _ in self.g.pairs] + # Step 2: the claims. + labels, accepted, held = [], [], {} + for wire in case["claims"]: + try: + c = TV.claim_steps(wire) + except CV.Reject as r: + labels.append(f"reject step={r.step} reason={r.reason}") + accepted.append(None) + continue + previous = held.get(c["signer_pubkey"]) + held[c["signer_pubkey"]] = c + try: + CV.check_chain(c, previous) + if c["class"] == "transmission": + BV.check_transmission(c, gr) + elif c["class"] == "reconciliation": + BV.check_reconciliation(c, gr, objs) + elif c["class"] == "cache-transmission": + check_cache_transmission(c, gr, objs) + else: + raise CV.Reject(6, "context_mismatch") + except CV.Reject as r: + labels.append(f"reject step={r.step} reason={r.reason}") + accepted.append(None) + continue + labels.append(None) + accepted.append(c) + + def by_instance(cls): + out = {} + for i, c in enumerate(accepted): + if c is not None and c["class"] == cls: + out.setdefault(c["body"]["bearer_id"], []).append(i) + return out + + # Step 3: the publisher's declarations (bearer-receipts §6.2 step 4). + self.pub, self.pub_aside = {}, set() + for bid, idx in by_instance("transmission").items(): + bodies = [accepted[i]["body"] for i in idx] + stands = all(b == bodies[0] for b in bodies) + if stands: + self.pub[bid] = bodies[0] + else: + self.pub_aside.add(bid) + for i in idx: + labels[i] = "declared" if stands else "set-aside reason=bearer_contradicted" + # Step 4: the caches' instances. + self.caches, self.cache_aside = {}, set() + for bid, idx in by_instance("cache-transmission").items(): + cs = [accepted[i] for i in idx] + taken = (bid in self.pub or bid in self.pub_aside) and not drops("taken") + same = drops("cache_contradiction") or all( + (x["signer_pubkey"], x["body"]) == (cs[0]["signer_pubkey"], cs[0]["body"]) for x in cs) + if drops("same_claim"): + same = same and all(x["issued_at"] == cs[0]["issued_at"] for x in cs) + if not taken and not same: + self.cache_aside.add(bid) + if taken or not same: + for i in idx: + labels[i] = "set-aside reason=bearer_contradicted" + continue + self.caches[bid] = {"claims": cs, "body": cs[0]["body"], "server": cs[0]["signer_pubkey"], + "sent": positions(cs[0]["body"]["sent"])} + for i in idx: + labels[i] = "cache-declared" + # Step 5: the reconciliations. + counted, self.bits, self.instance_bits, self.counted = set(), {}, {}, [] + for i, c in enumerate(accepted): + if c is None or c["class"] != "reconciliation": + continue + b, key = c["body"], c["signer_pubkey"] + bid = b["bearer_id"] + d, ci = self.pub.get(bid), self.caches.get(bid) + stated = d if d is not None else None if ci is None else ci["body"] + if bid in self.pub_aside or bid in self.cache_aside: + aside = "bearer_contradicted" + elif stated is None: + aside = "bearer_not_declared" + elif stated["bearer"] != b["bearer"]: + aside = "bearer_contradicted" + elif d is None and key == ci["server"] and not drops("self_ack"): + aside = "self_acknowledged" + elif count_only is not None and key not in count_only: + aside = "sink_not_confirmed" + else: + aside = None + if aside: + labels[i] = "set-aside reason=" + aside + continue + labels[i] = "joined reason=reconciliation_duplicate_sink" if (key, bid) in counted else "counted" + counted.add((key, bid)) + got = positions(b["received"]) + self.bits.setdefault(key, set()).update(got) + self.instance_bits.setdefault(bid, {}).setdefault(key, set()).update(got) + self.counted.append(i) + self.labels, self.accepted = labels, accepted + + def outcome(self, case): + """§7.2 step 6, §7.3 and §7.4, as the corpus states them.""" + g, heads = self.g, case["heads"] + n = g.count + sinks = len(self.bits) + whole = sum(1 for s in self.bits.values() if len(s) == n) + received_by = [sum(1 for s in self.bits.values() if j in s) for j in range(n)] + + def energy(e, k): + if e is None: + return None, None + j = e["joules_micro"] + share = j // max(1, k) if drops("energy_ceiling") else ceil_div(j, max(1, k)) + return {"joules_micro": j, "class": e["energy_provenance"]}, share + + bearers = [] + for bid in sorted(self.pub, key=lambda s: s.encode()): + d = self.pub[bid] + k = len(self.instance_bits.get(bid, {})) + e, share = energy(d["energy"], k) + bearers.append({"bearer_id": bid, "bearer": d["bearer"], "sinks": k, "energy": e, + "per_receiver_upper_bound": share}) + caches = [] + for bid in sorted(self.caches, key=lambda s: s.encode()): + ci = self.caches[bid] + mine = self.instance_bits.get(bid, {}) + if drops("per_instance"): + mine = {k: self.bits[k] for k in mine} + at = (min if drops("cache_earliest") else max)(issued_ms(x["issued_at"])[0] for x in ci["claims"]) + if drops("cache_instant"): + at = g.start * 1000 + e, share = energy(ci["body"]["energy"], len(mine)) + sent = list(range(n)) if drops("sent_only") else ci["sent"] + caches.append({"bearer_id": bid, "bearer": ci["body"]["bearer"], "server": ci["server"], + "placement": place(ci["server"], at, heads), "sent": sent, "sinks": len(mine), + "received_by": [[j, sum(1 for s in mine.values() if j in s)] for j in sent], + "energy": e, "per_receiver_upper_bound": share}) + transmitted = bool(self.pub) or (drops("cache_status") and bool(self.caches)) + status = "reconciled" if sinks else "transmitted" if transmitted else "published" + sink = None + s = case["sink"] + if s is not None: + sid, sb = s["bearer_id"], s["bearer"] + if sid in self.pub_aside or sid in self.cache_aside: + sink = "bearer_contradicted" + elif sid in self.pub: + sink = "declared" if self.pub[sid]["bearer"] == sb else "bearer_contradicted" + elif sid in self.caches and not drops("sink_cache"): + sink = "cache-declared" if self.caches[sid]["body"]["bearer"] == sb else "bearer_contradicted" + else: + sink = "bearer_not_declared" + assertion = None + a = case["assertion"] + if a is not None: + if "transmitted" in a: + over = [d["bearer"] for d in self.pub.values()] + if drops("statement_publisher"): + over += [ci["body"]["bearer"] for ci in self.caches.values()] + assertion = "holds" if a["transmitted"] in over else "reject reason=bearer_not_declared" + elif whole == 0: + assertion = "reject reason=delivery_not_reconciled" + elif whole < a["delivered"]: + assertion = "reject reason=delivery_exceeds_reconciled" + else: + assertion = "holds" + return {"objects": g.verdicts, "claims": self.labels, "status": status, "sinks": sinks, "whole": whole, + "received_by": received_by, "bearers": bearers, "caches": caches, "sink": sink, + "assertion": assertion} + + +def count_only_of(case): + return None if case["count_only"] is None else set(case["count_only"]) + + +def verdict(case): + try: + v = Verdict(case, count_only_of(case)) + except JV.Refuse as r: + return "refuse reason=" + r.reason + return v.outcome(case) + + +# ------------------------------------------------------------------ §8: held by a deadline + +def population_valid(region, keys): + """§8.1: a region code of rung-price §2, and 1 to 2^20 keys in strictly increasing order of + their bytes.""" + if not drops("region") and not RP.region_code(region): + return False + if not isinstance(keys, list) or len(keys) > MAX_KEYS or (not keys and not drops("population_empty")): + return False + if not all(CV.is_hex(k, 32) for k in keys): + return False + if drops("population_order"): + return True + raw = [bytes.fromhex(k) for k in keys] + return all(a < b or (a == b and drops("population_strict")) for a, b in zip(raw, raw[1:])) + + +def population_digest(region, keys): + """§8.1: SHA-256 over the domain, the region's length and the region, n and the keys.""" + r = region.encode("ascii") + head = POPULATION + (b"" if drops("digest_region") else bytes([len(r)]) + r) + return hashlib.sha256(head + len(keys).to_bytes(4, "big") + b"".join(bytes.fromhex(k) for k in keys)).hexdigest() + + +def verified(g, i): + """§8.2 step 5: the content hash and length of object i held `delivered-verified`, or None.""" + memo = g.__dict__.setdefault("ca_verified", {}) + if i not in memo: + memo[i] = None + for ob, env in g.pairs: + if env is not None and ob["object_id"] == i: + try: + JV.accept(ob, g.receipt, env) + memo[i] = (ob["content_hash"].hex(), len(env)) + break + except JV.Refuse: + pass + return memo[i] + + +def deadline_entry(wire, g, i): + """§8.2 step 6: the entry for object i of a timeliness claim that stands against the group, with + no claim of its signer held before it, and the claim's link hash; or None.""" + try: + c = TV.claim_steps(wire) + CV.check_chain(c, None) + if c["class"] != "timeliness": + raise CV.Reject(6, "context_mismatch") + held = g + if drops("deadline_envelopes"): + held = copy.copy(g) + held.envelopes = {} + TV.check_timeliness(c, held, {g.link: held}) + except CV.Reject: + return None + entries = c["body"]["objects"] + e = next((e for e in entries if e["leaf_index"] == i), None) + if e is None and drops("deadline_entry"): + e = entries[0] + return None if e is None else (e, CV.link_hash(c)) + + +_ACKS = {} + + +def read_ack(x): + """settlement §3.6 for a record given, and its item lists against its entries: (reason or None, + record, items, the item lists' reason or None).""" + k = (x["record"], tuple(x["items"])) + if k not in _ACKS: + try: + a = SET.read_ack(bytes.fromhex(x["record"])) + except SET.Refuse as r: + _ACKS[k] = (r.reason, None, [], None) + return _ACKS[k] + items, why = [], None + try: + for j, e in enumerate(a["entries"]): + if j >= len(x["items"]): + raise SET.Refuse("record_missing") + raw = bytes.fromhex(x["items"][j]) + its = SET.read_items(raw) + if not SET.recomputes(e, its, raw): + raise SET.Refuse("items_mismatch") + items += its + except SET.Refuse as r: + why, items = r.reason, [] + _ACKS[k] = (None, a, items, why) + return _ACKS[k] + + +def acknowledgements(acks, g): + """§8.3: each record's label, in order, with the record and its items where it reads.""" + out = [] + for x in acks: + why, a, items, items_why = read_ack(x) + if why is not None: + out.append(("reject reason=" + why, None, [])) + elif a["mode"] == DECLARATION and not drops("declaration"): + out.append(("declaration", a, [])) + elif items_why is not None: + out.append(("reject reason=" + items_why, None, [])) + elif before(ack_ms(a["end"])[1], g.start, "ack_before"): + out.append(("before-group", a, items)) + else: + out.append(("read", a, items)) + return out + + +def covers(spans, length): + """Whether the union of the byte ranges `spans` covers [0, length).""" + if drops("covers"): + return bool(spans) + at = 0 + for s, e in sorted(spans): + if at >= length: + break + if s > at: + return False + at = max(at, e) + return at >= length + + +def held_at(v, acks, i, h, length, keys): + """§8.3's held-at statements of acknowledgements and counted reconciliations for object i (its + content hash h and length), for the keys `keys` (None for every key): {key: [(instant, + servers)]}, and the statements set aside before the group, as (key, source).""" + g = v.g + out, aside = {}, [] + + def wanted(k): + return keys is None or k in keys or drops("population_only") + + recs = v.counted + if drops("line_counted"): + recs = [x for x, c in enumerate(v.accepted) if c is not None and c["class"] == "reconciliation"] + for x in recs: + c = v.accepted[x] + k, b = c["signer_pubkey"], c["body"] + if not wanted(k) or i not in positions(b["received"]): + continue + ms, s = issued_ms(c["issued_at"]) + if before(ms // 1000 if drops("rec_before_ms") else s, g.start, "rec_before"): + aside.append((k, "reconciliation")) + continue + bid, server = b["bearer_id"], None + if bid in v.pub: + server = g.signer + elif bid in v.caches and (i in v.caches[bid]["sent"] or drops("sent_server")): + server = v.caches[bid]["server"] + out.setdefault(k, []).append((ms, set() if server is None else {server})) + readable = [(a, items) for label, a, items in acks if label in ("read", "before-group") + or (drops("declaration") and label == "declaration")] + for k in sorted({a["downstream"].hex() for a, _ in readable}): + if not wanted(k): + continue + mine = [(a, items) for a, items in readable + if a["downstream"].hex() == k and any(c.hex() == h for c, _, _ in items)] + rest = [] + for a, items in mine: + if before(ack_ms(a["end"])[1], g.start, "ack_before"): + aside.append((k, a["digest"].hex())) + else: + rest.append((a, items)) + if drops("ack_digest"): + rest.sort(key=lambda p: p[0]["end"]) + elif not drops("ack_order"): + rest.sort(key=lambda p: (p[0]["end"], p[0]["digest"])) + spans = [] + for n, (a, items) in enumerate(rest): + if drops("union"): + spans = [] + spans += [(s, e) for c, s, e in items if c.hex() == h] + if covers(spans, length): + upto = rest[n:n + 1] if drops("servers_all") else rest[:n + 1] + out.setdefault(k, []).append((ack_ms(a["end"])[0], {p[0]["upstream"].hex() for p in upto})) + break + return out, aside + + +def tally(case): + """§8: the tally, or `refuse reason=R` for §8.2.""" + region, keys, i = case["region"], case["population"], case["index"] + if not population_valid(region, keys): + return "refuse reason=population_invalid" + stated, target = case["deadline_ms"], case["miss_target_ppm"] + if case["deadline_claim"] is None and not (CV.is_int(stated) + and (stated <= LAST_INSTANT or drops("deadline_bound"))): + return "refuse reason=target_invalid" + if not (CV.is_int(target) and (target <= MAX_TARGET or drops("target_bound"))): + return "refuse reason=target_invalid" + try: + v = Verdict(case, None if drops("count_only") else set(keys)) + except JV.Refuse as r: + return "refuse reason=" + r.reason + g = v.g + if g.start is None and not drops("group_start"): + return "refuse reason=context_invalid" + if not (CV.is_int(i) and (i < g.count or drops("out_of_range"))): + return "refuse reason=object_out_of_range" + obj = verified(g, i) + if obj is None: + if not drops("verified"): + return "refuse reason=object_not_verified" + obj = (g.included.get(i, ""), 0) + h, length = obj + deadline, link = stated, None + if case["deadline_claim"] is not None: + got = deadline_entry(case["deadline_claim"], g, i) + if got is None: + return "refuse reason=deadline_not_stated" + deadline, link = got[0]["by_ms"], got[1] + acks = acknowledgements(case["acknowledgements"], g) + statements, aside = held_at(v, acks, i, h, length, set(keys)) + rlabels, kept = TV.records_step(case["records"], [g]) + standing = [kept[x] for x in sorted(kept) if rlabels[x] == "stands"] + if not drops("records"): + for holder, _, _, at in TV.held_from_records(standing, g.link, i): + if holder in keys: + statements.setdefault(holder, []).append((at, set())) + # §8.3: a hit has a held-at statement at or before the deadline; §8.4: its servers. + counted_keys = sorted(statements) if drops("population_only") else keys + hits = {} + for k in counted_keys: + on = [(t, s) for t, s in statements.get(k, []) if (t < deadline if drops("hit_inclusive") else t <= deadline)] + if on: + hits[k] = (set().union(*(s for _, s in on)), any(not s for _, s in on), on) + n = len(keys) + misses = n - len(hits) + miss_ppm = misses * PPM // n if drops("miss_ceil") else ceil_div(misses * PPM, n) + servers = [] + for s in sorted(set().union(set(), *(S for S, _, _ in hits.values())), key=bytes.fromhex): + crediting = [(k, S, U, on) for k, (S, U, on) in hits.items() if s in S] + at = (min if drops("server_earliest") else max)(t for _, _, _, on in crediting for t, ss in on if s in ss) + if drops("server_instant"): + at = g.start * 1000 + placement = "publisher" if s == g.signer and not drops("publisher") else place(s, at, case["heads"]) + sole = sum(1 for _, S, U, _ in crediting if S == {s} and (drops("sole_unattributed") or not U)) + servers.append({"key": s, "placement": placement, "hits": len(crediting), "sole": sole}) + met = miss_ppm < target if drops("target_inclusive") else miss_ppm <= target + return {"outcome": "met" if met else "refuse reason=miss_target_exceeded", "region": region, + "population_digest": population_digest(region, keys), "deadline_ms": deadline, "deadline_claim": link, + "n": n, "hits": len(hits), "misses": misses, "miss_ppm": miss_ppm, + "missing": [k for k in keys if k not in hits], + "set_aside": [{"key": k, "source": src, "reason": "held_before_group"} for k, src in sorted(aside)], + "servers": servers, "unattributed": sum(1 for S, _, _ in hits.values() if not S), + "acknowledgements": [label for label, _, _ in acks], "records": rlabels, "claims": v.labels} + + +# ------------------------------------------------------------------ §9: timeliness lines + +def lines(case): + """§9: timeliness §6.3's lines for object `index`. Records give held-at statements as + timeliness §6 reads them, for the primary and its fallback whatever envelopes are held, with a + line for each holder with a record that stands and has an entry for either group; + acknowledgements and counted reconciliations give them for each object of the group held + `delivered-verified`, the primary and a fallback in its group among them, with a line for each + key with one.""" + try: + v = Verdict(case, count_only_of(case)) + except JV.Refuse as r: + return "refuse reason=" + r.reason + g, i = v.g, case["index"] + got = deadline_entry(case["claim"], g, i) + if got is None: + return "reject reason=deadline_not_stated" + entry = got[0] + fb = entry["fallback"] + acks = acknowledgements(case["acknowledgements"], g) + rlabels, kept = TV.records_step(case["records"], [g]) + standing = [kept[x] for x in sorted(kept) if rlabels[x] == "stands"] + holders = TV.line_holders(g.link, entry, standing) + if drops("line_fallback_holders"): + holders = [h for h in holders if any(TV.has_entry(r, g.link) for r in standing if r[0].hex() == h)] + primary = TV.held_from_records(standing, g.link, i) + if drops("line_records_verified") and verified(g, i) is None: + primary = [] + fallback = [] if fb is None else TV.held_from_records(standing, fb["group"], fb["leaf_index"]) + for j in range(g.count): + obj = verified(g, j) + if obj is None: + continue + statements, _ = held_at(v, acks, j, obj[0], obj[1], None) + for k, st in statements.items(): + if k not in holders and not drops("line_keys"): + holders.append(k) + if j == i: + primary += [(k, g.link, i, t) for t, _ in st] + if fb is not None and fb["group"] == g.link and fb["leaf_index"] == j and not drops("line_fallback_acks"): + fallback += [(k, g.link, j, t) for t, _ in st] + return TV.lines(entry, holders, primary, fallback) + + +# ------------------------------------------------------------------ the corpus + +def placement_outcome(case): + return place(case["key"], case["at_ms"], case["heads"]) + + +RUNS = (("claims", claim_outcome), ("placements", placement_outcome), ("verdicts", verdict), ("tallies", tally), + ("lines", lines)) +KINDS = tuple(k for k, _ in RUNS) + + +def check(doc, quiet=False): + """The failures of a corpus document: each case's outcome, and every reason of §11.""" + fails = [] + for kind, run in RUNS: + for c in doc[kind]: + try: + got = run(c) + except CV.Reject as r: + got = {"error": f"reject step={r.step} reason={r.reason}"} + except (KeyError, TypeError, ValueError, IndexError, AttributeError, StopIteration, ZeroDivisionError, + JV.Refuse, SET.Refuse, SG.Stop, HV.Refused) as e: + got = {"error": repr(e)} + if got != c["outcome"]: + fails.append(c["name"]) + if not quiet: + print(f"FAIL {kind} {c['name']}\n stated {json.dumps(c['outcome'])}\n got {json.dumps(got)}") + stated = [] + for kind in KINDS: + for c in doc[kind]: + TV.strings(c["outcome"], stated) + for code, _ in reasons_table(): + if not any(s == code or re.search(r"reason=" + re.escape(code) + r"(\s|$)", s) for s in stated): + fails.append("no case gives " + code) + return fails + + +def mutations(doc): + """Copies of the corpus, one defect each, every one of which must fail.""" + def case(d, name, kinds=KINDS): + return next(c for k in kinds for c in d[k] if c["name"] == name) + + def m_until(d): + case(d, "retired_at_until")["at_ms"] += 1 + + def m_least(d): + c = case(d, "confirmed_least_origin") + c["outcome"] = c["outcome"].replace("operator.example", "other.example") + + def m_receipt(d): + # Object 3's receipt held too: the claim's root over objects 1 and 3 then verifies. + c = case(d, "objects_not_held") + c["objects"].append(case(d, "sent_partial")["objects"][3]) + + def m_credit(d): + case(d, "per_instance_credit")["outcome"]["caches"][0]["received_by"][1][1] = 1 + + def m_status(d): + case(d, "cache_declared_only")["outcome"]["status"] = "transmitted" + + def m_head(d): + case(d, "head_not_held", ("verdicts",))["heads"]["https://operator.example"] = d["heads"]["operator"] + + def m_count_only(d): + case(d, "confirmed_keys_only")["count_only"] = None + + def m_bound(d): + case(d, "energy_bound_after")["outcome"]["caches"][0]["per_receiver_upper_bound"] = 3_333_333 + + def m_population(d): + c = case(d, "met_by_bearer_and_peers") + c["population"] = list(reversed(c["population"])) + + def m_region(d): + case(d, "region_country")["region"] = "XB" + + def m_deadline(d): + case(d, "ack_last_us_at_deadline")["deadline_ms"] -= 1 + + def m_ppm(d): + case(d, "rounded_up")["outcome"]["miss_ppm"] = 333_333 + + def m_sole(d): + case(d, "two_peers_complete")["outcome"]["servers"][0]["sole"] = 1 + + def m_items(d): + case(d, "ack_any_class")["acknowledgements"][0]["items"] = [] + + def m_claim_link(d): + case(d, "deadline_from_timeliness")["outcome"]["deadline_claim"] = "00" * 32 + + def m_line(d): + case(d, "timeliness_line_from_ack")["outcome"][0]["held_ms"] += 1 + + def m_reason_gone(d): + d["claims"].remove(case(d, "leaf_count_wrong")) + + return [m_until, m_least, m_receipt, m_credit, m_status, m_head, m_count_only, m_bound, m_population, m_region, + m_deadline, m_ppm, m_sole, m_items, m_claim_link, m_line, m_reason_gone] + + +WEAKENINGS = ["rec_second", "rec_round", "ack_last_us", "ack_round", "until_inclusive", "serving", "least_origin", + "revoked", "not_held", "revoked_first", "until", "ct_subject", "ct_publisher", "ct_leaf_count", + "ct_held", "ct_root", "context_kind", "unchecked", "taken", "cache_contradiction", "same_claim", + "self_ack", "energy_ceiling", "per_instance", "cache_instant", "sent_only", "cache_status", + "sink_cache", "statement_publisher", "region", "population_empty", "population_order", + "population_strict", "digest_region", "deadline_entry", "declaration", "ack_before", "rec_before", + "covers", "union", "servers_all", "sent_server", "population_only", "line_counted", "deadline_bound", + "target_bound", "count_only", "group_start", "out_of_range", "verified", "records", "hit_inclusive", + "miss_ceil", "server_instant", "publisher", "target_inclusive", "line_keys", "deadline_envelopes", + "ack_order", "ack_digest", "server_earliest", "cache_earliest", "rec_before_ms", "line_fallback_acks", + "line_records_verified", "line_fallback_holders"] + + +def direct_checks(): + """What no vector carries, and what this text states of the texts beside it.""" + fails = [] + # §8.1's bound: 2^20 keys are a population, and one more is not. + keys = [k.to_bytes(32, "big").hex() for k in range(1, MAX_KEYS + 2)] + if population_valid("XA", keys): + fails.append("a population of 2^20 + 1 keys is accepted") + keys.pop() + if not population_valid("XA", keys): + fails.append("a population of 2^20 keys is refused") + del keys + # §8.3: an acknowledgement's hit is `end` − 1 ≤ deadline_ms × 1000 in 64 bits, its rounded + # instant at or before the deadline the same test, at the last instant and the widest `end`. + if LAST_INSTANT * 1000 >= 1 << 64: + fails.append("the last instant in microseconds does not fit in 64 bits") + for end in (LAST_INSTANT * 1000 + 1, LAST_INSTANT * 1000 + 2, (1 << 64) - 1): + if (ack_ms(end)[0] <= LAST_INSTANT) != (end - 1 <= LAST_INSTANT * 1000): + fails.append(f"an acknowledgement ending at {end} reads two ways") + # jwp-receipts §3.1 lists §5.2's codes at step 4 and §5.3's at step 6; its §2.4.4 row admits a + # receipt subject, as the claim verifier does. + jwp = TV.text_of(JWP_RECEIPTS) + for code, where in reasons_table(): + step = {"§5.2": 4, "§5.3": 6}.get(where.split(" ")[0]) + if step is not None and f"| {step} | `{code}` |" not in jwp: + fails.append(f"jwp-receipts §3.1 does not list {code} at step {step}") + if "| `cache-transmission` | `claim` | `receipt`" not in jwp or CV.ADMITS.get("cache-transmission") != {"receipt"}: + fails.append("jwp-receipts §2.4.4 and the claim verifier differ on the class's subject") + # §4.4: the serving roles after `cache/serve` are those settlement §13 places. + text = TV.text_of(SETTLEMENT) + s13 = text[text.index("\n## 13."):] + for role in SERVING[1:]: + if f"`{role}`" not in s13: + fails.append(f"settlement §13 does not place {role}") + return fails + + +def main(argv): + global DROPPED + if len(argv) != 2: + print(__doc__) + return 2 + doc = json.load(open(os.path.join(argv[1], "vectors.json"), encoding="utf-8")) + extra = sorted(set(os.listdir(argv[1])) - {"vectors.json", "README.md"}) + fails = check(doc) + if extra: + fails.append(f"files the corpus does not hold: {extra}") + fails += direct_checks() + print(f"{sum(len(doc[k]) for k in KINDS)} cases ({', '.join(f'{len(doc[k])} {k}' for k in KINDS)}): " + f"{len(fails)} failure(s)") + caught = 0 + for m in mutations(doc): + d = copy.deepcopy(doc) + m(d) + if check(d, quiet=True): + caught += 1 + else: + fails.append(f"mutation {m.__name__} was not caught") + print(f"{caught} of {len(mutations(doc))} mutated copies fail") + weak = 0 + for w in WEAKENINGS: + DROPPED = w + if check(doc, quiet=True): + weak += 1 + else: + fails.append(f"a verifier without its {w} check passes the corpus") + DROPPED = None + print(f"{weak} of {len(WEAKENINGS)} weakened verifiers are caught") + for f in fails: + print("FAIL", f) + return 1 if fails else 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/wai/live-conformance/impression_aggregate_verify.py b/wai/live-conformance/impression_aggregate_verify.py new file mode 100644 index 000000000..8f1e220b0 --- /dev/null +++ b/wai/live-conformance/impression_aggregate_verify.py @@ -0,0 +1,1493 @@ +#!/usr/bin/env python3 +"""Independent verifier of the impression aggregates corpus (extensions/impression-aggregates.md). + +Written from the extension's text and the texts it cites. It shares no code with wai-rs, which +generates the corpus, and never runs it. From the second implementations of the texts this +extension builds on it takes what those texts define, by reference as the extension does: + +- telemetry_aggregate_verify.py (telemetry-aggregation, DAP, VDAF, HPKE): Prio3Histogram with its + field, XOF and FLP; X25519, HKDF-SHA256, AES-128-GCM and HPKE open; DAP's messages; a task's + `task_info`, its id and its §4.3 rule 1; the statement and the aggregate receipt; and §8.1 + steps 1 to 11, step 2 given as §5.3 here; +- stitched_presentation_verify.py: a pod-input record under stitched-presentation §7.2 steps 1 + to 3 and the claims under §7.3 steps 1 to 10, with each presentation's quartile (§7.4); +- ad_presentation_verify.py: a token's reading (§7.1), its TokenChallenge (§7.2), the issuer + key's form and RSASSA-PSS (§7.3); +- ../signer-conformance/signer_verify.py: key-log revisions, anchors and confirmation + (jwp-receipts §7.3, §7.4), `aggregate/task` among its pinned-only authorities (§7.5); +- rung_price_verify.py: a region code and *holds* (rung-price §2); +- ../claim-conformance/_ed25519.py: Ed25519 as SPEC §7 *Signatures* states it. + +Everything this extension adds is written here: the catalogue, its columns and cells (§4); the +task's rules and the task file with its HpkeConfigLists (§5); the contribution, the upload file, +the upload plan and the settlement (§6); the aggregators' report rule, token check and hold +(§7); a receipt's §8.1 steps 12 and 13, and the table (§8.2). Each flow is re-run end to end: +every report's two input shares opened with the aggregators' test keys, its extensions and token +checked as each aggregator checks its own share, each presentation's contribution recomputed +and its measurement recombined and required to be one at its cell, both aggregators' Prio3 +verification, each upload's response and each relay's merge, the aggregation job's request and +response byte for byte, every bucket, collection (held, refused or completed), aggregate share, +statement, result and receipt. + +For every case it requires the outcome the corpus states, field for field; that the corpus +lists exactly §10's codes (read from the extension), that each of them and each code §10 says +the extension reuses appears in an outcome, and that no outcome gives a code the extension does +not name; and it checks the size bounds no vector carries. Then it mutates copies of the corpus, one defect each, and requires every copy to +fail; and it drops each of its own checks in turn and requires the corpus to catch the weakened +verifier. + + python3 -I impression_aggregate_verify.py + +Exit status 0 only if every case verifies, every mutated copy fails and every weakened verifier +is caught. Python 3.8 or later, the standard library and the signer verifier's own requirement +(the `cryptography` package). +""" + +import copy +import hashlib +import json +import math +import os +import re +import struct +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +for _d in ("claim-conformance", "signer-conformance"): + sys.path.insert(0, os.path.join(HERE, "..", _d)) +sys.path.insert(0, HERE) +import _ed25519 as ED # noqa: E402 +import ad_presentation_verify as APV # noqa: E402 +import rung_price_verify as RP # noqa: E402 +import signer_verify as SG # noqa: E402 +import stitched_presentation_verify as SPV # noqa: E402 +import telemetry_aggregate_verify as TAV # noqa: E402 + +EXTENSION = os.path.join(HERE, "..", "extensions", "impression-aggregates.md") +JWP = os.path.join(HERE, "..", "extensions", "jwp-receipts.md") + +Refuse = TAV.Refuse +CAT_MAGIC, TASK_MAGIC, UPLOAD_MAGIC = b"WIC1", b"WIT1", b"WIU1" +TASK_DOMAIN = b"wai:impression-task\x01" # §5.4 +ATTEST_DOMAIN = b"wai:impression-report-attest\x01" # §7.2 +TOKEN_EXT = 0x5749 # §7.2 `wai_impression_token` +MAX_CATALOGUE, MAX_TASK_FILE, MAX_UPLOAD = 1 << 20, 1 << 20, 1 << 24 +MAX_CELLS = 4096 # §4.3 rule 7 +FLOOR = 50 # §5.3 step 5, §8.2 `floor_met` +MIN_PRECISION = 3600 # §5.3 step 3 +LAST_S = 253402300799 # §5.3 step 3: the last instant, in seconds +HEADER = 41 # §6.5: a WIU1's bytes before its reports +SUITE = (0x0020, 0x0001, 0x0001) # DAP §7: X25519, HKDF-SHA256, AES-128-GCM +CLAIM, ATTEST = 1, 2 # ad-presentation §8 +REPORT_ERRORS = {1: "batch_collected", 2: "report_replayed", 3: "report_dropped", 4: "hpke_unknown_config_id", + 5: "hpke_decrypt_error", 6: "vdaf_verify_error", 7: "invalid_message", 8: "report_too_early", + 9: "unknown_verification_key_id", 10: "unsupported_extension"} # DAP §4.1 +CODE = {v: k for k, v in REPORT_ERRORS.items()} +KEEP = 8 # §6.6: report_too_early is kept +PROBLEMS = ["invalidBatchSize", "batchMismatch", "batchOverlap", "batchInvalid", "invalidAggregationParameter", + "invalidMessage"] # DAP §3.6, as the collections meet them + +# A weakened run drops one of these checks (see `WEAKENINGS`); empty checks everything. +SKIP = set() + + +def drops(name): + return name in SKIP + + +def sha(*parts): + h = hashlib.sha256() + for x in parts: + h.update(x) + return h.digest() + + +def u32(n): + return n.to_bytes(4, "big") + + +def section_codes(path, heading, column): + """The codes of a reasons table: the `column`-th cell of each row that starts with a code.""" + with open(path, encoding="utf-8") as fh: + text = fh.read() + at = text.index(heading) + end = text.find("\n## ", at + 1) + rows = text[at:end if end >= 0 else len(text)].splitlines() + out = [] + for r in rows: + cells = [c.strip() for c in r.split("|")] + if len(cells) > column + 1 and cells[column].startswith("`"): + out.append(cells[column].strip("`")) + return out + + +REASONS = section_codes(EXTENSION, "\n## 10. Reasons", 1) +JWP_REASONS = section_codes(JWP, "\n### 7.7. Reasons", 3) + + +# Each of these is a pure function of its inputs, so each is computed once for a set of inputs. +MEMO = {} + + +def memo(key, fn): + if key not in MEMO: + try: + MEMO[key] = (True, fn()) + except (ValueError, Refuse) as e: + MEMO[key] = (False, e) + ok, v = MEMO[key] + if not ok: + raise v + return v + + +# ------------------------------------------------------------------ §4 the catalogue + +def read_terms(r): + """stitched-presentation §4.1's measurement terms, little-endian there: (bytes, fields).""" + start = r.i + q = {"require": r.u(1), "rule": r.u(1), "token_type": int.from_bytes(r.take(2), "little")} + q["issuer"] = r.take(int.from_bytes(r.take(2), "little")) + return r.b[start:r.i], q + + +def terms_bytes(q): + return struct.pack(" 7 or (r & 6 and not claim) or rule > 2 or (rule == 0) == claim: + return False + if r & ATTEST: + if tt not in (1, 2) or not iss: + return False + elif tt != 0 or iss: + return False + return claim and (not r & ATTEST or tt == 2) + + +def ascending(xs): + return all(a < b for a, b in zip(xs, xs[1:])) + + +def ceil_sqrt(n): + s = math.isqrt(n) + return s if s * s >= n else s + 1 + + +def rsa_key_ok(k): + try: + APV.rsa_key(k) + return True + except ValueError: + return False + + +def read_catalogue(b): + """§4.3: the catalogue, or `catalogue_malformed`.""" + bad = Refuse("catalogue_malformed", "catalogue") + if len(b) > MAX_CATALOGUE: + raise bad + r = TAV.Rd(b) + try: + magic, version = r.take(4), r.u(1) + if magic != CAT_MAGIC or (version != 1 and not drops("cat-version")): # 1 + raise bad + raw, q = read_terms(r) + hold = r.u(4) + signers = [r.take(32) for _ in range(r.u(1))] + creatives = [r.take(32) for _ in range(r.u(1))] + regions = [r.opaque(1) for _ in range(r.u(1))] + keys = [r.opaque(2) for _ in range(r.u(1))] + r.end() + except ValueError: + raise bad + attest = bool(q["require"] & ATTEST) + cells = len(creatives) * (len(regions) + 1) * 5 + rules = [ + ("cat-terms", not terms_ok(q)), # 2 + ("cat-hold", hold == 0), # 3 + ("cat-signers", not 1 <= len(signers) <= 16), # 4 + ("cat-order", not ascending(signers)), + ("cat-creatives", not creatives), # 5 + ("cat-order", not ascending(creatives)), + ("cat-region", not all(RP.region_code(x.decode("latin-1")) for x in regions)), # 6 + ("cat-order", not ascending(regions)), + ("cat-overlap", any(len(x) == 2 and any(y.startswith(x + b"-") for y in regions) for x in regions)), + ("cat-cells", cells > MAX_CELLS), # 7 + ("cat-keys", (not attest and keys) or (attest and not 1 <= len(keys) <= 4)), # 8 + ("cat-key-form", not all(rsa_key_ok(k) for k in keys)), + ("cat-order", not ascending(keys)), + ] + if any(broken and not drops(name) for name, broken in rules): + raise bad + return {"bytes": b, "digest": sha(b), "terms_raw": raw, "terms": q, "attest": attest, "hold_s": hold, + "signers": signers, "creatives": creatives, "regions": regions, "keys": keys, "cells": cells, + "chunk": ceil_sqrt(cells) if cells else 0} + + +def column(cat, g): + """§4.2: the column of a receiver's region `g` (bytes or None); `r` is `other`.""" + other = len(cat["regions"]) + if g is None: + return other + s = g.decode("latin-1") + if not RP.region_code(s): + return other + for j, x in enumerate(cat["regions"]): + if (x == g) if drops("region-subdivision") else RP.holds([x.decode("ascii")], s): + return j + return other + + +def column_name(cat, j): + return cat["regions"][j].decode("ascii") if j < len(cat["regions"]) else "other" + + +def cell_of(cat, i, j, q): + return (i * (len(cat["regions"]) + 1) + j) * 5 + (q - 1) + + +def catalogue_outcome(b): + try: + c = read_catalogue(b) + except Refuse as e: + return {"outcome": "refuse", "reason": e.reason} + return {"outcome": "read", "digest": c["digest"].hex(), "cells": c["cells"], "chunk": c["chunk"]} + + +# ------------------------------------------------------------------ §5 the task + +def task_rules(cfg, cat): + """§5.3 against a catalogue that reads: the task's fields, Prio3, id, flight and retention.""" + t, info = TAV.task_fields(cfg) # 1 + if not drops("catalogue-digest") and (info["measure"] != 5 or info["scope"] != cat["digest"]): + raise Refuse("catalogue_mismatch", "task") # 2 + got = {} + + def steps_3_4(t, info): + ex = t["extensions"] + if t["time_precision"] < MIN_PRECISION and not drops("task-precision"): + raise Refuse("task_invalid", "task") + if len(ex) != 1 or ex[0][0] != 1 or len(ex[0][1]) != 16: + raise Refuse("task_invalid", "task") + iv = TAV.interval_of(ex[0][1]) + if iv[1] < 1 and not drops("task-interval"): + raise Refuse("task_invalid", "task") + retention = (iv[0] + iv[1]) * t["time_precision"] + cat["hold_s"] + if retention > LAST_S and not drops("task-retention"): # a u64 overflow is past it too + raise Refuse("task_invalid", "task") + config = u32(cat["cells"]) + (b"" if drops("chunk-length") else u32(cat["chunk"])) + given = t["vdaf_config"][:4] if drops("chunk-length") else t["vdaf_config"] + if t["vdaf_type"] != 4 or given != config: # 4: DAP Appendix B.4 + raise Refuse("measure_mismatch", "task") + got.update(interval=iv, retention_s=retention) + return TAV.Prio3(TAV.Histogram(cat["cells"], cat["chunk"])) + + t, info, p, tid = TAV.check_task(cfg, measure5=steps_3_4) # 3, 4; then 5, 6 + if "interval" not in got: + raise ValueError("not a task of measure 5") + return {"cfg": cfg, "t": t, "info": info, "p": p, "tid": tid, "interval": got["interval"], + "retention_s": got["retention_s"]} + + +def task_outcome(cfg, cat_bytes): + try: + k = task_rules(cfg, read_catalogue(cat_bytes)) + except Refuse as e: + return {"outcome": "refuse", "reason": e.reason} + return {"outcome": "accept", "task_id": k["tid"].hex(), "retention_s": k["retention_s"]} + + +def suite_config(configs): + """§6.3: the first configuration of DAP §7's suite with a 32-byte key.""" + if drops("hpke-first"): + return configs[0] + return next((c for c in configs if (c["kem"], c["kdf"], c["aead"]) == SUITE and len(c["pk"]) == 32), None) + + +def read_hpke_list(r): + """DAP §4.4.1's HpkeConfigList<10..2^16-1>, with its own u16 length first (§5.4 step 1).""" + body = TAV.Rd(r.opaque(2)) + if len(body.b) < 10: + raise ValueError("short list") + out = [] + while not body.done(): + c = {"id": body.u(1), "kem": body.u(2), "kdf": body.u(2), "aead": body.u(2), "pk": body.opaque(2)} + if not c["pk"]: + raise ValueError("empty key") + out.append(c) + ids = [c["id"] for c in out] + if len(set(ids)) != len(ids) and not drops("tf-hpke-ids"): + raise ValueError("two configurations of one id") + suite = [c for c in out if (c["kem"], c["kdf"], c["aead"]) == SUITE and len(c["pk"]) == 32] + if not suite and not drops("tf-hpke-suite"): + raise ValueError("no configuration of DAP's suite") + return out + + +def read_task_file(b): + """§5.4 step 1: the file, or `task_file_malformed`.""" + bad = Refuse("task_file_malformed", "task_file") + if len(b) > MAX_TASK_FILE and not drops("tf-bound"): + raise bad + r = TAV.Rd(b) + try: + magic, version = r.take(4), r.u(1) + if magic != TASK_MAGIC or (version != 1 and not drops("tf-version")): + raise bad + tf = {"task": r.opaque(2), "catalogue": r.opaque(4), "leader_hpke": read_hpke_list(r), + "helper_hpke": read_hpke_list(r), "signer": r.take(32)} + sid = r.opaque(2) + tf["body"] = b[:r.i] + tf["sig"] = r.take(64) + r.end() + except ValueError: + raise bad + if not sid or (any(c > 0x7F for c in sid) and not drops("tf-signer-ascii")): + raise bad + tf["signer_id"] = sid.decode("latin-1") + tf["digest"] = sha(tf["body"]) + return tf + + +def confirmation(tf, revision_texts, anchors): + """§5.4 step 5: jwp-receipts §7.4 for `aggregate/task`, the item untimed.""" + held = SG.held_revisions(revision_texts) + if drops("tf-revocation"): # a receiver that takes in no revision the bearer brings + named = {a["revision"] for a in anchors} + held = [x for x in held if SG.rev_hash(x) in named] + if drops("tf-pinned"): + anchors = [dict(a, path="pinned", pinned_revision=a["revision"]) for a in anchors] + authorities = [] if drops("tf-authority") else ["aggregate/task"] + return SG.confirm(tf["signer"], tf["signer_id"], authorities, None, held, anchors, None) + + +def accept_task_file(b, revision_texts, anchors): + """§5.4, in order: (file, catalogue, task, confirmation), or the refusal.""" + tf = read_task_file(b) # 1 + cat = read_catalogue(tf["catalogue"]) # 2 + task = task_rules(tf["task"], cat) # 3 + if not drops("tf-signature"): # 4 + why = ED.verify(tf["signer"], TASK_DOMAIN + tf["body"], tf["sig"]) + if why: + raise Refuse(why, "task_file") + v = confirmation(tf, revision_texts, anchors) # 5 + if not v.startswith("confirmed"): + raise Refuse(re.search(r"reason=(\S+)", v).group(1), "task_file") + return tf, cat, task, v + + +def task_file_outcome(doc, c): + fx = doc["fixtures"] + try: + tf, _, task, v = accept_task_file(bytes.fromhex(c["bytes"]), [fx["key_logs"][n] for n in c["revisions"]], + [fx["anchors"][n] for n in c["anchors"]]) + except Refuse as e: + return {"outcome": "refuse", "reason": e.reason} + return {"outcome": "accept", "digest": tf["digest"].hex(), "task_id": task["tid"].hex(), "confirmation": v} + + +def receiver_task_file(doc, name): + """A task file of the fixtures, accepted under what `receiver` holds (§6.1).""" + fx = doc["fixtures"] + rv = fx["receiver"] + return accept_task_file(bytes.fromhex(fx["task_files"][name]), [fx["key_logs"][n] for n in rv["revisions"]], + [fx["anchors"][n] for n in rv["anchors"]]) + + +# ------------------------------------------------------------------ §7.2 the token + +def pss(key, msg, sig): + return memo(("pss", key, msg, sig), lambda: APV.pss_verify(key, msg, sig)) + + +def token_check(cat, tid, rid, token): + """§7.2's token: None when it is type 0x0002, answers the challenge of `tid` and `rid`, names one + of the catalogue's keys and verifies under it; otherwise `attestation_invalid`.""" + t = APV.read_token(token) + if t is None or t["type"] != 2: + return "attestation_invalid" + ctx = sha(ATTEST_DOMAIN, tid, rid) + if not drops("token-challenge") and t["digest"] != sha(APV.token_challenge(2, cat["terms"]["issuer"], ctx)): + return "attestation_invalid" + key = next((k for k in cat["keys"] if sha(k) == t["key_id"]), None) + if key is None or not pss(key, t["input"], t["auth"]): + return "attestation_invalid" + return None + + +def report_rule(cat, tid, rid, public, private, role): + """§7.2 at DAP §4.5.3.4, an aggregator's own input share: None, or (error, WAI reason).""" + if public and not drops("public-extension"): + return "invalid_message", None + if not cat["attest"]: + return ("invalid_message", None) if private else None + if role == 3 and drops("helper-token"): + return None + if len(private) != 1 or private[0][0] != TOKEN_EXT: + return "invalid_message", "attestation_absent" + if token_check(cat, tid, rid, private[0][1]): + return "invalid_message", "attestation_invalid" + return None + + +# ------------------------------------------------------------------ §6.2 the contribution + +def held_fixtures(doc): + fx = doc["fixtures"] + manifests = [fx["manifests"][n].encode("utf-8") for n in sorted(fx["manifests"])] + creatives = [[{"content_hash": bytes.fromhex(o["content_hash"]), "duration_ms": o["duration_ms"]} + for o in fx["creatives"][n]["objects"]] for n in sorted(fx["creatives"])] + return manifests, creatives + + +def judge(doc, record, claims, signers): + """stitched-presentation §7.2 steps 1 to 3 for the record (no other record, no response held) + and §7.3 steps 1 to 10 for the claims, in order.""" + manifests, creatives = held_fixtures(doc) + key = ("judge", record, tuple(claims), tuple(signers), tuple(manifests), + json.dumps(doc["fixtures"]["creatives"], sort_keys=True)) + inp = {"records": [record], "claims": claims, "manifests": manifests, "responses": [], "receipts": [], + "creatives": creatives, "issuers": [], "signers": signers} + return memo(key, lambda: SPV.verify(inp, through_attestation=False)) + + +def no_report(reason, discarded=()): + return {"outcome": "no_report", "reason": reason, "discarded": list(discarded)} + + +def contribute(doc, cat, task, record, claims, region, at_ms, pool): + """§6.2, in order.""" + v = judge(doc, record, claims, cat["signers"]) + verdict = v["record_facts"][0]["verdict"] + if verdict != "accepted": # 1 + return no_report(verdict) + rec = SPV.read_record(record) + if rec["session"] != bytes(16) and not drops("shared"): # 2 + return no_report("record_not_shared") + if terms_bytes(rec["terms"]) != cat["terms_raw"] and not drops("terms-equal"): # 3 + return no_report("record_terms_differ") + cf = v["claim_facts"][-1] + if cf["verdict"] != "presented": # 4 + return no_report(cf["verdict"]) + ad = rec["ads"][cf["slot"]] + if ad["creative_hash"] not in cat["creatives"] and not drops("creative-listed"): # 5 + return no_report("creative_not_listed") + tp = task["t"]["time_precision"] + if at_ms is None and not drops("instant"): # 6 + return no_report("instant_unknown") + time = task["interval"][0] if at_ms is None else at_ms // (1000 * tp) + iv = task["interval"] + if not iv[0] <= time < iv[0] + iv[1] and not drops("flight-window"): # 7 + return no_report("outside_task") + discarded, rid = [], "fresh" + if cat["attest"]: # 8 + chosen = None + for pair in sorted(pool, key=lambda x: bytes.fromhex(x["id"])): + if drops("token-pool") or token_check(cat, task["tid"], bytes.fromhex(pair["id"]), + bytes.fromhex(pair["token"])) is None: + chosen = pair + break + discarded.append(pair["id"]) + if chosen is None: + return no_report("token_exhausted", discarded) + rid = chosen["id"] + q = cf["quartile"] + j = column(cat, region) + i = cat["creatives"].index(ad["creative_hash"]) if ad["creative_hash"] in cat["creatives"] else None + return {"outcome": "report", "cell": None if i is None else cell_of(cat, i, j, q), "creative": i, + "column": column_name(cat, j), "quartile": q, "time": time, "id": rid, "discarded": discarded} + + +def contribution_outcome(doc, c): + tf, cat, task, _ = receiver_task_file(doc, c["task_file"]) + record = bytes.fromhex(doc["fixtures"]["records"][c["record"]]["bytes"]) + region = None if c["region"] is None else c["region"].encode("utf-8") + return contribute(doc, cat, task, record, [bytes.fromhex(x) for x in c["claims"]], region, c["at_ms"], c["pool"]) + + +# ------------------------------------------------------------------ §6.4 to §6.6 + +def read_upload(b): + """§6.4: (task_id, reports), each report with its bytes; or `upload_malformed`.""" + bad = Refuse("upload_malformed", "upload") + if len(b) > MAX_UPLOAD and not drops("upload-bound"): + raise bad + r = TAV.Rd(b) + try: + magic, version = r.take(4), r.u(1) + if magic != UPLOAD_MAGIC or (version != 1 and not drops("upload-version")): + raise bad + tid = r.take(32) + n = r.u(4) + up = TAV.Rd(r.take(min(n, len(b) - r.i) if drops("upload-length") else n)) + r.end() + reports = [] + while not up.done(): + start = up.i + rep = TAV.read_report(up) + rep["raw"] = up.b[start:up.i] + reports.append(rep) + except ValueError: + raise bad + ids = [x["m"]["id"] for x in reports] + if not reports or (not ascending(ids) and not drops("upload-order")): + raise bad + return tid, reports + + +def write_upload(tid, raws): + body = b"".join(raws) + return UPLOAD_MAGIC + b"\x01" + tid + u32(len(body)) + body + + +def upload_outcome(b): + try: + tid, reports = read_upload(b) + except Refuse as e: + return {"outcome": "refuse", "reason": e.reason} + return {"outcome": "read", "task_id": tid.hex(), "ids": [x["m"]["id"].hex() for x in reports]} + + +def read_one_report(b): + r = TAV.Rd(b) + rep = TAV.read_report(r) + r.end() + rep["raw"] = b + return rep + + +def plan(task, cat, stored, t_ms, budget): + """§6.5.""" + tp, iv = task["t"]["time_precision"], task["interval"] + timely, late, drop = [], [], [] + for b in stored: + rep = read_one_report(b) + rid, tau = rep["m"]["id"], rep["m"]["time"] + if not iv[0] <= tau < iv[0] + iv[1] or (t_ms >= task["retention_s"] * 1000 and not drops("plan-retention")): + drop.append(rid) + continue + deadline = ((tau + 1) * tp + cat["hold_s"]) * 1000 + (timely if t_ms < deadline or drops("plan-deadline") else late).append((deadline, rid, b)) + send, defer, total, taking = [], [], HEADER, True + for cls, group in (("timely", sorted(timely)), ("late", sorted(late))): + for _, rid, b in group: + if taking and (budget is None or total + len(b) <= budget or drops("plan-budget")): + send.append((rid, cls, b)) + total += len(b) + else: + taking = False + defer.append(rid) + raws = [b for _, _, b in sorted(send)] + return {"send": [{"id": rid.hex(), "class": cls} for rid, cls, _ in send], "defer": [x.hex() for x in defer], + "drop": [x.hex() for x in sorted(drop)], "file": write_upload(task["tid"], raws).hex() if send else None} + + +def plan_outcome(doc, c): + _, cat, task, _ = receiver_task_file(doc, c["task_file"]) + return plan(task, cat, [bytes.fromhex(x) for x in c["stored"]], c["t_ms"], c["budget"]) + + +DELETE = {1, 2, 3, 4, 5, 6, 7, 9, 10} # §6.6: DAP §4.1's errors but report_too_early + + +def settle(sent, response): + """§6.6.""" + _, reports = read_upload(sent) + ids = [x["m"]["id"] for x in reports] + entries = None + if len(response) % 17 == 0: + es = [(response[k:k + 16], response[k + 16]) for k in range(0, len(response), 17)] + at, ok = 0, True + for rid, _ in es: + if drops("settle-subsequence"): + continue + while at < len(ids) and ids[at] != rid: + at += 1 + if at == len(ids): + ok = False + break + at += 1 + entries = es if ok else None + if entries is None: + return {"settles": False, "delete": [], "keep": [x.hex() for x in ids]} + errors = dict(entries) + delete, keep = [], [] + for rid in ids: + e = errors.get(rid) + if e is None or e in DELETE or (e == KEEP and drops("settle-too-early")) or \ + (e not in REPORT_ERRORS and drops("settle-unknown-value")): + delete.append(rid.hex()) + else: + keep.append(rid.hex()) + return {"settles": True, "delete": delete, "keep": keep} + + +# ------------------------------------------------------------------ §8 verification + +def verify_receipt(receipt, cat_bytes, reports): + """§8.1, in order: the outcome as accepted, or the refusal.""" + cat = read_catalogue(cat_bytes) + task = {} + + def step2(cfg): + k = task_rules(cfg, cat) + task.update(k) + return k["t"], k["info"], k["p"], k["tid"] + + out = TAV.verify_receipt(receipt, reports, task_check=step2) # 1 to 11 + batch = (out["batch"]["start"], out["batch"]["duration"]) + if not TAV.within(batch, task["interval"]) and not drops("batch-in-task"): # 12 + raise Refuse("batch_invalid", "leader") + res, n = out["result"], out["report_count"] # 13 + total = sum(res) % TAV.Field128.P if drops("count-integer") else sum(res) + elements = drops("count-integer") or all(x <= n for x in res) + if not elements or (total != n and not drops("count-sum")): + raise Refuse("count_mismatch", "result") + out["reports_checked"] = reports is not None + return out, cat, task + + +def receipt_outcome(c): + try: + out, _, _ = verify_receipt(bytes.fromhex(c["receipt"]), bytes.fromhex(c["catalogue"]), c["reports"]) + except Refuse as e: + return {"outcome": "refuse", "reason": e.reason, "at": e.at} + return out + + +def rows(cat, vec): + out = [] + for i in range(len(cat["creatives"])): + for j in range(len(cat["regions"]) + 1): + c = vec[cell_of(cat, i, j, 1):cell_of(cat, i, j, 1) + 5] + out.append({"creative": i, "column": column_name(cat, j), "presentations": sum(c), + "quartiles": [sum(c[k:]) for k in range(5)], "floor_met": sum(c) >= FLOOR}) + return out + + +def table(cat_bytes, task_bytes, given): + """§8.2.""" + try: + cat = read_catalogue(cat_bytes) # 1 + task = task_rules(task_bytes, cat) + except Refuse as e: + return {"outcome": "refuse", "reason": e.reason} + tp = task["t"]["time_precision"] + entries = [] + for g in given: # 2 + rb = bytes.fromhex(g["receipt"]) + e = {"digest": None} + try: + rc = TAV.read_receipt(rb) + e["digest"] = sha(rc["body"]).hex() + out, _, _ = verify_receipt(rb, cat_bytes, g["reports"]) + if rc["task"] != task_bytes and not drops("task-equal"): + raise Refuse("task_mismatch", "task") + e["out"] = out + except Refuse as x: + e["verdict"] = "refuse reason=%s at=%s" % (x.reason, x.at) + entries.append(e) + one = {} # 3 + for k, e in enumerate(entries): + if "out" in e: + one.setdefault(k if drops("dedupe") else e["digest"], e["out"]["batch"]) + over = set() + for a, x in one.items(): + for b, y in one.items(): + if a != b and x["start"] < y["start"] + y["duration"] and y["start"] < x["start"] + x["duration"]: + over.add(a) + if drops("overlap"): + over = set() + stated, standing, totals = [], [], None + for k, e in enumerate(entries): + if "out" not in e: + stated.append({"digest": e["digest"], "verdict": e["verdict"]}) + continue + key = k if drops("dedupe") else e["digest"] + if key in over: + stated.append({"digest": e["digest"], "verdict": "set-aside reason=receipts_overlap"}) + continue + out = e["out"] + b = out["batch"] + checked = out["reports_checked"] or drops("reports-checked") + end = b["start"] + b["duration"] + stated.append({"digest": e["digest"], "verdict": "stands", + "batch": {"start": b["start"], "duration": b["duration"], "from_ms": b["start"] * tp * 1000, + "to_ms": end * tp * 1000}, + "collectable_from_ms": (end * tp + cat["hold_s"]) * 1000, "report_count": out["report_count"], + "reports_checked": checked, "rows": rows(cat, out["result"])}) + standing.append((key, out, checked)) # 4 + # Each receipt counted once, its rows summed as exact integers; one given more than once is + # checked when any of its occurrences was. + counted, batches, vec = set(), [], [0] * cat["cells"] + for key, out, _ in standing: + if key in counted: + continue + counted.add(key) + batches.append({"start": out["batch"]["start"], "duration": out["batch"]["duration"]}) + vec = [a + b for a, b in zip(vec, out["result"])] + checked = {key for key, _, c in standing if c} + every = all(c for _, _, c in standing) if drops("checked-any") else all(k in checked for k in counted) + totals = {"batches": batches, "reports_checked": every, "rows": rows(cat, vec) if standing else []} + return {"outcome": "table", "receipts": stated, "totals": totals} + + +# ------------------------------------------------------------------ §6.3 and §7: a flow, re-run + +def open_input_share(sk, role, aad, ct): + """DAP §4.4.2.1: the PlaintextInputShare's private extensions and payload.""" + def go(): + pt = TAV.hpke_open(ct["enc"], sk, b"dap-20 input share" + bytes([1, role]), aad, ct["payload"]) + r = TAV.Rd(pt) + exts = TAV.read_exts(r) + payload = r.opaque(4) + r.end() + if not payload: + raise ValueError("empty payload") + return exts, payload + return memo(("open", sk, role, aad, ct["config_id"], ct["enc"], ct["payload"]), go) + + +def verify_init(p, vk, ctx, agg, nonce, public, share): + return memo(("init", p.v.length, p.v.chunk, vk, ctx, agg, nonce, public, share), + lambda: p.verify_init(vk, ctx, agg, nonce, public, share)) + + +def meas_share(p, ctx, agg, share): + return memo(("meas", p.v.length, p.v.chunk, ctx, agg, share), lambda: p.meas_share(ctx, agg, share)) + + +def in_interval(x, iv): + return iv[0] <= x < iv[0] + iv[1] + + +def run_flow(doc, f): + """One flow of §11, re-run from its reports: the failures.""" + fails = [] + K = doc["keys"] + + def bad(what): + fails.append("flow %s: %s" % (f["name"], what)) + + try: + tf, cat, task, _ = receiver_task_file(doc, f["task_file"]) + except Refuse as e: + bad("its task file is refused %s" % e.reason) + return fails + t, p, tid, iv, cfg = task["t"], task["p"], task["tid"], task["interval"], task["cfg"] + tp, hold, floor = t["time_precision"], cat["hold_s"], t["min_batch_size"] + if tid.hex() != f["task_id"]: + bad("task id") + vk = TAV.hkdf_expand(TAV.hkdf_extract(b"verify_key", bytes.fromhex(K["verify_key_seed"])), tid, 32) + if vk.hex() != f["verify_key"]: + bad("verification key (telemetry-aggregation §4.4)") + ctx = b"dap-20" + tid + lsk, hsk, csk = (bytes.fromhex(K[k]["private_key"]) for k in ("leader_hpke", "helper_hpke", "collector_hpke")) + lconf, hconf = suite_config(tf["leader_hpke"]), suite_config(tf["helper_hpke"]) + if lconf["pk"] != TAV.x25519(lsk, TAV.BASE) or hconf["pk"] != TAV.x25519(hsk, TAV.BASE): + bad("the configuration the reports are sealed to is not the aggregator's key (§6.3)") + leader_ids = [c["id"] for c in tf["leader_hpke"]] + listed = {} + for x in f["reports"] + f.get("late", []): + listed[x["id"]] = x + late = {x["id"] for x in f.get("late", [])} + + seen, collected, pending, first = set(), [], [], {} + fate, buckets, outcomes_stated = {}, {}, None + + def merged(q): + out = {"l": [0] * p.v.OUTPUT_LEN, "h": [0] * p.v.OUTPUT_LEN, "n": 0, "ck": bytes(32), "times": [], "ids": []} + for tm in range(q[0], q[0] + q[1]): + if tm in buckets: + b = buckets[tm] + out["l"], out["h"] = TAV.vadd(p.f, out["l"], b["l"]), TAV.vadd(p.f, out["h"], b["h"]) + out["n"] += b["n"] + out["ck"] = bytes(a ^ c for a, c in zip(out["ck"], b["ck"])) + out["times"].append(tm) + out["ids"] += b["ids"] + return out + + def collected_at(tm): + return any(in_interval(tm, q) for q in collected) + + for s in f["steps"]: + if s["step"] == "upload": # §6.4; DAP §4.4.2.2 + try: + utid, reps = read_upload(bytes.fromhex(s["file"])) + except Refuse: + bad("upload %s does not read" % s["name"]) + continue + if utid != tid: + bad("upload %s names another task" % s["name"]) + if "sources" in s: + byid = {} + for src in s["sources"]: + try: + stid, srep = read_upload(bytes.fromhex(src)) + except Refuse: + bad("a source of %s does not read" % s["name"]) + continue + if stid != tid: + bad("a source of %s names another task" % s["name"]) + for x in srep: + if byid.setdefault(x["m"]["id"], x["raw"]) != x["raw"]: + bad("two reports of one id with other bytes merged into one file") + if write_upload(tid, [byid[k] for k in sorted(byid)]).hex() != s["file"]: + bad("upload %s is not its sources merged, ascending by id (§6.4)" % s["name"]) + resp, errs = b"", [] + for rep in reps: + m, rid = rep["m"], rep["m"]["id"] + first.setdefault(rid.hex(), rep) + if rep["leader"]["config_id"] not in leader_ids: + e = "hpke_unknown_config_id" + elif not in_interval(m["time"], iv) and not drops("upload-dropped"): + e = "report_dropped" + elif (rid in seen or collected_at(m["time"])) and not drops("upload-replay"): + e = "report_replayed" + else: + e = None + seen.add(rid) + pending.append(rep) + if e: + resp += rid + bytes([CODE[e]]) + errs.append({"id": rid.hex(), "error": e}) + if rid not in seen: + fate[rid.hex()] = (e, None) + if resp.hex() != s["response"] or errs != s["errors"]: + bad("upload %s: the leader's UploadErrors" % s["name"]) + if "shares" in s: + srcs = [[x["m"]["id"] for x in read_upload(bytes.fromhex(src))[1]] for src in s["sources"]] + got = [b"".join(resp[k:k + 17] for k in range(0, len(resp), 17) if resp[k:k + 16] in ids).hex() + for ids in srcs] + if got != s["shares"]: + bad("upload %s: each source's share of the response (§6.4)" % s["name"]) + elif s["step"] == "aggregate": # DAP §4.5; §7.2 + init = bytes([0]) + u32(0) + (0).to_bytes(2, "big") + resp, refused, job = b"", [], [] + for rep in pending: + m, rid = rep["m"], rep["m"]["id"] + aad = TAV.input_share_aad(tid, cfg, m, rep["public"]) + try: + lexts, lpay = open_input_share(lsk, 2, aad, rep["leader"]) + except ValueError: + refused.append((rid, "hpke_decrypt_error", None)) + continue + if not in_interval(m["time"], iv): + refused.append((rid, "report_dropped", None)) + continue + why = report_rule(cat, tid, rid, m["exts"], lexts, 2) if not drops("token-check") else None + if why: + refused.append((rid,) + why) + continue + try: + lstate, lvs = verify_init(p, vk, ctx, 0, rid, rep["public"], lpay) + except ValueError: + refused.append((rid, "vdaf_verify_error", None)) + continue + out = b"\x00" + u32(len(lvs)) + lvs + init += m["raw"] + u32(len(rep["public"])) + rep["public"] + TAV.write_ct(rep["helper"]) + \ + u32(len(out)) + out + try: + hexts, hpay = open_input_share(hsk, 3, aad, rep["helper"]) + except ValueError: + resp += rid + b"\x02" + bytes([CODE["hpke_decrypt_error"]]) + job.append((rid, "hpke_decrypt_error", None)) + continue + why = report_rule(cat, tid, rid, m["exts"], hexts, 3) if not drops("token-check") else None + if why: + resp += rid + b"\x02" + bytes([CODE[why[0]]]) + job.append((rid,) + why) + continue + try: + hstate, hvs = verify_init(p, vk, ctx, 1, rid, rep["public"], hpay) + msg = p.message(ctx, [lvs, hvs]) + hout = p.verify_next(hstate, msg) + except ValueError: + resp += rid + b"\x02" + bytes([CODE["vdaf_verify_error"]]) + job.append((rid, "vdaf_verify_error", None)) + continue + if collected_at(m["time"]): # DAP §4.5.4.3 + resp += rid + b"\x02" + bytes([CODE["batch_collected"]]) + job.append((rid, "batch_collected", None)) + continue + fin = b"\x02" + u32(len(msg)) + msg + resp += rid + b"\x00" + u32(len(fin)) + fin + lout = p.verify_next(lstate, msg) + b = buckets.setdefault(m["time"], {"l": [0] * p.v.OUTPUT_LEN, "h": [0] * p.v.OUTPUT_LEN, "n": 0, + "ck": bytes(32), "ids": []}) + b["l"] = TAV.vadd(p.f, b["l"], TAV.decode_vec(p.f, lout)) + b["h"] = TAV.vadd(p.f, b["h"], TAV.decode_vec(p.f, hout)) + b["n"] += 1 + b["ck"] = bytes(a ^ c for a, c in zip(b["ck"], sha(rid))) + b["ids"].append((rid, m["time"])) + job.append((rid, "committed", None)) + pending = [] + for rid, o, why in refused + job: + fate[rid.hex()] = o if o == "committed" else (o, why) + outcomes = [{"id": rid.hex(), "outcome": o, "reason": why} for rid, o, why in refused + job] + if init.hex() != s["init_req"]: + bad("the AggregationJobInitReq is not DAP §4.5.3.1's") + if resp.hex() != s["resp"]: + bad("the AggregationJobResp is not DAP §4.5.3.2's") + if outcomes != s["outcomes"]: + bad("the reports' outcomes at aggregation") + outcomes_stated = s["outcomes"] + elif s["step"] == "collect": # DAP §4.6; §7.1 + req = bytes.fromhex(s["request"]) + try: + c = TAV.read_collection(req) + q = TAV.interval_of(c["config"]) + except ValueError: + bad("collection %s does not read" % s["name"]) + continue + if s["batch"] != {"start": q[0], "duration": q[1]}: + bad("collection %s: its batch" % s["name"]) + mg = merged(q) + due = (q[0] + q[1]) * tp + hold + if s["now_s"] < due and not drops("hold"): + got = "processing" + elif c["agg_param"]: + got = "invalidAggregationParameter" + elif q[1] == 0: + got = "batchInvalid" + elif any(q[0] < x[0] + x[1] and x[0] < q[0] + q[1] for x in collected): + got = "batchOverlap" + elif mg["n"] < floor: + got = "invalidBatchSize" + else: + got = "completed" + if got != s["outcome"]: + bad("collection %s: stated %s, the leader gives %s" % (s["name"], s["outcome"], got)) + if "helper_request" in s: # DAP §4.6.4 + try: + r = TAV.Rd(bytes.fromhex(s["helper_request"])) + hc = {"batch_mode": r.u(1), "config": r.opaque(2), "agg_param": r.opaque(4), + "extensions": TAV.read_exts(r)} + mode, sel, n, ck = r.u(1), r.opaque(2), r.u(8), r.take(32) + r.end() + hq = TAV.interval_of(sel) + ok = mode == 1 and hc["batch_mode"] == 1 and TAV.interval_of(hc["config"]) == q and hq == q and \ + (n, ck) == (mg["n"], mg["ck"]) + if mg["n"] < floor: + hgot = "invalidBatchSize" + else: + hgot = "batchMismatch" if (n, ck) != (mg["n"], mg["ck"]) else "accept" + except ValueError: + ok, hgot = False, "invalidMessage" + if not ok or hgot != s["helper_outcome"]: + bad("collection %s: the helper's request or its refusal" % s["name"]) + if got == "completed" and s["outcome"] == "completed": + collected.append(q) + check_collection(doc, s, cfg, tid, req, q, mg, csk, task, bad) + for rid, x in listed.items(): + rep = first.get(rid) + if rep is None: + bad("report %s is never uploaded" % rid) + continue + if rep["m"]["time"] != x["time"]: + bad("report %s: its time" % rid) + if rep["leader"]["config_id"] != lconf["id"] or rep["helper"]["config_id"] != hconf["id"]: + bad("report %s is not sealed to each list's first configuration of DAP's suite (§6.3)" % rid) + if rid in late: + want = ("report_replayed", None) + elif x["kind"] == "presentation": + want = "committed" + else: + want = (x["error"], x["reason"]) + if fate.get(rid) != want: + bad("report %s (%s): stated %s, the run gives %s" % (rid, x["kind"], want, fate.get(rid))) + if x["kind"] == "presentation": + check_presentation(doc, f, x, rep, tf, cat, task, lsk, hsk, ctx, bad) + for rid, rep in first.items(): + if rid not in listed: + bad("an uploaded report %s is not listed" % rid) + if outcomes_stated is None: + bad("no aggregation job") + return fails + + +def check_presentation(doc, f, x, rep, tf, cat, task, lsk, hsk, ctx, bad): + """A presentation's report: §6.2's contribution, §6.3's extensions and its one-hot measurement.""" + p, tid, m = task["p"], task["tid"], rep["m"] + aad = TAV.input_share_aad(tid, task["cfg"], m, rep["public"]) + try: + lexts, lpay = open_input_share(lsk, 2, aad, rep["leader"]) + hexts, hpay = open_input_share(hsk, 3, aad, rep["helper"]) + except ValueError: + bad("presentation %s does not open" % x["id"]) + return + if m["exts"] or lexts != hexts or (cat["attest"] and [e[0] for e in lexts] != [TOKEN_EXT]) or \ + (not cat["attest"] and lexts): + bad("presentation %s: its extensions are not §6.3's" % x["id"]) + return + pool = [{"id": x["id"], "token": lexts[0][1].hex()}] if cat["attest"] else [] + record = bytes.fromhex(doc["fixtures"]["records"][x["record"]]["bytes"]) + region = None if x["region"] is None else x["region"].encode("utf-8") + got = contribute(doc, cat, task, record, [bytes.fromhex(x["claim"])], region, x["at_ms"], pool) + want = {"outcome": "report", "cell": x["cell"], "creative": x["creative"], "column": x["column"], + "quartile": x["quartile"], "time": x["time"], "id": x["id"] if cat["attest"] else "fresh", "discarded": []} + if got != want: + bad("presentation %s: its contribution (§6.2) is %s" % (x["id"], json.dumps(got))) + meas = TAV.vadd(p.f, meas_share(p, ctx, 0, lpay), meas_share(p, ctx, 1, hpay)) + if meas != [1 if k == x["cell"] else 0 for k in range(cat["cells"])]: + bad("presentation %s: its measurement is not one at its cell (§6.3)" % x["id"]) + + +def check_collection(doc, s, cfg, tid, req, q, mg, csk, task, bad): + """A completed collection: the shares, the statements, the result and the receipt.""" + p, info = task["p"], task["info"] + share_req = req + b"\x01" + (16).to_bytes(2, "big") + q[0].to_bytes(8, "big") + q[1].to_bytes(8, "big") + \ + mg["n"].to_bytes(8, "big") + mg["ck"] + if share_req.hex() != s["share_req"]: + bad("collection %s: the AggregateShareReq is not DAP §4.6.4's" % s["name"]) + aad = TAV.agg_share_aad(tid, cfg, req) + try: + hct = TAV.read_ct(TAV.Rd(bytes.fromhex(s["helper_share"]))) + hshare = TAV.hpke_open(hct["enc"], csk, b"dap-20 aggregate share" + bytes([3, 0]), aad, hct["payload"]) + r = TAV.Rd(bytes.fromhex(s["resp"])) + n, iv = r.u(8), (r.u(8), r.u(8)) + lct, hct2 = TAV.read_ct(r), TAV.read_ct(r) + r.end() + lshare = TAV.hpke_open(lct["enc"], csk, b"dap-20 aggregate share" + bytes([2, 0]), aad, lct["payload"]) + sts = [] + for k, role in (("leader_statement", 2), ("helper_statement", 3)): + sct = TAV.read_ct(TAV.Rd(bytes.fromhex(s[k]))) + info_s = b"wai-telemetry-aggregate statement" + bytes([role, 0]) + sts.append(TAV.read_statement(TAV.hpke_open(sct["enc"], csk, info_s, aad, sct["payload"]))) + except (ValueError, Refuse): + bad("collection %s does not open with the collector's key" % s["name"]) + return + times = mg["times"] + if n != mg["n"] or iv != (min(times), max(times) - min(times) + 1) or hct2 != hct: + bad("collection %s: the CollectionJobResp's count, interval or helper share" % s["name"]) + if TAV.decode_vec(p.f, lshare) != mg["l"] or TAV.decode_vec(p.f, hshare) != mg["h"]: + bad("collection %s: an aggregate share is not the batch's" % s["name"]) + for st, role, share, key in ((sts[0], 2, lshare, info["leader"]), (sts[1], 3, hshare, info["helper"])): + if (st["role"], st["task_id"], st["collection"], st["batch"], st["count"], st["checksum"], st["agg_share"], + st["signer"]) != (role, tid, sha(req), q, mg["n"], mg["ck"], share, key): + bad("collection %s: a statement is not its share's (telemetry-aggregation §6.2)" % s["name"]) + if ED.verify(key, b"wai:telemetry-aggregate/share\x01" + st["body"], st["sig"]) is not None: + bad("collection %s: a statement's signature" % s["name"]) + result = TAV.vadd(p.f, mg["l"], mg["h"]) + if result != s["result"]: + bad("collection %s: the result" % s["name"]) + rc = TAV.read_receipt(bytes.fromhex(s["receipt"])) + if (rc["leader"], rc["helper"], rc["result"], rc["task"], rc["collection"], rc["interval"]) != \ + (sts[0]["body"] + sts[0]["sig"], sts[1]["body"] + sts[1]["sig"], result, cfg, req, iv): + bad("collection %s: the receipt is not the collection's" % s["name"]) + given = sorted(json.dumps({"id": rid.hex(), "time": tm, "task": tid.hex()}, sort_keys=True) + for rid, tm in mg["ids"]) + holders = [x for x in doc["receipts"] if x["receipt"] == s["receipt"]] + with_reports = [x for x in holders if x["reports"] is not None] + if not holders or (with_reports and not any(sorted(json.dumps(g, sort_keys=True) for g in x["reports"]) == given + for x in with_reports)): + bad("collection %s: the receipts section does not hold its receipt with its reports" % s["name"]) + + +# ------------------------------------------------------------------ the corpus + +KINDS = ("catalogues", "tasks", "task_files", "contributions", "uploads", "plans", "settles", "receipts", "tables") + + +def run(doc, kind, c): + if kind == "catalogues": + return catalogue_outcome(bytes.fromhex(c["bytes"])) + if kind == "tasks": + return task_outcome(bytes.fromhex(c["task"]), bytes.fromhex(c["catalogue"])) + if kind == "task_files": + return task_file_outcome(doc, c) + if kind == "contributions": + return contribution_outcome(doc, c) + if kind == "uploads": + return upload_outcome(bytes.fromhex(c["bytes"])) + if kind == "plans": + return plan_outcome(doc, c) + if kind == "settles": + return settle(bytes.fromhex(c["sent"]), bytes.fromhex(c["response"])) + if kind == "receipts": + return receipt_outcome(c) + return table(bytes.fromhex(c["catalogue"]), bytes.fromhex(c["task"]), c["receipts"]) + + +def check_fixtures(doc): + """What the fixtures say of themselves: each creative's digest (ad-presentation §4), each catalogue, + task and task file the cases name by fixture.""" + fails = [] + fx = doc["fixtures"] + for n, c in fx["creatives"].items(): + objs = [{"content_hash": bytes.fromhex(o["content_hash"]), "duration_ms": o["duration_ms"]} + for o in c["objects"]] + if APV.creative_digest(objs).hex() != c["digest"]: + fails.append("creative %s: its digest" % n) + for n, h in fx["task_files"].items(): + try: + tf, cat, task, _ = receiver_task_file(doc, n) + if tf["catalogue"].hex() != fx["catalogues"].get(n, tf["catalogue"].hex()) or \ + tf["task"].hex() != fx["tasks"].get(n, tf["task"].hex()): + fails.append("task file %s: not its fixtures' catalogue and task" % n) + except Refuse as e: + fails.append("task file %s is refused %s under what the receiver holds" % (n, e.reason)) + return fails + + +def strings(v, out): + if isinstance(v, str): + out.append(v) + elif isinstance(v, list): + for x in v: + strings(x, out) + elif isinstance(v, dict): + for x in v.values(): + strings(x, out) + + +def stated_reasons(doc): + """Every reason an outcome of the corpus gives, flows included.""" + out = [] + for kind in KINDS: + for c in doc[kind]: + o = c["outcome"] + if isinstance(o, dict) and o.get("reason"): + out.append(o["reason"]) + for s in [] if kind != "tables" or o.get("outcome") != "table" else o["receipts"]: + m = re.search(r"reason=(\S+)", s["verdict"]) + if m: + out.append(m.group(1)) + for f in doc["flows"]: + for x in f["reports"]: + out += [y for y in (x.get("error"), x.get("reason")) if y] + for s in f["steps"]: + out += [e["error"] for e in s.get("errors", [])] + out += [y for o in s.get("outcomes", []) for y in (o["outcome"], o["reason"]) if y and y != "committed"] + if s["step"] == "collect": + out += [y for y in (s["outcome"], s.get("helper_outcome")) + if y not in ("processing", "completed", "accept", None)] + return out + + +ELSEWHERE = set(TAV.REASONS) | set(SPV.REASONS) | set(SPV.OTHER) | set(APV.REASONS) | set(JWP_REASONS) | \ + set(REPORT_ERRORS.values()) | set(PROBLEMS) | {"count_mismatch", "truncated", "malformed", "unknown_version", + "bad_key", "bad_signature"} +REUSED = ["count_mismatch", "attestation_absent", "attestation_invalid", "task_invalid", "measure_mismatch", + "floor_too_low", "aggregator_alone", "batch_invalid", "task_mismatch", "batch_too_small", "batch_mismatch", + "bad_key", "bad_signature", "pod_signer_unknown", "claim_not_viewable", "claim_duplicate", + "claim_marker_absent", "claim_manifest_unknown", "signer_id_not_origin_bound", "origin_not_anchored", + "authority_not_granted", "anchor_not_pinned", "key_revoked", "report_replayed", "report_dropped", + "invalid_message", "hpke_decrypt_error", "vdaf_verify_error", "invalidBatchSize"] + + +def check(doc, quiet=False): + """The failures of a corpus document.""" + fails = check_fixtures(doc) + for kind in KINDS: + for c in doc[kind]: + try: + got = run(doc, kind, c) + except (Refuse, KeyError, TypeError, ValueError, IndexError, AttributeError) as e: + got = {"error": repr(e)} + if got != c["outcome"]: + fails.append("%s %s" % (kind, c["name"])) + if not quiet: + print("FAIL %s %s\n stated %s\n got %s" % (kind, c["name"], json.dumps(c["outcome"])[:600], + json.dumps(got)[:600])) + for f in doc["flows"]: + try: + ff = run_flow(doc, f) + except (Refuse, KeyError, TypeError, ValueError, IndexError, AttributeError) as e: + ff = ["flow %s: %r" % (f["name"], e)] + fails += ff + if not quiet: + for x in ff: + print("FAIL", x) + if not ff: + n = len(f["reports"]) + len(f.get("late", [])) + print("PASS flow %s: %d reports re-run through %d steps" % (f["name"], n, len(f["steps"]))) + if doc.get("codes") != REASONS: + fails.append("the corpus's codes are not §10's") + given = stated_reasons(doc) + for code in REASONS + REUSED: + if code not in given: + fails.append("no case gives " + code) + for code in sorted(set(given) - set(REASONS) - ELSEWHERE): + fails.append("a case gives %s, a code the extension does not name" % code) + return fails + + +def bounds(): + """§5.4's and §6.4's size bounds, which no vector carries: a file of exactly the bound that + reads in every other respect is read (a task file passes step 1 and is refused at step 2, its + catalogue of zeros not reading), and the same file one byte longer is refused at step 1. + §4.3's bound decides no outcome: no catalogue that meets §4.3 comes near it.""" + fails = [] + suite = struct.pack(">BHHHH", 1, *SUITE, 32) + b"\x09" * 32 + + def hpke_list(cid): + body = bytes([cid]) + suite[1:] + return len(body).to_bytes(2, "big") + body + + def task_file(n): + body = (TASK_MAGIC + b"\x01" + (0).to_bytes(2, "big") + u32(n) + b"\x00" * n + hpke_list(1) + hpke_list(2) + + b"\x00" * 32 + (1).to_bytes(2, "big") + b"x") + return body + b"\x00" * 64 + + ct = b"\x01" + (1).to_bytes(2, "big") + b"\x01" + u32(1) + b"\x01" + + def upload(n): + report = b"\x00" * 16 + (0).to_bytes(8, "big") + (0).to_bytes(2, "big") + u32(n) + b"\x00" * n + ct + ct + return write_upload(b"\x00" * 32, [report]) + + def outcome(fn, b): + try: + fn(b) + return "read" + except Refuse as e: + return e.reason + + for what, make, bound, fn, inside, past in ( + ("task file", task_file, MAX_TASK_FILE, lambda b: accept_task_file(b, [], []), "catalogue_malformed", + "task_file_malformed"), + ("upload file", upload, MAX_UPLOAD, read_upload, "read", "upload_malformed")): + at = bound - len(make(0)) + for b, want in ((make(at), inside), (make(at + 1), past)): + got = outcome(fn, b) + if got != want: + fails.append("a %s of %d bytes: %s, not %s" % (what, len(b), got, want)) + return fails + + +# ------------------------------------------------------------------ mutations and weakenings + +def flip(h, at): + b = bytearray(bytes.fromhex(h)) + b[at % len(b)] ^= 0x01 + return b.hex() + + +def case(d, kind, name): + return next(c for c in d[kind] if c["name"] == name) + + +def flow(d, name): + return next(f for f in d["flows"] if f["name"] == name) + + +def step(f, name): + return next(s for s in f["steps"] if s.get("name") == name or s["step"] == name) + + +def mutations(): + """Copies of the corpus, one defect each, every one of which must fail.""" + def m_catalogue_hold(d): + c = case(d, "catalogues", "flight") + b = bytearray.fromhex(c["bytes"]) + b[5 + 4 + 2 + 14 + 3] ^= 0x01 # the last byte of hold_s + c["bytes"] = b.hex() + + def m_region_column(d): + case(d, "contributions", "region_subdivision_of_listed_country")["outcome"].update(column="other", cell=14) + + def m_bucket_edge(d): + case(d, "contributions", "bucket_first_ms")["at_ms"] -= 1 + + def m_quartile(d): + case(d, "contributions", "q4_three_quarters")["outcome"].update(quartile=5, cell=4) + + def m_pool_discarded(d): + case(d, "contributions", "token_pool_skips_bad")["outcome"]["discarded"] = [] + + def m_task_retention(d): + case(d, "tasks", "flight")["outcome"]["retention_s"] += 1 + + def m_task_file_bit(d): + c = case(d, "task_files", "flight") + c["bytes"] = flip(c["bytes"], 40) + + def m_anchor(d): + case(d, "task_files", "flight")["anchors"] = ["fetched"] + + def m_floor_flag(d): + case(d, "tables", "flight")["outcome"]["totals"]["rows"][0]["floor_met"] = False + + def m_row_count(d): + case(d, "tables", "flight")["outcome"]["receipts"][1]["rows"][5]["presentations"] = 50 + + def m_receipt_byte(d): + c = case(d, "receipts", "r0") + c["receipt"] = flip(c["receipt"], len(c["receipt"]) // 4) + + def m_receipt_reports(d): + case(d, "receipts", "r0")["reports"].pop() + + def m_hold(d): + s = step(flow(d, "flight"), "collect_b0_held") + s["now_s"] += 1 + + def m_late_error(d): + step(flow(d, "flight"), "late_b0")["errors"][0]["error"] = "batch_collected" + + def m_token_outcome(d): + o = step(flow(d, "flight"), "aggregate")["outcomes"][0] + o.update(outcome="committed", reason=None) + + def m_init_byte(d): + s = step(flow(d, "flight"), "aggregate") + s["init_req"] = flip(s["init_req"], 400) + + def m_merge_share(d): + s = step(flow(d, "flight"), "relay_merged") + s["shares"].reverse() + + def m_presentation_cell(d): + x = next(r for r in flow(d, "open")["reports"] if r["kind"] == "presentation") + x["cell"] = (x["cell"] + 1) % 5 + + def m_budget(d): + case(d, "plans", "budget_exact")["budget"] -= 1 + + def m_plan_retention(d): + case(d, "plans", "retention_exact")["t_ms"] -= 1 + + def m_upload_order(d): + c = case(d, "uploads", "three_reports") + tid, reps = read_upload(bytes.fromhex(c["bytes"])) + c["bytes"] = write_upload(tid, [reps[1]["raw"], reps[0]["raw"], reps[2]["raw"]]).hex() + + def m_settle_too_early(d): + o = case(d, "settles", "each_error")["outcome"] + o["delete"] = sorted(o["delete"] + o["keep"]) + o["keep"] = [] + + def m_overlap_gone(d): + d["tables"].remove(case(d, "tables", "flight_overlap")) + + def m_codes(d): + d["codes"].reverse() + + def m_creative_fixture(d): + o = d["fixtures"]["creatives"]["A"]["objects"][0] + o["duration_ms"] += 1 + + return [m_catalogue_hold, m_region_column, m_bucket_edge, m_quartile, m_pool_discarded, m_task_retention, + m_task_file_bit, m_anchor, m_floor_flag, m_row_count, m_receipt_byte, m_receipt_reports, m_hold, + m_late_error, m_token_outcome, m_init_byte, m_merge_share, m_presentation_cell, m_budget, + m_plan_retention, m_upload_order, m_settle_too_early, m_overlap_gone, m_codes, m_creative_fixture] + + +WEAKENINGS = { + "cat-version": "§4.3 rule 1: version 1", + "cat-terms": "§4.3 rule 2: the terms", + "cat-hold": "§4.3 rule 3: a hold above zero", + "cat-signers": "§4.3 rule 4: one to sixteen signers", + "cat-creatives": "§4.3 rule 5: a creative", + "cat-order": "§4.3 rules 4 to 8: strictly ascending lists", + "cat-region": "§4.3 rule 6: each region a code", + "cat-overlap": "§4.3 rule 6: no country beside its subdivision", + "cat-cells": "§4.3 rule 7: at most 4,096 cells", + "cat-keys": "§4.3 rule 8: the keys' count", + "cat-key-form": "§4.3 rule 8: each key's form", + "catalogue-digest": "§5.3 step 2: measure 5 and the catalogue's digest", + "task-precision": "§5.3 step 3: an hour's precision", + "task-interval": "§5.3 step 3: a flight of a duration", + "task-retention": "§5.3 step 3: the retention instant's bound", + "chunk-length": "§5.3 step 4: the chunk length", + "tf-version": "§5.4 step 1: version 1", + "tf-signer-ascii": "§5.4 step 1: an ASCII signer_id", + "tf-hpke-ids": "§5.4 step 1: distinct configuration ids", + "tf-hpke-suite": "§5.4 step 1: DAP's suite in each list", + "tf-signature": "§5.4 step 4: the file's signature", + "tf-authority": "§5.4 step 5: the authority aggregate/task", + "tf-pinned": "§5.4 step 5: a pinned anchor", + "tf-revocation": "§5.4 step 5: revisions the bearer brings", + "shared": "§6.2 step 2: a shared record", + "terms-equal": "§6.2 step 3: the catalogue's terms", + "creative-listed": "§6.2 step 5: a listed creative", + "instant": "§6.2 step 6: a known instant", + "flight-window": "§6.2 step 7: a time within the flight", + "token-pool": "§6.2 step 8: each pair's token", + "region-subdivision": "§4.2: a subdivision's column is its listed country's", + "hpke-first": "§6.3: the first configuration of DAP's suite", + "token-check": "§7.2: the aggregators' report rule", + "token-challenge": "§7.2: a token's challenge", + "helper-token": "§7.2: the helper checks its own share", + "public-extension": "§7.2: no public extension", + "hold": "§7.1: the hold", + "upload-dropped": "DAP §4.4.2.2: a report outside the flight dropped at upload", + "upload-replay": "DAP §4.4.2.2: a report replayed at upload", + "batch-in-task": "§8.1 step 12: the batch within the flight", + "count-sum": "§8.1 step 13: the elements sum to the count", + "count-integer": "§8.1 step 13: integers, each at most the count", + "task-equal": "§8.2 step 2: the given task", + "dedupe": "§8.2 step 3: equal receipts are one", + "overlap": "§8.2 step 3: overlapping receipts set aside", + "reports-checked": "§8.2: whether a receipt's reports were checked", + "checked-any": "§8.2: a receipt given more than once checked when any occurrence was", + "tf-bound": "§5.4 step 1: at most 1,048,576 bytes", + "upload-bound": "§6.4: at most 16,777,216 bytes", + "upload-version": "§6.4: version 1", + "upload-length": "§6.4: a file that ends before its upload's length", + "upload-order": "§6.4: reports in ascending order of id", + "plan-deadline": "§6.5: timely and late", + "plan-retention": "§6.5: dropped at the retention instant", + "plan-budget": "§6.5: the budget", + "settle-subsequence": "§6.6: a response of the file's ids in order", + "settle-too-early": "§6.6: report_too_early kept", + "settle-unknown-value": "§6.6: a value DAP does not define kept", +} + + +def main(argv): + if len(argv) != 2: + print(__doc__) + return 2 + fails = [] + st = ED._self_test() + ct = TAV.crypto_self_test() + print(("PASS" if not st and not ct else "FAIL") + " Ed25519, TurboSHAKE128, X25519 and HPKE self-tests") + fails += (["ed25519 self-test"] if st else []) + ct + print(("PASS" if len(REASONS) == 11 else "FAIL") + " §10 read from the extension: %d codes" % len(REASONS)) + with open(os.path.join(argv[1], "vectors.json"), encoding="utf-8") as fh: + doc = json.load(fh) + got = check(doc) + fails += got + sizes = ", ".join("%d %s" % (len(doc[k]), k) for k in KINDS + ("flows",)) + print("%s %s: %d failure(s)" % ("PASS" if not got else "FAIL", sizes, len(got))) + extra = sorted(set(os.listdir(argv[1])) - {"vectors.json", "README.md"}) + if extra: + fails.append("files the corpus does not hold: %s" % extra) + b = bounds() + print(("PASS" if not b else "FAIL") + " the size bounds of §5.4 and §6.4, at their edge") + fails += b + caught = 0 + for m in mutations(): + d = copy.deepcopy(doc) + m(d) + if check(d, quiet=True): + caught += 1 + else: + fails.append("mutation %s was not caught" % m.__name__) + n = len(mutations()) + print("%s %d of %d mutated copies fail" % ("PASS" if caught == n else "FAIL", caught, n)) + weak = 0 + for name, what in WEAKENINGS.items(): + SKIP.clear() + SKIP.add(name) + if check(doc, quiet=True) or bounds(): + weak += 1 + else: + fails.append("a verifier without %s (%s) passes the corpus" % (what, name)) + SKIP.clear() + n = len(WEAKENINGS) + print("%s %d of %d weakened verifiers are caught" % ("PASS" if weak == n else "FAIL", weak, n)) + for x in fails: + print("FAIL", x) + print(("PASS" if not fails else "FAIL") + " impression aggregates corpus") + return 1 if fails else 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/wai/live-conformance/impressions/README.md b/wai/live-conformance/impressions/README.md new file mode 100644 index 000000000..6d35cc522 --- /dev/null +++ b/wai/live-conformance/impressions/README.md @@ -0,0 +1,70 @@ +# live-conformance/impressions — ad presentations counted over a bearer with no return path + +The corpus of [`extensions/impression-aggregates.md`](../../extensions/impression-aggregates.md) +§11, in one file, `vectors.json`. + +**Provenance.** Generated here by `wai_impression_aggregate_vectors gen` (`wai-rs`, feature +`impression_aggregate`), from Ed25519 keys, salts, report ids, Prio3 randomness, HPKE ephemeral +seeds and token nonces and salts that are SHA-256 of a fixed label and a name; constant instants; +and manifests, records and claims written by the generator. The issuer key is RFC 9578 Appendix +A.2's first test vector, as the presentation corpora use it, and every token is signed with it by +RSASSA-PSS over a salt from a seed. The reference aggregators of `wai-rs` run every flow. No media +and no input from outside this repository. + +`flight` gives the flight's first hour (`first_hour`, in `time_precision` units), its length and +its start in milliseconds. `keys` names every key by its role, in hexadecimal: the task origin's +keys `t1` and `t2` (`aggregate/task`) and `d1` (`delivery` alone), a stranger origin's `s1`, the +stitcher and a stranger stitcher, the three statement keys and a stranger's, each aggregator's and +the collector's HPKE configuration and private key, the verification keys' seed, and the issuer. +`fixtures` holds what cases name: the creatives `A`, `B` and `C`; the manifests as text (`mpd`, +`mpd_short` without the first two events, `playlist`); the pod-input records with what each is; +the catalogues `flight`, `open` and `bound` (the flight's with a hold of 3,599 s); the tasks; the +key logs (`rev0`, `rev1`, which revokes `t2` and arrives on the bearer, and `stranger`); the +anchor records (`pinned` at `rev0`, `fetched`); `receiver`, the revisions and anchors a receiver +holds; and the task files `flight`, `open` and `twin`. + +- `catalogues` (§4.3) are each a catalogue's `bytes`; `outcome` is `read`, with its `digest`, its + `cells` and its `chunk` length, or `refuse` and its `reason`. +- `tasks` (§5.3) are a TaskConfiguration (`task`) and a `catalogue`; `outcome` is `accept`, with the + `task_id` and the `retention_s`, or `refuse`. +- `task_files` (§5.4) are a file's `bytes`, the `revisions` and the `anchors` held, by fixture name; + `outcome` is `accept`, with the file's `digest`, the `task_id` and the `confirmation` as + jwp-receipts §7.4 reports it, or `refuse`. +- `contributions` (§6.2) name a `task_file` and a `record`, and give the session's `claims` (the + last is the one judged), the `region`, `at_ms` and the `pool`; every manifest and creative of + `fixtures` is held, and the task file is accepted under `receiver`. `outcome` is `report`, with + the `cell`, `creative`, `column`, `quartile`, `time`, the report `id` (`fresh` without + attestation) and the pool ids `discarded`, or `no_report` with its `reason`. +- `flows` (§6–§7) are end to end: `reports` lists each report, a presentation with its `record`, + `claim`, `region`, `at_ms` and its contribution's cell, or a report written to fail with the + `error` and the WAI `reason` it meets; `steps` are, in order, each upload (the `WIU1` `file`, the + leader's `response` as DAP UploadErrors and its `errors`, and for a relay's merge its `sources` + and each source's `shares` of the response), the aggregation job (its request, response and each + report's `outcome` and `reason`), and each collection at `now_s` (`processing`, a DAP problem + type, or `completed` with every message, the `result` and the signed `receipt`). The `flight` + flow's `late` report is uploaded after its batch's collection. +- `uploads` (§6.4) are a file's `bytes`; `outcome` is `read`, with the `task_id` and the `ids`, or + `refuse`. +- `plans` (§6.5) are the `stored` reports, the instant `t_ms` and the `budget`, under the open task + file; `outcome` gives `send` (each id and its class), `defer`, `drop` and the `file`. +- `settles` (§6.6) are the file `sent` and the `response`; `outcome` gives whether it `settles`, + and the ids to `delete` and to `keep`. +- `receipts` (§8.1) are a `receipt`, a `catalogue` and the batch's `reports` (or `null`); `outcome` + is `accept`, with telemetry-aggregation §8.2's fields and `reports_checked`, or `refuse` with its + `reason` and where (`at`). +- `tables` (§8.2) are a `catalogue`, a `task` and `receipts`, each with its reports or `null`; + `outcome` gives each receipt's `digest` and `verdict`, a standing one's batch, instants, count + and `rows`, and the `totals`; or `refuse` and its `reason`. + +Everything is synthetic: keys attest nothing, the key logs are test logs, origins are reserved +example domains, and regions are ISO 3166-1's user-assigned codes and subdivisions of them. Each +case states the outcome it was written to have, declared in the generator, never copied from a +verifier. The size bounds of §5.4 and §6.4 are carried by no vector; both implementations check +each at its edge: a file of exactly the bound that reads in every other respect is read, and the +same file one byte longer is refused. §4.3's bound decides no outcome, so neither checks it. + +`wai_impression_aggregate_vectors verify` and `tests/impression_aggregate.rs` check that the file +regenerates byte for byte and that `wai-rs` reaches every stated outcome; the test also checks +the equivalence the extension's §11 describes, which is not stored. `../impression_aggregate_verify.py` is the second +implementation, written from the extension's text, which also mutates copies of the corpus and +drops each of its own checks in turn and requires each to be caught. diff --git a/wai/live-conformance/impressions/vectors.json b/wai/live-conformance/impressions/vectors.json new file mode 100644 index 000000000..b43643d1a --- /dev/null +++ b/wai/live-conformance/impressions/vectors.json @@ -0,0 +1,15523 @@ +{ + "corpus": "wai.delivery.impressions", + "extension": "extensions/impression-aggregates.md", + "drafts": { + "dap": "draft-ietf-ppm-dap-20", + "vdaf": "draft-irtf-cfrg-vdaf-22" + }, + "flight": { + "start_ms": 1793491200000, + "time_precision": 3600, + "first_hour": 498192, + "hours": 24 + }, + "keys": { + "task_origin": "https://tasks.example", + "t1": "333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a1", + "t2": "d177984baa558f379bd689028fabbcca181a01fc5e60f3f9b1efd44a561e19c1", + "d1": "ce3693d7efb0b6f499e87654b99c4f2924db9bda913dcd78b59f567a4020d693", + "stranger_origin": "https://stranger.example", + "s1": "fa8480ba0169807db16ec9ab5155d8e541f646ecb0d4ad668d34c84a573449be", + "stitcher": "5a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2", + "stranger_stitcher": "f88bd47e728340a820a9c870fdffb9f549b5e361f8ea9e93ab160451e45830f9", + "leader": "5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6", + "helper": "ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf", + "collector": "6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1", + "stranger": "cece3930000556501fc6e2c676384c67e10f0658df270cb26d90b0458c8bfb18", + "leader_hpke": { + "config": "010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf68", + "private_key": "98eb92a5933642db25ae471cc51ad9167caaf28922ff650c4f1fd89028f63968" + }, + "helper_hpke": { + "config": "020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942", + "private_key": "e9621a6c7a873ee97e8d11760ed96d66e46bb29dcbf3d9cc7250720307fd7dfc" + }, + "collector_hpke": { + "config": "03002000010001002068b68204d83d15a18aee5cfe477bc071b54d7eab55de5fe2452a3667ba851655", + "private_key": "7d4adacd42eeff303dcd462975805ba9f4b89347154616f047f5ff30e5ce08c4" + }, + "verify_key_seed": "c3edfd556bd56d86676b0173272f6b1a8d290f80c2c1a6f32c514c06ab35a23e", + "issuer": { + "name": "issuer.example", + "token_type": 2, + "key": "30820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001" + } + }, + "fixtures": { + "creatives": { + "A": { + "digest": "6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502", + "objects": [ + { + "content_hash": "f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d", + "duration_ms": 4000 + }, + { + "content_hash": "cd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d", + "duration_ms": 4000 + }, + { + "content_hash": "53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b", + "duration_ms": 4000 + }, + { + "content_hash": "deb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251", + "duration_ms": 3000 + } + ] + }, + "B": { + "digest": "b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4", + "objects": [ + { + "content_hash": "090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf", + "duration_ms": 4000 + }, + { + "content_hash": "a20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a7622", + "duration_ms": 4000 + }, + { + "content_hash": "9f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5", + "duration_ms": 4000 + }, + { + "content_hash": "2f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6", + "duration_ms": 3000 + } + ] + }, + "C": { + "digest": "57965cd460e7c9665c224bc9f9e6f8370c313566ca423f3f615fb1487d02298c", + "objects": [ + { + "content_hash": "6b50361c4ccb9db88980a0ebff0d8d2359c75b235d26ec26978a7d1a23ed8fbd", + "duration_ms": 5000 + }, + { + "content_hash": "7fcb7cbb9e63fcca60d0a0584cf5b12a7e790cb80ca6a3e286a8931a1d18e2fb", + "duration_ms": 5000 + }, + { + "content_hash": "3547380ef870803e69bda75927f5f7e63d7df62baa60078742a7c26df77bdc4c", + "duration_ms": 5000 + } + ] + } + }, + "manifests": { + "mpd": "\n\n", + "mpd_short": "\n\n", + "playlist": "#EXTM3U\n#EXT-X-VERSION:7\n#EXT-X-TARGETDURATION:5\n#EXT-X-MEDIA-SEQUENCE:0\n#EXT-X-PROGRAM-DATE-TIME:2026-11-01T00:59:52.000Z\n#EXTINF:4.000,\nprogram/0.m4s\n#EXTINF:4.000,\nprogram/1.m4s\n#EXT-X-DATERANGE:ID=\"hls-a\",CLASS=\"urn:example:ad\",START-DATE=\"2026-11-01T01:00:00.000Z\",DURATION=15.000,X-AD-ID=\"srv-a-hls\"\n#EXT-X-DISCONTINUITY\n#EXTINF:4.000,\nads/f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d.m4s\n#EXTINF:4.000,\nads/cd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d.m4s\n#EXTINF:4.000,\nads/53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b.m4s\n#EXTINF:3.000,\nads/deb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251.m4s\n#EXT-X-DISCONTINUITY\n#EXTINF:4.000,\nprogram/2.m4s\n" + }, + "records": { + "rec_dash": { + "about": "a break every viewer is shown, marked by DASH events: ads A and B under the flight's terms", + "bytes": "575349310103000000000000000000000000000000000c62726b2d7265635f6461736830750000013b44869634ae6c2e1df21e95456c7e8f34520902374e718e206c8959b0c6ddb1010b6d657373616765446174615553440200000000000000000000000000030202000e006973737565722e6578616d706c650200ebc238efe51ead1f72183ce137e44b8a2d3d917aa0b3d267b748fbb6ad6b948e057372762d61057372762d6100006ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000000189c36c9839d1170a9cc785ab5e7933ab964d68d22d3c0ec027921e02efb463b7057372762d62057372762d620000b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000005a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c27c32e4f006bf99d63316067eb2ab6f5118ea4d771e37b0fbcce580919c70d7269ae66f6fdb0787f681c3098faa22886c8e6824b35933f9c491930e7a7329400f", + "manifest": "mpd" + }, + "rec_hls": { + "about": "a break every viewer is shown, marked by an HLS date range: ad A under the flight's terms", + "bytes": "575349310101000000000000000000000000000000000b62726b2d7265635f686c7330750000019f092e1e059fc9b4da0210a98fdcc8f39ce551c0270ca850ebfbfe95dea228ae0107582d41442d49445553440200000000000000000000000000030202000e006973737565722e6578616d706c65010045908743378fe17237308948443c58486b32a3820de42928973a7f68c3e75498097372762d612d686c73097372762d612d686c7300006ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000005a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c287ba92ec168d1841fe16c6decac2ffab5de8653e8810d2ac43140b3581c00e48b0da689dc1012b7eb9e07dbe297f175edac0a92488d03e735ad3d781ee7d3f01", + "manifest": "playlist" + }, + "rec_session": { + "about": "a break decided for one session: ad A", + "bytes": "57534931010373657373696f6e2d64656369646564210f62726b2d7265635f73657373696f6e30750000013861d7b818007a0570c4cb44e775063dd23c117af3b639181cb98a8f79203114010b6d657373616765446174615553440200000000000000000000000000030202000e006973737565722e6578616d706c650100f04aaf235c08ee4498a8ad374e4c56d784940f886908560b0968f63a8a3c70ae0d7372762d612d73657373696f6e0d7372762d612d73657373696f6e00006ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000005a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c21b41ce4ebac1b6edb55652f6eeeb0e92174840da90a1aaf82282f15a1a623d2d28c0bc9cde89c097191483461888c5589617d2aa54e8a464c3f4899b15f33904", + "manifest": "mpd" + }, + "rec_terms": { + "about": "a break every viewer is shown, ad A, under the open catalogue's terms (video viewability, no attestation)", + "bytes": "575349310103000000000000000000000000000000000d62726b2d7265635f7465726d733075000001b1d1d2f1760d31c1c1b42493ad3fc953edb5e16e29f50e077505781dc4904341010b6d6573736167654461746155534402000000000000000000000000000101000000000100a6e9365b64e74fd36a8921fa43dff03abf3e6fe01b625129ac2ef286ec1fa0f20a7372762d612d6f70656e0a7372762d612d6f70656e00006ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000005a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c29be9f3fdb1fb0872c57779716808b31832285a575216373c238e36e36b7f64dde6ff7cf5e6b29398a73ee92a01b5a7cdad84bd980a2260d0abb4a150aa734c07", + "manifest": "mpd" + }, + "rec_stranger": { + "about": "the flight's terms, ad A, signed by a stitcher the catalogue does not list", + "bytes": "575349310103000000000000000000000000000000001062726b2d7265635f737472616e6765723075000001e9826a0ad787dca2266305a4657255ed1b98ff4ead57847a76c83078fc8c1249010b6d657373616765446174615553440200000000000000000000000000030202000e006973737565722e6578616d706c6501005789f0555f2ade17d03e098c36f674ae21e57767b3da778c7a574fad43b98bd10e7372762d612d737472616e6765720e7372762d612d737472616e67657200006ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502983a000080841e0000000000030000000000000000000000000000000000000000000000000000000000000000f88bd47e728340a820a9c870fdffb9f549b5e361f8ea9e93ab160451e45830f9158ab066ce7b055b02e18878fd2180b4794f9d3cd5c49fd952f4737481a01401536f02ba51b8e994980a69593cb7530507f766049282b56db272e68dc865c803", + "manifest": "mpd" + }, + "rec_c": { + "about": "the flight's terms, creative C, which the catalogue does not list", + "bytes": "575349310103000000000000000000000000000000000962726b2d7265635f63307500000133474eec184ba64db3f4430b10d5ae5ae1fcd8c54de2791ef596513484d7f068010b6d657373616765446174615553440200000000000000000000000000030202000e006973737565722e6578616d706c650100b5885f1d6ff8680f62b28e5b215941ed733604846f3edd079d1cbce8a4f399b1057372762d63057372762d63000057965cd460e7c9665c224bc9f9e6f8370c313566ca423f3f615fb1487d02298c983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000005a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2dfbf6fdaf498e56c99de5e18770a2ba2aa5a719d3b65315d09f8cab499fc2e7728ae5e028185e0e2d35c6760ea2a809d6c1153c1ac9dd72db9e443ec0eed7402", + "manifest": "mpd" + }, + "rec_flipped": { + "about": "the flight's terms, ad A; one bit of the break's name flipped after signing", + "bytes": "575349310103000000000000000000000000000000000f62736b2d7265635f666c69707065643075000001b5bc7d885830d55caaa53e192a0bf95724b116b562bf5d3f62d840d97e3648c5010b6d657373616765446174615553440200000000000000000000000000030202000e006973737565722e6578616d706c6501004e7f71198cf90769f54a29e51575edd4e312714966f7c864e129c8c7ac61d41f0d7372762d612d666c69707065640d7372762d612d666c697070656400006ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502983a000080841e00000000000300000000000000000000000000000000000000000000000000000000000000005a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2411ab405cd1761632ed8e84d11609e8bd0ba2c15d9692c9e532420c32429a9270cb6568ca0c7af98eda9ab773dada15ba0bcea227d151cc0947aa73f4ab8c603", + "manifest": "mpd" + } + }, + "catalogues": { + "flight": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "open": "574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020000", + "bound": "5749433101030202000e006973737565722e6578616d706c6500000e0f015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001" + }, + "tasks": { + "flight": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "twin": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "open": "997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018" + }, + "key_logs": { + "rev0": "{\"grant_max_s\":86400,\"issued_at\":\"2026-10-30T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"t1\",\"key\":\"333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a1\",\"may_sign\":[\"aggregate/task\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"t2\",\"key\":\"d177984baa558f379bd689028fabbcca181a01fc5e60f3f9b1efd44a561e19c1\",\"may_sign\":[\"aggregate/task\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":null,\"id\":\"d1\",\"key\":\"ce3693d7efb0b6f499e87654b99c4f2924db9bda913dcd78b59f567a4020d693\",\"may_sign\":[\"delivery\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"aed52038adf86698c40d37b08d0b9d749aa167f45fd6e6bccabb63453cd7de3e\",\"origin\":\"https://tasks.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"ddc24c40de3a508f55f6bd4857c7ff4494c2b24ac1ba389c6863e1813e2522b8\",\"seq\":0,\"sig\":\"36851b1e71bb216b31c35be1fc4a99ba4796d562de8b300ea42b7a72a7be576e7457e8bcb8c639d297ab4666b57641dcff8dd66b26cbe84c561d68e1cad8ed0d\",\"status_max_age_s\":3600}", + "rev1": "{\"grant_max_s\":86400,\"issued_at\":\"2026-11-01T13:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"t1\",\"key\":\"333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a1\",\"may_sign\":[\"aggregate/task\"],\"status\":\"active\",\"until\":null},{\"compromised_since\":\"2026-11-01T12:00:00Z\",\"id\":\"t2\",\"key\":\"d177984baa558f379bd689028fabbcca181a01fc5e60f3f9b1efd44a561e19c1\",\"may_sign\":[\"aggregate/task\"],\"status\":\"revoked\",\"until\":null},{\"compromised_since\":null,\"id\":\"d1\",\"key\":\"ce3693d7efb0b6f499e87654b99c4f2924db9bda913dcd78b59f567a4020d693\",\"may_sign\":[\"delivery\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"aed52038adf86698c40d37b08d0b9d749aa167f45fd6e6bccabb63453cd7de3e\",\"origin\":\"https://tasks.example\",\"prev\":\"ed02151b2c0ca3c3e1ab1f07bb738274d36cbcbe305815c8415f7a203c6156c6\",\"revoked_modules\":[],\"root\":\"ddc24c40de3a508f55f6bd4857c7ff4494c2b24ac1ba389c6863e1813e2522b8\",\"seq\":1,\"sig\":\"62385e17cbb7610284a848b8052133b4eb8bf160d6bcb5bdd7139f441da0abe06c7c7507331f2bfb569f3c4e5b03b78b3e6c0465934edad72eed48a3f892960a\",\"status_max_age_s\":3600}", + "stranger": "{\"grant_max_s\":86400,\"issued_at\":\"2026-10-30T00:00:00Z\",\"keys\":[{\"compromised_since\":null,\"id\":\"s1\",\"key\":\"fa8480ba0169807db16ec9ab5155d8e541f646ecb0d4ad668d34c84a573449be\",\"may_sign\":[\"aggregate/task\"],\"status\":\"active\",\"until\":null}],\"kind\":\"wai-key-set\",\"next_root\":\"1c47a3296fffc8fce02d678274d8fcf2fb7d0c060ddbd563e075923cec9ac91c\",\"origin\":\"https://stranger.example\",\"prev\":null,\"revoked_modules\":[],\"root\":\"68b57084553c40733eeac5b4662cf9882979534b869a272521efed26c630d6f7\",\"seq\":0,\"sig\":\"8155e3a5af5eb91d539e17f85fb51842fd3c816dcaa59e5cf90bfb6cc9066d01573c3e0729c2c4e9c45139a683a9c0a5319362086fcca02526f2c6402524d60b\",\"status_max_age_s\":3600}" + }, + "anchors": { + "pinned": { + "origin": "https://tasks.example", + "revision": "ed02151b2c0ca3c3e1ab1f07bb738274d36cbcbe305815c8415f7a203c6156c6", + "path": "pinned", + "acquired_at": null, + "pinned_revision": "ed02151b2c0ca3c3e1ab1f07bb738274d36cbcbe305815c8415f7a203c6156c6" + }, + "fetched": { + "origin": "https://tasks.example", + "revision": "ed02151b2c0ca3c3e1ab1f07bb738274d36cbcbe305815c8415f7a203c6156c6", + "path": "fetched", + "acquired_at": "2026-10-31T00:00:00Z", + "pinned_revision": null + } + }, + "receiver": { + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ] + }, + "task_files": { + "flight": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000a", + "open": "5749543101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a10000000000000001800000053574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50200000029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431aa3989a32d2ebfa81d3370e284bb365687abed42aef226c46ce64085d6790358e8f5db8095863abc899608ed15ea26dd562d0d86c7894a809ceaa6498b6b6d08", + "twin": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f020301000100730900100001000100410451bbabf6bcc9955497464b0d84c1aba0288375d4c0f5de23c490ab7539eb9a61847badfc879ed37109d1c09bad9509110aaff9552e6c5b4de8a898cff083875e010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf6800730800100001000100410475120b62bf951ce45e4dec3c51835a54fe6f0a275230fdba455cb6c4ad42c3d6f6c412a32f034ae4fc284c37944123e6e5c51fd55c20d549f434d518771ca8fc020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431820c88539ac468e0b1cda9a3031705a7293bbdd4a96d5ace630fad3f1d8ee541d3247d88266b976602d0e67ee4b4324d3233b163f8baf62684bdb919c90d1801" + } + }, + "catalogues": [ + { + "name": "flight", + "about": "the flight's catalogue: attested, cross-media viewability, regions XA and XB-1, creatives A and B", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "read", + "digest": "39336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159", + "cells": 30, + "chunk": 6 + } + }, + { + "name": "open", + "about": "the open catalogue: video viewability, no attestation, no region, creative A", + "bytes": "574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020000", + "outcome": { + "outcome": "read", + "digest": "fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55cca", + "cells": 5, + "chunk": 3 + } + }, + { + "name": "cells_at_bound", + "about": "63 creatives and 12 regions: 819 creative-columns, 4,095 cells", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c23f0ee5374e4aadc5bda64deea1dfcb39616a7cc62a69af5b078b5ef8711c4205b90f8784c8e8eb0c434236e1ea3d36489af8439351db5b006e156e0a873737dfb810c6ce66e84893db33ed11294b5233f0b57081ffdbb10ead70bf823f2529fb2311c180f86d1ba6fb0fa0fb44ee084ce65ea71fd6ab51b353eacfcf470a7f27b2128fedf4cf3b55de68a95ba0fd30c85e34af33efb7f22144e0a793c975e3863218ab12aece1e93e4b9fba4a6196536e0d52b80a8da570c0bbdd50d6847987fe01a0e77e9e824d44e70dcc4cd7ef5a293d24decfa394eb7bd9a8ccdb6f06841581ac2e72731a25759f3e3c9df18e5e918a8469e8dcf841ecd42d18a9d745d75e51d2d209bbceef8088ae790450bd17fd9f92279bc477bc3128cc7fd0209ed98022a080e459328fd85c7e72f56dc141dde66b898a03c9d563fb4c9ab74544f74952bf4703c933e7ab207786aece77be4ddd05109ff5255d2f02dfd0c94fcd8eed333cf1033b1460174f5fb4a8c90afd2f38f631e31a4ca35991b016b03acb7eb593465fb10930f22f29321306a6a2972ff747ff49c3670b3caff96c00b5123e988372e52b8c3805900c20293ea927d6ac5fb18257953fed3021eb83989ed5a881d3878a6429f9f5560f8d9035dacc42b08ebdc3bfad0b37cc6a3f4a8ec9c98c69c408ee21808f059304cb2753e06b48bd14f533f05303d8bc681be345ef9a30d1f4d617ab8940861fad32ce4dd2d073748d816472ed39513c2c613e6bceccbebfb50c08659035d6aa9321375c9b8a16ed0f9080c51d41f8242887c5d099834be0c52b72afbcacc2cf35e26edd18872b4f6afdf5ac25fe2d663ae528a9b0c6ff2bc55c85f2ce60edaeab435291b834837ecc4a88116368672a70a33685a42d91f535645771df691316057e471725c701d1443471c8ca0b803929dd0c97184ca8a415767a3668f9e51256d702ece98c3096bfb91fa21b6bfccd4540db5f15f48298658b770328dc3a73bc9e1b402891d8e66366292fc80940008a10b251d6785057b5ef99fe3b721aa87b133ff171619417a82754481b0b73de435178800f1d3eb616437a5b7218d8bf9017704350e63959a0f201aff6cf5e5087feb1d93812b247c66d0c3b2f9f597a3f4b5bef7640d91672f803b118151c9102f1208e88fc935146c04a5d21bc388d6c2408fcabeda47d36dec761fc0218c996e2796340ea51e136e8503360b5bac219ca7fb16315119ce3d17adc7d4d0a9867dc51b0972387a1c7004d514fb5ca2e6396df6e53c4745b9bca79fa1638a22f56c202d84efda9b377adf6933ec6137848215773eccf0fef9fa52e581ef5b8fd0731a3b75f52f48ff7e33c3e73a87ec73a86989a033b20fa2f96be52524d8048b9f9e1ac8edd60e3184487ae5d588aec22cf640b2d50ef0862a3b9cc56514f450f3f98784a754beb885e7842ecfee8194a01c6df0d1ae58112891a659631b567f041e87bb2b69846f87d45a53e4e40d640a911fa8e4a0ad5a8810f6258944c619401e6c80d158ab7e8aabe8ece53ac36d4d32199cf495708a37be8699a81f3f0ccc4c94e9cc4143969196365080663010cf039358b8c90e53c870150941b3d4001483f2b1a283526e9219872cba8a96c78f97f7049442e01353aa789d95f9eb45677a5ff07dc55e1498d4b3bc80ab5dc3a0ee333f4bc6ae8e10c01e9d28a3132c907c17d61768b2aa992b5b79785a9f606a7fd961fb74b80f13750cfec523b16ac8614cdfa67c30279abb6e38e5622c2f7dbe02e12e392420c7aedaeb04f74e09f5f6a4103db2ca45a0fb0d115791534854f00fb9881adacb8dd27ae0b80551a88e9c79cbbf37f347a57ab1eb111800f8b6636dabbbd4b604d592b131adb5703fc88297913ee80d79a7a6524219e6e4679299b9e35a6381a7239856ed9d220752857339eb6c9f8cb0a85eb158e54647f53b0c98d95a24ef68633054a83f65d823ba2cb20e4836f0dca8fc54efeec0dcb41ec3afec111491438cddd8e72d4885ec2eba15604e8f64b7add0531764c42d86c058c706877644faed8d62b6f804df4eef7ed4c95cf17218b16c980030e3cb8f23d24eb4b1ccbc2d1fd2670bc5bda9735954cc4d74759e7ebd3071d412f5205e320100a8dcb9b98fc3ee7accdbf7cb374bf7ffab7deddc34be93b8856e7350d45da0241466b12b868a75b8d42706f35f9f2def752ca0ea85c5ffdf205827b121c136d771df651ba80265482e264295f8a70bff7077586ff8c976523ce1cb49e3c0017b692d9f9e7aebddcb06466aee41fe5f5bf70be2df1dcd9536cb833f44e5ca20cc56877a5f7afeb98802e1b71c4add66197650ccf5dece9ff6140d06cd275039e4679d1b7901d1f597728b79ecbeee961b9ba608c64dcf28b165db7c0fd5bdfd3f045b9c8bba81259506f3e342cd5eba6e315392e80ccf7181990892828bcb17f43e2806832b476e9fdbca894ec7cd1413fc72a26df9d1ea1560278f22751f4dff0aa453ea1c4b8aa9559567d6d39dcc11a7cac9269dd5bcb5a01b83aa0c16392e8493417cebb4537478508bc3d3fd03ddeb241ec124e5345505cdf0606648851e839ec75b7f2f0a5f74af4582294828c3828cec3703e66e39bf0389f4bd974fb12923ecc1ae02a701962a65dc217199f2dca86034caebe5d62ebaa577e96ad805783c8d8a14f511992a90077fa5badb37c6e403d0aeedd76e5910e44be037f9652a046ef32269c36e88f5caba90bc17b853eac56f3bf208661707889aa68268ae6e6fd48abe0e31d6a12786eb2cd9d62bf6c00e289df76d671713c67da363911726e1ff510f8c257e7d419223d394a914770bd06cc20c0558412d30300558412d30310558412d30320558412d30330558412d30340558412d30350558412d30360558412d30370558412d30380558412d30390558412d30410558412d304201015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "read", + "digest": "9ff8a89f2365df047fe16a37058467eda3bbd715958c4a903b14227ba3e4df9f", + "cells": 4095, + "chunk": 64 + } + }, + { + "name": "regions_255", + "about": "255 regions of one country's subdivisions", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4ff0558412d30300558412d30310558412d30320558412d30330558412d30340558412d30350558412d30360558412d30370558412d30380558412d30390558412d30410558412d30420558412d30430558412d30440558412d30450558412d30460558412d30470558412d30480558412d30490558412d304a0558412d304b0558412d304c0558412d304d0558412d304e0558412d304f0558412d30500558412d30510558412d30520558412d30530558412d30540558412d30550558412d30560558412d30570558412d30580558412d30590558412d305a0558412d31300558412d31310558412d31320558412d31330558412d31340558412d31350558412d31360558412d31370558412d31380558412d31390558412d31410558412d31420558412d31430558412d31440558412d31450558412d31460558412d31470558412d31480558412d31490558412d314a0558412d314b0558412d314c0558412d314d0558412d314e0558412d314f0558412d31500558412d31510558412d31520558412d31530558412d31540558412d31550558412d31560558412d31570558412d31580558412d31590558412d315a0558412d32300558412d32310558412d32320558412d32330558412d32340558412d32350558412d32360558412d32370558412d32380558412d32390558412d32410558412d32420558412d32430558412d32440558412d32450558412d32460558412d32470558412d32480558412d32490558412d324a0558412d324b0558412d324c0558412d324d0558412d324e0558412d324f0558412d32500558412d32510558412d32520558412d32530558412d32540558412d32550558412d32560558412d32570558412d32580558412d32590558412d325a0558412d33300558412d33310558412d33320558412d33330558412d33340558412d33350558412d33360558412d33370558412d33380558412d33390558412d33410558412d33420558412d33430558412d33440558412d33450558412d33460558412d33470558412d33480558412d33490558412d334a0558412d334b0558412d334c0558412d334d0558412d334e0558412d334f0558412d33500558412d33510558412d33520558412d33530558412d33540558412d33550558412d33560558412d33570558412d33580558412d33590558412d335a0558412d34300558412d34310558412d34320558412d34330558412d34340558412d34350558412d34360558412d34370558412d34380558412d34390558412d34410558412d34420558412d34430558412d34440558412d34450558412d34460558412d34470558412d34480558412d34490558412d344a0558412d344b0558412d344c0558412d344d0558412d344e0558412d344f0558412d34500558412d34510558412d34520558412d34530558412d34540558412d34550558412d34560558412d34570558412d34580558412d34590558412d345a0558412d35300558412d35310558412d35320558412d35330558412d35340558412d35350558412d35360558412d35370558412d35380558412d35390558412d35410558412d35420558412d35430558412d35440558412d35450558412d35460558412d35470558412d35480558412d35490558412d354a0558412d354b0558412d354c0558412d354d0558412d354e0558412d354f0558412d35500558412d35510558412d35520558412d35530558412d35540558412d35550558412d35560558412d35570558412d35580558412d35590558412d355a0558412d36300558412d36310558412d36320558412d36330558412d36340558412d36350558412d36360558412d36370558412d36380558412d36390558412d36410558412d36420558412d36430558412d36440558412d36450558412d36460558412d36470558412d36480558412d36490558412d364a0558412d364b0558412d364c0558412d364d0558412d364e0558412d364f0558412d36500558412d36510558412d36520558412d36530558412d36540558412d36550558412d36560558412d36570558412d36580558412d36590558412d365a0558412d37300558412d37310558412d373201015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "read", + "digest": "e31217f33f6a5f828238ea0588647cddaffda041ae4290c91a02c2b14edec776", + "cells": 2560, + "chunk": 51 + } + }, + { + "name": "signers_16", + "about": "16 signers", + "bytes": "5749433101030202000e006973737565722e6578616d706c65000054601006b2bcaf832d4dfe646828a9f081c884a583d9319b8bea4a8ee7a4d9c054229e0d7bf2f0bc4004c4a08d4ca2669de14bdf492b77d29da374b747699266c1eb5626ae1ef69ccde6242a853b5174d4d6edebf2f2a6bd258476ac2851fd15170ee43726cb6addf692fa242691d35bf8bf5658440b7bd668b8dbfdfd36d1b4c091e24e919fee97ba49da1a2ac8e1db78adeab3939a02ab99820cb9c07d8f057dbde3751eb40eedb59aece7049e2485e1b36beb7818b310ec6cfa654156ac445792197802c880f2138c325ce32d38bea9cece0ffe1d20a72141dce666bebffe45cb6482a9cfe41e3fb0fb8a10788207cc64ed67ef72f789b0aff001b67fa44e139bef890d2534396f130613b8f1fbf114403073dcb46c09217a7480820c1737644346989960722468f4fc93f93ed9eafc83bec1a3f474a95efd749e621e61cf6c0d0ea96b6ee47f13d1c0f0d80fa4a3bd878533436341d90e51e69b39e7eee1e25830a96c5bff88ef8aab18d6ca6ea1e134fd4eed44f6a50a77d5109c82e27b969282b2dfaeaae2a5db0b2b304aa1b8bf0e6fb6b977928db8666a88cc75ae77d83e78b5cf07ef4cc3a4b893660c5fc63f321d42ae805ddbee56476011d94ab962b657da6f6505027e7437f384776bce636b4815b510791b2e9543b248989d01965b04e8160f958ea2057fbcd9ddfdfc49180e4fcdf139c613bd074b3eef6d81a76485026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "read", + "digest": "46b28ce154932a2e8181b43b7366d790d838ec80fec2a3c2bd4a27313d3b3211", + "cells": 30, + "chunk": 6 + } + }, + { + "name": "keys_4", + "about": "four issuer keys, ascending", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3104015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad54a2a11f911b23ba0203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad59ad1d978f38f2330203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad5b60ce52fd4ba63f0203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad9fd3f21cfdbab28c0203010001", + "outcome": { + "outcome": "read", + "digest": "48edfbc1b6e21e6dc654b6654eca8cc93cfca42f13cab5983ae095186b308163", + "cells": 30, + "chunk": 6 + } + }, + { + "name": "hold_one", + "about": "a hold of one second", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500000001015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "read", + "digest": "d9ebea6662a231c507d1006d5aeb82901ed1554813f02c4f67c13b03e14f600e", + "cells": 30, + "chunk": 6 + } + }, + { + "name": "magic", + "about": "magic WIC2", + "bytes": "5749433201030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "version", + "about": "version 2", + "bytes": "5749433102030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "truncated", + "about": "the last key's last byte missing", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "trailing", + "about": "a byte past the last key", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f020301000100", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "terms_no_claim", + "about": "terms that require no claim, and so no attestation and no key", + "bytes": "574943310100000000000000005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3100", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "terms_attest_type1", + "about": "attestation by token type 0x0001", + "bytes": "5749433101030201000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "terms_viewability_0", + "about": "a claim with no viewability rule (ad-presentation §8)", + "bytes": "5749433101030002000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "hold_zero", + "about": "a hold of zero", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500000000015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "signers_none", + "about": "no signer", + "bytes": "5749433101030202000e006973737565722e6578616d706c650000546000026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "signers_17", + "about": "17 signers", + "bytes": "5749433101030202000e006973737565722e6578616d706c65000054601106b2bcaf832d4dfe646828a9f081c884a583d9319b8bea4a8ee7a4d9c054229e0d7bf2f0bc4004c4a08d4ca2669de14bdf492b77d29da374b747699266c1eb5626ae1ef69ccde6242a853b5174d4d6edebf2f2a6bd258476ac2851fd15170ee43726cb6addf692fa242691d35bf8bf5658440b7bd668b8dbfdfd36d1b4c091e24e919fee97ba49da1a2ac8e1db78adeab3939a02ab99820cb9c07d8f057dbde3751eb40eedb59aece7049e2485e1b36beb7818b310ec6cfa654156ac445792197802c880f2138c325ce32d38bea9cece0ffe1d20a72141dce666bebffe45cb6482a9cfe41e3fb0fb8a10788207cc64ed67ef72f789b0aff001b67fa44e139bef890d2534396f130613b8f1fbf114403073dcb46c09217a7480820c1737644346989960722468f4fc93f93ed9eafc83bec1a3f474a95efd749e621e61cf6c0d0ea96b6ee47f13d1c0f0d80fa4a3bd878533436341d90e51e69b39e7eee1e25830a96c5bff88ef8aab18d6ca6ea1e134fd4eed44f6a50a77d5109c82e27b969282b2dfaeaae2a5db0b2b304aa1b8bf0e6fb6b977928db8666a88cc75ae77d83e78b5cf07ef4cc3a4b893660c5fc63f321d42ae805ddbee56476011d94ab962b657d411380f0eed53dd64a050d879d87c8e2c6a70de1895fc10c4579d55dcbcac19da6f6505027e7437f384776bce636b4815b510791b2e9543b248989d01965b04e8160f958ea2057fbcd9ddfdfc49180e4fcdf139c613bd074b3eef6d81a76485026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "signers_unordered", + "about": "two signers, descending", + "bytes": "5749433101030202000e006973737565722e6578616d706c650000546002a96b6ee47f13d1c0f0d80fa4a3bd878533436341d90e51e69b39e7eee1e25830989960722468f4fc93f93ed9eafc83bec1a3f474a95efd749e621e61cf6c0d0e026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "creatives_none", + "about": "no creative", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c200020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "creatives_duplicate", + "about": "creative A twice", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "region_lowercase", + "about": "region xa", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020458422d3102786101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "region_long_subdivision", + "about": "region XB-1234", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410758422d3132333401015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "region_empty_subdivision", + "about": "region XB-", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410358422d01015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "region_overlap", + "about": "XB with its subdivision XB-1", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4030258410258420458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "regions_unordered", + "about": "XB-1 before XA", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020458422d3102584101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "cells_past_bound", + "about": "41 creatives and 19 regions: 820 creative-columns, 4,100 cells", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2290f8784c8e8eb0c434236e1ea3d36489af8439351db5b006e156e0a873737dfb810c6ce66e84893db33ed11294b5233f0b57081ffdbb10ead70bf823f2529fb23128fedf4cf3b55de68a95ba0fd30c85e34af33efb7f22144e0a793c975e386321ac2e72731a25759f3e3c9df18e5e918a8469e8dcf841ecd42d18a9d745d75e51d2d209bbceef8088ae790450bd17fd9f92279bc477bc3128cc7fd0209ed98022a080e459328fd85c7e72f56dc141dde66b898a03c9d563fb4c9ab74544f74952bf4703c933e7ab207786aece77be4ddd05109ff5255d2f02dfd0c94fcd8eed333cf1033b1460174f5fb4a8c90afd2f38f631e31a4ca35991b016b03acb7eb593878a6429f9f5560f8d9035dacc42b08ebdc3bfad0b37cc6a3f4a8ec9c98c69c408ee21808f059304cb2753e06b48bd14f533f05303d8bc681be345ef9a30d1f4d617ab8940861fad32ce4dd2d073748d816472ed39513c2c613e6bceccbebfb50c08659035d6aa9321375c9b8a16ed0f9080c51d41f8242887c5d099834be0c5645771df691316057e471725c701d1443471c8ca0b803929dd0c97184ca8a4158b770328dc3a73bc9e1b402891d8e66366292fc80940008a10b251d6785057b6437a5b7218d8bf9017704350e63959a0f201aff6cf5e5087feb1d93812b247c66d0c3b2f9f597a3f4b5bef7640d91672f803b118151c9102f1208e88fc935146e8503360b5bac219ca7fb16315119ce3d17adc7d4d0a9867dc51b0972387a1c7004d514fb5ca2e6396df6e53c4745b9bca79fa1638a22f56c202d84efda9b377e33c3e73a87ec73a86989a033b20fa2f96be52524d8048b9f9e1ac8edd60e3184487ae5d588aec22cf640b2d50ef0862a3b9cc56514f450f3f98784a754beb885e7842ecfee8194a01c6df0d1ae58112891a659631b567f041e87bb2b69846f87d45a53e4e40d640a911fa8e4a0ad5a8810f6258944c619401e6c80d158ab7e8aabe8ece53ac36d4d32199cf495708a37be8699a81f3f0ccc4c94e9cc4143969196365080663010cf039358b8c90e53c870150941b3d4001483f2b1a283526e992b5b79785a9f606a7fd961fb74b80f13750cfec523b16ac8614cdfa67c30279abb6e38e5622c2f7dbe02e12e392420c7aedaeb04f74e09f5f6a4103db2ca45a0fb0d115791534854f00fb9881adacb8dd27ae0b80551a88e9c79cbbf37f347a85eb158e54647f53b0c98d95a24ef68633054a83f65d823ba2cb20e4836f0dca8fc54efeec0dcb41ec3afec111491438cddd8e72d4885ec2eba15604e8f64b7be93b8856e7350d45da0241466b12b868a75b8d42706f35f9f2def752ca0ea85c976523ce1cb49e3c0017b692d9f9e7aebddcb06466aee41fe5f5bf70be2df1dcd9536cb833f44e5ca20cc56877a5f7afeb98802e1b71c4add66197650ccf5dece9ff6140d06cd275039e4679d1b7901d1f597728b79ecbeee961b9ba608c64dcf28b165db7c0fd5bdfd3f045b9c8bba81259506f3e342cd5eba6e315392e80ccf7181990892828bcb17f43e2806832b476e9fdbca894ec7cd1413fc72a26df9d1ea1560278f22751f4dff0aa453ea1c4b8aa9559567d6d39dcc11a7cac9269dd5bcb5a01b83aa0c16392e8493417cebb4537478508bc3d3fd03ddeb241ec124e5345505cdf0606648851e839ec75b7f2f0a5f74af4582294828c3828cec3703e66e39bf0389f4bd974fb12923ecc1ae02a701962a65dc217199f2dca86034caf208661707889aa68268ae6e6fd48abe0e31d6a12786eb2cd9d62bf6c00e289df76d671713c67da363911726e1ff510f8c257e7d419223d394a914770bd06cc2130558412d30300558412d30310558412d30320558412d30330558412d30340558412d30350558412d30360558412d30370558412d30380558412d30390558412d30410558412d30420558412d30430558412d30440558412d30450558412d30460558412d30470558412d30480558412d304901015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "keys_without_attest", + "about": "an issuer key in a catalogue without attestation", + "bytes": "574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "attest_without_keys", + "about": "attestation with no issuer key", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3100", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "keys_5", + "about": "five issuer keys", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3105015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad54a2a11f911b23ba0203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad59ad1d978f38f2330203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad5b60ce52fd4ba63f0203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad99f817da55b440670203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad9fd3f21cfdbab28c0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "key_rsa_encryption_oid", + "about": "an issuer key of OID rsaEncryption", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d0101013030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "key_1024_bit", + "about": "an issuer key of a 1,024-bit modulus", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d310100d23081cf303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a20302013003818d0030818902818100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f44610203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "keys_duplicate", + "about": "the issuer key twice", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3102015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "keys_unordered", + "about": "two issuer keys, descending", + "bytes": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3102015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad5b60ce52fd4ba63f0203010001015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad59ad1d978f38f2330203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + } + ], + "tasks": [ + { + "name": "flight", + "about": "the flight's task", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "accept", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "retention_s": 1793599200 + } + }, + { + "name": "open", + "about": "the open catalogue's task", + "task": "997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018", + "catalogue": "574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020000", + "outcome": { + "outcome": "accept", + "task_id": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e", + "retention_s": 1793581200 + } + }, + { + "name": "twin", + "about": "the flight's catalogue under another salt", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "accept", + "task_id": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15", + "retention_s": 1793599200 + } + }, + { + "name": "precision_3600", + "about": "a time precision of exactly an hour", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159c79b26e5688ae24a6755bbd13d805b3c5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "accept", + "task_id": "49cd9646e16c8892222360df13131295dbc63fb4da04808ab44599ec67ce4dfc", + "retention_s": 1793599200 + } + }, + { + "name": "floor_50", + "about": "a minimum batch size of exactly fifty", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159dab04c9137a1045309d5a3d50bda55715ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "accept", + "task_id": "aad9e7d2f99104df152994750c8dfb76cbb956929fe7d047bba09c078ef63624", + "retention_s": 1793599200 + } + }, + { + "name": "retention_at_bound", + "about": "a retention instant of exactly 253,402,300,799 s: hold 3,599 s after hour 70,389,527 ends", + "task": "997761692d716f653105737a8c4a63ddc9bc60585a483c859d0364115f11b0110ecb1a721b3a784a370b8c1d0289790f672c3f6f77f6f20a75505ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000004320eff0000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500000e0f015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "accept", + "task_id": "afc9f0f7107344c3836d05b62fe098993afb0cce6f45c8d1144ea95abf2ad665", + "retention_s": 253402300799 + } + }, + { + "name": "precision_3599", + "about": "a time precision of an hour less a second", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e0f00000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "precision_0", + "about": "a time precision of 0 (telemetry-aggregation §4.3 rule 1)", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f000000000000000000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "no_task_interval", + "about": "no task_interval extension", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060000", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "task_interval_zero", + "about": "a task_interval of duration 0", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000000", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "leader_selected", + "about": "the leader-selected batch mode", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320200000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "two_extensions", + "about": "the task_interval extension twice", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060028000100100000000000079a100000000000000018000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "retention_past_bound", + "about": "a retention instant an hour past the last instant", + "task": "997761692d716f653105737a8c4a63ddc9bc60585a483c859d0364115f11b0110ecb1a721b3a784a370b8c1d0289790f672c3f6f77f6f20a75505ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000004320eff0000000000000019", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500000e0f015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "retention_overflow", + "about": "a task_interval whose end in seconds overflows", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e00000006001400010010fffffffffffffff50000000000000005", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "task_invalid" + } + }, + { + "name": "measure_1", + "about": "an outcomes task", + "task": "997761692d716f6531010000000000000000000000000000000000000000000000000000000000000000715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e100000000000000032010000000000030010000000040000000000000001000000020014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_mismatch" + } + }, + { + "name": "scope_other_catalogue", + "about": "the open catalogue's digest as scope", + "task": "997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55cca715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "catalogue_mismatch" + } + }, + { + "name": "chunk_length_7", + "about": "a chunk length of 7 for 30 cells", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000070014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "measure_mismatch" + } + }, + { + "name": "vdaf_sumvec", + "about": "Prio3SumVec of 30 bits", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000300100000001e0000000000000001000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "measure_mismatch" + } + }, + { + "name": "length_31", + "about": "a length of 31 for 30 cells", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001f000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "measure_mismatch" + } + }, + { + "name": "floor_49", + "about": "a minimum batch size of 49", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000310100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "floor_too_low" + } + }, + { + "name": "one_aggregator", + "about": "the leader's key as the helper's", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe65ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe66cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "outcome": { + "outcome": "refuse", + "reason": "aggregator_alone" + } + } + ], + "task_files": [ + { + "name": "flight", + "about": "the flight's task file, signed by t1", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000a", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "accept", + "digest": "5e5bc02fa21e2535a05f5126bb483a9b6b155095d5c56bda916ac77462da4d5c", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "confirmation": "confirmed origin=https://tasks.example key_id=t1 head=aa5dd0a3cd63bd20a2ea3af8da8aa0516cb2ed39891f0aef1cf0e56b28aa6dbb anchor=pinned" + } + }, + { + "name": "open", + "about": "the open catalogue's task file", + "bytes": "5749543101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a10000000000000001800000053574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50200000029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431aa3989a32d2ebfa81d3370e284bb365687abed42aef226c46ce64085d6790358e8f5db8095863abc899608ed15ea26dd562d0d86c7894a809ceaa6498b6b6d08", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "accept", + "digest": "636b4191218fdb9b49a3669cce4ff31db14796a035513c7bbde92098dd0c5e1e", + "task_id": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e", + "confirmation": "confirmed origin=https://tasks.example key_id=t1 head=aa5dd0a3cd63bd20a2ea3af8da8aa0516cb2ed39891f0aef1cf0e56b28aa6dbb anchor=pinned" + } + }, + { + "name": "hpke_second_is_x25519", + "about": "each list's first configuration of another suite; the twin flow's reports name the second", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f020301000100730900100001000100410451bbabf6bcc9955497464b0d84c1aba0288375d4c0f5de23c490ab7539eb9a61847badfc879ed37109d1c09bad9509110aaff9552e6c5b4de8a898cff083875e010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf6800730800100001000100410475120b62bf951ce45e4dec3c51835a54fe6f0a275230fdba455cb6c4ad42c3d6f6c412a32f034ae4fc284c37944123e6e5c51fd55c20d549f434d518771ca8fc020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431820c88539ac468e0b1cda9a3031705a7293bbdd4a96d5ace630fad3f1d8ee541d3247d88266b976602d0e67ee4b4324d3233b163f8baf62684bdb919c90d1801", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "accept", + "digest": "ec8d16465299c024312f4a88b2e983e8c7635ecd765c88bc51ca8bfd34294ceb", + "task_id": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15", + "confirmation": "confirmed origin=https://tasks.example key_id=t1 head=aa5dd0a3cd63bd20a2ea3af8da8aa0516cb2ed39891f0aef1cf0e56b28aa6dbb anchor=pinned" + } + }, + { + "name": "truncated", + "about": "the signature's last byte missing", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d372600", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "trailing", + "about": "a byte past the signature", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000a00", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "magic", + "about": "magic WIT2", + "bytes": "5749543201010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000a", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "version", + "about": "the flight's file at version 2, signed by t1", + "bytes": "5749543102010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431de86c1055d0e85334a4bdf45cda7442167492025b99c69cf75274666013e8f556f22d3d5c243904b2a82025619e4af08d9437634d52a0ee2e4b57b8f7bac6800", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "signer_id_empty", + "about": "an empty signer_id", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a10000f824793047d9e24efb1d7bd72fb90169684f513b205fd7775d48627f0b94ef507b25969a997888ac39c90bc42dd5de1a0357f1e69cb678128059155735fb2503", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "signer_id_not_ascii", + "about": "a signer_id ending in a byte above 0x7F, signed by t1", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a1001a6469643a7765623a7461736b732e6578616d706c65237431c3a91f20f324676359b380c73696538551ead60a21e148a64a22cc26913d4ad982f7b7e9275fb4d079d9291caaf2781d3c2e108f210f9f49bbf98410393f063aca0d", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "hpke_no_x25519_suite", + "about": "the leader's list holds no configuration of DAP's suite", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001004a0900100001000100410451bbabf6bcc9955497464b0d84c1aba0288375d4c0f5de23c490ab7539eb9a61847badfc879ed37109d1c09bad9509110aaff9552e6c5b4de8a898cff083875e0029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743191a367d2852ecb3d3863a3ab2784e2fd6288d1e13284b71942864ff8d6731199563711d61d579421246d503a7a4b4fb380fc01e2b189a6f873e73ffab7392c0d", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "hpke_duplicate_id", + "about": "two configurations of one id in the leader's list", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f020301000100730100100001000100410451bbabf6bcc9955497464b0d84c1aba0288375d4c0f5de23c490ab7539eb9a61847badfc879ed37109d1c09bad9509110aaff9552e6c5b4de8a898cff083875e010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c652374310f4b6720b9b906b9a49a86289c7f8f981fe827a0d4c86f011738f75dd6837043942d8273d3d5da9982acb48df9f87eacd8781e74c3b4c631aebc7cd6d0485a0f", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "hpke_list_short", + "about": "an empty leader's list, shorter than DAP's ten bytes", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f020301000100000029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431a78d3841db06495647fd725af8925d7ea56ba66c923e3390d22760dee9cb634035073252c98311319b7e951d2aa1e583accf2531610568e285ebdf26d239ac01", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "task_file_malformed" + } + }, + { + "name": "catalogue_bad", + "about": "a catalogue of version 2", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433102030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c652374312e995e9e25fd6f138c4dfe3b3860935a8a944ac41ca15c3945d3ca4c32f97526b59b91604c98c45e594f55c4e94b08610404e0c4979e7514e939653ffc3bc00c", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "task_floor_49", + "about": "a task of minimum batch size 49", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000310100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c65237431fc53bc2ccfe5d9bc74f27f169a143dd3bc0b201a5a1e24c1472882d0786e7944d9c91dc6079696729b89dd2c67988bc6b585c91a9a78fd150033bce6524e0208", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "floor_too_low" + } + }, + { + "name": "flipped_signature", + "about": "one bit of the signature flipped", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000b", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "bad_signature" + } + }, + { + "name": "small_order_signer", + "about": "the identity point as the signer", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942010000000000000000000000000000000000000000000000000000000000000000186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000a", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "bad_key" + } + }, + { + "name": "signer_id_did_key", + "about": "the signer named by its did:key", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100386469643a6b65793a7a364d6b6875474c6b344d365638433866757043744c366457554d736255446b546e624a4b6d43357254476e52677255bb3dbd45953b150cd8c2387f77c7f73953c0672f945e9e0015665e8482e375853a2daa6610da1b672c093a4210bdce4d1d7e914358dee8b1ffcd3b049efa2f03", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "signer_id_not_origin_bound" + } + }, + { + "name": "origin_not_anchored", + "about": "signed by another origin's task key; its log is held, its origin anchored nowhere", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942fa8480ba0169807db16ec9ab5155d8e541f646ecb0d4ad668d34c84a573449be001b6469643a7765623a737472616e6765722e6578616d706c6523733128b2290be7cc8972ebb2d4252f886f957f2530610ff11563467f32cfdc89564ccdc44a7f34ffe42ed6a21bb3af1fd78f645a6929d4556ef4ec5d4fba18c9a206", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "origin_not_anchored" + } + }, + { + "name": "delivery_key_only", + "about": "signed by a key the log gives delivery alone", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942ce3693d7efb0b6f499e87654b99c4f2924db9bda913dcd78b59f567a4020d69300186469643a7765623a7461736b732e6578616d706c65236431fdcff59476125a71ebb6f648edab0c388ac5e661c9027ae30a7c7fe12553ab3c6d07951696ea3b9a099752f813021d00ef27ce6631de8f72a968fc4984d6820b", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "authority_not_granted" + } + }, + { + "name": "anchor_fetched", + "about": "the flight's task file under a fetched anchor of the same log", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942333c7f064f2abb2963171ba31726a6d93812c0f426dd6c3f40551ca2e6b5e6a100186469643a7765623a7461736b732e6578616d706c6523743136f36d0ac886f22d04dbf86acaaafe15a7a0bbfa9fea8c60b39d8794493f7c949ca716d85ad600fb961d89537ce3558642e0dd1aa34fd06b5323e66d3726000a", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "fetched" + ], + "outcome": { + "outcome": "refuse", + "reason": "anchor_not_pinned" + } + }, + { + "name": "key_revoked_on_bearer", + "about": "signed by t2, which revision 1, received on the bearer, revokes", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942d177984baa558f379bd689028fabbcca181a01fc5e60f3f9b1efd44a561e19c100186469643a7765623a7461736b732e6578616d706c652374327bd25eb8e4634a16767fa45f33b69f98634654e68bd6f7524a2817f9ed95a2621d98cce3c9ca2473d97d935701a7db46a0dfcb14f9e1ae899e8dfd2ba08e9c07", + "revisions": [ + "rev0", + "rev1", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "refuse", + "reason": "key_revoked" + } + }, + { + "name": "second_key_before_revocation", + "about": "the same file, revision 1 not held: the head is revision 0", + "bytes": "5749543101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000001e15749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f02030100010029010020000100010020250ef6fa19d97b0258e51d7fba69b90e98aa004b64055c5b5c410944248ecf680029020020000100010020b723110bbb6cc63839e7f68102f3535272849a49b9401d893e410f335754d942d177984baa558f379bd689028fabbcca181a01fc5e60f3f9b1efd44a561e19c100186469643a7765623a7461736b732e6578616d706c652374327bd25eb8e4634a16767fa45f33b69f98634654e68bd6f7524a2817f9ed95a2621d98cce3c9ca2473d97d935701a7db46a0dfcb14f9e1ae899e8dfd2ba08e9c07", + "revisions": [ + "rev0", + "stranger" + ], + "anchors": [ + "pinned" + ], + "outcome": { + "outcome": "accept", + "digest": "79ebe963394d4f69ba135b92a6199adea13dd181f46651d2af2e25b0c77c83d7", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "confirmation": "confirmed origin=https://tasks.example key_id=t2 head=ed02151b2c0ca3c3e1ab1f07bb738274d36cbcbe305815c8415f7a203c6156c6 anchor=pinned" + } + } + ], + "contributions": [ + { + "name": "q1_skip_after_start", + "about": "creative A in XA: 2.5 s, then a skip to 6 s: quartile 1", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb33e9e823cb417b07b6bb1d5917412e56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5028f4e74d3efd179fa1209a88fb536c5beb9e2b4893a540db07eb20edd15ccff00011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251020000000000c4090000102701701700002823000010270300007b62ffdc1f93a13ba8db34421bbbc709d0293087de6280c1f3fad0d0fcb63bc4199ee0935d2cce919b1afb083ce6c8be263a9726a36878f22fdb10c823139b06" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "0191b4c6679b669bd2ee9b824a5a4d83", + "token": "0002a3e69d5376b881ee83f75848c49b29805aa73d4c1d9e4b650140827b2747b0010edc734080d5876618b019c22c33bbe33f232e66ebc3aee6538acb504112a616ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270843c90f19d05b8cb13bb792986de32adc242ae21b0e72aaa73965c120302f67b5ca7428692961d83a3ae2db4bb6e1f944f506e0dc889c30d75965598096e6e251ab346471a59ede470723bc4f37c30b8481ed63e49d76c3d3713c9b16a7c416569866870fc5d0171c9f52391bfe36947cc24723c2a0764fcc0e1f16751af3cdf3f918368109cf9f97fc34040a1231c6de3ce789b31a85e691715b1548a4bea87581453ecfdeff7733eea246451443cc8a01f2fc3c7fa1195a4da4ed19a32bf14db6e41e6d8e0df85bd7e49ad2fa6e4a90d4a89c7db4985e15f9a2c8c9f107174d6d46a1f043f2ee23e2757c4d10f14472bd855d77de1728fd79413fdc22fe9853" + } + ], + "outcome": { + "outcome": "report", + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1, + "time": 498192, + "id": "0191b4c6679b669bd2ee9b824a5a4d83", + "discarded": [] + } + }, + { + "name": "q2_quarter", + "about": "creative A in XA: covered to exactly a quarter", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd855f66fd3a4e93579ede2e8796b011026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502ccd5547f8486170d1ab8357cb934b98e90db393e10e5f130b149370eb66338f6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100003aec1509c0372150bf24efe4a7d16997b74d639a3f678e62563b1e4268b9b22594e323ef4774d686e2b61857127fc96f61d05220da15d2634b0a43365d454903" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "f46461110f5ae8ea2b83e0ab4eef6f8f", + "token": "0002bec2b0e703a3da46b644b9ab6cd863f05e3b22ea022f8aa6cc1d1cf5471eff63bf5b1ee29fc041e6d8e50333539e7a0aa77bcba972c3db81afba2ac83c8fc855ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270896bcf0db4893234c46f3bb2c8c47ce828dc2948bce221e85e99488caf3afed062fe73981fd396048967650361e2dd7cee3d2e3e6e5b0f2e27e6528b422891bafd90920d6d98e0bd6fe3401bcb48d64f8fe750f84e91399b88a09ad6fc0910ba9e5ff2ae02ab64415f80579ee44b3604315af263d6684573288f06ac45824abaf75237db2809949c30fafa9f7b3f6230cbf756e0b82461fd386ab86facd7d7ee7dc083d5f1e921d2b3a8280e1df7dca44e3af14b6f60bbf56ef2717b96bda96c80c7a21115309decc4391305fd3b6d24b13c7b2063e0ec4ae4636f65e7bcfcd2a54e73d9c44dd796dfe589bdee515ea0f2fba19b6fc4d105d83ecf0ccc7318d2d" + } + ], + "outcome": { + "outcome": "report", + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2, + "time": 498192, + "id": "f46461110f5ae8ea2b83e0ab4eef6f8f", + "discarded": [] + } + }, + { + "name": "q3_half", + "about": "creative A in XA: covered to exactly half", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdcc03689d29b7c8618c2882b4123eca5c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5022ad16bc39d509585a359c5dcb99a7ad7a1ae22dd64af36e8211f8f761f37afee011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000cc6932e7e44655209408de7229b32f7632f4561a0f3f715e2b0a7bba4f04dbdb5c7bc802ad48a5cabf614648af5019a2d3f4cdcbc0c48549268f4e43b6a1a60f" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "aef05ccf16dbdfa5d52b34f708cb3f41", + "token": "000214dbd6f6eeacebb38f77e3efca59737a925daf27e2ad4a7821e842cca837b37b200f01f546315cf3de5f64e4e7e496a7df3ef59895b2ec5246b03e37d16da294ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27089b098ff6492ba4a4898a0c88241c725c0313db88c9443e2244b3a24bc7a6b70ccb2575aa779ee8b3e59ff0da60acf4440be222cecaeb1ab7fcba319db352fc79bc36b235f808ed6904a044dddbb6b53d4097518c525d23351e2eaacfce74da5bd208b3ef5dd6d0d8d1a252e64429c979c362c251eaf7eb1435cf9e2225b69412c88070041b2f9a0f64aa56dda48faad7b14109302da0fdca73a1eddbf8b90bd5df4c1cc33824cf0112c99954aa697e08c027a120bf4cbe75371cd1f10427010323fb7b08784819e19f00cc24137eb8d7b3cdd602beba21d4f3bad6238c114badd45911f72e47ac8552dd30aba27162ba28dadd5a3280c6a0148a368c4add1618" + } + ], + "outcome": { + "outcome": "report", + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3, + "time": 498192, + "id": "aef05ccf16dbdfa5d52b34f708cb3f41", + "discarded": [] + } + }, + { + "name": "q4_three_quarters", + "about": "creative A in XA: covered to exactly three quarters", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf1cdba9ff037c866fa940a0416f118d86ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027c456685bd6aa518645561261c8002fa6445cf763854620d4bf123e67331e67d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100003e1c8e22243071dce6f22dc2f868da36322ab185bb3df7618c2a3060aae73bf73634f3ab3a8a92d665b301878b35d172fada1ce7692c1f3dd1875d784a6bc405" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "88b0f1becaee030d05396466ef1f8d78", + "token": "0002b7b54c0d876e25cbf2b0657cdd454d398af180283cfc45d93cf8834413195f68dc3b629bd2b246b331437709c78b0cbc66e38823baafdbaa830438f85c4a8748ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270852ca387b211baa60bac82f3f0014ba06c1352b04b35b08b59541c458fc9e7c29f19748067c502570e5b9a37659a576cecfb6ffb16b95b52454d255a98ea174851c7cb972d2d2dc9b14b1f7ea00efca59d6302113bc75224da592153544564226adb3df46e85f2028871511d12966ef233018575817798211d059338d008eaceb9aaef2991b6bb4875f8e959643e3acddcd5ded4c161b82ce71f58e07ad5031fa7ab32f30a220452d78c9c9f64fc29534860d9504366f5051394efb78bc24f644e668d85ff9493f9a41486f0a5e7a8c1951ff6e2c3b3095e46c27e571185ca41a334523c970d84ff7745ffe7108d338076dee56cfd22cbb725343d123ac524638" + } + ], + "outcome": { + "outcome": "report", + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4, + "time": 498192, + "id": "88b0f1becaee030d05396466ef1f8d78", + "discarded": [] + } + }, + { + "name": "q5_complete", + "about": "creative A in XA: covered to its end", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda4b4133df0fc27394bfb7b936f56e7206ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50272dec427fbafedc5f5094d1ba97a79eec0f8b03122b318ec12d867b861c4d156011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100002abc37b0f3171fc4d9af498937318f046946a2d6b82d932c08ba3aec5c907405263f06bd04cc003481ed250f1dc4c507919eeef5d97296ba8e4b48731a015f08" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "911dd6bda837c6e5045f44edef4754f2", + "token": "00027395c2d2ecfe9d7adbe22fd32d86134aae33f11539e58d4ffed685b6687c3bb2e8caf2ff4f8723b0ddc680d2b779c40097427cbd96585ef55898cdcfe7901b99ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270870ea69081941e78a28d162486a316331e134697817c16e49dcf6121fba724d66d8ac5ff088dd8239c1565581a21f059d4faa35135417a607724417b66e49b5ab109112fd42656ecec24df03bf75c2b890c101c1268d378a47ed1eda27bf0724ce262f54f29382414ef88e32c7935d5d2524f501b9494f478f47405cfd48152d93117ae741a8e4ed3a11530694bedcc43390be6746090943663a7755130411f65346fef9f1e10917ac501dffeea55d707ad229d63400f51e1fc0ec6c85c6754e4353132e71468ad0c414b5f1093a78d20dfea2846ab7e0c99d7ec9f69872eeabafe75aec5801b4b9351dc2f0af278c07de12239ab60c81aa44bfafdc6cee11744" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "911dd6bda837c6e5045f44edef4754f2", + "discarded": [] + } + }, + { + "name": "creative_b_dash", + "about": "creative B, the DASH break's second ad", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde821284d7d867e501b967ca243a4db13b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b43b79811a342e68aefae7cbb2007b2e4ca18f06978e2cf8cb0ecb6529224d6f8c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a0000102701000070b38dbef5a217061bcf61e1bb963e317f70b88a53cec8f64dfa91f9bf9d23fb9b505cda7d878b3c599cf97d7fb351501712966483a3dbc1c9b535698e3eb106" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "2bbaa6014b7f2209b6094bff70abf73e", + "token": "0002cdb7e255d063c1b6ccc91c5162e09dc6c44b77e0d7b31b98009fcc75f9ab7153de6c756d4aa24b0317c8fffa21fffe6ecce16906923a9518571dc45e3086ad4dca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708a0c96aea69b6f305f14252f5404fff368ef2c282ffa203cada9769a7a71dfb32571f3914854567d397f99070f8b375799798e36a98e8ee5752b61f95b81450aa5b00100a1ff2726f96b5b994b9d048576c231207dcd2e0e0498194ac522fd0da29b6a24b36bca2cb1a368f3ef7b8d8942bca55e2f1505c1458882795ee5ad7aaafda78096bee17ef47efedd0765fcc344ba3b10824150de675ed47072c625a994c660eea87abe68b031505a137aecc94457bff4ff9d5515fc7245d67c710087078125e1be312adb6178bcff426db3d161dbc3a2f4efa80e6ce191e9659c2bcb50b9ce399789467d3080a65f400e08c991460aaef83debbbd72f8a5468885c4f9" + } + ], + "outcome": { + "outcome": "report", + "cell": 19, + "creative": 1, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "2bbaa6014b7f2209b6094bff70abf73e", + "discarded": [] + } + }, + { + "name": "creative_a_hls", + "about": "creative A marked by an HLS date range", + "task_file": "flight", + "record": "rec_hls", + "claims": [ + "5753433101010d5a98b3b5208ed18b82a71ea77db4e2f5ec29e440eb3820e4670cf17c15cf6f2fe9b303491e39d3fc6fd17fadd860236ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f5ffcc67d84aefa2a367b06735e0b61a2bd0781e8f14f20f20606015365a1462011027ffffffff21000500686c732d611800323032362d31312d30315430313a30303a30302e3030305a097372762d612d686c730400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000a45b2ef4591e1dd379c6aa68ce1bd20d30b785820b0afcda1389839445339d60383165307f30177e621c9e0bbc20dafbe760e65840f4b4da78bbb85125766407" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "82b8444091e98680112514cf27eea601", + "token": "0002c6d1f5b7cbebcd194c41b53584faf75162ae78da3bab56f9094c18a773ea691f57d59f92486022f4aa67f68cbb6282a99187ee1e525227f5a5ec3ca3fe52d72dca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708327243a494e3ad578d4f5b54d8c236104733f3699c4798ed59700248859b8ec5a3dd87bea78f22a688ce512a5eea3f5b7781ed9a97e5d8482710afc058bb003c3f4603b73d52e4cf7a230445d75929b45b9edab96f632b1cc6ed9ab99f17dbb745ddc8a3e20c0f828d8eec92f09c4a345c1db3503d95cf19c9f1f77f3e881d69965601cf87858d764464dc1b6f431d9109e14cc96104f9d1706e014a05dfd93af38d41b0b36c40777283aad519fcb05de3e147a25bcf76c6c3892d5fce7f95a2efe1eb2f3cdb33528a05e00c6578c010d50c358f33512af5b0d40e2a1d5c4d137bdf98982de4920152617aea698d267f1ffcc9b2f4d3c2b4db1dc825dc0f679e" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "82b8444091e98680112514cf27eea601", + "discarded": [] + } + }, + { + "name": "region_exact_country", + "about": "region XA: column XA", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdcfed31ed7eccdcc4a6ee622532b815cd6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50208a747d3cbfb925389eefad6473380194bf96d345b5462e22db942107a7309db011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000dd88db81ed5ed1fd5a05983d8674dc250fde2730ede394af774d131412f4764685cb197dec42c56a71718169f17c621edda2a7503306500d953dff8738f08d0d" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "d00e4197e9a7a49ad127a8d0064c6bc7", + "token": "0002dfa347cd61e22a71f2bae05fe120e6bc7b2fb4ebcf432a77ae6c4219eb7db3450c741f4945beaddba4ab34efc96a988e8e9f5eee3f4cae72bfe32ae0e87a69b5ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270858ad8420f80099325c63556005e7398861197d02c072ed19c4e68463d030d473017fc44e0cf9f6003c85450a61de3be683a0d179ec457f2a022dd78ff9095cbac12b429916513bc387d11ef909a74e0d0fe6f421a04ed0002c282d197867f64199a86eeff65837138ba3e7516b9a932bb1505da3295672e234b1caf0f7ec28d8018af8d22c1329fdde1fffb5e647c72dde506576e655ca18ca40b9860d0004d3d6820dcfde44bd0a7a06d46b237dda67f37d012d4d9eaef40b0e513e423de8f134e568c000ca173b3cfea3ef9e8716118308fe0716b7938bf1683d2a668798fcf56c6e0ef1d5786c2a4a31cdf92c5fb7f4f61bfa4dfaedf5626e83865ad590a3" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "d00e4197e9a7a49ad127a8d0064c6bc7", + "discarded": [] + } + }, + { + "name": "region_subdivision_of_listed_country", + "about": "region XA-7: column XA, its country", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd619239f4a5322282a631dc5cd8f1fa426ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026f1e6ff7cfabc3384f5f4646717e8826a00c279416b945c794049caddcd47b8e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000010932f18486065d57ab7f597a3eea80dffe7f0c010f47787d37c22be70ea8ee29d19d0b117751ce929ef348ec6d13d20e1245362fa6e1745b5d141685aeda03" + ], + "region": "XA-7", + "at_ms": 1793493000000, + "pool": [ + { + "id": "1c54b7528f32060602268e71afb0dcd9", + "token": "0002e1f03f1c4b310a716f78448daa65c27b0551b33f8a85f0ac7d0fed9dd0f80918396e8d01c5200ff71e9d234d4ddd9c5c1d8e6e9750b0d816159681f33168e94aca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270823c7e3247520c5697f80666cf1bb061eaa825365fa56aa107bd76b4c1c9d81645e7d51e572ff33e2d4f65cea7c0e799a63715564e2e1cb316eba3d9c864d0421cf96b0b8c6e2f2dcab2d98dcde6ef9466457a5a66e059ecd543424bce608a4698875e58890905905960f2932f04d4b946b894c184d8f020d4a2c403ba18701d4f2eceb9e2dfdf1cd5b57d6e0310de0c06b1d675dad7d0a49510c2c9ce099891c0881844311522c9a334e27d93b56c7600d09fdbdbc60e8a2989cbc98360cb51c3601c6b6821c652dc579ab39b3e37ee847523b76627d56f369f4b72439bf16c55e71b633e4c77ad46f02675ad2189971add21ae0f1419c709e353cffa6ec4c29" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "1c54b7528f32060602268e71afb0dcd9", + "discarded": [] + } + }, + { + "name": "region_exact_subdivision", + "about": "region XB-1: column XB-1", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd72154ed56e6faf9c5254d2b29e4565f16ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50270ddbf56ccdc00b0d87cdbe05c122aa92e86a3825db66e2c8455de6a65353b5e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000396ce848ecd1a5f55b658ad12ffcfbebb5f292499eae0a416e13568abb845bbc13a378281c8fb7d549e05057b574131742f685a9128391b11bfab275df1b580d" + ], + "region": "XB-1", + "at_ms": 1793493000000, + "pool": [ + { + "id": "585e7a1f213550208e95cb6c929a6a25", + "token": "0002a704f269eb0b9a0b94178b1759f83526918e055b3a1bb72ba31ea217e17067370809dce6286dbad50cf7b83f8761cf0a2df1a963b78d59a869e0c2884a989357ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27087b57e4848f342298684a108803df858eef36ed86119918fef8d24f224eccaede76267e3c9883773722914e26564a6ad40fb23011ba7f33455304d86cdf1a1b941e3582354f946ebd36c3a72cc538e9ac57c68b4f498fa8d6164bbed51971f3dcc4111d41fba718b37bee17616a27bf0e969c2076c7b7f6c9457a6203f0f5a520e4cf8afc9efbe62831d384e83801178bb54121b3aa19036b1c5759fd82907a3fb4ec89cf6f5905e50f55ab890cf63f171896f4a8c4eadfa12e7d600329cb2b6beacf1909b972cd65fce8950c6119db3ab459a2b74805992904e2fcc65e7169ee46d60cae87059d6fa143250fd0472a1cf841e7b01cec590baaeeeac9a0fa88eb" + } + ], + "outcome": { + "outcome": "report", + "cell": 9, + "creative": 0, + "column": "XB-1", + "quartile": 5, + "time": 498192, + "id": "585e7a1f213550208e95cb6c929a6a25", + "discarded": [] + } + }, + { + "name": "region_country_of_listed_subdivision", + "about": "region XB, the country of a listed subdivision: other", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2278cca3cf9feecb0cfc7dcc525dbe626ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50201687ac88f10739056c131cc01a51c1e2482dd1615d7c30183a7b6888e02af82011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100008eb8ede45dd66cae655a9d6640faadfbb913a4f40ac8bc221590d92b7460470df69ab58c3a99aa3cddd37eeac5558373ecb67277dbf459b06a3a4aced859400a" + ], + "region": "XB", + "at_ms": 1793493000000, + "pool": [ + { + "id": "7e80b74445e05c04da2fdc8d2e14dcd1", + "token": "000280759b6932f9353dd3ac2592faaf799fbc0d0f9e21ff0f71348f11bb5c8575a801078c9931a2f6f723c18418a01b9ea9180297115fb6a4d4538a39238f96b1e2ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270894d7e0c72f81da7c245b6a8bb85673eb0f8379573198904a77831c65a9bbe928bff8544744e4508304b4f6541c344e94cd30296426855c6e42922096501c68083c634df26a8e124063650031c8a7d07327b024340c8039bd4eb813611e1c9e34d87ebac9ff096418c29f16aac15d95e6a757194c4f527c65ba521da20547e6c5fc1e724c674c8e852f3d2fad98b1abed0504330331b7592df2f0fb1abcc632ee0aa2f8fe95c7639358286fd60f41a834f2c8c11bb5a52bb0e3da48b3a88435b44255e635522f6eb49db96dc165cb7323e4c1bb5bed5087c9f3555fd0d7fd08dc95d475e1bc52b3c81e50361873f2a685b670b4ccd0adbe0112ee982f9b553428" + } + ], + "outcome": { + "outcome": "report", + "cell": 14, + "creative": 0, + "column": "other", + "quartile": 5, + "time": 498192, + "id": "7e80b74445e05c04da2fdc8d2e14dcd1", + "discarded": [] + } + }, + { + "name": "region_other_subdivision", + "about": "region XB-2: other", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde6c6277b830cfe37e0e1591934fca0f26ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50214c36ed2f632b76268d4f986a74da9c9e7d958a6d7af681c8f7321e3a1fe5db9011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000a03fa46d82a542b0571e9fd7ece662c447f56cf0b549d88cc1f4e081073c22814b2189aa18e54fec2244608cc189e462cbed000cfd1ce626928b49fb05270403" + ], + "region": "XB-2", + "at_ms": 1793493000000, + "pool": [ + { + "id": "71cb65e4aef3fbccced1ce7709b3e3ef", + "token": "0002903be14126c6458a7ee362e44a627ff01f04d4629475d11b7e941430aa95b9cc6a6e2ec2f1254dd1874ffbf50bff2877dc334751f612e88a6070fa4357d84f37ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27083fb472a182481c7b3aa4b70cd2d2d1c965d26869d574579de786dc55d8d961abbc51dcaaa3cc58f8165858348a9a3f06737bc01ee879fb43d9923b5afb2316914e0d588200fcabe78d0cb9e586b9828fe520db4873c17f1e54bd4aeb24d3168a83f26925e6a5c03900e23734091ad3e43c82027bdbc7fc02e0ce9104c3c8a8d3d4f040514cea2e4d9f3044af8e4571840234502721675315597f5dd99e1b6e115a04d16d0fe0a535e707ec5c78cf4de0c46d11b0765b7ed69005cabc6f4503c29c8598cc77d720d4f3ec014a361294654221601259b75f1059e035d458bbde17f7f2587a039085ceaf2cdc1e59cbe7c224e50291ace85c3153be4ba72bc91b55" + } + ], + "outcome": { + "outcome": "report", + "cell": 14, + "creative": 0, + "column": "other", + "quartile": 5, + "time": 498192, + "id": "71cb65e4aef3fbccced1ce7709b3e3ef", + "discarded": [] + } + }, + { + "name": "region_none", + "about": "no region: other", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fddcc18e56f34726ee7187bf04430a9c656ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502af2c046e7edac858be0fb5cb3d16414de1d9f9d522b3be638a0c487c5958a18f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000d526eeb98878ee8a390f7ceb39bd805ab03d6c2acc28c5b2bcd13381a213aa764acb0514198bf957813c965c766a88a7e9f3ef3db5abe58beb174c62bca4c700" + ], + "region": null, + "at_ms": 1793493000000, + "pool": [ + { + "id": "b05948685b478b293f58f248cfca7a57", + "token": "000229fda5b2a0c5d7c9ec997318a710a9f3749e5b60a1257959f5442d655b7d90f944ceae69971d896c7b3cc00275dfdee0b7d41a5386e0b72673e1a49bdd1f56c9ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270807172b6b3d55c23b1d36706233913f30eafcdd1295c99049e0c83bcd1e1d939482d0565a734547a22388dc5f20370ae40bb831577c16fe3888b6e71ab9fd25224efdedb602055eb1f3555474c59003ac51436585c508f8f0b315e059d2bca2fbfaaa2eb27bb26a1dd40e5e641e651e24af2ccf58e73efd158ad18e102414901dce6523f9ff2216b6067e99f85207e943ce327b1f5d6fb307da1deac8ad098fa21a5e27c6b3bfa03782c3ee5fd10814bdd25fa62d6f2f63beffc8dd60d74595ef50265ca78f62497162e19223236ad3e3f4dd136948007f01971caffbaa04358db31be1f2201ec80a82769ef85a0f6da2cf156773bfcc4e449955571f07ae3982" + } + ], + "outcome": { + "outcome": "report", + "cell": 14, + "creative": 0, + "column": "other", + "quartile": 5, + "time": 498192, + "id": "b05948685b478b293f58f248cfca7a57", + "discarded": [] + } + }, + { + "name": "region_malformed", + "about": "region xa, not a code: other", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfee356d12eef49d8baf8e514f5adacf46ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021b262d254f952146b73a6d54f467ebba35877ff9e0b9140b4373cb0d6afc7488011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000051f671bbe2af01308f58f2f5c3805c629fc6cffeac729688656515fabb9ee720bee6e337941f27255bc21b9b722f9ecd1d166d3490f3bb649ce412ab81a0fb05" + ], + "region": "xa", + "at_ms": 1793493000000, + "pool": [ + { + "id": "3f4af9f135a6a152379b9c1f686998e6", + "token": "0002584da1ca3ec61f48d799225a78a5e28771f5fd6bada585ebc1a7d7a92e788701ed264adfe5ecb8400238c9560f5b28cfedffaf7c3579963ac322c539447084fcca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270836dd271986f8884e62a9c721ff74959030f1a8809c8873f4ba5a3d53dd1823130086569c887c265be05d443bc2fe489bf7ebb7e3267fde3adc9e53ca1969d9cd7472504d434120aa0ca72580b017849b9953df51f563b920149ddcc7155f313323e06e4443b52726dcdc0f4155ab1849644bbcc9147fc2f00f62a6ac5091453f8e5f0aee7910d0ed33d2ba520855b7a84ae7c9a4e58a8731f726f6280ffeb5e1ee1c7c1baee51355412768b41442f39057c6294a0c03295ac30f1cb1f7dcd4041514c4bd767b9b3f6d03e6ba5d3855b73a9fb833af6eafdf995541a3d3c4292293d5db5e7b3dc358deeaaee4950c4b431bbdd313428104fd34ed2ad62978fe36" + } + ], + "outcome": { + "outcome": "report", + "cell": 14, + "creative": 0, + "column": "other", + "quartile": 5, + "time": 498192, + "id": "3f4af9f135a6a152379b9c1f686998e6", + "discarded": [] + } + }, + { + "name": "bucket_first_ms", + "about": "ended at an hour's first millisecond: that hour", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda19faed9a26e887c792e5bc73ca68c4d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026f6d7af97ba2e0f62a6195c34a3adcb0cd024d35006913426d92a99330b763d5011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000d6b572213e0928668947c7b9e12ef94c01bb1ed4060ddce1c5c475701b16c8b377772e9b3f34b755f91f811f3640bce2dbf26964b5b4b8e2ab630d8d29cd9b07" + ], + "region": "XA", + "at_ms": 1793502000000, + "pool": [ + { + "id": "f081677686a6a51b743ebc65d2725099", + "token": "0002bd240035303fe5f73bbbdd977ddc08e6147f4c9f2271f614a81fd3ec2071bf390e27b03f3f5f7b314c9af57e42ac2023aa54d9e27fc062197b613883c806f3faca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708b0e0255da6a4ceebfcf26e23d5a5ddaf45afc4ce630167e0f8518c9afbc990941d5ab0dc017804ae84ce4f6935d2e2f4553a14a41c94984d7c141be74c7ce5841ecfdc7c4bdb47fd77f3a9ab5c1fc3e0bb37455db94223bb0d6144d6783cdc3e4346465ffdb0fdb883061d9c3816b5ecd1d1330818834394e25d785526eba8de423f72250bb384d7c89398bd73a6d6478ee2b7a2968ea3b7066389f89da0dd805d65f8a83d6b188ff1df887191714ec40d4e584920fead95972ebf57442dda6a2845bc54081c573fb9fb95fc0b5363040f62946f78d7d76a7dd30f67b0e1c624f606e629096125328f216ca63c0fa9bd689fdee2f439995786b098ab8727e3e4" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498195, + "id": "f081677686a6a51b743ebc65d2725099", + "discarded": [] + } + }, + { + "name": "bucket_last_ms", + "about": "ended a millisecond before it: the hour before", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd46b04e2ed83f8c3180214b628c27ee2a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502cc885723ba4ddfdcb82754e0b2191e7b06d14f3953f07cd905afa8a699e66638011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000f55cce908247aa1037f76621d007ddfc2556a34e34911ece4e3bfe3469121566081b33aefa146a58bdfb215fb786145482fc1fa391d28634a9946c2a09c16807" + ], + "region": "XA", + "at_ms": 1793501999999, + "pool": [ + { + "id": "db68867a7a387e2f7a37e8dd8bf9552f", + "token": "00029584459f657605ef8e50799e062c02a2d026b48eb0620568bfadd985bff1938ec2239f244a310a5762171472b05d9bf4e14f29e2da695bb4e0f1e941ca476516ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270846694b9c988597b709dc127f68d1b71c06a0b3550241d3affdfeaa94bcebb4f03a37d278a0f733d55876f34d9f4db9a8c47f3c3ca821135dd4e45e806253e3befa032cc07a4f4ca2111802bd1dd2cbde38396ceaca212057ff642b346e1f5cd7174659d5e1af027bf4a642aa4699761f05ad59a0cf54aa17e2b158a413015c423ef48b2b7dec56b60f4c48b83188544d6669496b7e82e58c770cd75cb0b00aff12f3a58e72d6561e05028c98b202d2bd7e5822d305cecbe4acc9d664b4f326b26ce4129eb696d577a78611f2acd0fdd72a34caabd2ea404fc8f75221a5e247f5ac5fe4f5c26b1f417b788310b64fb0029cb54ef79d49f09e108de8f5606e4c84" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498194, + "id": "db68867a7a387e2f7a37e8dd8bf9552f", + "discarded": [] + } + }, + { + "name": "flight_first_ms", + "about": "ended at the flight's first millisecond: inside", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd703a0fe88f16a68104c16a7e91e9b0ae6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023de2b7be99d7e917647d856f41b205ef419b1f438c8ed14927389814cecb8ea2011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100008ee7a24a49f46f64684404f9d0cd51d23e5542b72af8f54f8409d77f84765775bf4a4402323a82344f7c8d0985788ded93f077e3153a2a1a73d48830dddb8b0a" + ], + "region": "XA", + "at_ms": 1793491200000, + "pool": [ + { + "id": "993049baefaf6db82301c9f91cca753b", + "token": "00026000c81860d3b2a5f25e0d0da319c41db6baf007d9460fb6860930e0f2e5fd15e0737be3b9886f1ed1f652e5ce9247c22ec977aaa0a20c5d2e76d5f953acae51ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270866641d0c4aa355cce2bef676e3c835519da9e50242bf18da3f884fe44a0af162a165a419ce767732bf94f54579ed4e48f272740edb9d40c0f452f502d672ca6e491521535c69681e41ddd27763ac617fa794792310606445c6cc1770305784719adddbc94cf530716754b3c723418c60de872ab383ecac746c35e3ac0027a158d947eb63cca2615581ded3ba94ee6917a51e8518ef9182c1f92c3b7b2a3b1c543d7fc3a44a519bc91eef3d91ec585949e51500a08501404df1fb62a7002e448f95460b1ecdb9fb424c7c8124af7b1571384dc22370fa464d0a713bdf2ac295310d3b70fdca683939f054ffee551a8d471c5ca101d596e2070ca972b81039932b" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "993049baefaf6db82301c9f91cca753b", + "discarded": [] + } + }, + { + "name": "token_pool_skips_bad", + "about": "the least id's token answers another id's challenge: it is discarded, and the next is used", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2f1ea3bfbf2149f4e26c8b58297a328f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5028c5edeb9c8fe54d0f41800cbd47e1c1bc510f5462f20bb5f08988e504d40e85f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000408bc4e26e4bfcdf2b7325d8ab157cc95a0b16a40ca45d004ad99ec25bd9488bf1a786269a629b19355e2b916a3262cc04e99cc2bab261c051343b4a4c50d103" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "f47b58ec2325e3da73a31d087ebeea77", + "token": "0002ed99ee6799e5b3d4d3bc14fb93b7d941b0d3877ebff457d99d15d845db37b00fe952045a9baef56895940810bb45be67162f14e905eb54301e16ebea7d349781ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27088b8305f6b3e2d6d39c0af1d8a1ae91e254ef06e68924b2edebf570879d3c75b82aadcc4950763a0e0d8255da93a71a844a32a5366cf2286f36ffec3bbfe2e1e428d9cd472e1582291d849e41114aff2adb602c4a59581d130adab3b39c8ddf01b5b3e94564714805676e6ab93e36a4ac271de4becb017aab8af3f0a6edfe3e69dde331928fb7e87f08dcdbcaa84a5c85deccd30a2ac97f889f6a08a53f67371dc757454c8e9b8b7f4bc3e1e96251e2aab761baf336b97c63f3922f770b086c61602719552b08a8bf17b9d15bebb28729c87ab9162605d9c6d6d4919b204fb8058422fd8da5406345e8c8ee6826b748e8bc85f2fbb8d3071a1bcfed4097c03474" + }, + { + "id": "956d463fcd860a2d8a2a64df9f6d5ea7", + "token": "0002ed99ee6799e5b3d4d3bc14fb93b7d941b0d3877ebff457d99d15d845db37b00fe952045a9baef56895940810bb45be67162f14e905eb54301e16ebea7d349781ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27088b8305f6b3e2d6d39c0af1d8a1ae91e254ef06e68924b2edebf570879d3c75b82aadcc4950763a0e0d8255da93a71a844a32a5366cf2286f36ffec3bbfe2e1e428d9cd472e1582291d849e41114aff2adb602c4a59581d130adab3b39c8ddf01b5b3e94564714805676e6ab93e36a4ac271de4becb017aab8af3f0a6edfe3e69dde331928fb7e87f08dcdbcaa84a5c85deccd30a2ac97f889f6a08a53f67371dc757454c8e9b8b7f4bc3e1e96251e2aab761baf336b97c63f3922f770b086c61602719552b08a8bf17b9d15bebb28729c87ab9162605d9c6d6d4919b204fb8058422fd8da5406345e8c8ee6826b748e8bc85f2fbb8d3071a1bcfed4097c03474" + } + ], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5, + "time": 498192, + "id": "f47b58ec2325e3da73a31d087ebeea77", + "discarded": [ + "956d463fcd860a2d8a2a64df9f6d5ea7" + ] + } + }, + { + "name": "open_no_pool_needed", + "about": "the open catalogue: no attestation, a fresh id", + "task_file": "open", + "record": "rec_terms", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf9019be9647c6fa648a80da1d5ffb63f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50225296b9fffe40598a2397bf7a884ee1c23fed711e80f4229d1e6c12115f34b51011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100004e4200e85b2990741cb1e5d853cd8ebe5d0f3c8c77a8a5ffa129fadf53427c2da3e4882f6836dee970b3fe887049879459e4505b26a704cf7bf4a1b331097509" + ], + "region": null, + "at_ms": 1793493000000, + "pool": [], + "outcome": { + "outcome": "report", + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5, + "time": 498192, + "id": "fresh", + "discarded": [] + } + }, + { + "name": "flight_end_ms", + "about": "ended at the flight's end, which the interval does not hold", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf6c87390a31b5f044475c43e4ebf942c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020708c343ff5eaa0efba85465c956f82777081641df108b207068b96666b14832011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000042c1e9c453bebdea685c1afd3f0871967bf7fc67bb205aa7d007d58a6b0c68e9d8b465abd9fe365ed9d864a5f1048a5ffb9b783e80ed7ac8f88490289286fe08" + ], + "region": "XA", + "at_ms": 1793577600000, + "pool": [ + { + "id": "6ab8ca6e0057581afbbf036e8a979295", + "token": "0002da79be31fc206a38cb4362503b8b8e45b0b89b251f6b181652a8f21d257aef7496949fa82d2fcae53ab78afac29aee44a0d3d99995516e588ee971357f29d104ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270876e56f4e82d2e98cf0c765eb3773b1c147791a9d2d87cbadc4fff523b973edb487900ae0d01e7e0705398e3cb0aaeba611e0833baf6c16e3981fc690a7b4045f4eeba063497f4ce17ee13c32fdf1a7e8f25b664283b6869f74c378df8e293798710e8674331cac5aa98bd41f200ccf800afc72308375aa95df232eb8fb80a5d2749155456be38c792edfc696eae9519afd9e43856ceec9c2aab564d5dfd4a5f986e0c7811adc64e8e85a87f2f76a9012fdbe9d6762ed960a879a602fb779263b181776b1da6be959a6f2c3134a7bd9ea2bd00787faac5c6c659581fd086adff3aadff6f3f892faa756b28b7bf8faf48a61e06ea146fc3ba5063d32fe7da8a79a" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "outside_task", + "discarded": [] + } + }, + { + "name": "before_flight", + "about": "ended a millisecond before the flight", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde510fd820d3ece7e347b591e9e8c1bcd6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d9213530281d2cb0e7c8fc257d0e67886b748b89727a2716ed7f3cee46456f02011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000c9db2d5fc63fa9d19d75dc12e18010d0a16decd6321f5a94b03ffb8a472e255e72599b4189558b13a26f0ce5e277afff24db0d9d541466dc5482df5c6ffed60e" + ], + "region": "XA", + "at_ms": 1793491199999, + "pool": [ + { + "id": "e14b5bbf803f09def31ab4bf2f7d4e96", + "token": "000299973a6ebe56498fc9584f373b90060cd67e4c9138b26e69bc5c20cacc2bc07ac61e1198d80b207a614ce5dc79bf6c5141fed9656432b94742c2b0d67e647f29ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27080b835843ffecc8a9d29f3cc955585b6707e96758080cc078eed11480906989136e6611eb0a55edf3931fd5d0fd14159aafb2776d2964aeb3b9933ec3252062354fe0b1e44af48a0b779cc0f59af83480c459932afdc6a0a4e0704fca0029e07fb128577433895246b1a10387913ef33822abe57564692c9e2854095530ead0e438f0b155d39fde5c1536a03fd92c96112cba38611c6125f775f2bf75bef2e510fb535621b8b9edfae71a71b610698eef8c2fecca5fbc19a74f0c22806453b976ed7d89d917277a43b1f7438c4fe46c06b069d5cf30d16e3584a69337d36d62d60e8618fe77053384c9eaa0fb0c5aac1a20ded2a5506d17bd2b7b4833f53f1ed0" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "outside_task", + "discarded": [] + } + }, + { + "name": "clock_unset", + "about": "the receiver's clock is not set", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4a742dfb58701d6e23278cf2d575601d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502828c6673b1f096dba4d5074c0050676b01d2eee7543b7a2d7f2364722b7d6adc011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100007442af07d47c82f7f83013d8dc7d25b09439be9369df1ce29ec7004857d75d198cd65cc204d01395e7271186caeddbe86f41b2765095cae8caddbb5e9f333a0b" + ], + "region": "XA", + "at_ms": null, + "pool": [ + { + "id": "6ad35db50dc5accc17ab8ba4a4f4967d", + "token": "0002e028681b2c686bbb3b16985eca8638a0c86c03b6b8877493d3fee8737f29be4049dbb8fa2495b4b53a69c03d459b5548c37b127010ff0a72df03cf78d00523c5ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27083a790c3f2f39852f60b3f0aa7cb65c72db9a25c1dfa65dbdc374fb0fe9e2df1662b4e468e4ccc5a14f292cfb7ad319dfb9cda48bf0fb62c0a10f646cb7804492af854b2552235bac3f31f4aa6abe8b24b432c76b4373705f0c1d889b47b4cf79571a78f9bcf62c897c634a83f2a59281348329ffe7e42871c34a1dd0659ac9a23415fdffc05dd7c6dee65c246f67a93d1d321df216b2c13f8b97cf2a516d33b238705a184dbc0889413b824e1999522b93f92baaa25ff513e20e6ad0d601f9c64b9fe1d362ca8f52a791d48763280e7662828c689410d02f06ccf523554acc4c7e3a06359841b05ceb097c414ae281d5679104d347f753d8c6d73348e8830e08" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "instant_unknown", + "discarded": [] + } + }, + { + "name": "session_record", + "about": "a record decided for one session", + "task_file": "flight", + "record": "rec_session", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd276bc506ede1947a75fbda8c0000391f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502dc6d63446108474d1d2f34a023ebba335b90ea1910396baeecd068db990153a4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037330d7372762d612d73657373696f6e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000c5219ec92f4e8f6d6d2851eaf426afa790da3491ddd2219070ca6316d83ea61450e6d522d40a82e2ed1567ae23d40f165de1942206549e82355148efb3aea60d" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "db0e1b2609a0a7ecb77fddfc790da052", + "token": "0002db609d45513713fc87efdab81a892ac458bac89b780818944bc3a2aba0c54b46fb4359fd7ceb015b302605e871ae22db55461049c5ddfd888be265b92ca2bcbaca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708103bc16ea58cead2f83e32b879b366b89c43dc8a264741dc9216401f7de8be8b368e5ab9737713dedf2891e0e882587218607c5226da3155e3faa0694c8ec88ae30c7ed983174f0055246ca0767e9ff7feb336fd45fb392a557f5ab3b96603b86d898bd570b287c801ab786be1df04865cebc1e03b33fcaeec0b6ab5a145329a7b40123a84f92e74fd927062cd09af51d79aacb6062ae40b20d21da3a10b38005132a9df11fcdba319ef26f958ab9ddbe301c70816cca7899651dca73b5145a452982302bf2329e268c6249f25c93cb16d007d5326da53623af34bff82dafa508ca011545c55a8884516514cc3f3381e2cb3f80b998b7acc48f17fccef78c1c0" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "record_not_shared", + "discarded": [] + } + }, + { + "name": "terms_differ", + "about": "a record under other terms", + "task_file": "flight", + "record": "rec_terms", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc8b5f21281a395db48026f8c33887dfc6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b583ec7842159e50b905c7ba024967f7a331d3d2411279cbe2fed2d0e6ecf297011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000097dc709461e2d8a7f29909604002976f78fe30a7ddda595122dc53a9a53e36bec3e474fa758592cde796bd8e0cf6adaaee2b950a1b94cda9883ddc3397b68904" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "e48c8ec4148810df271e35a2eb6c7cab", + "token": "000262080bea54934c749309b4f8d955ca79dbee4cefa4dd96eb2397e4433f74cde6e9fbc96ee975567ee855c9c6c8ca4ae575df16c480167fcc37662d0bf7a19af4ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd270849d1ddb7749fa944b28b333ac90772a520320009a6b9d553f0d6c7906f771d15d330bfaf113d2c1b25de86533891e663609bf1691911dbbd898b32f604e8ab65101a105c9230c1d76bfe52cbecc1ddca1e9732269803b1ebfb8f65225e3e0b03e5978e270c6eef84e3dbe48f9c10260333fc5a892baf82eb32dbf36a42ba67dc81512a17530c628bf9fa060f5e908a41b04ef1b1b9e9f85aa5114e0e0596fc0fd4d247acc6dea9cf152fd57c00087633453ed267646dd823a0f78d9b85b7b53a560e2538dbb8753081659999ea734e4e944ad861513517935fac75841a89b9bf11d75cc39394a60d4387948d9e5bce64203da6e4f0752973770d3f5e2df4ecfd" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "record_terms_differ", + "discarded": [] + } + }, + { + "name": "creative_unlisted", + "about": "creative C, which the catalogue does not list", + "task_file": "flight", + "record": "rec_c", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1920c1ad6ac3def8cd8118b7119ca55b57965cd460e7c9665c224bc9f9e6f8370c313566ca423f3f615fb1487d02298cdc1b285acaba09b7f1ce4d292566dd3b0983974e4fa9df031f965580f9f34e5c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003736057372762d6303006b50361c4ccb9db88980a0ebff0d8d2359c75b235d26ec26978a7d1a23ed8fbd7fcb7cbb9e63fcca60d0a0584cf5b12a7e790cb80ca6a3e286a8931a1d18e2fb3547380ef870803e69bda75927f5f7e63d7df62baa60078742a7c26df77bdc4c010000000000983a000010270100005b6d1b04fa9cf3e221b1b3bd2efd2a3ab160e5874072518cf185e493c3c46c8a7ce4cb9646f7a264c2b33b90a2a1ac1f7089d449ea8a71c86893a1840d05150c" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "4e2ce79886ffccac09b3a215ce750385", + "token": "0002dab649d0602ae17b463eaea450ab7486d29610b0fa8c2189f17a0a93180d378bb46377304904c3ecaf3fffd5cda32dfe539dd81a71374dc76af8c3765d546c38ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708876c3dfb6f0a7ed35d5bb25890b2bd0556e73a405b53968d3ef0cb81711a484fafa327f668d3349dcd991cd208aedc1765a42fcb149517fb8be9b90a887554f0f09630e18e86fd7dcbc648d70eeb5817631b56d04d969af50713c32292786b80d1d4453f8467f4475379856ee30b42d0a24daed1ac34a05aad9818a009a847d89788d09f28cde4883d41dcd8d292a3db13a2c62ebdd5102b8ff3187db8387ca362ca9873509430de81df5572c02f7cb6671838ebac083c59a262343e2c031e2b7d919427a022ad09cebb18ec14028f9fbbfb8214a676744435fc38862f62e6fd7222e1ed7fd6b958e3ea38f06a344552db922561ab5174aea3ba32281403402b" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "creative_not_listed", + "discarded": [] + } + }, + { + "name": "stranger_stitcher", + "about": "a record signed by an unlisted stitcher", + "task_file": "flight", + "record": "rec_stranger", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3e5ffdbef7ba518704861f9290603b7b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021d750eb328649bf05e614a56bf1876c6294c052792d98a1549f18c74511eb5e0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037350e7372762d612d737472616e6765720400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100001d1b836ce2a8f6bbc93ff16ea8482914298a5aa250047297cc8187c816e64f14cef0523cc49502c260b7f7e1b3e05363ae0dc8bb2934d45d1dc52510d9ecd60b" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "fa80eeeb3b9cfd92070834845b18c273", + "token": "00024bb7cf3026529be4d95b192a12a202683408d7e49d7cfa201411c86e1443967a30cbafbe2ce0db585ddacd0635b54fa77b07064e312feec0e3ebf2eda18fcbddca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27086ee0aeecc552bbdc7b971980b150d4a3a8d61fb336e3cf8da4dfaa98b4ce003fc50487a115d6c5c8c98a958d04d3a2fb96c254766469b4203a1dd952a59d760b63ea4ea8fee070eb075bdb43a61aa961f10bae79ffc437fb0d15347a8cd1913d39059405b336a7471bc7dc9af33ad560b0d4ffe53bc1fe45edcd08fe93923d19937c81be51ed58ba3672f5d6bd522d475d6f67a1e28b9c59d18837c235fda7ffc3fd06da0dc2e7d9ef04ff692d1c8058d2ec49a781fcf24fdf1fbbd520cbd95434c17779bb734ef29c6a62ac7ef17135793787d06c75be9c67711caf40d9ab19ae48e6a64a7729cb5c5205e8aa929b2718ab382f76cc180f85d58a64e57fd079" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "pod_signer_unknown", + "discarded": [] + } + }, + { + "name": "not_viewable_90pct", + "about": "90% of the ad's pixels in view throughout, below cross-media viewability", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9d5f8554080a3c63c7625b78c5ce219b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5024fab17677ea8f86a911ef9b165558a369dad8758e1398e68edd3b5750cdcec26011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00002823010000e50aa204c0d36bf235edbefcac08e1e30e07b855765e50546a9e1c36dcf7b40894365e05dd28ed96515c4271b184d2d61a71139a8cc53ffdfcf1b7c777da5c08" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "cd21086acd8e9bf67d3c204864c13182", + "token": "000225455b5f168ba34a0da44cba84fc91d6eb8a2f970c687f1e6d02d1bb32e8dab0ee9c85a1cb9d5a69de7489bf629e9f46d8b4d5dc74d23bfc7a3f4ca4c9d7888cca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708a0df5150403768165696b913a0ca5726772cceff22a916e3fcb95a3f25cb43603386120d70dea1fbb3935fbd0575e9f273a9595185feae724c739c083e028ea6ab6cd33a3521ffc71a9bdf8672e7d5f7bbadd30e03777b6fdf30e999a56ad0b0d60024f3189baa0edd41b0df7574865ffdcb194037641a5cfefb616a81ff19ee17760d477ca506472dcae3a6ed2a7beb1ee4076f53f64bec57e3a5e71af395a16c5938a9b6ad2d8aa6819de77139ebeaa70c46704be0d7d9e64cea45f12a657bf2ff9fca7abeafd0d6d9e18648ac165a3935025f1d810555fa809dde166d8891bf9cca3744c5f4401aea5000d042e764bd5dad26e49351b4095251fda55aeee5" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "claim_not_viewable", + "discarded": [] + } + }, + { + "name": "second_claim_same_session", + "about": "the session's second claim of the same ad, after one judged", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd56fb966a93dcbfbcace78164bd0bc3756ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023215cba17f5018b662b16f0523042b7a4b3b09ba6eb5d5e01e46453929578e1d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000075599a4a102833431234769586625a5a7585a4e561d3273aacc0c6525aa9af2bee56d286b9f88d0dfa9c2d65e6dd3519bc397007e3c4c757952ec6a60b512b0b", + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd56fb966a93dcbfbcace78164bd0bc3756ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023215cba17f5018b662b16f0523042b7a4b3b09ba6eb5d5e01e46453929578e1d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000cdeea093119bed7d25d2f1803f8e905b8bb17fcfd6b1452e869071349a46c2f3605bb4cd575926c8da6522de16ea179afbce29d2886eae34fe8d294f46107104" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "5cb9e80b32b9037028efa8ef4bb41cac", + "token": "00025495c757ac4bab2bb4f25cc92f0489d64908c45a0bf9828eed45cb882ccf9e4f5091562e8bf865573e0c6ed4b0201f1c87830dd91bccff032ac332a6c2586850ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27087adab5672cabf2ad938c1e14d77072177a6db1e8415312c54c1a106d127f7a07a7f35d9a680f94164bdc2b0ec70a311144eca809eea9f0311d7158e0f6e6a1e0324a4adaf6698378e37a446dcae4d34365d126d2ae86f856e4f9afaf0b7e572c9dfa2a1ca8b2d176112caf067c6f309e0670a4d8e06d4372bef8727befd4ffb13ded4253ead984cd0ade041ceddad961140beea8c54f37a4f5518bb190f55ee106eb437c3b57dc9912062c47d62795194176e48ca4f833448da6c84019eb172b92d7497e666127461cdd4d884d77d29f45dae22036b1cf3d663eaf4e59e510c3d9ce93efd03109ec442a6a954244dd189937e804a85172188af6e1b25d7dcb7d" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "claim_duplicate", + "discarded": [] + } + }, + { + "name": "marker_absent_from_mpd", + "about": "naming an MPD the receiver holds that carries no such event", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "57534331010315c4e0eacc4c893a7b8a28198c86568711715a0b343c4556f2ee14eb3dde0476d996454c280cbf811437436525e053bb6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d3a942eff2d308fe768080d559c480bd9fc0807655ebe757a7bef789bf51da60011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100004d08c71d27b5d802e3fbb2419aa67842b4db7b5d42e823a503aebf8f2c3a37cc56efc3bf088e84f1d51805e0b459d300f5910a15aaf42a2bf1c9982ef01b7608" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "db5382585e13970f82484c95d2262973", + "token": "0002de215cdd642f8f7cd81860f46863336e68e5b3dba2d6d4a22496c2668371d3d70318f9517017f8354c23edcdff7e98491209e086021e80e617c946a5a9cffef4ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708b498201fbca5ab766fc84ef28ce780d2b1450eaa135db0364a2323f006c19e44f099e2cce41394d407d352a311588dbef811ff4c4e0da949ad50d91eabb4bd6e2cdbc3ccbe8058a41855c6cd9783f04dc37f88cc13208a6a75b512e32b16b39bb382b5105346abcfcb1fa9c95ddd90b07b09c468b76e91db4f8cf4d78b9054b78822cbdef2b10f7b1477e07b7a95ab34578253b95b8ca2f9afb4b3538556b01fc64547c8a94f612771e1420a499c1e9acf04711294a15b09d890f4e55b76e5d9c32c0032c4f14d60b903cd5f321e7ee0d5966a98a1fd1a83cd3a7761dad29c0276ba1f5b9d510b5578255565872f9e05cdde8d7d0217106691ee11c563304a06" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "claim_marker_absent", + "discarded": [] + } + }, + { + "name": "manifest_unknown", + "about": "naming a manifest the receiver does not hold", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "575343310103d7ab46dd8a5ee824c97392d89d65afecac71173b03930e28ebd2eae5fbb0d0dd7ca6d8eec31713c5e44f49d02c9282ef6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f43ab90dc56fb5926088aa0d70ec6f1240b7c0888f356a809bd875962cb67cdc011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000c9b0f2d071b89f49e807fc55947e09da02db2af2a88480d69727afb465fb425293d47f35555c05cd34f8b7e7f2036705b5ed0cded8a9b489a2c2151e7c53d10f" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "d55d8937d41acfee9bfecdf26993d7c1", + "token": "0002da179b703a99ef3caca249826a8fab3d35bf8ca3ebe91838e3a4971bd2682eef88d3cddee087b8ed2fe341d370b9c78a597e984a13520ef592e790334620b2e9ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27085d999edaf467059585bc5dee4430545f3f29509fe040936d7da0d9a4f15d827416083d0f10b6ce5837f3a66f95d8d2c9af9f97c1380d0196bfa643cd0b43456b773dc1560ec99cf7f5aff9db6c4b18e60df616585c309424317eac9f0b9d059975fa42d185f7c6455906e31116aedfbe591a4dd74ded3f34e9d7e4e1bd784c00b8aaade24c368d8e552a21c9fda6fb8ebafc625b736774731c12165ff8d191f557cd1005b7ac04a1edb3473d77acbc023b3a55fc2c8fe47595d5befc86d8ba5eab2d4996823b01b727f26f90fb24e2c4af55d671bb8cbef67732bf6b4795f9a00006b6aa5ff53fec6c60430139dfeaeacd0bcf6635040e3f40a03bd8ff20cce9" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "claim_manifest_unknown", + "discarded": [] + } + }, + { + "name": "pool_empty", + "about": "attested, and the pool is empty", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda0313a703fccab4ad2c303ce847250796ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027d5e225e65de2b59842d5c3a9b3da868fb6ac03325ef04ff78b47091b1f14280011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100007ec49e4681af8a17efb34a96585f3cc6d6b452dd4f5bb0b32ebccada747961f03a19f6021eeb46760b018d73857b17f50d478900c7fda01bca163208f583e709" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [], + "outcome": { + "outcome": "no_report", + "reason": "token_exhausted", + "discarded": [] + } + }, + { + "name": "pool_all_bad", + "about": "each pair's token answers the other's id", + "task_file": "flight", + "record": "rec_dash", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd6aaa68d99a6fbead23b4bb3f196cc256ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502895713b6b938f185ac881bf4f6a7dbe6d9b402b61fb6826ac6fad0e39d98cfe7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000063fb9d0960fc242703345c09330233c4295d1c3ed2e4ac22866fac1c4dff01477374fca7a1f243d0eaafc563f266ff5b7c6ef4d1f00234277a4a640594731a02" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "8cc9dbe61d2449f10a8f5cff1a08a3f6", + "token": "00027fbe3f3bce0bbc4e17e55e496d17d219b808f27b33bb1fe4977c5c1f4593b995b3f0d16ea615e4e3f978bf54bdd7b9ac23d90bd8d2282cd15de4bba38c5c13a7ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27089bc0166fcca468cc9d61aa4ad2b869b0537b178f813148a3ec7cf7ff3b4f100dd254c26382a8a292b3a1e94a63417e5be1b95bcb328c4c706519711b417d83d5c05fe422d165533ecc0bb4567b92d17a045d3ae14d8b6f50b14ba622cf0232c5b3fcfe0c6ca767706af89224e53803cbf55f1700c134194fa443b175aee6f11cbade05efffca74aa5494e543b3caa14c3179ed96ef1f7efdd84c3677ccd23036e96b012f94a19a65b190f0a5165b0b392d54914ce993d4feec390da8a8764a88ecd3ec9506eb8653c00e066331f1c3f8e834146462a226e8dc1e89a1b2ac5490d1898fd359a11e15af3e169c39de8030f0bad5877135e40eb2e514e868af8050" + }, + { + "id": "d538ceeca1cbc66f20540714534b44e4", + "token": "00027124d19414e05c98fb4b49840fd14c1d96ffbc8239a16e5e1594a20d4841c064f2ccab81317b6f4ae2f97b4e7c2f7b7a81e1efcd392be3d52987d64478afa09aca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708293952981dc245d33688f07320d14a1d8448ef14de0f0d091a18e26ba85767d9e70fc6f07b12c355d22bc5b712e4cf2ddbe63b5fbf7ed2062d55b2de0dabd839a110fdb61533fed290ee0c75b114b6ef5ae605b1f16c255a24406d0f51d67d1ec76309bb2158c85588a70cabc2c73a5d3832ff3380d42d382b486dc414e563a9902cb108ba2b603404fec758b30ea6f727e510b1e427b0857109473bbd05a60971e73a29ae3f1cafe0e4bc4615301a45447697c75bd1afbefe8ca08323729c68f734e2fd84418d8210da32ec9012ee0beac21ee4975b66f1c0a06bf28de90170db5ff8001882302106abdf133d2461c77018350fb0ab1ffd7ea59b5274a7d8dd" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "token_exhausted", + "discarded": [ + "8cc9dbe61d2449f10a8f5cff1a08a3f6", + "d538ceeca1cbc66f20540714534b44e4" + ] + } + }, + { + "name": "record_flipped_sig", + "about": "a record with a bit flipped after signing", + "task_file": "flight", + "record": "rec_flipped", + "claims": [ + "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd22ec42458c97cb5efe5d552cb9380d906ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020ec49e75d8b867c69ae5f250194ec095535f03cc5d2d29829bb14013938d31fd011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037370d7372762d612d666c69707065640400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100006e24aea4ee6b556f00d2cdbf187738c26dd4cf108073db543c513a9ee50537cb27daa6b43a3404b47fd1ee468b713f60353b677476235994bbabcb662524010e" + ], + "region": "XA", + "at_ms": 1793493000000, + "pool": [ + { + "id": "6e7daf8d703108d7a45d873f558182f2", + "token": "00028df3da624bba0f53b266d6e944ef9c0a3fb94b81a4b90924846163cee9665cf57e59ce1a1de444b68b6ed1dcb9fcf3c1e16185c68e1b2f4bc035ac25f796aab2ca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd2708c347792ee209ba51ca4168061acf63388a6d7cdc530534896d7eb26dae2c287b3d9c653ededd857abd589f960a3c372835e205cfd6752c9ca3e0891deb5c969e4dc4fe78917c378bf83667f9f0ea66f6e62582b5e7d5c53941769481d6f6447e3d95614f01e49e7679bbdf16ea64ea756d5c078982bd08b50ea80ee0749a32b0e2ab353691a2e5a712985c314b6367a56477682d8d027ea104d96d9242998ac962e668a51eafd8888f9be120739184d2123f2656c37fb4263449ee4ef04022ded00e583d2522a337ecdebcc7d65ccf9d780f321f160f33982a4abd8cede0e10882fa2b9dba92fc44647db08b474bdcb10b438eb591985a54cdfb9334ad731387" + } + ], + "outcome": { + "outcome": "no_report", + "reason": "bad_signature", + "discarded": [] + } + } + ], + "flows": [ + { + "name": "flight", + "task_file": "flight", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "verify_key": "0cbe25b6cc47d675e236b67b6e8cf8cd13fdbedb58e03664165597da996c65ec", + "reports": [ + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd57ae2f18707212d0c42170e2ee2ea2826ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502116903fa0ea626ea32fec56e4d30992a08b31101c862917dea0d3088caa7bab2011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000e7ccbe03fe2a5b2c74ffadf513d0552a715f7d28483c8d07e7a528758b7d58a58fc3946388618cc8b48538ba83deef8a04cd2d1e025bf1df3fdc0847eaa06f09", + "region": "XA", + "at_ms": 1793491230000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd0b5705e3937ffa392abc21884ebd60956ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c127fa59dd1c40a54546fd67937c175b4f36d0fdc8775656860b92dd4022647a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000fa79a2d21890e2aea68ccc16ca083cc8962be0373bb555ab4929fc4a575c36d212539a4d2c2986d297d9f71165732e7f51c4f31a0c7b16d2e5941a0c44588e0a", + "region": "XA", + "at_ms": 1793491290000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd08ca24e180ec27288ae62c30ec2943566ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b3cbe747aa30f34941e53a736f49fdb147e99441e5d0c8850a964cc4155fed0d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000db9be94fb1498d6f6b0d500a466b4405cab4a26a3a8c486e9555c0b8998a55310d0e2b95283cd186caaad75e00196f795e8e3c6093d28b09a8ef9a1b3dd2da01", + "region": "XA", + "at_ms": 1793491350000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd709f0aef72a4f9c6bbf344f816d8409c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502ac1f41b643a455fb31429203b48de32f1f31a7fdb0f83ee086bd58ba60261d2a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100002ce60eddf65f9530e07f8f0f4825ebe093e070f3a25b473695ed19b604d57602f88fb6a97a4e926af3ef5c7d6949cf2a4ca51cb2cc0d3076d3f3cf6f9febe608", + "region": "XA", + "at_ms": 1793491410000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc764289c00b5e0f3f80b84f159ab2ecb6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021911c3ff0507e4629bface39af79c0e7468c813e3bea95738649fe29d968c764011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000ea60e28a0eb27997d18fbd5f34adf1c2e0d119a69eaa86ab4a28386db9abd15cef614569da8487aa8902dc1db2b56a0705eaeacaed1d1b1c29028ad0e0f4c90a", + "region": "XA", + "at_ms": 1793491470000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd953a7c289245acfb44b81e25782212896ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502781bd3039c79d90f379f890e2ade1e36de002a1fa9228d54c421d3bd096383c1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100006f3e30f4bd924e450378790f2a045d5234a596059fee46c7d4033e88b555b61e26a5ae85f55b2abc176d228dc6aa709982eaa2c8f4abd3b6798c02a82f360f00", + "region": "XA", + "at_ms": 1793491530000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbd51a4d0a3e4b037fdeb0493936328596ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502a9dba11850eee35bbf03f41ffdc159047ecd13b8883922bfe897c5531d714ee0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100004fcc8ae6fb7869bda05b2deb6cdb019698822fa4f42df14a8848164289ac8e3b0759903b9176f6a788acad2a5d83c6151bf108d612f7774c72ae9d4ce5c23305", + "region": "XA", + "at_ms": 1793491590000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd82052a36ab1f12ccbb757e0bb7b2f3346ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c7a8567ccfaf14d333713faaf9045cae43eb8ef7ddfcdf037d8d3d4eecbd930b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100003f00faefebb2568f5723e66d6654f02cc6049cba8c4081c47c646b421c220605e7e7d9dd11cdeda86fab6d72da02612fb60523354219a944bb0f5d1623feb809", + "region": "XA", + "at_ms": 1793491650000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd5e6268f43412a73df734a7a487fdb5b66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502ad0fbe274b312fb3bc17577655adbe305513679a15581938ac162b8f094b0d0f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b0000102701000098f6b896f61093a8ce63bac3d6174c97a7b3e531d4d17a6b41fb7b298ab219471c883d8075b0f5738ca95b26241e32a45c82b43a70bbf9d8892ae32123f4dc0b", + "region": "XA", + "at_ms": 1793491710000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd240b337bf9ac4f4ffb139181838914316ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5028bd2a6cbb63792b478b503c8fc44962e0c8626e21ea1b9e0db7a7eddf235f9a1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100001f03606b5a3ef15ba63596fe23dc105ae91614028402d15674fbabb0d7a951012e63629e6e3ed3ffbfd7ab6ff853bf1dfad166d23e7dbd05ad4c3035a6aff706", + "region": "XA", + "at_ms": 1793491770000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6df97a646967178c74e09e8e8648394c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027bc03de6771662cb6a54c96862c3331a7270fb1c4d6dbd130b986f500688554d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100006b882c1e4ad244028de84b4089f2190a4c06c42c1f157c8b2156180e486406dd3b472e632d193fac7714570d123fddc03cfeb7ab07c0fe2d8efee969c9b96406", + "region": "XA", + "at_ms": 1793491830000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd81807444dcc3f76a9c52c5f05f4d70686ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50284792920d7b152a013842eb40b708c2bd685a97246ee6a17505f3745d1502f9b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100008c78a380f06e2fb8c1ef01042183715dcc1a5d55d8b61d607bc3ed29dab6dbf1cee62365dc940367046ea6ae5a9ab898ab768ce3aff8d27656352b8b3aa0ad02", + "region": "XA", + "at_ms": 1793491890000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7fc9a1b7ae6e78ebf228778099907dbb6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020f6c3ec9fe6c9114df9c307c2bc1cfa694ede70df77008556a265f944b460695011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100004f54ef9bf9c4e413a362a37139b209e252e769155521eb4d7168684efe558ca1ade146e64cd5860e139708726cf099230d99e15f0cb51d7c1547bbd14b3f380d", + "region": "XA", + "at_ms": 1793491950000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6df5f7b1fd639da0a8afa8fe493ed43d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021547a70dcd4f6049b388e361b3ff423b4233546eddf44cf2cf021289c3793e50011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100007a5688dfd8e823e8e366a9943e023a7b8f0852fad6f79b54c901e2bbfa55966453aa5c7a97cc1103591084efaa285453e312f1fcafaf018f8486b76efc469b0c", + "region": "XA", + "at_ms": 1793492010000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd0e523ef8491b3505ceb5f1858186f7786ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020c70a33ec512a6b5849521238b3b7382a1644fe70782f5554bd7e605de22176f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000062f1c1cfc9abbab5ae86b41d3a277539d2cbdf4c7e569aecd7c20145c0c24c52299592f80f614a050881a4157326b342b662a3c09cf9bbad9599b4a2aec7cd05", + "region": "XA", + "at_ms": 1793492070000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb6da66247131438bccadacb5a82c45476ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027be20e2696bcf69e14dde060703402062a7cbde99464b26fb42d6cda0f1a02bf011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b0000102701000044e9515ca91bf21fae88353f9d71857594da5ec72d4bdb82643ae78897d858b979ced3246b6fd0af3cb83b80600e2b95b1e805f51534d990fc7e42bcd899c402", + "region": "XA", + "at_ms": 1793492130000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8bb5cc613798878cca72377f8706fe956ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50250d95cb50518d09cc91d258d02bd7af81c6b288eed0acf5238789265e9e69f00011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e0000102701000060901c10858dcc1b9475287c18adb9ab9d21a8b481dc913afd4b5d1f6564c855ec545a2e5293fb64ae7ccfdb19e70b5a354ca7d9ad06a8ed9b34341f9c1ec60a", + "region": "XA", + "at_ms": 1793492190000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9d5fe75c22443a61b65b26ce67f7934e6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502958a655064ad66325003c7b4dc6419ba07b19ea88fe1b35a568d2fcbf77d0995011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100009360fec3c4c524b20ba9610fef788386150ee531095d3a24c2bc40e6ffc4b4e7a180286ef4e224c7361deee0fe5e93e96150762c070d28cd8c6770a79d41fb04", + "region": "XA", + "at_ms": 1793492250000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbe05c387a0df876110e281ff693b03a26ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027d794c219037c18f2b271fe4db552b6001cbd642597bfe18e31c910c8e6ca6d1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000a2e1e103f0881be231a8a56a98180bd7c0de27027f2a0bea12279f40e29aa5e958c72113ffe2903ebe6b2c8f9b0899deaf2d5f97212a8f3adb392323e5ebe408", + "region": "XA", + "at_ms": 1793492310000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfe4c6fe800eeda16c023d48519b067f06ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502fab8270ea77855e4b8a7615f331f03bd8e8fe3a0df62d217fe073f87d7c53191011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000073815d11b941afee56aa36cbc4e246faec3f3d98c33554c2f4e65924f134b9c910a28032e3f448950c970959c3ce1ff44983e2eb3d021b91761670748e94920f", + "region": "XA", + "at_ms": 1793492370000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7c435608db6359110fe3e9f76af59f7a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d984f7fd544a47be926e934b3a918ebd47a19d32d330424239930d882ae70623011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b0000102701000079aa1b7764365de5b75899aa6fe9e68e42ae9a4417aaccbaa94ea6efa10dd91650608ce8ef6b902beac08c7a97e8b8f1e5f1de541d280169e033b26fb8020709", + "region": "XA", + "at_ms": 1793492430000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde620cbcd091233379e788c1292428dfc6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c3dfd916e174d45c735eecfe1de74b4fb11bc01799c62137b4ecc36262a38a6c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100001f374ae502853629d7d62dc4377e8fc306ac02f510bd0a75b4e223c264f3c843dc4952ffb9a8ff7b38f5d7e5603af1f8622bdd65e9ebf08fe0128c246d30e203", + "region": "XA", + "at_ms": 1793492490000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc737fb41c5b9e6ac16910de1f32266836ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d7a2d6aaeb3fcc454f48423361af1022c6bff299cb5f3d37f8987a27c20e6348011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100007d55fa23fda0c6d3428754c14f6a4a470860874bf8bac1765d87a993c79f48e2b48ae223912f62f1871564526d27d8b2e4f077e23bb7e821cdf1a40a0716110c", + "region": "XA", + "at_ms": 1793492550000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb94770a9ea5f46fe0d56e02e78cc59756ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50259bc9c39c9496ef3aa21c9fddbdb0b974496d9ca502a7241bff2a5dfb17b0d54011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000fa9b8792db6c45c3866c8563fbbc98616014f2f57650007e6bce06ad64a3bd71baf23623ff26c3d666cf605bad80d1b21fecde787f2e1260a671f9cbb7655c02", + "region": "XA", + "at_ms": 1793492610000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdcb66d464ffc96ff80f059ba5320b51b06ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50211552249582145c11e5b314a3c8f62adc90b5b8fb832951eed67b6b2c79bee3a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000083432a250abb2a94aef87feef528351b3b5c7907e61de5190ff8a3af5cb9793052d9d0d60470fff954c3bcf846239cce6322500434fc04808f8311f2428ed60d", + "region": "XA", + "at_ms": 1793492670000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda16703d39c4c8a0d340d18df03fbd4036ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5029df46b4890c375a723004fd3ecff581ed81d17f4dcda6d2162ab3a18c665a0dd011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000097b80b53122576a27da363df58bea25b63aec6c6f368e28e84fddbc23ba296594eeffc98f3293f603415a55ef67bb5a91657ff5f27dc63f6236da2571dbdc01", + "region": "XA", + "at_ms": 1793492730000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1a8a4568e5c86e8822162c7598dd266c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502aeb6755ff37a751b3adc43ff0a25d9850fe1918281069a76db92b89abd6c7b8d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000462e26abea2dbb86411ddc9a05a36ce28978c2bed456f0d1063f3ef4a0887f6fa2080ea7122af74e9610db8b7e096abbf4394a3560c571af445668b6f3f9300f", + "region": "XA", + "at_ms": 1793492790000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda32a20eb390158bdda0424d7b806bf9d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50227f85578881641135c373d3aae217e944bb15c57cd0527b6389ca12fccbdc955011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000521edcfe3e158740e43d0a8de286e2ae7efb3468e897a3089060a110b6a2ac4c8dedf4a2fa57513657634f203e9e6a0be2535ea9b5c2c27289d71cd13151ca00", + "region": "XA", + "at_ms": 1793492850000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3e32d0451d9685aa31c54238411d91db6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d3b5dfc77c0cfd2563887085d2d550e59020b2303241afa047add66822ab1d29011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000afd806c50044b160cec622d1a77de95b5ee29326bdb6514f747886ce2fa77b09bcb5bd295ff52881559aabac198da208bfdd27ad7407a8ac1568d41dc1ef6002", + "region": "XA", + "at_ms": 1793492910000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb55362fbe5431cb73645bbee65e18e086ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e17a523d0248d43fc651e2bce1f5fbc6bdb22c782384eea9e53b3324e0d86484011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000047d355933dadc69863182c70341280488f4f216324ffbc0aba10536082628bdf44e43e887584fbefa5a4c949a294caf42f04e9c47a93c92280ebbe2f8f77b0c", + "region": "XA", + "at_ms": 1793492970000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd20f56ba23f2a60ca48c077da0242fd536ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023ec7b3642a69b299d58568d1be4f403d113a3308093bc8d3caed047c26f9f6c4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000ad201059da708e9214766ba9773ea007b362cedb6eb8c99f2697e6f758fc0bb41561101242a86937916dde7d3bec0ff91d75bf095a99cc2173c3429aaae85a09", + "region": "XA", + "at_ms": 1793493030000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7c83011b5fe5e0887fcd9695a73ae6da6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502763bdd76a080b401a5d215039b832dc9a2a3d7165734d32aa527574ba70eff8c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100003f093f8f86ec79adefc03cf3e2cb62bd195da1c4b88d4f1d4e4dd754092113fc6da649a33fcd08e1d067defcfeb90f66f5d818b2ab39364aa4e6d13383c9f40b", + "region": "XA", + "at_ms": 1793493090000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1ffbe49108672b137db239e4273a4d136ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502eb4f5e24d94d04c092b5c6544584c3d12fbaf5aefd72efd807ac18a46ba7c8da011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000aba4f14daafd49f1e63c899922eb394e849fc3239e2f2f2a346a72817ebea12c1f0947e704132b7296a3e4ea04342398776949a92751f23ee76caeb022a8ec0d", + "region": "XA", + "at_ms": 1793493150000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda965ce49310bda00f04608aab5caa73f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c0897b8799ad0aac3c2c894c75c8df6ff177270cc8d8654d9cdb1002d2e61930011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000ae2019a521e71755ea7fe10cac8068b8a490dfc930cf7a0ac268254466c91f5e54eea0cb2218aae8c6b636bf423724b1d2fbed65e5742a939f448bb36e5b5200", + "region": "XA", + "at_ms": 1793493210000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde547212fd588233555e9766c283a1cd66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502bb0b1d6a4206bb3863954c2e403cdbbe2736592e6fcfb265982ba1daa5881244011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000050dafb3224eba62e711c06e2181f507588465293b3e72f26d8c0e31e184a1754aef45f1bed5453b20ecef4436115a657aa48eae3fb0f0afeb233aae38270bf05", + "region": "XA", + "at_ms": 1793493270000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf14c3ad6f60fc033ad2c46551bb1be996ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021334039a83ee19c7090db2ae267bba30694689e174886430d8138f47185800af011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100000c80939cd46b6099b0f6aafae62a016e355081d8517e193d3b38093c7ca28b244b4e9069f5853447a43bf083e70c2ebff00f0b789ae9e8516e4b865f6727310c", + "region": "XA", + "at_ms": 1793493330000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdac0f21538310708fd926efb03ca30d5d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50209b0e53bb3835c4385a4d7c3add1632df92813fd5eed357544d192c930795546011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100008b6acbf1e59c8f54c1e04d53ae1fc5f2529e4e474c94cc6703f80ec3884d95d905cde0d324ede33c9dbdb75842d6659d5fdfd691eecd71cf69a91cf6398ac10b", + "region": "XA", + "at_ms": 1793493390000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd44b88e4bf2d365659c07ce10baeacca66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e7828fba065786db3339a357c4a27927c4f734d420b77cc196b8c51cfd6db9f1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000f7f8989826e27e7cc8823d04a382bc8f6750b9813681ee8e6bca7f6f37005ad70ecb53feff7880d7f6eafd023324699b1f4a405d31cef067a718e89df694830c", + "region": "XA", + "at_ms": 1793493450000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfc5d4d4e646c85e27e781c01756cba586ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502bea193f0f0d425c06bff0644ea5614aa1971e266129075cb97123077318ad11c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100003b1c424b1b5063afc1c2ac4b4486bf2ab87e6cc72500e5d273567e956a6afe154799c18563a62d2d63a73553f98facf3e4bcdae321d3a88463fd8628164ae20d", + "region": "XA", + "at_ms": 1793493510000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdcc63f925874448c909b53f123b60fb486ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5029b1060b2738c6df5f122ed7eb5501399ed78505608f62b21b20342cac3903ac6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000069a5ddc35ea1f9dfac7bf341dc4535bf74a2e225caa61a6a94ee476ba3becce7a126543947509446f32441e5dabb0596372e76067a977b047a1b68c89321e807", + "region": "XA", + "at_ms": 1793493570000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdff2abe87f63af84a4db26a8c0a10635d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502694b09ea84f614a73f6f4e34d793dd507c5892c8f5e37896e2be78d761547759011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100008c2f0af85507f52e3fb607897f2b73b93d95cbe5359bacbdf86264f4a4f8027993a6119f6f3c17cea67b6c42c81eb163ba330da26dea10c2106c2f36337a1000", + "region": "XA", + "at_ms": 1793493630000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd52c3230bc5735b4abba57b867bae86246ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502972302e9c4c9b09ccc1a896274206717f6361744ee11668cc9dc6ddbf70775e1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e0000102701000061abfa7b30fd52caedc5491f463cf7b969ca3cc030d375cfd92e4cc9a3bf03e0bbbce873c6009a09713af1804337bd6da33d611bfdcd36de8bb6f1c37b539507", + "region": "XA", + "at_ms": 1793493690000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3622683031902f03064ee56bbe607dac6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502006e47a75a26174f00aabdcba34db588ea9508fce7bb3db74daa9b80a0e7c6a5011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d0000102701000035aea8a1c9783d61b16a195e62cbd4dd7945ca9ec2f8be308012a7ae4f073b2c40cf08d421294abaa3af13de8838945ce65aa1cf8fba3431062f58fd32a84802", + "region": "XA", + "at_ms": 1793493750000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdac6f50735d78a6f4f998aeab102800fd6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b6d899d63c5ad46494c963a19879f13c4903b810f4d70f0bd50747fdba7c30ba011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100007f01cd871529cffc74a37f2e753d31cf539b7d334833b70047a7daa93ceec96f540d4a76d6fed26526c71f5f47f97b2759de986f85bfeab99f84eb153f1ed802", + "region": "XA", + "at_ms": 1793493810000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd84428837842aa658153ad2ba993661f26ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502132baafcf0b5b641229c6c54d8b3187aae6d9f95edb9ad45de14dff038be1288011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000670b6cabd14c205429ec75c549e93ccb69ea1454a5560d213ee9f27cfaebd3085d42d2758e2bc2e84219bf4a3cf091d2bf9f3c82d6047ab58ac7bdf349b1290a", + "region": "XA", + "at_ms": 1793493870000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd344b8b00461b2479a2fc614ad1a80a9f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025127996f7cc9bf7a9ae4aba8b1db9481d6d3d435b641ef55bc616371d3a0dbb5011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100009985f7e18c81b74598e505db164ee63d27b280558693950185933a861cad4e2395fc3837aad5db25009f5a15c68b5c1fa0abe7bf9006f3fe07e8d906c0818f09", + "region": "XA", + "at_ms": 1793493930000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd61d8019aaa042fcb5ab458985d8854796ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50263495a385b44117a2e0caff87fc031b28ffddc6316539b6e72fbaa067e2a3a89011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000503204cf8427c26bb995c2867580809a8f45a33dce0990d12f56ad3b8dbb8fda816c0e815f2443c784e995574de39014db64fa0b81ba8ad496367b47bed7c40b", + "region": "XA", + "at_ms": 1793493990000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd307dadaf2112d7d7fa16a6ce255bf4ad6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50203839c0889b16b6798dea55704a67f61a83047fbd6291987598edeab813d3a47011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100008c11a69dc0eccc20d93ecc51817d61095f46dd4e43cfd77395218316853aa92e311a92b42443328e63976e518403f64f584cd487b14a304d12e02b6be316a306", + "region": "XA", + "at_ms": 1793494050000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd64958b4a00a15bc554beb69119214e56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50260dc3d8ec3a06ca5eb7c8df622625977c9a7a3e698a036015978fb75231cfcac011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000bd51de323b224b54dd8c5d7b8df3335a241a7e13e4f7559eef1d5641fc08fc41d47194795a0407fa330e567f52d879ae95901e3290cef84e6c2309970533520a", + "region": "XA", + "at_ms": 1793494110000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd3f39b40e834b8952f37ae3800217b6b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f3e6c0ad40ca0c8038eaa9a45c9a1ccb0e62daa2e5f6ec8be7503550bab84cee011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000254d27433a722f67578d56e24fbe4858e1790b9b9ae7ffc6302855a9975b5506bb14b781c02b57f1da0d590962b155dab1048111cc4f697c372f55073b570908", + "region": "XA", + "at_ms": 1793494170000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "d79e4c37ce0f50651bff1a48bdd6f3f2", + "time": 498192, + "kind": "token_absent", + "about": "no private extension", + "error": "invalid_message", + "reason": "attestation_absent" + }, + { + "id": "5e16de78b3a2747e88cc8bbdb0608abd", + "time": 498192, + "kind": "token_leader_only", + "about": "a token in the leader's input share only", + "error": "invalid_message", + "reason": "attestation_absent" + }, + { + "id": "ce88dea09bfef87302777082c72f060b", + "time": 498192, + "kind": "token_other_id", + "about": "the token of another report's id", + "error": "invalid_message", + "reason": "attestation_invalid" + }, + { + "id": "178aae3f16346559e1a42e2186dd4960", + "time": 498192, + "kind": "token_altered", + "about": "its own token, the authenticator's last bit flipped", + "error": "invalid_message", + "reason": "attestation_invalid" + }, + { + "id": "4995adfa713d664f13eee0023d5dfe3d", + "time": 498192, + "kind": "public_extension", + "about": "its token in a public extension too", + "error": "invalid_message", + "reason": null + }, + { + "id": "e8e2b842794101729bdbcea1257d37cc", + "time": 498192, + "kind": "two_hot", + "about": "a measurement with two ones", + "error": "vdaf_verify_error", + "reason": null + }, + { + "id": "980a4f2af627fc9a09dae8b57da4c7c3", + "time": 498192, + "kind": "helper_undecryptable", + "about": "a helper share whose last byte is flipped", + "error": "hpke_decrypt_error", + "reason": null + }, + { + "id": "d6cb42f9f8040334b95b4730298de789", + "time": 498191, + "kind": "before_flight", + "about": "a time one unit before the flight", + "error": "report_dropped", + "reason": null + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2e5f97d4b6a108c20da59deaf544e0d3b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f41d11690189da79f69c041ef4cc65522e0f238fcc930c9c9b96467bd5b67d1c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b0000102701000083a035252c19e4d13bf01f5d4e94d4929c01b3fc1c970359391dcc3ec095190eb7616084cff162e9b677699bcadde6eb497639996b00ca299cee6316be31310b", + "region": null, + "at_ms": 1793494830000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd50564ca878b9afee5bbc55c0d63ca1d5b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47a34cb3d5254bfae5b910c5355b4c0901634bc4536c5b67f6c4c1c03bc96dac7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e000010270100004732835bf6cfc757047bc3dbe42daa544692164ec2116b49fcca7144282e88e91aff33f84f6f5d89a00292cb741aa7697458f77bb7b383df8818dfad1b589b0c", + "region": null, + "at_ms": 1793494890000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb88f5495cb4216c8bfa7559e29d7a8e5b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4441e2424c1a3a15097eecea4832aad5c7f72fdf5f958ed384a69040056467838011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d0000102701000050bd8fea83c7394dd99c5193557ffe3e6514b460d61d4614a634015b25e0476724151c5264562d95f8f7d5465509a03f4297f8c1fa6e629c8b0ea4c949496b0f", + "region": null, + "at_ms": 1793494950000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde415bb65431de104e55264e712559bebb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4c8312b7ad879dfdbd6e709c44f002c265d223cd6b3e19ad4f2d365f17c862fa8011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000c2fd9f55d6613d353f3a37d8ad8d26c8aa5636b656ca5ec352ebb114c651b56204f565741dc462ab5672927b5e8dba5a81593b87dbf1b681f70d078658aa5e00", + "region": null, + "at_ms": 1793495010000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd59632e8f3beecb125e16f945c45d4150b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4538005cad3214e23e75679acf8d844b5ae3352151eb789fdae4e82f4c6bde4fa011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a0000102701000097fec4e33ab5b592e5f9219bda65d953594ae0a7c27727417b66f1fd5fd8f1c23ef2b35477206635ce6f7130efe1e089393ea3cbb65b68028d6cc716c9ce210b", + "region": null, + "at_ms": 1793495070000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd47da0010a8558b69b48e7daaae5fa8e2b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b443fc73c0dae2885c45eefe5b1cbd634555387b1d679baca2e993deea90b0a0aa011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000499ec2de19806ea5ef2475daeb6a99e3cbef34f7858875d398991ba533230f5f66a80b735505859acb687c1723fa4362718a9d0636e66560dfcfab1e07989e09", + "region": null, + "at_ms": 1793495130000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde07eac8b0a4b61a1d53bf982c9301683b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b41d027bedd524f5a124d663a5b41f445e09c5ad67804dd03d4cfe7f93000776b4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000decd85d0988b01b239d3cf578df938f50cdb61746a31e85a848f9b434d53c027381bcad4efed78207c41a73c0a6ba499b603303a320b5d9f51b0e7a120f05f08", + "region": null, + "at_ms": 1793495190000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8a1a36e516fa415fc58a0ae36e571578b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4957ef71cf9d0186e1b5198a6e4a31ed1263fbb33f061fc2b033400661a310d41011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000486aadba645e8eb7156116e0403a3baba073010980ba316da50603069ef9d7ae720586f155921c17761f35b69d55ae4a5a42edef66962b877f67453d4695510d", + "region": null, + "at_ms": 1793495250000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd288bf68fdfbd88d46d43fe04a25be1c6b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f2703d7a4c155e9204cf976912f949e94061bab91acb9bb211f9e334ce8b44f7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000562178bc541414af3419520cf4d9bd5221321cd74c45b39a4fb0d5f1f08e07488a7f5fe6f2cf3731074f5fc2b3227deaf28bdbd044a4ff80a004e86ae510130d", + "region": null, + "at_ms": 1793495310000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbcdc49038b66c887ceaee91a7607f791b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b483191b82045f2ef0c622e46b922261bb23cc823a1a9981d9a3c832267b2c9518011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000cff17995d1871087fdbc291a3e27680aab381c9ad02769ccf9adb2bb8390e18e58309a79cbdaccdde0c7280bc28f0144c95fd233a2a9ab3e3e27c842ba388c0c", + "region": null, + "at_ms": 1793495370000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1fe1c81a53091c655f4a00c2a36c5f45b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4b8104a28c0efbc54021738345f86a97581001783269a3de832a4d8b9b65711ba011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000ac4271269f3e239110af8614219dc4a57e3aa7eebe5a6488f3143685179913030dc89e2357dc9abe2f0e0eae0e81e2308edc095e759889af6e0da89cab3fd006", + "region": null, + "at_ms": 1793495430000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7aced24610f1e30fca5870880a368426b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4684798551614ffbedee18b4041656ca7c86895f14bc675c4ae5987118b3f4217011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000237497f6e2899a8f6c48e894b3a467b2e5c02f49ddafc1e509094eb464652b994ca74de791eb512f41dd196c69446c215f98f1213ecde1a6e17bd7cae5f4f105", + "region": null, + "at_ms": 1793495490000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7000f27d03395e85d85412b539beb683b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4b2a27c154f7dcd4496b47838aaaf466d2629c19fc45713d9c59af73db03d510a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000f0f84a27136a75ea27ef8912d1c88d80cb58d08d49e54b9483a757fcddd8b3dd4d63461264972d93f552357f76e30417fc590fe509e7263666efecf5d9f06e0a", + "region": null, + "at_ms": 1793495550000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd41894c2763ce06b5d2d8b7366bfc03a6b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b45c810f87a2fdbd93505fd7f0a2df47e0a7d7a2db2ac22ce9e8f7d563928ece04011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b000010270100002801257a2272f0352645811605a929e3f21a5d726232eb5d3d0fe58928e9498b887d09ed2f83ff341f0fa05b21b5d1390a31d7b0bd0de75eb3f8e8da30d62f07", + "region": null, + "at_ms": 1793495610000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdee0fad4e548ba1be2a0b0d159f14990bb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4598220c0a4c044f4b6d979e0281dbd142ca2f57c30bf096cb6490f44a72849de011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a000010270100006f81cb334a1026d5dc82826efae68a701342e1d50908176b204cc868a0bf20a88fc9bef9af3045302170208e6fc3ed9f4f4d1ff86b8e119140b6a7cbec162903", + "region": null, + "at_ms": 1793495670000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc5b147df7f432b4122c17ed58f3e2360b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f5c246b1bffb818c4f5bd64b91d4e8984e3d8642b811f0e51ca33335197acafb011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000200e7fcc52550ea4dfe628cb2fb9d34eeed0cb30ed85d0d0039e8c9ca615f588fe4b505e487f524bb7269beaf592e4c41fb6dd28d83bb3e45134f0f7b0455a00", + "region": null, + "at_ms": 1793495730000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd55a6b422c795c7e8d8f76013f1a8fdd0b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4fe8dd775cf7775e332ac7b54e9793b3acf11d62edc1bcb0acca93033889c59ac011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e0000102701000072ceb4966d6ad35518d82e75ced42f7a63f94a10880e8659fb70122e29bfe7fd2d409155debb9c64324297b817236280a4e625ca8e9ad103ef710bc2a11a6f06", + "region": null, + "at_ms": 1793495790000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd72f829740fdf4c9d0a0f282186aad9d8b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b40cdea1a3712def448bb4ae269bb95952192d5cbc8d2a22b19457037925cb0256011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d000010270100001fdc81101dbef30183c1ffc7966962f6b1790f6f6423496237b44814235b06ec6356a44c58ec61ab97e2e0157fa99a27d4fd438f7e5ef45f198014cbf30ecb0b", + "region": null, + "at_ms": 1793495850000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd47d90765d9223c613cafbcdb6c49c79bb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4bfc3a6786037952fd556cf9035c363b8ee903fd249142a23e75cc78d69fadf03011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b000010270100003244b7a053b293bdfdc23a941908f054bce5e629eb42951fb16b64897af9e4477b3734b7402c5df2f34aaa8a971d597f739a3e0c8669c969c6ad066db4c73409", + "region": null, + "at_ms": 1793495910000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd515b15ce1a9204d089855d953bd183bbb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4b32727353e4f54a9c09064249864f4e53a4d964b94fd0bf603491e7cb291740d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000a9e5108215f72e88143d32ccdc150e664c21922c598c6a82904c4b3a7461afc36f9dd45d5af726123b6b4244f54443b425ef89429dfb5b9f56740aef6c054d00", + "region": null, + "at_ms": 1793495970000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8e5f42bf7171beb9c6dbd129cee7eb1fb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b45f36d72c479287d1d2eca051014b26a864e0d6e049d3623782c19f78ce87a70e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000b38b612a9b55d8f107e6d177378f23da23cefdf00ae079bd70d5a01f683e0b4c870cb75692e2a9b888e203ccd1d04e2f204383941ad226d9c170c4d26f790107", + "region": null, + "at_ms": 1793496030000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6cecaf38e175b4381559cf66ae8c9ffeb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4deb60f48702d1c45566656cb7e62d7c7011e591cb031b5088d40cc794b4feb38011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000dd5fa5433cc966c5c98ba536c5722836cfcd554ce2e70cb1eb3a2a6cd0c36634a985c2a9d1f88de39ed7f0ebf92a142c1780347e02a66eea5db2be4b2ba1df0e", + "region": null, + "at_ms": 1793496090000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd11fd4b0f7a0a0f9706c932cdc7cc1f55b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4a7205e4178acdc46001d99e9eaaac6252a7e8cc3e85c652e4fc5bb080dda5619011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000e36668a1a6db9fd13487c09ea45e724b47f2d28b249e49025dc68a65b4ffd47fd6ae04eca36afbc270bd920c6887fcebf8c6a655c2f16813bf89930caa8ec302", + "region": null, + "at_ms": 1793496150000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd527076a6f1c4fecee5b76e867a856993b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47eb4dbd66ab8ae46e1e6c3fd591526a6620b4b7346437363621295fd203df5e3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b0000102701000027c48c3718d2889b22bf269a680a8c18ee99b850800ea13ed2d42df922b256203dadf82c3217674191800b4c47315849665fb2665406078a5dc55d8a20feeb0b", + "region": null, + "at_ms": 1793496210000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb4835d9ef384026995e0f2f725472f8fb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b463a22ece50d426d2990a1f8db8476fd8ec3e5754b8a181c614449de3ff795a9d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000f95bc17520c389f09881a69f65d745a029321256ffa9b654b70aa7100896dc7e1c28f46861923752c461f39f24c62e396ba6e3641b230ecc1d67ee4e38823603", + "region": null, + "at_ms": 1793496270000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdaeef66fb11261c3b9545b2ea5d8b9138b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b439ec4d523b9fc048f6eb4f6f4a778e71f685516feb1a41e4c0b771de6800f87f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000947f9ae574f9d9a4782767747a259f94f51cf376ff7bad8d98e8cf924cb74e3861ce50c1ec0c5d6d5c99312a5860033eff97d5078ef2f1c1dbf4d1d755ca2e0a", + "region": null, + "at_ms": 1793496330000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3e687a6d62b74af4f69abf743a593caab52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b44c082e0568c17cfffe022e4042e256289d23a00a173b7a3ec1942a11b6dc8663011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000f3e7fbbea947cc9e053a4d7a7105f49b8dff10f1a7c112a92b3c93fefd03d344d39d46c32f5c8126b9e49f3f01a9abf514862585dae02f74e11d6fe473208e07", + "region": null, + "at_ms": 1793496390000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1788b031d4a70adbeff365c27a28874cb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47d7ab677d5e195823f0314fd671f62a1f8260d684f5436c02a73948ce526316f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d000010270100004bbfdd2281892d4a0f5282d4faf2d43e4e3120a0a45bac86c641dd35e866cd14b7fc3285d45d37d71c8c45817db9bf9cfb5e5505f4c82336d88ccf8664c5550d", + "region": null, + "at_ms": 1793496450000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd26796985d530093a5e9d8896bdc86cdeb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4987b66a9f2bc27ef67a61ff5422a1f4a7b5314397fbb20e0843b33c4ade1b633011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000f4c9e85548c087b154603d0422097e4e0fab84896c56ec203fec2a22214a409d7863a78fc9ff0d1dfe0f9d954a7778982463255b4b40f3b3860e7034d3fe710b", + "region": null, + "at_ms": 1793496510000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd94a7b0ba9a37f5fb4a04acda2985a55b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b48a9d2d2b204d388eb7bacd83990d209b43090e634c5543b00f7f617758dfd0a5011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a0000102701000072e57184681708adc361336802971a9c14d89a1240d9abf9b4427d4220617fa40263adc77697ad5e4adf50282dac42b1e76bc4b0b8fe4f25cc0a8770fadba806", + "region": null, + "at_ms": 1793496570000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbca17e9d4b667f9b3d8fda2a0c874fa4b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b49b9befcf6d36e6ef598b53cf980e703ae40480260726125bd38757cc4e1a66cd011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000926a784d1a5b7a6e9a80681d490ac8cab5ba32bbb074f4e1b7f73f3303e792f68d553b7797da9a26ecf0b36fe2ef79ed46c2496184cec1e41fc7a1f21ebbf506", + "region": "XC", + "at_ms": 1793498430000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4877e1bfd41f46dd380723d73d195837b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b41e3a19161784d2f1fb58aba2489eab5a6fc9ccdfd2c73d0f87df00fb09f86baf011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000dca96bd5ef629e7f806c518b0f8d8f219e678510f386608d1fce81d1ea331f5d814a61e5f72df226286605ef6612c7e1dc6ff724b2deb519034e253b241dc40d", + "region": "XC", + "at_ms": 1793498490000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda8da7fc5536ae386a5156771a7aff088b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4d3a25f6f82f9e6ddfb5dc9349848d856702d196fbb55d67e46e62834c5692ba0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000e06d2da81744ad6ab1957e63fd9b89d8419e3b2bd9b50774346419f890af0c1f20dbd8fe47a157b13dc975745eb8d0527bbf663d464b606871ac4b71bbd1d509", + "region": "XC", + "at_ms": 1793498550000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd5135a11bbc57392c5a9f374941de3451b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4568ff4a24110ee12668bef0d556c04762b725909512b89d6141b9a1aecf9973d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b000010270100003e124290221eea29cb4ed1a36d03546ce132a00542f6dea8fcde0ad5901a2663001c2cc37e19273480c6e49d9107ad4a78c365e5cba36f614b38d2b3a0a6c101", + "region": "XC", + "at_ms": 1793498610000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc7172e4844b555f92371495c42783775b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b41842e5a788b96c9e5dba0fdb4ca40becc1910863d881d2c4ec6ff9aaff4ad066011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a0000102701000099d5c16d1fda9e198ba7500c081bfe2cfd469dd992f9178075fac5f28a0e2b23b63b88d2a8aa55ba282e1e6551941f39d7b49e7ba384bb20d9ea6fe795a0990e", + "region": "XC", + "at_ms": 1793498670000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde906533458930351e0a6490d63f99e35b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4ba3d7277189774b01b1aa75cd51a735596a9486a2778d36e24884ed8c535019e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b000010270100008108a12fb3da36367185ea8313cf571e27d1ed499f18a2ba29e5f3b5deeb1d1abb6cbcb1894a3a14b12acde381059c7ca7e03c05f0c3a1f09d4025df727dae0e", + "region": "XC", + "at_ms": 1793498730000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd337add4967cfb35906d851084701da32b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b43a0f5324c43a450349d96039040f0287b10a2d2d55193a673fc0c893f4292295011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000a3b34e75c238e4971f489d84427dd5834d311721c206a8d3482aff6208dc397405a57a84daafc14aca2b6ee009c75831636af8424e0dae70a0847db7a0838500", + "region": "XC", + "at_ms": 1793498790000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc08d263aaee4b845728c6fe24fb6be9db52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4cc5d2ed900890e9fa37997550b9d02f7bdaabd7731ebabe327662e6435063d6d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d0000102701000009246cdddbb7f3a488708c5245d32e4d02a86f7efcd584339ee4b20c7a702992929ca7b94cdfb6d758ab7bf9ad8778b45741cb6665cadaa7b775b42da87f8006", + "region": "XC", + "at_ms": 1793498850000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8049f9f9af310d953c30cabbf81535a3b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47460a29b2500e7af42c4bb62973317ec984c140eed8861dfef53bcca73a31730011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b000010270100001c7155bd1134a84f9200b8be103741e910f5565ee3d175413fa1410ba0b65e66285c9eed8362ef5b50384b43068d5acaa52bc97b32ec754db4c4ac8e21c47300", + "region": "XC", + "at_ms": 1793498910000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd79a81779548b9d08758bfaee8ebd8019b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4baeb023c8527b1a7b10979cca0685d9e7c3c4969a8f52d1999b56185bb77ba4b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a0000102701000027430589decaa45fc1413b973bb714c1197f55f4142c77853ee4c40f1818b67ff622f55799688920fdf92ebcd887b59a7ec672129c0d452db7cd637410c32d0e", + "region": "XC", + "at_ms": 1793498970000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd38fd9d4e00510ed753a34ba8f723f333b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b402ab5cde8cc6a582dc1abb6b61d8fbb3e5d5d5cb3b49f5a2d681756a42826208011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b0000102701000093e571a4383af1b5e497aeb52541e7126d92269f75ceee88f86a25ccdba1524f3f6eed9841e55b6832072b4af8712a0c828f4a293a14ed7ba5512aa74d92fc0a", + "region": "XC", + "at_ms": 1793499030000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfbf3f37a1687644b7db45a36654ac659b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4d01fe5412d1550eaa18e944dc45830fcb4551a306ade169d112a17e30e7a4301011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000a4012cdb7fcb379e3c746cd1c94bcfa375405be31b433b1580d44ac820b832775d3b7e39915bf27ec15efe3155c525277e4b033c6561141471e0e6dfc44cb60b", + "region": "XC", + "at_ms": 1793499090000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4f2203e491d694a922352cdece48d150b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4e3e8d7f0e60d541f9c846ca5ea1f514316c6444f44f13e5f9e2f2c8a32a247c3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d0000102701000017791fbe87fdf1a0d146ecc72850f9773a7b07facbd3e66f87ee203cb0aa2798004381aeb1e32f2bbd1588e74f5fa410c7723580254cf40d9ebaf21ffff1d700", + "region": "XC", + "at_ms": 1793499150000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd003a873d4cd23c25fea421762a538e6eb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b42f60817bf1c412edee59a6afdcf0a410ec27318ec602951b8c8c201b8c85b3fe011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b000010270100002c48905e7627b48ce6d9b4b8aff9a595f79613a63933b9d73312c24299e69d76056dceb94326c2056ab2afa42cb3f8f2ba1629495353b311241c109293a0fd0e", + "region": "XC", + "at_ms": 1793499210000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd232b273699b0231faf775f54c475cfa9b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f5b58d9b58b1451243f16a66a46914bedc9a86418cd84b982929da0e2b583160011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a000010270100005fd36376801a26f0e4fc47a02c2e85903d52908bb4470a5d54e7b8e7ab54063406757d6854b885d42d6e086531e5589c770696c37f77baa78d73ba7755002d02", + "region": "XC", + "at_ms": 1793499270000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbea419e0a2dc386001fecd7a17d75f8db52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b44d3a8a3ce00929ef57bb378a2a53c093df707cee7c4cbfafcefc4fb57dc58578011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000cdb550c80684a2f5dedb164a6e8f555142705a524ace9d58cec30b7276439bdf004316aa4876fb1b8f55bae4b03cab1591646478e212e314899a7f8d3e104c04", + "region": "XC", + "at_ms": 1793499330000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdda89de0f90697babbb192acc15620433b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4aaa978bea06636ac4c32a0a1cab730d509d1abc4ab7ba62dd73052399244900a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e000010270100006434e2f8a40da55d5fbf21eec88de1aea37320ccf2c45c2a02f0ebf11a64f6627668d322ef5c3248834da458fdd2293471fddd84bd75ab7b90288887543cfc04", + "region": "XC", + "at_ms": 1793499390000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd901d38465efe53dbe9731a579c0f89e9b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f4cfac1e35b5b6b8ae45d660ca357023ba737b548d6eafd632e92315b0b81791011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000aa305ad86873cd897756e440f3b32a1bb6eaf8f488fea186c8df48e407169b0d67d307f73a8af60048827b3337d29e47cb41026c2a7b3da4796cf79b38b1020c", + "region": "XC", + "at_ms": 1793499450000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf3657756cc334eae3c0c1bafdb278bcbb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4e11f4185218f1a5f7d873ea968612db7e125141e4754076c8a3e2541df21a64e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b0000102701000042dd6a33de5408e01ece4f3d436325adc3d6514cc21e9c0f2b547aaf6957265b3bd61f97fd51067effa5120240136d2c24aebef0345e4e91ef2fa27dd471a20b", + "region": "XC", + "at_ms": 1793499510000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "kind": "presentation", + "record": "rec_hls", + "claim": "5753433101010d5a98b3b5208ed18b82a71ea77db4e2f5ec29e440eb3820e4670cf17c15cf6fc6aa99313f762853be246814ba65b97b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f772da584e0264f11dc412b3b1932567abb24cde96f8e3eb5717fa8a050e933f011027ffffffff21000500686c732d611800323032362d31312d30315430313a30303a30302e3030305a097372762d612d686c730400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000e86acd2dc6d45dcf329c4f835e68ff03584c4cc5d7888110e3e5f257c167f2e476b5d43780298173e63423085586f3e85471bb95317370870f7619c429c0d80e", + "region": "XB-1", + "at_ms": 1793499600000, + "cell": 9, + "creative": 0, + "column": "XB-1", + "quartile": 5 + } + ], + "late": [ + { + "id": "e186b1a19a18d2dc8ec89afd3972a1f0", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd50f546f65bb597d0e912cfb40195db776ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502acf320bc5d1d9d9243138b3e113b33f7b8d81cfc5e39febbcb02064939bae519011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000be9a19f62917e6f4c87c73b274402f5fcb4df52f75a8940c6b5d335a1b9cfda9fbf717937ee159114feefebd62573943ed604196ec8cbd703244a7440567920f", + "region": "XA", + "at_ms": 1793494200000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + } + ], + "steps": [ + { + "step": "upload", + "name": "relay_a", + "file": "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b500012f20008e049892ccb5ce441c1aa0efd56ec10000000000079a1000000000004092ed1507064fc088d7b0a00c21e94f450e2276d000950917f94691b7fe42db25914b66dfe58123b0a30510d1170fbc077a2bfc4f1046e3788d54f511d400d6d2010020ec20c551a92f1fbfdc026b2f1ccb8c5440e18b11d15d5686a4ebd1f246efed6f0000052c4b1d0e1a3dd3a8820c68424da4d98b7c7a803d2a90389fc03b0e88f057adf92b25b0ef325599ca8ccca4fcb9f31b5777b628fca4b6a52bd49b761ceab8ad1c5816adc621c6c9e7036a559ba98a9a0c9d0d9eb5ec1b6dbaafec663b12a08ecda89b4c0497fe92aca66f395477cd107cac925300cd2dbf3132a6aae305b1a59f760a92c99395fdecbf9265d34514d00cfb984c446006d6e9954aeaa4712dbaf4a0543e4bfb640e461741a8df4208b2bb5e14069b8380a4fdf11cb2e01e37f7f43e111d66253eaf5d66c57bdbb6e0364e8168149cd01d50533ccfe3029670d33fc91785319f57c5bf3fee7ba7b30c8aa5769d597b48eba5c5d23e5d17ff60861b6ded6213d60b46294c010ed063bb72ab2b6c33fd1d88e33456c5e14f5e042bd6d9665ad6a3050337645d9d4697a3d31b73d1d672d2d9756ad1522a8dde597428fb1c4f3ce9d7a05e1e22f088d76f65cb1c50ce1bf364da378007f07ad581c609ef7a21278a7627139567f0be2116e8561e55aaa96f82c374694934ac8b983ee307f967b8ff3488b4efb570bd8c7acabda67ba6526429c6a1c6eda26fc589ff27b9c6099b34514336c612397d92c00b403febdf9051674f8fe3bfc3e43c660293342bf04b7ca11c3f99df2272c9722da246455c3ce936c20175d56a4f6d97150c9ea195bb0b6b4b1ee0b6d9ec970f758d1f7f50875c722d9df935c2bed732eef01f49e646655a31bf240f29d783566b1e41686e8d76af29811af427a46a2ef6b77bce9406cc502de6e95094e593ca44a4ef2ce8600d7736654ae6d54e3a22678cc713b404061bda261560a04b19b2a5ef3563590b65c453938f46661c40aab2f2ed5c37b3b3112432e12f5535e195f7dce545f79dbc11fc7158cba77c5aa41ff0fe4a219db77b7e15cafea771477ab1f3b62603b76b7c914668c05653acc3c9d4398e10944bd3ab14f965f85abe6b76cbe953cae6112089e6833f352786e5bd389f33c85b7e0ef0c9f558f4ebc0ac83aa7fb68c86463a2a01c9226e2c2e301ef0d8db3cd252e2788c7c0ec5246364f361dcaaf1241b7d93ec8bf2067cd75cd864507992117dbd60bdf5e4807e3a5b2789626e06d22b2350fc51dc42402c78ac87a75506814529193bfe9a4368538d712c836b5b5866a730672ed8ebd80e2f5b87269ffdb262776c97e142d8e2c552b982aedd19f78f00a5608db60b69412dfaea6c8fe5b590c38e0142ce343076c1d0a1f08c985070e6515d4d7fee44fb6dea4993a7670e2d191b14ed766eacbc51a11bbd527aab5aabe3bb7deb771a96cb9217a67432a298c4131eecf699220e0571074303e30f5471fc4fcef87d9391b134f5ba72a76a257297b3664c65fe25cd2bf0c51d81c60eb3deafd4fdc1e06306d1914d87b64a4a58c7d1a4366880370d111f6e3544617bbbea03efea53fe9690c1e4288d37c352e3e25e09fdfc0a4db330b33f5944308cca1f503cbedddcb51628923793a6547dbbcb9c7e35b3fdccb33b3a2a14d00f6aaae39eefa09f7d0f7a998ae070d5674112efcc3063946bdbed4e1c42f61ea624d447ceb9619077f671dd050961037f2fd28fe3307cb793ee71605d54db9a17748fd8fe81afeb978e6dfb78304b716b549f96a39f9da0a52b948efa19816ad7512129d185e00bf3b48f669c20d989955f84c9a15d7573b7ec43fb2af216287805dd8ea2f9d1d16128fa4965c062cf4ab7363e3f56dff6f94b8407346d7b6a04cbb15d74f8c745d02080771da11fd2649344fc6e96f856df9d648d491b1aec80bc96c148458d4cc6cd71ffc2c986c8d7b0ca9cbbb38ca79c24562b799ad0af8863f30ee3a51fc9c6284e1f87d98b993d29773b51b1bee69559020020b3d6c5820bb523e0f83bb3e9791213a347f8b59a95066a20ebf3c8beb477ce1b000001bc312af14fc19338fbf5607955eb9759d6db99d977e393ff7dbfe4c9c64fc869ad84a96128ba75c9744fcf3af943cdf54eccb12eb390f83cd66186b29440ba18df9618a68632ebfadf9bebaa239df7d12152db001db2d50d2b91ef0c1b7b220e19482345a0843c8f3b6972e720a4dec9ea4801b74f6f73f77ade45b6e410990cb1961aa0ada1c37c17bc22efc97731eda8c1d2547c9840be4b0bc46a712dbad5f6dbae00d4d3e1338e3fd0033b050666a9c0ec7515db357b7864471443919e1d2342ae54db300c9b84c84342aed5258c2ce003bedd763ca5de88057f16a51b3ef2048bb61c6d31702a3519bbeda09fafa599ccd006d69a5319b6e77ee319826399c9f9a69795ad3be202f4c1ea48d1c6ce87f2b0a85fc3089d50e76690de6ef3a8d3a42cbddebbf3a75ed663f25873f28a1b83e2137201957b5fd7d3ab436916b7f9a6e86ed9effe0d5ec86739c53d8e3344bc6155f1da88a7fa7d60a6f490b2535bf7ce0013d61d827c4e21f59b929e74168f415328fdc7286a01bb9fe48501821101f9ba7da508b628c01870757a50347fa5b94fb977085efe72975dcf59cae1586f0296324f049735bac4d12ca5b85a2b38f40898b77859eb1dd2f40475fad4ec8497c8885b23701cb0ba3b0000000000079a1000000000004016d8061c299d2daa8f12037c86aa744677a0ba6926c95bfcd10d47dccb0c0ffd8228d43677f0a91f4ff54e6af8f50716f63e30b3e6c79b23a657e26a82c59e980100204f61292cba9cbd040e673be497ce398894ed1c981d1b0520f3adb1b1cb1ceb4f0000052c2f32a546ae669b08e583db12da63271960ad032eeba7a985b0f5afdbcc4d7b85cca00dd2f8670100c93ea27ef683fdf659674837808a3f40ac22dbc14c874944a3d8decfafe4e4965020c71b89913756925a05f56db1e2a4be7ffa807d96ad323b5ecf371d769760549c354bc106a561ae2ffc72e1353538dcef0baedd137c97cfad6b75dddc9983e86103a4a13b12e88b8da88d4109080c6fe730e53dbec51779cc92267cc7715966b05b044bfd5bf565be8e38533b980c46c3434b8a743f04890d92a4b4c37d4b9fe94d565cd2462ac774351a7bfaf12470eadbcfdefd71571a110cb3d6638c293c30097d9dd5b3ed9828ed122b5b3de94304838ab70e55cd8e1da9bcc47bdb2d1a0a07278d72e09ce5ccf2bc9e47276442da335d2d1eea63d3d246e8304c47d3a618d9e228e29610cfda2241324591f393804aafdcd12acb057407f948b86dd9e2e3f5b19ceb0a85286bd844190dcd409df8020d159b76f4d58dc566cc62d7a827260b60640e7690ad4fa8dba5c06d72d98213dc9911c9f73b901c7d8301cfeed405aacc8a67b17ac7420a13fdf5cb11d7efca4b6c1ab74e3b4ec0e513a7bcbf041e23aabce9b9103cfca1b22e693d7c72d98cf18eee04a97317a20e1c86b37ef25b6bf9c318ca0d62cd993c54cae7b6b81dee328ecf8081622389317d9f636151ce54ffd72b828a08ebd08521638dd5315798aa73a90314c1edb15e29b68311344d9ae51871954d7814825b32d6cdb12e8260f70e9e3e56a01de2ec851de3a85fca3c417df80b48095cbf93da97dcb8be41f2e04e59cc83361ffe2b83716aa3dac107aaf38647975aedf639e6ab33502b4d90e9ef82473273c583c534649a61992c73431b5ffcd46d0200e5556062a032924749aa58fbc271608a1f8593968276fd2891663d0cf4482c9760fed1524373c832b3e1fa96a041dad4809af09a06bd8500a11d0856c41933c01767bfd03474007d86b371caf0895ed0ac4c31a8f025112e80a65493dcc8e002653328f0e98221041493b44c40fdff3fe5018a3348717f57973c7bb9f5ae5bf7123963e0ca3a306bfcff9d9379dac52ead603315f7599a9dad3719adf5c651e47b740e1468a0ff5ae358bd43ff85b51ee74495a1b4fe161cbfb9cc47c9f954e6ed9ac46448e34d2a8c7aa022906e7d99c1f874d04849b63dc4cae727ad4da459a3f3976ad858aede54037b212b1fcc3c222477adf2310bdfd166ef7bde1b6af465c17b6c4c1257c46b17d8f584b93be1d21627dadf57480838471e0a8f73449c265dbd1947f762a402097e526de2d46a7dbceec337942dd0e26f24a2c0922e82a8798c9abb6badd6cf552983ce4c4dea51c85289bf4b410d0b237a2cfbb3fe206059e781c7d55389021c602995c1587fde959f3a7693f96a767c06121c22a15ab36b03aa5ad4117d4068cc402cbd7fb73592e6baaad3c8169f233721230816584127e43c2df1086dc5410f64937aa1f782f85ace4496ba144e1809601bd010b9701523a1d1a9f5716cfb32fa6fc4b43793639b943ea922b22b24510072aed11a521b5990db8543afcca2099f27fdfd0d1133abaedaad039d1e602d59984fe55bb87a86918bfaf26e558c1492e601d8bc2d5b752ccd3648afef1c5cadbe12c6e582930fc90d785576dc30e53e92bf6f275e02bd128d905c42d8e0598a08154f6a626a9a990a5686f5fb76f5960a672a1ead669ea35ee487280679e1714ed98c02d984f7dfe3e6e962e86c115c90bd318453a6ae1083e7721c90041b5dd95b8a33ff650909440193c1af3b01850eda0e4b93518af45bc23b7aed2bd5afc7dd4db7e730b630da32fde3461d37170633e3594c1e218c94ae3b7fb60200204dcda92b9d87f27c22b9f9c6f1cba95f3230cb4033721bf46c05035e9be78040000001bcc91eef13d38dca763fba0389a7833462d27de7249a60c39e7954c9c8b378bb901f8146e74175fe0df8b9047f9afa0a6c45220c3f33b70b9180bd7b8d60ff98bb4507a69caf12e04850d590b4c279c679562ab0d7020f418bd844bfba1936e537391c5abd2d2be3ff86a8d0b606e7d0a494cfa7cbb870d5d466966e8c3f66d60143ec8012f1cbf3e9121ece3f893b4f06ef5f5b1cfa7aa57d6f7de9845ea775bbf368bcb4b2aef7db098617d40c7d9e521611779bc289278211d24002c10ce519afc91d375834e1ba9514fbe0141ff774b8e7a1a2fb030e6790899d7dbade630ca4c93cbebcbd9c62cfd1964cee1eca218881c376b663cf6d6ef3b7627f3ecd363ad578e1229da475f44a677faafff8f057a59286759b0941221c073e894d8650f55c982786b9394ee511237a0ded2548815d37e3f31b30dabc7a88d9b466e093d062dfa96f1b2564afd0b9d47d03ecb9a102a340f8090266be0e38ed2cd1a1921ab218d1d6c2b4ada48619b58767913bf4f51b98269acbfdce8364bbc5c6efe0ae2b887ab0cde1c6fafe0924f455e2a303bb5fa50b8d41514144b406c42ac929a6d47d1ad795e3f83c4fa87ce0d01ede88cf46f40ea2bd2e324ad47d0602b32ef091d0bff7e2a8b8dbb988a80000000000079a100000000000408b3b796f441fe1049930efdf7df8c4a36d013be225a906483702c72f8e0b2cc29e26d1a852df2e7045441db45b2aacf6b84137f10644598119a6a51f8a455f87010020079796b3406816a5447bf07f8013672607372eeca7425aa53744d8fdab70cd4c0000052c88ac60a1b3d6fff4f63234454087c1e5fa8a4c5f4bff22253c8b7a8993fb011df5b50c303d65e606f723270c85cff39bacb20a9c7455ce995ae6a89166a5eb39385f59cafe7e0b782dbd1850c11a6db6dcebe0374f4a572492e21422006ea86881e0dfa3c9a616ed9b00406379a48cdb3165468d70dafd6d651beac3642f4bf8b3dfce0a1280bbcbc92ccb6cf4ac28f466f637ab84a9ed403575d49537a8b528393244a2472d1021bf78de614c83f69b83b4ac743a645c2c818cbc2f69c8177e7ff087659e29d78f963eed1b776f88f9afb953001ee5d001608a95c24656c95d8794d70aad3f2fdbd36fe09aacbf02a27d5bf58b69cfc2fac4cbbc9b15c557d9a07f38b94025a8487122f57018cf129390dd7154eb0a72dad3969f9d22d413be6a7dad6443581922b12e50b9eacc335299bbb60acba7462395cdac490b147e9fa2cb1acefadede2a2c1ba6530b1d644c3fb37a7f2bbfebca0ffa34d509c65b286b65164d22cdec5edaf5f1d6ad09b09217b1ad1d74f4a627022659d2f6bbf1445495ab2eb94a0a73288cd76cc6e03338adb6ec021e460c608437868bad49c5f1a4ee8703dda0cc0f85371a378ba0cc0e76e8bbbd37616f763970ce65de9ef67be03c5c11ffe39ccfa8cd474d65b663cc85ef287727d6ba2c4ece8e95e89b593eb36246554e34f7ebe30f4f5c372e6405a678013a0c1966a94515b20e1b3b7388b5e75dc3c575a9d4bad8a9c0997017f07a1ef20c4b3d3dfe307c98df7eec6361b2a772d75af88e68cecb63c4ec5f62c67c50ec2164f13f77b2276c44e913e1b1defbc9d4ad2cc29b0f9a207089f1e05af1d122875b83ec4b994a38bcd967a1b109fab1e9f5479e5df4f0f040a5278915b6fe75cb27cbba55a6a3b5cd6b883e0c907c7b0fdd1b0a6fb386be314b905d22e86e184bbe76d820c23d2060650b6946d9c6ba6fd252debbdc46cc41c2b0ce52b2557feae6c47e44d33696e3b4c30c16bad564f3d836149ffae1a81d5ce2f9e4dbd0ec88b169a14ea220afd22e0c2076ad515043b8caa96c76ed4f847f7c1bf157ecbe8773a26b647ad0ff7e39c59ed702643b887712f03f76ce62a6ff1080dc757828e97da984b14abde263c4f496fe0858850738b4c4f1b59cdb1482078b880c72feadc6394785cfeee3600d2d0a22538ad0cb98f1c7bdcc91e400fe985810b2868d8ad16aa22e3add0a3cde77f2f2ff24d06668db24eea59b3e11baed204b08e8319dc3f7010bd3b03a89529e885136e9efe3885c081425e6b1d6c89f665cf3ff1f689a6746911d46a9ac4797cadaae324dae57f577c2aa92d1d7aba46107f4fa26bc7934845549a4edf7bcee32c0a9cfcdc48dba98db7267541a7ba3b77437ce729534dd9ad8264940eb768bfc8c001b00c35ab4a39025014d8f3b80cb34c28f8b1fafe7ce807eb37270cda6502b8716f5ea35f07a60f91284c58b7dbdce3310a0fde6207c36cec56c7c0a0a35ec4095eb71cc4d31b296c1bc0e9637647221d0e9391cde1e2dac3eacfb97e3f5ba5b3bfc0c64518ca992672ca01e732f57dab88517a2611656887d32e896f1b945a38ad1c172a77f456ad4b16bf45422f85502508df3a1cc004b5146d33844c307f25f10132e6567380904cbe43cfe85e592a51bb03379982d9aa97ec5ec85cc5fa1ded948b9c4814dd44e300759ae90f98dd7fe8db6b96f04136bbe670773612633f3906c6dab71d1c7121cd59e724fc5cc6bfeea1d99db28a7769e5d03008b1f1e1fa0e2f5b31f0d2179579bfaa7431ac3d9cc3d4da77ea43af84149f0a39b938a77b2d0384ea08ccaad8bcc9dc6b0251c7c5d8eed1dfdd888601310aeb862ae0340529d0cd536a8021f09bf020020f060f07fb8d14144a2621f8760a2fa8660395cf16a7c83a014ce7369a5f9b85d000001bc03fac8ae31589117ed2457caa4c7b32986d1f04f915bb3410e9a221efa3c5a11d467a9d7cef320be4d89f482576344bc0226832243d079144249dd22a4b0ad755dd6861b115cfb4583ee05d8fa3f593f7e5f054ce924db23c24a41647f47ce1473f5983c0a6b5133ba0559535bc08063c6e261b0da8b7f736d613cb821c6fdf5b12a29bd953ebf586027430c8e76ae8d2252ad69150d7dfdec31b58f7d5492e9df9dfdc3366cdbf84b13050ac9f31619a252b3d8ed0ff1fc80d07f6697b9c63ec437599946d7935952ed331642e6994cfdf9afa53887b854a89229b02a35bdd91f24991e56fa5692505f42a509a7a361b4e081efdcbb725042a1a64a891b09e760b349115f475344ee3efb614fca1f8a0292c868c4e3adc2235924555b535eaf03ed921855bc8bdc5ac4983fae6507b939b11684333f70825149fc80b9c61e66011e2baeade688c72e8f754f40e47f8f482117d269e55add9dd50175b435c1202133c95d865fe0586046d7f8b5a857f5283f355d1f939dd47f0255df940875188c9451e7dfd798d2d25488fd8050cd432ca1200e8f60f6d98794702ab490188ab9766c79dd0fe2a88848d301d49e97e3a85dfde94dd311cdbb51a0f00b16b7875d18ed1959b7831e47ed01340000000000079a10000000000040986b6e792ef0e4c23378a3f34533106c63a9e2b06ec69199cd071ea9baeb7bb8f18091cf4e9b90a16f3cc1044952f72f11da80fa796f23f05d580e1a9f3ee555010020c139d963b23f97c2d12070b98c3acdce05476b8aad927ecb14472b9fcc6b5e410000052c8dd98d08a36c0a4ca222b13b4853ecbcef00274c836fe65b27256f53516f849ed9496384bbe5ebc0ee70531d1e9f1c940e131067993b5772d66d08915d2b1ca232f55d1c2b0ac1bfa8673ef6ad043147fbe347966b2ab97c5101b6696889692bebc2083be7cf1f9ab575e88a13d94f859f95cb5df0ac7e2e0b9600c47e9cf57cdd4e12bccafd415b85f6f6ecd972f1dd62cf5f8ea2f7a251b123010cb466bf3d4849691aae3dde068148ffd08fedcc0e275eb2b425befefafe547142c3810a73c3712d58d36ef9d966f9670cdff2afbaeb5909ae52061af0d61100eb2b4b1df18e36734c01781cf404c19d154012d837313d0d80fe9e1eafce31ba9d52bfdcda624685142f1c75e9192753fd56dfe75218e1d4bbc216f1473a930bb56cd77e8a3b7000bc2264de587440b8260fdf07b9b406da0b26de63ecfbc0ea19b0e5073914aef4cd839e6f770e59cc8816141f3d9c28a9e50f0ff92bc072fcb399058a657528056da5a24ebd50a7a202e5434a14580b3898afd007ca293a9b3f26f21c54a54a818096abe775aee5d82663c5e32356ef82b99744e006c18048c399a6b9ef2daaa9c1ff2e388a7e967e050624a373e264b5b21e1d1ab30430ce2ad88c7ff488fefd1fdbca9a634b1639785652e426f390df955675df161e872f801ce4be0239c275fdf1fb963c1e9ba5fec121cbe26446e8071457aa1b5b31e670534de9c02c301fcbb985b7ce1a65edea23aad680058b606ff258aadd3d30b27ebf876c7e4f2b9d2f5902e6fa3db7f777c19def7d782944782cd93e7c09700de6f998134325ab819cfb9a14bac62e0583278dd9432e50863244bad52dc57e10042b36a44989edbb9b1257ef2db0f6ddbad1e46c16e21f445b58c7c20f6a38dc827f9a16394676cb0415200a73aa56bbbaef21f2b7607620e7d4213d907131b783d40f0e3f6edeb5734b420236f0bce12f81d7f1c4a477edb5841ebde2d7efc65913c18856aba6185c0d4d284229b7e36835c851b2d9372c0ce7f7200ffe6b3f2ee8b8487af407cd5839706b3918fbf974b9d97b2849aa2eb0c900615b114f6e1a5ddcca728ee1f7cd758ead5ce74c486b015180c3a89f830ab8a6ceb4dd9b3e66ee2f2bbcb1689365efef13ae4b199f9b51b2072e3ac9aee0ea876d7c0cfbb451c9d0d4b46a9f89804897d06fb59bc33b83da0d4c27d21d483b269aad9384ce3f185091df24a00497df17191792fcd2ef9afb8b537cf74644857a55d0016f756782c9d3b170627efe75074d8db272865849629bb794ba0c9ea0c4ec4e7ac1af8bd4766a4e4038411c9857d08e2f9101a713aa0d65bedb4612718220e2f285d2e8529542cc45968827e3cdf031a2095be2b0dae38f7831ff11013cfd40fd674bf0b70591354d8b8fcfd5b87674c6cfcab66e182d8755876726d626853b178bbb8a8fb08e55f2d081cd2905ec07c0c45779f3c0efe27b79f90881cb55433d78c9a755f55a6eb165595d3dec9e3e91db73a2180e8b2f9c01d7f3ecddeeedba77102a3b5a7bac7ec0ec1a0344b9326e0dbd7ed0fb9badfa19d8ae20b9cb9fd65d4bb1c706b7b7943d1fae6e3882c7b99d608480447c6e9af6854741ae204a138b937a8627bff638abaed2af148d22aa13494e28e7b879cc9e35fa77486e1cbe290d7a3be32807cee5976cdb13c2e08bb9a5ac8d3f9ad3e5cf210723b89be28a8c9f46fa6ca610fe4712d68ba56e0d01d6c275609423ca87e2274fbcd963d80b59371551c9989347f6c4ad999f92b1c05d11286e50381661e581305dc02e272b6becc5e38a7b8342db2053bcc48ff3381f076778a45d46c8c39a9cdc09dc014c9756c0399a3ec14e756aefcdb68050b1b344fa0200202f0f796c0e98248efffa91a5ff6f724392d05b8139730a3530c7c9888565c14a000001bc44eb9bb1440e5d5dd264cdc5bc60ae718d3940ee0a48440b5d5850e30f58642acdaa06c2fc9cd736f67ce8db73190d8d7f636ad0c4ebaee5da92b094c56a4e72fbbd2783e3b2b30003012edb06e27fc51fc5a262a643041599e654cbc475f87ba1b24e1b1c2ee0c7d325ff88eea68e8b3d7fa92ff21f24b7ca2f0549e9b140216e2d1a7e60ae92a8bceb0f6387bcd8d5120a16ce082ff29059b36b366ce92618ebe4dd697870cddb28949579951d2cae9a5b6496555ebc4d64488c5a079c26f71964c9edcb743e3845c55f6fb7a8b06d4ca0074e2a5a72dd40d6d8d8b0e0cc58460716c3b544b90286c852561fdbf50789878e66a052910da7fa06eb12820a8b5eae9644512e36290dcdf5b3c659e5bcda12285f879d1cc0165be6b91cbd9bd62c40d27b260f37d27af6dcf487b82b55213eeb3a5310fe6ad711a4f6d53069ffbafdd708f21ec5427158d5276d30286de373eb7e09e5b29ab4d2e9cefbcff4bb03b3cb2e235fe3494f23006f18e3653ddeaf7decdd0718575d21b071cd78527ab63e09da469e5e2a8a323fb9050e23460bdbb7ae434b4058f3607d684b4448c04a7b8356ce749c058cbd185fcb4103d4b1f8fd01992a79fe7f58dd1f15be857c0cec192b7ddfbd7390f3a34c0000000000079a100000000000409cdbc5d00d32c6ebca0d1178e65de451b1958d3ae0770a34e52e1c5da6c861f7d0d85a175759ae1107ec395487a79d210385bd83af212ae2dcd456bc0f1e5a53010020b7bb58badee28b05e4ea602c90fa5ed4c7cff38f64ea65ee9a5fff9213b3c0070000052c48074a0502cbb85e57f8a393cc1d2fa4365ade16c6bf45691bb2c04467f3a5666e09a8f1aab7d2a60cf8138068927ea375e0ae0a1c64de3a97f8c35a5b15c7eb06797edddb390814ea3825bcfec24170853b58bd33e021aed8689c194c00ccd7f7eb48ae2b1c7bed24da3550fd15bf448b2d3125263f50734ecff5200bb12da61f3df714ae66eb9019420db1a7b7a978eb31e3b5ad3c7b3be4951bea407431069aa1f81d809b7085ff3f5caae89c50e0fcf1beaaae6007dbcdb2231cc887c3a11175da43976992489de304e650604cc5bd4c7a138c287a1c1e2db867c9c89cbfb079dc0135e3abb62eaaea4e9528a536802047a31f55f87b62194ac79925a70614e589abafb0edd3e54370849a2126f4b7afa2b5a978bcb1a6a9f4a1b776d8b5971c2fbb565fc009bcb176a3e109d107487ebbdca488768d880ef245c6ca8427a17420d3de6a57170eb51a63611e357bbfe6eae30182b59226b6fb29b11079bd548f80899dfabd18265d5c39f55da2261e9ed1861d8d2e819d45a4f665a37b9b43485760b86bf33414dcefdd1ae62bba7842a75607ba4f76b6042f781bd56d3d747cc6e7f1be253d2796849f0878de23132f40abfbcd4729b6605e8e8604d1d26313229e54b5fbd03eb47cabdabd63a0d9b84c3efaa53ebf2276f6d7378e574f5db173130e7b097b16580c730c236e7a6a32e98eb5abc4d181508db1e6dd2813638855fd87f1ca535a2735af7362ee08748859522f24eab0d4ad2bf6306e2b251d965dade284dcc15ed5fa517f895d4b8fba0aac19b4fe19f2daa9ab4d4863a45890c13a003d7688003c0fba119b83f1432bccababb762bcdb8d7dbe873c93fc442ca80111725a33460b0d2ed56ecd3c81d38c25c6aec21be422e846adf3c3317a1f88fe78f7887e763b15e28df35c6f33c29bdfa3849d3f411d3e06e13f1b0f9f8d3f253a66032630ae9a208ca7c9a72f281508c6d79a0d8a2d04abf0201f7d0f4dad58c7bcf86e02da6f79eb77b93ea805937748ec846ae7e8970880d61f7cd2accd92f84c775f543cc18bd19cb6a5d551681bd77874af6dce629214ccf56dd9c20efe0a6c009131fd6a6fb19434a951ad7881b3443aa52fbd2a0fdf71e806614ee3537ea8e202aea5ac3a974466f57cef1ade39eebc2dbc42a757dcecc85aad455f52189342e94748c5cf351758f41dc48dfacca30832f86cdeffd995099bac8390d34c01214f248eaa9e8ebda11bcae83ae77b37af6d5079d4115224259698f2fe6d914bbcbe541a774185dfb6f34a7ef9c24f30998a5d46fe9f6592abef884a31ea3ccf04a0d8ca52122653d7e0aa3a45f555d917e905adc4c64912f3310be2b2a8b128a16b8609599313bd0569a03be3761cf587dff3cd57b8c38460921fb1688b895c0ea71ed5c284e15ee5de1bbae4c0643af3335053acf4bdfacbcf2a7d6ae3b232bfbb521c5fd32690729bad52920759d4803c29e1a46a60f14f6b77bbb633fe40744810befa265ae56624ef1d0a32c604332e41b292496eb9eff6d5cbb5345fb75d2c31701f6b08c4c4eacf054d66fe45588e2ab23fa46c2d1d266ccb473e444b2cbada14102ff6ac46962dc0b6a722bc1e4175c1b63d614713a9bc670f6fa367d1ff9e1fad68b2eb7a97c59d0175a06471d880b0172f6ccb9715f0a6f39411b968e728ffaa5e399ab23296a35806b4533bb3fd2c70ec9717eb8ad211673812f9f9688eeb2af8f6fa3a90a55f1ddba230b6be28ea8b4ca577b17f2e8b6533c51fb9041eb3bc2f35a4e7ce58b41e4a9457b3a7168bbb54b004415196cbb84a212b5948f15ce73a13c1b715ee2ebf14bc3a606f2c11cb1e4c04589708a18254de810b5e999050360200201b501609dd945a635aae28a651bc93142166c0d0f9efa3c57da26e8cc07ef555000001bcd169ac6cc88016cf2b9eed9e6a2af25590ae06bb1dcbbad7713014ebeac9f7c3c2653a6365d096b41216ab8e0b3ae22ae0f73a5375ca20366e0a2b800190d67ae08528bdcb6baefa77fd874f0129f5660c6b267243a09462254c0105f2a8861d85d1a92e8c52f3c0cf39da363bf6db6b23ea8094a5aac001a7170fddde0bfe65976035b72acb5ed1f1c25741b8c155b5000056ad774cf8fdaea8a1f601215a8bda499d3f6860c0c42587fbeffc59b91d87c3fbea79e63d13ef8b837d256ff805bf10aa54642d5a0e491a03af1574299b2cf272abfbb3645f7d64240bef386e8e236a2bda06f19ed3e22a6521aa3c402d26f42388fe9e1d3c026cfb48a119038545b44cf47b28b91454750abfc77445883998a5c7ab3f31aae3b44019da701a9173a44f5d5c22956edb9b2dee4a5c0cf136c3d3424e68ed6d367ad73c80b9e69ea9b6013e3a1381d16eec73642b97d2f4db1391604ade06fb9f3308aa25fd5c698872a18b36beb76b7c920413239b6bdca0bd7218db2391b7940bfe9144c8e421f8a8de8b8a56c876cf08c5ea38f1ea9253b3407f203beb3fdaaeb00cd468cdf723b582a5dcdc6feeae4d2b5f2f3c1a14131492abaeaca158e532f18d1dd2f10d61e4f087a6903ca1ee3fb4230000000000079a10000000000040cbf7b215d5667de1b4a8603a5cde1a230572943921aa265158553865cc95da647720686a59fa75f1619a2dfbfa86f59b92cdd9eb33f47340ea176af90cbde483010020fb33a4bc3ea8d9e5a843e1f98bf5d49802ca7d59bbfea01dea2a41153022fa160000052cc97c01ed0a39bc648971f87d5aff30405384e36ac565d60ddea6d53b25e0ad786debf4542ef8f1837e2dcd326986a40bd7639b573a4cfb7c3763d8a59d38280a9bffa9949f3a0ec485bda9fb47baba183528233c0fed9ac72aea4586b4ab1a1036f8209f60c2efed9fa56373f82d51eec46ccb7c154392882028a76992f8d0987a1378bf1de1fde0e7a10c4d945966aae775766f676386666f93f5c4b10b96b25196c0fdef798f7bc01281163c350ecccf850924b2f478a5812722c752dd044e102945d65ea8340542f73fa94fb23bcea548058b2e6f7e360b9ee7e6ed789bf398a97c7b33d50bdeff95ff6104f6df6bdd1242948b32fc98b8c3b6410f99a5ea846a55e5eb1b81250df4e4415e5364e371e053d7f99bf87d46b13e5c1a382a2dd7cce436a4c974112c2bbbd3f1a3eddfd90c84088b9d590e2675577bd8616590dca881c62fe93e61b703ae0db3f51c2b19402925d7ff8a08f991992d2459fb99aee1ea6784e0b26e1ca782da74d66434cd7adcf04f98cef2c091020cb92f9185c13d94881e27fbf4295fbb9cd13733aad3fad5710c0408854cfe490b86ed9a2cf22047a319b08c8818d9af4465ef1be6d964634e45055a74a03bf5549d238809d3d62c6d56061e7fedeb11ad08822b0d87069c5f7b40d2001a4b2c091ff5f06d593b4ee6a8e2c9957a59bb2f5fbf85a94526ab8cd21dd5b50a2e78a77742896b4b7b4b42cf97d0b86081dc4004473a52fa4da1d8f6d3ca9319218ea8fe8aa403f42c76a81b88651c3ea292ed0410e75a98af6c692f4be8d1c2b0733487b289b25ddcc3909b288c07ad1036c3112f4ea52ba05ead57ac073911b9d62e16d2ef8cbf61610697d95adb80af80884de430d88315073e6900a66855830e65c939ba9d783c92dc971e781aa196544fd8bae8e4c369af861fb0d038896415aa2b9ec3af2b472f6ee239c46720d0c01cc878ffcb11afd82443d4597321fb4c744fc6319b1cc408ff855173486d1421c255bf7fe8f752f5192d2c8c69a809bb7008e8b2d8e9a4c2c61219fa522e98bdaa2de1307d37382f4a0b318d3b833754f572c1cb17ef8298dd812c7b5a88b95ba01fe05842841bbc4176647f5e8bd798d833b29d4eb0e7785bffd13f0b850904e3a790830b73271daeeeefbd4692e51a08fb8acad4edfa7cf0892be8a4091a7537576debc239f8aecab3d650c26b1c4f8d9517fa63a5e7b3e4da9c0dd95fc92e829203b5c4f57484e2360ae53278f92cec7390c299aad272b53921edbef13a2402d041ed1b04bf5517c6065ec9d40dbbfda3605512c7d0f92891db4fe8fd2a738e636d86a6a1e3fff118677411a0e4be28b57edcec6fbdafdd0984554f233874d3e4b5087964e02353125c874b2f76ab18969b87e3848e50d92eb045421db48ed5b56d400411a036f58fdcf7c28888d95fc2ca19d233a79645ecd8f47d60821123bd6d7a2d864076bca40fbe4023b9eb9dbb1a361e1cc41f619a9c304b432b2ec39d7ebc6f60b482185b0e4638a98ec9612f7d146d1e322435e7f7fb0c95789568add8aaefc55d6d0b36b0386d35997b62cfe2d6221b2f2f4c5d0ca50c714b3028e865812464a28189c01b4ee69fc287f265675407cc59f78534dab63e8c9215935ad00a31d49513b32ec5b8f3dc989585ac06e878d664e1589083699f98ce81560c562d24e128f10a1ebf3ec066f610b77cdb3448f52e32879a018324da60f9f2aa0715ef29f9469ba7ede214f41fe9769a87cdc0b6e37117e90eb4609f7170e904c590e8eca55716e4863c0d15c5d63a3eab9da287ae902cb07fcb28ef3a26b83f087cfe121c6bac03b2858650087b5bc88b8c22fc554e9c2966b048d67792d90200203e365886319ba67d6b2a86a9b859b9de1c67c9efa303ea155ca415088870cf31000001bcd2b0a04e69e40821aa34e9227454042d67ca2b7cc6ade2853dce503e46c3e2d8a88c7b53d4065759f47b7720f2bcb610d616aacddf9bc41491fd83aa7afba01b24f051ef2c5b32d279c62abb18e0df2b08dc6229b752aa77b868dca937c34f18185960540a1a2a311db07c472cf1fa02619fb7335303e7616040465fcde4e37b921c18f4b9f2cc6ba1a695211fa147d4fbc557b0be7c7372af897cc155ac95f6b2ad2f61fe47467acf4d1e4c5644ea0f99ae8132f7df3456aea6317a093f59e7d4050ff5b7cde46d31c709e77dc569e191296a0a665b96fee785ff63529c31743eef95ee65e32a06e27c20c8441137f39614507e8f552fd2f980f073a0291de062bc7fe73d41648f14013a0a14f4e3f92d2d9885ee4dad68ebfa56d1beb0829d153380239b62f1ce2634e041e2548ca391a084b7218a308687aa6688bc707efb80ff0cdc8f2d6f161da847bd3695504d17962689447e38661fca86584d2decca0cc00ed844d7a0700255784ba17d69952e090de2d4b9232d740af98cbdb2dc7937ff0f88fc6740d2d25b20f4052c1b5316a988d8a41f5dffacf98b95a22653a580bd8554b8a2dea5142330d9a942d146ae951aacd15e823ca809a7902285cd738aa103fd0f436bbdb178e0620000000000079a10000000000040775c7eead8a2f823f8d4df859fb2722bd6c7818c5260f09cf28866e92e9f0daa69db356af53d1d4b20e888f7c9a4ef6cc9862ee454225744b97acea051d449f1010020c4ccbb647eb77dcf5e12f317d213e7a6fe789e341475a99549d9baa08bb40c290000052c861d4d51e50162afdbe878758faea08a02f95a7aad5600cf533db6b8c735762b001777992090f2cefe97a0c6e7873e546ecbfcf8560c23eed0d834dd26287245a2075022f1231d708a89d4498b79ca8c63d0700e440d9bfa5ccc59e15ba7daebfd00c1c406c911577e9020344ffbf03e62215e125c15e56501751ad3550c29c702fae241e0e92cc12c25400f53615ed64a50df4c6e25d0875673642a8ff27487c00f5a7ca94bed100765007a19fe8c3b1067098c4c1e18ed46791e07f31edcd8af3a3e36c3c88d55b786a0863a6c7af86897f8de9c2a9e5c3a17beb2d5ba9c3cf06c13184bc9212b37e5128e4a1f3153c963c5b440dbbdfdf7c0b8aae51c45606806d47a00ee42013de3d3beeaab81bcbe21e3a5f21ba20ea227562fd76795d22ee696529aaf01485303312d309f3976c0f3006a5b600da58999541a7a7fb5eeecd344b8677749a414aca5004c2b49c871d6540a6edd3e010c7594131a0d0375968010b91bff03be2b4e3897930ba10fc29f7daa940744d9e18bacd6c02db36258e8fa048b7c7cbe4d0a51719a4aa81c0cc4b88329d5cc898db416666053e4d2d553b076b095d7c7ebb8712907a0ba98535a8941d269777dde9d6547c35af9f53a7fc3d103f326e8a66b8bed07006ab89b4fc9a519624579eeb9adc5c1ec5af49b9b4d2d16aa720f2fa5138e7b40122fc263848a9cdbc332a07b738d253b5db154073da587914447a928990ae1b7bc92e1dd0b850c81e28afa10f018ce2bb73faf267f984cb1de780acf4ec93ade5ec6bf8575e6ffc81b50132bfae37be2458c15386c4861a17e4ecee3631d296fcd9b5afed5d6aba5a66f16a52476701d9eb46c86ebcf3afd9ff4b6684a71bfee6159c2dc1de7d0040a4ea5a13144bc361f12300efa9048d9bf00b7caaa06c4ad06addc61b6bdec3683814b4a8136451d1cdeb6ca28a984a4935c772d555f3c484d2669b1a1a6c09e06a54b11a952616d9614ef3f2f821376d5b3a69e16fc50c01dba063e584f62a6339af772e551f785ad03c288138a84c35c6d1f2e3322a811fca3eeac17ce87a97e539eed3a71e5ae797fe258f0e1170c9d8ad0bc3c73b85bec2ff662fd9bd78729d2c4a9928c4ffcab7cf3d155334de908a8ced12bbae7847574cb0513a134748dffe6cce0e79eb31096eabb7a28f80179ade121798f528145b60e2f45c74cac255eea8894b6a862682cc56b9ab0f09fa6df53fe2f4df96f34c82208c44d0bad01fe77c58fc3b8d51225a5f4ba137b1e668b9bfffaa64c29eb2a2d7d2eeff29fdffadfa4ab205360ea8f7a42cfd99cc314567d502a7063d52414aebd4feef93797c57c2667b92727569935073dedf6f6293de0fe3349b2d7ff82636bd7075871769f27696333fdc89b5ef30bd73321d342da9d12e2613c0af4742b398bcbca23a935a501b9495c1d2ac8ce3c5a11919ebcc601661e54000e7fc70c51cedabcd4c4f5145e8892ba6b356180af6d41abdcdfc2b3b9d33a749ab6f1ad9b8af49c5529133c21e96aeaea618f9bb719ea10bacc8bd4e0954d3303fa48800ccea62c4f6860affd08176acba1722f295908cc73a1b8eb09643ae7f2d46642a9187e749160d131e0e3dde07bdede859a11967c704c0069ba67610f34d1492ba21bf33d6b48cace336f23ed8e54ef8844c33d13477a5249b34ff0fe1f8eb7077a3c77be170975bf8f4b43f0df594187b999106c3c4abfc3bf43f96a9b996753782855cf64afd6241e918589230123134438d4a9f23463815146cdace05571095807f30f8cc3c8b81ae4a2c10de94ba29fffec5fb7d2b25fecdd4eb29b995dae2dc8883ff94cc2e19c504ec481073a633dd5fcd8dcde72756a716b0200203964b6a0a2094233972266b044e07ddbff4b0c93a19238d0a7a08b77c7fcbc38000001bcc091150dd622111dd4536ae6da7f4fdd9c68f6adf5f4df6dadab403bac572e14256b2c398de3fb9d7c2c0299961c914d3ec23f104ac0b5372ffe857dfd2540bbb28da958eeb2370c2d2b62b5ce971d35b949ec23c650b3e2f1a46bc0b50cc66b9bb3de4ff2b5fde5bae5b8ef334cff4c9ec66ea3508586b42f811ba560ae5d6dbfb6de2b44c7cf9988ab8503e79a00ae033e12f4048b71edb0d27e94d5472b3836ed15e112748599b4021c55760579714802720ce2d7423c53d8d9e4b7e3adae585725c72d1049ecb9621e7cd63156856aea3f9891d5c7c23a4f3446914d4934007cc14e92e7665220032cd104d1bf686808aae0702cc5479b4b31b19a8d85cd6efeff5eef22faab907f83567a4ddb1d1383fc939c4d4a9079e118fa49c4abfee216ddf8425d697222bad0caeeeb2ef808b6c7fad9bfebd9a59a9d21f2015bcd288f742b6c2b45803cf7b783a801c63e8849fb36650cf7fbd9bca58d769aea40235c011cb4c3d4672b09bdfa24778528d0eae051a72003187c045dd8912c33bda64404c5a30467a2704e43414eaccd6ea5a7a6598fada136410257d680068240dbc06a0c2053f96633dbb8d0bacfaa0d835ad6fb92f8b4f2dc9bb3bb2695c7b35982c5f405a0543726c96d110000000000079a10000000000040fc9adaa5c4dff7a6581e7d4bf045cc2cea328d87f942a335f3d2f996f668f6b8b3615d2a7d0fe5cce1cd021c1bf68ded0a00d8a59f268c651e45480c3cba8d3d010020b8e55f6dec29f450248439a6319cf5c0f803cdac0557a995deb806f32d48a2210000052c8a680a5e7fe610105d186c75561e57039e511db5a968ac9d69ceb0ee8c3f9905c3b20b1ea4d70ece66f2a7fd9e31b3c0776c18457d210d0f7dec9c82c5d283e5f8f97a41a56e63940118dc5cbe965d36dbd94434d037e912c6760838de784907b0710bb9f561d7bf41e43f9b7ea75b9dd5a79526576919ce38e03e9b0e7d3c9f654b91cc6a5b072996131b94b2db85960c545e61a49b7ca9bf5ca9aaff1335ecbf5e8c5408d51d8f20d873baddfd0efb77566ff54f0fcf27e77dbcc5d92810f86fc976c5432a73ce328c1d9f605992111ea75848ddce8c2725f1f495a6fa7a5936284de0c2fff0ae5c699d52b76ab83ce8ae4c9184fb9f26b9d2248df0b56a6399746503e55b09f85b5833d7a44b4955413b8328c20bfd227305b75a9d430d19ec8cfcebfe0573f750464c39804b14798c3700aa372ef308b299a387de16443715d38e76bd8e8c6f1337ce01178196e9802a38038f500933bda9f26f042584e693b3aa5fc474df2380ed81155a3f0870b8dcd70654ec544eef43f7019fc79cb1ec5ffa7b7893577e333f38a7bbca38624bb08fa2fa0c11d29e51ead27f34699a0824d7cb4eda1ed5051021ea42390ec228107067ad6ea65a214dba4f95691c164e437df36711846588f0db45baf8e34a895246da4e073b285ca1632c92af0f6541ad13fb66a8628341aa3dcdb79c322ef3abe434d604b2b3c8c082602b1b1600c6250e8e0536312ac25737cf2aae8eef527afe47b48fbfd4e220216a39758232dc6e52c081ee56556455fe3a68a1e84cdb3828e0e3333d57428e0445a9b4c19e1c69ef92100212a5ddcaf36920103fbac1829fd7ca79c7eda31cbc62bf885225a38b3d69e97c19a351c48b6cba92943066ce555c7651800dcd267ac0423bf07a1229fde918d4d0454ec0cbbfc4faf141fe0e62ab2d081b70795254724aa5c3baf369bcfa31e7126de32b4939d98c87144debe063c3f7c3ad5bf6725842f15db0ee87e7d0142a5fe46a8d245a46d9e87abe8dea5e446c81a17499109be4dd15de8074e6ab7e97e563a842e921b5c0f8c912c437877b779b645b756d2a658ce988c01e0deb639369783d206bb8b43488df6b04dd01da5faa6b28a4c3cac79882dbd5638556ce55d13acc7eb81a529e87acf6e88cb1c0afe6e007dc8df1b523fccc2ba5350e3730f94aeb317ae0fb2c0689c2dcb18afcdd4b9107ab2e1c248ae3c90197b34d1b87f6cbd5f21d662009699d486a2f38aa69c90de6e0829906da5bfb1a6cbbdb584a725874cd6c21142cde883c52fad2e62db364714413cd6551edaab83f78e7735f87acc32287cfe49eecfe7d92d674b2353eb13863ed1384e949190b5242a7734a26677a2d3a50386472f65109f20a7f5e2c4ae7721c732fab0b57057491d308aa1fa91bbfca2a764ffa266e2ca9c4eb64eaf9a8170a72fc3043ea18b1d15c0956e81d86ef652755191762d4e8bae2a801742dfba982e1e2ba1a6c967302b4fb7f4f8cc3f5f371f9e03e83e4f054c441832c39956e4da8b04acaea8cc73e2a7a16b915d8f2dcec90c805963ad825a6269728556b634812a9f5a0a8ff77552378b2a93866f647b374e38dddecc8334040aa65245f27121395bb1ad83b15a9d1acc5a6f804759bcc0b36399b6e86197b0985870bebd4c30ab1858267839d22ece34c96f1082f102d6b25975602e42e2278393cd55891c38afa44ece5d9a3f39331157af95acda5b8f06191c7a30b8eedfe7ff0cbb3429ba54af5ff9c24df99ac3e887f2b544599ebe2d0c7e621fea099373ce91f2a267e2a512bc471bcbd90045a90612793300bf5dbfa5daf778c20c976eb66a744429d7bf895553f9121571ec95cc7723c44ff6602002057c5bc6ab3e4f3056b69a10925a0b979e5e7a08dfb756825e13549ca3cf2144b000001bc5a8f51ff13907f78fd0cc4421e0d00046bd4a4da6d5839047132c356e70df7fb4a096086fc5622858044a0d8509525671eec77dc782b514bdd6cce9be1ccb8ded5814268eef5de1bf4e9e4be3988363b27623c91bc0cec4f562d7443fccdcfb8e2b13acb4c206b02b37326cb233890a18ab401b41b48f20344d939f09918e4b080fa4b21e82c166dbe3e453b39c5cf38c401190fed73f3102e763bd4098de384d91f6fae4b6e4c30748c01f97bbf237cd51fc1c79bca03c32465d8d9f770589428b3a9c715713db56bbb9231c47ac44169ee54cc44e33a2871f44c18213e16aecf1d4e1ee9050d31e4cbddcc34a39dc2fddaba376863252af6f91a0c10465756a829567f6617484fc7895995bd612de9c7d841710f859ac698125721573328db422d4989eba0cb3f891abd4f6c59c5463034ec264199479c7df0366310a8aee1c6f733cc7c07e33bed6ba0cce0b0a359facc63bca0da6cbffb5bb6c60f35c6b78d74503cce1dffa63460fc00a56072f12d942abfa74f86e161788621607c5f3e85755a686664f59b837775ea8c816c72fb9ea016a31e6ee229c92f98bbfbcc65a827868e4f6eca255c66ab127c0c3de26a7dd67501ba2746bbe9da0b2a00e325e01718dcfa98c4a32a4d979c0000000000079a100000000000409b2efad2c946b0a2dc98a90f8ac6d464e630dd5de6d5159e5e30cc8f01d95790090d06ce9b07e83086c3d28ac1d4072001fef2d6cd308a96471435224ac87238010020caf348cfd08dcda18ff3e156833e560e018b9c037023e041eb5132fb4e468e160000052ca225972db968291edbfaae96fc64455704152fd3d5f297a522d27e46a24f5ffa5176e9db170230a2152c6f9c7d92ffd1d94f2e15b39799c9f7e88c68da8dcf01246ed95930fcc27dc906de7f5c889969792ff20a33514902c2483a7e34dbe794b3c0c333fc6cff6d381bb9faa0e529124c29359d7e9c2cb5023ee56563a6002b34b5e1f2a8006fa32fcb3b2d57f524e7f6b96773ea2babe5ec0e73d0d754249c0717068872c7fd4ca4a2097eb4cb604cc8c390ac4bbadb5f6eb06fe27a0e6d859466a4ef01bb366bd58f9161baa691cf6b82fd8be774154ca8f9bb38fd895cd88fccce98bf523c2e05a1d61c88ff5afde4bae63d28a73bbb39c424f340740a8f73af2378b2a12e22d99aeff4f65d6f7c1cfbba8d48813b25935600fd891482040655645a320422d653f517a68914efd8ac097fa1e5902f7c547ae191e6e8275f731345e0a453206a8f4b09a42e36acc88f31a11eb2c79dd3d806385f0ad96d3fdf8132ab5b96f358fd7a74f866af6247cfa73762ebb955fddaeb066d75706d8047033dc313e1b1251579472ae0ed5d98f82ed9bb8b6088fa3881210fad00ec7c07a89a26d23c24b2738839919845fa9ebccad2061b465b5d2ee1f11e21f66d1922a31ff6ea996f469e0ff1e126dec03a871ca8cfe877f469f4859e0494dd2097850b00e232e19310749793e7ab0fa5987086e07fec35dcc9b2a0d86c862654cd3d315940b6f5a0680b6a4883dc3eb85810ecd7d9b2b39ebd74f6a5e6333c4f1a5d2c28ce4cec1004947bcbed1b1a63064022c0cba4572540be80c4120975e7cd2a401521b8bd0bef51d4a2e6316a6c88d2aa74d1f178b1f517118b4bc24d4ec2771194eeda185f128418dea8c2d3f8f65650fa1062772cfe809aea98cd4458291fa1e147cf151b6343c3654784ec949ec26e1748c131fbd72e5a46b280a675b5b4a9d52519767fb1fb710420994550df15a1bba5fa7b94a1ecd934a6c0e458064fb8addf742f16ac63b228bd6bd7e8ae9cfebb3b07f79f7ae0f12daa482c187c482303ee322b386164a115281e79dfd51db37594c7a731f0dec3e5db7900bf651ec93449261fcdd40b0c9c8b1f32481911b5262ec1d9b50b087e351345b02a019039d3870038527a58290df30f77453fc01795c9a0318403594fae1d1b72ddbdadb5a53de2addd9e2a5b017f505812f8667651aec3b23c2869659a1fb0e139a269973f3b36220368717cec2670534d81460abb8ab14540aa4aa9b418bd71229152a2125ad50c001dccd104f59243e2d1a7e99e6d812b443eae152863e22dbda9f457fb048033ae2ed8ac7e76eaf6b3a5c42e1e96cdbeca80cac497539aa281ef8a9bf47237c66289e9d006fe9f24454191a65e6137b26b05886d30a41099d76102af994a1e2513057ec214a32bcca993e22efdbb9433a09c28258cec4128d66d44257f64e13d5105f35df5357ce93e87f58086fb86a6974aee0e1d81e6611131ece320038b12171be20fb0e3a3927535e9f9cb56ceb11ecc8f82eb7750cdde84ff26dda595c73356a26e278eb99bff60a7d740d99252a0a9172a5dfae3f06da6a9271225e61a73ce601f9f78fbb05269b823c3b255ac14485386b91e6b26a4e53b531784cf15a7ff0dbfb1322ca6c69f06fb2be0fa65c6ac057be52d95511a67ae0e7ba35083e438b5fd9f9655978f7e1ac33df59140f372cf327d80735d5e63dd41fb633982cedb5fc124833423dad0c31c40b40897e4be222ea475e305ef90b398be4b5b8c124712e3dca913fd1619bfb7c2d6b48a0ff260baab87c674e4d2fe301e1f3f8486a118093af18ad3c7f5d99685f83f710f9528ddf8acd2413aae511fbfe2d7beab82224cccf3020020ffd00beca085fb25f4632e2a8c3d6ca3be100ef3334de59454053a6ebad85c04000001bc65dbe4fd467570068100f4b57fdbe7bfb8a7eb601f8ee103f3c94ad45497c86cfdaef5552e855b64be144cb12d2c4362d5c9457b017fb939bde3ac804c44ce00c888a5a4b69549e484ff1e0a36a2ef6b71c63bfe5dc88b32976a2da34dbb22cfd94f061e040993781b37a5783af697a3c509e2bb4a274d51eb0c116bc42ea451375dc51056c7ed35ec1ab3de1aadb1e1738628effb2516f39fbcdd7495732bff676f6df7f88d3ce46600be7b38cbf939907c6f1ca3420000d63aa8ca21c9c9b037800fdaedf0837d4f17b123d71221cc27f1a66cc2f6b14a397b52f2827e5888cf75cde7babb5ff933a8c6a7892c03b838bb7de0c043b92c5d4b2b4d66a1df1228e9d041cbdc7f3e049a1fe13f86a73634bda38970ed91578b40455f85c6f2dd29b62b35eb30f3934e26320cf6b883dcabf77a7b70a3bd20b574c3ea0e7795ec067d6ea2b55676e73377cebc99e83b13d138e9e036a105ce478c41d1fa105bf65202605b509672b04a1b7e52b1312dbc1662f24870dbbb236eba3a402fc7a841adb993249b0f59b58aa192f1a4deda9e0bd12d864c01dc1fe4e0b4cb247a458c85d57296f1e61f98d7d6b3cb8b905989c9b9267381042e001cf0710d2b02579109bcb8ee310fd7ed4ce4efd70000000000079a10000000000040b6ab0a45d909f212b8a6946edd5717a9f09b3c46e289a257a129ff92c279fb8e8dc3c36a5b78fa0e4e4b74ad4e6e7acf9fb992f698beb9bdc340c9fc760887a801002015d497e718f3c38f7485b7f375cde3940a82d113d167243a61aefcc977bce5720000052c4b4ea2f79943bd3c97c834174bbf72e2b0ebe9234e6ae7b28940f07bf3f539ad12b00699a6e380dd9b5ecc4ea1bf321f30afb9ae37211cd00e1b1b40eb1561483bedb258c334f5999ebb918159ed73d2a3c1f3456c41c97c455195252328e0c1a9e5aa14ad087b162bfbf42d086d25cf0b45b3e8bae5a590fdfa125bf93a5a13fc501b3edc5e8a69aa2a696277fed53615bc369d0f6b17ba1ea115b39bca9c01426ede3c5f38b058c8aa7815fa2716b388112b9eacb3d8778265e1cbe04af655d84b591631b4694f91e41794126aa2eb662aa1220313ce3a44914a15dde4bcc5cea141a1ede379e6a84c408353cf2767f6ae34c705ea2a896f39064c98d30c06ef1d741362e2894f3bec56b70ad20320da2348b41717a00c7f9be0d9a8f494838c48a49821c05f21abc83718ded9075f1a767be130c87b94ffe3a4d68104c0f8b97946366f42de11620ca9be57b518ef5c0c41718e7c4c8e9386eda7021651a374249127efedec51abca4b96619cdd4619edfb9b7e90e39d7f2cc9a32548fd508c72fd05ce4ce0ae6ce32c8302e9dfd4e16e96a96a2340120a3ceadc911b6e94d3addfe1dc29f19199e475fe2c9d5159f3d150fd9657fea0e344917c1957ab555a96b527bcbe22be413da970b5d228c1253a58df9eaf3d9017e79f2f8c6450e9d3f7b34229f912815182a2c2923ccf22df85f30bfb7810a091419c14540cf10e7e15e48b4b36e54b2ee83b0d5475abb7244891dfd9f4fa121c4ad71295542ab47793320b221ec343c9362865c45131a0e075d5948afb526f2217281da5430e14bedb5d673b5f60f3f8ab5639d6fe23b6956b1ab1c7ab6208982390b2f61f556944c2c71695d7b51a4cd84cd4312ba2de9931c428e476555d152e6317498a9e08710b57d2c0e8d6ae1b46900c3555e377aec1f5cac791add65d9942489f96293e2dda2f9957d0164125f98a2c3ebdd575b183ab1b52df5663f529001ce619f1b5af3bf26157271391337d21139cb6b7331f5cca68788fbec4bf946fc504a68fd89da02e6c84e03c7457d41617b44e35dee6caf1af7d76fb865af57f05361d5f77c54e60532b2a46818886be5b3d37704b4612e18c6f2e51c0388760a8237a6bf8fc0adbe3e99dd5a3f25aa5552fceb64f5e06874d895226111847c16c2fe34e6e2958f098e2e3583605a887bb9083dc0381ecd5f8a5bef32e38d40e723b87424ccb4b74207af0292219adcfbb7700865b0a5476f96d95a37e055db89201ededa54702d0ed9a327ee9c75bd82152eb572cf190f9f5d9bf961aab576c6e8fe3a8021b4205e181aa1ca0e72e9d779a745026b3a18b0767d900990b368eb7d30f60e0b5d11abb83d1933f4fe255e9f34fedeff95fd74861e2998a3ebc9d06300e34a36c5c36064ac2864128a72cf3347b023632bf23e83e83473b3ad6a51b4b3bc6540db5be1baca81e2eed164fead9a2862ed05beec7b473c507c55f420ed1f11d0634388c29b098707443dd014033a194c93674fda01840cf084c2790e39a2db0f74a70e92704bb24f8d107b36320b4bc89aecd635a2d99e812a24fe519012847909c1f201eff8426872ccaf02237a569c7c21a6569916a697e8a6c346c6b6d046880200a91f0e7496e0dc2b9b1515004305406cceb863625daba3986122e2442d06bd9b1e21aca784c497dd2ab411a51323cbfb3459f4196142341a15f3ed4f2b448f9f44890ebe15a98ee73afd780af49d41e056a2f52487ef8a35eb24fe60cd61c5d647cd4ebc33a2644ce82a782f5c53fa05fe9f5b8be07b819ba8d9f8ff35f2de1232bc82dc6e83d52fcbac760429875e2dd2217f2b32ef3d7ea6e2179f3e30f876cdff91a05178519622c020020c49537d3bb6aa0e95bbb0c2320cab969b586dc352f36fd3347d01ea0f311e82f000001bc6e13ead4a170ba98a5b117351cb245a8d2016b34a60f209f8b7634f5a13d9b68146c4695902c5954923b53ffaf7a3013bb40b77153039760f6a57d506c23e3e8519a609bfdf57339fb4a30db8aa4fa38354806ab6ea0dece0323f52fa9bce34f9c6ab4fec4d2ec7e60c103f07eb5b7db8ea9ead068ef14d0865b80adc571b377be8c4fc295ca3fbf43a7361626c3e3577818a73bd9c1646aa9c0d32e4cf4af689ce93f84a8ea1b1266d8a899b46ae29410b278a190ff4183a0fe09795d015b4d3c65d8567103c1872c5cc3e591b7bebe314bbff1fdeb04a366024725fd63838e6e127ea3cf4f4758296d6efcdf9d10f9cba3972a77bc9d6329e00352e6913ffb0e6ea996283ac2319abb3b34eb65e7a36ba1edf70ecf9ff35e6f0a031b93e635c71723c167932d19ddbe704ed90a94666323256fcfb796b725d6c916a57c5f3c92f8bbfcc6a7296d4832921ebe4943702489f66a903063a162ca4671ed6b41f6f697bccd647304ad94d057939e22787fb38bc1ee3f5750e3c7ddb128d5a847060c3a4ced636554dd6ff54df403d3680c36db74ef003d0010dc0edb0c03e0de23182fd96952eeb21faa00f394ee271d3b8349c2d32eb0f76716e582a92e04bc1ee17ec84ab13c51abfc7390530000000000079a10000000000040eb9929fc882b3c560b9ae6f3514cf55a117edb24be420ebbe3c70e1de72ebaa2886b984e8a390dd52a056ff11725fdfd4fcefed3c3dbf8dce12b71451df616ba010020e4e155f557a70c3b8faf36527b8bdca1e74c465335eb7e83dfab2edd3511cb130000052cfff92ffd0288cd598bcd1e37019ba8eee99ccad9cff8dd84fa7f17dd6c15352aa04d4979965d2d01588a5e34243dc8aae272d1688f147c1133982f2aebc4517ab35d39c160a8a6ea0b432c79fcd4dc0f99e2a5032ba126489217b29baf511a5bf9c121407120769492ddff5f2cd764f1152e817de6314a41afddee916288cc5bbef676cd3b4b55a2010e2b3560982f0f8df3352a7c6d04e4cf840cdba98072443ac0376f2570e2311ed04f6d386cab2036a24527bb4fc22d5ca92f242f372ee970a3e73047c859d8bf2dd851b9eb069c50cbb6d13b409b194519167553f09d2aab9d97329d9e5675acb0d3f83942596d240a91a49c507f5135627fb395d9218576bfb84a2dc7b03e636bcdbe3b7360e88ce0190663311e58471018e2046c439807331b039bad43f52e1a8fe8cee468ff861811358ed412f056f556d1a3cda389a5c6b21987c5659373ebe287b8e723badca3be599b017b71723ccbd4943d44765fb95cd3c7d80aa22e63d03188650b0dc2e0a02875ac5cdb76a5f64a52af3c0adf15e59b41e585df7752061c5c00ea9ad736e2f00eae053729673f2249d1c2be3960f7862799767294dc2c4bf3ff270436adb349b5c85e81d77b54f3e15f85f9638ab90d93270d5e30c86f82702bdd23f17a686df04685f3dce2319693daf64b55bb47e5b676472d0bdd51510706a77d7fb212a6be877d9b3d8376e1428ba7cb89295968465e6e472ec552b8ab4a8bcc023efef5308e7d8ab4d81a1f0a1952547ce8de52616b65fcef517f3b64028227ce3f08236e346be255f84a907637d15585a463e47336b4cd2bae617db696db4219aa414dc41ec7c4e9f7b6c1ebccef5c72b7852cbfe595d46aa303ef9402dbd6e9dce4fba8e6686b8e2a5d1202772a9e3c7cc705ed86ed051a0c9f2f1be35033d608fae0437fec0f544791bda4282fe8da420cdb69930c80f2dee32df5a1806c4f164d6f64f9b408d42e3a486edd2f58c51cf8be5d8675efb9ddee61568b86bad90f404afeddfc16b3c25687c53ab5778fae429672adce10953590df813d5608e36fc65df1fa9b2c5af041aba08d16f795dc37cfc2087e9456d9fac261263e45fceaa3449d087fb3c137f24b7e8c403e3510f4e5abd2ec47df205893374ec04c0104b027a2a1c806540c3d8f265e77a4782b011eb412423c01c12889362de6f8a78ad7e0629069e5c4c702f7fe847724a8e7b305ae9319607d7182ea78078bac5978fe40a4a9894d45fc21c5149d71b5c6abb4b35712bed98948a34dce6827a23ceaa900943355bad8e2e4c6a4038ab0d6b475bc281190be671f110a647b291d7fa0e427ee575c983f35eb9517f3feddb00b3057ff892e16473456aa62b105184ed63543aede1d8a52a4185db104d521dc3e11ca3d8f3080a313c2cd9a574bb46464c6bb867a7f9aa5bad45774145cfec09629255a8766069fc2920cbd8c76400f2b10c3c6419b05cdfc9fba46a425b5bf3184553c3c9c8c0d9ef753b8a6af0747a4c9f821934490970c41ddb411f62c45a73f938900d0aeefaa3a85507ff5d05b145e614721bc48277a7ed0d49ae0bda6d5157b70faa581f08379058c2671b439f670f143f8d61892f87a879c07a420e9df9df17b52a9ebc02c530f637cb0f9bb51dba8eff41f273ef9f9c76a6fb48992d1e67806ed3bcf410e61eee4e117cba89d63a93ff32ab044246190aa996af53c1ffc3d59b6f75da0274422cea460f2e9bb231107825347a5fd228ac133301645b1c71248530c0aba1375e0e6433dd1ddeae481e648e685d2de0707ee1d0dd5b118bf829f9f5988651687a5b71937ffceacb2d9ea611091b8a5848c9368e84f166643167df4ef3b9f5e837e020020fa271be6b56c9f7074e2fb4d11edf4d9eb33c143e388f43807136ab7a7a74711000001bcd5ce988e47775027b6a880deb2c7b8ef9ee6e216ebef8248b9139cf888262a097193d7ec9e0303fc78a7bb383bbfe61d9464575b1d2e3005d5d85d73e37a4249d26e45e36b1c066860818ceadaf9354f559cf32392bf5df48b3e6eaa909714d0f388a718afa272038a68dc8df4ce4cf628a70a08475b0701e27871b681b1d976365432ab8c44dc775dfecfb00abe1f31f8d226a14fd60824a45ae3ae7bcb468451230e714962145f2af609687605d6aa58f8ab5cfc3b682e7de2e466e8d31a40b08c834e7329ce1fc3250c34c93e5a3c9337e48e59e25a48857378cfa886298060f0dc20c0cc07c6796a8053a4364a02c32cd3f0c692ce4b46f41b33b7e19775b8298d4373a67cb3038c777dc11607c4675e77370187931b7f84ca57fb46690ddfb93a73b6bc8cfb17503e31977269d98d2d4e58aa7549fe3ffcfd6f9a1da6470e218d3f6b42e15786cbc5b6f64dcd21987e7e03d7035e3619e1fc02e4ce0bf79c72be6484817ce616274ffce8d19d71d5ce6cd13c3af3b35969e587c07756c659f7e6ef2f7346bbef61b28907437604f63a490875dc9bfa6190befd377e8d1481fcbedb2fcacf769e4953f4535df8330d7d3641db6d95735961f32341486422bcaaf25371397e18c0228d870000000000079a10000000000040312a2591a678e9a7a5794cbe4fb4869650e59b5cbf2d49d22e7f2dc1108c95dd586e873cff4e7877675d2acac5b9eb9bb562bae2c6ed373f2146b20f691995cc010020c2af789bff54f47870aa63a4857d0c78e16990ff816ea853060d0bdb9693146b0000052cfc9ba9f0ca048cae5adb62c24f720629224a5ff72af605fd08798a01b83fed32746c551cd5053f542c68f08c568ffd3d053cfdf1e61f5c6f49aa5098e4589533b9281097356b82dd52f8abf29dfb42b6cf89442dd82150f7033843c4c4074b1f5cebcb2120d3dd785a92b50ebb1c1918c3affab9382c07c893ee3308eb11dbb8130231bee378a71b3f67e474c53fb4e041eb631058cd00f1741da44a769e84f333165f538475e517b44b9c1d4f08d0c1f75c7941bf89ef9894357abcf90810e27f2e5b84b7eb7fa9a967fc5652922d271bcab37944ef817f67f8e3c451551edc662d1ff7cdeb38fe326eebeacca82027fe21be6534ec1935a83bfba05c61112ad051d96e94e314456f3cb3b9073ae6790a827cff66e2eee534ebfd2cada981be2d3a1c9ff4f0acd38782a1edd8b29ca390ef50c0466db7a0c8d9a60d2d56aef711a27ba5f3e605980bb589b629ebdfe96340b899e528e8503466d1da58cdf4f8dd6acc635dd86550a00ae9b0b9a231f505ac2f6517d73deb33c8ed26283f6873f1d631d7fe1a57060e504d342c6dc5d855e39d7b2453796042b86f3f4f0818d449823fed5f22b68256a03a4b436c59c7111cc05abd5430f686133e12071c2cf0f631d7ed1f3bc5cb35f20824fbe7449ec8641d5547e6e9f42230d16eb22360f6d72c5df686bb30980fe1879a2dfb6341a734ff038ea0c69fe61d6682e96ce995f1eda6e18790aa39282f1587a66184e5b490c26e2c8ea719c1d768bffa26c2005a912ee1168d10360b2b90b0b5da91f9e67ee8149a1fac39eec3856951641858881ffe601d4c8a1d068e3db7fa1e5239bf65262a8765b709ee87e37388e8efce5e9bc79ee3000852290fc4ce2294c722da35788f2a5092acbaf39772f038cb2f4576e7acb1db7725c82bf2036a82bf6525d4b09ce50b4b18dcc0a086d62b988c8350e3b09b974439ce5eb66896d5ab4205c86f8069af5da62631d38ea6509643582b446d70e7773d2039a5ede256d4a4b96ffc0927987de8b3109fa1ba00398cc9d064ccd97b9eb09cb7f03db46c591b7ae677ed20e6bc8742c33e58d4f8784d021e3188677c9fbfee7e7b65ea8ef78461498d79be0912febfe0b7f211ee86b17fd2684bae66a1247fd8aa0d44444ea8222b7c80aacc5d3584a9f8b254b209769c890465f7950fbedc0c28008318decc3d84c1d7e72c89f83684f1ab7da656fa2cd31145aaf4ab16e9b26534523be1e5d461134dc2b77dbce31efb719531b0cce4abf223af561f5c1fde9525ba7b8713a369cb49679157d520a02af452a4818556840ff73d1b4ce74ba68fbb820444095094a5e5da0571a2e61c411db282d85f9b163dee0618d206edfdc319a3602918fb8dfb29296e22db5374d937e75a1912cc89be0bac22cd48f06e1d57687c2a64536c1f32e8bfaac9e557b5b35f29974a646a010829fb509a77a28fee7882d7341cd07ac32d7b7d418f4a0dd30556f805fcd229c1347d65f666dfe7d64232b28b49858ddf34ce465ce1bb54d759b819f5150a11185e9dec1442c9da34db7ee74e016ca5a1768fce8f57e6c5205a59d9874d57fe21ba058ef94fc0a1ba2719019087254b1fc1dde33acda6a1bb9271734ceec8fb953cdf81c366e4c0b7f4a75c360a3046ac928f1b7c016a1b4333bb143aa06b6189a1663f35ceecf0303a640d92e07a97478112c4d091148ab9291b281fcf57286e250a4a6a6ed0e42a16f3bf274afb42f57844a4e705702ed7f08adbf809c2277299d75b2efb4431a20ba42f03cd70aff3a7a440595511affce8f27a19f8c32e5b0fdc641097ce6e6bbef75e1fceff889cb486668bde87aa1b8d8a66947a60a21dc33cd2b412f985b00200203aa2d90526f28ac472cd7da428d9987d47ba24eb94214068d604e3b4c2a99f0b000001bc7b6fc743b3e573517d11d14913672eee29331b8582881e68a2ae52b6066b9bdfa7cfde988c6cabe8f50e3e28a1c672af3fc606982731bc633ffdf757e7e9248c7fa65b078d8b3e83e23868b56abb9409501f8cf6b830ffdafd5ad8e269450e2d6d4bc1506236d5cfc48f8880a6b1b50b8b8baf4206aa2321ffab137e04886b004e403887b1f980e3ecb050272f6dc5d26b3305e0e27156df78b4c95a1d5594242186a739876aff19012eae39ed52c4e33417afb25410cbaf18e3fdaf664ce868068d81432d71c006c580ef70d395c40bfb814b2125ec8e4bb5c48c09f53fb10fe80b16486459d03844ead787b838032a65b5e90068ebca957ec5fc5acb4781c3f925083df52b8c78e3db503ea990c55ce7b952199af860aa917bfed28668e7d979e968413659b61ee1fc64e23f27723f7e64e7b292e9a17ad1aa25fc8b54c6e06bf22dcd4a5b7fa9892962715a5aea4e310d007bcc8eb9991e28dcc6c7c3889c6c74a73bd56c6eac8a627877686960d71eee3cefd7db869c917f8bc196e440f6695fcb55abd8ad6ecbebc16740ca2a05585dfb10888b17ae28cacf0216b7f8023101420b4969ce64f3a179c0b49c869123101dfdefbd0ccd2a7d67ca442561d17b3345c45b0876bb177599320000000000079a1000000000004039245fb55c79891267daf7e0e4b136002b692cea4aadddf8dc284e831f602f6de64867c4ddf24c36992f358fa116a47cf4823150a9621443b1d33ad997f09bc80100204eefd4d6abcc22caacb2addb44dd58d8915212f23dbc717fec877fbc8e8d2c790000052cb2c59d18bafa33dc5b1ab3dc21cdf318dc7cc5757471146d610e008e7c02127d40585eebe036354b922126fccc73a080f126d7a7c9bf6087c566bfb603149682efa0734490b957fffa745a5fbcdbe3dc344af3df19bb845ceb7f78dc4faf9254a17df5b23686da9eaba287e53d7a7103d6728d08885913fa979e8127593fd8bfa65ce01be10bbbebe3fadb59d6bd0a6dba52771aff0c714091cf9b3029127f87421e628d3d7b8cc73f16977a71818a13942bc6d525c9b281cfedd7e49376432ac157c48e5af3e1fb7157ed392dee47559908e8eeed84a6d3acfe6c3789d3e757a294d6a41a386fdd845402e0f910a3ffb1df3815ce6a011d715e7bd45d4773a33dfaa0d99ef6c700bcd8ff76c05a9e38ff6735cb19c74cc06993c704a2f3ef0dcb6d101509540c7a782b887919f81705232ceeaf75f85ca5527986aefb41746158323962b2ffc3de4eed331032f52ed22bb07850359fcd940464afcae8b9ea12265e651debb5224f290baa4b90fad48e7c1dee343ad5448accbaaf7d6e7920ec5d6f57cc38d673195b389737958dc16b7217b8c4428af5639756470687a2cc91bcde6ff9af6b99307c3ff292d8baf30117494f82fba3863fd9c0e235e6c13d09f82463f10527174a7268e0312405afc281e2b0d4b8e5f1c51d39bec2e8097e154ffcf91d32351aa0452b741b857c9e2929e166ae83b237a006e424e99101f3fc45083b758fa1b8605a5d7b25ddc43e3cf4d7528fae4508d2581f3509310c46fcc0d243f26d73a154e80dc11b09da019cace684c1b9476e07925b77730385f7e9cb275461b54606416f86341a400cc1a324f4897fada98f8dc8c392314912824bf34b6439009cf339885b0b1aa0b93254ea2f1577c5b1c20304fc8151957fcd83ede0e44a6e33f1e98aea1a564588d285f9711f584bf7383cb546c920671ab313ddf92f7b29a5bff95f8792f203f649b34e14bf306a414a8512c53b136aa778f68a3b69a38857caa9aa32236242a5582263794746cb56c9a748732d3dd8d8680e8092dc28147dd37aa5ae26afe8fc7736a9f3f35235c237419feb8868d838d4c5ac5e9ebd4d9b1c12dea282fca7220b2e6afcf470f5415f95464a346676f6c87a26937edacec2023c9a75e81805eab735ca1657f52977748481bf9030bdbd0c211e7e38f44915da323be30898d622bc49299103a9673874c578aff2aad904a55460d25380c686255a7a67cc349cdc34f9fb170e2557d03da6d7d79c38a539904d5286962224a31445fc400898f4468665f83bfc4e4e8ccd4d772129e9e7df5362902ff8ae71276db0ef4e08ce90eb3d2d5b36152f855d7e05e8060342d06361110cae2f8c730be0bb6d5ce5293dad05f322f67c9cce9285836579abe395f7f95c1930c835704c8ab9b4ed32fbd5c2a94380ccaee0a58e8b9ef59d8935eb62df90b0b01245f974b6183772b2376b970641e038c9a31a3f423baaafe41c232d24b31fbd1c18a9d903577d7515beb42ab07d8a9b96bf18ba15730470476f75fe39cc7c1a39c0aa4a2331bb0608b7bd6cb9a192e785e8d84cc7876fc353ab3145233e83649d724927e3b7efe997080b18cf37cc1a481b82531269984ac7fad58366fb7f86e6d9a046ea72ebc3e61ad9fd7cb82dc94403ddcd3fe6ab0216dd2b7b745fcfbc399336deb39d7c9b906328c7338f4e50864ab44d9dbc8b41cf3f5ea3e74e4d1752982a6bbde40de718c3f14dca599b922090b954c8b724d3ea1c877d668bad30ce8c448e98390dceaf5f0151b06d0ee6fefc39cec6723289b27aee5f5cf902ddfe05cd977a31436da582f90d53ac46f592095202a4f00b0fe87882eecc4924afc44bbe6e09f28f178af102002025a6ff4127628d939d64234a8a347aeac7649762213791b3328b4b8030066654000001bcd4f494fbf6cd526a244a8112375136c7272481ca848e90a77f7880b5ce52cb77e35784b00f2ba9f67baff10ecad0fa12d429b4a20ce1f18bf7bb2fefd391cb84df4b47d71edf67c19be246f60f1cc419dce8fa6c7ba9d52f8e30bce0bcf09788eb1603a3f639d41856bbfbab8ebf84a9330f50398c0bd06a3a313c31790f7ce73c1ac8b9835bd4d668f2040ed7007b270ecb3576e5c758ffeecd5b783151628ab726a5983e55f620cca96e8afc95545ca040992ac48faaba5f3863804faa0bf10517672cf9d1c615ba597948ed387554b8ae98f6197ea00f4e8f1453f43e38e9f754efa172d9b7d6080b9f5f0d5b5aef22848efaa38ce201fa7d6c5435385387628df67b8072e2596c45ca3fca467b2c61fd3e615aa88763b77d068f562c475221f629009ddd44e553adb821baa8b5ca4053488c7b6dbc4d0ae91b7a912e7901feeaa4c5231acc97f9bcad44df1eb6a53a0bad38a39cfd66a2964a1d5e0d68728804308265563266e56ebe2fe2eb8fe72f6b3161f611515f38b8f3330f0c3cad787a47ffd38007ce9f4e0c79470100aec7735f3c647bc207151a538d2d74b49f23128ad769461bca80364efe4e8b78cd0ba8e83ef7604cc3e7d7993548eeb17409ca5651b935a41686cb952b0000000000079a1000000000004005eebb1974021396a3778c3ff3221ce4acf320fd25e81b85dd4337c2f0ccbe07c8c06fee4fb0c4e5922f84ff5846dfab430c68d91d41fd4a54e45ff71117ecb801002031c78a8c718a82f6cea0a2a62f635fc0539886ab7aed05a6ba2af436f7e20e490000052ca5e4e29817843216ddef7af3f7a8c71213ba6f17156f104c8a4f3f0a2d4a78a1f2284c84fe849dda0e038198c77561eab30a9ef69818fd4400ac77ffdf0ced619377540ce511d2408f957876756527f761d974f35d97824b1490c8b8db87f0a892a595eced7fd7f8297765782e2ae6ea1c29d01265355e337709e9920e6238426eff8efdf1cc416069b118476bf3654db11f3c8475f5e30eea03dc6e4dc3a56942b20345de2f8c75eb992f4910142d8494950cef48167a3e279436ca4a2a57720cd4857489d320215a9a6a75139a533db06aed577e0c1dcdf466baf73f0784110ac78fefbe2943f44e07ac1365abff61a1c5cf08b4f9f689537f1bfc9fcc85cfc8905e7f96966f174c15fafc84690d59eea82a1eb75cc0720b555fc02fa204250deb36cfd912c52ba19b40f778723d604e41eba49a2f8b47e3b8fe8f4381e4043457337e281bf59ff24627b6189dd905affa76c8c69486e3543a63907f5a10d4e90b84f8bac6369321bed9ba0f894f0229a8c9b1f03fe53db9e66e6ca5af438f74321a3c3352dc213c9ca0fdd8e517a1d6ce6d954149d0af2ef261097a20dc794f2b74e5547b2e60c307ef1ff26305eb6b50036718b81f5edf72ceb3244ed4a8ee51a4f0417f7e3e476f83f61aabc5da2944cb2d9b31c0e298cf7c959807ff2b1daba0cb1bcfc24bf02dc934c8da1e5cff3d7ee3385c04cd4a89effd9ba17979781af3df740713c545e9bd7395430fd1a0bfd6be9242027d4c042710ee19cfe48924b826317948dfb2e9230f328001e88b7bc7f81e0934285174783c9b60661fe3f5f2d9e943a234a701108457ecccc02cc7f3b7996bfba0c393b519ed9d27f6cfa5c9779c612a4aca575c0cbd16f039979222a9318b15531c39b1633db5692e3ff2ab5273b32bc6bc1db5fc008d1a1aaf5673eed276a93c186c95a78aea118763a904503aae312de990d42793a9674e2652c49809cf40b75f0ced107ce63c95e71138cbd263aabc1826716b31377f3d112f3c78b534b8cc09d29805d14b2f2a9f05e29f38420c0b45fb8a4265eac9af00aa1d9ab5bc102455a36fa619b6e068c830999e09f8095d957e94e24009f44db1c18ead05a83f43a95d243989ee9530c380e1d26a80e4eb824c5495b1e79dbed8878e11819949fcf4c57074d126029501a272903d5c61ea7a70975c890d59c9181bcf9feb412eb5ae7b5c7f97545ff5fc991e43e5466df4c72c0ed0af35a1ee67122bd064c128aecd59cb9d880de6e832b6b968b61cafe2027277a0ec3412420de09bd4dc9f882bd4b476663a74b2ff028b5a2a01ae4f08b4ad26c0d54b776ff6ef9b7ad8594a1ee4b2ef9aaf3373ce8c850821fe610dd35f07628e40f1e7b89f1c60bb6bbda3d4d9d0105ada2d7f2365ffb6bd8f4577fce3035433674bc8f9fbefda31476c331fa4a3779537202cc44dc254315ed5fd7d740a6fb36d0aa57df3c1fb30e2020986d40b1f590bac672fe0ebd247ff5f42b1561c72d10904c2ab5822301df919b7cb34dcebb18c6ab129f04e0d1036f0d8ef5f46123cba852033810abf5bb0a1b699c76840c71427db4679c11beb687c2cb2d95b35cd9eaaed91efb6a044b19d93ed90249f6d6e23c73b6307492c04f4ffd45a92e6dbc366c4433b8a82afb3dcaeb53186bda5e43ec5709e15e3234c3a3583f132ffbb85c323264ed3d0e3a32278245deaef9d5a17a3535f36d5a716d30564b6dfed97ecaf991d1df81d6ccb311fcf9446701b57cca73b7c84774bc8214b200e7ce41667a14f151ab84a92b2e8204f53963c1e8c4601a24cccbae92bd64cc459a75d370944090eb797382a4985b84d8e21654a4de4ca16c436466ac71d327267e54d0c0200205fc6f33ba444b185e6a195f4a44f6c07b628407c7f44b72e7333206cd0606744000001bc02ae2ff86333e1586be384cf9adf3fb243878fd0375d71f18bc1e35f4792fb457a5ef4acff648f6e921b70bbe7c5358506e6e32caca2b09e538e85135e36b0821e311afdfed7d25eb18d4bffc48c1f2bbc6a412eb5405cf1f67d7f64f5c976b8217bc7489ca2a8492dc697a52ba0f7518916be7fef1a2b244ea9f448679b37481b55d27e5e5d4c4a6c5d5764775370f0d9fc1705b040f90671c006c02674ee036dde7aaed9e1fc18d9225d50903991b7811dd6bcb3a61db9e5a156541558e76f0a3f98bef82f67c5a61922c0a5d009050bbaadce19c5d141bef5eecce6190fceb550bb33334bd5dcc25048bcfce9810892a7055162e2591a8cb9b3abe1bddabf804565a2abfcf985228e4d65f389ae1f6a5c3062763a60f1e105fb6db1316808f600ff234d816f27ec53e80a33640dafd530a0d570973b9ccd419a0bd5863f89cdfa46eecf74f7af43966b8cdd76d2cf685782a77204ff745fc3737d7f3cf887e39c1b0cecfc2e63f11ec64239c51f93ab40fe4994958988b3456b71de885da4d45f4ae82b30efacccc8a2aa049f48e0a1afb40ee4df475dff9cf1035a95676cf74a32afa79e8c2cc3dcde60b98e8aad3c4267ce7d7a8d6d78d5deac49cefbb8017d08f41a1ac201f58eb7d30000000000079a1000000000004067dde4798fc4a586605a3fd484fdb441dc9eb80ca2e4a803f4de398cf1d1fa922cb0bf8559af28d0566950820680cfae741c3577f98d48a320338f3b2ee299d4010020d46b3ee501519818094f76921b065fbd41f5215a9c6f56479cc4bdb7a59c12200000052cc5cb09ac5fe2352ca15befa94e3a3c53c4c34cc25b0ffbbaf5a4a6aec394a120c0f8542713a09f3b9441608420842be8cb51d2dea0455dced4029805c8dc8d8a6f3b7acd1c038d246e840399c7f424b412bf4dfe8aa624fae1fdca3fd808b86497f4523b645f561c42fcd9a16be49c4483cde5de22a0723fc38fa3a55bf311e8c975bc28f006e128ae9fa67a5f66589022056c8b9e209ea93b6f6f95f3a4e51f4b896d1ec4b85fd72b94bde395996c94a0db59b8175ebda3b73b9907a9f26ab5f096fc9f1b34f619f1ace3c78899a4d7f0b8776d2baa9306fcd8a907a7f3579ff0158f6c3eb24a5a7c5a67c37f17d780dfce02e4b87f50df0ae72c498432ac817d42b00973c23cf17e91a0ba29d6fd865dae21e8fc977ec8ea198d256d3f78b37edc896662bfd1481513c9ab61ce02850e07a854f9a3e746465232efa3c2b99b5cbbdecb9726110d458efb1c18e8fa2f8ca1d4dc205a0a8fef39fe2cca96dfe9b6bffbdebaca8699b092c112e6e9bf8573ea8dbbbc0b75b77cd9338d87ff962d01f2b52fe40d5ccddf7cca9f3e85f89f687ea2f3a654a89aea8fab15b5155fcd63d4968613fde2b18b4797c79c9e66754dc8dfa88383b56a58ed221049a1c82203197040b12a6057c6e59c4ac76d86727e8bee151552bd426a105dd2bb842ce0bd76afb1321d2fc6def3ef1e1b1772ab259248d9822d9a040db7b1b15b9aeec45f64e05f76c458c5c5a58708a59aa9665fa01846d0cf198cbf87918300e62c31d561dd30fafb2c1f5dfb3b4ba8ea2241c0843b9a8bc23494ed664131e6f5c088d14fc4496afbab6bd3ff05a38caac718b808d6ce069be887a693a1d453d203d4b31f2447aace011decf081cb5f6d13816fac182ff51d0111a77126f995a05c14c7b062eb3b6ee0add79d20d50c97efc60e9bfe0df5f3a51b484eee88a8603e332cb4090f2cce9e2c9a0c6fc8813f4d545e550c6d5ee796021783aa9c4030a58fc0c8ebc8c54ec785c6a9f95d925d848a30eb4ca308f7284fcbfb08bc0e4724daf202c321b83b7f56c6d0afee616cfbcefeea80e940ebdbe44398044e989dba982aeec1d24e15c3bfd6aa8bf528d5fd47d739b2209567feeffe6c04f806af25a31809c5fd2f5cac844de58e6be1a2e7004a99a869f1d6bc690f25bd37740b9500452e889c8fe277627ea644e48a22efecaebaae88ed2386a2909be2b07432f4b7542ffea6fa8ef780251e01a5c4e6819fe547b265142abf47c8999f1eb177684b9add3ecc5eef37269cf5c9b7465148a851ec6f59c6e6a8e8387ef1b851370c28fd25bfeeef254db1c9307f8fb2217565b8ef1b278120951d5a6bb6923347ec3c464d51fd586cce0bb7d7986b597d46f68c3702a5c8b8fae661d819a93d932f2892c39d803d01896ae68d166021d593cee8d9f5d8e2cbd67b80a7a2806a5061b51150b240b57db7261163e8eaaeab82805462f44183bf6fe4b5d680d5026d07bf4eb98b90d89b81b7048f85dcbe257f0299dfac1e40b83b581dea800369dc3b815a657fa3502b8e12b0ff9592501a28add0b0da971c8db13d69514b966845a03d57c3a39ca5d9141b010caaf54734ea87184c22366733ec7a69dceb09df36a5a69eda8976040453b046f7a61fbf36b901456961583fbf0b362f69c9cf52826eb9155d22a4cd50e87cc385eabb3c835c9b4df562fca011adc6c33c910a72b74b0b8678a69588bbfbc894a900eb823d36b6042535e2fcbebfcf5283c4082197a716001134c08732dac6300857930071a07d6aa476aa8a285d3fd7847368e339c2b4cd65d5445af218d924034b25118ffd04473cb661a769cdf6260b0365b7eecb3b16c19bc684f3c02cdc9f6b3102002021a57d3e53ae0072cace2ce3d6c289b520c0f8439a328ce9e986b62db421a86a000001bc3879ccd4a294b070d2b14e5d980514d8ac3a85e86d2d6fcef23863b13dad382175526578dc53eff2ab29071089318ee0f74b8b61a9564893b6b7a4c25ebd9fcdfa60bd0ec14c1441118a736b1704c88b5fa416a173b04280e18cc5b239d7592c1667c3e8acc4af8acf0a0f637192b6122f60c9f27de8cabb7f004e668ea1df993c03d6f09e1718eadc27cf30c0a406f5f2eb09f9acfaf6ce859ed5041a4cad21136971fa19416b4506929339726509007eabd0dbd74f459bfd6520b76b7d072704dd6a38c01779ffbae66f39173692d6fd0fe98568bfc8f641fee4449db7013ed0c31f4c2cb3efa100155aef67189b7adc71766b7a192004538aa7c7e46a95fde0bb589f524dc7bc802c5e64adcb9f593ea94a1c4e6ae96120a1e9d574863c37976a93c6db11310af2140f4446381fa2da963ac4b5d921c0ba8c5640a50e70fc45ab124c65604d56e2a0c0bed78b39bb0d05d5d1899cfc13078632cff49e8f0ae37d33975f7adab2ae9099217d08331ea7b17c572a4f1a8b104f530f3bac4b3550a9755724875491e0e224d40229099d24970f719dbdd1e1721330ea60344c4b3e4cf422a194dd2b7c10919c1181ed8626de32dc6e31095a717118a34aeeee3730c210006a507d139627856e0000000000079a10000000000040bb4c87eb95ffcd029428d019b3c53c5d0c773666c1534cee54cb8ff26f1fb754fefaa17a1b3c014186263c1ec03d4a8abe0631e1062e95d8232ba467bac9bd4601002038557689d452bbf1151c76327c1f3320dcd4a69064a544dd135804bdd65250600000052c3e24c0dae9b1dbfacd9909a181ba0eed6f07a5c6c49373fd106c073c308ce09ec94a6b4a443e18ddfb07e9572317174e9c9011fab99800406efb6d72301c5c755e74b47df475efab1b1a347d125ed59c0607ca5daae13ae13083b052359ed28e42e4fa827ccf104006da851bdfcff6d735c3081bd88319f4e1c4079e6283ce6584f119a231ce729546c409b2983088c79c82cfc06691c3f0711dbe677d9e7d6bbaa765087245f3e3d0ffc42dc871322faee0ebda69c22586da6a5f9b5b291361c8b08d4aa1a0b8b5cbf097d66ba467f071f29a407cabaab5cd1b51d7c945c30b4703125ff71de513a801748bb416e69491e9a4c1e13d92ef82998567ed468666064023cbed342a9daf8db8d7ac330bbb1e0dd962538b57df9f1f43a73feca5b405ee0fa6925fac3b76738dfb71eab4ad910be92707aa666d42dc53a32d251bd8373869e851a1a770dc9eb19f272c4617d92351530b3275755df67805bdc8369e2634263f8c4c67715b4949924187915e573810832497229a5464e1e1fd1ad9e43027013d7ef40a26fdf2490091c4743a36bb8712fa418f46d1f9f1d34238e96b5cd1afbac11970d8b3c221dc6e7b13b362bd807ac20e1a2ee791f5ddb138ed3a6834b4b0dd7734bd19e1e0bc33ef50dfaa533179fdfb0aff97361e24cb27fd1962a6c43b3eb76c04f2f0d991f042e577cc79cfa12b2052167ecbe1eb3724103a0eb84b32f27a1e90a65464c2a53f65c5af724929c5e86ec086c5ce9c29f346e029a77599f0e39383de9160fa74d705508a677bf839790795353f117e00c8b144b97c1803f2344567044e8a3ce6ac6c212ef2fbc03514ca5120381e3e29b891cadd9ecaf56a5d002e076d78378a88fd9a39e344e4bcb8efc3818905d907c64071259358e183a57c96e6c38e04fa0ebe243056f82bb5e2b9c9b2829ed4e9610ae784cb106d09d3b9c7fdfd199b498044fbcdfae1f1bf05be2d03227d5cacae0ed8444e3474d2839b1ff02eef51da5b086e908a878524334d735eaf0142625149e24eab70cd419ec8c16b6d52d94cb380b1e32645ae1ced26d8b1ec5e8a772d747ec8a1449aa035ea753a8ff72bcf79efed4fd501526ef7c034afe22ecba94403dcac2799a73f121e9f78019ce3301e17f1fa794dead24d1fdca21f276e032fba9146fca4e751ddcbd9a9a33bf86f7365efa624b77292d4e2bd895bf08958616353657eac33bbceb9b44bd17492cdac1af252de3fff23728dc776c6924152d83943a4b02376b5716d61768445a58f6a9e90fc4586badd6b2b000ce72840afbc3800a08e860b3a2768c8e8d02c1dca2bb03b0b43d5b292b0dd7bfe6587ceb262d9825c4712a0dbecde2138818683222aabcfca4aa522a6e68e04d50c3126d95b0e31016fd10e2f1746c91d4d46c91b257ef00c02aa9f987d6cb7739c8e1c4b9df924b3086aaa390b6aea29e89c19a81ed4460f13a6072ddfbce2127fdbcfd2ef8aa0f8286596c103fac4fc81c412341a5818a533a14abb9b91839e01bf2b3a0426afeb1c7dff0f6663e6f10eaf4c18479587537e130242d1f71fa062e994bcaad4b3633893c340089679bef398608e658097ab11ad9d58c4d98bad8f244cca552b571822005e85bf45f4f5e1db70c52deff8fdecc39c31fba86b8ab5570d5c1a8516974e9d99c6d58e8833b7b10c02301d788e00ff9cdff70e4bbf225cf88381a2d15a2fb558a99f2a36174b3d50802fc9cf895a47c554e6eea6be05a40ac9a7230ca607cb01a2fb960baaf616212b3054bebe6c03272e35ea82c02215846121f724fdca6b658f115db4ef50d863f2687aca6d9afb64b030e9eab3c887315e1a53ec1e6c69395ce90f143ecab00d0200205d8c0662456eaca4faea15c7d93e66c131783f3b6a0e34ab26863e35e345d009000001bce4040b34babc79c0d647e01db84f0b40c6cc6059b059f036985e23500170810ae00427d1915f06964f8b4eb4feb49df67bc575407365edad3728c8bb468c1836d0deaad2790646fab0e3859f66be2007dc24c990cb645a28d1d2cbb84910085a68e10e8fa57d756fb1fe119f862af1f487316f2982211e2798d0e1306a90a951cd5d9c36393a77a2da078c2bf8dde790c66de4057e7bb8d9509556f6deffd504cee530a677300dd3bb26db4c616d66fd075df1cc691038121f81c89174f44ba2745863a229db15f79b9dc55311c9514a43b48f3c601c0a21c8f682dd941e4fb2fa4bf97ff1d5d1c20f064d49d63e7365f712ab35df318b72453ebd985e0898bc6ecc847df0b03d92608a072a26956543f399459a5b79a6129884dc9454f1447cee49e9ae551f3582295b6621a901d4632e04bb6052c354c9a32ed01e417d59cfa22c98251867096dba5eef06dcd0e7821bf276824f341ebe225b49e7912ba9c7e73d34caa1956c0bfec05a65419cdbbcf44500b1f9973fbc79f53b365d3e6d74b8b65c9b7428a65f45ceb10958898c860910f1e3b6e17379a0ffefdabda6ed55801c68ea80ddfb3215dfa0b867f6d278286c02ca14ed20f59de3d5fb551aeaa6a1ae7af3a777e22912f9270b0000000000079a1000000000004031dce2f38b7f1ae524f01a22b8e1bafe5833ad680309baaa35abf25e4029c0f1e9d14a3c17b4faf677b8a9a79625780061b5c155260ca091f5bfe352939b45a3010020cb8ce8f08fa8b94aad11b92911b521085ff3aada5c08c883c219eeaff580bd1b0000052cf538f53825f52a0144b054de079227796928598b94159f780b79b130eeb956f08db11cd576f3f80d360324a9cf2f3294f78a907e8df011456100e792828d651763bb6005aa763ae1fbd79242c9c0535bf5b864da1d16ac11c5bcebac03f771d8d7f81ac9673e9f49dbbd672efa31d3434eddfd9939940f548ccb3d963e9eae494b0afa78afa8cd3d893478ac85fc71e87b75a67eabdf7fdcd1cec33798a71bc67b87378547a847f13db33d3577d19deac5367245f7f18926fead6f2c81d47d7d7ac0a8ac088c33caa59218657710f592843fc0fed4fddb444b44b9c8be061bbd352c4bece45e585185976792e65de70c1c6dc5695498910ac5fe6ba4ffef2ec5a1d297d26043ea054ed483f4571a3fc4ca1fbf37da72a6d0ed70a4f12d51492134e5b12789354af7a21c2e8fe12e9865316a6cd9fffee624759eec063e532bdf038c42e30869bed138f16af3e4ba366f683348cab2d0a37e9ac8fab4c4a6c16c9ce09dd2e12b5125a535c9a969793827c64e65d28f0da880ed9b8252b85d51c0781f7c6b8bbb2619c181eefc9786d5fee2a162c9c36cd36175ded2bf6dfd9a3c52ac1f370246043de0e2d64e2eefb7810b9d9d95e6a5fb097f3ebe9d23f90a1013aaf8bf6a154eece90956b4d216f4ffe5117403c8cfe01adf638f413bf4b75673d582e1ad87701a2975583670a3c0f7d5772e7a909562e016da8bca085d10bb07366486414a5c89013649bee2ce4c2ca5f8fcfceb0b3f1ae0c38719a2b6d4bf715fc65145997103c78c3f2cfef5570cd7b2703767cc0d46e617dc15893bdd78c6697317e01c60ec26b949a042b9b0eefdc111f45d352abf26481b73ae1fee7b7d1800abdb0ff39fca2003e079f2fcf1d4c9628d4b19d00c1f4fbda6fe7a5dd946a8a78bb7819855bc064e67c3d56c1b2c4012b332d653c69c40143bc0637c63d5ac6d119b0c99336d16d437cba8fcd25a4efb398903f351b4736e4f9dc1c1144edeae94ea91276c0af2841c9f19b6753750e82c8eac6e266a03b658310a6dc11b6baa3cb5f2abe55452ac1082a9cbcb17189d25c7b4afc7985ff117a0eae5700b9e4789690d1451cd7dfea9c1f2f781b041e82b68f23803ead322d7d9db5313e368e7f603c90a4d4f7d710ba9478a52a5ae5d4ba33d63e63fb72b39675e0a8ab9acc8a75173e7a8f79a5a32543b0d489cade6d649fe04209186e37a625d0e9d8012f4a161e127d52a29bc4715dc3c1480f4eec2188b6b35db56b6ba663953548d8a5f908f50e9d9b0185e3abda92d92ecfd70b9a8e45b5fdc6132764a56338a045e3163c2ac24323218dd52af6cec0d90f90d4dcda16c83677646a414843bfae7909e6f2fe6e7118574f9718bc72ec3410ad1d38407676b7aa87fadf3bb1b498d2513ae16affb54b336aba83b5d61ebb68539eafa1b297b7931cbb2a03b212838181359e87c968bd3100e65d9880a015c81cb952ffa530823069b5bdcd7c4d04534de2852c4a3173bc34d9e4ce88601343c35848a0f08e775436024f1c15f2159b2b1f1961ce2fa0e66aecbb72ece9539a015dc1b0b88d4cdb163527ec710285b6b89861679d3889ba9cef68e18bcb679dac770e2e463ee80ca6d7b15b870caaa6af98cc95d3249ff6812c8681772b394703663724166596542beb7405f2b2f9ed960aa4e82c6c375d6db50a01f2a09aa45c974e5bcd9b4d1984211ae5ea174181489b6aaa2c62f36d17792a72b4f820b90bd1807f222d4691a2357af7291d4b2b954422092ad00e5833da5619bd1913b8e3949a49a696b7306269f7f5f16fa29dfac16e039a28ac1d9615fac9bd356c694edc6ed8364e050511057792209d2cc9a7f024a2421e0cf96760f020020a4483d975804e4583d9ab475f6376628dd37b49c3822d870f17623b8c748b338000001bcb116ce77ef3c7f804f4c23d925a8b2104b584e036ea2f6d856705cd5fdc78291692849c18714b91b2b4cb9683eeffa882db6e64cb44450b9cd6baf1c1465b250e19fb91b73a6e448a8cfdf233407172d43a756368f645670d8d57b8ed4d6080e9945a3cba21a7284d46c7fefe4693d09f94d2aab56ae183816d71714c9739fe82a58dbe998a6a90cf11c91d8725ec441ee59ae871a9fccd7bb2f838f66250f485b679d97c9905f06aa5fa4f8e5fbcce683fd979638976f3621f322586dfa32d505d09fd558ade9177658db75e264258e2dcd2e5af18dd33e5830f686d610f8be963ee1e4d091d35aaac4a0cb1e4c67594df294ee1541bd3c8132ccc57a16380fb335e9a4a86eb199365d917e2ac02465f34172750fbe0e806b8146037be37e8f2f083ec1cfbd35ffbfb55004be21a65e76a0cc4e2a5f2b05423ec5898c7e7310c60acb52f9b3f5dea9be6dbac2c49fa0ea40fc6c31461127be7fc5cb351abbac1726eb54df6284ebed70538ea71112ebc134c0e3ba9e8d2022b2176981709a8b8d55b74694b48d149ff8f92d80c5dd86eeb0befc18b03a5776daa9cc4e22b0cbb4f3c1dfe7beddb272d788afddc1f4aebc43deb22df5cba26a812e1e55afcf781030f566fe6a604cf04a2a160000000000079a1000000000004049a8f9d249c088242fcd6aadc6e2b6e28ab2d9aae1dc7e9653340f74f434b95742ba9d9935989039f39a40b98ffe7bfb3af27685e769053030bd2693bb7442a2010020f56b05bab4c88d4583486d0e1953c9931ea97ff955283b110f06b461260498030000052cddf6f22c3bd73eeee8498306e265435afff690511c9597647d3c7192a5182f21d7979ca27a63752dbd41faaf80bb8112e1eeb53246b6c8ccbd991fbb2cab464d530fc8942fcfc5f486c0fb6c114d6a610b8726739ac4202ff622db19c8aa25042f27f55db37cb1664527db9221bb85d83caa2ad499c544c9703797f0d7984045a46421d0ac6ee83849dc54043a8406658d8ae70e7945eda150844ecef774f4970c3719227e3fecb1a86c7e3e1b7895fbe0414af439954a899d1697ab17ddda09d34c4280080066c9b3a8fb6c0cc8459f16cd144fb69ccdf4a045ec6b33424f9b66dab1554a72c884d761e96439b034d03ed4bfe0282b8a0278f26f8da38f0c79252b2bd704cc65f5a3103a4b6790d3cd9e456981b80308bc429daa61fee47674038a099f0b9e67c918ea21744f40b387a36e123c8953ba67e9a9394f0af76f72d55fbb5c7a5a1d2a8f215a1caa838c0a4d08e01fd09a6bafcb4bfbf52acd0eae59236a0dcdf97aa70c8772820b076b1890a4fbae2bdd1db23d32558cf66e185e9e391d8637cd20b9f8812283dd39f3873248d3fa6a5d5bbe7b867f3f74c337c5cbb661a6a7e2c464951545533b8590af4e6762232971d5687dbc1e76b2403501cab369fd874940a2696084aaefbb247a7b7d7931b8bb6cecee6d95955a45dc98e8067939a20c012bdba5b22b6ccdef81cfde17b1b15dcdbcdedd38993cfb7edcb6dc58dbfd578b39681a98095abc9b274f1f6e1ab5153e2a290162dd03289bbea92a5fa918b328d44f71d2d480860cb92b299906d0a627d861c7b8e28943e05067b2231679f584b6f69aaaa47e252717e0104154cc92698e9e1faa7298b2405ee96c29c936faee0c63b61ed1544492fc254cbf3b782b507c36dfe2a31eb03c8377dcca930aad4cb1736ab96daa59d55c036f6d871ec692107042bc03ef8b48b18771fa8ef5ca743e0bd9093f88a9775b9e2dc5e61766fe1b0cfadab0ecc8376b39a5bbe08a4d04b0ca3d2fb8aec44e981178179f4866dc9ffad7082f53e7fb438274cfe262510f96ee264f7dfa6d6b9af53b7c2e2bc852254d23ecf1d149df00d4bd9e566931c5e13bb8cca49a91a05cf743f8960ce004bb5e477709b0121d3c33200512c64169d713133374d42ace9fdb7b1cd4fa5902a08c84f599b61c44f7a6ebe8273277f1c561d701f199a95419fd564d85d517893b95180000bc672bead802abb24d9afc6d24ddae6aef0f377a91e746eeda7fd082f0ae3527e78c93cc21ac3ecf4c1e1a5fc2196d57f8d8e070738e2634c0259d5a36e621844dd6d265b5c5e9c814caed59899d4b118999f226f26f61aea2c34ecafcc287197a8d43873614a61aaf5c7bcc3ee9670f1cb1247165eea85452d582856027543bf0a71687050eabc270ffb13e7f0282e7ef89db3734937a5ef4ed99d2461f43a548fde2fc933bfc8effc2a035551cf430ba61f962c99c7ce060feebb59f52c1c638b7c1e3a2343af27b9bc1b42ac608f34f0df3d8159ea7ae27485d3f125aa350707aaeb9b3499601c63d5b6407cb17f5a87ab4052e94bfa28c9cfc6c9baaf42c0d8be087ac5656eface2ad36acc7e0239327f7dbf514d22660378fdd459f95955072f48ab393608333d1b1cad6f564e73515321cf05b8895b8abaf122bd321acddcd1a2711165cea3efbb16e3c52ee5bae08ecdcbdf2267d6242ad7136a255063d210af43cd10adb4ab41e1dfc18106a19a88aa2be9c535fb27c803db0db83272c833244c1cc0fd0e604085ddb5a88c951687c351152b4330f4d0f23deec6492e8b02c150c8991bc02197767bb1c352e966e71fed45fd00131703d0adcbe224db01c70ab12a2544bb58ddcbbe78220b202002058158b9549e03de53e886b4ba6b399a39d77c56feb0a287c8cd77a9048707560000001bc74e13bf54c59477f22da7919fc1b79e692ef004f4cdb31b19f303ffad435d7564c46821e4fc8e538acdc2a56f8751f1d928a616bba217c133d97a497ba8681ac78a2bfae7bdb710bf39b0522b3da3d6e189ebdd2d64b74b9483b454d54170507362c08c9b9c43e0195807a79a68f400c31b91e9e7c226f96570d7ec37e070b4c2cead4bef050226900cd90aa558c20bacd80a3d9d9fdaf113c6396fe08f65b9ceb5ac449e74054b057933c8df561b33302eeba01c7c443321e983b298ce2326a7d6518423d2b4b7a2c5cacb5fd57c73179bada78585ce2a5ab9af8820960ae7b60effeeae4a92f4e70279806065b2c8211d1d151999bddb48d6b35cb5047c378c0efcf028545dcf0541764f8b455359c14d22bd317b41b12981d086e2b5e52f54cbe56f9ffc761e3cac4741a0db4142dd2c2bcaf4046dac0677224247d2ca03a61d72c21dc469df9533d4534bbe1a8bd81c6978b427e39804214e7717d0ba37c86755f1884cf1e5e567e8aa524766258c70489b043fbab20c3d76c04b71a6447cbbf4df822169ba984a4ed228a8572bb2c3119c03d069cd29b5336dc2c3386bc2529496680bef70fba12b9990b14b86f043f4a3a2430611f2b07c93c58a83dab1f394396f3c00f72e8f5cd670000000000079a100000000000408c40028fa4b1d66db630ea404ebc0720c5f29687f32fd73046587d31bd90e2064a5a38f70cee8113aa06b3e76aa39846f2713bdfe5081ff4c14295ce14f14f12010020574130e84b25fa4bc9c6901204668202fbcf65e4eb9c4a2f994ed7a0e98cd8130000052c377612c0b21c7efaf751ea26258efe3e3f1d40af28e178a95e099a12d426a1653b4272d883bce709bce08e3a12c8a14a4b01a34a607b1dcbaa4d965b44f933ea12b58d6e2ff6ffda818bc4fd5e2d522e5eb835f72566fb49f977710d36168df9cf5749fdfb64c368c0d8b5423f1255c6b17b62198bcaf0be2747a55eb7b2c55dc3150843940ba2f9d3ba0a2f3d5bbb5ae53b7bbf1c2a44d243af2bc8d8ed46b8d169f18bb9e1f019a53414e835bf4b19e22e1503b7ef6f5e7cb5d6fa763345cef92bc341d3679a01e8d0e62834b0e6e09f7933f9a11847c62f0f63ef14e7c1909f3b84dcf5daeb5f2a6b3d36370e305a1535e7c95aeffd1cc6f7f0390e245c535f40797f57632b53a0f3891d18ce435a152a1a371e3381d802b1a0c23fba7aa58f9b5958a3c64ccce7a5370c29fe1c387dd8fca87ff984f51b8757629be259a9fa7312b54348cb50909d3fff238e5c42172c0955b678466c7b402805a837b1bf99c70b069942b18b0fd4e687d43a59a9d8e5358fe0e7adeec4448985500db158e216e02892339c411dff1b6d5e2ec196fbee752029d438f731096fe895c0875a891efa554c9af61f95a47072f3077703cca9d184e8bf6a478404ac08fa6d256c109a24ba0e8344e48ee7c7929b21530a2c699ac92278c81ba6f47f72578a4ea1b1d4f08d63d34c30fe6b0409611dd089ad9148026440fef2f1f76af4cb1401db6369236a48772190ffe6f7187a2248392036fcbd4f9088fd17faf351e6f7a13c9366caf4aed84bd73ce75c0caa1a6f419ab065db9270709b4517aff92f69589f1ac398cdd6e62396a1719099c811f4d02ad4fb18351bb000cecf8a75522ed9d6b8f8a8d98f33627cae46305a643e39af1a6f0c73221303db61779d56710431b9f6c464dab374e4ebe5e0bc59fe555dea8d4b029abe85fbf3865a24030be5564dbf9d14cf982ccad7331104d711b98f46625228511e3051eae43e4b5b21b328ab0ff4415be6d66ae318276928fefe9de24f26fd356429c1fa53a2eec48b4e26e78afba33d9c645be55ac1860bf281500143bcf61a00641e44bff8b47b0b765df5df3306b5604abf7dc3e7df7a336b60c7c5a21bd85a7deedd4d321df64491def54faa2b21c267d6190dabfd75df70809702fadb3ac368e3d45ac0184a2c35ccc1bc4dcf4dc32d70acba70ccb3ee1a70fe5c1b2d92d7474ca68ca29887db93f9adbb40006c1ba4fc4eac6b596854b031efc1cbb8cb1ccc40ecab52b48946bd745e451f3b8f2a59660e40487ee7df6c8987fa6331b8f3851df05a9013914ae5c0dc523f1e70f06371fcc1e458f6a33ce6b4668bb08f287ed63e68b4794592bcda3140685582248923e3faae965eb820c3f05d31c0058fea548d5800783835e1369b51c18d0dc872eadc7109e67b6314bf454468a0d7672d0ed40da41a5eeed7ff15ba6ad5321e57ae36953fc96f6c79c9f51d17c682acd5f998408adc7e553360719a018af88e4d88a9723732dd72e1e920d2449fe0dcd042d64a146c7d419c591d53af21c7906d42af553a4dac76ee1ac492d0ef4ba6667d5a033c725a0eaf580c2d17f677c7d58a50030a2465e16dcb5155323ae5e36012ce20b20ab1ad188cc1181b5e7af0f8a9b87bd4bdb2142f7a0825450f65e7dc45e1c603c5c08a32c691205efd2b0907c3ad6482e4ce1871768269f278b64a0a2364ca71cbb19868cbf38b43bd06e28d4315a95868550cffadf5843b2415ab9f9e115c52ebf2a7116ed811845991070d142006d132c3723c7a9d158afd0aa711b2e2d8fa1b4603610d25b22b17164e7a699bfbc7d8f9780375280043250d942f9d2cff2e59969ac0aa5d079bd15b50c6aa2cc08436200200200ffee81aa1fcff25358a0641efe4a618d27e751ac0cf3babf698acdde46a496a000001bcf3e90175dc2f81c6368b053b4a1f518f2a5ecfbe2aafd56d69af809f8ba0ade441f665f389e6e491c0bca8a9f065ee18604904a676d49f0e16efb25db7a4d465bde948f49c95bfda1a84bc5baacb066e30ee7848b1bc90391c4b3bc630f2e983e2573aabf5fa7c371b69d6ed523939ffcb278ff1006a173ccc54d6ab08eabb966bde88c2c8b3203d734cec779b3a7684a6231ca6880fdf0c2cf3199c5664ef9c4bf9b448f039735f4a6921acebb2b4b2193fdcf310c2fbe112b57a4d346ac20e3c1e6337ddfd77095a21071ca986b5f1dea6ed7ab0d9f86a42bb47a09bccf523172cadf72d7ddc625025e4ef058fe31915ce4b978470d7c40f9e5db35d7c383bf1aa888dd21efe5b1b4ccb30d16842cc8d10f3b2e5c67822c2d894649d4519cb525046383f3bee20f61ff0c0be49229c35a36982c466dd2f8bc9253ea6b48729da0c2f6914b1430e77f1efbca5224071836db63468b22780b9388b77c24e521f274e008c1f479b193c843e1f9759a23bab6dd7568116ec895e3e752942cca5997e002a161f500f973595b102e5e25e015a82ad389aed933ff19eac093f03261e2694cc378db8a96020f424459b5db5bb39328cd7b5a3643ba1d1650859e41d3ec7c6e9b7230de8a02b406d680000000000079a1000000000004058b74ab13ed9544261322f04868931c681ca5c1406e1d1640daab0e5f2b7f5ea25aae0de592f8989d10c0f2e9372348da9ca8fe1fed0ff55c7d8775daefd45280100201ca38ca178f9e879199510045577e8eddc6a14b92eee5d7bff3faf04f3b249510000052cfe7be553b8b77becb7bbe8ff1c9dc0b5a3895dac90a94acb8a32d95d9cd475f5fd3484cf924b06c4113068dd302bde2d3596f9917e1836d8ff84b5de14e720686ef4cbcaa4546f51467b9ef9089d44e4180a38afcaeea3d2d28dae25d39993e0551d78f96cfeff82c3e75f03b70213b8ec5af1af92b8a8e664ec1fde4cc251dba98725e4e529a239df6c64b0aecfb8f3c9fcade7bb0cc1cd6d74fe3d11e8bb64e5e13a692f9647062d6efe4ef1583fdc4fb39af508fb6b65ff728a4da3811a3730f711d71030caa43328af77f90200398b0e46bf5a3f6f7a8e1361046d7d62bccc8ab483aab6d126e6ccd45242afc410b89a0e6b971edeacdefe6a97a606d5ae87cbafd3d063d5fe98051acf5dd5797a07c64a63467ac97fc517c2515a1e74458d07680d6b35e75ee7d5ad896f657944fb808c4c2712da20cb4e834327599fca7e1f908855591c997b1b80b9bca521702e3a92fe47a0b60f625a183c69aad159ca0da4325c33e7f6608b1a976003ba3c24b45015440c125c03c629919063830c6eb50f3d0e8832d1e5f825c0b37805e842b7ada6d34bf4454ca7825c2daf51bb0788e1a6cf57d37cc0e5c15291271a5a1980164c516bcdc8d07a97e9d549e668ca9bf9bfe79aa0583984bbab108eb4308ca163c72dbb00a5b11fe4519f8acb91def0873625ef129e02b99754f62be66e6ee0e4d759e1cdf0665f517d9a1ab77b9e83bd94360073f4bb22ad9de9b784bb2b76130c0a01719eaabc2a057a6fb30c865c82d4a71ed45a3a5f20254c62c92a2eb4dd5f3e00c609009f8cce8943e4692ad7a6bf3fbaed01f73b362010ffa0195909e5ca0b701d2641db549c1ce8456077bf9da3d7cf896e90903d3431a7b6adacbfd911b60003a038ad784a8a24d6c438bb18e1685f1ba70d1e77cdca777558f6d3da2e267c7e6b9a60f87721480017911e63cbd89ad285aff949ea773075a9d61e5ded14b7b98b623227100ae73c8bfd75077789f839a22d51413ee1debe669f45059f6809fc3921efd7a1c6b10659b7afd748ddd66d57c37276cc97132717862b4a4e352d05d06495956045e1ca0b8d5ceb8f39d8a96b86bf90c0b2b80f42096ed1a53031997c6e03b1c0d142cfe6f1e14c139df43bdf5c079135c6f4635bb9e38621dc055c2af5fe6b0c84b1af5debf8e9fa23b5c360d4432b70e2cf51700032dc277514f7e940cd0f297a94b50e12aea37a4a3eb6539fddb2c87c7a3c0d992995f216504bbdfdddf98939cf24eeaf77084457520ce5ab0c7d5b923fbedec5a4823e9460fadc29732c94258a237b3251270276909078b1c09240c89a0c5040156568f832afaa45d0f88d6835c15876d3a21264bb459a3bccd1c4c4f47d53c99428d4a1f1f3f58f9d2c30494819ed92bea1bd0e2929ea11ab8c0a46ddf294530a122718696ab588f8b1e229cb1336e543cf398f9967ec93d757368f871cd17fe0fcaa0feb87be4cf06de6d1f752c0bff686ff2bdd835d9f54db9171e07a33205f1a9c91e0e5a2818a1befd3be5ec1474c1b5fd01ab0da415e5f27f09a78baef8665bfdcd8f2596eb1a0bc3e91de1a157963b0a740ca8986a0b2651770b0cace9ead5914c5f02e9810b003329bf7a7a7ff4391defa8da08b1957e6075e424b8c5b834c6efb83bc9ce766039a02a27894d5877acce8c97e3a6638870029be5ba5d658c047cfd52849b82a0623dd59423a25fb56f44bf6de1de7f62289979be9c698cc6304483db8ddbbd7d84a6876127a49c9c20f4ebe84b34cee2b7f8774a4e5e69eeeb2465bfa5dd951a3dfba3f83c391523f9e3a3af9395b2d2269a58003bee6b9d28ab2a65764bdc1e600eb2a0f1e4ea0e7343e5cfe7bc70f310200201ef101e9295cc1822301d65040b14ee56ac25fda9f20b4e26d9fed06fbbb6446000001bc7c5e9b34507cc71366259d0d7600577a5097399eded9be3b19661616b2a75e6468fd66fa10d1f3e77fea21aaabd046a62f098eb917a365aed509a17208f99fadfb1300dec64e77a34da9b09dbab6c6c3cb9aa24bd2455d0b93cae49fa608534f8888c13b803db93e60cc81141818dfb1408a31b4d6ff648c44c243f998f661306bb376f1e8d0ef5fe9c2e96de8963244437aeec137d88afb94b8b84cf5f248b5b35ad3ae98d3e6d33a777453a0cbdd83adb7051651b04e1b6e5b602030160cbb4ee6e5eb454f36c4d8baff6d84365618a1f2bbdabca9fc4fdf90d1c272b796b1b9a5c632d668b946ed44062ff1e47333b375c5aca8f10e3927fb9e5f14f81fdf996664a99b17b174eff89608caf78afb5e259c77a60172f6c9b5f1bc26c792848223dbe1038164995f48367ab54db6acc860e31ac54fc4c0853c567ea909ae4aef245bd80fa35fbc9170a3750b5bd7ad5cee84bd8861ddfbbf2b732754421d7e5c2fe1b220168397aca8345dc8ad391ae2a56e5079da231b7a201fbb23e11beb5ed253348c59c4a356368a3cd543fc07d78c66b989ca8db76252f122d444045b0e6ca5e45ba6e451a13d07e8a0a137b5ff76ab99ea3743ad2aec28f65d398c614828073c00a94d0d012aac900000000000079a10000000000040d846fb46ebcd7404b019ffce144f3a54a7e2c7688a1b95b5d83276af90214ebf85180733a03e357cf46be3dc82a17c7875984076195e1d20461d34f4621623bc010020059d5a42e470acf7721f33be58cc128e914fd8e23b915e0660cc7d95a7cf755a0000052c9ee27f8fefa0be5a41a527e0993030cab2f3773abc5af8f56ba87062cf008c69ec5d13a98970ad06d353732ca70244690da904b139af7950e8c3d1b876f578cc7897de91d894712e6cf8287f90e4d4319a4f2aef3ce3e28062b7232d47def568d776ab62b14fd82c51f2f930f46338e6038eaf950aa4071bd57abbd0e76d0081154a43123f04fd0ad5d3375e04856f16c0c60780ef8181e9c2891b05c3019b756280e287360d4bb443e1eb38b9e1cddf6100c9ef3f568cd4fbc3a1581975720961b544b3f03d1ed71574107a76e13809002c2a0a613550538ff66cab35f267871870b2afdbd091fd9bf8f4efe68d0ae7d2e343b42bc5da2f8ab4c2b828bef0b19e9136d6a77828f4d38bacb35c1a8a7a40d9527c14df7ba9d7e52057c48d5f3160688e735e49ccbbe257011556b2845b6d555612382657365d1cc32165fa428617f5d6f8ef39ba79732d810e688f8d982ff2f3550edce8c71e6fb87033ad8e5c1fe65beb2d9ac3d41872fc6aa799c4c805932e2b2a81a15d582abdcbfaeb1c9b059f4f5912f10cd745576c8020b9ee4dc6bce95e6b9ebbc3c7bebfa14a0d301dc515f05f0da4705df99563905f8615b0f236c82fab1dc7cedad9744726d806cf7b88dd505a6a902ebc5fb82f91a462a81c6b5ea74dfe4bdb37dd766a6f9d4cb060f1e36d27c4af8566ddc5893b6e3bccaf6788bf0ae3658c87347d024a35ae3543dcd6d634ba7bb736428313b0fd6ab3cb0521e578a11eb54a7e3ba4e01ecd6f54a730ff9ca960463675475bfa9d67255e16f0c69a9ea44b4f2b7b00d746b14c1767056ae6a430c39559160f9e642b0a835ef5440504b40150d290f62f5d0d6a9cbb3835d6f2b2938e7cc99bdc61d901186a6cafed1de740043c0b433e6888edd9a50a9035612f1a515324244223b8ec51144a01e9e83643a81241dd4924c4b0894714f1114f194e6a573018d7a312021d72626662be3f60e8a15d376dcf5835c4ca6da3b347b5bed66f93c682d989d11ee6dcb8062501ae6f5a9272388a6da3be70dbfe9f206f2ec3b824796f8812df350d7301e5ef568a81d8dabbe2c8c5e2cbaec6b374c5bfd3f27a63e47ae160804559c97076e3cca565722700f60de2285668cdecd80165d5a40acc68a6625866454cb35c4f135faf0d7d7b556a46880595ca6d774a4c1f682b8f9ae9abdffa9d4ba985829026402f60d88dd9616da17cae2617d376f13dd9cbb62bf2806dfe8d458496111d5c52490865c500a82ce5bbaf115575cd8cac7eaf3a6c096ca2cd89d1fe0d35e40cbc42e4bbd164c869a3bfae176f2a1c53167aa371b4a6502c0b3fd8d71c90772352a9472f82f6a24881007ddadd37e4454725d01c30f868beb03fcfb5d85eb58ed414c74997433dcaa55e3d70fd4dd836d20350b5192fad87a7dbb4e0a22acde420fd4ee1fce0d73113bbc543f8846f5cfe314bcb21d582bf90e58dd3d5846b7a3b6050c64c23346de26759ad14b32d096f17754faa42c676b7909b3ff53ebc67201af81c0f85828147a570087ee45430d617a3f7a8d93fb1cd67060523d688f324a8c5dda98730e3f53bb002f241b3eba990789aec71ba29e5d8494dcb1a136767f9bf2c535e53ab067e2dede18b829655b5efc1c0ccbf62c160e51f1e6b5e0aa613f81231eb3ab38a446706ceebfa841adf12ebdfa8d048a2f56a64390bf1ecbe61433278be542f484b8a81fae840b6f4da0233687735c9b3075b3c8c39404ed17a2d0fb28a0c6464f86a5d16eec21846e9716a9488c3d55a3e2cb7c1fec07556730aa41dff37e1e79120431aef6d49de507f8680876797bf785df12aa73dbe38e4d7949a9ab4aba65df45cea68fec93951e046d441020020c8607328a81a9d7bb1e5db4a4826e8752061c534c361dba0c31c11785befbd0a000001bc1bccb4aa658ae89f71a4f175c4dd9f1e66aaef2848d986fdf00195983584d0d22a48d6d5156f4e5343a5865f31d38c67c01f6cc9747e391c4287ad23820d660ab2233ba8cdd8909c72f83a76a501f039a0befc0e7a1f6800c36fbc94748e3d07857cc3e82ef5b2178f8da68ee4f5308a453cdaa748ecd6844e9809fadd87e5ebb2a43335669535faaf923abeb6c9eacc76f1f6b3a6bcfe85dba8e0b1c6b171ee6cef75b1f9ec8f3561f803972cfd49d10060e8eab463c16c2e6f9c59205a8fcbbbdb67a107935d4b8221730df7c6d56abd509fb10684987b7139931d7b0f408ef9e447f1a796c5aefe5c038e861b723c88d4ad433865b3718ecbd7058a0c0d0014ea28ab4caa1d847087aceeff5a202898733850efe457f84843bab082e4aa98365b99c9c20ed172d5d9d151e5120780887f113c41839cc7503de3021d7eb38eddcafcce5980be46de2ec6db88f534b36cd156a1054075a26bb4c4acd6a5faf0840ad78c0fe20c61c313445e094016627419e5784533154eeaace4d5fe2fafdc1d066ee5556952efec5a54a2febfebdd6a129b97a35d88efac3c73d7b7502f60dd6c868c1d6933dbf1bfce868afe0bdaadd68d9bab795bcbce363c496c4ab6eb6674f4dca35182b19afe26990000000000079a10000000000040fcaca1a3c1af3cdb3eec162e844b9ce56b5697b8afb06acfcb7efee6eca78c24fb6f93aba6aae32dd81dde087d956c7aa089b54e0acd6c220aaed93246e2d41601002092a078aa939f77323c998431fe96cc3df8149f137339846847bb247bdabae5250000052cdcabe2bd4e7d807350f0cac6c9bacf04289605234cf9e6787eb75e3b0f0f40e48ba52ee6b4dd5025db6d649a320f0bdd9e4a77e298e0df6e4113ac897fb01a17f8f55c528c0fdb1d09a40284543ec05b03f41aeb2e5db877ac845253ccfb32823faead7e6e46b97330a3a20e4af41630d583ccefacad4a295b17e03ee0ccf71756ed9999b6fc350b4be3d3735288a794b50ab7084c51b2671ba2c8f23bd0653cf3d0b921bc04945828baf551a6933a22b0bf5ea805dceb4bbd2085a573d4e421a39534f3c3d7dab873bca8c9e89e72c1bcf411e5eb7fde1d5e70a2c37ffde647647aab425f6db0a3f1ecd0581928149cfdb09dedc84215ccb7e85166c1cf06a7307d08dfd9781b334b0cade69d326049ffa7e8720acd1c14d67f89941e4868056618c05771152a8c97c2973a419d1b9445be984a5b5c5ed70a5a51028dab784de8ef317f52e13eb66f52c53be37997b7a7028e6d74096ebaba29c114972ab0bb1951d0b693f5469dce77d01015cb939e7ac0de7c300ae1dd76a909ec238be0cb42bb3f63fba188686c8c400e2050495b072d4c28376fe206a792718475a2f166fa817068db7bd636cb8e30227d7744b27aac0abdda5961a175ef5126fd7d8cad9888e5f8f9b408aed73e75d05205f51051a99a143160cc41fb5f1569224226f7681100019e606c232c2d488fe07742efd391889d66acd88686e50a989b6082d91b83272d5cc02fc187207f4558028f61fb86fd1e42c1816d7dd1bdb254c3c39c854ad3d876d290536fdcba32d1b94c9d711df642792269ab1f471607f8140ee0ce5d620884560bfb0f6e9a50fcfcd7701d55c59e54cce49925ba4de2f755e92d670a0d4af9ef0163a24d71313cf2dae61ff74be2ada5e85ed3922e8d3a561903c5f70493583c54ad5c14925fdba4134602db89d0ed2cae437c049685a8ffadf7b5c0530949d589cad9cdf30e458e8931d96b70d26b063bb47edb0cd53c71ca52e5e0045d2b7c80512b5f00cc694af6876eee1a3d67f6f0866067ef660bbc4bb0ed6ae11290891e890d6823b51f6157616aa2551bb07bb80045759e5ebe762d35e26320b8aa4dc3e807601eab4a7886bacc1821994a42731cc0a8c8c08f7aaf20be6762a2503333e1809c66ea8ba197ff04ea45e09d145b01a4998cc5e1de2b6b4597a7f269f375c0ab551abddb5b05c9a80d6966ae55237762a4453c7995934b01ce70c38446544bfd09420f0ee8cb1fa241f4714dcead443a3b059c417ccffb47715c87bb309db367c40994afc6db24c80f986df3fb2e53240df2d80d8a3616d9d31d963fdd5d70e4881c9f29cb5f854388614974a1184b8f9fac1e605075197f403a2ebdfdbe3df0f42b2342b7f8c851630bca602bfe216a23df4ea7e040cecb52bbcfd06e0b7fedc73faab43e7bbbc5423746489a7008502c505b006adef0ac8e9f6f2f20ba8f64f7c172d72d5dbdb343e3df6d1d77dd4a9624e8d3ccba9ac701266f2760cde228b4a3ed2f85e61cb43f7831995a42670aecc254efdccdffa948ad3822fd93c84120287f72a81f4c34d48eab916ba58dc083df2c97d2edfdba35faa153f6578a9370fb8d5a740522970043a3b37172191dd27ca6c3de77e866fec0616866c3bbe66d9bc310a83607f1341416ffa26ed2ee84f02d66419cd3d7e1e2801441018b76005670428a2c7ca229413de5ae0d3bc6dc2457c58f97b0cb0159f36724b4be00d02222e5df9cf23c9fce75b8cba997eb67b6ca8e374ab06d50af3dc7c33d097e33d3cdb23edc90962d8a74eb01278c0073d01a79a17090d5caf015c1044733b0f65035621199dcafb61a366038d5edcb3af3b728daff1e50d256dd46ad3ac47cccad2e020020f863ecd6e935224e60d71b6d08a34608e42d200b3f2e0067af134732b7446076000001bc094c2ee26e7883cf20c02d5b74644084a9f2de67d8f1afa255285d7ef246612804dbb1757cd3373a73128a928ed751be9077e7be311d4f4cdcbde0d3b41fc53478b6c35f404f781c46151dcaa3c3f75f9c98f7dd9a203f760629fdb13ebbcb20bcf5c2db7fac985c95d74c01ac913c88d747a136cabfa707bbe8aa0ccb5e60618d4d7f45f74e76f06cb376c2a9fbe36e0c8dd2e193b1da2e0a8fe8467a063e83dbfab28ea1d870ea27f7b6434b889bec6b1dea2e2914639f242f9962fd0ef742bfedf6b3da42ae5e630ed708d3a2b9230caafd9d1c06dae6cc15d23912dd6f697df3806fa6b497ad667dd7db08bd6db7f3beb4268c1d4a321dca65d2a7c249c8c498e3210be12c3be798642fc60dbde95f43646195bc8d79f12ba68c22f23b07db0189c7f8a17cc2d036abbcb433505c7050097a8fadeab511b6c7799debffe0c516d09f309cc9072dc45b688195e6a6ea6b6e965ff3c1633177f90cebf779767a161b567b7883c96cee38b923c06209bda927bbd3d79510bcc8e6382054fbea51d45a65ecb2c731ec330d49bc0a7ce14cbd6528d1a88e06e96b5e25ab6f5637230f93431eaee6b3a7e2c1f4aeebe0b5dd852768c12c41de22daaf8b749ed4be3dc6971bbfaed0a8897ce7080000000000079a100000000000401f7a428dfbf3144ccdfda69267ad75716d2b44c02fb9d1676448479a4846140bb0146ea24026bb9473d32d36821c05bf3700232a501c992e73995b462332c8dd010020d7deed37c09065457cb58346208e6f91e8f1af4cc60401ae8121ba97ab5a623e0000052cea5e27b4b960d3d5ebc11489c0c85f2716b9f0e85da2a2089fd40579eec138be3b7d16a3f99308a41c02577522d32f1b032080f45c70ab953c5c6492ba06f552d995b8c2bae78b1fc2c7c04ddbfcab911bdaf2be74a78a458fa2cc9cd8676ca49de6610b430f891708c75b54f133132c7b5c117301e09e78d095daa4087833dd1920c12babd54256178e14a00e6f4616f53d80ecb2b68c7683dd8448c7fd25fcf0750dd4bdcdb570b091a7b62c5ec906ec99ed86faf665ba03472473f574fdb011ee3a15a7a3f6bcc9924b2ad0ace9d0469bda0532aec27e95bfc99b1132c4f38c6a5ac8e04c59d41a3a18fef3a9cebe625f0ac75b3e2c56e2f42044751230a775f0cab2cac27a5e90407089170020b82975afb4df6ed43c24a9798dba886405d457ff13dd9303152c19c7882a7a0e27c8b6cf63a5cdb3682b267b27661704687480e3b621f7b5a893e7fb1450d74bd98b2122c475de54acf4c9d7894106f0dd0afe8b3f9123d0e4edd797d52de4d117ca526b18034e8a09d35289d1b03b4893d56301c4276ff2d5fae1fad23c04b4a21b009ae5bbffc8df440fdb7533ea54ea5eceabdd492cb0700dad4a10b2539de965de89af5cffc967579f2c577326d7f2c2754466ff31bda460420a8784b0c7c98d58918ee5be4ceb7556d6ca4064483aed3075d930079510f11dbe4808cbd75dde8bf51183868b0742d34c8212b159de7a2b138936e69f1f9400d46761168d0204392dae7e3ff20338b4708f2a5c315b5b4805908cc9c5debd8127c820551adb66f491d8dc63fde1fbfec69a4717858d526e9d5cfcb855e44fbb362db8550dc4ee53a2b874b5ee3f317e54f4172ce6465b7accdbd41ac3a2e55de2c60192df1160ac5ff41a994846a6e802f8c2fce0d3a044c7399ad099c5cfedc7abbfefd23cfe254b8ca94eaec6df1782459afb050d1a55359c298ec4aec4853cbbb622bafad650188b8bce91db0178dab5e67cb8018840aa0704ee1831b5f7457638240dca2607681629a248ce99f74f67ba5cc33d3cb2751cc4e669f1f690a521ab534d46106b04cd198e1885a0cd34ec5ba1651edd7c11bf4190047432f8e6c3519fbc2ba36b76ec460d8e2bf2160a8ddfdad50b99a113ebb15ac2da2a457eeb4621941db0e213a22611306a0bf603ba54c7c921dd62caa1b0ec5b82475239a995112057060100e4db630a5d6f7c6ec7a018595d2ab94e4334e60d3e14bcbb0708cf74f6fb000afbc19f8dc9544a61851dc120c3becbce8cb7120c85df8381cb0060e564fc55ec259a624d3d3fcc1b92d21cc542684313b4d76187a688a872233b07ff3d4ab02254a5cdb8ef0eaf3519cabe27cd2f6f53923d993a4fab22a966a9aa129e753f6ab985c16f8dff1fb6cf1e48f1ec74aff6c716334e47d19eb19f89ab7b690e246ffa68798fa3c2eea07b7cce6f3099e85d749a545fd71afad1dc290508f674e67ea0edd404075f858f4103d58bf5506d5a9eb8aee604864b1cbf3ff631be6c7198155bddcbbb2d1f52606b9e4ef8b81e7af3e44ae885621b3efc09e8be69ff1dbd324dbba19464d13580bae60fa101647d344ef01f6ac9c0ff53ca627a7ca7a1ac675bd2acb8f88db8a97dc90cde20cb85604533a765072570810b240da66521eac041d1f0f0aecd14cbb673bdd50a62e93006642f86535e52fa66ebe9db7ebb8c62edebdb29e31fb7e5463974e9db0161c1e0320fecdc61e7cdf2cc61ce528d415b8d7c17e54793207c7bb3a6199e1f6a91876df97f579b92c1af328f1a6a4c225fe6d998b724c7ce893d3ac61090096477af1a3a3c5aec411157d1188dded4541f530005a242687efd563e4cd9ca20fed31e11476166c064a5020020992125dca72a63037f2616cd70a9badf696d071b2d34dbc0c2f9b936d077bf4e000001bc12e10c10e15179725b0c02720ac5c377b1842ecde1db5c49552ee8f04bec2b46c8a722c80bb500024245e884a5c147e26d9eb89d528996224e3666769174d58e96536e7ea323c02e6037a03cb8b776a97e680d821e1f8efedadc818a60a2fdbbe380d6cda4233fe942af5355cf02c28e50967ead53aa515efec0175a4ed3abd1d05d2678f36065c996bac4b36e8a5e5dfd0ac366a5a4078e4a1934daaef40ed3d5a214b05f56842e569b98da4812ee93403924ee530a347c8f4aeefeef2a165fe80f82f9d94037b0c7f74fb79971e0b85c5cf952f0adcbb6179d37528bbb39526bc84ab2a8fc6722b98d5a85941d6eca6a4bb4034d4f954c8531a9bce49b1708b5d6bfb8d07441d69fbf1d616742d07100e63360e915b61d329e7c36d7f8cb83fbeabe23f57eb806d30b399880e7f61b463a2dcf69ba75f1f596fd99b654337ee1c36371be0ca6375bb135ed962b90c8ee2b58917c398c20f99a3068aa69eebf456d09abb9718938aa9c1a70f2c94d632bdf0519de74cc0184b971d2db0ee13a3f93ff56614112774b532b7a67dfcb06546cf04f70748046f43ff322143d823b5ee454ee7cdd4a0249795c3f3d37a85875c46bb81500870c4da397c678cee9345bcd8c6fbdb891eeb9a418400000000000079a10000000000040b0dd80aa8c46850993f642b21bc5ce442a8767980d75b81ed5dd4acc649a90677b6bd124c8071ee49b2f11e688bfadffc2583d32e6aaf3f89fba204a006b67f3010020ec1afbd3d01e6511af427ffb123ccc1451337df048ee85e80789bf35f042e2470000052c4f2b3e45d7d12193f3178f7492ac8c49eb412604b280824489f27fa55f5025e62385c95683958cdcc4537dd95dcb0c0dad76310801fe772f3a5d0fe721e33e7f3f01a583e5bfe067b1ecbe99f75a0ff787f06fd7829663889f9194ad66e0c79dfbf2c6b50256abdbaac029edc32a2da5aefb8a19f38cfc5f72f0cb806d4c64e2b8dc6ea40822e0fe6f8b59a5ad861fc1b773daf3e132f322a7990b5bf4e56bb1094e9a9921a7c1f1e43b7f8ec452031fd84b9d6e2e0fd9badd604adefefade2dd157d4f60cd8563dc262e9ce0066150e40b21c280f8a6379ab05a3a37106485e91d9ef1c12238177eb840e6a7797598755df8ace3f4841c6a46605f616173e932ab4dbcfe2cf5589f8418522aaacd399fd8c9e84d80aff2031d7a7b4f0cc0b7ad4b0a1b58a2b47b6d2eb23152662cb1e4d94ee0faefccfe26e4ca5749a471d63804e12f59ef8dcc643ea1531b40288a05d78033c9d2e07a95f959ba6ab6d48d6be1fef31705de7f6378776cfc446b70816da3458437ad14d44bc75de9c6d21c72cc26c794b4966868b2294933330bc5255d6a50b606a26c5fa7d707b589e82d43b7be0e20442a2cd0dfdbbd4cbda390878daac47cebcfd03c90a984b385275093c4248410a7a36e5cc05da38eadd4223c645fc9f2e5cc6757ffa84f7ee45bbd4cebf0506bcc152ee94f6764c45460b6a8532e45d247fe2d840b21e73f8f02d772e02c02b75e786499e9a6c268c3b1ad7bd598a79e4ac6bcc9e2eb0ea1ebbb5541dd81762f90c5684abae5ce98efea9b4b62f2baae63c773b9400670bbf536c4460af8681c9be1a0bfae4b5cf06a97753193678c5bd794272f5eae2eda342a7d6324e5d3a78726dbbb69c759192a99df31a34099e47c96b0ad4558368b0f539d94c9432d17993596ac01ae731d190fc472ab348045884e5347d0028fd4d476baf385d7ce60b4477cfedea2f66263035ade0737f28a5204832f7a6d5c8252c08db4e48274ff454c8081211bea11a9c67a68897a7bb005f3f052fad33ffe914545763259b75d22b2d35e0e20b1b56af4ca707aa23166cd0d9f21c00ea40261e34cde76c2ee58f15b18fd9542558a77bbd352423603a31fbf3b7b93ede95bdb46355fbed192315af61addd16f83db954a21973805abfbfde81706e54e70ad4442d89f5df00889c376e665ddb9fc8a1ee1b16b445e80322c4eb710975463d4191424ff8c3001d4e5e258d93019666e7bc05713c43eee66898fdb8e94a3c224c8aad23d9477f0170c38b1cb8200d7929c2ebcce8370f442762a390a80ebb1e436bb0ebb4e533b317613e4e8f82110e3c13592f2b081dea5a697c3ae650536fe2b626847e0ba9ad617cc8743bd9bbf2a5008f84daf71857085be8f2df00a6f248df823f2ca279d11196cc3eae6fabd2317b3d1fbf2853ef676e8696a9ebb90cca07bcb9d0610980053602a6beba8eb9263bb2e1deeddfbb61d7439829d007421930c900f0ff3e5f664bbd38f5089b60fdc56fabc8cf09fa61ea21cd479404de12f77291cfab7f38367a724d44c6c03fd434cf9d0cb1a697915c32d082c8c72affb88438f7e71fc14e243ded7e8e2f5cbec5380c20a704877e6df15664ac5e6ec07183fcafddab9e634dde76126277646fc6964d3fba047c32241acb9cdf5d901681bd6bb3ec8d15f23aec011a8ff5f52ed7c4ad5597b07a02fab66cb801eff3bd10772a71175ee65a20c5b911d850d7fe4c44fb4fd3615414b80b77ced06be05a1976d5db8fbc644c6db02e1aab72d1e96a623ffaf62aa6b982c2c3031696fe36ba59e244c15aa34f45884ecc8a07f9b66ae39289a87244f4b3f8d82c7ee023ee87357ccdb6ecf9f306deeed0b8d695020020cdd6ed1544dcfd24643302dbec7ce744e1c002f4f59b6b4850310c7b3aeb2c68000001bc928ced6e9b9b84ef2a90f5b3d2478942019c2c17fadb1ed0cc1e2ef2416679dcd662f7c57cbd4c9f82a9897f66218e3e35313630e02fc04da32e667a421f4458e8e08d6c203eb1dd033cdf1d9481b526ca143a822646b8dd0cad34c3e5251e3924f51e1a7cc9ee773c0c56f55cddad8f2b787f326e39324808825d9f9ac25ee1fa1756e13478d849720ee0564ccab9601e312288edacbe8ceae314259c6b27717099ecca230709ae899520eb5c518d25c69e22301320d477c5f59484955b25b0f1fb1ec298bce2a923034a96a1e2691b3dfe3794e01723c71227043381e7f34d4188a2ddeb80b8f97e68e83d4ce92ae631847ab31e5bd22449bb0b2f9f60d20e00d90e1cc4b30364639852278abd2a304d9f08772a62429ed30d5418e1c07937d5240a15945fb584825aa506bb5f4c3946d3893e0ea73ec7db55eba00443ff74011d598ce424c3f429c39f45dbb2797fc4dfb13c4a8e04f6d63d687be51726bbb668aba5e655dcb99ac2b384283fce0fcd3f0481f26a0c680169baf5796725ac6ff253332f82e63aa695632b9f5296f3996297bf5ca4e30751e102f44264653f41ff68137c3cbe9b9cebca20916064f7fa6f5fb47dbe8b71fd000816798a380791943b3866b0622f9d6f5c210000000000079a10000000000040eb026d7ef53a438e20b3009f3bdc6062b18300ce61d859eab3a5b7765d449e557f3dca2b33214c798a72fd920a99ff3c235b30146635cea7a9c3d3cd15c281a7010020872c794a0833217dc4289abefc33356b763633549c40913e2cd19827ced536240000052c2c073dc896a3a88833a54a57c014b5ae4e7a3f3303ff5a67ccd4e4f0a73f5a7a68862444f97fbd494ae5b42de36293919c9ac960a9b62c28a0b3c9c944da2a8c33512c3909daf6a3c7707d3acbf90d147e6c488ef61ab88d00f09ec2b0a08bd2268ab8771d3f860144777dc5b4e43a98b41dc4b925ea7bcf6d233d3f420d565c2d4dbca2f5b1125321d11bebc5968a770cacfb79edb3178d6c2f5efd6eea06394938f68b0d28f9c7a848e115a92dbd96ff22f6392ffbde60d96f316313ed4bbd6fd5e589ad7b89f7b76229fbcdf8993729792615da9e5f99b92b59cbac800b4e4567e1805c35d575066aa1592b5a55665b5b90707e5fed55f48b1be4bdbc2cdc15f651bccca8c88807ea603f02e1a0567fb64d23a01e35fb2c82002d9e6fa2e212ca20f8c41e270ad639247587920267ee4eb24c3e836cc69d8c208dcc98d8b9ae9f3e839fd151eb8366bed135da6085344512c88fa5347ee09fd6298d0b21ce08f08b28cd18c2048e1f02593310596836422b893381e4ad7a54e9bcfe70a582b96d7cd58d1e50337958575518f8abdb1d23c2d6a68e776e64fcac3d762192496b5727f73b55b645d9d9990abfc5d9772263792eb4c8ce13b4fc199c5c134bb9f5fa01c47c92b431f4616865b1010af2ce8ab1394fa46bc0a78ffba04c9c74a298d3b5a1676f0aa00709b1ecf38c0f48931bb49c3679a295173fcfbd4424b8cfae55a806ea9d64f0d55d544f44b5ea06f8a674b14394bb1bf9b1ccd5b495f30a41b7ffec536ef8b4defe5bab39b59d30043e2363ffd1538d2cd9615a0ad662d25a2bc8f19e77c789ccb8e5b23fba4637e5519c9afc75817b1b2c16f37850a8de3c2031e683a1558a843584a66bbd7b9451a58fb3401db5a022f8e544b641f26145e9db18315922ccc0c14d6c3690044b1881df424cd3d3cd275d65dcf215a88a46eb841631d8d580da98496312f0788e095dceba054fd8d7ae87bd443a05030994b514f701cd41eb69c9af1a5a7526b258244cb9cd86f89826f4725550551a6d44262ac6c89071b542a767d3335d975c6cc19bb22285463e6ab9df4673ac5fd7d82e787ab9975246b782519b7db639414208faddf8d54bf05984e9a09a76a35757c49edbee4f219af9d2497a69d26c8550601828eb8844a1e5da1b1def59c5d35dbd467b8e5612d1e9e08fbde39303a73e3147ed393b72e6c2f811127a59ee3f501353d89928b2c8a7aa0cf5a1cba0e5caf743d00bcab0829304e88bdf740bbc941f6d8e1caf28418ad889f822aa2ce20f4979971fb09aa259df8eff5ed3123237379ae0d5b493c7b8ea837c59a00a285a5cb7c7d314c8db7873a67c59b26f163e7ccb31efdb60bcd58c484b8a2604c216c9d176865ad6f1d8304be897ad06a759170940f334480caf07a7332654b508bba785173ba71262597924ca23b597ba6c653b1ce7c49f2c6cf806013af34521521dc0e7d0f69462d52dcf6a1f0080e04af2144699991b0de9568ad1f679a1486e2e9b0e4e661b66a56aaac401218b3dd234a51732a29e1deed0bb5dcdd56b1624ce05fe9cc2d1923d5b586237bb36ea6ddc811d79ad5e79bc7016bf5fc59b9d5a00ae6c796b17533663cd65d56a1e7d14f7e46ab1ddc1913f6b75a4e86c464a03b9801ed7c7acd4afba1ea10c9f4c879e20c73d667fbc5cc1d146158dc167e5dfa86b4f9bbde76711832b8698a599cb8dba5574a23410f1fbd17a46317b793da01b8928be07a25641b0da09183df27a1e3bec19710643ff4a4725efe9aac18c981b0776c0be2f9039f07d695d7d39fd102eb93255d2ccf9a29a832a6728a91f29cea16b85ff1da84bfb672966ff34fb5b0dbab16b77386eeb16b21d020020cfe97d3ccbc962e57c6d0b83e78470c8673cde3383c406f1a7da5283a5ef7d7a000001bcb1604537f22ac3c7840f719aa8f87e52cad7fd1c26af4fdd470e24542b4028fc53c53603b36db1bc094cff3b32f11d5f44c0fe00c6fcfd43892183f3830693c8ee0b07fad06970c2c0cd4c5c87e0b05226aee5dd816c663264378292eefb5fd84142783870a5140b0648b5d7cc0b0a8ef2c0cad3fe51efbc539cda492f329b27d566095bddc7e84d6c32e9bfe0e9e51dbdc1861db4b61e23bd84c69634d011b814a0d00b18e2af9850b1ed19fedee710083bf0a851cc6dc168d01a3dd6a12352559d371abf2d0dd13845ad2d3929b31071a3304e73b7ec73cce56f64fc2ed9978e6fe730f2d345a25abe0c2dcf75386e6fbc2cdb740b08870e6581f800f5e381f10170774891e49d46a3a240098c22ba00d3225ea1fdfd4349b1143b0c3d475e2af4bfe4abfd156d6b80f7d2d98858c5e37d378132fac462f125e422c31e8ed2bd56483f7ce38fde883c0f3d86ae642c5fd8adebb80d4401d7d5621da47984dddc0c807e85b114187a6e5a6d7fda77b91efc8edd332ca1ef7898dd6bf6adfcb39610e1630120cdd159b0a5e2ccc121e43823e7f3c8ff5ab010875120ce38283daf70645e18132d017959591d0e0cd1e4320df138df71c317053435c3874ac36121c119209d894e460e86fa160000000000079a100000000000402710149c86d316982018d80043e23f8e1e3f721dfe6313f603c34609bc420029b0971c6d6540f98ab70e980ce7b8180ca7fe54c5e952167a0b3b7a83f6c27040010020fd4e723995cfb60f27c8b542b0992189ac8477394e0307266806af6fc215071f0000052c0dfdb22ffeb8c39867bd3cc7385281ca9dd3d8576deed1e8e656567ec812abbba82b0098a4f99512011dc77167a0918e87b05bb83d93c467cab34e6a69e4a5b9b3d15e83244ac27cb49d5a1f28c6cb795de90c084885e592bf982a513bce9fbb24a19ecd539f8c35dad7bdc23b33b296c1540f38de9a604483e819beb1a4ab8b7320a010ac288632e7612e5ead32b4229f51dca24105d19357623f76d8c5ee188d5ced80aac851ea6f4cb22ca0f73c6097f8f5a47123c13e54ba2a636bd24a13f91ecdc8160c7db8d710c5fb6593321105f84c8e63cafeb976a172f8aa5f208a91ff692ebacefffc3bab096ded654b9153ce38f31ec0d4afb026be6ef1353ffc3d01563e584f95738bf1ac2c788a827003a6d62f0e6636a3432e0e6068f52b264474bfb2d36e10c76a953d909effb4501a376df230f7505e8762de12c3839b5800418a2e9af5cb12e79b6fb1ec0bdfcacfec24dc71289afbf1d6aae0b78e01cba6f9fe7b1e8dc073451871d0e4753ee9fea5c99b698ae176ef5487c2451ebc4ba74c5d288fd0f9b016c74d2a643f2bd78b4bda9afbda62dcc64af8675e3f8904586b44b38f0fc6bc16dbbff6e4a8a740000d2f661dfc8987cc5ba4c12d9aae30bfcf092730fb31f4677ffa05d7c3c0bcecec2d19be0393d80d3fa97d6c1cb9ec3aff2828f70787ae034ab853d5d2d2ce6938451afec61ee8ade6091e534dec1bf42bc18ad7426e647c299a3372efe506651a8e40bb056ef1264c6eb719fa51567efac9e5af9b9bbc1163783879655b616fe94f0941e458d32ead193b3bc7138e8748086656a9c70f250663aeb9aa111e0453fe489a23fe8be582eb189ee20baa981f8dbcdafc39b406597466f9f6ee5400b0401c955d06beda12ce09a7f9c42441bb8b497c3d57a857c3c5cf3111536e24f2cd303851f02168c5db0e58ec0949bf78144dc3d86d28f8e4c74c5f38aa349f7751523f50060c494136c3258fb0da9de34b876731d9ab0c727610c6793ebc6509d03df63070c0ce50b55d7672b745a3416ddd5a9f02dad7bf374293d176d7388e002140c90a549853493045f0a86ba41a26c31fa6e807dd8b4c8af824a8110d6d4a00b34c5b2f1a20e48a8ad6c245e3c3a8292d48e3ae88eebfae823f5bfdb4241dbd32f7267a80d3a279b844576024978fdbd271d164761190420cfcfb3c72cf4dd6a8ee6cc752e85378207fb211093568f735ce3c037e8b64ab9f89b0dbbeefd86daedffbc6d59fa8c750211111852f93608424e618a2a842d5344965dfc080d22c1386cde01264ebf98437dd9065060ea03fc2a0f1c300db5d38bec30476331428521aefac6bb7f585aa1d6debacffba32ecf796ec94fe2a2128acc5d0ec403f164d2a0834ef88372ed7a70397991d240bbb252a1d3d5d404a73bd2d55d4a19aede1022512abd202fdb347b4a8240467b6234427ccea439fa96cb1b4933159bda3824f4fb71e87ef70d60535d0322f1cf8c6b19f47faa1e6d82a82113c0cecbf6fae1c0211a1d2b7668a46e19e0f0b94ed95699836f0a1b7578c1c50f9fc5bd116e7d557cd219f336bc4343e9c0a1cc9b78060fbc66fdafe018d27fa509c1e5fcfc470aa63f102630d52e8b8bfc125e213a389aa2098c391379f13e93b860a7842d4d81525a79336ea7c94f4d72ad9c984e5ca86f037cfe3c2e743ecc0bab6611b28344b1240a164fa9d4d00b6aa6bb4938c2b1ab90c3082071aa730eb0603e66466ac80e4afd603b09ab980ece36ce8f400adf30290e3c65d2db80d07bdcec558917dbeba32fa3ced146b04fa52f0e5bd985765e88429411cd06f92c83080cf5a51200d8f9359d0187f7feee1a1d75746048906947c0bde5702002031f3de7a0b6cca47e73f60b8b1a26da011986669d959473bf0fb227dda469752000001bcfa4690695abd372e8a10b9090bc1d911ad59987da3cda8dce0feb04914bf21db549e2b1c36e5185618b324fb9c1c843e7900d198eb8924d14169d72075f780a4ef95f1d04495d09967130531fc7cba3afbbd88099abe78a95d8be906b6c9924413c450e147757d4c106eed6a7b50b3fccc7944f0083ae75537fbc6e214020b5b8d096266f20cbd9be4f4f9920cc8965e9709069bab2db3ef21109d7b48dede7e325e216076ae42a91118a81469d7585852158da99f52fe789105b9a98ef731c80133563cc0236d711e05875e9c40a9d09920608cf7846a203222c7e14d91b305beaa8488423ff42e930bfcba4fd96f6e357d359eea281ddcc4f4caffd10edc19015c8cdf6183233b608492c8cdcd227b506a52aa6cd8b37491c522227aa39fbc2bfc3a46e70911d386f4ec7e7bcb7dcf291c46eacdc55e068335a69fe6af36b8214e160046d5489e393651f09801f6f9bfa87ebb83e70f38cc7c2704face4f9478138236f08bf359024fec84d5f4451d2c78a704b38840453ac8029bcb1bcb39f0ba22a99b675108335eb6ec4de86bd7c7752287d3f90405fbe51bb56ac3c5d2de25239e3980c33b8b3f68e299197fda5b4c4130c58cd95e26fb75598b222a0de72fc00f3aed8b6a4f1e66ff0000000000079a10000000000040f9dc522a5a8bb7544da7a4c6d9dcb98c4af41a72657c85b055c607cef1f38039b3218d3cfa8fdafca0d6b0239c8e4f99f6b66d4dea64fa4a39f556924c1846fe010020a183ff23b486c7bf2a3912b247d7b5edfeb66de33aae3921323a82336655c24c0000052c9a09967a53e754d2eb9b03b48d30db97b43c4c05a09ebe3940d2bad176c52fa980ae27b9f147cc1e216c6a36072de0fe0a89034ca1bfb99942644f70d7a91a554dcd5b37785a5cda0f9e35e17748ba5ac5cdb558a84093ab8baed455dcc825fc46036f761cb1034e4f0041d6f0bc4cd3bcb54e42b517af85d72f6e298a94a93c1d82410865f1589a0f8c3175a2a523fc8d5a0db6a77014fd5f0472ac3af7f7594660dd3c8d6355be5689c068c5cf835f366cf85e0b875a3bb1743bf22c49c84d68f616e010024a95786f34d2d20d1f1a399776351e6d2fafb9644d9c1dbdd9d821c2608bb5b59486f47c1ef48db90084dbf86e8474c8b4d93ab3c466c070f1580dac9124bf91f2a3758a12836fcbe3359ef124282bdd9574c0692415552423a991400f583684b2db98f0b5cb8a2307c5595cef6d777eb544e07d7cd9c6d913f14975b7815169335e6b6d57ae9fdf782998fc7ab8e140e32884f729a5e8f2c9d1f5edbae22de960d283cccb6f0b3b5510d7b6111f82d96867c57e56c8be7b72b64b9bedefa952e51fc73151dda3dfc3c03a38df15ad380c3f71147e667d4d5e50b10a7798a7ec14b0798d46a192846e2cefc87098efda8f54ee462ccb0ec0f63eddbbf0a4d81f8a5f6a56eaba9f8f69e5b33890d92b0fdbf07446f292f45ef39232c34d63c67381a280aa428083f5677bfab156d9e01b51124a99f906ecc7b7dccabe35b1af56f2f2b86f0d406f4ebbafbcedb886aa1b8b55d62b1df38b218e17f1db9e2a60dfbb7af49180680202d9352f1c89cf5633dbde1d9e199de254877cffe7b47f61b47cf5321434cdf04f3fb6525e76836733ed95914d17275aab48bbcb8c50ee8854d6b63279fa7d052f584879da10a6b74cd0c625a56fb2e251e37dff258e2c8069f724b064637abdb02ff9b0df6e654efe263a9a297c3f5011d71ad7378086af2285d5766e5a2748cf4a77f5891e23e51da54966f8d2e583b8ad04a241f654fdd89221d0e8dcbcf18de9a3b3834b88d592b31d6a81a7791f35be54bcc91e88eda3cedfd667af072c6fe61478ab85cc2081e3cea4bdee9d6a32c9ae83d0b028bd0a4b4299c860b1605ff11a26d719213748daba048917c31b4dd727da313c5f94c08aa43926c61c4f9cb0b30022d298d6da7aa4227fa16adf255c23ae2da5e95c06c921fe096307695af09d57055c7861eafda736037251eaff623dcd7df9e61896a993c1640418ef62970780a7be32c3c7745413f39cf9639936fc8c325f0f8dea3303dbca17a10b88ad117f445349fbe9eab2d2b08c808fb55d5cc4fdbcd2acbe40068eaec44133ddf45c0e566a9249de431897472ff73f70b3f601dc08a39621e48fa93b9d63cdf2ff6aa4199fad7085046c68736a767871252d31436669e5e7523ce91523c7e28429ec1cb213756573ac442a6e1fb2513bc351f0f5f89dfb7ed9cb82fcde0c0e677aacf0881998f4336987c80addf2905c5f065cf4b0c4af3978a4882f13481114d6b3e32152286d8c82bbd95be8110e92c4a71532e5b17d3f3412f7423caafb9cc8ba97f6c60db1d44c3b9bbcf09c4eef95f959882797bd1c5d193ca37da7eb9a55a678ed2eab974901fdf8a4f808f44fdf5033e8edea61834ec23874a613f0580d9eb1190363a0e07185857570e97dc86c85290d0b0f9dd91a18110ad8ce08f14910a4bb1869315545395582513057db97ac476d56133ffc411fb5500655b6a82b750119f9f9f704697d36c8abeb8dd1ded653b46c7f6abfc338eef5d5a55c7cae48beb7e243ed71017cb86dca678aafe02252bcd34c959f62ded88da47b1064523a91016790c07f6c2ba53b4e9f22e7397d5bd543829c81110b6cb86286020020f256916bd9a45d3e84efbc83244b63e8855066be50a8ad64f04010e1a8c94250000001bcf469750b45390eafbba87db3d40a70ab19543a6260d4d9ebede1bf3d95dd7f42cb25a79fa5da243c32ae7040b4090bcab1fb8557166ea1044f9e3c4083abf1bb583a9b4ca8b6b60fd0ecd1f03159c30a57d835f5d4a1c38c07f9dd9bba4fc84f00732255ff350bdba051b328733344f093090690336d62f84f18f0bfbfbfcbbcfe35f2f29389b9c7c0c4b811bd6c54e19ed66cdae5eb5500aaf35ad11fd3a86920816d221733c8547f94a8ab3239a98d2e4f385fda21c7192d292bcb9b4bfc366bd94d9b4b9c583efb4af6e2f5e10a107f8d2a8ed439a038805d2ff4075e75048eb7085ac04ce4952aac38364406d64fbeef1edde8f2f78151ff0ee065687650f094dcda93ab0ad3abe85a4c6a63c9f38e807a33a01f01d5ff16292dfe0563c1026434b967bb12554e6713584b36eef97a42996098930acef62b9deced35f341b415f4513479972a8bdc234ddb86df9fe6cc446e45252cfc41ee5d2ff3e46eb2d0cbb6efd137704a6c0d5ff2090ce4ce28a86a6e23586089141ee01c4f7441db5a2ac09cd3e0a94bfe440a0c99bf41001d1d56f8e47d478233a18fb4ae4d51cdff5b092d56925328c0cdd9c9c604f2544b5c023a0615b521c2db011f8b4d71fc18475112d0207815e6a41f550000000000079a100000000000407810c999915a10cb45924cad6fb1260d49ca0a09937d933bba4b70a27a3afca053abaa37c7be5a8de42841a1804ce197c1a134c227c06bb6efccc58e16362ed5010020c18635905036b491782846adff1caa7ebfe41c4869a8c63d4c963e64a13e6d010000052c279c00458e73b958374cc13b4d5472175fb6a590fb6111aa4790935462e24f54947a71d61007a205d1e97acb1d74b0276daab9c872d679dccc21ae78abb16e55c8711b41cd7f857643e02720d16af39325460c3caf57bd88fc949d9e882eac78dfa03f01e114320bcf05e1230af5ec04ccafd17101b65c7cb4e41e4e2b726351e329985f5ec60eb968c7543a3dc0f976a0cf6d608a44e0f5e4ab1fd5e8f98f2dc55530810c43943ac18590e44877746e8806217aadcd53f4e6a42fa28a197f411056935852dfa191f41fb051f4a14bf74078be3b727328077bafd2dfe70a6be68862f86fec923b74fc28b877afd9d4421f9d9c4e55c12a77adb6e98300370a3318d55f32517bbbecba93734b57dccc1e337b1c5cbf2cab2c3987e933f7f4cc6be6f8e33b1bf78716735df8b2f8a50819da7783a64e7a8cd1e1aae35c95cfd4bb749d3d10bac1530a6fe96ae354b2a67c901e2e8701046fc675b299780633e25951f6efe40f09aed66c2b70f3d618303c1c495d4cb9abcdfdac9be97da8c23b971cea35890cc5138975088eec00d1d6130b4f9af7ad2eafae609e392690f7b34e1e324f603bab1a40090a2a1fb22ded5570b9b5247b5da1458f6f92d5101fa834ff16c8689c0942eb8d77bec68a2755503201fef15da501eaf2ed8d9c62116498fb7f9d895a8abe21de6840e0619bd69b93ca8691be849282ffc37439e6904c305937490c34bdf33e376179f6bd1f0b2e35896588d16fb5aa17d458f4b3c75d58d1c4c9d76e90b798b711a814623470131ece48015fe00366b9f1f3a195806c3a9cc8b078687b7f45a62b846bb42bcc96575759e676c104cde7c13cf005f62787721348f1fc424027f89c005af0bbf867516d044993e4d78228d67e1776190773d8a92f32337dc062599a7194e4c18e151afc4639f7eabb7fd6464cd333d9100e0e9ed79a0541e4bcb6ca2d5b62cb8fd5c2fa5a25ea4f55603143e844a794cab20bca9d783a438815884061ede1e62fdc281290c2c18c906e5e785ddb0c4e0c93967c395bd6fe2b5dc27c660a5fd43d3162563e124e5d26595b03734c98c1ad08b8161900aa23affd0f7dddcd9df2dba20ce981d9f4961a64c8e9f88d0f1d829920b040012412e0ab5a4ba0c2f7af9734591937f5473e7c7caff989ba612636aed5f5c68881aefd7ab2cc4a56b104b7341cd6d41d2faba0eb131b932f490b5e12dbd3fb9d6bf24cdf7c51038da1eec67c5dea0441ac35a3712b0217b325a1618bbcb8df1df30b5337b12f94915ce619cde576acc3d5d530ee873790d19c7eb51fa89fdb0ca0ec7a1c16a9e02443ef20d068fd82f887d52a8828beb49d6ac946435cfa254d068fbe47ccd345ae86a26d7145885b898e7ec0cc30170374f07353416f6c861d140bb8274b0e1032031f02d533849e9057927d4cf470362e0ca05f62f44bb778ad81250abc33eebccb34c24bbcee7a01cac800ae5135e126fd4d474b6d7273f2a66362aedc902942334992e67a2feef3cd9e78bf27ace41eb08a1197ad05a6aa657a2f92b10071d8a6f0eaa19579598a55bd101d3dbaa3c09c4406fbd8bbf031b772b33d4408ebe67085d59524152cd2d5d20a23ffdebf4a7addf53c4d5af9b4b0c604f7a4eb852b0fd499af558aea8eb24c44bbb46451aa7feaeb8e04f6ad07e993feb9864bb82e4cc748e19cb3129fd7ba22fbe1da4075267f3a3181f2ea20060fcdc1fb8423d5f1bf17a4a60e54a4344d49e5b171901f0ed050b2df035c6962a79318db3f15973e21566bfb398142036dd00fe156bb01ab8f15d07ff1d795e5dbe21a594c0ce736d5f7c5d3f89658a3aea56084280757010b0121a1a25abb7977fa4f9ebe81a3020020a4dbe9ad89ae7b29458251d70c5ce4315d243ce568163332832b75a537ee6747000001bcba796f28f6c6a95887ab7cb165388688cfed901152534d80dd5734828d2fbb030410f5e73df089132827fc0521e99477b11743472628364e63ed1a17a88353626705a49c1cf0e7316017562997e8cf2afcacf780810cee224b8bf2104f8d12f578f280f113f07cd970c21a51b3295bb98667d95db3a7c1acff0c2f98e1e1c52941ab880aabdc94e02751866986279ffbd08843e1ebe73018695e8094182e937e989d1093442d15efcef42a85e3ec51724fce29e1e0de64d6a553d60573b38074a443a0b44c9b4fd677794320080a73148929ca79e55b6e394014898e29d75e9160e09300221bfdee61ce5a5f3892976513a0d07719fb22adb2c39c9c592a5dd852e0c77a43f5caf24af87bcb38a74d237ead11a90db2aad407cdddf43f07a7adef0107fa1365e34d36211604b7ef03d150ccdb3e95c8204a2a24395615ad2be857345b6e2534424532d12c26fc2609b011d496ad82b56813e94706c4e9f7dbceed0c2b73984ba7af85e3e96d1be7a58b0d622b1041f45c303fec364e2af672b49566b217c14a3705b9636675dda243bb847ca2f28113f12273a6aaa5712636953e43641628e8e0cdd9dc6927d6e3c6f1c84dca8e6c24cc435fd0a069a7b90e4f3d4447232053a3b6beee084f0000000000079a100000000000406cbc596088791391d1cebcde0e1a0393bc1d4bb26f59b7f89cbf6302a629c07f0edb1d4907acb965d9d0e7df9d9be56acce1d6d7c3cf4eef143edb7d2074ea10010020002a0c7e031483124e43184d3711b290ab8c87bd6ca058a097d6a7bbc454dc580000052cd225ce8e439a2b9d4d9a6b85c65f23eb80e6d32330107982b554e77a446ca5b58223247f71286e158d454332e9260d67fa5dec13c07872a25bbd2e692c7fd74aa90dfcad167f3ee19df362b9ec0737a0ecd74ae672e6a5a4e19de9ba7ba7d8496ca3c65d8a2518203719b6cebc62edfe444ce8f9a588415648ba9e9410973ceedb8e9ca678d498cf40cbd33aa8f5a80803a7640c0045fd3b4f3ca0abac1f9dbddb9309e80bdaf090b130f5cb9d0483a5191ee0062c236ace3f1e02adbb4f21d3f3858a076ce5a3333edece2cca0a746cd1713c2061abedf5f58c30f80fb8a6e2fbe6794c78e74940e4a1544358d3937b0f56020b7ce173976391c098dd398ad59805b3e45ca3d1ad8956525129ef05d06b76e15d50413ff38773b5edce70969e5095d8cde319dee8d83e459b437ebb12ac6a05ccf2c6c1a0fd6b56f97b7119cb22a57d31ecea0e2e421fcf561938bdf15f98899356c758fc54f57be19cd7cf16ce38ac620785be355ea167fedff530a644d615ecc585624cd35ca1c635d9333ea5fa78506c3b3539bbc5c678c8e3a57500adba5cfc070e69a9c783a607e2ae533e71b4af9ef5dc83e39e4ec1c856183f19b8957dadf813d9ee27665e1ffb4ebcc432c7e801e1554ca446f0787ab8f7e6ca91e9af0d9f22dc9c449a7badf31c18cd1b795a63f39dcf3eb24dc34b18bee6e52e23bc164ddd319de53c82698075ae67433047b83a06a19e91396b71c3f08a31cb23f9dd0711e798f4a64ce755f30c02912c2b008a02c65b86544d43acafd103cace2522585077e467a00408ca50fca691cc9a58ca2c5fb69f8a0f9d69f556df4dcce03041c630a38e92208e710e0b8cc0d5c09d7f02d6e96bc311d9ccb190c3c8bbafb2723027bb86eb74bef17cfc0e6bccb5733b9f43c717078be0b43f673a4cdfdc2856d4537c538f0719e96993d79968bc1e7632f56dec6621436ad40f006b34314ef6bbb183bf608a195c124b18bc9b6b890568e39c38df07f7b6e6e69a7cfbf72480ab7f2f9f4a45a9e0188ba7b1c72d6bfd5b07dd75e4177ca15f1b15e11b53d29636d93583fb0562e16ce768135d7aacf094b39bc7f860fe63c90296857bc05c4faf50e6df3690f3888f65f79b6d2cf4bcae26fe71912abaa63ac1c35afd7ac1ed9e8259a830b0149a2d5518e98a6f40c70bb0fc278ada77519d93328c94f45794e65f6a22f88e91bf9d16f55f2421532d2807f9965f5570fe3953a5ac0e887b1725b2828f0debce418d90f165bef9412a24ff37169bfa22e7fd6e2bb2d6a7f8f4aa366e7829137de98a7dc207c07cf54945f7de6f1b79ca3bbb0e1f0d3d70aee36682860b3ea94bfead2a2194005624fef0078d1d504364d2f4a8e3d01d6507e0a2f6dce4bd27ce80e006f20687d021bfbac35e2b55aa16928e8a105c620bb9f8b018079a227b196be1e5f497b88333374b27e79051bfdf294534c3535eda927e7b0b1e5347969e3cb693d6644923abadc9896fb446fcf0a3b0218e0a3a4027554d86c10fab9b64885b9427e1a9a54bc9d61c44797a6028dbcd3cfef3d41238b085ead085e1df2fb4b9560bbfba235fd8dc12f9ba999462a55f897359496b0650a0b5bbd3af5778a666b60011963153faf7f1463edd1c9b867f1eaba8a9e7bb66fcd1f638071e032bc91ae7334a407880fcfd6381d23985a535c4e2213c54d6493b4a6d8ed7c5e1f56837eea398be3e1b2e1ef435bb76b157ee41b36888e3f2890e6e95bed1ac6e80379feb57c42139e183a6c36ba7617c8b6c982354a7273a3fac3061a5a01ce11751eea315262cdceecd38f8736184c15e3d92d27bb5d960fb5a7007b5fed9e118016c3d99f989e66cde3fc8536cd80200206feb98463d36120e6b7607ace7375d58c2769bb604e5cf23f951c9c9e7be4341000001bcdc097cc8e25056c95d1e0c3737a648b9da7beb35ea4124104aba9266cd7c31920de8e5f11760fdf9949801f3739f766553abdb8e1b6f8d0670a1055bb35649d6dfcf64218857cc08a345e602802676d6464ba533d264ea46ba199089ea5afa59bc02ec41ff389def4c332ee18255f608809b021a8a05db324f48adf8ab9a3ba7272d55ab5e420379dfac142fc62806387b3ff48fc7fc5873523b4e757e41a3ac8c11acc86ad57028044f7952485fd79bbda5d9d477c9a312538063182902b54aa5bc7168cb56b4d8945c3f0dee608c07d5182b199f8d46b5877c12a6ade407e3d90337756dcc71055124b8ff7c433d034860962786ef26f8cc6c8b85b3b3da8127cc8972afe838d11dd7f602e2966379907c2a02556b0da92d30af2b2d4c9a02665851b52ee4eecbb8c935d89ca2e7c37626b26bd216c9a419b5b8f548e17b5db619453a8db842370f8889a01297e03e508727989af74a5d18e3ecfb44d24bad0f6e056f5147e9701d8dc94adae02411c36f194e0a7a01e2dccdcc3b3b8e6ad68f74d0590bc9026559d54ad3c5c8496e644d80a313d33ff1cf76075b02aa8c1a25ec3b47b104244acc8f06db5d0e714ce11589dadc33602c32c11b62abef3a28f4fecfb1cb5337029c57a51e0000000000079a10000000000040a128c3899a2a2c41b5f3fe8262887cc20d50e7ece4f9e5e9dfcfbffbb63b37aa0b83c2c1a9052ba914005fa2ecbc8823aaa079ddafc127915960d4ab2fed8a63010020205e00096c82c1b28fe56f0e3b126b54b6c1473d5dec44c8996188d2c541fa7e0000052cbbee02df85ca9c8b109a61e56b826d4dc38ab25abfbe479e3d2ef7cebb0f3e614b21d2686ca75bb09a9854a2a78ce55139452f5421ae2015d6b0068b9f9591998b948177a570796cd3f974c32615bebe03f926dfd76f72a1375a210f36953ddc052b690bf2d5cae85339033a418b8f32695b8b48e0807de220c521158dc7c7e386ad687cb266adf08e401daed537eac4557a6edd16263d2d0bb5f7962b43defc87b89abcfa54f439b5c15fba397487188468e8fbc21ae05554de3a7d0755b0e2d3aacd11de31e9f2d99dbcd50307a1eb0be249e749f74fefc2c30c808426b4862abb0fee176733b77dbbc03da4befd2ed54fa60ffa364637eb561970e1b0a1e95bbb9c50f0c54a938fc66f769fb59a8c2cf59f584f5386ea0190372ffc588541bfe378f6948a09213d6a2146883a80fc813e854ca8b89ee569d33ff4399388710f1a6e8def757f67b16cb31cd5664d817a233cd02fe26fc6c200bccdbf5d70f59b2541e5b2229ee2ccfd3a1c3838399412a0d3c22578e6b01e716bf51d1de5c37c0cfd2ac1b2b50b866af31850e42cf5613b106be39a88cde80aece810ec135c44889b4134c7668cf0a6c23de1d3353215e4357d7bc501ba71b8183fb2e818b7b6e2eedcc39608364ea7c9cbe7d99d3ab98605e1c0412af20ac1888b8fa197c21c7735e3328946d3ba5e93b14ff5f6e28a886f381ffa113a9e055cae4eb8ed5da5c8ac2fbcf390963b695214a726c36c269426f368d1c2041b3c2007b78bc0c6a606dac1f466f5e2e44037310e8298516642bd8b2c816f5a70c860fb05c00b807581988363768fe8795b09394d868bdfae55619cde67789073dbb08760646cebbdad491ef3ed0aa183519e30153e5bbf5fa4b5da298ea657198430e412fb83f70c16f3b8d09687ef834faa285a2972b2d37b98bd09f12513a30e15f0fcc0b6f206d799fb79e4d9961b821db360f3f02c5ea7dea0bdccac585c8bb624a68105d590be008af01131a7e99ad572583a64d223e8743454d2f7e96ab2b3ad5edfcf0f34b533b55d02e76406c727dcd8f3aeb139c358f40554bbb56d4afc31eaaa61d97e879eda89b324a7cc3bc8f0293dd33398fa5caadf501979ec29a362f2a541d992c1d27e00fe7bcbdcadc6c4bf658ccdcb01bfc59cfffa3e17b67e187c4a7144d66c960742e4d9294e45779bf210a9e6421ec13366f2af7cc2382e5c9820923c31d3a81ee142977465828a2eb8f86dd08cced27fea84b9a62700acc4c7145afa23a3844d7ba544b4ffd54fc235ecae5f38ee81fb8f6beb1fad19e81e0c9bc23d8db418b74003c3a0b65a3c0032532d690ebe753338a24d69e6db8a9516c8bb245be7d300662144baff7bcd02aadca740deee49062d94f2e6d9cb769e2f1c815436197e84728b8e211b51101aa16aada1c8c20c4e67cbaaa0d3a9d4c7439b0c8542331e1ed0516929630323ac94fbbb6067ef86e9961994edf79cc1be3368a2d5c8c4f8479f05dea86007911cf092c016ba14f6ffe4901ce4175350828858e1250e07af1e08ceeb35cb04a957fdacc84f8391da5dc4ea19378e2ad0648245e96866b856c9b1a9f2fc05ca11c870ec8dca958b6be5ba6d83c8c157f357c8e812ea3d83934c9d4c79106355380cc18eb8d6079392be23ec5807547eefa0622293bcf1b838a87ef4087937c088d5feb5b574887db8b4c47739c78e32560105f1955b15400259737f00d935ae3b5b023dc8f4b2cbd2007fdb72207c6e5e8ccd8bb1669a54f90dcfc45842fcce2a7f6f05a2f74f4344e1d7b39fc637b3d8dd4f6397ba77b64a083b65e5f6223758e5ae628320fc7f05c572bf0ebf055edca367a5b9dad1ac3bcc96456729789b99af02002059783aa18fd7a80b8e2269ce1d19eeaebb8020adc31e46591e887a7df0f37733000001bcc85785fd487f8ba7ab2b4ca7d4ad8f672e24b3c7e644655a801f46d6aca99aac2e233a0f37b66030b6dffda4eefb246f033178a3547ef6d7a285aa9ad193d751dfbea20ef1e1199a7fdb951ecbaee191d5e411b6d3fe3d83e7b957a09612ae645722d724b9a60887eccdb33641aa83df23d25c6bc7e2a38d3dfc39f006d779974fd3c8ff606d00772fc49e96b749e158ff26f4b29f2924a3e6ac8898c4f1a8ca97347fc598e9c015134dddbb47d9a2b418cc84a895c03cdc7d9284142db303335be2b6a6263deb21882027cfeb4b49722702eff97e775e8798fc40cd772921e8013d72d9926349da270e00ed47aa27095d0b418a9a6d90bf2961fd6cba5fb0d59523d34112729a97542020fe8bb4c08a733a0fd2df76e7fc4c50f66c37bc074d88ed75e8aba48bf633b44d087afa2504661785973df35eea5d9cf5292816e353df0225f182d0418554adda0ce7808d62883fc01896c0b471d07ec3e2d4a62dc85a8fd061c7b52791891e5be4005b980eb71c11493b26e074e073b6b22ceac9a86f01f497661c291aec8f14e935defa523310b0149d59d28f8f66830261497b2e4e3873588ee87f5993376927eaf81b8b2084204e4bf14aeafa7774c1bb165e6e2f0d9ed07d6bd2837c00b23d0000000000079a10000000000040b1c09a1f98ee7ccbdd3ad76554200c224beeeb825ecb3d892ab303cb9d5c5e1b9624cd5333b5376db5397ec54f1e8c450214f964c4f20ccf4f6171b9a50d8773010020ba02a2b957a06fd11f2e2a3882d844c954ec2f165ad664f216fa36da2db2e4340000052cb3ce76ab1f1614d905002033aee854cb8112c6c91b786ffb0f426a123ad41cb3c84b2cdb613d15155893ac48fd8d1f971795313058b8ff648f59925b6b880e7276640cf918e66488335cf7ffefa5e599ed32edebbdeff6cf7e8778f74e8c5a0f4bbd8fd7d108eebffece9f449bd0e0493d66da036662614d84548aa52462b9d25c7e9d72c585beff40152be9bda50fddbea456a41778d925e36e8a1cf05b8fb28bbec30311dee6f18882d1090bfec39608cc7f63ad412692818dd732575611901d358b6e48c5d143739a35b00e3a3cc60ccc296ded4bdca17e7923ecd5f84cf970fc73eb432dff618c75d8adf13884f3f6859ef49bedc761bb12b7a5c7a568ed4a736311b0ca2f46aad8ecf26ae35d8e73376214834413b0142786f86f9d9532b022b25bbc30526c195db575056b26d5bd92ddef9a681ddaeaf73a5fad413aefc0916cc5db1afbba7b903f9058143bc6e705b8f5d3ccc957e43e3a350a4b983b8c8942760e4a07d7ca55b9fafcfd43b5ceef03af246a2c295660dcbb12ddd5286c61453bc02feb7d7131d8625f9bfa416b94958986fc38339615f8f2d4ec1f95898d587770901ba46c8f3f8f6dd9b2357b236a05381d94f5072155d6670a7bacee5868173c2293f6bfec9c2db859700e01c39d817917484ffec4bbd4ff0f4186efb22f23ebe83b1c7bddfa0a3ca2d76613179be2d485128985a611fd26ffacbace6acbe4711d07cdf531ed79e9d5de29ce4c1ae2d171524aab73a0c136f2c1ed3f46e14bb8c4748f14cf1ce0d62220c7fa630846a62b6518d0194382d1af60752e1ab324eb6fc217bb0f887f5aa148f6dd5d63ce4edf35e44db0807e58fe0d4d3554392f88dcdd97ecf91e0d1e7f7433c8431ce0d047ff4b593d7a006b1dbf4c94687d282fa2ad467e7ff9d2b693a3bb7db9850401ad2cec08d187824fca686350057278260d6b6a9b55baa16c14d89d25101ca4d3f853858713c5b29ae47253c9b5a6d5a947ab2b18f6b2af5ff293d5aa51afd45280591cbaee07852b4404be1f2397711d4c5fb3dc87534bcf19931d040c218103ce5493a937dca09add6aa11e4514b58ce317f54c3f05bcd8944a51c594452246942323ca7e2e07223d546fc17237c4c6dd60995ab05f0b483fa34e862b544c8d35c1ed8474ea9fe0fef98c54cac73fed14d5573ec54cd6affd976f9167ab9de54e917013b4486f73fd950450c0609be63a020236e501955d633dcf9172a77c1389c28cbcec184ba513b96d41816ffa2e2c1b6201b87b0d389ca5f0512ef741e37975dba00ee838d14d75de1ac7ef86028e3f1eb731d4666d350e90ac7d1ba770c4bbef252d149b82fcc5f28aa40c306b494b1a39f084234b9d1eca86e0e423a8883633378252b7ccb0f3b26cff35c2764cc4548bddea0b9c456ece98143c02f241960c7aead3f6c06b65c2fb4641761dfd3692790735b0bb130bed98566ad27c50ca65d4d2055dce39c27dcbe8e10558907bf929d83c54a16977b13a81ea804fe3afc6d30a4e6955e5d3a1145199e6679f311bb7c32098b76090f5525ed955d61c6a23dd52c66a9326672875580c53c55110e4bf857a132ca2e860f4aaa4f8f530071be270dc9ddd399fa8369d40797b693f81536fd3e3db3ff250c3519fb701714ce25d1fe52fc0d227160a077b79fbb17418f4d8c441df3e1e9b2ab1361223e40befef77f5e64b8466fc3fbcf439e83cf7e268652e24a8af37c441f248af58cfa545d4407fb352a4ac22e986b9a52cd4bf8666bb8ed58e68fcab5ecf86a9c4e891f44366797fbfba8883222e5327ae0b4cdd1dc507bfd0987fab2c34d8fe4253c734f522741d786566186ce7b858fcee48dcaa689a3902002058a8f545748411b3fb56bd92a02b063ee2d647b0e079393e5119a57ac99c506a000001bc2050c5cef13e307d5a63c44f6ca5757b27c80e6d0725c551bd37532a7c3d50a9adf78284652413fed5474a5f3230bc772c598a58a40daef53a088c07e9d1d3159138c5269827fd4a42e67fd2e693c6426e0dc75a93d7c305a052e09cf5f7a6816111f65c9a97ecb4ff281d108dc0608e6437c059c70480d1fd947ded3ff0f18d553b826585298b785b40f5b9e53a50a9d355e36ed891a443363ed2f0a79cf151d2df490f0e8335f36d06c9694ce0e2b99e8a6bedb44522d65fc35abddae0651619959501bc3b9b941c125ce0b97919b53a8b37962abbde56d8794e32ccc0cf101dd7efd88a9b81c46ddd0921f2f8645a98151b140ae32142546e2f4e461259f943bd66a483a1b5bf4718da386b4b7d3731bb0ff937e5bb531ffddbcd6c813e1191c98c529ae190ecab2b541ec49e0add55138d4bbbb84d21329b6c14c3e55204de56879221a94a7ccb8221a8446951869db66144d07f3459c80a561d868b9003e5b3ed99c3d47ccff16d3990c8e9216f0432c6890bf568809dc8ee90beb7bd6dbfcc199785d932a903db0e9a150fbead082834c4aff810ad4c620ba116e2572c3241fe9f5feeccbe3f01065bcce01e6eb08714942576b7e3c04faf70c10b2494e6849c1f87b2e267948eeea50000000000079a1000000000004098c3805a0e34a8c9bd8f6d6c96c12ea8c3f6d38877cc5ceff8c6ce38c2ab10ad9c92c2bfa831c507f42c0d8346f959e97ebd8a1e6f98ac72f22bfc3d15ea9d4c01002083221f166111484ef5f01716cb6772b69a21a2600863f0f72dda39c27648975f0000052c7c06b1e00c547ee5794e42c70cf5b50e2edeb2bce008dc223814a5b5ec813b9bcc2b4c581137aeeeebb54b41b00942b083f22ebb7a16a7afc8f393a22a9c6320a74ea94e943a53f9410d3a789cdad7e2ab4f22aa8e1b190eb1fe388792ef9f3af9174bd8307aebb5db035b51f2e8bd062e2f07a494f934a472fc094b9679432293202c90d6ff915de0eca6cd00892a0614c448ac2a287e1a6439771af1f3b0575c68131ca31f61183ccb0ad5231e8f68e2de6dc65c44f86990201b4ae748da0266800f2f823936e6d0ecbf7b273bf5fb1c68d9392bb85f5efec931f29e23d258c43c40172d0641c2b6c911f0de0f6e92f0442b0ba8003beb3bc229f8e2c9e10a8fb1fa6cb6d34a56f6f0dd9f51bac39d7c3dbb63ee53304f1782e677200ad6cc8adc7f95bc3f7ae0262f2fdb25e3aac66bbfe7eb742d14cb82ad270fe6b37d577c59371e3d359b56449002068a8dd6055f2def39c3e811620b2a1c0a87b3d9bb8c13d12f060dc68ec642eb3b41b79e08c9ce40705f510665bf8f9ae88255acffcc1dc6de775681eab04f0060b43015192a0f70c9aa65989d3ecfbb03f17566b858b7048238e1e83c71719be5396a4ca9319bc26acf7110d8db5d41e5b122d11d2900ab1e09b9ca284901d80f6986633d6cb922d53ea8bb81633a07e99b236f54579875fe410850608f983cca99ac0939eaa62fc0e21e25f4646d1680763101d1a1f784eb3ceb6a80d1957753b562e74ca8797e3bc2ac0e77ff419f83b5b9760277c26e5dd485645f4defc133b64faef24282e03b16cc9ba3695885c9919d9d23b3dacdec9fc0a8595d0f47d63c9a0a96ac1611fc0bb8025dce0220c65ff5e9077c66a14a54900f124c1bddd619f89ebd547ab8db3d891761a7d213376d813bc516cc8aa274539f54b85ce14870a46bb435cac95674e0b8cfa25afab0aee63b0ca7a43dd811af891fd70e9913b6c135ae531539fa75452f3265456c32f64fb2f1c565457a5689ad9b1f23b30520d920b7121bbdf1d02ecfab9d7d8c1b813f67285360e786d567258599f468857e40f84c3c50af0c76406485f88dce95b49f0a6699f11a71590072ad643aff85f96a285bcb9e2d711b56fe802f7c7b1591213811df18746edde0c1336846eac7eb78eaa5e2db61c3335ba77393cad5b0a5416812bea4b07e459b12fafe6d4f2ecd98939bff812d8faa1a88b3d9070927d05d5675e34ec918c9313c39bcbb3103b591635eeed9771bf1cc37d3b5df56becb8078fbc41c9faa58fe7574a9cb4b551a2421cc05ae24b3cf4700d84a43f29bb6304b2a607d8db87588d54d2f5c4e71523d3d0042e582095d2e8be54f9df6095680181c253d87d141122fd5eebe43d841edee6084d5443438a5da4f7defcdfc75034d611b23cf8efe5c35b7245f22e23bd74b93a0131c27f1ef4358a5d3e522dc7f0172f976a5ec8e5690146359f60ea42eeb78af572e29a4a549504e410d2f4124e69a80e3e7cef4dd09d62657c66005c2c324965ae80891310f355608b3c98465ec76d1c8b86c9088a0e3accd97297625480e63d38e8b0c44b49c278525d538171e0951faf1c1a8f97e7371c26afab4256d6aa9e0004ebbb805fdff451467abcd5c6f711ce9dc5a6ffb4aa1ae824ed25920b0a1da10a0eb69713258b89f2c117cbee7b7139b11ec2d44f0440bb7d2904cfe49443d0caba60ff1ca4a9e29a81ab954e0b59e5b0b139233528824801bb733e4e2f6b4898aa43e435a82a23b479ab7be371f48d44b052e9143bdce111db12a31ed2ec9ef62d704c2c54a3200abc7bce0558efc544ec615304133b60d22845edbe9269590425a5161168ad27762abc1dc397f732b0aa9d1c56f23128510020020bb9f7f88410f5347bbd451ea2a0a38091286f3b7c4a46fcf55fdd0e69a0e435e000001bc408beac0ef74602f1306235e8388814fc09924f7c5e52f9e68fca3462a90df010a3d6c287b61109febe4e9bacf24fe28a6314dffc5a5837a27b3c98a78d15408ec7acaa22dbd86eb3b4c02259a75313a922dc5de263f801452e6cc6c2d4ccbf06e4cf6b0ef1027b7036aaed5bb9e3d40f89cf24e39c4e941003c07fb6bd476c4f7b816745db5bd7cd76327510791b8ab745ad9ed2eae0abb32f00741c6406d8374c7c36d7603a7a40f6bcc4c06182c5e82a13ebe226eeeb5b498ea91be0f2c79e103f56125b844bc81a676d01b8bdae737ca77d2a143447b97f846cdb26bc557f054a80953820d5bdefa266a396faec19aad8232d7c80896ed147cbe8796118f13de9014dbd946e084314fe574e590a3b1d9758f3ab66331b5b8978e067769b530ab325509e1e86e6343460e5b7b5d1643cd3e22c19e09b2cfdf84f2284fe6adb2dfbdecf5b11b384ca04d4382728cc29de4210220c59cca06bfc2358f7c23d4129fae407d30d99cd2b6604e8a98f465f1bef207d033f49c60983f54950729058ed2323d2705cc29b3b23be8c13ed77467d6aba248f7860f70720d54bbf4933f3117ccc5dbdb443cb39e1bc2b5d766413d5963f4473f1cb6571d0cd9c1791260f6cc2befee9bc08645dde02f0000000000079a1000000000004012cc0c52938c39cb9455519e7f87d157e78ddbdfc96b504a6b2bbcc901807396b46364138c5142885198f9868ddf0d3896329c99d92a8540890896b71b92ce160100203bdbc86214fb2db0ba59a33aae125c9f649e42b388631c1d63dc425b0131ca200000052ce54828a8bc053ee81b2f21963827bee4851a1ae3ce0742c5f406762afccb23aea6ba13ac05d5d42c42d9833774ea8e50f0f269f928aafa1c7a4d9501a1f3dd4cbb6ed1ef1d4bf2e106eaa955edffec49764fcf821a1f8c3aa4e79ffd73ea8d9927e59468c7e9b437905662dd27d23a1f094d7488ff7a2177d516f5a076cdd0684c354049096e7b2f029bfe40bb6d5fc89524e1f6d4b7ceea389eea77b9656d319ffcc91014627682ddc542a1c37fa6f65f6a0ffafdb172b0638c17fb10ec3f3065363dddd69a386cec4a0836d034e406fc8ee367bc8834d4888da97836acac2fff3f1c2f43bb74fdae39d919516fa6123f795153aa721f186029a6d44e79c7a9df412ec057a888403e3831de7c5ee8d63c1198cf5c205926d13372c2c57e9d1416f577eaa4de55cafea55efa990bbba0468f9d7c465c25ad2c9f1b248243190663fb8880c866b3a55f979a0c818edc56fa6580d2fc8f6b47aba81c849636446aaad9597529adef7862be22d0aa22d63c43b3c06d353049f8af9cdbf0c1f1cf8299f9f15d1c1cc6bfc33da2ff72f2328486d0fe241d2f470a3fddf24b1b5886b62102f2f2b27223c742366f38c94247d46d5b72795a3dc29c68e72e624f8e4a947624d67a08a3308d0156222862eb718198c6c6003c04866ef8bcc342862aa78f5abd51fb102c5db93651f7a63effb0262579f597120746b1e7b6c6d119fe43d0b91e72e991e1e64197769e4e0f3227ee6b74bc674c8a8e522b89b96add9326da55835a514bf0b9a069f8ab3bb6b7e153f0721ecfe08f101d9a048a00ea9b3396be8422cb524710a82b4e5568c0d79c67959b819267abc59ee03037795f99231f7c7fda650bb7e49f9fbf3ab8ca732ff15221a81f77dba365ed01804d1746829ff4ba508bd8eb29b93b97952b88f22588af783c8dbc066e325e3cd0337eb268071fedfc46e3901c453573f9f8c05ede5084393a5f21a3a4ebcd338a2a2f08921351dc754d1c056400bb2ce98d3d48a091eb67639b52dc49fde441e1e1840a529a6d3e48e2e7d8c3ea93dc9398d853be6f354b63eaace060aaa6906fa91b667926a6f28fd93a73a27143de0090cfb766aec7f03cedc5d95951de0f87ba25e8526b8908c2acdc97cd309cd2816919f5e78fec1cdc10bcb65175090d395b102b88f34f14173fbdac32aa0d10aa4530df36f385729d7d3cbdf123fa09467f9508233aebc6cc2f3f18a15b30a39f5fd3b1ac2f059a1b62381a8eb014e0aa1bb5664ac0e95fbd7644ea0f8d598affcb938c7a2a3757649b0a49565b1e374c6ef64fc2a6380302f53281570cc3b8745f4ba764e43beb39bdb1e8b1a4682dec909906358994b6e394160ad0ada27faaa68cfc7cc7b9cb92a1d53216b88bbc6d30849c2e6ac6e1c045dbeeffbe6ab9c9ac29a20b0ebad1a4348d12c6a0fdd33ace14d97a4fa9909f24016c3000c1bf9a95ba92ab4aa4d0978deac6328936b0400c64058a220f5db617c4a85f30e1c5c69c66d1e083604af3e4cfefe69e1fb71a8f94611ccf2c0e239636167c7cc29fd142af98afba53f33e4aeeaaedf0e4e2f2977af7ca950c51bb3e6627cb8587b0391c8232b0bbda777ccff37610360d00d6ad4a53843d949e745d4a349a3163d7c9c9bc5609aa6af41973e5eed540fd9eb3da33ac81dae291ba7287d923da7357afd0a2636c9c66db0ae265f1f34af052f3af843835ba295ef624017639b08cd7a0222d51e14024d7e63e2d635db7cbbc0f487218d93a66f827eb7691b32579eb34e3a12fcf0ae911ffc729a8364d6a8d3abd8f30ac0848d407bea458b05ec204ef28da8610d0f685507ce1c90273d5759be107d8ff664917fbf88c2a024da36717700200205e5e5b42a9cd66c3a3c9ed62d6d78bc2f2abfdbf98d2a0cf69c5ddef9f850a1c000001bce19829f0438ffdb26cfc04fdffd090c313e9f5db141eacc5ba9562a1d8577431b4b256507df78ebba6579790266b5149365b6e299bf3f8430ed35dfb9da4848288a807cc6bf966eb496cf9fbb0597bfee79696524389cf6bc2848ddcbd93b67a229bd8f1d90860d03192006411fced6f8dea22d7dfdf7731ddc6f01ed3119db9c3393c23ff556daf5934f7d3d1e3c514c3cd2eacc1b396453ac941286fca2214356c1e68c4ddcdc157d105d65658e71e412f4bc5128d15722124f8cc652af8619e148640a089e9fdf956f5827466314c100334853493db77cdfd2d5edcacf8ccbc5d2a02990b1b30667521b358a32ae0af10d6bf1bf5705190551d0d581aeaf34faff187946c892f88e812b893e5e8ff2ccc8283a34c4ae4b11b27255a098d27d761677e6bfdf529247d0b6d449dffc4fa206ad318aafdb9d06952bab1b406599d7d903205738b1181753b4b727060cbb8c4797bde189a03d537dd1cc90935e1d1e9d94b041d97afd750a492ef85b909501622767dc867b8960340b9eb77154f29d1fe13f57bd677d75a01929cc6ff1d4bbd2825a076f4c7779e56ff88426c453ce826911ef965e7b8fce25e9a61d2bfc6fe672dd3f620bf15fcd617caf9991dc84400e421521f20d9a8abc70000000000079a100000000000400f552a52a832a83697fdfe9f243212720607ab33d8984d305ebc73aff543ff74efd575998b231a8bbe76c4af3e8f1893767721a21d42359ae0913f67cf08396a0100209e7a48c3c0a51735434b71703a19889292d0e9d9b212ac00ccbd63d78cdc4c560000052c7ee27749fd796d32699f16e7d445fe4bb67264c32ee7445d2ede43e4664dba2eb85e4f0dcb3a528beccbd2644bd3e9e4182122dffc6220dbc45bd5ab657d4e6b375f87347bcd6ff89d6916be2155a91f899d8e3bfc59272c56c45cdca1ef606ee82a18ec0c400b71e48b17fc94a880c87a15be29727d416ee74e82e66d925205b193be85286ca105b21578c14b372336e45b2c626bb297a8118abbb6c634a83bb01f3ea8c3b2dcecd5d3103b6404044de33cf7be089f7a73e510101ed626fd7f59b78890068ef100a5fc5e6c7680d596eadce06d9b62f6077cb97782233397bab8cfd8aae6844adfd5f6621f7d5a8aabbb4a93eff8f9c62279a8472ca0d9d4a9e769f2bf8d931dca2e35a36d85457ac8de8e5a4076c6efa219d97c00878db48a1fc73935f53dd9ba3b8448653d6069227b672a5681eb55055dbe289a20151d3ef40363f73c5c739a0d6e2d927f56fa0be56776ae6c0e27d05f28f8176e49ab89496828b4ce4cf0afb7f594a5236223c5d18bfd661f993af35432621485368f46fae1a78f04737e9558faff6cbdd24b3814caee17e186ca002a0902e540cc750968bfceca21cc006c7a37f689bbf73419621e5d32df9d3523716ea0376a0f48d18f9e8002d7f25412d0e1286b1f3ca86a281f516ac55ba2839594c7281dde8bea94e7d4f16d14daf307b34cb46410ced75cf5e8fadd11b9723fdc9fbcc49581b09cc52d111a214e1193b96ac31b4da8ef8ba9e7fb3919c1bfa74fa5fcc46754e3a917ac151571c101e1650384d9fca33e6c95e2d074bff5aa6cc0176b2134ca63d19e5961dc247d640c27363214314d68eb75d6547c1d362c3e608154c53f870263b4d7a0e4984b27914f443e86977553ad7b2ecd5c9f0620f557f51a0bd8ff7a7c5e236aa17f54ee35d49ceac1b5d7b56ebdfbb97c525703c2b3a7c8c32419bed7abb7320515fea6b566cb9fe568e63cfe076be52fe9d7509cedef0c927adeacba4e8f2a5795c045cf84a5650bc45773d26ef87c6d1e81d360c396873aee658653f34341cd3981671ccf47ceb94a04d08eca96bc4098f4abaae1b76e342e0f2351520671cc88c092bbc2762e72146a1198b14c955705c9858764a227f055a3e63e13e213c021305e5d7d36cab569183892323b1f3bed05ca376985197ec41b2fcc1fe46d04b58037988bd9e181f670a874cbe2a05843f2f69e974dda8f01afaa5633baa60aa04697b3a8a4ce2e66d5318d7981123a5f5bb30ddd8c9baee784c9a7eb32c60e3f49b81bbaa673d49de79d03f68f5cfbf906176a6e2356a7f547edf4fff038d0596bc28db38d76215bc0807e3a142838ea1f2d6b015f1f17358e6961be38d3799f37d9a88f242446b3d04dd072861c54d0d4875e10c741166aa1e0ad479e7e6d63b9bc88b65bf3c97156bf20fe1bc17249a260f2225956c177c3c1f47fbd43d14bb0f691ef8ad92875b663035d2e0f92cf777ce9d5c46cfe3fe85e4793ede64ea25cfe71abf1c78318f5540419aa8697852269abff54986a670cdf23ab8b98770c7ea184a1ae6ce089a1e3abd090ff0ee4f1836ed97b3980cd297c2b2e83e6762877ec73a2df234080085c6dd6441c01f6706c085837c0fbc018cd8dc1dc2745e1be2bbbec9775ccbec4cbf975c500574dc4b0b843919373686b9e0bbd47f350e77554f7a4ebe1f0ba8f198da6ed92ec23056d8174e5a34e81159d38e082ce88bbe53e4cc51cc2d7cca54b037d09ec6411362b008a7d02bd781a6729896e5ffcad76a1e8ad37a2f704bfba39ae376866cb841c16aba4ef90342321fd229161ca218292dc283a61811993157f6ad8a332045c673cd6e0b2253616dd6d94382e3b77b6311f74e53c020020fddcb602e0537d5f75ccb858bc71af559a404e319eb1d702ebd38ef80005292d000001bc26271b6b3c1c1b38ea3ac9e0af37cc94a40d6977cb1b02ed7ecfe8a79d0d39ad5cc98d8af7cc6a1efd9335bccf6571c2763007b50884f6354a09940beb6f9d837d62fb26c31bb588c91166e4908201270136c052eb7ef674e6520da0a83e29308354119e36f90632a11b201f778e1b750cea36edbb01f8aa67466e348175ea46b6aa457ec48af737128c95cab6d8d7a720d094a8eaf0156368267431c607bd20545c17d0ffd4338b5e5c000e53c514b391150b6f5fba4bc8a6bd58275b028ea6378add3bac9136b3280818ab9cd24be7701a84e96e275ebd42136a9cccc3cf1fc7f1813a293b342952de9dcf7a07ef2133543f9f0b39ca7e146ec518f9e9f80ab2c26389eba837f0b86424e63a97137fdd8347b3911e4a5c16f96d3fbfdb3ff07c63994e10cf9f681b4c4b77a6b8db83ee20353f1db20df81de09a8d899afee70a42d4e9028ba1c8033cba524a5424431dfbc87c11b07d1d3d25d073e57493006ac65f1031c010fada9ba5a64315f1d94e81859b7ef301ba96733304612e6c21d667e86dd3d793c980312a0f3557e54b61cc633c16678eebf4a9abb2ef36055e18e39ebdad72c51b238282aaf471d87d7b8cc0e589f6219603689aedd7b689186f6cb707c5da5efd60b7abd70000000000079a10000000000040d136fdba7ae1b986258539ba31c6cca9e47edca4e2582d5cb06730903aa42a4c53e09c0bf5ed18c96aec24484a60267055106186ca77940bf67c89334ce7a8e30100204d9b6de85a6d746c5a76f48b2ec7521e556c0f1dc16b7e79c1f250b6c71e8c0f0000052ceb31bac7d7bc26b8ac4d23f4c53fe336eb31a14d9efcd0512826bf284e46c4f363dd1f72f0b661a5398085547db12ee54b4cdd0c8d95e33a50eda6eb4dbe7fa8fae75cd35d3e668987f99c54de5666c27107a980c1dc4a62b64dc52b34a04e08190eeadfc314f8e21edb75c75075d7e66c472ca05e1a8b72bb8a0e32167e83596a6cc36782d85619c04f5fdb58e8bb22e08229cd762e10f06e608ebd153a43e7dff09c67c6075003c1dbd80250fd276f8680ca7b11ab4406e685295b55c8452d35da025e556ad4498ae9585290b9d93f32f655c8177f0071e32e52ca9f8643ea9674b8ed26ca1235aac77d8cdde5178ade8020f3b7aa9cbb3f1d1f5437ed7bdcbc4cc62d589a93a928e9a482c8284915d3896f9f99fb7b86ceeb97a9136552fec92d9d4f23249a6e6916ad0aecc37f13f7ccfdbeff9a1c52a84f5eaedc899207ca854a838329c1d16220bca855dcb916692e1bf398783cca92887e74133beacb2bbcdc5702867e00e3f71d019fbcc8371b54af3e6e0dd1be2bb2d30faa310a9ac5d30ff8aed8901fe9a03c0d583708667f510eaf658062ebb858483b3b2c5a0ffbf83a7a60b19675018ff41b122cf3ce34ab1b679d3cadd0588a5bbf3c1293cca0d8682d216185374d01c014a77d0a4e16e9f76ed3604065a29249d264a51ab426c3fc5c38e20c4ffd8bd00503bd66e4684920a14995fac05f88227c3465ae4ed0b9fdc8c13f4561c984bc44f4d8825765b489616349679cb12a7ccd4a8e7ccdc7f2892bd3e6cdd120a7655a33cf9f2ed6038bb6d2050f60e87588a6c033d6ae474c15863d1f1ca50df92c688d976691686cccb8f66d6b65c32dce6f1e97aa4c219ab8b1e53cc098a48179be4c80eaa383ab79f2bd8902d67e20b0febf3e91dee86d31b0544d5467ca9e052d0cd13871c3414e3a15abe19c3002fdc97229b07f8cb5b59cebe704e65696eaabca1e07711ab8d9c7356876768c63613d34b637809931ecc101a261663fc83be575a2f91d5e393623cb66d710db5966603facca34ba97d7a3d2b1eece0c3f3c5fb52208c08fccdf4106c96487e6828e1cbe2131cc57a92a015e3f80cd7cef32405c524dd8135af7de744b7177c6dd6e6e801d22c104a5f27cecf0a3ea67e339b995926470630161234cce7d68d8f01e7cff9e15c1e5eb51deb9d98c01aef3e55a3693ca5fbf6d38ef5d63e92fefb98f0a7ac4ca4dbcff1dfc641ef8c491b9f290ac5821ab2032142b0108997d3c3d3d11c2786269bd3c8e440b3e7d398a6c4f645d2e2280fc2051406047243c1deaa9199bbf0a1c2ce8f726c70767236b72985d449d9d097a2a8f77909ae813276a5ccb57cdf3de705b2ab7cd0c74a84c6b8cf912afa3aedecd218fc9b4bddfc1ce9e6f84296c8edbe5870a2c0eba5cd7c0ef6c5694c392c0f7ebcaac47805b1bb94529816356478df3d02426dfe36282c0af4e95285ec0efe89a537aee6abcae0cf44db97241a948c869bd5020e6dd90cc14344eea94ab166d34ad0acb982d1acb67eb823088744e241874e66d9dd10f236c446171eccd2550c70674857b209089aa547b28ac2919b02c9a37fbfba9ec6d710ad2cb99b07b99738ac9ac4261e78f0c10b0b7d27a98442f1df4a0adf10efdcab9148e7abe0f31931c0bc34f46332b32986a4f6bfd21e06fb2bc4bc6af47855aab263fb4cf1f706ee84801a70c50ed784197b7919fcf56562cd01acbd296c2fdc3089c8fca0b46de0c1ec49e5d807c9747be7f2f17144db7acfa0343cd4af09c7b16495fcdaaaee5f798c7b9df15833b440ae8e25952694118d12976256ffe09592a8dba7e35ff9a6260c08344f6f8bd16ab514ab5c7b041c2fd9efe4163f476090200204592995a6a1b526179fa8f13d8a0f9df9ae7fb337934a7581dae51177b7e6a0b000001bca1e5210d265c81eebe0a018d9c7d9a193475a0c470de8ee4d068aef8082876ce41cec1521c6f22b48766b27d668ca12fea155b231a607f1d259b5cb7077e8b8e350d05b8917bd707a100aeefc41f41ad6070f5bd03296ec27ab4d3686ac2c08643045d2bc8bc32066442647b35a4720bb2a65c917906a2672e9fa0c55f595430ccdfe94887af3e8d9a851d844290de9e7eff72ebf691afa2363705fbb5d99ecf75593cff823f23ea65def9bec516b0374d53416dc2304fba55cba181337a65b9934712ec6145a6f4d64fb000e99ea8d1d5ea8908f966559a6fa15d9b60e66f57839bee0ddb21f41388fcc05e19088ed46114bba97a7ed54d745eba8ec220660e972b657e71e60c72cd1696bbd1f35f047058378787d0c7059a8c301c4df2f13cf0052e12272f90b68755d7662ff2cf0dfdfce1d2a96ce33726d4527a9eb3f0fdb3c63295956ff35dd4fb3544c6f6e32cfbd5cbc970d839e6c71b88a0332d070d1abee25859853ce04c02b61ae18003fb194e9981c392ad392aac5793ae04a446ed33625059a0fb3ae0c6aa9ffcf2fc11bbf96dfb8520c0f297672a298a522c86f15f247081a6aafa0ab012e08eaf1dc277fa02c193244a30e245b927e1ddf58cc18310c73db68a03bc67eb4c0000000000079a1000000000004055bdf5726d9dd4880b33e0e0e19a30ebc1f5b605c4005ce7199294b5e91365772ab8417ece9e397ad866dc34099d18d4c2065b95d8acc2c66415557054efc4d5010020303d607c1969e3aeb0e7e27e546031ae66636aaf05a5e531e50569826b1ebb3b0000052c3b0082f623abf3f6a9eebb0c444f197750de234ab1fd5f1ef96097a7e335ebdaa14ec66c9e5c50c9efd92fcf3ea1fc517493f6d08537a9c2f8cd5ef134a78f3f55ad3b7b15f638abc81d707858be06b5b331481927091dcabc20a3de147bda7b0ed8c694bde4af2f2ef7845bb33afec5de47fb93e9efdfcdb69661847855fd6343177697899869e9e5c6de05b15b37edcf8071f35244e06bf3bbbb4a99ff5f1e16a9868a0ffffb9b3f2b7b527a61920ef299fdda9ab0f16f193382cb0caed719afea6dd4f494318d2b59cea716586304a431ff42890eeab8d8c6001f26dab69fdb69ae420c653e8304bbb809ba0c7a59d36d69fcaa8b366e1cfbf1772e0bef2d2ed10cc3249a36bb161f7615d18a148718053e5650af6c81434dd4702a7846d58b92e6a1b08369c4a4419c9a80454ce5b85aafdcd4f2b35955b435458afab7f8492a4f41cdb36c587ad9fba85b9ac55b062eaebe7d1c8760c3eca0182bfeb14555875a539524af90eccf9a674cbe74dcbda3c90d3e971826d962f87e4d68b28a8cc612d89d579820c3f931623d53a97dfa694f764584a108d20f34aba93eb9b0f4e4bc0db797eb60610e1d243269d6c37837e9c82fd37d69e9019ca80a8c3d1f7458343fbeff7e0e5294b3bb018ba3b69f74912e304fbe51be41ad4e3b4654358923205acfd947608a93be7a7955112d5075246fffe3392bc1d8fe5c989f6b66c636b160aa736e6e28e0472525a4b3f7a0be9766ec4a7954d873e1a604217d66e09e077e41e1c785b5cd7dbd2c175a329808750d5d7385e378d5395c7dc2794801d8210fa86a7be568f96c70f7fc0ba391aec553e322a4be9ba2b78fa7894d9098ef3e0afdf3834b9e95487f5698f013ea61aeae66f3c1ea027adf5da3d217e9a049d114d9eb2ff8145658d5210e0d72dfa09fc60aa103e35c1f73028602594f68ab2fe7789c68e100ba3a0a56da60a458662fb4b9e2344b096769645a27bb2a71e56ab5151ac43a29a314b65ec2dd6497b5ec894b1909372b40f6411e061cb6fdd1aefb6f75d3a7ff61997330423852b6c5793402746df5241a112520ec9ebb637cf54b73feaa792ad150d667fdb44dc7925eb00c25542596cc6b2e710107793daedeb18d6997e5b9a706a6056aa96f2d3b6a9bdd139c1a91ab1543bbbfbd864fc2dd22d78d620e5d140a2ccfce0e054855cd134c75ed7c2ce87e930aba8194e06a19b34722f9d797069594039ecca269b44f1ef4ad5ebd0705ec7296c548ca53858a90ed3b385bf0e3b51a59d60649cf589dd5db6b84d04ebc3186fa872c12b7251cf9da4ffd1c728dd204bb550c512f35185205c413467804379e0b2688b88bddbd9c8ce88e5c8829c709ea10d5f3c6bccb6c6499c31547b3d5f2cf6ae6f9021ebb4bc0047b15046293a62b1aa1a488072ebeb36462563f9dd01a85c3b330104868eb3ec8c94e51177a975c22f7505df3fa6434b0df5b6fe8c4979f68f9ba899741f9f090cc5cdf693d38170855a83247c42c915f2f57298050b573bcddc932f9a95143c94890a66df8aed7e4680347312838aa6b983f6441637af2e15f78207e7adbaa36aff77854ebb1203338b1ea9e3d5d8e84228aa32d0fdf79d3725d0c3718496f7bb02640bb9c37b8685221b640dab3f89323cb25a332a9d4ee187899ca7fc345ca58dac0d9fe34c79659c69434bd586c95ad3458b5db07cf93f3be107002e6ef5f9661efcc5307d5e8af8482baed7ce6f845b36c4ff236bcbc42e3e8f164cfde3a97f690f797ec483f79e22220ed18278f405eb96a00dce1087a7fc3d2bc97a9e42f433e23a872bb7f676048bbe14778e838afbff38c0aa47e4cf5a1dfc1f44cca4958db5f8e990200205089bcffa01141dbbf46dd8b6dbf60c9ed30110e0acce0bcff700f059921e609000001bc544b0ebf11710907c160ce522dc7c6aae67e252861371c3358ed780ccb05f5fffc6fe6f0eb131c8a29a7cb0f44dc0bbefb663f082812a13d91c247ee0317a4fc6e6112c2f660665dbdc7bb63e5a85018cd8fb853d31a4a0e96ab5e2b11cb453d5b9eccba1da232b93b3e1929453a17195f74bf12d0b41438c161be107697397bcec7ce4ed14d71b1f82d50f02199c5a8c4d7b41b6eb5433e16cd5fc1d99569b7b03ee230a719eebacc2395db69d12f44fe7521460581b95644ca389b2643d4e1749fc1f0dbaf7be0b1ec6924a1341b549100d4c9b14e8730edf18e18e14d2f36885b4afd3124564dea2b4574a4874dc9aa688fdef7003833254b9d91db7280d1ca76d541db1c4bd2770246cd3d975163d50f7fbca158ab96033afe72f7d80cdb570a440025e03c9002d67dd89025f0ae00ffca072c40c9f203e9b15d7aa4280644c783fb39e943f9c5b5a2b37c2328b29e9d255f6e1bf118f1787266eaf4d4e77c3048e5b2fd18ada214bc417d38ababc3f0143c1530d967997d28655c5f2690eaa88647300fc9fd8677040d8248bca264fc037d8b28dde591293da004140ee3901b8e9d820c388f86a4bafbf15f52cb0a1c2809dcee6a2ff733fefde6a7106f28aef5eaa4509031a6f4610e0000000000079a100000000000408a95042244da9e8389c54cff3c69a6aed03f1e30b3ea6cd8ed50878cd7950142a512f37d4574cbde197c4578ceaa549bb90cade79f7f0172480884f0532db2cf0100202d37dff04d2cef5ec3d090bcb6369c43338f4f53df564954b1875c62da14973d0000052c0fdcc2d4d2c8040f69aa84294ceb8744e4c2badd22c204142b9c455a435a0ef5566db1601e5c575c17c3c11a35ad0b52494424d588b3ad1722528874d113445e8195719fb830b4803468cd952d429fa426e5ceebe1364a10422b8c812c5ec669f202c647e6d4ede092036c3143f37d35201778dd46847d1a036a25fb8304e9079b1bcec75f37b62f84138e8b537e159f643b0868bf1554361343d92e3219b7edbd1cd3df6393217234a39c3e5fb485ab197d3bd01e389427368c45266ec1ac5c5a20ccb1b0f12372df90ad88e82c359feb57faecc3125245f5666bd9f09179785cd02c791d299ebc2aa56c665170027c000bc1d2e0c3b4fed361ec12899d8ca33c176794727d62f27abb6759e5d1a1bd9017a6ccd0bc0d0b299de95fdf3e38c55b62d033a58fb48305335252b7c132b2a6714111536b5191a9f1b0b5c2c14076410f499edcaf6ba095bedb144e404c8055415453425d070d06fc06d368464373e973bb58948ac5092ac24b58af9e3c4ba9a7755f08c2caab0f920eb8bea36dbd6561b05b850a4c6d6569a5c26266e831d6191fe7df7503fb5a4243ac10b1b944d05c4dd7e858808bf7dffb093900b5524b8fd46bacc0b2a30268b8a1df0558a74abdbfda9e20da72afcc13bcfd85094f315c84fcd514f3ca591165c863a52a5ea097520304a81fa54f0ecee10bc87b5cd347fcd6024903ba7be151afd83693d1a59149c14ab4998e761cb0c700db41c6e44162ad3ad2486065dc4ce78da6e97f1edf27693febd3b9451ab7b7376a3710a695378f6dc54a8c7ab4ef7213a9be0b7a0d14c7f6a35628e8360c4591d2d4eca21d42a777848200e84a6953ddd0a19aa483dff627de08aa8e5c3b726f361a93f2009eb29b1e41bcbb61994694e97458dc8613728a0d6ae38e0e24220a6e17cf8745f6a33c577ff351765a53662694a347fce418ad56f7b0cacb0228fd28fb80f7b17288ca25b64a13a9769fe2eaf25cd53ed73fc7f77264952ad55779983c8d8e55fe5426b522faa2f4a255910b1ba17b10fb58affdb27f7ae44109c72c1ffbbc9c00468db4667d57df252c1132da26757b781bf4a9e16c2af3d51bef7cbf01c5564dff9123e3930da49eca6fd0e6dc3c035fa8dca1655f5d76a384e35e69706ed1e8f8cc10427d3190cf81ee5efb2492b1fa2084f371d289cc65b5aa9b31d23a8c4a58aafaef59f0d2cc8ea73836e999e01ccf3fb48c900bb06dbfcbac0523724191e5969f56aba02c4fdaa77b068d83e59921a85bf4dca12a814ecc597b77fac7b34634c3f3655ba6828bed3ea3a0d44695b6789ccc402462fc643226c7f7341fea95c1689514f19d7a05d470c831f24b2728da5dbe046977c4e2a33323f360087a9a15a6d8fb7c6b3182da74b99eddb33822848dc4045c0afb47a093468f587d643e3239f72fcccf2dd61dba36ef84087fb53d3c3a203e9ce02abcfa9d5f4d8ba176e4d36cf912f26618c8aa2abe675f4eee86177be1562a18b0ba52db511b7fe228c73ce5452f7506ee0ad529ce7dbff0ebf31d382d648caec014c202a57dc669e1ba43faa2dd56094210f25cfe83842bca1872e1d78b93fcc7570d6213a85df0e1a2106005c1af42e819e00ab28668d6b07851061b4359f680459a5740e2fabcd80f039bcb94ce3c658b7241baf482d41a07596455798aa3a018c0d07c289914405b1d609cb840b6ae4b679ce7d851b95bd55cdc06f994aa62af06632afea2b1e3c61597b67ccd2bd38efbe0f224451a7771bdb1589aee8b9cffa12f5f0618bfc6f9105d657ec187fe160278a13e0a93f648b6f963c2c4a846827dd881dfd5cde221c8d537ae719278030fa8bf740ec55d47f7454292701b040200200006015c13eeb041da4357e8a0935574b0c3cb9e15e13c613e6d07e67da53942000001bc993d9156d91bb6dec6a955d53b55adc135e9563580400efe36247f3f5c5ed8903790635d069d2eac2c861d20f9c8237bc798e2b75cee3aba2b5cef66b938a88b8798289c5b190d842b77dd29c89861a57ba7d54226e45b7c4db24ab917af105f2157ae420a0b8f017f91818269de715e2e2dab6e851cd9b511a39eb6cf742ef6e3a84a7356b748b5df9b3d2fee45b0b563d621ae67c31e179b530b410d895479fa9fb2f167fdb12add01446873ea0f71f8e42ff80dcd4fd41e1d5a44a9bbc785497cdb38e3a891e779684314fbc09212aabedc9304daea02fab72f21e74e45f38790ab5e71aa6a7ca9c495fdeb40acc5c59065894b9741b19b68e7706187e506ef32d151229c6ff6502438f59bc042a0cc3c3756682b64eb7b4ae4429391e10e0fe18dd8ba3ac98094a8a9acf7dd70256bfcce4b87a895da24d0843f09d140330f440bc9d2897058152118a07706221a129f24b1ff0007327840e42a3bb8654c869a5356250cc87794bd5bb172f43d1a8daa2a6668a014c5ed833e2f5dcb4fd7616d4bd61b53cd7a618f62f8074d9914089bce838564f9716f0cf24441d97c81f8408b8646c6bb2f2ee9f15899a0f31373404b55ad44f51b9b7f9007ee0e981b6b2707665b7cdb9060606bff0000000000079a100000000000400da626f0087c23ab7b30e796311740f265e2e73be4cfd69bcf624c2ddace882b8ea19bca16de5816eed3afd19f6d83bac56657eb6c1540f11e85fdaf296ebc8301002009c5185fe7b5fab4555bfb78c322deb1e969e416408ccfd06530d88ea398f4110000052cf494f4f984e36ec289727c3e8909a4aaed4ce0c19884deabae1123bc77add11510d22ac37bb663399d089168d180e2d4481205f5b149f70e6c814b802d8450dc2ade43d3d53e86999ef46574a338186cf6512cec6a03cd7f56e40ccb9ae4b6dd0007fbd327ed5c5cc340dfed3985d01710c1414fa416fe386bfdd16519282e4b82ff75daf702632258765d5c53f4a6243f69798135d3d150631528db95fc6b58643bfca3923e30675da9095d6545355e2c571ed7f0e47df5ee83c1eedb85b9aed81f0ddabf43abe06b5fb8ab7800e24e91dabd13dfa91fd8d1118efe7320cedf4bba9448f412514bf1f99edc1f43c23eec9f2ab56898e766d9dc7cdf70fc8658f591be34732de9f2ab4b002664864a47f19a698afd16389f528fc6f0f9843515922cfdc91224992f0eeafe0abd8711f0a58ac157e8fc167c60a84587d12afa86167ab6dc486402bf76fc8bcfcbf487dd2446da34d0be80b883a73f9b5efe0ea375439d8186c1f6db83019d603235ce7a09721085debb4da7977f24650ce4412b721350bfd14a52800d344fdf01bc16454226da4e6cfa7ce29367c3b617151a691d69098b8b6aaa0383763c61b35c0d98036d3f055e814deba57f0d02383ee1a2ba52b8d896aeece9c75071a4c4d10ae7b6550b8efb2c487dcf59d4670ac305f0138063557dc1547ba4291093fc4958b58873d7b846ce5dc902982f0c3b0eff533fd0465c07f30451e937d9cf33f2f849166334fb1b01fa8c6eb3ec7e5d3c755ae62aa67e98218717a7a1f9c820f57d18fb2a7521459e0ce0a3cd0f61bba2727b1d19a015a26770c646c9d7364d7b87255aa2fbc4fc45652f5751e1aad11a521cb99eeb21fbc1e8d4a33ceef6601bd14718bd6a12b2a6aa532fa93cd53ca796069af8bc24c8f29a36e476b6567a1407090d88297e4bf68979c1eb177ca27044861ec09941bf96e29e90d87e14a3ef39107d7bca5c6b53ee875deb2340dbb62176da89763fb57af5749fef7e075edf06feb0ee81dd8517979e87be15647bdb01f96638bd880d5b267796f3049e8ad708ea229ffaa7302fc5ffbf8172cb236856ce04e90db154663bf7f503b85af2bd132572383d3c432675b3c23d9102461d36705cc799e5bedd2ad3f9e3adbe45f10d41688154d3fff7759f3b1bcc2a5d411bb688761b6742f7bca24bc87bd138f30fa209829b4bcfd134481dfa9e650031cd6ce10dfe653fb6b82cd5be2fbb6698c2002471d24294f0c4c2db61562cacd298a4796bd37093a48437b11ba202cebad06fbbc82886c3a1cc37094d0267b9ff577acda004b4061f8d0ea824bb939b7286205e54ad650462086e5a391a8e00633183b4d198e00f8beb77700ab3e9164b434025ac1712f0847401239fa656c4d4034210e81ef17af7a81f99fafa112360e8bf984df4f01a99843ff70e10c0488b69a018ba3dd9b0da2cdaa26595e3338a293367e080f5cdc3bdbdcb866d361ca1d76dd608fc5e7c9d4a3346a7890b9a51fa2a05321310a8af2da4740b5cc2da08bdf35735aefe707948a0638b18f3f2238e8084fc35c0b5048c7b8220cb4f7a394c4cbccbe32674bf158b2ac4a21ace118d29f7e02aea50a2e0d97ef3b639611f11f34df24ebb5e7f595e2d87d4d5e5a4d904c386c0ac8abb612b304979aa1c1c385845c876e15bf44d00850d555e57b65b03ec04c1999963122e1fd8088ccdc44a10b32ed460c69a148af4804f7e5788a6e99315a08612884e03b8871c0d95a289198a3d8ec1d3a4852db0cec96b8d2f1c1c53962a754a1c5cea823b5f8cfef081ae3a3c165ba30e58326524be8f89c67e960096380a24ac48caa13432a897af6cb78e500d3bd8394f4bd82eff170200202e428197b9d7a72d42b62ab76611f598b992662f3fecec0f9560bb344102002e000001bc82114d7da4d5d7b172f732a19375fa59086f6eebf564f85255198436eddcd5d88f642ba77bae2d471de9cc374c1c40e353e681fd1e2a71f62f2923fc86ef59b26747e1004f2e9af5e43fc90e70af12d23c7cb866afca9c1a8a4e300f9b350afaba3eceee1624e04526e1d4d2b64e70017e64124df9faee50a80de3cf759cb27680189d154b495df11e5ae33c9ffe6285cde9adb7b6c90beb6ab637e2f623ecc52b5140db4e19e7c5fa14a7ee841dfb5bd53ba812bccff65592c05e01ec0361f8ec7c3e96ab2f99a11af55bbb2e013302d9011e8223360342ce786d826f32ba1ff3a2f1bf65fd6b61fe2ffa68722c395959d8d77ad50037dd7992b826230a58747782627a82650fc7fb09bf66c12382ef77df8eae6aa4004b180de7b6564d7a6837562e287dfc0a1020479b82a937df0677ac4737cf60fe327db2f0a2dcd553e5062d42d3d48973f8029d69d7c915ad9d2d569841648ff637ed0306e68507f10867b050d6b8b004cc4c5c2a0faaefcf796198aa4a7f42c2272635f8f3cf7dd3a2a9d77fa130e70033479ff4e589ecd2cb50a274e1bf65b2488704d9e9b8f0de43a67e059770990da099e8f1ee17a3c5a9bf86223feec4446ee6ddfc9ff752f0fc8a6395e445b8107dcaa288910000000000079a1000000000004025f6473f3b71b8210218c226e71bb094befe0979efd9b1fe7caa1570e83505efbf38a99f148146b10bafe4b35f7da94c818700fba86d1bb217a1d340e5ab291d01002082ae119f9e4cdfc3f14556ec2974f17c158699608b892f84cbc153671fb6f7050000052c884b38ed2ec66f07f17cd58bc6b6f411f9705779afefb5e0e384151ba9003e457fc8474a35301ddb2faaa2aea9dd1d847a1f94dec152fa339887fa9f38eb7568905beb93cf9fd68f0d3fddfef9a20db94829ccd13174dcae8ea64a30c01fa97c59df39fe1575a0b904a79c4b988344cca504c1961787543519c3fd5c54666215263a2011662bed32442522466771f9d201c743b6f6296f9f897562e58bef74ee6ff223de27e6c8b9bca7b3e1c6d930304ed48a680552b63d1502db00fa13dee19ced6ab9def600c57a9453a5a52646ab770cfeffc50810c18ec4ed2e47b95f68bf6a9c32df05ad5d81876f0bdea2ab8b3190132ed25df76e37996fa4daaec560accea5ebe363e81a39c0c30b28058a8aa301a208c0d02a2c4cdd660dcfe1d70b5e5b34971a331e8d162c394236846f89629f0a73537975c3fc699daa59fbb2a3d107fdd2773aa940d85b0fdf4ee842e85e0e05ca949247e172824b3ff7cd25b8103cb7fe15b5e9d794c132c36adbe882fef4566bee4b6d87f2c3cd871a5a7db52ddff76e286292ae3e7a5cdb19c53aefb8a1bfdffbdd5faf7c1a6d28db85fffaa6372cf66a3dd76900f4b523a961261c73bb9bdbf3c8b0eac61ff3ca4a8d8c16c5de278c7248bacc56ca712505e7b427ad399ecd4eb7f55545cb0c4d450fa58ca7f7bc6d3fe1158ba91c6f75ed62d7fed71181195cf396a1fb997ac64db830054c6c18433c160ab3f8f9a424fa6680a2e3a77bc2401146ff05c500554ee50f28c01c2bf1bad6e7f9dfefd16520995b3591e86504d85fa0880046780ad75c259440324b8a4cd08972627df321d2e4f41863d746168708315071778df23837d3f2cc511d508c00afc62de96d5d5e5db86dc49da87a20f1062cf7ea23a55f37b983cf4ccabacd27eaf093feb5c659964fbefdee78ed5bd1a264761924be038780b0b426c7fc8d39e20927156c9e08d392caf3d2660b941fb7b0a50a64f633012fa4ba7208d787af0d3970ca5bf071c438afca4ee0e82f16f172c250c603a81be383bde5cf8cfc55b8580a42b2c4916c3fab111a0cbce27ce0f3d8aad6e4ab7d35073653ca44400b42624aab041358e17e893e553779b8f9fe6d6e67209c5e9a14af4ab7b12a4c26edfa0f4ac8423e6f9b32e689249a45417c4e2f15629fea1c7a9fd76efbc20b9c01d35c75a48d04f92f6b750e34d68a14dfcef4955f55fe40487ed6a4bfb13c10fe5e0e8eb9259ffd9d64e750c7a0fb666eeca56b5f6fe8a26946da423f7ff54b9be50e381261163f99a523992fb3f88bea09381979971eb4a1e49fbc5cb207c79126f87ab7ae5f0c29a5bda9da645d91c0abc63ac4766b87adef13ebca1eafdc67dc7c55618c4ae04f538fd576b3a4b2a8476958c61a3cfae527b035af375e31b660e6f14da59bfe35075652b4bebaa3d2e191daa14847af3d3c7a07e70412d29e1c7ed2014f3e7f2e8c4e3a36e13b98512af760206019ebf7505a1ec891f6bd326c57e77640b490fee6d86ed5ad35f169ba506e6637ecb12809466390d99ff8efb0d1e37517e6fb6bde82c050b5e1fce030b633af95eb824d65f1133129de74524a333012369855ea7c8552f2345e99678ed4b666112a4323f84050b033440d203b10cb86c8cd92521fed58ccbd013a807d48ac7656ce011cca719dcfac81800848a93c9ef7e00fcd662413a7b3df697881b4742b2fd506960c2b837aef5c69830882fb66425fd08772b1d3f727e9f6c259ada5cccfa77e91bf025ec236b9b9c2c97b75c1007faacc95f040bf67db34b0006fa3374e9fc9404522574c8907369bf4d14c33596d282ac5c0ebc3ef8b78b336eb3408eda41ede02bdd02db4bfc30dd13fe04892020020ceeaa8e98ceec3cf0ed29233add1139b324ca278c653791a8eeb857e9935fb70000001bce60b3884eadaad2172e9ee2bd6037b910c42ccecf8f8ea2e8169a96885a27e7ed3946e69641e00595b6744b8dc74c3a4acd08b455829cdad07f3ae554f065e158e2b94ae39ef98b54b245cd98222c1099b39e0c0432f501b4e27872667bedfb24c760c927765139eddd3aef69cb40ba9b0afcf74fe7ca420a59f98787e20cd397a1140c0634553ebf5adffb32f8877db47fd05543e5841341effe14a0dd10daf862667e6ac4b99a88771292a1ac3487c60eacdfa7150ce6883a194a0434aa616b5aa1ad7e9c0751d030515319b7cbb2bcbf2525314a646f6989a61813198fe247b415e25b3f8f2cae4d81fb5693efb9d9c783dda5170548b3f3797d0308b22d522214cbc65d4a4f063aff3f461b1f6236cc7f68e9cec54fe8e42639b272a15f6b6107bb3a1b2ed13287986cec8280f30c309b0360b0bc4d495b34cc7d9b5ff083055c01a92be5d58fd4a7f871d00aff6158633811c5b970eafc22efc787b2eedb566b2c4c0f1de5c39a45bef000e9ccd9f71ed65362d387ebb1cfbf66ccac71a3e5588c0c2f6ca551123ef0322715508a043a1326c6abb4e9586ae3703b40c77863ab535864c968a5747e934ab12672be461c86b4d5025b20dc89ddefd771d93e5d58e5f3676c3e132165ca30000000000079a10000000000040c7f92d683f1ec6c9cde3aecaf2839442d285f4d837e1d8ae5dd7a85369a7282867a7477f1864a136788638814f74cb1740a82e7258d62f3c054b9ddafcf2e115010020c72e3fc214cb4a0c5ef61b93c4cd0d86c81145630b97b3ae9252b951fbe12b4d0000052c207ad9c10fb3c18807125ecdf38ca0eb1047b38f9e69d3ad584783157a50951d910158035e21f53a5dc9243e2f0583f1b4a3a827b9e1df846ddbe249841ff98111daa335bc0ddba9aed8ff5e3ff58b70db1b975876188f7ecb2f82a8ba6751be8fe57825f2867f5aa6f0b8db286cf5ccff2544b29bbc5542b7320e30826ed1743345c6bb9e33d6128f2a4e5596a94916ba12be796c596c926f0bcbaac287ea1243ca5b562f87ad3504b4dc2b778ac14fd724b92d37fd9128e0e19180304031ad3dbab4d7e193af62da2db0553bff635eaff39f7e11dacb3b39abbdecb48cdb6edfd4d9045d9f73c8b018f52f738e44f6595414756f94ba653f382e4f099e6da6c2826d093f110dc9284a62e27320aef1a633d45e5eedefa0bc9beb23d0050b53e783cb2d95c7a009d2fceab3dc18f6e1d308c0537f3d71f0a473ddcd6f24a7285be57ee05b2a8c282fa6d922a1f00cae1dc9f80ad50b3dde3f9d45de9c4db62766a8d2416d3c74598ce10325038248e2e8fb704d5073bad6bfe815365e8c86fe9fefba8947a23b5f33c197c6b4d0413b8d2da8064c80ec909dd23966bb140b3a7220093b36916e6e4faedc0edc7f30b6babfe13e46d5b035d45e1c9703d1bfa8c7f4fb61258c23774254cd8012327e9568d0352ed83ecaad1dcc64942ba8dae83859e1d823bf4103f6b98b3aa7e47206c86e13fa797804ddf82559e8570a408bad6cb0ef5598f70ce791a6139cc02b152605585a03f9e58598cbeb78797243093436bfcc8ef224ff44e4a3008ca3e4e4b396c35515979b2bfe5e34fc652288afa910859c8f37d41542cf7304ee3ec3832842a2069c4a5a36baca793f3f6c312311b8cbfe4315a5c0c7a5721b6d90e38d4560bde65691222f3f4c57ed9dc70e5ae867bc77d44fb67e6b704b5d17fbf66e57590a2be3617262f35201904304c80ce8b55c1e2a07d2716c2a4855028dfbc8fda8cf1d5bb394fb809be0326e5d65e3d9b94c71747f8949ca18eb9abfd9bed99073981398b27c16806ae62da57961de0fa1e2da7ea2788cde9461c15373efdc38e6baba6aa8778dd32a489794225591d64969086d5a0f48d04164c9416bdfe2390a70506027f8bffe1299788baadbca38a4eba595d69f10fd816cda9e34d02b25ed2b4320259b8c5cd8ecdcf1da14233d50864e78191ceaaf52b1b89154455fc7903d9dd0aa5ed0ceb94f839bef4c6222adfbc64ddae466240780e4cf6b879ecc287476cf8d744d353ef4cd41c429dfdd0705521c658099ab7f1b9314c49598f09891343623cc4d1bb25eeb10febb6fe47a9f8303cd35b58a5d7ea87c21e90b24ad0e1f8558b9e0ef16e139881776cbfc50c4d8b61455942391a9899beb2a0fdf2f71a08aef0dfe12ad59e18ca6d9e0695f639c9853bb9d6166888d5c68895e2aa701a54514f710cd183ffb5fef2690e60b1129aac9c1ff6ff9fd30b239ef1962cda88aed083a15d3a3acbb47c76d0efc59aa004fe6c2395ebb5dc56127fc855a912c045545bd68b241e9da3968dc412164cdd59f888ea6a9119fe10f28b0266fa9c6568418227f5a2d36bb0363043a09afbdc0b138bcfe644633d1b5a328360f978718004f834664b4031bad5ed38cf68f49856106145bef77c64b914cb9657a8b92eb07254ad37b74f91ac2cc7368e5ae49d0c851992fc3be7cab7a00224cd261a614fa83eb5f41fd2a69ee8df7c3bdbe88b95ff0a4753a6617019ffe688ed95d5c8814f6068384478ca4bbaa887d12d7715284964f53d2f9307e2ffd1f0286c6a11f200f99fa09441e4551fdd071f26bbf4f5d9fa366cf71a3f9d6cb329747d57d91abfaff3d41478fdf0481cb1999b75df9e75c6857a18c779b02002029dba78aa14b171815ca0bf6ddeb02d072d204d920ed554920df94a2ed7d850f000001bc865336c5ebffe9dd6f3f802cea30c164940c6b9269d756528e22ed22c417476b559eab28a878ddfcf68111748b82b11c5128b94277f2c472d2672194e7d2fc84d05e585e336b3f8f33e3b7d44e11ec9aea68efa2093a657b70c2825d84f933ea216ce012cb9630a4129574af7888809f6b82458e18634be9a2c3d79d1603e834fb0d2fe87b34a55439c98745284eecb0ce40be2a2828989c620de0d98d66068ba09cc616537b1c4cae54f9a8720340f7c1d042fdb8d6f9c2657b8b08e160cf60f15991c527b6ba7a1082dd03c8fc203ecaf2a74dfa0edd3989ad2e234f1e99ab901a6817eef336bca1edf875aa8761ec06508da4e2926a461ed569af19f5a4c501f721ac6fcd25655609a2547bd3c0f93099a0a7a8bbd00b481ff1d657f965faf5ce0587524beabd4d3d3d55fcd61815f7b9be1438776e97a2d31afb0916746c991eae78826ae22d6080d4e62221490e3a2fee7fb94f7bc170ca92f24a5b3154655ac71f1bd1ee4f19b7b8f07e00f5961359b461d3cc73b284248c77a907b3025235971d40dffd13287daa985e0c1bb749b000f14200e5efbeaaa351e8e67b4c739168c7642e71ea4e698efe2da52268a9171bb2ab69d3727ba73b83", + "response": "", + "errors": [] + }, + { + "step": "upload", + "name": "relay_b", + "file": "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b50000c23c008e049892ccb5ce441c1aa0efd56ec10000000000079a1000000000004092ed1507064fc088d7b0a00c21e94f450e2276d000950917f94691b7fe42db25914b66dfe58123b0a30510d1170fbc077a2bfc4f1046e3788d54f511d400d6d2010020ec20c551a92f1fbfdc026b2f1ccb8c5440e18b11d15d5686a4ebd1f246efed6f0000052c4b1d0e1a3dd3a8820c68424da4d98b7c7a803d2a90389fc03b0e88f057adf92b25b0ef325599ca8ccca4fcb9f31b5777b628fca4b6a52bd49b761ceab8ad1c5816adc621c6c9e7036a559ba98a9a0c9d0d9eb5ec1b6dbaafec663b12a08ecda89b4c0497fe92aca66f395477cd107cac925300cd2dbf3132a6aae305b1a59f760a92c99395fdecbf9265d34514d00cfb984c446006d6e9954aeaa4712dbaf4a0543e4bfb640e461741a8df4208b2bb5e14069b8380a4fdf11cb2e01e37f7f43e111d66253eaf5d66c57bdbb6e0364e8168149cd01d50533ccfe3029670d33fc91785319f57c5bf3fee7ba7b30c8aa5769d597b48eba5c5d23e5d17ff60861b6ded6213d60b46294c010ed063bb72ab2b6c33fd1d88e33456c5e14f5e042bd6d9665ad6a3050337645d9d4697a3d31b73d1d672d2d9756ad1522a8dde597428fb1c4f3ce9d7a05e1e22f088d76f65cb1c50ce1bf364da378007f07ad581c609ef7a21278a7627139567f0be2116e8561e55aaa96f82c374694934ac8b983ee307f967b8ff3488b4efb570bd8c7acabda67ba6526429c6a1c6eda26fc589ff27b9c6099b34514336c612397d92c00b403febdf9051674f8fe3bfc3e43c660293342bf04b7ca11c3f99df2272c9722da246455c3ce936c20175d56a4f6d97150c9ea195bb0b6b4b1ee0b6d9ec970f758d1f7f50875c722d9df935c2bed732eef01f49e646655a31bf240f29d783566b1e41686e8d76af29811af427a46a2ef6b77bce9406cc502de6e95094e593ca44a4ef2ce8600d7736654ae6d54e3a22678cc713b404061bda261560a04b19b2a5ef3563590b65c453938f46661c40aab2f2ed5c37b3b3112432e12f5535e195f7dce545f79dbc11fc7158cba77c5aa41ff0fe4a219db77b7e15cafea771477ab1f3b62603b76b7c914668c05653acc3c9d4398e10944bd3ab14f965f85abe6b76cbe953cae6112089e6833f352786e5bd389f33c85b7e0ef0c9f558f4ebc0ac83aa7fb68c86463a2a01c9226e2c2e301ef0d8db3cd252e2788c7c0ec5246364f361dcaaf1241b7d93ec8bf2067cd75cd864507992117dbd60bdf5e4807e3a5b2789626e06d22b2350fc51dc42402c78ac87a75506814529193bfe9a4368538d712c836b5b5866a730672ed8ebd80e2f5b87269ffdb262776c97e142d8e2c552b982aedd19f78f00a5608db60b69412dfaea6c8fe5b590c38e0142ce343076c1d0a1f08c985070e6515d4d7fee44fb6dea4993a7670e2d191b14ed766eacbc51a11bbd527aab5aabe3bb7deb771a96cb9217a67432a298c4131eecf699220e0571074303e30f5471fc4fcef87d9391b134f5ba72a76a257297b3664c65fe25cd2bf0c51d81c60eb3deafd4fdc1e06306d1914d87b64a4a58c7d1a4366880370d111f6e3544617bbbea03efea53fe9690c1e4288d37c352e3e25e09fdfc0a4db330b33f5944308cca1f503cbedddcb51628923793a6547dbbcb9c7e35b3fdccb33b3a2a14d00f6aaae39eefa09f7d0f7a998ae070d5674112efcc3063946bdbed4e1c42f61ea624d447ceb9619077f671dd050961037f2fd28fe3307cb793ee71605d54db9a17748fd8fe81afeb978e6dfb78304b716b549f96a39f9da0a52b948efa19816ad7512129d185e00bf3b48f669c20d989955f84c9a15d7573b7ec43fb2af216287805dd8ea2f9d1d16128fa4965c062cf4ab7363e3f56dff6f94b8407346d7b6a04cbb15d74f8c745d02080771da11fd2649344fc6e96f856df9d648d491b1aec80bc96c148458d4cc6cd71ffc2c986c8d7b0ca9cbbb38ca79c24562b799ad0af8863f30ee3a51fc9c6284e1f87d98b993d29773b51b1bee69559020020b3d6c5820bb523e0f83bb3e9791213a347f8b59a95066a20ebf3c8beb477ce1b000001bc312af14fc19338fbf5607955eb9759d6db99d977e393ff7dbfe4c9c64fc869ad84a96128ba75c9744fcf3af943cdf54eccb12eb390f83cd66186b29440ba18df9618a68632ebfadf9bebaa239df7d12152db001db2d50d2b91ef0c1b7b220e19482345a0843c8f3b6972e720a4dec9ea4801b74f6f73f77ade45b6e410990cb1961aa0ada1c37c17bc22efc97731eda8c1d2547c9840be4b0bc46a712dbad5f6dbae00d4d3e1338e3fd0033b050666a9c0ec7515db357b7864471443919e1d2342ae54db300c9b84c84342aed5258c2ce003bedd763ca5de88057f16a51b3ef2048bb61c6d31702a3519bbeda09fafa599ccd006d69a5319b6e77ee319826399c9f9a69795ad3be202f4c1ea48d1c6ce87f2b0a85fc3089d50e76690de6ef3a8d3a42cbddebbf3a75ed663f25873f28a1b83e2137201957b5fd7d3ab436916b7f9a6e86ed9effe0d5ec86739c53d8e3344bc6155f1da88a7fa7d60a6f490b2535bf7ce0013d61d827c4e21f59b929e74168f415328fdc7286a01bb9fe48501821101f9ba7da508b628c01870757a50347fa5b94fb977085efe72975dcf59cae1586f0296324f049735bac4d12ca5b85a2b38f40898b77859eb1dd2f40cb7c505c54ca02e0531d32a7ebc25a90000000000079a10000000000040772fdc5aec8c3168abbcdb62f105a34df288d1001b2ed36e27b3bc177f01986e7471957cb3f384cac15e1203f23b5c5a346ff5766b1049f6a128b3ece25ed6320100208d38a6ed4324f64ea6d55241d1bbbd091d2f7da2db541eb9bb5f05d81963685f0000052c13a8240c5da5fab926f836fb1bc771ba0c75c7a37c727d0bbc31dd2ad7b7f7faaff28f4951854633777c94c85e8c5c0c3f280d3d480eedf2afa3bcdce141cb1ac801948a5316ad25cf6d35fb419eebae3e32a04a2f50522d0f7f399c6884a665af5272363557909b2b5632374fc7a8e4ee69e269dc8860bd2b0488cfd0deb17a25fb5052b40f4ccc23cc9688a1183e5c9c36b68a51658894216d4b2a481ad3d0af7a6d72bf0848a87df480dc6bcd13b2d4b874a2c5de41252728a7010b0dc3f10d6a963cf6b01f66cef8872cbb87694eb72d1e91910b673ba27b016469bc4ecd6a319d03fca9cde9d436bc3fa3a5b4ca4d7c3aac9757f08e89a6b164bce2ca972276d9b05af032814590eec3cda2217fd943da92ea2ac2bea7a8bc312a11c7dd22318ae96728b1a9afddc1f2fd3f2a3ef5765e0f8d580b1f45829f2a2bf050cf5dda3658e75684f6478c3aafa13cea789ef5fd03b17fcf9929ad1882f69bc3e9abbe42fe8d9a0375c3b51c99ba268ad558d1d9528f9bf9f97262e1093623c71685614aa6ebcbc64d20303f0954a7a40eb653a43b55a4bdaf06ed3c1fd0b107d7d9edd19a9849e7678c8cfe1f0a3bed1f45de19eb68d96930c261af3926a2862a2c743aae3db0b8a905e39179b1bb40a5afe704d5f227939f25b5c1f2181cd34fb45e153a24debea3a1cef5110e7f5468161cda0e5da5517523a82a72f203afec00c585571af37a1b8bcf464472291521ab08df843ed430d62f3ce4de47dbc902d874db45170b787778dd24951b73a4de9b656a0b746dc674a80a5b1764647cc044d0999abcf0c7fa6d8dae6fd58ceca83f4e8d8400d9428db7b2dfca1df5a04070710f608a47f9899f69bddd9ed7c7254575e122520931a0940a008433bac4a8ffdbe825b4b59f5c9cd58941f37fd5cc83ca2894a860a30db43d853d6c1681fe0f7bcaa6d15cf3346a003b32a4b03a178f2de22f9fb5101dd1aeadab07a52896d2b5290a87d1f7ceb443dce9a6bb8e2246e8a6462201ee0369e9949d9c8a13cf9d291241f8b847dbd208bd204b6d9ffcb6a74fbbb62a66632d49724232de83b59c013d3a0f650ae23f27a0e2de75f7853b7dc94770e130ba9939357777773ab2adf991f989d03e5f11125695fa6f6a2803491312c67b7759fb6d1c44d67ba452bda29a7de05fc7c179384e832a3b19bf98072a6c496ddd264e0c013689b477446ed29284353860fe75e67722e6d8effd2d9c0d9dbbfa00d6e65c00ba6bdd2712a88e0ae731d32682552e44e8db3b1662c83e102da954a4c636d36646d6b6113d12ae8fcaac45ee09548e73625abc436b2b90d6e75ab27b7060c366007b78f08f3fb1f21f2e2fb9b97e846c849a18a0cb6891214ead18cb8a6cb134ac767cb8af5fe95c870381d2f5b742a2734a0621e8322f0861b49200569e94d59cbd338377286c285af249218af77810a4c125bf40fb83f03588612af53e1934aa7e3324c7a9186fab5a2cb6a6491887cf8b9afbcaaa91e2be38d263cd7013f75439df9c43591c9bb15e986988bc096b9c9cd5d303373e79249b59c031b1efd9dd24eae2fb2c5103935f86990f75748f13f0b32018907deb5881b8ce093975f3fddb8ab037f0c7ee05cd60cf50d646535e04d676e2f1d5c4ed17f31117c103ed8a4afc90b6b40b2fbe2c221629c0f8d8f40294b0ac327cd72ea72d7759f7eafeedbdaae5745f64785c2938371c9444444d18cdf8ff722cc09ad8df958af4f7ba58a5f331dba966f8cf18078473c943f526988a474286b55bfaea1d63b7dde9f686d4e9ffcd3a84c76151dd646662a9ac9065c58dff58fcd17837cfc957e4ae9b4c0c481ecd6467c96e67cddb7bf484c92f0200203f3ecf7886ee4edcecb13c4819754e9f9408a8b839acc6d9961c31f16ad7fb67000001bc33fa24734df3fa284c335c2ad2f71a31131869f03348d34902fbf819f461b59fc1552b8f73864a2f23bd787c469c8a6f76920bc2d6f26b6814b4c16fde5e70058da8c7fbb7d7921cd5ea645e4ab74411dc2212a62fc64e29cf18a1cbe3599988c400f3b93386bf99a718ff7e085b9af922cfeee749370d9412fbf06fa75aaea52eef4cbc2991a3a131e3c5213d145708b4339c3b02cf2546eea7fd6375933d77578dbc6a621f6878327519536f7cf0e0e50bcca67f15194e0c8009970a059227e9c1b37d9cdf021b7e17855cb477822d7233c064769f39d98cf821d93409033a2ed5a4cc7eb082f76f6c2a570035122e58e3b5442a5b4ea7feabcde9fda1c31daf1de30eb417ef4a667cb124e5ab6dd902587f38058daf5d5b09bec67013aef0a0749beab4347311bf5dd809384a48e799e9f1c89a4a667598852e52d5668f4a9eb90eb996bfbca79f9b1c76f81fc0da73bb44637e8a6d676ab99b123ce3370ba6bb354f68a231bb23cf0154a46b15be3dfacc9a6b843990cf8f609f25823055a55eef0e780ab0d4e387abe4370614d11568f2b939b6d8c59419cb90896b4a2f7530b5ad8244c05af3707a65378f1cb024252ac578e9f18805a2ac780e90351d3841ce4b16d9a6fefd5d19ce0000000000079a1000000000004006ca76dd5872cc03d53b77983b80e534b8e2ffb969f836f0388b54e8ffd550b05021f5a69eb607414a97fa80c951369da21528146e845fd7c3bcc3882419e441010020fcca2ca04cf762bcd2dc2ac9d3cef3354c41bb278af0851f440fd4834c87db160000052ce466bc088c6517ac5c5813034775992137e3c08e17119b390d7785adda6cc37a5e64c63a891209059e5260d02ee9e39df10e938fa03b6884a69efd6d307967507cb1dcab7d304adb841b34c4fb0ce12a02c5459d581bcbb0717b406efb080229cb6e6861f29ca9f894824c4e87ac31e577954459a0f627c243c47542c494834d4430955524bba3dd0db82082dc333599fb2dcd6518bee4cafaa6a72fedad19448529f877b063dcc1d04928129fab307d0eb1b3b3b9d97d17e0ec8cb41e01dd1c2a605f15a8def0c3247fbc3c4a048d2cd6d2b908f48097e5e3f15a5c2307756165ab42dac7cb7f614f0439d2c2be67fdbe785c087472bf35ad75d2452bd9c97e804dd4bd5a85dba2a506901ea0372b9ff44a8118dfd043d142d97aaac530a3570accaf019b74a47ef3c6f2741317c70ba8995872edddd5cfab154bbb0f9805eb7f8a3f78fae5b98925141bb8e023fc40d4b149c8ecba8524d8652f4e0a4b8d63db5bae450bb50fad4ee8dea2e6a8459f7c23382f6e00691fa5c0052b62c2f6174b7024d71bf0ca7b92acfd652b07215680dd7c7516afcd85aeb19d28fd2e9788431f1949070e00175ba9a213d166466d51b4d40c59359796422d2c679180db91c6847c0dafd162a15102b71401a78bd8f0d4b3c0dd051cf95f7230c2733f67e4b489676b1f7e57a3d6ba09855f2d9b00cf058e4d5a7547ebc85bb3e36943d0cd04d3a010b1c02ff0a5bd8b6372b625bbea689918ec51a8e59b5ab0b9c6aa06f278bd5d62d8257c9b556452c641f937a903725886385895fe419a94a59cee012be4dc4cf159edaa8e755128c260d5a8488c9758890e5c1179ba66b190995035da436d0ed5749ebccb75f5c838d347002351b917823f5d4b45db01b99b5f1ba71e808f6c0472920b3af2502e81a73fcb67a0b1753bba0f0750ce346e51f7c3867f239f1095fb30a7018e4e3dc6190e3015e312958dcd7a250f2f6f75d083333007e5c14f2ece071223f0403d6aac4e38495c6b7d7c58f724ef32b18e76e7036cff4a060ba36322218712ead322bb08183b24750868f29f67240e4d19913a0023eede30997fd423aad3d821b9dc6123dd6bfc79484b41d5c8aa150949de28385f9417ef8224c2d4b1e1418b70619f073fe03757f344234dc5a19e10d2eb3d485245f97f792f6bd2c72b4e1b32f1f53da2708937deafd58b5e52247813c7ddcb61746f55df616aa72c142df37556ae9d724528c510f4c1ee0234d96195a087d7585d152667c59015c1b45fc34cee7167c98d3d727ea6dd679d30cbed018bb0de19a5fef522ed4efccd5fbf079d04f0d0ba17a4e1be7231fed870649e12efc3d86ce3d5397d132ad13fad229263a53f2e2e6c61860c76dcf2412864064d55d4568538b38b3f0fad98f08b85ce868c8ec356478ba0a18e25a6cabe5f1b7c1dbec2cdbbbb842dc6c8185847570b10dfe4bf530f4f00aea9c270385910c93f18fd2adc08e6492853cd9fdec63f5e480c15af85760a11adf0d549a1205fb5e23d078decc70b35adb5e6e675177de5d3fb7191f80b172fe7d272ade3fd7b9c66190031869342bef41ecf813f712026b3d878e43bade9e8888f750a493f58670760f9b08d3bd313546639b62e841064e69481fc802f29754b3869a01eeb5c89f674d9a1ea7f3d9f59cff738540282246e64b2f99ef5ddf3c06f0cca0c7a64f63327757c2b71dd6110bf6aabc1b7baf2661543835a9f748d1892a158338e4b9b4d1b54295eb345c826f0d55e405b98b74bc291a8d7a335e23791e562a53616592f02002484a1cd577013ffcbed3072518eecef5333ca1be2f4b1d986caf64c6bb7668cf059c1b1f3117fb824cd353980d9f6020020e82cc80f845da50689863ff53e1be83749c30de79b75440d0c544dec581a6406000001bc5da1f69f9c4cbbcf2cf04990973cb7689561f4276e89d4a115750685ce96bcdc4ca34ceaf0db97542fd83e5565fe417cfe18bfb129f284f67d4fed61074e171a8cc490119383b031bc92f846994751f181f38871257c6f8a1ee578beeb85a7719610780906f8528bbed4142e0cfe6ab2bf74f21f8f583b66a3498fca3a39fbb435de5eee06ad16d4ba502128a8bbfb66a5ca0fd1e1bccb13adfb5a53376f69ffaad495d34bcebb9336e11ddabaecc01cc1654b694117513499908fbcf4cb566dee665aaa741b8fd3696400da1b2915ee6f2bd84cf4b0bfb579a6cdd6920b6d70a64d694d08bb3fdb0c733781fdb1ab982e99eeb7cd0db97a9506a1bcd403989f89629f7175efe247dbc21f15d402e228b908367107ee25ff82924111d05cee89c89588339abaaf2ff26723d176191431a248d2203e57d81a5f9bc0a85226e226ffdbbbe041977fa57556ff53966d23141a03b3212074df9198a754a2d4835f5177d70fb16c6bf87c1566775678a8023d3faeffc2f6f3760eb591ea90f3b16427e129f9dd188ea13f6b209a3d25bd0d97778890e777b7aa3d610efee521a93a5ae07aea8b29b8c4ebf26787fe1dda9259abd2d5f883e551726dabd98115be857c0cec192b7ddfbd7390f3a34c0000000000079a100000000000409cdbc5d00d32c6ebca0d1178e65de451b1958d3ae0770a34e52e1c5da6c861f7d0d85a175759ae1107ec395487a79d210385bd83af212ae2dcd456bc0f1e5a53010020b7bb58badee28b05e4ea602c90fa5ed4c7cff38f64ea65ee9a5fff9213b3c0070000052c48074a0502cbb85e57f8a393cc1d2fa4365ade16c6bf45691bb2c04467f3a5666e09a8f1aab7d2a60cf8138068927ea375e0ae0a1c64de3a97f8c35a5b15c7eb06797edddb390814ea3825bcfec24170853b58bd33e021aed8689c194c00ccd7f7eb48ae2b1c7bed24da3550fd15bf448b2d3125263f50734ecff5200bb12da61f3df714ae66eb9019420db1a7b7a978eb31e3b5ad3c7b3be4951bea407431069aa1f81d809b7085ff3f5caae89c50e0fcf1beaaae6007dbcdb2231cc887c3a11175da43976992489de304e650604cc5bd4c7a138c287a1c1e2db867c9c89cbfb079dc0135e3abb62eaaea4e9528a536802047a31f55f87b62194ac79925a70614e589abafb0edd3e54370849a2126f4b7afa2b5a978bcb1a6a9f4a1b776d8b5971c2fbb565fc009bcb176a3e109d107487ebbdca488768d880ef245c6ca8427a17420d3de6a57170eb51a63611e357bbfe6eae30182b59226b6fb29b11079bd548f80899dfabd18265d5c39f55da2261e9ed1861d8d2e819d45a4f665a37b9b43485760b86bf33414dcefdd1ae62bba7842a75607ba4f76b6042f781bd56d3d747cc6e7f1be253d2796849f0878de23132f40abfbcd4729b6605e8e8604d1d26313229e54b5fbd03eb47cabdabd63a0d9b84c3efaa53ebf2276f6d7378e574f5db173130e7b097b16580c730c236e7a6a32e98eb5abc4d181508db1e6dd2813638855fd87f1ca535a2735af7362ee08748859522f24eab0d4ad2bf6306e2b251d965dade284dcc15ed5fa517f895d4b8fba0aac19b4fe19f2daa9ab4d4863a45890c13a003d7688003c0fba119b83f1432bccababb762bcdb8d7dbe873c93fc442ca80111725a33460b0d2ed56ecd3c81d38c25c6aec21be422e846adf3c3317a1f88fe78f7887e763b15e28df35c6f33c29bdfa3849d3f411d3e06e13f1b0f9f8d3f253a66032630ae9a208ca7c9a72f281508c6d79a0d8a2d04abf0201f7d0f4dad58c7bcf86e02da6f79eb77b93ea805937748ec846ae7e8970880d61f7cd2accd92f84c775f543cc18bd19cb6a5d551681bd77874af6dce629214ccf56dd9c20efe0a6c009131fd6a6fb19434a951ad7881b3443aa52fbd2a0fdf71e806614ee3537ea8e202aea5ac3a974466f57cef1ade39eebc2dbc42a757dcecc85aad455f52189342e94748c5cf351758f41dc48dfacca30832f86cdeffd995099bac8390d34c01214f248eaa9e8ebda11bcae83ae77b37af6d5079d4115224259698f2fe6d914bbcbe541a774185dfb6f34a7ef9c24f30998a5d46fe9f6592abef884a31ea3ccf04a0d8ca52122653d7e0aa3a45f555d917e905adc4c64912f3310be2b2a8b128a16b8609599313bd0569a03be3761cf587dff3cd57b8c38460921fb1688b895c0ea71ed5c284e15ee5de1bbae4c0643af3335053acf4bdfacbcf2a7d6ae3b232bfbb521c5fd32690729bad52920759d4803c29e1a46a60f14f6b77bbb633fe40744810befa265ae56624ef1d0a32c604332e41b292496eb9eff6d5cbb5345fb75d2c31701f6b08c4c4eacf054d66fe45588e2ab23fa46c2d1d266ccb473e444b2cbada14102ff6ac46962dc0b6a722bc1e4175c1b63d614713a9bc670f6fa367d1ff9e1fad68b2eb7a97c59d0175a06471d880b0172f6ccb9715f0a6f39411b968e728ffaa5e399ab23296a35806b4533bb3fd2c70ec9717eb8ad211673812f9f9688eeb2af8f6fa3a90a55f1ddba230b6be28ea8b4ca577b17f2e8b6533c51fb9041eb3bc2f35a4e7ce58b41e4a9457b3a7168bbb54b004415196cbb84a212b5948f15ce73a13c1b715ee2ebf14bc3a606f2c11cb1e4c04589708a18254de810b5e999050360200201b501609dd945a635aae28a651bc93142166c0d0f9efa3c57da26e8cc07ef555000001bcd169ac6cc88016cf2b9eed9e6a2af25590ae06bb1dcbbad7713014ebeac9f7c3c2653a6365d096b41216ab8e0b3ae22ae0f73a5375ca20366e0a2b800190d67ae08528bdcb6baefa77fd874f0129f5660c6b267243a09462254c0105f2a8861d85d1a92e8c52f3c0cf39da363bf6db6b23ea8094a5aac001a7170fddde0bfe65976035b72acb5ed1f1c25741b8c155b5000056ad774cf8fdaea8a1f601215a8bda499d3f6860c0c42587fbeffc59b91d87c3fbea79e63d13ef8b837d256ff805bf10aa54642d5a0e491a03af1574299b2cf272abfbb3645f7d64240bef386e8e236a2bda06f19ed3e22a6521aa3c402d26f42388fe9e1d3c026cfb48a119038545b44cf47b28b91454750abfc77445883998a5c7ab3f31aae3b44019da701a9173a44f5d5c22956edb9b2dee4a5c0cf136c3d3424e68ed6d367ad73c80b9e69ea9b6013e3a1381d16eec73642b97d2f4db1391604ade06fb9f3308aa25fd5c698872a18b36beb76b7c920413239b6bdca0bd7218db2391b7940bfe9144c8e421f8a8de8b8a56c876cf08c5ea38f1ea9253b3407f203beb3fdaaeb00cd468cdf723b582a5dcdc6feeae4d2b5f2f3c1a14131492abaeaca158e532f18d178aae3f16346559e1a42e2186dd49600000000000079a10000000000040c671ca06f7f4977c5f4f7a16ac05ce47781622aba3f8636b4ee6d326591c639616a4369cb7f76fbb14413b72045c486f12ecb4e6c043ff026ff0e1341a229760010020edab06819a0a7e413ecb9dfb3a7a57488ae6785d6bce5223079c4b600b1b475d0000052c35222c66f0fdc62f29286c0fc4a3debd00c4a25d8112cfef2ebc8c1a132f65a8f7eb2e1f23a748cacfe1f89eeb2eabb9cc4c8c466184adddb38cb3ab68b84b924ebb51da2ff085e69d00f3d009eee24a0ee38ceda62df62e0b405da86fe8aeef5597f9b76d7e46161f1506389d147def8ceaa6060322e37ea5cddc957dbf24aa9917e743f57cfe08b11a5bf94d44887a2f4837d2b48564bdaae0b759c9a1652979dd0bfd6ff12a88929057b91be7e724d6f68b1c61db9b394a723880ce48ef7e9ae0f86adecf99b768bd2fac1ce855e1c2c7318e27d6ecb6b742f7cd65c0eb590095a8dfd0509066f403570e3c1191fbe9b1c57d14dec346c2f436e1ab405156457945bebbe04f930275d168e3a2a0f943c90384076bb4b605e1910a1fdc3f5f983f569b9ce7f3f3fd971f7adfa9dc3ea3f85211b0e9fe8498e0e085419c59b380f0ae793e5733a62c47651c7a24ca44b2aceb16762168d74344b79dd8f2c755bfa56f22963c66b105098f6680edd5d02a81547267a97435305e3568001ea41c18eee15438b61c451c501c0f51d6fba2fa35dfe5e4638a8b8c2afb26057b45d3868081a0f322f1a9b4e457110ce716178b848bd3412e61f5307c84fff66ea385535c8cb7dbef65cbe5d345c354d1ea7e2a22627e1b79cf5ce1d413efe6bea84093e8470ae85b0e000d8cf8c65c54c5aeb787a62052d5be61ae43a5e60872e4b5ecd352918f6e34383fa287ff4b982cde83856c8375b2903bbec13edfee05a7c09fea5c1accc1ce119b8a73bcf7c54fffaa298730b36d116f6bd0a00a3e1920dfd13e1a11a09d2c46343e712c3e834be6574d3dc8e7c6d4ce4d5dbdabc7d28438f782bc7e99a0bcdf0c225cb2addf78662c7f24c06a70ae0193842584b8bb7986ecbd9f55fe4f0b1d50bca0e1371e83d18593d019d624846bdd4a94eee8c0f9dc1beb4e9146abd8a6b6ead9cc4af245f3c0965317f7b5b225f53ef121ccaf2bd782dc3ddeae9c4d8d6e866a95af69a7bced4c74d130ac86ebdb6a286fc426cd59530ded0a9d1bbce2ba00c1f27b9e877d7624bb7d3a1b1c78f51aa6bde19cc918b3642f3382f59f59bd6a1b43c04d1b54a4503a54999dc9c3cb51e140f4b83bacfb7b31e8cdd38468d386e8769826bc2326f092bf053a128ca59c1f642da30a9f64443fd0e13ab93fdc8562e6d5e0994feaa06b0bd860ca9d0f3903d890830041d8a49e98e366eab1a2a9869e2182736e0690610712f7bc024cd4306dbccd14bac9f18a82bc2919374dd813c7769fe26cf9f576c3eb26077873b3877bd322e01c765dcc831159574e7a3c36f1043d427404d3b449a4463c5fb41d179e6bee07bf8720e4d7839fc2ccbec2421292e4bd980d6e5e407f582ab3397d0453efb3e4c58fc125835360d9f9c2443f54d82e0ab6852ab00389c58a601099f4cb26f38e7d4dfbf67156c8a64411ed81ce1076e253dac102ae4fefc7c2a15c4afd1b5ac7f9d2e3d56b45769e8b8c630b6d8aa5e154ddec5f39b2466a91afaab9228679ecbec4108e9a2a3e4b684be0824f12db9c9ae513ed3d6dbb1abf05ca7faf374cc02f92992ad55f686779fa9d43950beb52a8281b15138d42ead728f446ed4a4aa93364953ad43dda34ca22afccec088c4c3fb7965cf714f598e68b88bf5ba8f743e8605626685490f60e7878762b55e9996ccf9a8c8371b494bc4d5a2add1ddf00c04dad532e34cffb3bc3d32606332297fab2c8b51efa1a126c07f7fa460b2cde33020aade975b921be996742c1ef257b1d2fc3555e6674babeb147a55fdfa5f2ed375f823756f7110713448f284f37e27aa7cf7043bced4a5af31ddc0cf07ae87a3da85aaab9e625cd3aea277002002001d5a76da6d075da3c72c133517e6411863b20e42f6c9a7a1394dead1c572b64000001bc95ba6c55ed9b5866c659025384ecbb87a4bdc863172932d5729ceeb240c8175b8370008674e397dde5a8c7333c25895c43fdbea468edb5d07cb15375aecfd4f67bd2219ee7bdee16917e78bcbbef909ff4a28dce215ca1d9e0ea84a05d6f11c1965c5e13f5406a39e102a2fe0cc71f8839c96c4967590ae2457c5494b195f1814f2497f54b708ce13393b69def55ffd760615878925250432174d2320db3b2798d5eb6665c0bb0e22a05342284d19d11542c2efc96befee28e21aa6aa24d63d03d3b65f8779137a4e577f70f2d4b8070eb025e97b60b124964823ce8e45c16f1aaa53585853a2da75764a3f6a28fa907ff35c433bd61ab465b0df307a50c145e6d23b7d373e4aafa069d00721b1bb0a09d4e8dbd3e72c88f934ab26ef3d3248b61506509c64869af4450765ef98d4278b6e87d1c3e277c2adfc66d7e2ec018d6db8bd66f968238a718e9cd1204a4855e552efc60d7bd1f62c002e50470dbee0e10f1d26c1b835071fdb6a07e04f3ba1d13f45c472b361bd680bd2d68101ce3137324aa359e731ad42c22e5b799bd8332821d22ef528649e54880e77b02933bf4f3a8985128ec0f394cc8d4bb9adaebc52afe753df3bf4a67f308f9b32695c7b35982c5f405a0543726c96d110000000000079a10000000000040fc9adaa5c4dff7a6581e7d4bf045cc2cea328d87f942a335f3d2f996f668f6b8b3615d2a7d0fe5cce1cd021c1bf68ded0a00d8a59f268c651e45480c3cba8d3d010020b8e55f6dec29f450248439a6319cf5c0f803cdac0557a995deb806f32d48a2210000052c8a680a5e7fe610105d186c75561e57039e511db5a968ac9d69ceb0ee8c3f9905c3b20b1ea4d70ece66f2a7fd9e31b3c0776c18457d210d0f7dec9c82c5d283e5f8f97a41a56e63940118dc5cbe965d36dbd94434d037e912c6760838de784907b0710bb9f561d7bf41e43f9b7ea75b9dd5a79526576919ce38e03e9b0e7d3c9f654b91cc6a5b072996131b94b2db85960c545e61a49b7ca9bf5ca9aaff1335ecbf5e8c5408d51d8f20d873baddfd0efb77566ff54f0fcf27e77dbcc5d92810f86fc976c5432a73ce328c1d9f605992111ea75848ddce8c2725f1f495a6fa7a5936284de0c2fff0ae5c699d52b76ab83ce8ae4c9184fb9f26b9d2248df0b56a6399746503e55b09f85b5833d7a44b4955413b8328c20bfd227305b75a9d430d19ec8cfcebfe0573f750464c39804b14798c3700aa372ef308b299a387de16443715d38e76bd8e8c6f1337ce01178196e9802a38038f500933bda9f26f042584e693b3aa5fc474df2380ed81155a3f0870b8dcd70654ec544eef43f7019fc79cb1ec5ffa7b7893577e333f38a7bbca38624bb08fa2fa0c11d29e51ead27f34699a0824d7cb4eda1ed5051021ea42390ec228107067ad6ea65a214dba4f95691c164e437df36711846588f0db45baf8e34a895246da4e073b285ca1632c92af0f6541ad13fb66a8628341aa3dcdb79c322ef3abe434d604b2b3c8c082602b1b1600c6250e8e0536312ac25737cf2aae8eef527afe47b48fbfd4e220216a39758232dc6e52c081ee56556455fe3a68a1e84cdb3828e0e3333d57428e0445a9b4c19e1c69ef92100212a5ddcaf36920103fbac1829fd7ca79c7eda31cbc62bf885225a38b3d69e97c19a351c48b6cba92943066ce555c7651800dcd267ac0423bf07a1229fde918d4d0454ec0cbbfc4faf141fe0e62ab2d081b70795254724aa5c3baf369bcfa31e7126de32b4939d98c87144debe063c3f7c3ad5bf6725842f15db0ee87e7d0142a5fe46a8d245a46d9e87abe8dea5e446c81a17499109be4dd15de8074e6ab7e97e563a842e921b5c0f8c912c437877b779b645b756d2a658ce988c01e0deb639369783d206bb8b43488df6b04dd01da5faa6b28a4c3cac79882dbd5638556ce55d13acc7eb81a529e87acf6e88cb1c0afe6e007dc8df1b523fccc2ba5350e3730f94aeb317ae0fb2c0689c2dcb18afcdd4b9107ab2e1c248ae3c90197b34d1b87f6cbd5f21d662009699d486a2f38aa69c90de6e0829906da5bfb1a6cbbdb584a725874cd6c21142cde883c52fad2e62db364714413cd6551edaab83f78e7735f87acc32287cfe49eecfe7d92d674b2353eb13863ed1384e949190b5242a7734a26677a2d3a50386472f65109f20a7f5e2c4ae7721c732fab0b57057491d308aa1fa91bbfca2a764ffa266e2ca9c4eb64eaf9a8170a72fc3043ea18b1d15c0956e81d86ef652755191762d4e8bae2a801742dfba982e1e2ba1a6c967302b4fb7f4f8cc3f5f371f9e03e83e4f054c441832c39956e4da8b04acaea8cc73e2a7a16b915d8f2dcec90c805963ad825a6269728556b634812a9f5a0a8ff77552378b2a93866f647b374e38dddecc8334040aa65245f27121395bb1ad83b15a9d1acc5a6f804759bcc0b36399b6e86197b0985870bebd4c30ab1858267839d22ece34c96f1082f102d6b25975602e42e2278393cd55891c38afa44ece5d9a3f39331157af95acda5b8f06191c7a30b8eedfe7ff0cbb3429ba54af5ff9c24df99ac3e887f2b544599ebe2d0c7e621fea099373ce91f2a267e2a512bc471bcbd90045a90612793300bf5dbfa5daf778c20c976eb66a744429d7bf895553f9121571ec95cc7723c44ff6602002057c5bc6ab3e4f3056b69a10925a0b979e5e7a08dfb756825e13549ca3cf2144b000001bc5a8f51ff13907f78fd0cc4421e0d00046bd4a4da6d5839047132c356e70df7fb4a096086fc5622858044a0d8509525671eec77dc782b514bdd6cce9be1ccb8ded5814268eef5de1bf4e9e4be3988363b27623c91bc0cec4f562d7443fccdcfb8e2b13acb4c206b02b37326cb233890a18ab401b41b48f20344d939f09918e4b080fa4b21e82c166dbe3e453b39c5cf38c401190fed73f3102e763bd4098de384d91f6fae4b6e4c30748c01f97bbf237cd51fc1c79bca03c32465d8d9f770589428b3a9c715713db56bbb9231c47ac44169ee54cc44e33a2871f44c18213e16aecf1d4e1ee9050d31e4cbddcc34a39dc2fddaba376863252af6f91a0c10465756a829567f6617484fc7895995bd612de9c7d841710f859ac698125721573328db422d4989eba0cb3f891abd4f6c59c5463034ec264199479c7df0366310a8aee1c6f733cc7c07e33bed6ba0cce0b0a359facc63bca0da6cbffb5bb6c60f35c6b78d74503cce1dffa63460fc00a56072f12d942abfa74f86e161788621607c5f3e85755a686664f59b837775ea8c816c72fb9ea016a31e6ee229c92f98bbfbcc65a827868e4f6eca255c66ab127c0c3de26a7dd67501ba2746bbe9da0b2c7455ed08dea7ed0bcbe69d40ff58ba0000000000079a1000000000004075e691602d82abff2b5ff18009302a0cb806ab9a3cf9e66e76b2a05d485b4fa0fb6625ae0207e163b8ff3913751fde12f095c4023c5d52ce897c14649ac83601010020fa2fe0d5cf2fcbad1869ec40a53a7bae2a9fed6853a717e9d81b9fff0e3f1e320000052ced4a8b4c89a7bb95da118c70c80e8c56921df98d7a4e6b721256935c0d6d1aafb2e4a2dc11723cc2943f045dda6f5c3cd9bc74cc3b61c98d74f9c54ce1d626bc3bcad5b0e4a1021d60911da25c9f2fa4d6d07d3354993a1474aa44475334e624d7a060cc22fc194ad8cfd850203269ba6eb21e360952461da2f0bd79ce2ffe826562ca38b3dae030602c7dc88d324dbab8021363d2c3331dc83560f83523972415d8581a87a94cc3092d69f522a883c0e783015651eecc13ca93fdaa4e49f3f0829df313653d475909e13744be5f691d3f3e6efb6b792c375fe3a3a550238bd356c82fbd25152e847e85bfbfcec861a830a88b5064535dacb62ce7febb5f66463a0f1cc00d6854d7827862973543b0b2faed26872f9fbf06fe031e9ee6fb6f8ee10226d8740d91d05692241be7d0a1ade3275e0437abff97b5a7395916131fe1e5b6ca19ba2e7052df9b6a9b05cd7d4f7d8c11f05dfb59ec5d58b10fb5a50a71e8d335e5dd9f76c3a8e50ef6a2cdb8cfc71f572d5414701f3d316a3618c62669e493ab1646c39375590b789507128866eeed2421d7737374e1414769a213b9aaa6c710a583b67957248f9321d06f9dffa428923415d2e863ce703bbe8770d42e6f1c4c46a0bc212684b38c5881a6f6c5d35248a629fe9ce0156f0cdee804d12ef8c18d142dce82f2c7779a848940f346f659bf3da7133751a55bc20ac699a2dc1c94150d84b4b56de8a86873b98f7e66b38dfd034dca8421b19956619a0d0f7b7225925c4ec284e0b4c3e363150d38b24ed1adf9c74a2b9f0e22c8b5686d4621b0e11d44a9bef8ad422c536cea981e2ecbe3b428312c9d9fd53f69b8ea5a8765363831504b281850ea5b9014cdbe76c3cc9edbcf5f469918fc2984b4b2ce970504cb6b202f11515d53b5ae867b355ee8224050a999a3d08e58ffd6b0e60b5f2effd6e6bbff02151c33100389f3d27a6ee8516942e13f7ec695b70f8fea26a65ad6d4570f97dce4d8c73b8a6e428a2413927989d7f9ac29797889292fa9de79e211b97318bca542d71c3a1ad999dab164cdc01ab9bac4a77d7c1690282a53b174bbb96bd971a091f25ddfe798106d2aaa01b74f60aa62a28b25693fdfd644789c9fc0bf567607dd27bcf4f5d1c071c00e734a850f53a88fe3900a669db25a5517815a45a6c965d454d31ed7ac82cb99c9190e8461f072edcfb1482c65481b75df748a14f95568fbb0980060eda8711369bdbb6187840c3ff5b7ac662f63d454b7ce7df13b0d72e11dd60d5d8e552ad6d804bf756157d3ff73a091999eb454c045e2b7751391041546c4609750b478b0ba24fa8a943c56dc1bb816c44d655f07d6d35e0a2d5c5eb4d7fe0e512e4cf8b28cba287154cbbea6df39200ed4340d23200c48a521bcf95fefdb824be7d1bb127b4ef7b8f6ce642e668bbd1202a650777a3db5624d356b5231da30d692ace12a4630b4d0ea65629824f652102b210e40232dd65fdafeff4c9a404aed0e859321186f7f9ff0768fb77b80d51d3335293c5d3870230a91150e156ade975dd823d5ff02ce77ada54c3c89f798df52c22b0561d39740f612c947de821c035d3225bc62373cea83d7d088858a6194c34a74fa13a73e21cdb918fdf6e0dc178b33dee41cfe41f946b7ebfb3d8396e6849a13345a7c33409fd1101c97bb859a520250a75f0e656870754e1769de5b610bae12c300222161e16d04f27ae3af20ec7f72b4ce62d7deb08d11d5054121b8d925325e1b2984aba80f010832bc8e8a0f98c2dbfd2e6f4b2388077cb468f47d4e3ad9120197d42ac195ec7e3e68b689ac5939ffbd80a0ab2e348193d0fe2d2f1e629557ca648167bae07a57336367f46b0200208cc50fa5384b6720f58104dbc1eb729d9482aa6dffa6822a5682eed9ea982816000001bc2a53b6d9738eaa73c1c6ca353bde3f36375b3917003273fbf3721ba134289cc6dd7df195953f7b0b37c18b6d4843d8a48e3be1dce97ff8dfec8095fea4759cfb63ecf0efeccb640211a701913016dc9c64f4a16d96679e0606ef899b88e307b1680869cd85367eec336940585a940cf032cf990bd44dfd12209ff24cf286cbeb7546ded18b723c6e3661ad6c5b91791f894d09a07a49c4ee4782c61b711270bc12935a580a4466b3254dba3c70b11779ac1cd9f60f2ed5cf904297f124b89a9e0dfd262521c2727c3bc2f0b6a11ee1c724512842e66d609e818151934c429f2d154a666620200ed77704c3a43d3eb3c7eb774e418acc34ad406b25c94461f591b65f1cc137e876e47a0f58d7e72b0265d4b53c403088b0e768f0d596e037b714ddc1b66e24fa4461861f42ecafbb8199db0cf3d530babd95cb533c78e373c705717c78646c2022821d437f0717c46cc866b61a1e32e972c3f8feb556e59244ade25b31943351a7aa4475d4d5e68ea23dc9be35fad7d45b618521eb79f877ca3c23c13793e9893d2727d475b5eeda1a74e69ae0417aebaddb01fdb385742f58c0340c84001779975e80a714376afb9ee9085565c329ab21d15542f0b74995adfa713d664f13eee0023d5dfe3d0000000000079a1001665749016200021f8a279e25daf683cc9aee424a3c186525c72b6a5c1a11d190093c72287d6abea0a71fc21be880b51b3e51ab21666e9a2849e643174cff456aaea63f8aff738dca572f8982a9ca248a3056186322d93ca147266121ddeb5632c07f1f71cd27083282a4077904509d19ff3e7947d573e348932d54355031f963337fa86024b126f2a08ac92e6f490460f33d252fa4d06c800bb8372933d4765d6b05949c4b6a2bf3cd52d8468cf3f6afeb9eeb68b76a59e2aa038ba05b321a25b55c110b6dedf2bc81187dd06e7db1c269f9a59ce49b40fd2bb698fde52d83db4dc1cd4de77b3769902637fdf0319b4407fbf07e180555eb74d91e2555a4060f2d514455eadcc27bb6e97550e92f8e265793b00a2045a6cb6b47e7dd28d5b0f2caf0a8d6b03d3abad4d60229e4fec7f6c44828e65caaeae38443cab6b666d0095702a9a517bed33f10ef859251aaaac037fa2fa3fd11a938fb36447281c25a3fd622058d3039e300000040f424f8d83c9de018213c3016ffcf8f61e8af9f21f7bbcca102c3f92eead472a88ec3139fe98f8e9b2725a8a641210992f684466eb3c6ebacb8073257b0ece9e0010020369717b69e0e12dc574a4e1c73137deba58569c3f0d250762e6d0e5d967cba560000052c7374d1b9cc45b72a59bc604a3fedcac0fdc61353e49612d775cb69d7d761ea7fd2a7011a049c784dddaeea544a7c08b792efa88a5c322d8d367585d5ff673f0131fb66030e32403385d72ce51c476e85f57521f3956423b26f4a893974ed08b5a5d0b1a8729782287716fdca0a31164f7d52162e18290a5fe59635ae4af865d332303aa4fd814f7bafdbfb5558014452d511a9b0f432c0d8784c2170b48d353fad6be7ff3fc1a68bf6aab158297f43a4dd95cc547a26acf87f088a1500ea4614b3c896675755c2edfe810c813c8de90cc59f7b9f8d06533783de38145ac1dd76760f57b8a757d43c865bce15d5d74834f1a0b3855eeceebba11d0d9c3d3b285b51fe87337c7f1284f0e58c82b000a3022a7daf932dc49b932ca23a1767621596912a54a8220d3b94cbc65c0238ca69a126b9eb6f8f3cf004cd91278c7dc6218c1b31dcef2daddf5b4673679bcd3d4cc51efe2839f3ca5a14fed8114ab90de43f53d9103f369e670168e3a8c90c4cd8ad89ecaf81c795b52a5f8b2033590755165d94ed0ed4809bea6df82065976260840b09b8994315cbc0af83f218e2ab891c5cf889572c375da9d6c1d8e6cb9f482b96a701fb2ab3c3203db1422dbb06f7f750280ca54f19932b35a3e48871a01ae24c18dc8c7c55b2f4df630abc9395f5506450b957c232b85dd1a883d5909e4c58248983efbf5c6a5a74ef8c739d6b612a6868e97d27a9064eadb978da90b48aea4c5ce5774f02ba7483f9501b28c80e7c0485f1de5d590d62c30c9a6ba997532f979c84c24c81de82de1acdb99ca4e20c2411de0f532c9905c40c4347baf737e7ac91d491a0682d9cb018d595eb79f8971afaf430db756caa68f0ecd6fe1299a79261a03bb7fe3fbf56a16e4ae5ea2ff406a426c98c6ea433c9438f57a73211adb109632552a110aa6cfb54e0a3aa290bc8cf01f0b92a7d3e17bc3d5f7446733d6c9f77a497e7bdce766da96d05010c291a7b2ff2aef040fae6abd5faa3891cb31321e0d57e7d4981a5822d2c441c595b6ffb2fd63bd2c91fae5757e362ecdc436d37847f5170ca8a1a3b63e8c19ff64e3c5032cc7aada4cdb0e16fd9b36ca031a2685fa88037bfbc965401cf562c14a6e4a9bce06dcb1c625ff3bfa906b0d7e43355d9d113fd5122a2f254778838afb1d21be7a4953eaf552f0eace90f1b3e366603d5e3fb41a50335f9e1909655fb8cf896c4227c336108978093a1a10eea5b21ba25d9919f4ff1464a5cde11738f2f6d882ad13368ebc9983be5f4b871661498897b0c6025deadac2f5bb0aa8d7d5638ce08a9de7a13abc02d0ac75144e6c6c77e937bc99df85e3085480a27aa51fdac456ef140c766ffb9ba13d1ee96b4b5a145df3491d1f86c341f50bf360d9a1218a9b0e52fc1c41ef85088a41e2c5290ccff58bfd443894f38a9f0abb93615bdee401ede743f74a08ef54af69db669657ab94240bd0ad2115bebb5b7dcb6e944110ad29a2cb11aec27fca5d2ae0bf73b4cbe2ffb1e95d61d5969aacf838d9a74cc69070bcd39ee961744802426c56afe07b52178a3a423532c54004f66c06e79c2da5f9da9ab5c5867f957a74fd9e907088ca2745e49a554d81f64cf5fd52436ef5a1c3360bc85fe8c0f6dd84f95a3f599a2493541147f8b33582ef698c68ddce109daebe126a7054ca4c3d2f8b624e0e454e5f6f976b677cbfb0bbbcbc3415e321dece79db30a22b340f722ca58c4f2a38994aabe12ed82093fe19fbec14b74fddb51e0d817939555aad06e1232f04ea2d3e2e9bda7c83a8c81da80b00be2fe11b808bce6f2c8304663ee0944af5bfb1d3385f35bffbe1ddbf5b81cee79ac26ade5c73e2127b30a7220f3c1020020f4644c41622aaf4577cc717df1d4972a398d08410708f03f8484a8efd298026c000001bca36c6e0b337dca77b091b0f54deed98e56608f3be51fc525db95c71debffcd0ff1ca0bc09c83bec727567765c8e08123990a0f6bf9b40831d720331337e44ad1cbce1ce95dbbdf660b7b2cf5d262ff4c233b65578a78d9a60a2b7304f9809a696005e618fea2783ea7830e3c14d9c7ed701f26f03bce03349e53fe4e33e2feabbf774ed8c6d4430a93b1071d1bb72fbab2f17d024d441fb8024cebb013247cf5c38b291542d3fe67c1916e4d917dcd9a680f4a8e5dc1663c57e3ecb996fa0d498f9f34990d82bf6fe5e22bfa66cf9d19a2b6aeaa911a6cbc581c921043615dfde58ef9534f8902130cb5db10e0073bd83413c131f760490b880910314b285cfb70e4d1781b41c04256d773c9e4ce2ea23cfceeb8db466c2520c356fbb6747ac7508e1fc6d896e38b431bbf921afaada2baed3a7a82d78f2da4c4e032023e46d9ac4eda9b77314b62664a0d096df142e7139d468894a2fbb34c673d90bdf41de6d2c6cc9fed71c1f6b4db36eb8dc29c68723b0feedec8bfa7a868f8347d384b21ed1f8225200713ca20e9145ed80a18b2c284924860cd2436ba5d0aa1df40b2f25048f55d567c0e6bf2033606cc15030d1f6ae5c55b2a821bb768074b4aeeee3730c210006a507d139627856e0000000000079a10000000000040bb4c87eb95ffcd029428d019b3c53c5d0c773666c1534cee54cb8ff26f1fb754fefaa17a1b3c014186263c1ec03d4a8abe0631e1062e95d8232ba467bac9bd4601002038557689d452bbf1151c76327c1f3320dcd4a69064a544dd135804bdd65250600000052c3e24c0dae9b1dbfacd9909a181ba0eed6f07a5c6c49373fd106c073c308ce09ec94a6b4a443e18ddfb07e9572317174e9c9011fab99800406efb6d72301c5c755e74b47df475efab1b1a347d125ed59c0607ca5daae13ae13083b052359ed28e42e4fa827ccf104006da851bdfcff6d735c3081bd88319f4e1c4079e6283ce6584f119a231ce729546c409b2983088c79c82cfc06691c3f0711dbe677d9e7d6bbaa765087245f3e3d0ffc42dc871322faee0ebda69c22586da6a5f9b5b291361c8b08d4aa1a0b8b5cbf097d66ba467f071f29a407cabaab5cd1b51d7c945c30b4703125ff71de513a801748bb416e69491e9a4c1e13d92ef82998567ed468666064023cbed342a9daf8db8d7ac330bbb1e0dd962538b57df9f1f43a73feca5b405ee0fa6925fac3b76738dfb71eab4ad910be92707aa666d42dc53a32d251bd8373869e851a1a770dc9eb19f272c4617d92351530b3275755df67805bdc8369e2634263f8c4c67715b4949924187915e573810832497229a5464e1e1fd1ad9e43027013d7ef40a26fdf2490091c4743a36bb8712fa418f46d1f9f1d34238e96b5cd1afbac11970d8b3c221dc6e7b13b362bd807ac20e1a2ee791f5ddb138ed3a6834b4b0dd7734bd19e1e0bc33ef50dfaa533179fdfb0aff97361e24cb27fd1962a6c43b3eb76c04f2f0d991f042e577cc79cfa12b2052167ecbe1eb3724103a0eb84b32f27a1e90a65464c2a53f65c5af724929c5e86ec086c5ce9c29f346e029a77599f0e39383de9160fa74d705508a677bf839790795353f117e00c8b144b97c1803f2344567044e8a3ce6ac6c212ef2fbc03514ca5120381e3e29b891cadd9ecaf56a5d002e076d78378a88fd9a39e344e4bcb8efc3818905d907c64071259358e183a57c96e6c38e04fa0ebe243056f82bb5e2b9c9b2829ed4e9610ae784cb106d09d3b9c7fdfd199b498044fbcdfae1f1bf05be2d03227d5cacae0ed8444e3474d2839b1ff02eef51da5b086e908a878524334d735eaf0142625149e24eab70cd419ec8c16b6d52d94cb380b1e32645ae1ced26d8b1ec5e8a772d747ec8a1449aa035ea753a8ff72bcf79efed4fd501526ef7c034afe22ecba94403dcac2799a73f121e9f78019ce3301e17f1fa794dead24d1fdca21f276e032fba9146fca4e751ddcbd9a9a33bf86f7365efa624b77292d4e2bd895bf08958616353657eac33bbceb9b44bd17492cdac1af252de3fff23728dc776c6924152d83943a4b02376b5716d61768445a58f6a9e90fc4586badd6b2b000ce72840afbc3800a08e860b3a2768c8e8d02c1dca2bb03b0b43d5b292b0dd7bfe6587ceb262d9825c4712a0dbecde2138818683222aabcfca4aa522a6e68e04d50c3126d95b0e31016fd10e2f1746c91d4d46c91b257ef00c02aa9f987d6cb7739c8e1c4b9df924b3086aaa390b6aea29e89c19a81ed4460f13a6072ddfbce2127fdbcfd2ef8aa0f8286596c103fac4fc81c412341a5818a533a14abb9b91839e01bf2b3a0426afeb1c7dff0f6663e6f10eaf4c18479587537e130242d1f71fa062e994bcaad4b3633893c340089679bef398608e658097ab11ad9d58c4d98bad8f244cca552b571822005e85bf45f4f5e1db70c52deff8fdecc39c31fba86b8ab5570d5c1a8516974e9d99c6d58e8833b7b10c02301d788e00ff9cdff70e4bbf225cf88381a2d15a2fb558a99f2a36174b3d50802fc9cf895a47c554e6eea6be05a40ac9a7230ca607cb01a2fb960baaf616212b3054bebe6c03272e35ea82c02215846121f724fdca6b658f115db4ef50d863f2687aca6d9afb64b030e9eab3c887315e1a53ec1e6c69395ce90f143ecab00d0200205d8c0662456eaca4faea15c7d93e66c131783f3b6a0e34ab26863e35e345d009000001bce4040b34babc79c0d647e01db84f0b40c6cc6059b059f036985e23500170810ae00427d1915f06964f8b4eb4feb49df67bc575407365edad3728c8bb468c1836d0deaad2790646fab0e3859f66be2007dc24c990cb645a28d1d2cbb84910085a68e10e8fa57d756fb1fe119f862af1f487316f2982211e2798d0e1306a90a951cd5d9c36393a77a2da078c2bf8dde790c66de4057e7bb8d9509556f6deffd504cee530a677300dd3bb26db4c616d66fd075df1cc691038121f81c89174f44ba2745863a229db15f79b9dc55311c9514a43b48f3c601c0a21c8f682dd941e4fb2fa4bf97ff1d5d1c20f064d49d63e7365f712ab35df318b72453ebd985e0898bc6ecc847df0b03d92608a072a26956543f399459a5b79a6129884dc9454f1447cee49e9ae551f3582295b6621a901d4632e04bb6052c354c9a32ed01e417d59cfa22c98251867096dba5eef06dcd0e7821bf276824f341ebe225b49e7912ba9c7e73d34caa1956c0bfec05a65419cdbbcf44500b1f9973fbc79f53b365d3e6d74b8b65c9b7428a65f45ceb10958898c860910f1e3b6e17379a0ffefdabda6ed55801c68ea80ddfb3215dfa0b867f6d278286c02ca14ed20f59de3d5fb55afcf781030f566fe6a604cf04a2a160000000000079a1000000000004049a8f9d249c088242fcd6aadc6e2b6e28ab2d9aae1dc7e9653340f74f434b95742ba9d9935989039f39a40b98ffe7bfb3af27685e769053030bd2693bb7442a2010020f56b05bab4c88d4583486d0e1953c9931ea97ff955283b110f06b461260498030000052cddf6f22c3bd73eeee8498306e265435afff690511c9597647d3c7192a5182f21d7979ca27a63752dbd41faaf80bb8112e1eeb53246b6c8ccbd991fbb2cab464d530fc8942fcfc5f486c0fb6c114d6a610b8726739ac4202ff622db19c8aa25042f27f55db37cb1664527db9221bb85d83caa2ad499c544c9703797f0d7984045a46421d0ac6ee83849dc54043a8406658d8ae70e7945eda150844ecef774f4970c3719227e3fecb1a86c7e3e1b7895fbe0414af439954a899d1697ab17ddda09d34c4280080066c9b3a8fb6c0cc8459f16cd144fb69ccdf4a045ec6b33424f9b66dab1554a72c884d761e96439b034d03ed4bfe0282b8a0278f26f8da38f0c79252b2bd704cc65f5a3103a4b6790d3cd9e456981b80308bc429daa61fee47674038a099f0b9e67c918ea21744f40b387a36e123c8953ba67e9a9394f0af76f72d55fbb5c7a5a1d2a8f215a1caa838c0a4d08e01fd09a6bafcb4bfbf52acd0eae59236a0dcdf97aa70c8772820b076b1890a4fbae2bdd1db23d32558cf66e185e9e391d8637cd20b9f8812283dd39f3873248d3fa6a5d5bbe7b867f3f74c337c5cbb661a6a7e2c464951545533b8590af4e6762232971d5687dbc1e76b2403501cab369fd874940a2696084aaefbb247a7b7d7931b8bb6cecee6d95955a45dc98e8067939a20c012bdba5b22b6ccdef81cfde17b1b15dcdbcdedd38993cfb7edcb6dc58dbfd578b39681a98095abc9b274f1f6e1ab5153e2a290162dd03289bbea92a5fa918b328d44f71d2d480860cb92b299906d0a627d861c7b8e28943e05067b2231679f584b6f69aaaa47e252717e0104154cc92698e9e1faa7298b2405ee96c29c936faee0c63b61ed1544492fc254cbf3b782b507c36dfe2a31eb03c8377dcca930aad4cb1736ab96daa59d55c036f6d871ec692107042bc03ef8b48b18771fa8ef5ca743e0bd9093f88a9775b9e2dc5e61766fe1b0cfadab0ecc8376b39a5bbe08a4d04b0ca3d2fb8aec44e981178179f4866dc9ffad7082f53e7fb438274cfe262510f96ee264f7dfa6d6b9af53b7c2e2bc852254d23ecf1d149df00d4bd9e566931c5e13bb8cca49a91a05cf743f8960ce004bb5e477709b0121d3c33200512c64169d713133374d42ace9fdb7b1cd4fa5902a08c84f599b61c44f7a6ebe8273277f1c561d701f199a95419fd564d85d517893b95180000bc672bead802abb24d9afc6d24ddae6aef0f377a91e746eeda7fd082f0ae3527e78c93cc21ac3ecf4c1e1a5fc2196d57f8d8e070738e2634c0259d5a36e621844dd6d265b5c5e9c814caed59899d4b118999f226f26f61aea2c34ecafcc287197a8d43873614a61aaf5c7bcc3ee9670f1cb1247165eea85452d582856027543bf0a71687050eabc270ffb13e7f0282e7ef89db3734937a5ef4ed99d2461f43a548fde2fc933bfc8effc2a035551cf430ba61f962c99c7ce060feebb59f52c1c638b7c1e3a2343af27b9bc1b42ac608f34f0df3d8159ea7ae27485d3f125aa350707aaeb9b3499601c63d5b6407cb17f5a87ab4052e94bfa28c9cfc6c9baaf42c0d8be087ac5656eface2ad36acc7e0239327f7dbf514d22660378fdd459f95955072f48ab393608333d1b1cad6f564e73515321cf05b8895b8abaf122bd321acddcd1a2711165cea3efbb16e3c52ee5bae08ecdcbdf2267d6242ad7136a255063d210af43cd10adb4ab41e1dfc18106a19a88aa2be9c535fb27c803db0db83272c833244c1cc0fd0e604085ddb5a88c951687c351152b4330f4d0f23deec6492e8b02c150c8991bc02197767bb1c352e966e71fed45fd00131703d0adcbe224db01c70ab12a2544bb58ddcbbe78220b202002058158b9549e03de53e886b4ba6b399a39d77c56feb0a287c8cd77a9048707560000001bc74e13bf54c59477f22da7919fc1b79e692ef004f4cdb31b19f303ffad435d7564c46821e4fc8e538acdc2a56f8751f1d928a616bba217c133d97a497ba8681ac78a2bfae7bdb710bf39b0522b3da3d6e189ebdd2d64b74b9483b454d54170507362c08c9b9c43e0195807a79a68f400c31b91e9e7c226f96570d7ec37e070b4c2cead4bef050226900cd90aa558c20bacd80a3d9d9fdaf113c6396fe08f65b9ceb5ac449e74054b057933c8df561b33302eeba01c7c443321e983b298ce2326a7d6518423d2b4b7a2c5cacb5fd57c73179bada78585ce2a5ab9af8820960ae7b60effeeae4a92f4e70279806065b2c8211d1d151999bddb48d6b35cb5047c378c0efcf028545dcf0541764f8b455359c14d22bd317b41b12981d086e2b5e52f54cbe56f9ffc761e3cac4741a0db4142dd2c2bcaf4046dac0677224247d2ca03a61d72c21dc469df9533d4534bbe1a8bd81c6978b427e39804214e7717d0ba37c86755f1884cf1e5e567e8aa524766258c70489b043fbab20c3d76c04b71a6447cbbf4df822169ba984a4ed228a8572bb2c3119c03d069cd29b5336dc2c3386bc2529496680bef70fba12b9990b14b86f043f4a3a2430611f2b07c93c5e16de78b3a2747e88cc8bbdb0608abd0000000000079a1000000000004075b5c44d9bdf081303146322cdd7be92661f6817d3de3b3f5d36a8dfba785177b0b4546370e5e0af2be82d685ced62bd3d63c0574db79439dd0ed91b41a1bbaf010020031bd92e65713d1b2d9ec09e2d9e3440ade1f2be99ac2b3ff5c80bb971b384780000052c326466df85cc2bf8b751127dcaa628de8554d5c1e3e25c1690f79ed0243c0db3f4745ef757360f7ff1e5ab0bb658562db9b1cf77c6077bb1133c8835ecd34d5053bbba2e0e6966d5f90ee96c75c50f0b2171ae90e3649597cbb9db1e4a9bbe2414e02393face77d64208597cedbb51b9ea105fd14bbc1b9b9cd511796b5451f6e57c9fd6049d689b4be75c00598d31bfc5fe6df4f4d670e1cccc6145598164db13f35cecde54a1115b3975bd0be04c774fe6248b5b4fb70d41a8e3985fb590716861eb5dc8d5d85f0cc5c1c32e4289cfaff8f98312aeedaa1eec70c91299a665112ad3fc03b5d9c3e2a731e0f69206a789316c2e0a12cb13eb9863bac9790a7c89e5acf95d581a768cec191018359341925912b81b908884e71ed48e91c10f7c2230744ffe591813a7f3f04cc5b0e6d1bc1c544525d24091e4a9b1a9ac4b207f962a305061472999ed972747f33a090bb0b0067b210958f9ef67745507e6a437e090f1467e8755646b7eec6109471282e817b27657f46c28705e4464a5ae5573766fc67959672b529df25415dc39bc3b8e98cfa9d1b454367e170017d389702063bde4de2329316a14b294912bbea5aa66df57fc78ceccaed72a0a64e7f26aa2c06ba529d2a361f9058fd3b5f2f9961781b40e0d3f63ab638984139bcf2386ca24cd31040520e3e32d5b2bc56359c4018a9981d7f87c7c87d9448cbb6d6467a0b0ca96eb96502c09bb52b3671afae68fc0a8355db1be8730926e79deb7f7e27d967b9effcc352cfb07b1f4ddb69bf8c0592c6e67d31d38e8318b5d447c0f12c1d6288c02a885f59765756a9d0402ca8348e25f85eac2b0c8a91aa2495dc95fa8541ecf90a49e5272958833dbbcc8900439cb485a90725ab12b805f93e808f92a8546fb51d005bc341839f97b6837bb4a5e4c13f919c4a88ab40a1ea0518723c9e7c785a4aacda1dd50ea8c541d47b3c80f57fc236dbf6e8164f1bdf39dacc63e8ebbc8df34a47cb8e6c753b9b3aa6a646c0eebd91c159ad82d6ea65f9413e41d903f43a23eb98f41e202e94d69accb3e2e95c050661c1e5cc927e45fe935f3e7b4e47117d0d8b9d7781d4538b80fff1216ff8eb6848e18b870b0e595ac82caa927daa5e0e22102173ac490d1e96f2f3190ae6d313983c6f0b8bd1768e957a75add268f36781fde0ad11dd57037ed05c75c108c921a24c48f382806be2ee82c4c7928b3fd0303722375d661cc8b2c005bab1f25d5b8e80a5110e7a1dc371659c406a80927edaa1a666cf36189da579a451c1733e051349ec8d3621d8d176215ff450d96b18ffc26e167ab8f7444a5058b48424c4eb3bf00efde543086e325f08514f82a5a85a9fa821c1408febfa6a586c19c4f039f1f607ea14268c996dc0fd770bb17574f3f7d4bf0761eb02642fb30af28a390806eaa4f226bc81d568e02ce424cfcd113c1059a377be30e2a2fffd6c40cd7a323e92923b10ad4591cd0dba0d9a1eb37bbed04a82af1ca6a5f8d82bcb031f9c13eaa250039b89206c97e49f3a5e8fde8b9949a4c391b3de004d123e3463bf5ca243dbfeba87d07284ee0d78960aa536a13476e4616f173e5c57519a32b1cb2b2d6603ae077cdc02e0da0c3d167fca7bb817268aa1439ab20377f02d3197f806bcd2f2163e4eb37edb1b5b1ceb795dc6f5f7e0d2c24bf54d56ceb3a3982af8bdca52ff8d0eaa872dcc606692229839c879af185660498d55989cce07ec845ec6dabd3e720e714bdf08cbbf118ad9d0e6aec8851709fc806351bd35fa6abcdef2b8de1850adab0d21828812fe92c0e82dd49811e52ab14b85a2477baf153f7f05dc3fd5d3dc75576dd7cad650c1090f40965d7463a582aaed0020020d97c6763a29a4c8ee29da40c80112e73f98e22fd0a7b535ca76d669fb6b55e0c00000056ba72eb4503cb1ff105790119284b44a72b790dcd393a30cf002e811c17fa86a614fb246bfe7b4acf46f60581dd17710b389eaf267ff9c771a9bfd82edd42fb2845cbd40ec5aec35f13b1b35128cbe12e911308f04d436c4ab6eb6674f4dca35182b19afe26990000000000079a10000000000040fcaca1a3c1af3cdb3eec162e844b9ce56b5697b8afb06acfcb7efee6eca78c24fb6f93aba6aae32dd81dde087d956c7aa089b54e0acd6c220aaed93246e2d41601002092a078aa939f77323c998431fe96cc3df8149f137339846847bb247bdabae5250000052cdcabe2bd4e7d807350f0cac6c9bacf04289605234cf9e6787eb75e3b0f0f40e48ba52ee6b4dd5025db6d649a320f0bdd9e4a77e298e0df6e4113ac897fb01a17f8f55c528c0fdb1d09a40284543ec05b03f41aeb2e5db877ac845253ccfb32823faead7e6e46b97330a3a20e4af41630d583ccefacad4a295b17e03ee0ccf71756ed9999b6fc350b4be3d3735288a794b50ab7084c51b2671ba2c8f23bd0653cf3d0b921bc04945828baf551a6933a22b0bf5ea805dceb4bbd2085a573d4e421a39534f3c3d7dab873bca8c9e89e72c1bcf411e5eb7fde1d5e70a2c37ffde647647aab425f6db0a3f1ecd0581928149cfdb09dedc84215ccb7e85166c1cf06a7307d08dfd9781b334b0cade69d326049ffa7e8720acd1c14d67f89941e4868056618c05771152a8c97c2973a419d1b9445be984a5b5c5ed70a5a51028dab784de8ef317f52e13eb66f52c53be37997b7a7028e6d74096ebaba29c114972ab0bb1951d0b693f5469dce77d01015cb939e7ac0de7c300ae1dd76a909ec238be0cb42bb3f63fba188686c8c400e2050495b072d4c28376fe206a792718475a2f166fa817068db7bd636cb8e30227d7744b27aac0abdda5961a175ef5126fd7d8cad9888e5f8f9b408aed73e75d05205f51051a99a143160cc41fb5f1569224226f7681100019e606c232c2d488fe07742efd391889d66acd88686e50a989b6082d91b83272d5cc02fc187207f4558028f61fb86fd1e42c1816d7dd1bdb254c3c39c854ad3d876d290536fdcba32d1b94c9d711df642792269ab1f471607f8140ee0ce5d620884560bfb0f6e9a50fcfcd7701d55c59e54cce49925ba4de2f755e92d670a0d4af9ef0163a24d71313cf2dae61ff74be2ada5e85ed3922e8d3a561903c5f70493583c54ad5c14925fdba4134602db89d0ed2cae437c049685a8ffadf7b5c0530949d589cad9cdf30e458e8931d96b70d26b063bb47edb0cd53c71ca52e5e0045d2b7c80512b5f00cc694af6876eee1a3d67f6f0866067ef660bbc4bb0ed6ae11290891e890d6823b51f6157616aa2551bb07bb80045759e5ebe762d35e26320b8aa4dc3e807601eab4a7886bacc1821994a42731cc0a8c8c08f7aaf20be6762a2503333e1809c66ea8ba197ff04ea45e09d145b01a4998cc5e1de2b6b4597a7f269f375c0ab551abddb5b05c9a80d6966ae55237762a4453c7995934b01ce70c38446544bfd09420f0ee8cb1fa241f4714dcead443a3b059c417ccffb47715c87bb309db367c40994afc6db24c80f986df3fb2e53240df2d80d8a3616d9d31d963fdd5d70e4881c9f29cb5f854388614974a1184b8f9fac1e605075197f403a2ebdfdbe3df0f42b2342b7f8c851630bca602bfe216a23df4ea7e040cecb52bbcfd06e0b7fedc73faab43e7bbbc5423746489a7008502c505b006adef0ac8e9f6f2f20ba8f64f7c172d72d5dbdb343e3df6d1d77dd4a9624e8d3ccba9ac701266f2760cde228b4a3ed2f85e61cb43f7831995a42670aecc254efdccdffa948ad3822fd93c84120287f72a81f4c34d48eab916ba58dc083df2c97d2edfdba35faa153f6578a9370fb8d5a740522970043a3b37172191dd27ca6c3de77e866fec0616866c3bbe66d9bc310a83607f1341416ffa26ed2ee84f02d66419cd3d7e1e2801441018b76005670428a2c7ca229413de5ae0d3bc6dc2457c58f97b0cb0159f36724b4be00d02222e5df9cf23c9fce75b8cba997eb67b6ca8e374ab06d50af3dc7c33d097e33d3cdb23edc90962d8a74eb01278c0073d01a79a17090d5caf015c1044733b0f65035621199dcafb61a366038d5edcb3af3b728daff1e50d256dd46ad3ac47cccad2e020020f863ecd6e935224e60d71b6d08a34608e42d200b3f2e0067af134732b7446076000001bc094c2ee26e7883cf20c02d5b74644084a9f2de67d8f1afa255285d7ef246612804dbb1757cd3373a73128a928ed751be9077e7be311d4f4cdcbde0d3b41fc53478b6c35f404f781c46151dcaa3c3f75f9c98f7dd9a203f760629fdb13ebbcb20bcf5c2db7fac985c95d74c01ac913c88d747a136cabfa707bbe8aa0ccb5e60618d4d7f45f74e76f06cb376c2a9fbe36e0c8dd2e193b1da2e0a8fe8467a063e83dbfab28ea1d870ea27f7b6434b889bec6b1dea2e2914639f242f9962fd0ef742bfedf6b3da42ae5e630ed708d3a2b9230caafd9d1c06dae6cc15d23912dd6f697df3806fa6b497ad667dd7db08bd6db7f3beb4268c1d4a321dca65d2a7c249c8c498e3210be12c3be798642fc60dbde95f43646195bc8d79f12ba68c22f23b07db0189c7f8a17cc2d036abbcb433505c7050097a8fadeab511b6c7799debffe0c516d09f309cc9072dc45b688195e6a6ea6b6e965ff3c1633177f90cebf779767a161b567b7883c96cee38b923c06209bda927bbd3d79510bcc8e6382054fbea51d45a65ecb2c731ec330d49bc0a7ce14cbd6528d1a88e06e96b5e25ab6f5637230f93431eaee6b3a7e2c1f4aeebe0b5dd852768c12c41de22daaf8b6db86365e3f909abcf7ca02fac9cd7740000000000079a100000000000404ecd2b736dd7baf298917d65ec4ce1b19769dabb54b6820471994d2782cd31ec1a6f52e3283a1a6f59032c8bede33e97406d4e9640687d83df1d6d88e2a8c516010020b4ac509e8c106ac6ca4bb231c2438c9eef8ce66faff5025940f69e99658c47280000052c5b1b9b3c605a114e27f88695616c7fbf48e564b2412ec1e7687429536369db9f758ea579e4528d17c5a016ffcf07a28e1025e20e3427e73f9b8fc32a701f9559025bf3f2ef83aa4c35d8a620ef9b21f012379e4f74a24dd7cf36bf51ec8a495335ff2bdedfb1da57196f568a83cab0975f6f58da756e1f818c4259f13680035d01ce49d1c8491699d2f361e3fcb85e9c09fa579adde01a59564e442346a2761613327391a0154c244b89cb17a9686bc957834fa92c0ba9822259f93cbbd042494508a4cec8fd7689b301b9b857b391e0b8005b3dad193d393a86dc3c8cb6f97c7420223d517c5a440a76a3d9850ae8ce96e959de784fc93c168d4040faf53879ee34e97d3a846d38a1d66e69a61ca9e5bdb6e357a167051ecdedc53d84cbc600aa9ccef1d4666ac036b2f5672bed2735baab5d0243bbb478bda8adde185b5c5feaccbdfc3d2a0fe6524de814a9f60567f257501e075c2b596a9b81bb1484111e5f17fa5438664a21ee8e71bebaf26904bd7f333201749153730524dae286cd388ab19e33de82d92ed1373990e84bd52208f584c423773a070c546d6b637511a5cca0d5dd05ba6e397c258a7c165ca5f32b1961517f2bdf0f74daaf035dd5120d99efdb7a7a771ae2b3392b9871d2ac9747734dec55b7bcc8114ffcaa562755923096ad5c2a42ef5c96e11ae1ca3d7b7a1e8ac1167a544fcc1e4efd7d2433c719a9b74c8fca4a6a92e442cea607b9942d6f84b66a75ed837f1cad6f11f5e28d4b5f6738fc3bda9af9d2e65b0d21321b22652b92cc7f0d220ceb49b4992729068d944285070de7af186692b381630e8ee4dc4afe43836cfc68547b2c83085f2660412237118cdb21559d0936aaf6a5f1897716d9321d12337f54bc9e7572c675c3ead8278153cfd001dbe9680f33ec0f7f51e06e9a080d56c798751b2044c6affa7f9c66e9ce26594a7b738fbfc156f5b1949a8ffb75b49a29fe82c76a29ee988dc00a604c265f3649461a7bb5a785bfbec592cc6ff5a2918ba3c33a0665a27cab886526de59ee632fd37e57ef755627d26db2d31eed9771455f5bc634f0ea0a5d05f3168d7450294991761b4ef5148cb97b6bc7311e04bbe5c93f3049bd4a1eec4560a1e672f11a4d2faf2aa680861a8e997cfba48248df8360baa04b03e1d5502f8177950b17a83a5617d4fbadc453e5953d97ae22aa8257152422df117deb1cff7768e6835695e158097d1f1d4168ba7d5f2b69be07226d8ea46e9e9efb9b80b315be32246b47bc67b74ee1b4fc42bf26b4dd66d070fdc456e36cb5d4cb74a5004739fa87520c10110d12f8637aa03a52226b65ec4e70f0451c62b5de394bfcdf7ff68a2af602630d07df27150032f348dca9274767b4d9d5585b656efaaa64755ae49d1f3bd9cc19d23cddc5245c4b09729ad7a4ea53119a363d570386e8324b4278a7aba2c8aab21b253732bb54dbf311812982a7ab1e851dc19b6c572d5174601326815f3a70e6588effdec05b9b00a9f209417a076f86b91a3dca2619a02bc8bb226acf6ee53df78f5269a5afc605727edb89994a9e984ade2e2131fcd916c7cfae9c6f0ddd5e40ec1e3c8040af3028807a441f1aa922ca198ac0b01acb5e640aa2b81516611f2738df1a60ab9276f13da9fa4b8bc56bf5f7114592620fb6a9fe0e932c75567658b8ae4816cd1e08e64e725f95f943a31cc589161cb3e40150465ce165cff8b318e0c46a5e988438581dbae20180a11daeeaeb448af2f0e59366db0331b38ca11f776bc5fff0e95b63b9d8dbdffadb269764ca200c6a67cf5ccd0833aedbf56419a6ad1caa868535047d8a9e3d994eec736a0adf055882c8fe33478bd90a620ca6c684020020980a167b5a554ac8ac8005f050904cfaafe789962d17dcb765aec7a5f553c270000001bce0375c04359f98ca600d5797289e6e2f632eb696880a455f0d4a058fb973fe4f2450dc204a0c11e18d77129270fcbdceff969c2ba11fff6f0dbb5aa04b0c7b50c70229a91ff966d3a391c18bbf88af14ea71e5feb75c53ea277b2a35a0727726d0b8ef4068c86cd03ab5b12afa59f9a0162beb4b0151c7172eb734139c63e89e338e92358180b5de3775fb76b8a19ead8041a41ff2252acaf5e99ee09ecacd1246632a3a0888851776d5faf928243bbeab99de023fbb1ab6bcaa333c4fb3cd7f59eb3d4185acdf075e135de35cb66f18db272aa1f1247f099313468655eddcbd0e44e8f1f4c27f9dd3dd94e52c0ca38928764c5b347b264876679667eb8440e4718e4f343be1e7dbf7027b28e5642628574485e23c2a94c677638f1a32b101420043c0cb2e3179624f2e52f0d014515912e6588090de5c2b5024f8b0c7ef3b443f028c8fa275a7179cc1f7c087f40324ce267bec85ca53cccb608679233bd95c7d655e02603c89c4e6fd91dd3d80f9902d0e306e02f591bb387b20cd980c9c54cee823e0e1f0e58a3254084240b88f6ea26fa7d080bead81708c8f4c1784a2b537572c813a14bcbf5b3e84a2d1a6899b8f4e3d1dbe353937ef8ab9a3749ed4be3dc6971bbfaed0a8897ce7080000000000079a100000000000401f7a428dfbf3144ccdfda69267ad75716d2b44c02fb9d1676448479a4846140bb0146ea24026bb9473d32d36821c05bf3700232a501c992e73995b462332c8dd010020d7deed37c09065457cb58346208e6f91e8f1af4cc60401ae8121ba97ab5a623e0000052cea5e27b4b960d3d5ebc11489c0c85f2716b9f0e85da2a2089fd40579eec138be3b7d16a3f99308a41c02577522d32f1b032080f45c70ab953c5c6492ba06f552d995b8c2bae78b1fc2c7c04ddbfcab911bdaf2be74a78a458fa2cc9cd8676ca49de6610b430f891708c75b54f133132c7b5c117301e09e78d095daa4087833dd1920c12babd54256178e14a00e6f4616f53d80ecb2b68c7683dd8448c7fd25fcf0750dd4bdcdb570b091a7b62c5ec906ec99ed86faf665ba03472473f574fdb011ee3a15a7a3f6bcc9924b2ad0ace9d0469bda0532aec27e95bfc99b1132c4f38c6a5ac8e04c59d41a3a18fef3a9cebe625f0ac75b3e2c56e2f42044751230a775f0cab2cac27a5e90407089170020b82975afb4df6ed43c24a9798dba886405d457ff13dd9303152c19c7882a7a0e27c8b6cf63a5cdb3682b267b27661704687480e3b621f7b5a893e7fb1450d74bd98b2122c475de54acf4c9d7894106f0dd0afe8b3f9123d0e4edd797d52de4d117ca526b18034e8a09d35289d1b03b4893d56301c4276ff2d5fae1fad23c04b4a21b009ae5bbffc8df440fdb7533ea54ea5eceabdd492cb0700dad4a10b2539de965de89af5cffc967579f2c577326d7f2c2754466ff31bda460420a8784b0c7c98d58918ee5be4ceb7556d6ca4064483aed3075d930079510f11dbe4808cbd75dde8bf51183868b0742d34c8212b159de7a2b138936e69f1f9400d46761168d0204392dae7e3ff20338b4708f2a5c315b5b4805908cc9c5debd8127c820551adb66f491d8dc63fde1fbfec69a4717858d526e9d5cfcb855e44fbb362db8550dc4ee53a2b874b5ee3f317e54f4172ce6465b7accdbd41ac3a2e55de2c60192df1160ac5ff41a994846a6e802f8c2fce0d3a044c7399ad099c5cfedc7abbfefd23cfe254b8ca94eaec6df1782459afb050d1a55359c298ec4aec4853cbbb622bafad650188b8bce91db0178dab5e67cb8018840aa0704ee1831b5f7457638240dca2607681629a248ce99f74f67ba5cc33d3cb2751cc4e669f1f690a521ab534d46106b04cd198e1885a0cd34ec5ba1651edd7c11bf4190047432f8e6c3519fbc2ba36b76ec460d8e2bf2160a8ddfdad50b99a113ebb15ac2da2a457eeb4621941db0e213a22611306a0bf603ba54c7c921dd62caa1b0ec5b82475239a995112057060100e4db630a5d6f7c6ec7a018595d2ab94e4334e60d3e14bcbb0708cf74f6fb000afbc19f8dc9544a61851dc120c3becbce8cb7120c85df8381cb0060e564fc55ec259a624d3d3fcc1b92d21cc542684313b4d76187a688a872233b07ff3d4ab02254a5cdb8ef0eaf3519cabe27cd2f6f53923d993a4fab22a966a9aa129e753f6ab985c16f8dff1fb6cf1e48f1ec74aff6c716334e47d19eb19f89ab7b690e246ffa68798fa3c2eea07b7cce6f3099e85d749a545fd71afad1dc290508f674e67ea0edd404075f858f4103d58bf5506d5a9eb8aee604864b1cbf3ff631be6c7198155bddcbbb2d1f52606b9e4ef8b81e7af3e44ae885621b3efc09e8be69ff1dbd324dbba19464d13580bae60fa101647d344ef01f6ac9c0ff53ca627a7ca7a1ac675bd2acb8f88db8a97dc90cde20cb85604533a765072570810b240da66521eac041d1f0f0aecd14cbb673bdd50a62e93006642f86535e52fa66ebe9db7ebb8c62edebdb29e31fb7e5463974e9db0161c1e0320fecdc61e7cdf2cc61ce528d415b8d7c17e54793207c7bb3a6199e1f6a91876df97f579b92c1af328f1a6a4c225fe6d998b724c7ce893d3ac61090096477af1a3a3c5aec411157d1188dded4541f530005a242687efd563e4cd9ca20fed31e11476166c064a5020020992125dca72a63037f2616cd70a9badf696d071b2d34dbc0c2f9b936d077bf4e000001bc12e10c10e15179725b0c02720ac5c377b1842ecde1db5c49552ee8f04bec2b46c8a722c80bb500024245e884a5c147e26d9eb89d528996224e3666769174d58e96536e7ea323c02e6037a03cb8b776a97e680d821e1f8efedadc818a60a2fdbbe380d6cda4233fe942af5355cf02c28e50967ead53aa515efec0175a4ed3abd1d05d2678f36065c996bac4b36e8a5e5dfd0ac366a5a4078e4a1934daaef40ed3d5a214b05f56842e569b98da4812ee93403924ee530a347c8f4aeefeef2a165fe80f82f9d94037b0c7f74fb79971e0b85c5cf952f0adcbb6179d37528bbb39526bc84ab2a8fc6722b98d5a85941d6eca6a4bb4034d4f954c8531a9bce49b1708b5d6bfb8d07441d69fbf1d616742d07100e63360e915b61d329e7c36d7f8cb83fbeabe23f57eb806d30b399880e7f61b463a2dcf69ba75f1f596fd99b654337ee1c36371be0ca6375bb135ed962b90c8ee2b58917c398c20f99a3068aa69eebf456d09abb9718938aa9c1a70f2c94d632bdf0519de74cc0184b971d2db0ee13a3f93ff56614112774b532b7a67dfcb06546cf04f70748046f43ff322143d823b5ee454ee7cdd4a0249795c3f3d37a85875c46bb81500870c4da397c68aa7b5077d679105ff798397fcbfddf10000000000079a10000000000040252fe99841f64a7162ba5a68799817236175f74a7f7c2acad7363a2eaf98c22b629ad2058ed273f2fa8f975557b800f9d220842e441ae113eeff68511e666d5901002002a76401d18ddc93fff69cc3d971ba86663411486abd9b916ea6a6886836fa510000052cf417c71f65d4aae1c98c2b78402e3804875fd28d37c7a870ffbbe0e7dcb22a619ae0a3e096f3e6fc8610306169dcc5d98762cc277dc958e8ebd1b1085e1bd91ee6382a3a7f7524d2f669407f97c5c4160fb42361432a34d604ab6c930acc212465b6b3d2b6fe398e7c57ba1f93cff0640e08f32cc85bd21cbd1b853b4616a7dce577a7b585e4228a6b38bde9ad422309bfe66f91a75129c2a196a0d7da978ac583bf68d7a5804690f37959e64870bd16f19e19fd09282180998eddaeee51caae9d6177a059e504eaeef10e8b4c9c227caa9a2c355a6837bb80d82eb1fd7502f8cccd9109459615d806d01188e9c0ba8ef071553f06079a69d843bf2a69c7a4b26b0db042b7db28337f0c104faab3a573fe5173cb5c158152dabd5f0362ad792c446e55a3f1bfc4843cd3f776b910aafa052efc10004b31205c3d8c16c43f9dcf56d73c90104a0e3f8d72dced3046863bc904c85dd2e5fb60ae9e490186b034a5b58ce3af1727e97c0adf1e80e9889be35f2d018f6bab62f55cd9341cccb75ae9076e1c2d57409ca92e54ff3dcc3e246dbc6e7f2362931efacc96723c023ef45e44173561b59c0607455936106086d1d8f57eb89b915b835020526956eaaa1b26ced0c12db5b9fdce59e32ff2ef4ce282360ac1243125960828f158aede2a0aaf732684f533a65d2977b7da84d886aea237cc37514036d784759f28f3cf61505a5a5fc8344cdcf306b1ca84b2c14c3069b6528e771f116f7774afa1d4fcb6ddba6bb76f2c50fd7f5a1044c7418f8fb3b672aac49fcf4bcb0e9b9714180aeaa52ed17ec5d371ff7f0bff54de957a61d81b41c17ab9d86f9fda6d1036b19b5bad9e1ade07e49432dd8622320f4a291b059e444df71dc9b3689ce47bbb49798f05a029b6f8c6fda0f92c91be0d3b50be2c5372bf5e4802485f2da5e54b1cc7e98f6a1a5e3c1d8bd3129ea25ecbf254aa387db6e2408a3b9734b8d36ce8f834c32da8a7f9d1b687a64ab2a3e8df33f008a3aad2329bfcd6476442ee19804e6e543db85807f9a5308a71aa8a59cc4eb32bd08be1dec1b8c9920b539199822b2ef44834443d49b1fba487e313e3eda27f72a920ca23d99f9a00c1fdbd52cf3c9279cad2ffb245b6c93cda01fb9e591fbc78ac212784938b007d53a3e820b44a8d59bdb8741259522c01fb5c112388911b6411fb9e4161660d03c1fb4222b0e26421bdacba3c28111e1daf78e4d6aa464aa0315d0ca31b2293bff1cac89334fbf2ba08db57af88eae9f022346a3f1c85c2c908472590db716520621833b81773a63a5e8ad1d3f2a50f865f74480d972c6890e4e4ac1c6c2c1f97558799014e4f7cf322e65665c67474e9ade5e7e5f62b3822b042dad5179f4eb89d44e98a43cff485767fde302d07a487ad1c268599b7d72abbc06d84386093004b77b0c539fbb520b74d23f56f4cb1919699cda46dd76a3ad3cee88a06bf424181c56b1acfd2344b15e1e6e6e7547ae526927c0019bb590c60412b43946c6ce42949abeaa7d4c77b847ff0aa9a2b2f6edd402e8a9a67abe26259fe175863ff8a906d42c3d23f2d1cc22458f34aba468c1fcb6625c984cd290efaca4b61f02c0f0f9cfe7379f54491fee20e9e0cdbee7227b591c3c351f72b187789ad69ed616e3a7db8842a6b6327260aa12cee84bbd1964bac592674728d468013db26c1b34ef9b8596d96c92a5be4b38f06a6c6234c58099a3af143046d964aa090a6ad4923ec7543b7922fd4686832a4b364dc71c47e59fd506bd63bfbfe5fe30b6a7d8bd7e4967aaafcd138b581f9de5c48c1d28d836d7a5d716d8810feba410618e0fd47b0a70ec0a9247bb019c8d77aad560e6cd43e7901eda70200201197fdc9658ca165608098e423e4f933391bc2758ce8fb8751a94d2097fe7368000001bc972db2b31a957e510e443059bd21d6f58fc6ed707f0f5c39f6975608bd55760336ab1fcf8597be064652627f3cfbd135c63c724b16aa5a9ea68a952ac36cff06e58c1dd846b06f532e6e70ade241bfb07cb42c1726d5672c39901c6b3c0f1b89456d34f17770c820a8ead107220f6d75192252af5d895f8aa14aaccd0cf4d8ac83122f642c6e4b03169b77b4da09886450d704e81f3ebcda7f48c176c7bf78851d9a10d3e859c5013fbcdda42f96465f1f6b7064d2b4fc2457df8abe19dff9f9656a51c3b182f2f57bc4d5d6e6248aa82d07de4a6fb4e676f99b19d5035645db494e36ab60c190d0ba10c3016a92517ad009b7985d7d46bee83dab01c7c608e9c4ca4b58b7a7eceae5b65990b2d7b93701612b0a51b6f3332cc01d5d5dc25eaec7ebd6bef4e35ea428213830b677cc74afbd381d0ae2b5cafeb5d3132b00e599c43fd5ff2b9faeb66977be6b872f364c03648ec3d4b30ffb5f1bd9af906c046602b4f524c75b5fae7bb23cc5faa384cdf8f18a966815b7dd972592e3c9db06a190111cc8c84d31d11685340dd56d9c6b63efa3978cbc67bf731c2363f9b7eed877f85d0002074c7264b6734bfd361982ac3140771e52e03340c92dd78b4d71fc18475112d0207815e6a41f550000000000079a100000000000407810c999915a10cb45924cad6fb1260d49ca0a09937d933bba4b70a27a3afca053abaa37c7be5a8de42841a1804ce197c1a134c227c06bb6efccc58e16362ed5010020c18635905036b491782846adff1caa7ebfe41c4869a8c63d4c963e64a13e6d010000052c279c00458e73b958374cc13b4d5472175fb6a590fb6111aa4790935462e24f54947a71d61007a205d1e97acb1d74b0276daab9c872d679dccc21ae78abb16e55c8711b41cd7f857643e02720d16af39325460c3caf57bd88fc949d9e882eac78dfa03f01e114320bcf05e1230af5ec04ccafd17101b65c7cb4e41e4e2b726351e329985f5ec60eb968c7543a3dc0f976a0cf6d608a44e0f5e4ab1fd5e8f98f2dc55530810c43943ac18590e44877746e8806217aadcd53f4e6a42fa28a197f411056935852dfa191f41fb051f4a14bf74078be3b727328077bafd2dfe70a6be68862f86fec923b74fc28b877afd9d4421f9d9c4e55c12a77adb6e98300370a3318d55f32517bbbecba93734b57dccc1e337b1c5cbf2cab2c3987e933f7f4cc6be6f8e33b1bf78716735df8b2f8a50819da7783a64e7a8cd1e1aae35c95cfd4bb749d3d10bac1530a6fe96ae354b2a67c901e2e8701046fc675b299780633e25951f6efe40f09aed66c2b70f3d618303c1c495d4cb9abcdfdac9be97da8c23b971cea35890cc5138975088eec00d1d6130b4f9af7ad2eafae609e392690f7b34e1e324f603bab1a40090a2a1fb22ded5570b9b5247b5da1458f6f92d5101fa834ff16c8689c0942eb8d77bec68a2755503201fef15da501eaf2ed8d9c62116498fb7f9d895a8abe21de6840e0619bd69b93ca8691be849282ffc37439e6904c305937490c34bdf33e376179f6bd1f0b2e35896588d16fb5aa17d458f4b3c75d58d1c4c9d76e90b798b711a814623470131ece48015fe00366b9f1f3a195806c3a9cc8b078687b7f45a62b846bb42bcc96575759e676c104cde7c13cf005f62787721348f1fc424027f89c005af0bbf867516d044993e4d78228d67e1776190773d8a92f32337dc062599a7194e4c18e151afc4639f7eabb7fd6464cd333d9100e0e9ed79a0541e4bcb6ca2d5b62cb8fd5c2fa5a25ea4f55603143e844a794cab20bca9d783a438815884061ede1e62fdc281290c2c18c906e5e785ddb0c4e0c93967c395bd6fe2b5dc27c660a5fd43d3162563e124e5d26595b03734c98c1ad08b8161900aa23affd0f7dddcd9df2dba20ce981d9f4961a64c8e9f88d0f1d829920b040012412e0ab5a4ba0c2f7af9734591937f5473e7c7caff989ba612636aed5f5c68881aefd7ab2cc4a56b104b7341cd6d41d2faba0eb131b932f490b5e12dbd3fb9d6bf24cdf7c51038da1eec67c5dea0441ac35a3712b0217b325a1618bbcb8df1df30b5337b12f94915ce619cde576acc3d5d530ee873790d19c7eb51fa89fdb0ca0ec7a1c16a9e02443ef20d068fd82f887d52a8828beb49d6ac946435cfa254d068fbe47ccd345ae86a26d7145885b898e7ec0cc30170374f07353416f6c861d140bb8274b0e1032031f02d533849e9057927d4cf470362e0ca05f62f44bb778ad81250abc33eebccb34c24bbcee7a01cac800ae5135e126fd4d474b6d7273f2a66362aedc902942334992e67a2feef3cd9e78bf27ace41eb08a1197ad05a6aa657a2f92b10071d8a6f0eaa19579598a55bd101d3dbaa3c09c4406fbd8bbf031b772b33d4408ebe67085d59524152cd2d5d20a23ffdebf4a7addf53c4d5af9b4b0c604f7a4eb852b0fd499af558aea8eb24c44bbb46451aa7feaeb8e04f6ad07e993feb9864bb82e4cc748e19cb3129fd7ba22fbe1da4075267f3a3181f2ea20060fcdc1fb8423d5f1bf17a4a60e54a4344d49e5b171901f0ed050b2df035c6962a79318db3f15973e21566bfb398142036dd00fe156bb01ab8f15d07ff1d795e5dbe21a594c0ce736d5f7c5d3f89658a3aea56084280757010b0121a1a25abb7977fa4f9ebe81a3020020a4dbe9ad89ae7b29458251d70c5ce4315d243ce568163332832b75a537ee6747000001bcba796f28f6c6a95887ab7cb165388688cfed901152534d80dd5734828d2fbb030410f5e73df089132827fc0521e99477b11743472628364e63ed1a17a88353626705a49c1cf0e7316017562997e8cf2afcacf780810cee224b8bf2104f8d12f578f280f113f07cd970c21a51b3295bb98667d95db3a7c1acff0c2f98e1e1c52941ab880aabdc94e02751866986279ffbd08843e1ebe73018695e8094182e937e989d1093442d15efcef42a85e3ec51724fce29e1e0de64d6a553d60573b38074a443a0b44c9b4fd677794320080a73148929ca79e55b6e394014898e29d75e9160e09300221bfdee61ce5a5f3892976513a0d07719fb22adb2c39c9c592a5dd852e0c77a43f5caf24af87bcb38a74d237ead11a90db2aad407cdddf43f07a7adef0107fa1365e34d36211604b7ef03d150ccdb3e95c8204a2a24395615ad2be857345b6e2534424532d12c26fc2609b011d496ad82b56813e94706c4e9f7dbceed0c2b73984ba7af85e3e96d1be7a58b0d622b1041f45c303fec364e2af672b49566b217c14a3705b9636675dda243bb847ca2f28113f12273a6aaa5712636953e43641628e8e0cdd9dc6927d6e3c6f1c84dca8e6c24cc435fd0a0699d4a609c7383de90ec57056cda27c6af0000000000079a100000000000405b3ec32f81b0a4a0737ce70c42c385db7992149d4112e27121a00ab4f8c4514d98064d115ad573f90866662b3c203a8df830ac4d0aeadf19b5e4e050beb83bc4010020eb8d46d7c36faf64e357e7a5497868a8db20f75fb110dfe10a69f2ff750a33540000052cfa014a7e9e6690ec7b8b26c83d1bbef558262bfa58e7acc34df67d6d949d066a3dd345e63cac98508ef06b585c355f80fc44d1cbf52cb710a90b4e04585b08d73302c056e81e82ff015809f49f3b1ca784c997797b3b5fecaa3e0ed036e2f8c0e8bebcbaadaedb907f26352d0df4769f3a06fb780dc5a3610e8827fe4c5b6ab3ddcd5748a1c74747c614ca0071864a0a20e49a4b453b6123ac4873f453d6cd3f3c88a72d0e541bcde0c23d0e40f86ed6af8753b339cc3ad5506c140db21c68fd0553668f7cee85670e31b43c71c19296949142b3356a2db773853a5a18a15358dfebc5bd7c7b0d27c097ce6be0af4fa98026d678a630f0de0bea0ffed904217ed87cbc79b6defcf28bf3a09c0aee3c6cf65fdcac936e9923af1f55894c35205d2d2db8ccf7253dcc40ff3f945ba64e670f09013b12ccaf3454771a34524d54112cda0424c1c96bb5c63f9fdf16a835cc329f0b48bc750c8c62279d1c6d3dab3a580dddb8dbfcdcb726fee0407749cf80cb324ce869a9e7221cc18dbb92d1f6b7a0f26b9d8b6a8896c12d017c85e12ded9875de7f299bbcd643318cf27fdc20708596aa7d0ae857e44f81c1eba62f0778e78713f79d9552cd6e7c579cd779fe41d6726c2438717ddc5e4c101df5ee52bffb7df8851c0182f8bfbe97d68b0ca9b529553d3e15272e902929c552cb3d5971aa6b128bb9602a53c0bcbf3afac8e762cd271a0e242cb55ee09a6f4babcdc0b699767d098dd862ce8fa3b922eca33d5c9f0ae771ccbb10004c5ba2de2d62bda2151cb7e1cf5d720a2444ea8c5c7a7ac7d0c915312873a09bf496fda5490198ad306601a97fc3cec101b14d901864e1b92a2439e8161d374b13a936ea81c1f492760312166b30a5f47456643b3cafb5627e35e3b0b14b25d8f186f216d04b8567087744c29952f3756848a9bd0170e87c5ccd841f7d04f50893a56e97c9678f7b9021c4d2c4a1742afbb4b62a5b01d8de84b7301b62d4dcaa99ae5e883144d1d5d5b8dc9f804fcb1991ecfcdcb6c8e691a26379bb120a2396a76633dcf3e298ff353cd8dfacc6bdf2669aace629f4fc2b67bf37da5a6741c278b090ad79b422b14f25f5b488c7156a36f354d03f812f43833b293a35916612f353e462f11fa00aab0f7a2a2c0aac6b21bb98a7f60f44bb622bf3b5b70fafbd4922af210f67de853c624254d244da4ebe2ea9d47747bd51a046332218fd2642ee680c0c4dc487d32c8a1621331d9256aee042c6294edbedfcb3a5d6d725261d01a75da62b086009cf8cd2da3e5215566faa4e51805cdc87772b2bf59de1087afa53e1f2fb9f71d593ea2672e7e8ea95103eb4555152a23ff36b463a6cf1a3532b380578a1784d9ef96bb9c3727c7c1f06eab01848145f86162ca87752e9ebf3ff125f603882ef46c44e9fba942017f8fc76b62ca47d8b35d1d4f3ba906c6d02ce1518f74e639571c0b6ce98c1fed1d48f54e0791a58051e89993665f636cca3d9d5c39a3336fcbd1c13e333acc523bda0ff0d608a4bebee5dd2fb526d2cf1b450fad3c2da35949bdae23b8297c4d513d607e6d4283b26f0f4f3f5f4b6950088025131e93dee3968252be5c632bd92e73fb704ce62f4ad2277ff5a5d197b69a75b64554d6e209ead75ca72f6f5f6deeb54d00f4e1068a2632b2b67eb170b98822e8f49e30320c4e3562924d1717f4bfa65eb8f7e2cdf563946ae08150fa6bbb2996f05602a42e03561893561267384e9684a0ac9bc9b1a6557961362d4d036b39c6bb8bbe8485ad8825e92c29102f672c0ba72ea2bf8cef3fb3dff739232e5aaf7f19392d598c2dea73cd3d9ec16aaa70545ed33364bde08b1345d56091c29e4d42e798002002056786003a63290c433c5514941c67dc6e5b6ff65c174eb704619a63cea8e3011000001bcab88654791b6cfe72b6093d951df189cc0cadc453dc3aeda247f6cfb84d95b015f908d78881a0505acfe1e44136e1ede21f291251d249740a5b836b25c540dbe2ea5d59e4b2df0efc07cd19ab6fa748e0d51873e2d22ef2628c4e8623c184f7b1e3b81cd6c13eb8a306daa32c34f7fcd673d636a00e3fdb2df998e5f81b3438fc5cd51817a2ba603793d0e552e9ae7c41a4455ba63479915b3e987fcb5aeca600cf0cbd41e1d763a052b8e8786dfb3f52e6ab578aee6d69e27fc47c463f5d8a956dd790de6355534a3715d449223552cf4c38c9357f6f49a4389958c991b6ca44fd7044b1a50fd7d3f66f7de7a8337e501ec771cd001da98cd08bad45fbfd1068b58b58656bc5bf267ce30480867a78cb0555f2dd7ec827b59ef340fbe0a91cdf3dbc7ebad98afd8c265de2e2ed5be910407643db265ba9d77f03f9dc3af36aeb84db3a46995103de93da4b91cb98d906ec74934869c0865121979c517b0c367b2aac0aa3df4effb38e91522d89c5967c78dfbf83bff2dfc6b074884330b3e9b20e481dbb5e265d70f8c7d50ec2b8e09c195486caedde45aee50f3d4d9d41edc1c773d762780988289f834e926fd06175a5e9742e6975db8727401a69ef49e6a99f30a30ea01b76ff2f8f8080000000000079a10000000000040f86b563bd3ebd9f308da0851d521afe2009b63b9b9d6f6fb4da7218b60e9358662a7bbd65c212261eb7e085c3163ca6096a3d1836ae6c4f52f6b38d36f797adf010020fbf2888487600158a198492749cf93a34507cc9287da85dc623acfe80fb42c680000052c103b9d16367859be960b4f4418bac04ba91a74d0087fc349c4c05e5be599ae1d7f6e2f183a96564bda3b55c9f9aceac27bb1327d0e4bd5870895c29aa39105ec4f4b3806af26b1838f507411876b897ad297716aa890f7f88eae17e93160b27817af32c2f580c3f0217f5905f3dfdd8a85445275876cff6d6ea2eb042fee2c3fed59bed34242daf608c643f097ae7d3398bdd35e3b12db171e10d9bfb94ee6da9d8ef75e2e1970143957507c62d6cc3d1c36cb071dd15b2bb35337695d42b26864b3840e45af84edf1bce2c25a51a3b4bae36793ceb27394fac6c8ada477e08ed123e8f587572b41f1c9e9e42a398ead480011f17d8fa6af5ecec0e82a9a20f445e7fc309816d0299ed1c7869f88a357987dfb9696b9e38d31add7e6edd4528d1cc8760c4c7f80fabf86040ab8e361c3ff2fa8b538695320c09310d41ab667d21615bb2e780f05db8846cc551b7fcb4a6064e4d968c29ee6a14043139c081851cdc6b6a93e838270d99037eb6b921f271ac28c971a726da63360f1ff51f79b3e4d485f56f4b66fba6cae3ab505e23cd77c887489e38d2b55c015f0b0b27273dc0249341a2befc3f5f5c9d9b45220ed9433e2bf3a17be73f856fd6b9d2f63e763ab31c69e195c82acd9c3d1e6074ade20c4c975e1f2dbd91c5aa115fdcb8e65e3600f25e87e0a01f9af51e2159ebf6c2b9164ebff75d4ddb961eecfae81e977056e4f830d083efd7c4042f65563439b097cc3420a87d0c22fbde5d5a4364566b44ea0cd8d0ab177defcc5c9d6c96bee47bf7f0823c4395e3b9622a5d6376e95e2f380586d3068083383baa471cb301e1afe2f8f77243602f42a14c96dbeef5c7600a42a03a6cdbd31e9f80f8813d383a27fcfbb661588bc276fce72fa8152e12fc1e10fa9bc4678caba28224ad6958ed7589672f37e1b277a537b84e0339414c20497f8150d80224f3d93428a41fe1d65cb98aa40884f0916cba944238b1a2b250b682b615f9c853193f9b6a89e53ada123af972f68d35a5a52d0e0a0575933dd5083d0446ec7d9cebfe9545a30ca4a5fc1af3848998ce7f8dd9480e458ada6af526a4adbc97fe4d6ac642266aa1137301ff9699a02fa0c40d7d4e2d845482f0bd48d06998960f4eea662500dac8e065f7a7a1c4c315d9fe2605b69835c42be420b234422f11edb16b9e7582adff85931715de154996426af93c56f771705ebaf31c97ffdf1bc99f0a3ec46351adac71a0dc9e71f2f3425d3f5f73c2ca666f7d023aaf7b6bfc33c900f1ec82540e45181827bef2d67374c4e588d19174517d161d505ac6bcc06256ba491948d6cabf64d42acef1d5acd23ace39e79af9d11d476221a1e1a4b1d9c749f61dc00f4387fde38e4a8998a3f9f933cdd454de54a56dafae225eef55e5192ff5a08493144be1ed7896803275ecccdded86362366951710c45faabdede770e69f9d8fa34b3b9a786c1568763253d736127daa844ca51554e2f426489749ad2cb6396dda1901f87bab92c8312a966f00c4b1b7535d412a7b014d391c316b863d823bd50b00ef289897390a1e828daedbd0bb034f9393c110efa639717d68376c66c9198b8646fcdd0bc515479e1585efd0664822ed975f51ba8294978a680360e0051c4e55b6f6a2196f87c973208f210380e222f2414a1bb2c4f08128f6131079412868c798a372c76cdd4ec9d7e649cae12da567be2250517199ad0295992dfb077da7723550c15b3a3c22d5583f88418740a25c1b1b5c8e2feec2a958fceed9d807583f28a47887abab18b5da2d1bb026ebfe9cf1a87d0d1f051e2e0aa9ac90af262410b96d0b2ccc9aaa5ac044732816c56c95a1eebfae1052d4652d34cceca2474020020dec7c704f526293ec183f37fec4b7cf55bbc885f9bac175e54cb085f9bdb8626000001bcb4bd12385788bec730b224df056b3a8a8f4dd9c9f95a1804d8c088e8f03e8413d264156a30b11e5447268c4433062ecc845cdf38c2942833da4c13a990529ab8e5c49f9ab2c8b47146e36e7abda3f01ecc610cd84d4a5ae4f8dcad9c367df1338f084eb36e47b07ff271ed3c7ad95412b81940edb219a31d43110c4ba1e896b6b4a810d025599b9d4b948b5f9a6c089cab152b87aa4ddfdd6f2a482f2075a8bdd878b3ba329a570a65df54e6a6f90efab017bd8f9bea64a53ee4f78ef3d9d132581fac91b8a16173f7921e5585bf4956c7a28a0bc337cf61cef9656cea468da1f19b9b39bd0490e95030ff38b88cc5aec6ef4235bac85aac7460f056c9bc3ccd75ba01f1bf8216cdcb7d3e45e785894501a7433a85429feb8c9a48c55839f06bbe2c4f4d0da2f8560fe514b0332469ccbde4bbdf04484ff6f428719a703a508ef94875aadd32935313a434fac2847ef76057ac7f0802c568f1b43130177abc4f62edc183acbf686e8df04a71b5a4bbb01c06f6187b022a198849030b90f609d175181fc23023b9dfd2f2f307d17ab465785053455e4367bbf08890126d857f5f53e3a033e14167403801d27ff2b3400b3a00950030bba2aee82a5ff2abef3a28f4fecfb1cb5337029c57a51e0000000000079a10000000000040a128c3899a2a2c41b5f3fe8262887cc20d50e7ece4f9e5e9dfcfbffbb63b37aa0b83c2c1a9052ba914005fa2ecbc8823aaa079ddafc127915960d4ab2fed8a63010020205e00096c82c1b28fe56f0e3b126b54b6c1473d5dec44c8996188d2c541fa7e0000052cbbee02df85ca9c8b109a61e56b826d4dc38ab25abfbe479e3d2ef7cebb0f3e614b21d2686ca75bb09a9854a2a78ce55139452f5421ae2015d6b0068b9f9591998b948177a570796cd3f974c32615bebe03f926dfd76f72a1375a210f36953ddc052b690bf2d5cae85339033a418b8f32695b8b48e0807de220c521158dc7c7e386ad687cb266adf08e401daed537eac4557a6edd16263d2d0bb5f7962b43defc87b89abcfa54f439b5c15fba397487188468e8fbc21ae05554de3a7d0755b0e2d3aacd11de31e9f2d99dbcd50307a1eb0be249e749f74fefc2c30c808426b4862abb0fee176733b77dbbc03da4befd2ed54fa60ffa364637eb561970e1b0a1e95bbb9c50f0c54a938fc66f769fb59a8c2cf59f584f5386ea0190372ffc588541bfe378f6948a09213d6a2146883a80fc813e854ca8b89ee569d33ff4399388710f1a6e8def757f67b16cb31cd5664d817a233cd02fe26fc6c200bccdbf5d70f59b2541e5b2229ee2ccfd3a1c3838399412a0d3c22578e6b01e716bf51d1de5c37c0cfd2ac1b2b50b866af31850e42cf5613b106be39a88cde80aece810ec135c44889b4134c7668cf0a6c23de1d3353215e4357d7bc501ba71b8183fb2e818b7b6e2eedcc39608364ea7c9cbe7d99d3ab98605e1c0412af20ac1888b8fa197c21c7735e3328946d3ba5e93b14ff5f6e28a886f381ffa113a9e055cae4eb8ed5da5c8ac2fbcf390963b695214a726c36c269426f368d1c2041b3c2007b78bc0c6a606dac1f466f5e2e44037310e8298516642bd8b2c816f5a70c860fb05c00b807581988363768fe8795b09394d868bdfae55619cde67789073dbb08760646cebbdad491ef3ed0aa183519e30153e5bbf5fa4b5da298ea657198430e412fb83f70c16f3b8d09687ef834faa285a2972b2d37b98bd09f12513a30e15f0fcc0b6f206d799fb79e4d9961b821db360f3f02c5ea7dea0bdccac585c8bb624a68105d590be008af01131a7e99ad572583a64d223e8743454d2f7e96ab2b3ad5edfcf0f34b533b55d02e76406c727dcd8f3aeb139c358f40554bbb56d4afc31eaaa61d97e879eda89b324a7cc3bc8f0293dd33398fa5caadf501979ec29a362f2a541d992c1d27e00fe7bcbdcadc6c4bf658ccdcb01bfc59cfffa3e17b67e187c4a7144d66c960742e4d9294e45779bf210a9e6421ec13366f2af7cc2382e5c9820923c31d3a81ee142977465828a2eb8f86dd08cced27fea84b9a62700acc4c7145afa23a3844d7ba544b4ffd54fc235ecae5f38ee81fb8f6beb1fad19e81e0c9bc23d8db418b74003c3a0b65a3c0032532d690ebe753338a24d69e6db8a9516c8bb245be7d300662144baff7bcd02aadca740deee49062d94f2e6d9cb769e2f1c815436197e84728b8e211b51101aa16aada1c8c20c4e67cbaaa0d3a9d4c7439b0c8542331e1ed0516929630323ac94fbbb6067ef86e9961994edf79cc1be3368a2d5c8c4f8479f05dea86007911cf092c016ba14f6ffe4901ce4175350828858e1250e07af1e08ceeb35cb04a957fdacc84f8391da5dc4ea19378e2ad0648245e96866b856c9b1a9f2fc05ca11c870ec8dca958b6be5ba6d83c8c157f357c8e812ea3d83934c9d4c79106355380cc18eb8d6079392be23ec5807547eefa0622293bcf1b838a87ef4087937c088d5feb5b574887db8b4c47739c78e32560105f1955b15400259737f00d935ae3b5b023dc8f4b2cbd2007fdb72207c6e5e8ccd8bb1669a54f90dcfc45842fcce2a7f6f05a2f74f4344e1d7b39fc637b3d8dd4f6397ba77b64a083b65e5f6223758e5ae628320fc7f05c572bf0ebf055edca367a5b9dad1ac3bcc96456729789b99af02002059783aa18fd7a80b8e2269ce1d19eeaebb8020adc31e46591e887a7df0f37733000001bcc85785fd487f8ba7ab2b4ca7d4ad8f672e24b3c7e644655a801f46d6aca99aac2e233a0f37b66030b6dffda4eefb246f033178a3547ef6d7a285aa9ad193d751dfbea20ef1e1199a7fdb951ecbaee191d5e411b6d3fe3d83e7b957a09612ae645722d724b9a60887eccdb33641aa83df23d25c6bc7e2a38d3dfc39f006d779974fd3c8ff606d00772fc49e96b749e158ff26f4b29f2924a3e6ac8898c4f1a8ca97347fc598e9c015134dddbb47d9a2b418cc84a895c03cdc7d9284142db303335be2b6a6263deb21882027cfeb4b49722702eff97e775e8798fc40cd772921e8013d72d9926349da270e00ed47aa27095d0b418a9a6d90bf2961fd6cba5fb0d59523d34112729a97542020fe8bb4c08a733a0fd2df76e7fc4c50f66c37bc074d88ed75e8aba48bf633b44d087afa2504661785973df35eea5d9cf5292816e353df0225f182d0418554adda0ce7808d62883fc01896c0b471d07ec3e2d4a62dc85a8fd061c7b52791891e5be4005b980eb71c11493b26e074e073b6b22ceac9a86f01f497661c291aec8f14e935defa523310b0149d59d28f8f66830261497b2e4e3873588ee87f5993376927eaf81b8b2084204e4bf14aeafa7774c1c4020858d90f9eb26cfd79014923b14d0000000000079a10000000000040e4f13b5c73deea74efda02652efc10bb5664dada18735bed732edd969a9a6606b068b8ceed92f51661860d6f2a3e28f0d97b8b787af51a90a54fe0c17dd4a1580100206fe73c8a729cd778daab51341a43158193adffce3897d4b7900c3ee3b2c7af6b0000052c320e08c2cdf38c514b1d233e9fd066a1f9b931f426b43d5982a7037f994bee91acf35070aa817e5d030821009569560d5f1e0ce0b9eb14acbe50871b3fe3b3f43a448eb5d428c792a0323fe3d262ce49c43ab0852dd933668226344ccd48697dc34d6a3151446a8b95c9b2c8bed7aa8a59ed4985f29001265056980f4f39218243b815f058cddc85b065c1df221422c5aec7e2c2ee7ac1623ce9f8a18d62adc08d23bf8c6df6a290bcd5878453b41c80af3880fc65633cc3d8970dcd6b3da23f373836f093dc4ccc85b8e5e5b0ecc2e3dd94c23d996d2376aac99166871f40fa538a4fc801fc972af3e87651615265b17753a9f5f72f52f4aaeeaf8f2947c4c435f96b726636ba6b5254f5531339368365c242d42e4778b0ec31d35d2c6ce66172b542a1b11aec9d2f5a9ec4d7f9ab890109c5927d1044532ebea31b920d7a15710808f444684c69dfe0121ad3fb200db0bc1fb91e91e873d8567da8aeb799dd433c7d45e8404bcf14b9dfa3a7fa76741c55ae8df0b50f001bf05d4777844358a31ae3e8b32f2ce1e0783efb3196f1471a8be0c62cf346667f81557e2baf65fc5d12b527640752a2afe7dea82f81fa31d8da4391e3c834f5d227d8fe7c1728ca551979dac4aeac08e43e36e51cd67ad0fc383d3f40824fdf4389b8c1c1e7eb63d2dc8bd6a70465078e369a18989ed4b3a4d3d59cf4fd339cfbdc6ef419b2567b394ee3b783a38202c4ea9f69bd8ed57c5e38a3e3796884d52cdc697b9bfabcdbb02bc630f672cf59098f3f7363595f77d57c9782715542986bcd8cd29f21ac306d54bf32db5006830e0efab4367f819c8299b026ced6a882b13c914f5ea79d3d3abaf9ecd0ea79093e6f3b95e5da06e681100e5fafc5191321f7f14fb586bd880c1d661f06b8d276604078f7ebfa932ac683ddd1d2d9000a150f4eb2690154aecd056f48eeeecedf823a63dc31e6e92335da6486dd1fa75864af18606d62e96e2911ec368d63bd5ab81d64bbd77b695c54733387f12b2d317503a592d0c96321ab20760ad106abf7d9cd383bfef47e02891c3f79f69eaa4a71d85f69c970e0d32dad2fb918a388767d597f6e09c9634a98df2d15b2cd9f963c53649c1160495c29274eb63348bdea2063f1b60c42defbba1685edc21a3b14b3678f39945fedf796738706b216d9673af150f2261fa380d7b9ce83725d134bc6176b85d468680389c069c6b76a54cf4073b8b098ed2b7715f5a8c86c1f3463f6f5a5c0760854ffd290ea8080ec69545fb643dac4349e97c426bce924b3d1207f0b49cf3dfcd4ba05960f73e2c2ff6c6c5d1cd5b71dfdfd4be2ad768b7d827ac6a8bc7817524d531ffa62135c9b28885f862b06e794913f6224fb91be0cbf862f2bc08e938645f242e0919773465a8cdb73e8787d0b8497b9f204442e5d2a43f70f5e19e55b188f9293a35005bc08e8e0960594a346617533a2a34b5293b83351e83d468683c73ab8286dd5dd68f8227f68eb5e637a5838b473118041d833f8341b63c65c5ccdf6cc461b1cd835b8316849bd9232722550344a2ce297c587c221c97bfc03e69ebd47b32d5b1e2bd0052061fdad5e20082890756adcdf9faa256aa7fffce17d577a63d607407bbd5eb9b0724b3285411c6e3cf05b2233a939471a2cb6f354e9081f57d3049a8af4f625307cf3f31423ee8b667449a50723bc915b3e3232b59d1f1d5ac14259522ce95781067c854d15290a89d8a786521dceda72c7dd43ff8f0b523be140911d9b64a2caea32ffbd0dd1bdcc1c3fd4f088bf710706544a3439e905573ff6d93360d13af64b284bca61a9ace68c9588b72fdfd3f592ae2ee8a442bff73008b8adfa398062e1efc70200204f98b769e4cf113b80eb4369e5981c31a6ca50d19783820b6cbd92cac95f467c000001bc1d5fbf0049b7e44b078f5d9e47c6235525bb32a025cff85d4c8552423d05bb74566e431908eef0ccf181393da77773bbc169a7c9f5aed8809dcc3764d039fb6d1fdf02817173a0630687a9e34161dce0c1a46e72188ae4aefee1c485b830a8a7c4e44770201ff96db16c7b1921486c5731d332097928d4379720bb93442d88328c15799ddf83313e1a0651581fc523f002e19243fc711666ef98c54c7a5d3cfebdce8e017beb5c895dd94e670ddf89b30e8a2b01f2879728b4fccec27f8e75f4ca420503e774a466e9a8230502bb304183fa807abf926d05ac931606720c2e29288305bff84b1e1639c110d4862e84275e83650d0b6cf3788a0d7209fa9f031271d3d3829546e95b0a35ab6e97282124c76718659b0e63d2eeeab283ca24eec5e5e279ae991fdd7caa77ad7a97db4cca4ac7b3b3d81fce2a20bbde61a04658248a9c4e75495d379a152006ddf6c6d3bd3e32fd091e8bd6a62584741412d4293750d7012cb441f2b724545a46c438bdab4ad0d4fa7018f3e208750d09ba6d8ce12a513a93b315df97803d9f07fe702dd8422fea51e177a20febc6fcb67f0e7d927c66937c2d8faaca31db136c297e02f6f8c40f80a2eb58804f7fb063ce88dea09bfef87302777082c72f060b0000000000079a100000000000403349aa5c42bb0ce898f1b1b1cdc60186768e013eadf25d9f9baa1aa2cdf579acc13fcc6a9f7c6727d1f703e66c8f733eb07b96bd02a914f19cde1d339d2c337a01002017202628397921396aadc83316a8dd285c57cd2a6ac3195095d796d789c502360000052cb25bcea43f8138bb5c4f06f4383934cffb3f4d41645e74f111ebbeb6736533c822a0394d02a271647bcf932c23f9b741676433be098339d47cbcef4baa42f130a24eb2e54b45ca06dade9908e0a5fa8931fa158bb8bdfe2aeca51aba2e6a2bacd2207dd54882f7bc748d20122ed794dcb8806d59ad178687dac6f053b16f2121375a8cd317285874cf9c36b1009813da938e0261b4dea1f8dcd48824e4204d233747b9e26a974a86c51fb07017415c7caa7288ba817dc8184febe4bb3c48ca2440b73b1b034694548829ebfe6ed37e8c792aee5086f333a5b3cc2336007fee50cfdcf86d2f95e7c0d8d5f030795ad9a2d187b8f1788d8bd445cfe2e6cdb3314a37be380557944eb5180f7102e9304022104c83b8fd3b55c15e1638c17c6c3199028c4905cbb8c1131826c10b194755ff82becb488bfa51c83841d40edfa6412ecd6111e2a14b0d56c12a82673450ead2c36aee2cc8dc4859c147a073c9081efdff239974086fac2408b051b7898ecea1529c7743fbac84c521637adc0ad6fdafc91502946f4c3b5d5c16b66a352a7526e39d002a4cb6d3de6cb6853157e4c36272f828434af481e06137d3ff49251d7cbc95612003a88e0d9b16c2ac34fe1547165e3e031fd32c1d87745b1539682a61525db185ddfacf14ab0e715d68afefcabbd5aefb748be27ab2df87c2726b99ab317b57ce330be6cb4ed5c553135f50000d9f1d9bd7306760dbadd76c45d0afc07117ff86692bf5b8d69fa23cc527e1ac3c254f7c4a465fbeccb898ef2dc6ae6545ef473f80996ca68163efe23a535eeaa528d81f667e4837c98dbdfb29de00685c89928b3ce5ea7247c21c762814880dad1830bb3ec264c3d5ae96d5ddf27f2c62d5ec289580f7a01d4d4003c190f5eab2f6a66a97d0518dabc413d4560a3571921275ad5b84207845b8bbb4b900d2a9d840e71089cc61683d9ab60b04b11ab0fc24350f06359198391fc4fb54ad1c6061d88a114b49c6ff147e904ec43c59bb259afdb35c592936c0fe951be4a7d13f933200d470caf0199cac85641efa048cc54b95b7c00f761b290636f95c8e5494ea61286c686eab19275dca9a4c2327d65cdf61df1558b1d8d41033b78df964a23600193c4be15a48025ec745c9342fa6b81ba1a3323e11f57935fb4e91211d620d3b0fb27f9c53f9bb064359e1e3fe23d5b5e0aa75d4220118731cda6ebd27824efa22aeb355ce89a2f86585a3ae7fed8daa0b601b455e5c1b755bd0b68c02c6fe7c21a0d25c244b633616e5368882c67d01508477613f310e3bb961f31837d66f7e427ebf5aa9f49ac8b12e2c41158c24f63e19792991734437e7bbc1209a6192bf16bc055f6401360cf5d35c385c2cdca6679723d7f07ff2e839ebcfc4aef2b0a6c92599234bd5af2b96cbd448fe7ed61ec97619d4a13647953aa4671aba108c5713909865e7879bb0e6553e981563cd3807f3a1b4347c0983e022847671de24eeafc4b76883db537d4952e0d2639a789f33b3a9a1eb74ba7acfd49d6aa29123218fa038126944be79b4d9026c25071c5467026a4fbcd344a90767cc3c8e60c111fe4ea5cd12efe5cfe30681be3e0be874b74151c30cfa0fc3069f9b39bee44ad294c883b490d8e8d40e0850524ccd1082946187463b0c3f8d2b8ac2e52e93cc1af1e9d82d00356a809734ee860eb3ce16214df0ce64c14e887c547bb8a041b433e022a4b113280e9d597321ef999cd2a445e6a9556962bd579a9a48bc69b99948227b05846683c4b1f7d758d88220f62c6ca4bbbe7294b3d6ab815600d1b9c3198a024d5ad584601ee7416d67887e0f80bd7bd3205bc551638da8cb64b6b2cb3374519f5de040b6577483020020b8d95e5c36812f788fbc9a6311325e7ca35f5dc8a017bb568aacf65a215c1020000001bc94f12927464e186a7c5db69cac7d593aaa03749b86e5812f526186790e71c41cefebd742a8d381a7c33252452b0aa94ca7a7c8266fdae5061ca5742114ef4f00121e2100922dbca75eb01d056a45e7baeb5934c3f899f6950b7ebb8479b666720b8ae2e42af69963de6b9771ecf9ff3dd5741043af7b7357329db6931c063f9c82946f75b1efcb462c24aa588d165995c54dac80fe9df7ee6d2e245951cdb69c98e66373231968b082afe79fc9f5d59e7718814c33ba2377341d5c8edc96ad8c5c5d75196cb3e089cbadcf8909411c58d22e93220a835b3b1bd4bb2ce1bc915eb8a5a400bfad1409a122e40dfc71631d33fd194c50ac0c2a40191dd086181eacbc77fecba184d9892b803d7b717c853aa4b00af82a90d257aa84e8de7a415ea2dbf891b296b8ae3a2546a3b57bd1ac8a44d273c7e5bba0912d07a4def05c630b05e39198198b1443d7121119aa96e2b6dad6a873672f4a51315aeef196e7eef64e4998c3891ec241aa56b5bfb46a6ba3c92516d2bb825c62145ef63e2c60c6c000d34d655228e40468976ba20834177b7e9ddd38e62bc4b612b70038db369a987606f3a3a3bb9eb64b2ce1050b79c20a5e7ce82f401de00472b5d98fd4b8124946f1a3aa8e9267b19b1bf2f20000000000079a100000000000403304978d8ddb5259eac860b9a143eaa450bfd86cf9f12bfe13006b38a14abfeaaa8d84d69d73303d48d243e3aa43abe956656e9e6c1bc4bfc394be13e84fb0ea010020bdb5dff125c57ea779690771cad701dea8eb65233c2ad318bc9d83cdaa434c680000052c00e36c69f899b353a88dc8f13dd70350bd59fe73c9086925a7c27869c9a0f50369b410297db673e520c5a766aaf51eef19a04b10a661598bfb193f1ebe76747ec228d96a88278dc852aa2270ab683960b021b61e323ee4a8458fafcf1b1365c9a81c9682d3fd8d1441f268065ae02abc1036e28a4c1bc578673e26676080bc444f622f3a7504d8930679de78210affb83cd76a2d3b5ea16efc5d81fa264d6ecc5547295bd0bdf1170dcab77ef6661914e22828ad517183daa1d95e44fd8a2467895d53a403b783885af7c4eed7019a05faf7e845ca6cab87e303464278239576ffbe67cc1e5596c73216f2ebc63b46dbb873487726184e824baf5b9725f65d73365079e49c9f8c792f94996362d35c3b13e9dfc5c82def9890d1f4a292b6a044cf7d9ae0410dd698812e7bca32310de97b3a60fb3b6ad523bb766f30b3baa25941202f919e4b3936f7e0a52f289b80cd4d15f13732d23c72d942c2044fde7770860512d4acf7b8b1e9a11a874e0c2029e62866fa0718579345e960d7338aca3e2edb14bf1e5dd950afb0eb86fb2e7cf0f8dbc1d1da317d2f13afd467674a3e8d4b17f66ddddc8bf3f0bc1889532c7ed58a369f968a98d368afe3d2722238533fd8c5a9b9d0fab22acc0d7181fa465ec135b978a472b6db230b46dde358a37459880a42a8fc4490964e41afa1494c56c57370be5e12fff3d9df495f5195c52752971b126dace5550a6841b5c5f078205d10bb3d39a3552c11045ff7a8130eb6122c319e5ced1b156d983169f01ce80bbcd400778ec3c0f5fc140dd8ae6aa4b302640133d24f072b9f5cb9d33751c01ac3a6a2c1d24b757559bccc243d6ba62805dade87bb80ead77760a369b7be689498af34f4e1172dbe00a454be90e9d72fcebaf4cf18f3129ef6c59fe61138cf02d311ca4c4d2f7a2e7af95e7d8f76e8bc1eecba1d6a8e6a16568c8b2b5c1eebe9ce146514710eb1e78d70a2e9ab2041eafb728e5f396f781d3ad62103b90db0dec82d811c8be3d0bff9f00bdd62f2da5d968802f8c47c905f54c8d492982f23a6ba0e2a8c0f7ed1cb5c05b17ea2937c07b15b35271dadc8f5b2c7cb8117c37fc30758b81014ea907a1d29b4daa9bb61766e9416d1d0bed0a0244a85523797eb7a0e3da3ebe9e5de90a0903b89adae7969915221e2aa61afb174a6fb952c1aa75eed85280292e0b84fb5dcadfe8f30af1c9ce60ebc441ca14bb21faa182fed761788301655a0a3d56fcd27fa0bf6521555d416636d70c74cf5f097244a03804153502ca4de6731fe0bc62884edc900aca2af95bfe55f4a4c74d6f46666af597af4d6d950db25257dc15e67d4bb9fa894efa6655069c8e133dcb560911927f2c21116008636df7c9c37cf38899590ed73119e5b3a394d019ea0a92f5926700261bada208e84d24711951d65d160ace91e19f6afa8f46adb569e987463bb2c26d6b4652c204c2c8041654b2553bcc47140d25bc1263600402f3d6a1d95bfa9af65e6ab51beaae5e2c5f3b537fabe6bf8e26484d8b24bab67cae89cc6606e58019cfa2b6ffb6db0406f034bc37baf1342a53c2e176b0f7a76a7c1c3fa2da3202273b6a2d1f244d8d52313aa3cc1f1c12b37767984425b4cb80334ebdecac6e79e2b1d00016f5811ed7ea33c1d481ff5b8e9fe7d2106d8e03a8258ccb639bf9c0ab22d0b840bc686cff0a71198316db7162f25627f9625c5d08d38a13faac7694a6efae014118c56958cfadf3225830f7acd63760ccf683b96ec4289c3483ca08ff19865fa30371f0add2fda063c449d41b2b8d42b9b21360698430713fce68df44a1cfd7a823503157ebbe9aa4839a4eedb6a1c0c9dd62be484d30c11437843020020b71b8e23220d41d82f9b1cd47e2ab9a4468784636c3453fc899b44e87040f96a000001bce58dcde0b40cece8914708c55dd6885c9ab3794f7c73c92ce3a0dbe8e113dea971c90d635a72853900930ddbfd45cd97e3d4f98e2cb5d7b834b2b86b15f9136d3c28e8ef9c5370c52c0e1815a31b6ce29ed65df44d3158d1d45dbe233a647f658c1a5d8309dd29f275c32c3e35284f9e84807b3f33d9de731f1e9a4e13edf6a67be3da283fb730404ba4a26a36ff119bd2b6a3d9c90611fd006f5ce893b161a72dc10e81a6068b7fe003d3ae59192c91457ee862f10650bd222d6e6a9649ab44a7795ccf0afed3b01e127c95587175100309520cfe83aa83a25fb7e45c7199d8225f364781ce92ed1c8f9833ebeb07b53d4ca0f6fa5103f9f627a2245d76e2813b99ef8d271830ccbb03f326f83a757725a35edacc6409cfd9bb591e8db4c2680eda1f70ba231301b016c222fdf393eeae9040db22ceaa0b66c0817f630fdb38c7a68d61581a02fb7ecaf29dec65e51395524cd9252abed0420a303c697bb5c3f5b2f9522e2d8a262c88f49ce1a34ca774cc98903e5e86212b8340d39cfcaed3b40362f0882c06fee6ac7e6bf9c6e24f6380932b985c9bcce7903a3e682a2ce4fa2b3b66bdbfe237f65e894ebcf5cd7431c1420500aa2ea36e84e70ed79e4c37ce0f50651bff1a48bdd6f3f20000000000079a10000000000040d88adb7283eea9dfc41e39fd47503ad9217062dc0c48de5ebc5345f34d07efa1c757b15b7339724ffb6ecd6f71888afc19b5a233b29daf259f7c3131db7534760100205dd6b3562d31766264ceccc8a32074800e73140608bf83461cb456d43d2ef231000003c6ee3dc3eb9958656b8b4b50b1e7d17c6ecfd6bd491570157cbfa54a6bfe9090bc3218b6b08adfcb77c24f51b9a8c62c6041100e4ae5193db4bb10795f7b89bc682394abfbbd859e0f574559de1a1bf013df221ce3f42fdd348d80d4a15e720dc887e5db7f9b74018d9f4f8dd1b2aeff407f96cecca6173b28b61bc5d25e019216b15165e281725aee7b68370df46d92ca5c83847c6e7fee7f6feeef29f9c4b145f3c70dec9376b94c88f55301e9e5bb07331a80ebc129e84b4c20fc22319fc8f5eb97b2f6a6c2c7d034b8e2056e793f5d03ce4812e1345c7cf9be7effe63396d0f3fdceb93ffc0d5a78b4197f9d604680a3770da186703ceda7d9dcd16c19a8bb1a6d83b1b218e8e0d11de2626320f299220ffafebd7b4ef6d2af8bb97cefb88085059a748f80a8ad02650fcc9b2db2a208316e0d6607e60b4287dd2816f850f50811e708e8d23ee90e7fb9a769c1dee44618c318a2d6ed4f6a5a135cf9360835f7f74c609f3de65058d3c1efc6266b8f2aad70deb03f7c58ab6b100043692a7858e72f8bf48455078f489740cdf813fc28b6b71a8ef1046b2e6f9bb9be790d9a2ddf9130ae778ea94d2bcd536bf82bcf26b05e3a4cf1d1d848c2190b83122349fcd4f6b565be1dcfb2c3f2d50e80bf64af3994bd9dcdc4ff17b20ecd6f69fe0246663613da1ab7190fca1ad572689919bbfddac95bfc21e10ab670963424729b2360914ccd8036c546980da56616cc57e92a181466da7f56cae1743fe92c2ce1e238f560bd6f8c01e91e396a18c53b2673d07f3a4bb7ce31ac7cf87255c1cade18c44a5c750551e3ca465591326a7306ee4e1bb760928988a50a025057fab2a81ae1f058724fc7b0ef25b06a5aa1812b98e309384e8e3f275dce9ab08d99f28489d0eb484790859d0d3acfc730d661295683bfaa97bb8844277341a6407fd73d5a4b6201851b3f66b79203f85b62e7e32e5506b27cfaa785e20919a39b201e9fcbe891a7c0a4e714375224ce75a7ba8c41cc1a14baf5ba8e4ada1695928f54013769f3e3971240a7dfefe33ab200776983c121841da78242cff2c56dab7110c23d7515eaf3e23b073839a62a66f983b4b3afce0c3d71031673149797a3b9bb5cfa73d4f847500b2bcdd8e3cdbdf6808fb87ea98739e8a2dc5f96ff425b41609896d8a18006b548de12f9c2d201bea7cf3afaa11d757478194ea8d7b19fe43b30554e0fcb64ebf715c06e2d665676602127c40b9cac384c87629e99b0a2d697b4c997f6684a2a47ca1e9473a2fd03eb42ce1e9c63783274d1da949a026657215192919ef5235476397beb6dedd41acc3f05ba8ccd4d281ddd6281ffd8d732a3918327cbc15f93020020100483b1ac3465a6f97d724bc44a65281108f156000a7dc24115e169429e1944000000562cc654b082621842930667072f05253baafd6f4d73b1d2c0e29c62675f14a381e96418d52f2517379fddc1a38c2836e028a52a48915230ff156d5d1d63f15b4bdb89ea12a79a778b19967af937a6a3a8fe2287f0ea89e1ddf58cc18310c73db68a03bc67eb4c0000000000079a1000000000004055bdf5726d9dd4880b33e0e0e19a30ebc1f5b605c4005ce7199294b5e91365772ab8417ece9e397ad866dc34099d18d4c2065b95d8acc2c66415557054efc4d5010020303d607c1969e3aeb0e7e27e546031ae66636aaf05a5e531e50569826b1ebb3b0000052c3b0082f623abf3f6a9eebb0c444f197750de234ab1fd5f1ef96097a7e335ebdaa14ec66c9e5c50c9efd92fcf3ea1fc517493f6d08537a9c2f8cd5ef134a78f3f55ad3b7b15f638abc81d707858be06b5b331481927091dcabc20a3de147bda7b0ed8c694bde4af2f2ef7845bb33afec5de47fb93e9efdfcdb69661847855fd6343177697899869e9e5c6de05b15b37edcf8071f35244e06bf3bbbb4a99ff5f1e16a9868a0ffffb9b3f2b7b527a61920ef299fdda9ab0f16f193382cb0caed719afea6dd4f494318d2b59cea716586304a431ff42890eeab8d8c6001f26dab69fdb69ae420c653e8304bbb809ba0c7a59d36d69fcaa8b366e1cfbf1772e0bef2d2ed10cc3249a36bb161f7615d18a148718053e5650af6c81434dd4702a7846d58b92e6a1b08369c4a4419c9a80454ce5b85aafdcd4f2b35955b435458afab7f8492a4f41cdb36c587ad9fba85b9ac55b062eaebe7d1c8760c3eca0182bfeb14555875a539524af90eccf9a674cbe74dcbda3c90d3e971826d962f87e4d68b28a8cc612d89d579820c3f931623d53a97dfa694f764584a108d20f34aba93eb9b0f4e4bc0db797eb60610e1d243269d6c37837e9c82fd37d69e9019ca80a8c3d1f7458343fbeff7e0e5294b3bb018ba3b69f74912e304fbe51be41ad4e3b4654358923205acfd947608a93be7a7955112d5075246fffe3392bc1d8fe5c989f6b66c636b160aa736e6e28e0472525a4b3f7a0be9766ec4a7954d873e1a604217d66e09e077e41e1c785b5cd7dbd2c175a329808750d5d7385e378d5395c7dc2794801d8210fa86a7be568f96c70f7fc0ba391aec553e322a4be9ba2b78fa7894d9098ef3e0afdf3834b9e95487f5698f013ea61aeae66f3c1ea027adf5da3d217e9a049d114d9eb2ff8145658d5210e0d72dfa09fc60aa103e35c1f73028602594f68ab2fe7789c68e100ba3a0a56da60a458662fb4b9e2344b096769645a27bb2a71e56ab5151ac43a29a314b65ec2dd6497b5ec894b1909372b40f6411e061cb6fdd1aefb6f75d3a7ff61997330423852b6c5793402746df5241a112520ec9ebb637cf54b73feaa792ad150d667fdb44dc7925eb00c25542596cc6b2e710107793daedeb18d6997e5b9a706a6056aa96f2d3b6a9bdd139c1a91ab1543bbbfbd864fc2dd22d78d620e5d140a2ccfce0e054855cd134c75ed7c2ce87e930aba8194e06a19b34722f9d797069594039ecca269b44f1ef4ad5ebd0705ec7296c548ca53858a90ed3b385bf0e3b51a59d60649cf589dd5db6b84d04ebc3186fa872c12b7251cf9da4ffd1c728dd204bb550c512f35185205c413467804379e0b2688b88bddbd9c8ce88e5c8829c709ea10d5f3c6bccb6c6499c31547b3d5f2cf6ae6f9021ebb4bc0047b15046293a62b1aa1a488072ebeb36462563f9dd01a85c3b330104868eb3ec8c94e51177a975c22f7505df3fa6434b0df5b6fe8c4979f68f9ba899741f9f090cc5cdf693d38170855a83247c42c915f2f57298050b573bcddc932f9a95143c94890a66df8aed7e4680347312838aa6b983f6441637af2e15f78207e7adbaa36aff77854ebb1203338b1ea9e3d5d8e84228aa32d0fdf79d3725d0c3718496f7bb02640bb9c37b8685221b640dab3f89323cb25a332a9d4ee187899ca7fc345ca58dac0d9fe34c79659c69434bd586c95ad3458b5db07cf93f3be107002e6ef5f9661efcc5307d5e8af8482baed7ce6f845b36c4ff236bcbc42e3e8f164cfde3a97f690f797ec483f79e22220ed18278f405eb96a00dce1087a7fc3d2bc97a9e42f433e23a872bb7f676048bbe14778e838afbff38c0aa47e4cf5a1dfc1f44cca4958db5f8e990200205089bcffa01141dbbf46dd8b6dbf60c9ed30110e0acce0bcff700f059921e609000001bc544b0ebf11710907c160ce522dc7c6aae67e252861371c3358ed780ccb05f5fffc6fe6f0eb131c8a29a7cb0f44dc0bbefb663f082812a13d91c247ee0317a4fc6e6112c2f660665dbdc7bb63e5a85018cd8fb853d31a4a0e96ab5e2b11cb453d5b9eccba1da232b93b3e1929453a17195f74bf12d0b41438c161be107697397bcec7ce4ed14d71b1f82d50f02199c5a8c4d7b41b6eb5433e16cd5fc1d99569b7b03ee230a719eebacc2395db69d12f44fe7521460581b95644ca389b2643d4e1749fc1f0dbaf7be0b1ec6924a1341b549100d4c9b14e8730edf18e18e14d2f36885b4afd3124564dea2b4574a4874dc9aa688fdef7003833254b9d91db7280d1ca76d541db1c4bd2770246cd3d975163d50f7fbca158ab96033afe72f7d80cdb570a440025e03c9002d67dd89025f0ae00ffca072c40c9f203e9b15d7aa4280644c783fb39e943f9c5b5a2b37c2328b29e9d255f6e1bf118f1787266eaf4d4e77c3048e5b2fd18ada214bc417d38ababc3f0143c1530d967997d28655c5f2690eaa88647300fc9fd8677040d8248bca264fc037d8b28dde591293da004140ee3901b8e9d820c388f86a4bafbf15f52cb0a1c2809dcee6a2ff733fefdf752f0fc8a6395e445b8107dcaa288910000000000079a1000000000004025f6473f3b71b8210218c226e71bb094befe0979efd9b1fe7caa1570e83505efbf38a99f148146b10bafe4b35f7da94c818700fba86d1bb217a1d340e5ab291d01002082ae119f9e4cdfc3f14556ec2974f17c158699608b892f84cbc153671fb6f7050000052c884b38ed2ec66f07f17cd58bc6b6f411f9705779afefb5e0e384151ba9003e457fc8474a35301ddb2faaa2aea9dd1d847a1f94dec152fa339887fa9f38eb7568905beb93cf9fd68f0d3fddfef9a20db94829ccd13174dcae8ea64a30c01fa97c59df39fe1575a0b904a79c4b988344cca504c1961787543519c3fd5c54666215263a2011662bed32442522466771f9d201c743b6f6296f9f897562e58bef74ee6ff223de27e6c8b9bca7b3e1c6d930304ed48a680552b63d1502db00fa13dee19ced6ab9def600c57a9453a5a52646ab770cfeffc50810c18ec4ed2e47b95f68bf6a9c32df05ad5d81876f0bdea2ab8b3190132ed25df76e37996fa4daaec560accea5ebe363e81a39c0c30b28058a8aa301a208c0d02a2c4cdd660dcfe1d70b5e5b34971a331e8d162c394236846f89629f0a73537975c3fc699daa59fbb2a3d107fdd2773aa940d85b0fdf4ee842e85e0e05ca949247e172824b3ff7cd25b8103cb7fe15b5e9d794c132c36adbe882fef4566bee4b6d87f2c3cd871a5a7db52ddff76e286292ae3e7a5cdb19c53aefb8a1bfdffbdd5faf7c1a6d28db85fffaa6372cf66a3dd76900f4b523a961261c73bb9bdbf3c8b0eac61ff3ca4a8d8c16c5de278c7248bacc56ca712505e7b427ad399ecd4eb7f55545cb0c4d450fa58ca7f7bc6d3fe1158ba91c6f75ed62d7fed71181195cf396a1fb997ac64db830054c6c18433c160ab3f8f9a424fa6680a2e3a77bc2401146ff05c500554ee50f28c01c2bf1bad6e7f9dfefd16520995b3591e86504d85fa0880046780ad75c259440324b8a4cd08972627df321d2e4f41863d746168708315071778df23837d3f2cc511d508c00afc62de96d5d5e5db86dc49da87a20f1062cf7ea23a55f37b983cf4ccabacd27eaf093feb5c659964fbefdee78ed5bd1a264761924be038780b0b426c7fc8d39e20927156c9e08d392caf3d2660b941fb7b0a50a64f633012fa4ba7208d787af0d3970ca5bf071c438afca4ee0e82f16f172c250c603a81be383bde5cf8cfc55b8580a42b2c4916c3fab111a0cbce27ce0f3d8aad6e4ab7d35073653ca44400b42624aab041358e17e893e553779b8f9fe6d6e67209c5e9a14af4ab7b12a4c26edfa0f4ac8423e6f9b32e689249a45417c4e2f15629fea1c7a9fd76efbc20b9c01d35c75a48d04f92f6b750e34d68a14dfcef4955f55fe40487ed6a4bfb13c10fe5e0e8eb9259ffd9d64e750c7a0fb666eeca56b5f6fe8a26946da423f7ff54b9be50e381261163f99a523992fb3f88bea09381979971eb4a1e49fbc5cb207c79126f87ab7ae5f0c29a5bda9da645d91c0abc63ac4766b87adef13ebca1eafdc67dc7c55618c4ae04f538fd576b3a4b2a8476958c61a3cfae527b035af375e31b660e6f14da59bfe35075652b4bebaa3d2e191daa14847af3d3c7a07e70412d29e1c7ed2014f3e7f2e8c4e3a36e13b98512af760206019ebf7505a1ec891f6bd326c57e77640b490fee6d86ed5ad35f169ba506e6637ecb12809466390d99ff8efb0d1e37517e6fb6bde82c050b5e1fce030b633af95eb824d65f1133129de74524a333012369855ea7c8552f2345e99678ed4b666112a4323f84050b033440d203b10cb86c8cd92521fed58ccbd013a807d48ac7656ce011cca719dcfac81800848a93c9ef7e00fcd662413a7b3df697881b4742b2fd506960c2b837aef5c69830882fb66425fd08772b1d3f727e9f6c259ada5cccfa77e91bf025ec236b9b9c2c97b75c1007faacc95f040bf67db34b0006fa3374e9fc9404522574c8907369bf4d14c33596d282ac5c0ebc3ef8b78b336eb3408eda41ede02bdd02db4bfc30dd13fe04892020020ceeaa8e98ceec3cf0ed29233add1139b324ca278c653791a8eeb857e9935fb70000001bce60b3884eadaad2172e9ee2bd6037b910c42ccecf8f8ea2e8169a96885a27e7ed3946e69641e00595b6744b8dc74c3a4acd08b455829cdad07f3ae554f065e158e2b94ae39ef98b54b245cd98222c1099b39e0c0432f501b4e27872667bedfb24c760c927765139eddd3aef69cb40ba9b0afcf74fe7ca420a59f98787e20cd397a1140c0634553ebf5adffb32f8877db47fd05543e5841341effe14a0dd10daf862667e6ac4b99a88771292a1ac3487c60eacdfa7150ce6883a194a0434aa616b5aa1ad7e9c0751d030515319b7cbb2bcbf2525314a646f6989a61813198fe247b415e25b3f8f2cae4d81fb5693efb9d9c783dda5170548b3f3797d0308b22d522214cbc65d4a4f063aff3f461b1f6236cc7f68e9cec54fe8e42639b272a15f6b6107bb3a1b2ed13287986cec8280f30c309b0360b0bc4d495b34cc7d9b5ff083055c01a92be5d58fd4a7f871d00aff6158633811c5b970eafc22efc787b2eedb566b2c4c0f1de5c39a45bef000e9ccd9f71ed65362d387ebb1cfbf66ccac71a3e5588c0c2f6ca551123ef0322715508a043a1326c6abb4e9586ae3703b40c77863ab535864c968a5747e934ab12672be461c86b4d5025b20dc89ddefcf2ec0927962c5be8f5bbea764abf610000000000079a10000000000040ad9777a631c74f7993d1ffc6db33d02149382cf0992a56c865d1500980f7814581c708fadd79a299bc37b763c14c1700e6429dbe3bd0daa032372e4f451cea17010020ee7550f830fc008297b7bf719f835c258f40f67fc9d0cbeaa10d018a6e67612c0000052cead890f5b05133585b526ad763d789ed7190d47cc7816cc80b760036436a9ce43b249fac75facb50035968a9940c656fb4c14b8c034c26064c3892637b0764d3911ee0d1fb74cee882d172384fc82483e14d7f8b53c1d2561b72647477c885fe341c9d6866a126515bd329b586c32e231c53840876ca94a71251e83f9abb2313f39dd1702aa21e2257f406d5c0ca69419d676b74741f18cd3b1003c410baab57bf073d5ba25f7c4561729f862dc85b23c2e786454f6d6a7e3f5c128a9922b99936d17bbe5dd9fbb0fe0d24e653d61f0fe96b7e77cab1b911a71240eca9fe4c2b7b0db1cc0fd0014cbedb87435ed0643073cf005354104d4697a1a5054ebf56cf0fefa98c461a40f34aa7294400dbbaed8cc1c7c26f8d63e7a283786c5e5e4bb715db0865d6e059f84b593af72d2f897f702452d12d35ae8f17cb6455d6a355c6bd8f248ab0ffc6ac70eb8328eb23c91635f0855dbc1d583048c281e403e8c20fe5cfd60e5f9716f8278de45a64372bf41f1d5fa712727b2148ff54996287e087241050e833bbd31dd0f3dad8c1aa051426586be4e87baba4b1cd7e4716491a235fee153fb41993df0e8ddee2e61810ba2943c8fd4f12b642654ab5856642ea9b6d90d50bae82e70c83cb6031194179257a18179e93719f5975f40f8503dc96ecf583859c9d3005b37a8d7b487f4f61ac8e54a8975a55238e1625e8f45b6b7c2c0b7d372c7d8d433a339c7de2d937e2c38e0c214eedcd38be347bc9c3a7fe26295c1faf7648aac2c6fcdeab1d71477d05877a4d812b63b0d061dcbc4b9943b40942db88482de9b4d3d79bbe93c84217b78726bda4f97770555244ad832fce8f6dcead3b6d4a47c086759dbf531115bc34341f8444946a31d1a29d97e04ab323a6c66eca60eae7aac582ac80c02ccdbd0969b9a6544f3a12bdadfda5df8e3037e22ef735836acbac4774e6865137ca16d8dae1b9e3a89fecacb4b011ac808bc515309fc7c60a928fc71ae1afb4987dc1287a7600e0568f658152036463918f7c081d27992aa446f4b7ea1cd1fe71c2a8295a16bf98cb870431b5ba5b04f7579888b3aeb55b6466e3cfedaff1cf83668d0e77946ac6d24fbfada73604379e642cf9a9941e15acf4a35cc44d1776476bf8d5dc48d216b1d1f1d64de2beaf493b677a39670495ec3cc117ce0f086621f8e3ad291b4dab34b6d9940c821757c37e8ea357489c6046bd8dc7b830265892c6fc0da97fefccdae22931fcec87d8aba26efa3528f03632cc29f9967e497360854384ff560f514293d38408e0cbfcdc677433e7e438d3e976b580b715dc8acb1c889f0949ec93b7128494748258851a3722144037c936bd42777504e010e47d3ecb4759d2b475fba089b3aefc2116e142561fac276cc5e4daa851e2a3981afe3f6ebcf5042f06615c9052617768b679b8e64ae3df91be8ec3b3ddce79a0a28afa2b99dad057152450c3d34f5a6fd492b4e1fc486f013603417da6fb67e4028dc9378f588a81d20dff91986c9c4d2489f4ae54de54ed91e998a9aa1d0e7f340a05d06281e46d9d22dcc0b8f7eabd76b9e1a2a984350263f5cb7ca3735b3cc777cf5dcfb1f41ab34ffec9f205605086b849ce94f7c033b4c7f729c8f23a92188452c15a1735757a4ffd941d684b5df5034bad11e7c17cfe315a3284d794c2fe60d5431d6d073c4bca88f9cde5718e4832725194e5ec051a26c9def66283af5bfac1b71d034ad635f105615dcb43b06e0a63ab35ce54c0f1f24dc3fc9b6fa6eb863384048aace9586369c34255a31a9f0b3ca67cc0bb802d467cd109dd1069c3c15f781b33394f540954a57c6d8360b589d485b4462ebc73e2725bf05c34438e02002042d6974d617b2421c63746bd1093de749a02aa1ba4360c38dce720e2dac5d325000001bc351ef28105cdf2d07de790693ec499e880aa9cf8733ada5300b5af2ac529ffafedcdcd43b408655cb21286af145f34e36f867d162ec6deb01f33588a243265489c5dcfa215b1ba19f1319c2e486f8af1cf475a1e0eba448ade7c6896e2376a2c14635bcc499d88893d63786a40d781c81aaaad75673512f120202cd60cd646c1cb11eaba18ee3a350b018abf5df46bed597636173c582fdbc7bfd28ea35f412da230fcead5b79f190a5fab63f8274549c12147ca1b43071f5ee1904d873e3efbc40119199fbc67fe6535ed79e08e3dfab1a0c071cdc001ab72852f025eddd471f1a4d3bcee6b5df18d28395930567a2f35fef6f3073a255ca8cf64ab5d3a6c6bc4a486e3d96c6308985a88642f1f99e25f3d91ba4eeb2a20a94d3985b3188a7667c2aaa8ea95db4bb9a2379a1d2cb5f9f180487f27ed3820f53c66025756748a3380f93e9eb4222b934f9abab0dd3fb92db14f4410d71990c6ca94aa0a2ddcdccc667c63a4bd599ebd89fc6e76c15d424009dd481d1276f17c9e587d38d100907ccfbc2b3be1c1d2125c28ee480f17323625b716ad9711ad3ad469e6ba12eea23d2c7b3cef7439899efcf46a5ced24d2ea9b22fa3e8a6f0deff77cba", + "response": "008e049892ccb5ce441c1aa0efd56ec10215be857c0cec192b7ddfbd7390f3a34c022695c7b35982c5f405a0543726c96d11024aeeee3730c210006a507d139627856e0255afcf781030f566fe6a604cf04a2a16026c4ab6eb6674f4dca35182b19afe269902749ed4be3dc6971bbfaed0a8897ce708028b4d71fc18475112d0207815e6a41f5502abef3a28f4fecfb1cb5337029c57a51e02e1ddf58cc18310c73db68a03bc67eb4c02f752f0fc8a6395e445b8107dcaa2889102", + "errors": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "error": "report_replayed" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "error": "report_replayed" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "error": "report_replayed" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "error": "report_replayed" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "error": "report_replayed" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "error": "report_replayed" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "error": "report_replayed" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "error": "report_replayed" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "error": "report_replayed" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "error": "report_replayed" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "error": "report_replayed" + } + ] + }, + { + "step": "upload", + "name": "direct", + "file": "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b500000f28980a4f2af627fc9a09dae8b57da4c7c30000000000079a10000000000040e6a90e76ce440236334c1a67e92930447050339d6fba828203e82e4ae3e115c98ebb19975a30cca1ee91903ab82fb9d0ed50d69d11e858a131784f237f46898e0100205ddb63ad99abd524e59fc1c79e88f8873d248f531782bb1bbe06f2225fc835290000052cf47e38c3df5bedd114a4918e1c1cba529c773b9bb78a6fe274c319eeeb482a5abc0d5bbc8b5e411192a8bad887af6bfcade1432af32a7c005d85e16ae6d9d23f9842d8f0a8050a305c26198976c607cc651880e4bcaef36a9e81713baeb18da276e71227fa8241cc990a159337a94dddbdf63b368135b5cc59d653878aae769ef80133a3f2ea62ef1e697a50e44c4d770c5d68f02fb5299a10cd6c681b6a1eadf1bbeaeabd37734a92bff2104e0f936ccbed5ef45eacfaab0b35bce1934ecb4f32b15713233c61039a4436b1ad4480e64e336446c79e579bb8e7c27ef2e73f841be132258c4fa11c0df15e3139b44a46de439f284744a73a67f6d8faa480553aece938f1d266267f87b7edc79cd226027e17bf301e6889cb6332ac2b1a87293e2844de425c6f7adf3152f2b744e3be0c4db4018af3289bae7dc49c4fe9c54747a7dae906135cc4da67c55243d053dbad5c9173d02d4279bf7ebd8328776845eb46b463a02226024efa27c813a3e2c912b4a918500fa0b500b7c6cd50da1e4bedc552038edd338f419e189312d56233d62be895331a70e4eca4f7209008208a7743bfd83b3d74ff5d7f56d139bc534157ec1be59ea03ffa8e0e0f69e03e44efac4974f7524f0c7292389e6e5bda1496b978677c5d76440320876196be9201258491cdb82931518402698428fc2236325d87356c227ae38c50ea29d2b19303094dba074b8751cb6f14b86d5100dc0baa5552cfcea9d3ff893c076d590f4052fe5153333ddc6b8e91c45bd9555837841e95ac1168b5a729a5074790d067a0ff9c3a133cb87ed9f2b6dde69578221d3450f53e3a9c66c04d5d8e5d6aff0ad4da8804e5c64ab6d7b9af59fa1635bb1c61effe2ce8b3286c05695d05d85e2f579db542c43ddb587eba8f14b2f8d33c01650ba1af609459a86726fac10535121f43c769f2c8949f4ea13695e7fcd0164e6af2691c8e469c5647407a46ee246f9738c579611a1419ac6ee6c10d8d77c64eb9ed4092474985adbc48234096d958ebda3df9c8ef2ffd6ad10bd44d79c8eff676aeb55646cb302175d61fb51474c94c7fb91f26d56a4538836005b1d864328eee873fb5512d4ac4925fee3aa62802e705c23403488ccca6b96191027fdb01dad132d96fd7f58855b20fedc71d4455e2eba51db4a1bf6cece9169300d8547c629b6e8ea8a0b5d2cc3d1518b288c64d1330d38bf265b49864d81b7cdd3ff7cdb7bf57f8e0e904ba94deacef28960e3c9c4c6b0ad59c929665539d94199936f63e1cd0c9bfbb3f1c47b80f756800b70f77fb79ad5f2b2883e5b26b26bee73bf854b3b3d1b4ed8844c6def22942b42ab1c31764b279e6c7ecae1f25629433d79fadfde615da7588a70141ea964907ba3db4e27c21ae7a03a2a1c6c9e148ac91e9e4b98678dc232e8b4f95bfbd10cbf1323146affe8a6abb5d9c18c24cf5b119d78bdf564a73cc86926f29fce19bccd2dcd0af4fcd55e2a1cbae0b18f89516ccc6662edf2c1ff9cc972f650727e379283e95ca6ce7fd8b8fec3f0304d9ac76e2eb57acdd8c20e1aab209937a4af6a5427a3d0694b50a679d5eac2c6cf33eeaf920d29a514217154ba22b6aa7669562c03b1b023d3e2b806cfc0a0d88c4fff813b99caea071b12bd324ecea970501b886b31d2e7f2b241aa4582bb6fee2014e1680891b695f052617882cf7db3754bdd3fb337af009e141c2038d517123ae2e5cb66a4cf19a978f018047dc902030b947e278488b2c6c4011620b7119bd7b1d368d730f206be144247388d2c248a63af41490aec47854c18339aa1ba3c4d3e41daf679a1e5741b2e5af8ecccf886e928d0495d49ebbf1aa9a4171cb8e62e50edfe7020020cb900f21911bb5a07dc69cce4f6975f9d83b80228d7f48afaf3b8644d91b9760000001bc6a5319fa4049e7245fb96edf468c7598674acd95f3096431729302b8a4eae0968c55035ee6ec5c0c5a7a04b2ed23dfb13e57dab4e9a52a568aa13e01a583349f820606b0d5815b5f815cef832135a448257a1546693e99961a427843713ba8d671cc492dea426d792bdc9d82776de7422488bc82199c4880a5072fc50f4f0700312e8b7ff51a2dde303c9fdec1bc16dbd8f07ca5e9b7107f815af2fc17234a8b43b930f3564c1a9b434aca2e895180db3268408d37b531582f1d924988db86263d297d35be439219e7e226a7816005b68f313c73c10ebec139f15f8bfbeaa37c4de6fa527aed5a477b5b830882868db2abbef442bb5e7218dc033924016da3dc7fe6083419364e535f6819ea8e60b56b5018849c34c8b50c7276b3b960e7b08380d1b814c1ca9c3ce7be42faa48edf7333ffe33e3f3970f0f7e6e23ef3af263cfdbb62c182765c250c2d5818dc48de42d7290fa88c39df539528437eecbf5f7a0539f455a04668a61b7b7169f4e1184993a80a078ec105c6b517c3715aaeb83b406e1365ab5447f77bc6a51aebf7b6591f55ceae2c635964020ea6a456399e517bdd8730401210dfc960f63d94f4d15762a75725e6e6b6a2be51ddabe8e2b842794101729bdbcea1257d37cc0000000000079a10000000000040d40def7640dea24be034cb2dc5ee79d6e0ea771946c5bd432d8e09c838cf30f399cc3999fb74bff8d5db7e8b25495f9d2670a598913393c9872c3778e126b124010020b9edf0e16436d2ed363d99af074a5b975200a92b3a1981ee76a01560835489360000052cf692bc496ca30d8ae21d79bf72ea4004f5cef6a2b1a8d050aa95de58dd558a6b090c22fb05d5581b6d16b0455460d2164ead9e9534c6b410e6edbb93db4500ea17a1c38901734bdb4db31bccbf10972627fa3cac8908a7c08a2601ad0bfe0a8c6a483a48b400722a0f496baad059b243e39fb067ba6b0695912439b4ee00fe31b6beff968494fc2505e4d25e82ac5dd0586b109702ae35308402eee00f8f833cc0ac95728b182195154f364659ab23178b818731708cc120614869a1ea701899999faa12cffda46102a64f199d01f669ab79f13a281fbca4acff1aab3e7a71db64a7352d3c9da2a18ac4c4755fe90dcf000cc13434805970661ce71264453c0a35b8e17ac48759667b2f1adb4c101b3fb13ee3231643c4a7208bed98b8b37545f8e5e38846b7abaf2cec865ea1a25cde46d5de991c9716b5b331ba40f49396be808b76ce5b025ff9991c5de5ad877cc96d67b697b6146f4280b2fb76a0b4598f7a7c73b4aa65dabf6567482b0c3001910c702f9ac5f22def029f6901dc56e165c982dfcf04a356a068351c43bee4a07e619f9a1d1e0cc72c3ae8bf11b5f2a8449bbba0b81f3707b2de654c67bd6f9f83657377b05154371cf893f11a292e2767724076d28090a259766ced5e11b0b11dce83e63d7488e79d79d9ac1ef2c5eba182c90ccad34255ae92e13ecff9acc7af73e52863877b00bd0fb4508f1313f78ab0b28596c23e4c83b72213b23295a67c0983e3a5dc9e1f2771aa4d606d3845ab120057e38e2bae6b0bdb6c1dfdd902c6bd5424af786e251557c3032186adf6fb41783e343595f8913d7358403948b52584ad2a8a1ef6d89d8d6d472f867968a63bc8aa215803f521c5a203f0a97caf30f5d675ef58f6e3c58898f80d93c98cd5fa02a216754aa1377ab4c87a2265709a13f05ac43729f9f7154892d9744ff6a866a83d7686c053836203d3d95d0eb70f55c2032dbe69c6171ffc4b818bb7e35c2187d8f9c8de8035074bad3e6a36f41c6dfa8a6fed9b41e0e8f2cd427ec23d80493d74882eb6cb1b62d04e72a553e3135f8b2fbdef20bc6d4d44a9c3b84ffd9d04098adad51d80a2ae3a233b9a6364dae11e442078bdbbc6d155b8326919d61b76be3e241bcbe0bb0e20240053aa1c02b1341e684da110555bcd010649fbcb09f4238559ede261b4c698ddf7291285d7de73b2584ab7c25c1d8eae2c6acf3d0193d8a69b39695dda80e45f37abe4c48e054079fabbed0e8918e4d1d136119306bd73655c4ec567810ec1ab04be947c395fc9406ae49fbde28de29af8ef193b0959049f215f5b2b338e7de72c019db6b87f569376e09abe10f5ee1ebf5a313eb2470b32beef74808b1a546a3731fb9e502dff95728fbab8ac6c58469cdd82ec8ce8c7ab5cd96ed5998b3ad56ae5495faf253fc467722999550fb39cbe0ecd842459ed34277c62c67ddc80724d99d1597ca6236cb5dfe3a276f37ae3c837f4003c4ef5c7fe3fa5eeed7b511efae6ef66641493143dad84fec9b7e61799588b253db7796e9b1d3bb63bb9efb87563f20ca882692046ac57ab0fb8ece7d02201a9a6786b11958b6c6f3749568816af25635864b2ea251847b503ac66fb75392034727abeb19e492259ba74f42c447a28da6916546f5faac384c24d62eb306014231fecf8b904c141dd05ac3a86835b0d844dc0eb1060fa645f15c2c45e2dd40174bed22b97230b04f05b0dde42a4a4e10a971a94b9ff6c020bca4178155f10d11d28cfd6b86c476dae749daf329544d7fc1e8846e666331e743fa665447201db6b840e86d3c64d20306fad5b2451abc12260e0aaed47fd4131ba29070c2ba162a9b2da3a50a6fb468b5eaeac747a020020fe80eb473d90fa8fd925774ac65405cd2c194378deb02de245dcfca8f2e09363000001bc50977e18ec5f2b8898a9f0eaa25e6e71b67d0846c7b44670bc67b3aa7a27f27c4ebf68938251f292a9ce6c88b2bf1d7d6186260c2fc44257b8268d3645d3804aa1aa075ace41b336d6a047a0ef21b60c3695d498c5c29408cb4ed66f0ef765f4aab9236e1bded60fb6d326c15e8ff91cf0769e35d1bcf06159c70e9d14a1afc1130ee073a4cac20efc7d5696ae46cac7e8ae62177a97a8b4f512d513d122dffc9affedeaaa6fada6a374602491d2c1530237a83e086f51392b2866842eecf61d24a0f1ba3be8726a0c14a66c52dca181f1fc178fddc6c1e25b349782130b833f0c9b6e39d64c44b68859ded066a185ba72a9a438e8591a02486a0db12f9485737b437f5c992e8665f04582ce7c60c4ffbc839b73573b2564b3fba41cf76bae65caeb47187e2da324a9c1e3b3c6f6a2348cc5c79c8ab55baf329db7df6b86b732573b1ad39e0a3f9c6be2b83dc892d487d768698f6caf318b965667264d3991e4963b158ab148780a7e7c5fc28e6cffb1eb808f8a0e3760558edaf6c37526dbe7b97e59c7beee99f9c51008a73ed45c9e774c29cda12284437078088d853e2a9adcb02a947ea9e848a23250b38ae549a895da2b34f809e6868bcba7be", + "response": "", + "errors": [] + }, + { + "step": "upload", + "name": "relay_merged", + "file": "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b500017fb0018ce3d4c29c59501069455f10144e600000000000079a120000000000408443bbd91d4c9eddf7176be0034925aa49219f0b4eb486254265facccfbe03f0a97a7b3c3fbdebb692a95e4f49bd1abc3f97789b3b947252f74d4f1059abf1e90100208aa24504653e6195a4691d7600b06ed0c307b4ee3e39aaabecf8a549e85f81450000052c6dcf38fcc3f6df7826800990e0124fdd4746038fd24e9478627378b024e5314b2a06db0e6dfcdd026228c54c25464f8edbea369bc166e561f76c4dcffe21cfe1ebf84321b38cdf525a30edb02ad50d631f459881fa3109b25faaec0943af97e5b19257138c996b9ee3e63d2f8914e4857080a7afc77854a46e396d79cec6b933a53c0543d4cf5862c512ac2a06f2eeaea4ed96bcb0052bda1859d41117afb8b1ee69b742a244cf6c49a1058811372e498e2cfc1294d6b561fc82f712b1ae2f4c2471a11c884b80339ff5bd7d8a7ec0bccad049436e3bd2f2792c8b65cf85f5c5dbada33bd7c3c4517c34d76a41477f3306fe4fe33f65f91b11ca0a7681ecf74f4eea9012a5aca51b4ddfb7de22b9f349ab889d739663bda56a2e73ff3ae4881023d1d1290bb297610954d5c393eee015a9f36047e0a023f9ac7dfe6d59f41bfc864b5c949c6a55c25aba96fa701ab349098b56dd43f6a950b8028f11e5c6b385d8f100c5cb511c0f67fdcff88a7d28663b738cd45a462fd385ab3ff662bb412eab92af5980d8524d2b8c5ad90a931d9e1b241202d437d750e66b03983cb6de3e0e9d394198cdce23a0848cb07ba7c39b314731322d3601e347b4d79563f6c92bacbf20d9ce6045bdbf2948a499de7f8e5a372dd81f7984183d211ba5cd68cef0128348063515b7a9b612c3abafd68ba0ccec8f713c2228316df9a3e78f9df4d34cfe8becd1b73dadd1a17ea8dac59a10b10ff1e6f88b57da49523d08a729ab82d9969dd0095a25e0f721561c91435d75375cecb7a1015ee7b4f574858549a3f1a9d13959974b9efa318d019285b290ed27dc681bbeffb2cf226d67e00e149d2b223825dd9b61295c436a18c4437aaa7961abf9e49b27258975c840d028a3e40dba366c292df9b30594f70f2ecf11dd3b492adc03949e5a44b42fe673f39de9a0ae8b155a5d007e29a09d20d7ed2a911760bda31562837c55d8c013322fed608ba50c5bc2d0a3a9ed2a4594122c55503e6232ad47133fbfb1b5dfe5614319eb0fcdda4df2a701208f55d7463fc2bf2fd1de1260a9e99a699076f623ab87002e5a9147dae25c4e289224c9d174ed0e21482cf47135546f62c8aea9e327ced0ab6be084408021d7e276e475b8b24faff69ddfd396e1126be0d1a8f0134249c293762745295070006a87e496ec38f6babdbd48654cb7bbefe38db51933579c78ce0279bcc3be542034fd8bf7dfbe08df3ec7657c714701ee5de7f769b1dcc3cdffe0fa20512b2f214ef1bf4fb8f9fcba575c200e21822c4b99df768e30d180cea416e377ba6ffebb4311434ad3bd26b31691510f303ab985bc703812a60aefc651db71ad8f2b459a2819efac0f9ab59068ad365b77cee0e3cc65945cf1a64f90a3010ea1e506a62c65350d3d561260118efa250f2f82b5301bf82de30c83a1502fdf29c64efa9810903cb6d2e5518d3ed32caae553f7aa2f5c666f277af0b1de01c570c280f59b6016eb7c8f1942c513f62f3c2e2ade2fc04ea3d362aafdcbf1dcdf1af9330ef0d17438748f86820e67fe9c3f4c733572bc3dbb482ed811f32f923d585c98c9c1f948b81569b82ae6bcf518b3292ea914fcaa20d1d0799ed1cefcf683ead543f33c6c165143974d8fdc2664c99120e53d4b220c77a952aab9301d3c56d82bf8e6874046f78489cce4af42a7957b958339641c3e816d9e912a6253aef390b8423b9b8527fa186663ed05b8cd6863ccdb4c7598dcae0ea3520100f51d2f6643b03f71834c1f9bf799e0bae2b4e89d2c835e3ff3cbb53a23d8c1ebe7f17dfa6f9952cc76690484259c3226c0e9925383ed9929c7a7aaf27daf222d9dba2c71d8f280f1022a7749bb1202002019932c884da95fa3e8706dd223b359aa2685962cb7f5bb7898dc0ce7dc9abf7e000001bc74985e6c1953352cd8eeb623863492c6fe407788997ac9976f3ee3a9d6e2028b6d64031de568c91ddf3ec7fce3e622ed689812299b0b9d21be64d1ba0b935542903aeba6d812dd695fe9eb29f8142c114a2f0d3ad4a28e56219af5102b5eb2c9a348054ff1a8e690ebe9b84f0987f5856c7175fd7a10685d03b405ebc658e88bbe31ad1a82a77de1cd5b0687b81606fd71472b490e821258ffdf2199805ec87926ad32918de7d02c1ffdb70fa9f75b0d3c6e8895b1ce470aa1d08da4ccb469cc72a4c77c67f09a83a7472fd974bb28789acafa19ecec6d85d0ce24ee151e55ad88c95046b3ebd9e425029683d5b46edd0faa30742073eb7736d038e5f6cfbcd5b229efa853dd4608da3bb472fd713b7c4f68efdddd6970485f44acac579cc43348cae3f25386a2d4a29c0040b29620e35750762f1e7265a88de3e2c48439a3b3a67b58d61a1aaa0784987a302d47e2584b3b27ef74b1b86fcd164a100e3714d413dafde8e00a095f8573f2c891a351a53679e4d0f8b764f89e2dcf40354578b40760bc570ff9888c924052154af0cdb1fdc49a4815ef4f6be82b9b1383994ccdbff0ad84684d20b20c59905f93fec28b56a8c152feebaa066dc68c1602ac8210891e152d62c2673cb051f3480000000000079a1200000000004093a9ba36135c2ff9bad8c941b39a5316fc2809600e35244358254f3fda5ec6e29fdb79e3f2df66a1155e93020eb454493b195118ce15210224d1e5dece78014f010020b682c926706d00bcf116f86b99beaaf78cfaf5e018a2c825627d6aea3dc3807e0000052c42f1a58e968e79fc1b53be2af9abb7326323d8d84b1bf667b535d7a62e2702d3fe189931cc56f719eb07509ca4bb84833ce74ce356283dd7db1023c96ec261e469474cbacd8bf04af166c047282b9b98be047da7e9ab0aa17b6e3aa7afe698cbf2c110eb0480fe26fc5c60acb96bb02ef3481e3ba4372862006b175bf10a16877a7ebfc88b5ad41f22e93d5cf08f9941339dc34d2b249610413b7268c2db9e50baf9bc0dc40d0f3fea7dede38cd16bc4590c287f9af99a20f214555dca16423312a5187b34d621c9131bd772abaa52c09ed40102f32eb062d4f1128c01828fb0305d82102958c63fa13c7d209e97fd78c126e174026d9634ad783f77f74bd261cf6edae3b83cd49ce40a83bbc56959321f9b9bd7f6d1031bccd02f446291435eda7572a10e275ba7b64cbe175e34a69e6e2d92d858968b9ce2990d7ca655b5c1c248ef55420c91e858a7d4e14b10f8564bc5fdde04d4e97314d5583877e9742977038223863b735aab30ef672f2e46148e4ee35390e9cd55658f2e879f853c4206b134594d345e683609600ed5879622018f8b3730dad5cfebd9c8e14153b9ab270ee97f500ba2b11661ec5ba9d8aa854f212ab70440e377d5965505a56114d5f7e1271333a065a0bd0d315b4f9825b215b794129bd375b5ab86c3a73d43844916f33e6bd945947dc7235701e16178ac3ca41f76aca76078d9f3f0cdddc36689149ad5ac2cd1d40daa630b7e05b5e031c29273ff2e17dc61e3d1d0df9f48711b9f7ae3d41b3e53c143dbde03b14699f8f2f5a1a782b87b8bdbf5bd45d5b05502dc6e9c0fdb11828d265f05b5e2451409598dac40cf82c43f0c82c73b025fd33bbe436c25846643ff9a9007793a201cc8cf615236ef01c820bfc778b6df24839df95e9aee15a89f9ab851b7e3a406a5fcc957b0bac285bd4978a704c1c523ae971c687281339eed25ac1e356933e635086024d22e85ee1a00392fc6fd85f101733f99e92785ce105442f55dff8ed03fc8cd7c5b372f5fe3c9ad08e784982bab0ceef8f10de5bacd8b1d401d9217d330109791ee33052445fa9b6e2dcec2adacf31ea62f79e42cb8fc97c3257ec47afea41dbda3824d7675b1919df58cdc36d5d8db3a3af27e3d759b15ba5ebead4352f7177d53c4d15e2d86125d572f71f7165854c3d51f31a140e9ac01dcd24236c29c4d1cfc070021caf4647ee8d3228a659e6acae638ad24edbb3811d4fee4a702cb92dfb7e3c71f472cbed35aae2a7c66f3ea86de1572f34b34632c965d2b7221276539496953e3a75445e649709009df7d39b4230110e7a2996af99b8e23bb7e7d22fc8a4a6554d1703d7665867fbfc72832350eb7681c330e1dd95879aa2c7380ec060e0b0cb7eb629cfcf09c89b41ad1bfae539a922bbf92f84accfd7fc3a9519bfc970d71de46698804a3aefbe12ad8098db9fe82fa539367bb3daa81cf04e9238de0dd7437b3df25cef5bf59aea761afc4dec79b708e42ce822649f4422b9697920ee62f5d0014ea4c7c6d49b342d950b81bf2a2e05a7c103f27e80889c8af198c145b29e7f08f410ea08d2ec87329b6436648c9b6b85e3777fbde5a83512f8f165cba536ec2c92dc0fe8629ba2cba821a638be893a924cb27d868e4d6840892d1463e1784af9872c8d22510210746351cf2a067c39143920467ed724d4415a03616c8c56dbfb9c1f42c6f9b72ffaf7316bb6af0eb3b100f6ea52554f6a1963cac32755b76996d60d8ad3f1c1e482f78df079c109365db5d4769893bfd23581344c2685d1b43d5b681841067896d3b0d667f666d4af8d6d2780ccb02c7556418ff8f37c2e4ccf439761f4405fa1524149c34646de643ab65069a39020020d214033ed4a5850ed945d0a6954639c6da60363088620bf514dcb20eab340514000001bc4b71d96bad90032250ece1d60a2d48c9e97444b95b385f7d3e4b40e5f20c74eee01cc961a34a84da63c1dbd5087bef6e2ed210e54a769e1fbab5a539dacdd70d859c94f7e01238990f894eaabb3de840fa4a7f491c77276c4eb19167b85eb5182b818948470350a238bcfa588ba471c6adad4d1be9ff7a854893af45f77d8624200dd8bee61b050317b2b8af447922f7b1e4049918d39eba3e2d83ab4e9e12ba437286bb1e017fc150967cef73bf7e0ebd5fa39bf60a8aa9f6e23dac11930585ee48c407eafd9fd6bd8a36fedd3e38b7811545b3905f12ad362e3756fb23f470a33d85a347f0c84476e000e27f1f0eebd456915d667543c950832242cf278380118c5102251fdbe0e997df73889dcf95ad7b299177d9e0bff4b9aff51494e595893fcf87f9ab048933fcee9ef6876fe31eabf317e0c663398a543a8deddca1e35c905345e57cb8708ed6ae639e93b80aa22a73f21858c02ab08540be1ac104a5eaaae6ee9d593bd46fc6b6f8ee86ed378b36e9c98df1fe18ae866ed836ecca9f74de83d02561fce1787a447122ac5e52b511e6b804bf292b511d4bcb9de9da6d461545a4f3063745cb45bf603995e8bb0bd87474113b95015c912e0d0a257ff2431574ab1a615c00d74eadc40000000000079a1200000000004001f61ba8daad40f19f36743907405a56a6acc5a3cf945cfcc4b079265726be05eb8018b138745f3944d515d5907d47eaaa1f934994be3fb77ea562817b08801b010020bd52de82eef2ab6eb48d8d42afdbcb9ee943509971adf4545de64731a4381c700000052cff5db39a0000128bcec452fe28608620fefab69e371a09178b21ab739377943b9d723a7a014d6f19884dddc4394468f02a9979a3b4bdeaa13e55db3dcad59bbd7565132c44d0c5fbbb86ccd5f9604d0a5bd51a336add88f145dde59cbd05a89e7fe8cc2ca2a201e9e9e90ce23b0eac3a54ab7d0f24492c1a51a4099579e639399456f14f5380334c5bfa9e1bdf117572f4d82f902fde4531a0030dd8f184161997530840a72baabcbb021f99266474fef7126a25e7a0fc57177d230b851a35172ce90685330747a1bee1e9ca22ada5dd0a562df8cdb4f92c13b36a3c1e004ba8972a0f4aeec55300d3608c20de1f4c96d222cca35ffccea4e708a3262ee32174182ba116d8b075b2d2c16f53df0fe34ceffc46fc9f421bb7f0619e1e40aa64c074768054cf4168291d39d8be2e24c5871afe1b211645b3c94963f19d26d44f70d7e9a4fbcb415ad5a865d3dc4e19aff1b1bdaf2c84f345e87bf5f086888eaafd6669119a5b3c61dcf5a80025de76ac98be94a51ea0d6807657d2bc491c8d21ab13bcd1eccd8ddd8ca1825dbbe643352dc4c7ded58a0b197da5f0503c388102500d1431966c4df547914ab1b920abfbbbc56d555eaaecfc104ed283538236057ed2c8059549aefa04fe7ab9c075f8052e50ada972bd3fbd441003c1af7e2d0ddec9bece184ad621bf8756aeec2a9d7682fffcca9a0699dbd12454c7f17d651e8652abfe5f16770dbcf8fee5d3463def26cd1dce5b030032e33f140971d654f5790fc715e42bd1a104e53b46bd700509ddfbe0c65da36ccfc868288b704a4c825ef059b238153cf23d387c587c9139d1d27e8322a94ca0f0a3eff25dceebe0db8cbe94c2f8c064c73dcb6051d09a6c8ead8e9ea49f0f72a4be5cba514de6f913831c8f2e7fb3fd5538603b61c26efcf989e1cdac843445fe8450fc69c733a8437ab829b1575cc7c650257ca9608f743006f429943fb3798d00592664262afa29d3f5265917bbcd691f0092a81790f6efc30953046161b8543689a65c89a45ba223b2211ea5a6ff9154f9f9f4a68beba557e77e1be5df0ad6d2556c129d4d7a93545f0c682ae7fb943d448ab16018ad716d7e6b095a79bcf72a3595c49e8ff178c5d7271a892d3c68d54bc06167525275ee592a8a0b3d1801732c8c61c5ac0c3050fff183ec2d6ea26aa6db5e2bfbcfae406623cd17f74859c98c18bfdc66aaeb311fdc776d6d6ecb5cf5129939a790a7e6864a2711960a01f2dc2558b2d91e9740c85b2516f8288580666563f2fdfe4c817cb6ea3a12437a7b9140244731e3eac5250b044ae5be03bd9bf41d7c820e38e40cc5e9e8f4d753b82003e224a4732e43cae5f2943f0656839112731e37228fc393e90623afbd573e0d713fbe09b8d2a3da53e14880a436ac2809179196110f3ac9014945c72494c55a1c2d45c39c723194a5b7f7606ca97ed14cdd4bc43f2808599689df25a6086739a6a6b65f27caeef408839a9a23420f4618fe486ca9a8f2e98a08289679bd407129527d383b1a29c9515f0f5fa10db9170b0181a35646a4340f3f8b07a05faa45b64f82cf17e93dad923c4dcf26ade582101033eb4a72e55db6ad51322e392c82e8903dec7400dde6b9bde92387cb9bf7f749240547dcce6b6f58fa14078f9f6479f4f56e14e7e6a0c306d81c721a23ab6bce3428058771917ebfa9a24fd1993007eb6e12d32bfdd6b409e43a34ed7f5015d85adf2b46f534fe51c3df66e9464a85c9b31ea9d5ac095b99cf308624d1dc1b388c8a8d2d2f8ab3db852fa82f77cba7cbb7cbd4b6918f24e37669263a6e37d6b4d1c0cf6fa9c7a8d7e660505335fa050fbadbf58b1745b437f69c018b0af9275132020020aa29263c65195a3edf715b05a7e66f1428e6f962d71432bfd024549bf1901f48000001bc3d985acc800387792375021268cfee54561d9e0206c46a241ddb54b8743c822d341afbefc6e60aaf80805839498c39f86c43047ba0999d31ad436565d9a7f71c1a3702c9d39e8a7e1806528d09fba385cda7d06e53dedd42cad78f99da4fdcf51913353728ad2f081289584adef36c82239d4de56299e022ab5209c2997cfd9db7301aae6571ec89170330f5caf5ccd5906d6bf4c2b78780fbf143e385b7240c226d89e086298b5f09fa75b8fadeb44880bbd32c860b925aefd7f7e6af424c3c4c9f725d0de48156e08ef583efa945ce8769d35c286a62b4507f24d1a022f39ebb3e76b3be688809b0b8c52ca82bcc2f90933c78db03740c0e842434b8c73b53434e9e24953b93897a34b01d758cabfedf4bc964b748cabce78e6ecade1166c6834472826e940627c3118cbc8d56c61cfa794ebda267e63892ebd54baef8b15ad00a93f63dc128907ca6bb64a1a74ab03e7366fab45d40297b20bfcd6431ebae15d55432b49fcf5f1ad35725a6cd07aa2a334f9c3fa8921a83b6aa4f02e7fb99a647a907c2669dcece7e604a4e38eee936a8fb3d59b015fe753240124b5a6ace7025c418c75a9e7ce7d155c9a5493f2367b5aac9e8f781119e540a8911d99c18dd9a0c505f13379e4c1ea37f0000000000079a110000000000405618aba3d11b7063af27d29f19589290e6f8e136c6c8148e039a6aed760f71cac093618b42e3235856daab87f09eb2f51d6d8e03665c25798cce78fe6a1473b7010020f48fe513b26b0941e5f011ef85f5167d432dbe14d547cacbe188f5f3ee9824510000052cb5740ed4f40be0720f0bad367d5eda5ca30cfa12848f7e2cce50b15a10d0bca53b462416d230af58d5c93fc15d2812f2fa9e237a03c2a4e3295a473dd8d8e6f908f8b0860a0c8fc2ac9726d7fc24aedd9019349df421e6e4af3c03bfa36d98c61644c3faa32a90830581d66bf95984aa08d1532f822f4094e5285e65d6630b21562a814824c6abd7dcb56d9e2de48b5b7c49b134c2a307342f8e0ebc8f58429096195428d0fff2e06be1975523b89af92c65e2bec91041d54ce26892acae50dce6f72d4a3545b9079faf71809a5236e202754ecb01ea24886823f4845bae5a7c5ba3ec13571ba47587584e2c7aff5ae6645819d03bf7e6383468eb3bd8c9802e98ae49d33cd9dce30459cabcfd5b18c2b2c5ae75537b4a5eec54c481a400978efee824796d92548a918461184a03caf7d6748d056e3c1c138c82e24e371f0dc5620e783da2b14f357fb347c9270524bc6bb8f5654f11324a19a2d8df7a4b21c61a969dc85aeda8a8623a6dcdecc874b1dbd9fd7ab60a263276aa938c2f528c31a1dfcf064409d81a03c2e1db13945f5afbd61316321b66d8d2574430f4c8691c79d10e1031ea9c38fd106fd71fbe6715242b51182e6450d50b2e3ffd37350d5e3f19b7389e60f3a511dc896c795d654ba9bc4000554043ec98f4ecf9919e29c3560ccf75bfcfac44928979e622ed0c7144acf04b2457a3344c30ab98adae96ce1c506e31a110765ef8deed2549d64f6c624ba23ad04f33c90f6519a8b37b7a00ddf8aac71306502ec478f9c51347605b86f5fc7312cc66cc834b54b460584959e4c16707169ccec13e21eeeccd00bc767f86165f2d3f2c2b36262840a1ea5961ad668b56ea896b875824bbe949c6b9fdbd9b13ec6f09f86fc3c1b116417833938b63ea3455a0ff35f81080dd8ec837d2ee7829577c07759272712abb7c920385668872c8cfc72e2665cd3e9fd9262cbcef6e67eedb4226cf842edebf95a67c41b4ec9667d8b9f56c8eb6f3041eaf60ce3ad9382d663a88b7c7e0a78b2eec628bf79be32f2dad9ab711589c34efce81c96970f6fb63609f1a5c99e3082a59eac889c2073f3754e86665557e812190818606609dee392c059cae7bce0b2aca442ba8a1ec138e6fa5e067f911b2ffdb96f14a583299cc3666ef0d1875a91770ca70684f28691ec651b47fe4e27edc5dd976a1e5a09dfae2a53b2ef6c1227372785670f06a2d4f8d78e015866aa1f837c1c5b3aa6de1870174e1a7e550a1d916d09cf2b440fdc78dd750beda6e5ab1a71c6d45856e5b2bd8a03d4e185a38f29287678059f3b74b34ebfe47421ba5b62ca4922cbfc7ed6b370860430c0e4be9697ff01b50959249e1405341ea9be6ba692bdf2930bc5fa90d0deaa0d39ea01ddec7e06146f1e3359275c29f6ce2dd34eaa888ecff8868ab45e5a2331a9e40b47b15e688de9b62f808696e49bd12ad8c279d91cf9866e15d18ed2a8a8ffea6210e09082b42786422a7623ba3e8f8d31b40a4768e4a05ba617791d1c071483801efca275dd8439bd0c85f16fa2d0acdf19bfa8a0c43d3ac4be0738edb0bedefb0b90a08d71783395e2aee20f02173ecf89714b4ebbec549c476fd46d68687d8a23925c82db62cfb8c12585ad42987ad11ab526494075867d972fe5982f227fd395e162306cc5d643b5cf64c868c6205ea1ed965d474ca0cc663c4c01b0fc3f6f7f56d72d598a35e361537b56d18614dad0318e04ead39c8973032d392424f8a2bc756b18c8d52f53efce069376a3bc3c6f937e51bc151e19bfa6879d26a0d1d29e9cb704e60eb2b3d71231ebc5fc4768a6adf49abe4b7417bd327e9ea670a71ad6d182a7ed23f36e6563c9381a6b924020020c0d6240f8a89dc159e350f7d8ad95d0f52a3b937d2bec2436b16968b5d3da843000001bcfdca579d6925cdc403abc259a3f6d89bbc07a46e3c0c05d6845c4b3f1fbf59e2a56a4c21e1c5d4e0ad5fb05a5d272f3007331e8303ccdfdc2ddb5dfa6f7f1ed302b61245ff478ad1f51c8e81432a79498cee15b4b7aee3de1bf31b17579f55917cc0e6d1752847f4a37d3907e38d4950fe2440e2c6e6bf164f53dc1c55b7118ca44d42f68dd7e3a36de9298103c7082cbe1ff0947a43306ef73e65c4a914f3f430641ce4ad6bc4fd6f605bfa5766b6785f9866a30e9c017651cde15ef1462fe5c73cb0edfd08e795eaa03c89de93a9b070a72181be254997fdf08a48785ba24194edf38a12807039258ea02c73368f029cfd5c8e19f55ff8fb4bccc8e1a772d16b034bcca83a7a8a5ab94bee27b7b07ac4742625835ac9cb9a2e25871e9fbab5b7c39226e8dee77dc7688db944a26b11c13257243452164d59355113f2d27390107cbb59273d58f186bafd820655adbe0afa072cc97200b9f1550ec2bd009c8c10ccb327d70cab5e21564208f15c48727a7f925027c626e2bb59be3b1fe9ad8d0afa7d8548cfccc91f08f9185ee9f334b1f83d3e5a8763bc3ba5b3fb2bf11c7b849bedc082858fd29abd2f923af3c8bfb82260027f77ccca4a6648012282e6a949bd8ea3a8d0777faa9c3cc30000000000079a12000000000040d900507b059e76e57b8b08749d804855ec56a8cc86538ac148de9dd01d626e49ded59523497d980b00ce6308a7040bafec0c793a9ade75b3cf90e499638ee0ad0100209c2648a6dd13ca21d2a07a9fd1b948b03a15f0e63d29538953cc7e2b600c9a250000052c46d26e56018baa260fbfd5726a97dc35513a406cbc895daf8a91e8c0ec321bf5c5c4f877b3565ff396d9d1ef0416a4c7e4a660374158a5bd6ea8e7db2818e96ee7c5be5187f11114d7f177dd44a7325a83fb29d24f1f0f873df76fae23126435626b34af94a7a314211627f0a2de0cba201555c3370a411570fa030ad8f258d249545ca9187d1081ada0b3236f49ce49b6b4bdeaf1eeb53cb135ca4bc8e828e2e99f8521bfa3ec2ada1d8d3114f24f65b5fcfd9e78865d26dc809ced3683e01ba8995b5692ae93f87354bd49f944f9f227cc5bcd00881880a02edc8766770b3506183456dc29ef610584144b4157c9b5acb476721df4890ad82b85f1c2e75ad30d68ac6bf112dd91029d48911213328d2f05555b9963e83529fa6af5689494a72412407e83778c8551891cae49c30faa98e9b29f43a6efc2b34fbc6c75fb915fe4b061ab16788d3c05e88682fbc387319a8108bd1ac380191af35ba4622cee4848eaedc1b34d0dcc6485b7efe70482cba3550b72c2f64fd390615ae11db4568b13aed7ed4892fdd5a0bde78945238b62c535eed29a19ded451a056b8f3f0bc1b013986bb87406ffd4226ab17bdfdb10ba74dcc2154ee3adcef153e8dc8427a78d09b2376a4a5bf6bad27c648b87d100dfcfa5cbce5b126cf78fc13dd3dc4668813219fab10c5d877bf175cbbae96d7e41534149d19f7f198cd7382b338f44cd21744cf1f6f81044e91c8d634a89435d519bc420c2868c0fb554a4fe9bc7f670635791ac28b399d6a802c1c5a40c5edd691d5a601b4cb4cce4f1568e2d26242f68fb7c9c3ffc64ecef4e315a52f6d31bf9dcb8cc4d65bdd9175ac1b83ee928597c6dee852172de1efde6e11a69ae2495975e79c11bc7b769bda0bd80343f6972aeb62a3f88dd18607db49738afbbec4bbfe59e82fe61a4bcc79a0e91de77c5ce4c8afd319179d16b62487ddd9a44286dfb69f1758ed18bd35046906e3c2fc5cd0e416cee2b3fe6c8d786a27993e360de113126bc8edab709755ed81f8cf5ab73112dd8426d7c583ae3c4e57d148b3934ba1257687aba2d405b18e4c18a1f6324d751b2482a90107d1de043c5152827d2f38b3ba783425603b2c89e16e73d10d3515431402bc0668936cfaa2075e79f85a717170b2ab6d86b88b10f092000d5f843223d3655125bc59948199cf512465afbe8d11f8c80c9d7b1cb8ce07acd32f74df8cbc3b62b57871929e6f946a90a7c9fb39e179d9ac8c7bf77ae1f69753172ebc8bccd396629f9e0c4fb32b542ab6ec7bf04dc19504edb9ac6db67b8851820aa7a701fdc390ea9cb4c319ec75259a2f982fe10614eb3afa0850477a99f2672107de6946232a6609284b20dab48a58d89fea6b7fdcb3d6f8c38f3b764123b4fe1af035ee9d096cdfae3177bde418d57532644df07ef974840342b0c111699c3d64f22d66384906106856cb0c24d15efe703d415969957df2048745fa13d6e1ecb9f05069e4cbea5feb889e32111d0f34ef684b954d246bf5cf4d66ca9cda383c56ef31ef9068f517e6124be99fb100476f9ce69e6c06468b7a2ab2aebb97cff9cd06dc0ea256e6b810a36c38a3557d82fbf63376d65fe42fdf19eb2298dd992f6c1e88e9582bdc62396a318eee8e8e42f788e1168447b4da3de63e997f95829c924f53ce2d591b37c3ce3e06d9e52cb69d885bc4afefb679ef2ace6df0a0859c85e2c8a6df2fcbace4cd0db0c33dbf424f35177ea5b64121f2ae2da6ff762cd941533740766bc3857f36bfd1d3bc96b93587b43dac7e978f15803eca7443f432f82cf0afcfdc6ea9e8ac2b7f9d002302eb39255c3c43e74ef7f1188530b27a754e055584452aad424294e32802002046a8924e43bb927093339df4f65b52665cc90a9a5101bd813b88eed72feb3177000001bc015c6f07445a65d6e96d61e74a401d0f22e11871b79264d05eefbdd13cc0401fa732f5b7429351189d7cb252318620709189176db3a2e6a51da5e2c0e41bbef95a4df8d9a0888c1575325778ecd5b141c3f87c2ed42b4f4f4d3fabf0f3c10a1fb973498cf4325cb497d6a566804c0e34031a0f91c51d70120bab122b10ec3e4a7f60a29288262a6a3022e58ac35cfcf58d88caf923c911c06dbb338e4b8d60e1fa8d70392fd2dffd0c9ffdb6eb18f91bfea593c4c14de0784c5411e5a7fdb0430906c7bdd334dd47622b7244c1f388e9e9b21cd41c311bd679a3777bfc7121488496da1c57727869677872b0771f5dfe08012d5f121a1f00378d04cc5fd2ef7dd6c7f0d6bd98a44b770d8418b93776e89534df8fe9004b4bbd6c0f40c90d42d23fee3b97b0804785060227cafcf6a3942eb3c967261fa8cf7f0c0ecb79515f14bca5a506a14bfbf9c10f4119d807e6334b2d87fd9df4a7aa6968e30346a10d6ee53a6510efce8d719ad04a41906424404eeee7700fce28f9d4e787103b413cf8808ccec84c9ca87b81a0524994e04a427aec0a5f333f8088cc26a09b6198d5e13bfca1ce7f89c52bced43fb0c3212f8a32709906e9370fbecd12bbcf2642b5ef328ccbcb4158e53c9ba201aa0000000000079a110000000000400e9d2505474045412d42def11d453e38ad144c620e1cb59ec4942ac9d2d4fd9c3317c491ef581c5cc1442040ce0c55c494821834c7dbd4123b6cd25c0ab8ed210100203647531190ccdec3eef1145adb7c4ff780828fba1631ac9ec7ffd96eb2e2bd6f0000052cc3ae88b2c5cd014274dfd90e5ce93655fc36204dd001b1aab4fd8e1a029ac1e6eafabfaefc33afade74bea46fb0560a775a82c5eb5d210445deaf201b1c8a9ed5888581e91b54cd418062b53eea7d8592049e75fd6302b8b88b544617a0aa0124a1ab80ddd5579ef7582584423bb2b943a9936740fbea361dff8a51409fc48c2f6ee6f471b0a92d4c1c53875e5657d73f54519e5e10f176aa76ce4511b85b37fa04d38b60b3583e2c762d29b4b102535262227055af6128a0d2242e9f55345e5c950b08cfc571a21811b5fa2f742ab42cdcbef7fc53113d1b6472dc251b6d831e6020fcf0853070b960e93d41ad38bc626666c800169580877a9f993bac3ce78861f07fe497d9a084d7fa2ddb1ff6fc443d014af80f21ea6d797f7634a6fe4d430c05f2f0db185f1bb9379986af3f0a3157626a2cd673bd68779c5e58f82c453a9d7b6200e04b22390c84691d70607a10f309364d98bc430ecb45b4216c4e8fbbd7c6cc8cf46b255d84bf676a02322805b9c5c8fca67c93a4cddc5b06b4523e2f933780d66b9217d633347a8b6560d94c269a25179f8979347c79411b4dacf1b2a32c10f42b8031982deeb18a1abe15a3eb7ba0613516af5c77d4d7f57c46cb599c1ea7d1d7a03137fe76b2fc727e1b598ac199775096ad6852a93bdd4645d2d63b599e84161826b322cbdc517bb934abe0a7fcf39f0c664daae97230ece9ef94887786aac5b471bcedc50fcfaf862dc03e0dea8f977cd50a68abdded4856b7199bff282288af2113de2361853499ba4a9c24a2d54bd36b9214feca62bc604921a3dbec9547ddf1dd8cce3cb16ed4dcb94388be6b37296b7362b05747d6177e3030aba613d9a7c44e32c108d5acf74d460adb392536ba76195616d176861c454b331c7f6c537a09a9f04edff3412be78a98399399f03924fb31aec8028eb74ea9643751675d3fb63bcdb67a011a05d04757a45c61402aaa8b0af85f8d93975d508f33e81529aa51a4882c624528c552ce65a2becbc809595cc675e837af5327168a7875ce435b8aed9c0f070d66787e2e32265b039c2f0a63207862ef96426854ef0e6c940496f525d863391c454584ab6c4e46895a830115800cc422e58c759af56f1f804c57c46309a0541a955a59b11608d2ffc4b60cc01b35106ea3766ad149cd45f09c17f6d0eb0f077aaf0608005aeb808734303f5d7cfabc624d7ecb65f315c3b75bf276ab87bebf7b0a55ddc97aa201e4a1f5d88b408f07e1d69a24bcd3c76b4102b01ddd5731cedf977a015e79bdddae2877325de40cd32383de27c8c0adf1a27f57a237736e4d6914ab979bbb00e81b9f4138789e9e99fc54eb0223a867b424a752215b04073ccebd44e7cb72a7053bc18f2f76a3da358b6aba89891b1f5f75e12f4fbf35b245c2a2067dc2711c8305ad42e3f04d9056229ad70c885ab0e23eef47694422011b5caf5545514768efac56b3007967c5243ea27df2237934ba465addbd409eba778d9e8afacf29b97939ed6b056178a07d1daacc41eb3c42fd868f2366310de70808584f7b1b39b9ba1590dfe1cdf48adda6b3c3fd42c8aa20c028fb96d644be7db1445715b86a1ca317cc666ec89792c1eafce6498a54029e7cb3b4927c9f491e30fd2f7e078a03e25743e1ecdcb02bd84f146ae44c8fec2c74081d39902afac1eeaa2c15c4e9c6eb9905298f213d6a87a69ad9c2f2b20637bffae79053a7a78588e6b61120c079acb97a9936f018f68f1468f10b173ced772c4a7607b8a970b1bfa3a03941c4253dec27415b70a04961b037085b3736f07d4dded22f0114b73fa746cf001e1dde35345a03eddc18b3def9a44a7db10b1c5df4f9ede751ae0e4ee0200204202fe988b93a6667606662882834b4f3a1b11a2c70b4e345877b6b8c0087b39000001bc16c6d5b7081d7f7ee1322fff410e5a0c31e839df121381cdba37f332dafc6b6f2af723109a3c1192f9c36fa236416728db1c978cc1a7688d72da550175a886f54815dc88232535908e98c79158968bfc2a77a4d46164f12980b9b0ce45e4e0dfb7f84bd8fd8afe790f8ad82c6166f46972cdde0a32fa7fb71640a03cc8c729e739cf5764fd697692ddd2a8e5b98a091b654e6f72ec3246886513a8cd7915004cfe831e5d03b20d37724359ecf8d98cf98a1e91b46fedb9a17774985394ecbdaa9b841c2824de9eddb77c4cc303c08ca3278559abd6e69f06777db871e284d8518360a2b0c4768447d674ba72f174a1e0d9caf7c32ddf9ad175cb7663f541ddbea30af3664c5f9f5feed7a4b5b4c680026ec0c18fa22b78d9a8b344d9ec851dcc2c4eb105005537e6dc8d03147f4b24e3a29ef5005ee66efa6321c9afdf2c349fcb38abd59fe9f353b83ccb04e2bd0dd857ec0aed36ff6c0ebb28be9c07d55f84674c4b8d020aa7b8d0d04b148a2fa30c96c4e0816563f871d9db007e9ac28dc2693fd6c47f79e89259d7fd9cde50572717b4f33bc529acb53b5e44cc7877ccc5bf9002d8384afc691c4551a4233e776d5b54ee5372e036f130ab82cb291177eefccf35c5fe6ad8ac24d827f80000000000079a11000000000040aa41a457d7eeea055625bb96a1f3de6a167ce888d873eba0f3732541215c9fc06663eb862e1358ed23b03d3d65e85528e0a1d82a4f80d8fa5bb5465e646f40de010020269c1330488759cbf6ecbc5c32d705331bd755f5ae8ee89a740cea8feb47c9310000052ca489ef1473d8f2678b5e246245cf19b0d626c002aff3ef87f7454cbc7a52e2659e5fa61746d883faa7541a96d01faf0665e7548aab6b5fdb1533d67aa841f3c6ade3e2a9da907298dead458582cd8f38726f0f12a41c958ff32b01dd2f6a43ac2a6b4b6709724763d5e8b80fca3780710f4a516e091badde5f5c1a85c9980ce7a5796e2242f5aeab09fb6e278e12eb18b8ae80b0db0a2adfbc3c345e1cff279f866f52ba5c08dc8e66b521072dbea85c9ba8c3b92c0c08cff5ff0d3ace00a0a571292f7b53f54290a14905146cbae390436a117fb7f92e75f245385e2a96d5a26f4ff74dbeb952545a5eb81ea9ed5b9fb45ef0ff57d298f2f8ea0b2a2fd5b84e772a1350abcd8590e62e2cf14d4734aea1b970a6d4e8bbd237689cbad37c8af0251fbb9986dbd08cb57f312d2b22079b7e162ad506ab1a05be0d13c710d2dd6cbd36d220ad7cfad8706d17c88488a8311a635d577867a1ca0a80fd04ec66f23a139c5e7d7c7b3cb00790c8a8ce0ad3b437e158e352c0a0fdff2720b7ab606093af6ee5f0323a138de5bbaa72fd5179f048e9c2b88b1d850734c03edaeb2333f33b689ac97c61ea919458a716c0d32e937fa04074eae5800b74122f4618238093c313b521add325eaec073ef44b1b2f34461d28165edb7229a1832e86093381039a3362945fd1c4aa60a2189826b215fc410a710a4a441fe284520fd6800e7adaad7d97d37c71662335ffb4ba028c42e64deb00acd063cf5452816db0ac7fa4174dcb2fcbe8b7ebfeffd20fb288aeb10348597cea24d8c370cac7053d9ae79178ab3150a042dc3a92abae9f95ef930ef60e0cf0236587a4e758fddee281753cb2732d6d5ab22dde18945e034146349ca9ae5fa87de175707992c5a11c01a86b4d1c0f2c36691f73520357a8381c950b13ec08efed30c475d130c821014be29d25db07ebfc6f4cdbef6397008554f924f99f934924ed2b79ce70e10c71817c8571a73b557f88b83b688cd388d40166806d96df53dfeb89c21c6146acc7d86bf33fccb2d425fc7a94bef3341e7f5b345c6d03d346e917791c5c7c3c0b0b2a976c23c7a8109f1bb81ee05113053990662e6f766ff5c92df42e35b4e1c2cf7c486e385a1e3708374babdf1aa6446b3afa360604c5208be98b298a752f49d844b9a914833d1e49ae4de38d3d95f5e5c489f69756308906e91016c16e3d700ac5ed9820efc44feda757323ee88ea33b074db5aec650ed6522d4d55d3e77572901d5d79bc7fb5c60ec8c42e952eca717539d3732ddbfb8aa6e21f35923318f001af8bdbd6e2df4c7ec0c3b1d749eff53e747f78010aab7141cf2c3517c3b7e1c3aee2b0eab5c33a480aee75e1590107c1fd2c46fab0e09f195a4a96bda42c32f208aef8d972cfe75c6ea975d2bf3ea92fc9f9db22f07e5cf7c1c264816f9e46fce46901a979596ea3cb7bbd10e5b4db31ab76bc7485fcebf10a42ef823fc729f549e706bc3d7933627db41121aee44f5de9a85e4560b3d9a6ae14e01ff58556624048bf42a2332e041163ddfdc076a717ab0fb0153ef3d139cf0d547a0743a0f1b7df72396bf722e8ac7830dc3a02999440aebb3529aa4c5eb823057612af5da6a8c1d8e32c204b3f994fd4968634dc7f55893949401bfefa25b88723f0a1235074cca8d4e4b722b01a939e3b10eaa4772dc161c43f24487ac9b53bd518d275866ee7f79bbe5807c3573bc9fd228b60ffc481ccbf0efdc1f25c2d6bd454f7d4d335c4af892f41a244c55d72918d9a3a950f30a9b17269b25934c218866dc235674b88c4a021a6bf29dd8c98dc2ce36717283309f9658690ff137144c94778b75f0460caff57c664313fc751d79edf362020020e87c7ebca643873a0624f0b8f9513f5adfc48ed3277720016bb08faacd78957e000001bce340a385d6c39313e8b0c657826d9e83f6b15fa0ce13f0509b724419ac4034eb56b47ab119f59be4874d2c0da89869162a53c95fbafb0312a92d9cf97cd2e3b6008185e1afc982f37bf06c496104dc922629fdf981556ccc852cbab39b4e0648f3e49aa4edfdca22f9d08488bfaafa33a66d7d4ef09cf1360daa8dc8d9b8b5103b18fdcdc86e355b77b240d59838054df1028ad3c5a31e5f7af2868ff2ac175e8c7d37588f4ec5225b477aba056ac1f1082c22629ba8e396dc52fefe4cb8b69a8476db47bda9afbc06c59696cad125919209076c7522027ce018e315af2b73b77ce4b57eb3b35dbbab3152b282bf709a00e85526852d78515d3be04c87cbddd8aee36bd1bdab44d3e349fde402791367fff00cd015dbbba78fb674352f6664fb91dcfaccaad9b1176a325d173e1c47c2b0bf8b71d0157bb91a3a07cd0a391f0949743efae94a47ac5337fb25a31376c88f71aefa1e00f8b1f983b663c66f668e3ce768805c8d7eebdca2598d3e0e01cf5cdce88b896114ba3ed7272df4b25c23419fec44b7edaadbc2c2dce2ef9e7742dcc5bf3f285f7c8cc5418902982d485bd7756cc1990c6a880f6658b8f74b015a8dd73c1c0b8efebd9e7983ef2c51eedf639de31fecaae7df9890cdc70000000000079a12000000000040450f0eaaec5efc71aee125fae5038ffa8b13cf0ae1bccf400f7949ce29e05d52e35427a5de62022513cd41b218e75fc2b9454e92a9f747dc7cd68cdca439e72c0100202e735fc0f95b0bbaae91e7caf9488f44fbffafa68d8c8110910ad0b0d193b73f0000052c6eb6a325ed383aea58d1e23ec99cb64103dafa93f7b57dfc7bcebf5bc43a0726c9c7e742201c2f21ce3ff1d29f62eca030776e69c10a5036f89f70ca0db40c7406eed49781a7c826ee65c441278deb84c6aba8afe1e16da93b9736fa4917078e56c61b9ae7ec9a5dded9c30d271da81f843a98fb916ea4817b5cc5e67d6165e09ba483ec3fe7cdecc7f679eb275b7d712a2232f9740e94b49e69ebe6c10d9032ebce1358255129ac9d0d2f6b2ee88e25f2bd5a42d4403805ffd4e0103ecb670a3d9b9b51f0f5184de76d578e67cdec6bfee68bc595100ce166bb9278f54eca70710a1d46eb842fcf3595642fdbbcff164b8c8c4fabd269a917cb239a5698ad4bbc7b5f642be614c0fcb03243d049f9efa8edba0c4705dd29c018c935e8b99e39a8a0f25a8af7d8fe316755b2d81c0df0d3dcf146b1cd798326b7380c89d336ed637e4cf6bf19e1751a9d23d1c05d3d667f6db93df029ad278e20735fb3eb353af41c5863665845aea34c996e0422ce26fea6f31ab2fab09286aaeff3e75723948d2e3781a1553f5bb5edbfe162bf28799473895b270e408668c146b7177ffec7556b20ce4f99887ab1aa36b86431562924afbf316e933ce7ab02db3e1ddb7c29bbb9439675a41a8e3c07b4bad9be6b22233a458ecbbd85820418f2f980bde8918d19e9aa49183817a21b70079a490d31e4fcc1cc80810e5ed0d992233bd593d864ace8e196cc87ca4f3975349804aee449d8c841a6e55250807d84757c99a613de631f2ad33d5a42bc21a5fc72d236831d7d6993d1f3699274f62aff050a36794f9f5e17f5b29780925ad6b1ea40b68228fa66fcb440091ce0da5e1d94ff73acc81d6f763037d6e6653056d1f05b8a3812f0872310dd92178dbbda1e782183996ab36329810291394f6637956fb0e8a6a418c41c161473c7d40d042e7f128bd73f4d430fad42d7a7a8797feb40cd5cdacdb2ab77fe01182747eea5dce0a9ccc649a89a3c432ee001766f8c9480c61767cd96322112ccb35282a03f0ccfa5956dd7633929dea093a85480a1e10fd9d79365feece54be868b22ef783077261ae10ef1697939b9bbb392a186e07dd8c082ef9f4cb35aa5288fc0d0824968e68965ccc341304915051b01e969e2ca49afcdffe9a2ba2a6a1796e513d476c8b011038357e23be7d9e3a57ad049a6d68f14a780e5f731a809896ea4a9ebf27be54874b26d82d9d213c11670f86dcdc1b618f16db3f99975f2c77da98d305b1356cd6a7c6c2cf278c77e1333cd9d7a1001c518471e5e11cf816a4a782066467e6966511db7c2c843cb2171f0b98f3ac55883dc547a577810b4aa61cbcfb0ad363b608809b53c51fb8bbe98d6e3f703f81832f9340b3591b0814f29d167487598feebbfc21d8a1889707a975757b05b4e15c6a247d50940a206ea52e0ede88a83acddd40fdc6fa7adad5136c393626b4c758e2744a35485fb90522ac311525fb2268de4fb87d7620e1e32b499ffa807a11a9d6c667503942847d6a332fce049ee7c2c5d444097fecd64cac2b5f0cbd511f917118c285fd4c298823891dd9115c52a1009ebacea850bd1191aff37b6c64b24aa460632618b1c69da8c6286857ec640a3700db7514d6a64cf501fcec5bd3ebe736f987d4546e6d2ea6992d6d536c08778f1248374a0cbcad845f02f9fd3cbd415c7015ba4d8d7c8aa77ad07f76beb688e15350452a0086a793b955ab2cc93256a7fc1493322043b9172a408c8846062dee506c5d4c2d1454b899c590f9e7db28e0c00a13ea37abee80e0cc96e0b11da1b5e99f1d33f8e3079c5b21e2e5da8c8bf663a1a7be2218fb67b7fc9dbb64b6aa79e5559a099640a375d263d27d650200207afd6c650e45d3a33b634a1d125ddff015c6c60d5a59a3a754344eeead6ba34e000001bc1afd56c5d80198e5f675a25de717f4aadd9865ec2a3c696e1af55c51fbd5b4ffca0e401f70db921f4bbf8a919633170480b1246aa396f517129c1a63abe1a9e4d22e6b399438c0519eeea94452ea6f55993d3e9b8b73048093e8c8915a929d50627c9a1773fc81dee5504a22f004fc6c3fca0f87d199d51a9a8e28be850611f22185cb608b939e653178270844dcd3ac8c286d2ff4bc401531ab106e0d8d5fc75f5b65781450ded13c7e5a2424dbe4a76cdf42ab7759028e123c96f90a5512742b7a456e372186c440b6205773fad8b1eb1a955a3c6e9d0b34c07eafed870223a050fddf1b38764dad24c20a411d56c9f52db7c3b5d8957694636e30b623e225c6013689a33df05d3619eb4f184eaacb0a17d5a478bb3f116494209da05cb561bec6692c91f49e8314ad71da484835c37ea21dbf07a3282ced00b5a8375b0fe650e1a364570a0dc0e846571041370108f63ca4660bfb359f689ab1db2aa91de911c5006f5bd03203a58454256d29479a3379ea9667a9a831058d39f32f57076cb0d08a24e153e71e129ad2e50416093adbb5fa445763fa2da91ebdd9cf5fc17c507bdc67786dd5f56f70cc93e4e720e204ba566e72ec5da30ee147bf2cf06ea0858f3b84c2f1b6cef9eb379e0000000000079a11000000000040540427952346c276a4b7c69e3e18306ee35662feb18d7974753c2d4cac8725a3fadf01557f0fd89116b2f7a0e5203ba8bb3cb3b0d9d2e3f58a9e4e4ab1a065c801002068cbd7332c34ebe74a84a4648330514faaf78c68274226533837147bd4aadb5f0000052c7b2302831f0b8a5628204ba0bd29b35c04bb5ea53dbd24fc645d8b5d3d16db92bf64da3d18aa9c694eb14d27130d0a0144648933495a16c46d7acd8761b3ba8dbc082e6c221df474ce7785c7af03bd79e4f76da00d7e12547ac6add2116846a0d78ec59d7206526f5105b2ec11eddec36f8793507de7b5d2f764766a4a50b6f3be0a230142f99573631e33216d11b2d1419460f76c6bcd9427616fcdcab69b139e418801549dbf092d92e4cf188632a9cf89546588007452941109f1e0d69c20e09ef680c55f397d89267865f7e4f794fc051961aa4dddc834852a82fa809236f8261dedfcbbae13639e108152fadc7ed687389f6e9649a901297a11799c00da6ceb921fd87652b8a374184f3f613d6bfef2f61970e5e951faf13b09e6fe74616fcfcd5177b494e4530822641f2045bf2d99210885db1da613a1b427ef7939be5e92fcbdd0cab803ea32bc251ca8c0b630963c4cdb972920397783ae85c47d1c2a8f96179f5d808bfb11b0db7f8249045ff44ef3ddf0b7f113b7dca454bfd34b1864fdc6cac6cb4a92c28e4dad2c4f87fc86fcc91a6190225b3a24dabfd80b3a5d27b67861cb80adf26cdc0e440bd13b321ea0fad9f51647e365d7ce7e7235a82ae6f78a27f74ef796be8a6c3d63215e027b65666a459df8385dd828a5e03380943fb833785f97bb5108b6277fb5f3663b7c411ca65d10377ee2b9802a1d7a01be34b8406903c66bc9eb712d95725be3cb64ffad577e5b24a207bd3891f4db53dd039b35a99ff3f6eb0de080be4b1aea3e3d19c57f944baa53d12fd7ec1503229c029f13a93e7c7b52a9473c5c62983cace9651cb46e32ce804fa597ecccc681964bf615c60ee0862243b5c6d14334cf6abc82e8dffd71af4ece11199dc9c5ff40c6bd3f9eca88e8ba7190d81acead584e76ef41a007e64733ecd91528edb105fabae2acfab827b9aeb54ba64d7977e01d08690c4ddb4f0dfde52f1efe773f779617c7f80b9d67dd05eb05a14fdc81f4f0a422f9c200d324da650f64d2c8566fffdbd0ec499f4d80692acf2d62ea4a26bd0564fb753cc328730701d567880bde8d8e377afea8b839c7007ab0fd02139ca835288fc5a055e84f538c9996997c5aed0bc29771f7f320bbbddc8b83f6861469325868034bba5c15593706afa1c3538025ea7e8e86703331a1ac1e9a5f2e671c948594c7b90cc6aba71f7f8170418618069bc921401b87030a5a4749980991a2a687790ad6d996ad76858e026dd460ae62cbb4d889cee76888fc031ed2ba761dc31f54f21a11ef7f31acc5fdb9d8808a7d69c6cffc2f49943bdcfbddcad8ffdd081b6e79a67d23925d82e0485948cfbffc3db404bb45f964ee5a065675925afe97faa93458074b04d5d57a98ece77195a8a14c1d0c1305829511975c9e6665515f7f7c01e608751082d4ff42d537ede1b9db83391ff2797144375d38b0d6f393794b17a38abc44f327d41b9ceb8bce453d8c07c9d7a8f892904aaf9d9a57649410669b1be15a32ddbf0d9fe58aecfb88bd33543d8b6bad0ede992f04880d8fac976f38d523fa0346f91a2c687b18090d5208601834ac5d0ba4a1633d7dd41dd85a21827186cfb92e7f6ad89e85734f509488160ef6a3559b18084a8706fad1e168a85ea021109eafd8a2bf787649b1d6df67b817d6a88fa52a5dec9f42c588d706f9f7d555a99443569594fe89c657cc962a523b9906d76d6ffa010f18c1d42d6abf3166d5be30b1f4b9e74606608c9db46490a788c00cd3fe7a91d6d44cced826950e0592e66b0274549b126ec778bf9ba707e38c049785503ef6c7b566250feb7438907995ef17a4b62fe373b8794cc71109242ad5cb769e71e80200201b121d2257cb93c612a71275611f8e30bf6e7dbfd74d046b6b09ef408c6a0152000001bcefb72025f005a90142dec3a11b4ae7549e4bddb108697a02fd2267c392ab97e823c105ebf3a3c917c0033440adca7b399be6211469d1d326510f6b1ef5dc71e1105533814dbfcc9a0c1844ec2476008dfce1265aa7ae77f5ba7fea30c621eb8f8ba028d683fdbfff8ec803dfd5aacb8a954619eee65ec20749f46ae457fb8e43ab97e4083bab9b326deabcd26a9a5ebfe84683e94f368d5e514c8f705650f61981bc9ff034250a4a1e40c20a3ac63f3ac2f49e8bd1b8071c9ce8d8b27701865f28666c88d72b950bb41137b224524bfd1dd7dc02ec561c8275b5e173b8f6bfe0f1f121aa54156e70297191f96449e67932e38020512c94a0f1113b70d7dbe85a55eea0c1f83a67e585eaad132a8e9e4b54d774ef480782298d5f6e043618c54c842edacbe516de3ba433bd03d28c8ca46a24b439805783310692fa56133428b8b482dc4c9b4971831490b4e1e5a85a5f4894174f60f4c58e02c568d5d4b9d79da8b32f8bd1685e8d71c7581b6d1610759c0d03c0340cb62aefb8dfc50019114458a6cbb5ecef3e0c19c53fa4f434b8e1d2b3eb6ad6e36c052d1af747132ec2ddee0525b7361deccb211f5fdf583753afef4b8ed4ddfffd91b88547822ff25df49a3b6cbe82cec68296d5c3100000000000079a11000000000040b411111b9a73ed732062a3ebb57cc00ca7f1c0581d88437f8b6915372fd8004c4886d15103ae5d499abc422e86262ffcbee10669704811dfa5099232650098010100200a1cf86d3373edd636e0b401817adba3c1e0bda7d7bf98392c67f707ed98f65f0000052c63b30ddcc9efa465a7e668e34576587198af0a0c23788ec0e45ee1204dbd3b5bf86e10459ddbf42041abf262e61407edf3037b60ac4c9c721280b5d9e08ac69301f2797399207f6bf9e4c2bea8e4701e6d78e54e05988985c750162c98764fc2a15f2a4be47618f82aa2c8d6cd1ef03655d1de4a07ce479da274174a82e42e8d4d80da4626cb33f9c1ff73e85cc8df539d02ff1796eec473c4cd9392348ce0e41203aa879fac67233061234534d323d80141043de59bfd93881edcbd3df26d06c01e754080a3f5e6e96053d62935a252957d7f17550444ceefc675d4275beab1a2dec9df8851506e77c26e1371ed1f76ff9c78ce72c3b52b7af32c557be64af5c0469e91fc7c07bac035fb7170e2c6f23ff824303414f3fbdcf2c27fc414fec42a924dd9e63b9d3eac4d3abd527f7c023c0b66bcea24f5a9c45f42ddb6f1c9b8add68c448cd18182d3d04e9da25e5587faef290530213f419c5336cd4dde2ff0c4539369df1085d5d0a327e588ef64780d05c8344f0eaa2cf32f5423cd95335ecd1989013c6bbaf6ad11607aaf367fed4d3f04ef7469d87792c5253ff7200eced7cee1de7937d45a677389b580db3a2a33b9f7cb216c131486a7f3fdf06d232ab02de2db8a98c3eb6292ff45020f61400d07f76a0f05a1e8cd4d283bf01799544afa7c515daa5ccc6f77930a551452b50bade7b6ad006ea9e7176cb6f80be210845bcaf1aa191c85189b1b919bb105f4e4f146c6628604ef24f6ff56f459c94b38f150d8609a3b65f13cbd5660b34116b385f9f7d12b090daff71929ace6f75558924db0b405798541af3921397bec761323db19b8499e0948372c137b563073795578dcc4d50ee15fa79e188cbb648be91dbbce2181fe933f149daf50a4577141ae6c67e78bbdf0940c5440e1563c74f0ecf403e34a09653e46d84db6b4c30788c2e0051532390c16386a7aac0f0b52742f287fcbd44c7a42b0369e2488315d95c829c73dfe809034bd4e6448b771ad318adc7c63481e2fab80577999edcf3040f8f80aaade4a888a8786404bd40e7ddad8c6f888f8134b94e1a3abc869d1be60fcb343adeb0707f8cc9e8a0b2f46e1679153850496e74a634a5949d5a5d29116c039aba00e0e67731fcbb6b61905b8db098a69e8e19e42455598ee4d03d90bae0784abda7c812665e2bafcc7a561cff0f817f056e03465c4041198dd0e48a8bd113df9e0f7dbec7c3b3af6489657e0586548f1d940f8fa720565f92c84363c3abceb7f3be2a2fc27f7fd08b6d114bf4e7c28346b1bcad0e08e22723f459cf1d1a2a91820afabbec20694e9fbbf4a4bd9a103c5fd0de1763f436f438be1ad796b3e58486bb1b8796a30cc3abf53562812642375edd7c083e73229a8c0904ddf9a6902a950c1f08fa845644309d7544f411525026b940c61074e16094aa7fae2558ca9b1215b27797e23f5bc17a3687f19649ad2cc2a29b684b71033333e212515c7459ea679268b366ae5fe8cc6f4dd556fc2d6436eafa3ca98758ce8812b86536d22fb16f60ad18ae17d82fceb148dd991bcfd80d214b01e8e0380844204890e5fe428fc51e549df6c5445ee5783796f2cdcaddcd7583f35f87571afe4faf292f869036b60ed9d06f77b136ae3fbaf70bdd5a090fdaae405ea2fbc7bdfcba945500022aaf63e97e4d880e746310d8b715f8b93d47ffa9b401e7604161435b471e5c72f44cf0aa3664ce46e5fc74c3e2b2803a4ebc2e78e76b146e1f5fddc9834ecefa29775e79f3ab2926769b13bd2de67af505c2e8d68502a1e48c08f25193aadf4d02ec44b2be7176ec2f40ae041fa41f88e42a183c4dc5d0e5c556fa37416bd50d13c85006b1a6f4a1e02002027553cab9821b94bc0b09892f5df03c3a235249b88f90fc278132171e14d9364000001bcdad171b6fe47a5921f98d73d95a29ff2d706faf42aa62ae9f5ea754cfa9192fcc79b58c0ab3696e201ac100c0662b7d46aa27e1a8ad693e643c40e2bbd262c5c9b4b2c8c283ed4976b1347e2d10bcbcbf4d2867fd19f9a9194396fcc6fed6142c67bbbca8815130176cf15598ebd09523b842f4f937b8866c760aad0e3621ff8dcce477c5e164d0ca1cbfe8cfacf6cd2b606003ca439cefbd4dc396b3b0b51cefcd28ffe868517d886b6e6a1d347b4cc07882187f9a4f51bf02b016b73a38a38502681526925f2fceabdc9e6f8a572d560b520ec450726805332bc2570c80bc40b3244df2f64d020e94cad4e1f82f6bdc243690d08a6afc0c44afc5d3d106feddad275ae1934646f523c3900d1069f70bd1683e3c36023af7ed35a16b5daef0c4bd1ef3dd0bf54ae5fd44864e0d299a168bafc0ec3489ee208a9cadd74ade6d30490f04d8e21aa4aa8837b65b1243ba44062098b2d266ab408ab73004a8a3a1683c09ec66b13b653416147840f717e3bf1074434922e2085dc6a26af4c86035039e3b5e9243357e6a6010da7b05f4c8031e9ed03752d0893e4071cf384dec1dc57e7b3f987f219f26320698c6753bf9383190faa62907980f036092331935f45506e43228ff567f8846379ca0000000000079a1200000000004040456a0df7f1d8319dde6fd4affa53b8d7f8d2cb9874bd9bca7feeca1e270839e07c0285a0f79932af1d2e196b2de21d02b358b0134b26e34ed20b779029e57e0100201ed93011c12ddb296011a8edf83db2a518c88e06d7b04429bea87acd87ba62550000052cb7421f9c1d63e8704f4d56a86550569f9a8e98c55f50c7a14150999df14ec004406bc6054e8a99278aefeef004973279ba5ad81fbcbd2b93892ee8382b83750007cac77130a042836eb27581735559547a36e9100977de73b837efe040f0e8dcd75ffe1a54c1ce50e0ab10a0f382a291d70ffa63440a880a7fefb470b9643665b67bb8003201f1b67c5a1aa7649ea2930141c86ad48b601b80f0755d49cd2b7ebda6c3d1b73cb0ff41a52008dab2ad54c702fef96c038ae734d03f21fde350911b3095ded91641ce477ced88314204bb27c29ea8401d57b0cc134a9ea6a48bbb4700033a26762f64ddb5b6ae0f83a02f59bd1f7f98572fa3cf281a162388bcdb505865c20bb4ede2ca2783022cf002474b5c2edb5387820d0480389b9e60b65066c0e7b74427f2075e2b1febfa13b91a8964aef843ac00539f56e100d56757d71ed35ebae48fe863e822aee48e8523f64192b9b12cfcbe2204c4b8176fedd2c8beee3fa2f2f4628c1b90817725de32bcc860b07d59b8bf51e79e0a7dc830bfc91376b3288f3a2ea08139a279cdeb7e5ad472e65532216bea22814181640b3c5188a65b4bcddd047f7e655e149edfbd5cc3657fca7380d73455c33f09fcbb88deab2109bab7f1fcdaaf824ca2ed4ef3053cd74ae800800d06f92d6a1a6b404d931b6d638365cf277490d7a2e2bf17f7c04114d8e8513f58bc94a316aa1512ee3a839e777379f137ee61c7c7709e095f18a5a6ab809a452f089f7b50dc4599246921564a73d4798f6790ae5b5d18018a4227ba79ca0ad3a40cb37b734f7c940cb586b2c2ffdcbe9ae09bb3a7eaa311a913a8fa3846a9c4ad14e30880fd2f87e57d5817effd2537c5bd9e437d7081f2c245437e3f045674c64910521fcd5700a588f9155996911ff9ba47d010b6ac38a61da6587b65371f93dc84192319bc10a8627c550ae44af7bc3586be895c765d79b421e754b075a0e54bb920ebed851eaa5843672e79d4562285e72e5529c980889d14ce119cee70a0c292b02ad408d41a5bf445ad68e3ea3459355db08f0b8c44a65bb1ca84003764468b61d65d29e74a38244bb8d915c5b931865b9317d39ef504ae76445f62f18a33f03c6736a72f5ced56d64578ec2fe1c01aaece7c19cc6f2eb473d5e3c3e880fca06cf79015202596c18331fe5418bca718f1d1de084bb04c9fdb12ccef1ef0c54425da215c364221c29f74821ce47ea325f36fc9e5c1e9e3b68bbd331c2160b345d4afe563341e84707771be87aab9e38869f56525ee733bee9b5944f3fde3d1269b208a311fa906a5aea8bd055fe52d761a002bd492958fe238d1e20dec4806ac51dc34648fb04c67927841246935fa9086496893ef1088ff790b6d69a468a8a7a1437c81ab9395cc39c73b6f0b897ec520210b508a556c8bc3ab2f51dbff26dd07be96651fd5229191283fc9fe3cf9c21b3ecb9ed2cbcf552856addbe94691bdda9b68f54ba6ac4c5dd0ebc04c2cbe1cc4700b46c909eb93572ad7e8be94f546b635f141777f9ef561332b70087aff4194072bc869030373449828937b2fc97e6e17bd977da0243e0c66e5ae44d4f67186db3ba0a9471c1b6509d11adfe1e4cb3384438794eeca16e258247e263cae02989904efd4d8a26f1cab3f8d43cafb66fd8302eb18e6b3ee31f65207736fb122d7628d81299d53942457b4e0d62867413fcc01b1501b86ad0a3796f331826d6bd0b462de04336dfe8deaf4da967971262721b78529f536f7a494ebef2045a95646155221715da71f7bf1aebe0087be4b120abf3aaab47c861b39a0fe47592fbbd9eab7fa0c72ce2d2fae07ef7d83ba81535481e3e694d6fa5f058602e0fc883c302f83020020299010fb97fa20700c7f9c376c6cad96b566d2f2ccbaabade7580c07acf3f401000001bca0819fcba5ce8a0ff5af2258ca0aebd80aa711a3dcf35229da4af15e7ce6b2c198ba7d01f74384d7b25b7346df9b4fe51f38f8f930edf1c471e01479efad3b23b54774b6d8218721684367465a968d23ffed0ec66ee20c5c072482e11d8fb7969e2cc993bc41d59e2f1decfef55660e6643bac855e38e1cd98896e988285e02d85c7613a620002e189c271b0cee1bc488cc60ed61dda93f01e5918f4c72de17a0bc6f0be884c8334113baba4bceb1fa58e9a9605c0d2c5c90b0ee68e936a4a3e4e91ef1f27e496359b15f10ebec526477d6c09a40d704b7f960d388066f1b50789691301b68b03107886b4d57fa22c2fd283e26d3703161bb7755c134a71153fed161f87435fe70498118576c51074adface0d02a9d5be02ad14b223e5d39777b095f9ad42847f09b8288569eaedc0ecd1592fbead35a5b133ed09c5c38aed17aa358bdacd47cc4916941ab9aa0d4d5fa275b936f4c0e5edc858300c6d482f21affbe5983c5e289aa6921116514ef8d169600e0012023a4906a4fff5a0385663171a6dd5d420e96a0633b7d255c259b1203bbcab4fbcd2188317f4a7a41b5d74292d961506d056d612d7dd282f53d9dc5a60b0d193c601cbb895bfc53276590b43be46973df2da6cfbbd6ad70000000000079a110000000000406be94276d004f9836957800cef15a3427d8d4bae660bfb405bed635a502fcd8335bd0d437b749235bc7d6690c633502dfd1726c67a4895a6d6eb3eb106b2975001002037a6f4946d78076a6e63dfd942b3d65dad2910f4870c51f0973bca700bfa91670000052cee1bce87fdec90bc352607694f51075e1fbc5a8946fe37778ce8e944e455d382559c8e8dc34c7ca9acf301a0bf9b50d93e06c2181fda74fb611b351f8fc5ae419c5377888b08f0b1efe6538b0838ebbc152e87c85762cacd1692ae69bb813cb782c533422080e19bd6def43a3cf0d9be10c63640431125f19760b1248f4825bcef85f96149fc66c7fa266fa5eadc6d86465ccfad53ed43162c74679aef247ed4c67be6c90097e95143666b9d6ccb081c6c7b7d0ec1b579fa6ab2475c99312e24efc0b30b7f71b251ea927f8119919c96c1fff4477f117221eaed9477d7b197874d8063efd10623b0300b7e45e02a9e31b5de2a786a2ef0c2b85f1dfed1a32bb6a6ea6a6c8673b0ea06da89d44ec10d57095eec2b16d2ed9bcdd5c6fa2fa8640c98f03d29bb5ff919aff0be7c115f9a9e4d9aec915d078dc05c12de91c4ae83a2e751f0fc25f228a8bce68ce8ea2c053d00b045e91f98c5cef2e827371c66f9203b06543dd0306eb4c31ea613cf0c4b73335b22454b04cd259f4278089632821390b92d846a237cf152fac3a2809fa3be8d5fa46d92d13df94db369025a518cc217961cd4e372a05182bf67ec58bf253762a67b1c32681e26c2e525b3ae055de9a68144b1d96fcfc8b05d9a769e1a772dd4fbac7925c98c7b802a2eafda104a4fd115381144bec43c869be7bf875f73ba8b0f9b0faf5e15a084e0881c22dd266c9c6bd4a522e428282ab3725fef14be70dfd15705c55aa83589cf5a669d743a81b291645794719ba5ad672f779d03634fad73f98d956d06cbf60d711994cfce49bb15ecc61068334ff5326b61d12461f7dbb898e51b58776cb62ac03e507a26af1b61400c3d3666d792ab1df7af1c4fadbf8eeeb3cfdcc1b70917e3872fe10091e6a44948ac9cc8c51afe5d547967a6c2a619d981086dccab1296afe7b0974bed0255ed2f908c692d3247a5c059fbe192b73e31bc8356095de4dfd9c8d51032a13bf19ae3347820ea4b64c537d437f5f51f8f866c22cab037b137176bda48dd1ad8d43d82b5b413a4e8328b6c052e2b3f9b1b2a950bce2ab0495109f7697401658914484346551bb631bbd21a97903f1dd2886adcf5f7a2d99acb76bfd1c9b609fd19dc14277a96f96fbc6e65deb8d91ffb69bac068ffef6f2ca87b65bad47ca7c9e2595ffbbc5d45a447656398387aca86068b85c09d2a580140722ef66e2f3f51fde0792208c4b15bde8249b022877660abdc66b8c8daf021f6080c15a6d9792acb5ea13e16ddd0c1152b596e7116ad117f4fff69aa3ef3aa5dccfe9a7492f0e561334082b1f5c44ccce4497a7c1960c1ead1177d9e59bee8e5b47044dfbf13ce568b4230d6b98c03b08d249aef94ae85f271163b6ffbddf8029d8d90ade8c4279e209eb4e572246bcca1f390d11596585fc6cf07d25a6331533e03c2347e8ffa509bb2bccd35e50502b995acf5b4b43b21b30c35b8914c0ddc675b5da1178a44e489139b75835457e27c23c58f645163ae78b175712b7890e8bfc93f845cfd7433ed81d6185ffc2830e4d58e6c0d215f0a0db05b3b31ae12983d663778fa12f826a2744b75bb0bad112498dbc1b923295834e83834869ac147c07e87bc09acad20fb04b2bce302f28caf06747ccde191e6a4a933bd68679b1b3b72f11d3fb2a53897f92d1839d078fa3ca1aa335b24dde94717824dd4d72f0cedeebd6f8db71ca71fb1f24f5112ab12e1103ff83c496f37d6a2332a5b94b8b75d978ab6cf727347a569a87dd46b547490c30160ca45a98b18e36c97090ecd8d732d29a81479526838943a0c5323891d5258cab6ab96054e8f884876757936a179369fc2d46a3db214f83f64ecadec8c9f1f0200203d11a82f16cbcbaa550b9b1d6ab35ba274cde494c8bfa745dcf24395d9041f4b000001bc66c9e81338c11765158d992f21e88bd7538dee84c113d232c70645f85ba003aad34c5079b7b65449cc25e910063305d126a973fe23e3ee86d5dfe3c3fb9033c2e0ecfa73ca7c9c9503f54b6d0e9c9b386b53e472c0abb9df0efa93cc867b469e6a5f2c74db8a8378991bae7b962a2ae943d2a44359f81e6a67f928d2cefa87418496975d191758d33df117f2f0577dd9d1b62d308cbc9302d8bb919eae16c9e3abd8671b91e1fb3d14510e6340ded62b38d2ea1a309be371e7b2ab3d925633a9b7d9eb4250db49f4ef525687faf9f4a39f3df5c0e83d3c689b2cfb980a2931bf29d22a8ec9e9315aaf781c48b95e5699f21f079055f8ea1fb0161fe7997efa626b0bdd4b07597b9f62c2ea236044f5b73385e8b7089f036d450eb91fd049800fe5e4f7bfec5aa7991af90da2669d0bd4eb29623a08af20161b33165e6a2d049e51e9cbe2797b3becc2ae23781bb9500ea88f2b34780e250e51436c67fdd9cb7536fb815af03c532dba1427f40d9551fe95dd8fb2ac3dad84120a0f62ff9410122b72c4c33ffaf402627a6fe4b18512f1a2d9b03d4667e5ec6e6b8db8ba35e2e9a23289333f51e4172e35a762bebc321c177bf06e293b560dc58a946b3d84b8e38ce9861ed97804affba3e1620000000000079a11000000000040a63456431875da31832b2f6007b35edbd091081b0e0dce0b7371132da67a110e6fb0deef15e8e67f261d66cbd23806cc500727e12034717934453a2b8c28b6b401002017e107c9410e44509e5c6a5235661b10f23fa98434aec6977e2bba57c1b77f2d0000052cea8efcca39f0c8c6418d734e7f3b8dd22017ead880bf09cb69664134ba808ea0584d154ba7c6370bed55cb724fb830384f7fc0ad33f25101cc017f525565244181a73d38fe14ce42639a569a02006f8b2d48a2efc0bfe0a8c0476e994a509d2ada6feb3086adb467ebdf796c3df64e2a68f1fe3a91b9658016822ae274f06c09baddee1228e59287b2723550dd26d168feb580837335760bac2ba5ab7e55a962f92188b3d4e7e78404ae4e95b1ba3abdf846d76def9c6c8eaa17a63fbfdcca055948dccf5fa60a300cf2649dbd01ec255817ce259ca23d931fc2ad40927144377fac20b63e2a4a7a238f281f28bb4a5c1a5b3f4522ce5cae2bf937adc69b475d894835a239083ffb3ce068292e5d9ba2a0580defce05f6b37979bd4ef920c5295d098058c05763fbaae23a5c4528e3d8901d73aa18951833428aefd77734b7ca418d3c3b08aa08c321f0fe6b4b214b44e5b4745ce8b4e7968c60830aea8ebb3216825ee843ce1de54079502f156599649c6913a8f05b094b0dec1fb2a643ddf314cd2bacd78a08f31bee18ef1954db281eabc2a70d24492815892e01f6e1ab11767775954aa9da0463ddb2fcf48d1610c2863e8c527ef4fd021358dc41e133221486bb79dfd0db6361aa7be6f1872159e2b89d13f89ad4b1356b551b629da8c074f14b90b733cc7cecbf9d54d270c88c4b379b892b6daf148d308e0e8dffdd7666f71decf7b2c43d588f208945c934f9e0a2c1a395d94bcfe1eb114201f92c3b8d75352181b607c3c6423c743fc40f3defcc46b98003b35eaf005b8bd780975ddea5782b186507e9509498e967aa0467556095644379de26934750bc06e0de8015f29b746a35f441d07559d6b94eaec245770441447b595c0263d45c3b105181dbe906e5a225b79e903d0c90b6ca5dcad974524099cde1d076d736b88da6bb7d3ae79dc5289590cbdec5f0880a6a6cb939ad0f381f08803aa2d689202dd264582c18b343c8f38ad62fd164ef55e979a9f640af30ec3bd9e80dac0b31ae763a60354aecfdd803ee8dec8dd77688c09d5d436739c0ec9385f65110295c2cbcd7ca405c1249d6be63ad38a405dd8f1cb23b2adddf1237e341e238f9b07146ddf92bbda2047b6075c946384de465ee8a6f0489bec4732f72735586ba2c16809d7903eb0bd52a4c9e57c5fa830aafb8a1f3ae8a4c2d5ca5a6bb0b8996f636449a7507fde1446a8afd67a5d2b2c483dea8a4c5c0e975cc0a05089ab1fe2496126ccea7da84de81ca0f868267574d05f5afedb95db3d869067ca9990a24d5e606308d38a2d308dc371bfdd40bcc6c348317ea821e2afbcc6984898a4ead2496988fb3b0692ac8c2aefc3f5c555d4899a98b5ab933c9831c2dfe8de7777e09ef271b0cdf57f3ec5d8f53780d91c72b5fbc35999f1cb962bd9ecc2856e9b79f43ca6572a9f1119273557b3a9d9400bc2d522224a93e4009d47f40f23d2f6235a997de17adea59686dafdf46c581fdcff296ed8ad165c3703e4fcb827c6ff89d9a182506ba908f1bc3210101a412534c5a729f290007b57270fdb67520184c36ce5b0c895b465a5603675cccb9a0b7ad63df2c7bf21e4ff87d760b5975577f2d280ed55b86a15dfd01d181470d76d414f97afce92aea62d78d8de4c6b76b6609457975f259ea7735934a0cb8c28bb8508b31c4a3b78b2ebb8f6a17ea061da6c126509bc127bdd967eaefc6939c6ba64805142eb071a680b52ee13bc0ca91894c60781e146a38b83c05a760e9d55fc530fa4929d588fff1ceacc81f986867a52f9b8dc1237bc33bbb6b84036b0f11b444abacf8afbc9135b0715ae0062704e5c619061929d84e254b9ae0d78fd64ec7ef6b020020a0450186b2334623f438e73ddf98be4541093eef5a736a72b828d7ee63298f5b000001bc343f31ad1f8b00706805ca6b63e5740d693cffa4357d80e9a1c68216c4063129e60a4f186206163f89d1290d1e941a04a14a5b179212b152f3f7bee3d45c3d3853b169fef54598eebe7ab647741007ae94273d0ff7ba09086d1d7c29a3261ab9a299cb6fa2bde466c259e97dd3beda5c7ef3b1d8f2ad3123553e57c83eb77cb7caf7c00b2ebec375b1349e0f1c5025cc6db135ba1d0df3650f7516fd61306aaafada3324d93b2fda8fd8bc38c4e5265aaecf688a152afc70e6f4bfb0dabf593800ff48995d4cf145867d47e47e49952fe60a388df7be9bf2d723fcff65a7eac56705b5169c8c86b5ef15aaaa8dc377926f688926f1db09131edb73e0a94e8b904f8c8d5182a6d49a57f98d3e249fc1fc4c87a7b90eeafdf194ab8f5489a4e736ea87dfc99030bc724890f21485c92ef7c7cd7e8fdf5e54ea7f925c0800605b06bf0abb999d3f74c80b443db7340f61742f78e74420afab25bf865f203f17c758263210b53c1ecdfb6b1bd8acd105cda102f826e2aef90deac2b3c17908cf3cc6fd7c3da417dce05de5a561fce937920c973f7a966bdaa98cb080cc5cbbed4f378e6c8ab95143532b163d171210effdc9cc558c3f796ef48929de83043e811398082723e0ecefdf35ba31ffbc0000000000079a11000000000040435d4655961b7e7f662ff0c27f1e2ff97e430f63eeca680d117dd417fdae0eb46dc9500779a459f537cf2e51bfe7d3e045f9c074ba50b3a349edbc0c98a599b9010020b380ce58ea93f8af3e8339fb6af154d13b70e90899cd733bef1fe00d329e89030000052c94ecfc1b106716d261a10b875bd21999208ba92cfb9a286be626b5a598d39a4f870578743efcc6cf8d0bdc39cd0f7e5c44e49b04d3095e412a553c86e6dde37cf5deeef0d08bab5125472aa51bbe6c63d96a09e97ef61b45efd250e86edc5d94d151dd4336441adf3f9fdcb855602c3c9b6a7279e6d2d8239fcfd6bf32660b3613e831bbf66e233eb79b0a7f5946be894db9a3f01c04f4d6e2bfb61b135a862de24cb47b3cd3f5cf05782a2a7a9eac9f94a835144e103e92103e79fe88ddd5fb4137f27bc898d61211c66be35f753f80f22e6fecec369c9328da9e590766df7acbc69ae8aaa4a7fd5e80d97d8fc3b18ff11ca03fdffcc2e1b693cddd736560b590796d5b9c3010e3c5fac7c30a7201a468c09fb017e3494a786b9c855f376f50ca92853d471af9e96db52fff476615b26d4d81deff4df1524be19e57283c570e490b76a5caeacf4dc9b9741c6c8de798859d329085d34a048bccb53ed522dd1f99677dbf01f5cd8b3a33733ea763c15eefcade43772365ad9635e5a3b4c0cf75bf8fbc75989ebaa4de1d67272d9d4f8382d0d093df4c555aa2f79e7b1afc038710a4024e823e7fc016566f2893796b5eb0f105ef5ddefc57657ad745c369c7c3a166e4d3668d6fd40e597fc267036101b55698735ceab65d8a255ad7e3b3b999176b01738634718894a7808e4d72df7437eb2472090ebff1981cb19e47ae25267c6ef23496ab4984421178f22189e568c26cc2b326c7bdbe2983a20ca6dba96d1d8c9f26e20712e9843fa6fb4ca73dee2fdd1ae76d3a36f2b55bd09b59ca54a989997f4f97bb5fe57f0fd7709409b5e7dffc893867770fe8937442534a34715b6f3b4b7cbe8422cc08aa8c458157eb525b8222a3ee9c02d1a20cb3cd250a29cb844d5c4b70b11a37b6f510154dd3fa2ff35ec3a638cdc97b859ca2bf0558bc20bd89322c6c062656bc2057457c65d0a9ce509f2908bf798c7599f2ea6331af59a6214382526b23267d99ab72d6f957fd35b37e917d53e0cc6e171be794b0b52587cdf535f83a5042e042c4c08016caa66b0c0be3157cc8d6491880884299cb6770b01bdf7c5ef70f2030230c410989bcf9b8594b185bf9700b332dfc7b8b3442b0832a0e5e032fb11ea3e389fd7e4ed90cfc2e1db9aae6e0d5eed4a7eec34850b5f3fed40f1f8608423d5d097c43914e7ea527ccbce26e2887da9553740ab075cfaa22411c60c1a4a0826c5c4b91771b04da1f7d1b1e83145d6f76e49617f11f64493e84d85fd8b31ad950765558de8bfabe8b29c76e5b87d879a1541112d40f2b925d07e3db682334c21487f9f6dd8724439c6f3799a579d6bf3a3196522fe029715be3bd2ea0854d794ecd0f536fe9fd1330447845f933f704f98c9951b65701944d8bbc096a6e5565947a290e1c693564ab9d208ce98a416df8bc1faf22b7efe31976f35ae6260725402548319a0305b93f20cdb370d71eb38ce461d0f493ce48b25581079fb022675f9ba6ea12847b7df93a1fff087dc1f22f9bbd4f202f11e7ec0d68d40fc7d8a17db2936a3583ad56670b3b7fab6175a2432aef7c85f3ebe56c227ab4b961b9fa3b61363ff34bbf675645bdbd9c24b97959ec08393a878fee7e20aa7afa17021b73a5d06118944dc9509aba8197f2f25c87637cf478dc506dca7cb525d2038c5c1c7452a64cae6a7229f52fdc4987905149ffb9aab80c4e6986c9ed8a00186a6c8e1e99ca6ecd7e0a47feac9bd73e84aecc56712b51bd3cb0684baf53ee0b2e52e6ef0bf9bbc6aa560b11858a4417b3cf0aa83b7335426afabe0d1d51991ddb29f7c37ab318a453753d83c5cf953c8e86860702c35d95e570bc1924a051643bdcdbd10200202aa2e9fb3a2c97df6c265263aac1953ffef6fdb83fb6939184d80a0939cc9c17000001bc1fe519b93176bbb281f463a3572b6ece433457eda4f371324485a71fb3c1287ea908b45be59a21e392a8486733df861a8ca4ff2332b24c5416dfa1f2cdf42fafa06b949f532bbab7c938ce376661665b931dcb0ddb78f7df6a2926be2196938a157985739e50d34cb95e76bd7c004d1a7d8ba4ab100f4a5d751b533d02a00265d98db17e3143387c49ec63080a4663f5b604455a6e9c369f1c09709d35cfd69409debfe20cbb39fb1d86223088662ca79cec8f8840611609049979183c355d1e2e97890d01bdd4e64c9d6e5a2662287d773cf3a5fee8c3003e3bf34bc1e8f17125046d2a2128c2ffb8722b874e2ee9a95947c383d3ca906119d496ce0c822950207c512026dc54ea26ea947f59627958101804191f74b57b4b3cd199a94fa3d8371357d60ddd24362218689027677114d9e20573470cc18f0ef82716f959a0b5bb6e14c5e8e455317955ea2ea12dbf7f6f97507903935f12fc66ba1c35b238689a64aca2d9b85181b2507e2cb0f768ccf8a46f6fafbb77d50447fdcf9d58a25b6ef176cba82f0e8627364c2f6219ab98ef68981a5923bc3dc153a75a0bacf8034f8b53fccb2831d9fa7b8141d5d8a42b4956581067d7a4709b36647c4183ab0f65080b969c0cae44e8e313830000000000079a110000000000405030ebb1f0f1af4eaa8529b1cc46445660f3488f71fb68ee86649783777004b7dbe14c6f86c684a8822e025794d919be726a08d4b90dfdf311bb1a11a4e666e3010020b144049e7e92142c136a36e90c46bafe72fa21929e13d9b45acb449a150348760000052c6991ef0652ed188f9421352001fbe6261ba554c4d7e0c727d6c63d50fe3247634ec459b77a9372d693671a06a3eea90299a6e9144b7c02841fb156a7f537c8b5e63ebfa69587c90ba97a00a0205ee27539ac038018317dc4a76e7d4ea56d5d7485d43637a936b08cb792900d2a274432480bd57ea23f5086ddb03a7937e9bef6dd5392f6529fd58db8c5b61e2014da5e96aa5cd478e60ed857b56d1209172a791f308d250318cf6a062106e727bc1fcaa922c5040af41e5d2e8730dac891f1847eb2b4af6f52f545cea60136f2900b50fb849bbc35a825a0f23d8f53476c04b6c81898318c6a4590f082d94404dd24ce677e2e08f7cee594fd83010e6c77256bcaa58a7cb936a8e12b32e8f2ecd55593e6ee547d82566219fa28c50ca1695909be102aec556b119f6ea1ef90c7a47e89a2fd9e8185155e69445dca99f6ab80888b87d1019b41ce1983656561343034b70312a772ce15609fc6745dd8b21d8951c4eaed5cce00512a0a63e03f6893d41cc9b3fa309bf2d6fbb87076119a1d5760d8f62608ab1c9eeacae63ed566f359dffd5857f68382a9feb2c61fc8fe8ccc4e2724ecae759f993ef6cf422936dce06bb1a064f4510bccbc87d55ade90521e0cf3ebd04269aafa2fe88b9125724db893e5e92fc1ba43aadb4c6f22f4752348d774f7488b5b009ad461387e5e67a8dbb40544875829ce06e828f5b875efbe48ddc7d5ec4b5dc5f06f0e9d7aeef430059598d030927c9c7512e5cdd032bc918337ea6052acb88bc33aabf8f344bdee1551909d9e1e789cf8b637b31fbc4f43a6bf423a27c9e21ecf531395c107ba3812ee9e59f24728722488831f5d44d827807cdaad40aca31df5f46d6ff591c88ce33c4a6aab0921350723d4c5bdac4cfb7390fa8bb5ae548a41119a6ca2b7db86349da7dc3360880659377101ed3d8b1ea605e3045c4fb830e1d979db94037d112937151d57185440b8dd989770cf4199eff37fec4e2fb7514e3f197e36c3c5e725ae03c172738e78f0631c412fc79cce17df8fbbe58a43447626ffe70e6aa0576e0b6b64ec7a87060dfee8975c4fa117460c99be33802ac1fb80edf4e5239b7dc6554240cafbd027e4635d321f49cc0cccfb057b0daafa7c28fb3a4f979da4fb8784bdc604a3112a4897a6f2090979ac89a4d78f682b8f089fe32984ed00248d329ab9871c8be3c76d06808fdf183e3b83bf033d3ae5010ffa3a4947e8faf7ca93c2569993bc235cdaa577149daa25316ddadcc46963d17973fdb6ee60e1f478409569f27d671e966b3661d5e9b587f74b2b4e2d97b5e655ed1f5f70282b212f861a6bb7a4f668e25a9390ffd6b287d120b9542103ef62bf556b94aa7ac5f703937835822f3d1089fdac90ed3e15a72994577686ed45efe92e714775bf49508d3e93596ed090e183f065d41d26b555323721a57aaf831a4ae7d50faa8bca61af5ad57c559798ba2723292ba760f75aae4eb9745758d6dc0c04866e4e257d7f656449b01e5c771bcab567496aa0cb15cf3c0b853a096e437aa882d133efc0a48c9cb655e4bb61e450d6bacab8210988675fd37ef275c3544bd4aa7f4d2897519795af6254e9dec40bc7709ec2bb2270ed2b83bfd214572bc4798c50bba3406dac6a1c04d4169a69682ce7bd9ad9a3164e79bb7085d4cdbb0df4bfbe542922c4219ce9e0cf4d8bfe1911211cfb6ebc3468528e57989321c481010311e75735cdecb9c34e10b4df4e200d80121fa6e6de81fb27486e2e40603e4ee4de902f415423a4b7622014af72b6323d8b6a22b7290cc962da63f43e791110e28cf7d12ec87df0e76c608f5e02e7ac058f3729216e1c8f53964273d3a7f82dce4ba655ed0200205d512f1586316ace9a464b5076ac9a80d9274c569e8ac7239dd18ce2d61c8316000001bc295cdb759a4e6116c48f056b65ad4decf4467844d2ff568ebe01febdc7b801cdbd127d7828e121b75cd65dbde5ed15cb23c84488fb4b0bcc6d103250dd81c18044412a8471dca446d82ca309d316fbe23b66e4879520ef248bad3b0d63af0d42188b7404aaf817b2ea852cae5f6b549d0f4231c186ab57ec7dc504f172290c3f73553aa5a2f290824c76d2757fd5d5474671458e08aedb4818bf7b9ac291f5d339c4c693434c1a5ce5cfb288944c5660e877175830dc2f0321bfee93cca83c071d2868eb0594656bf920fd6aa0861b20a674303cf533c1a12e513c40adc2aa9661a007e86d68b6887c2aa4756b5f7a30bb6d519520eea769c03e1cade04286c6c74553431dfb79162b00f9b3998f1b30d25acebef9afce864b3df8d4809b6718b9977863517de1cd9fdd8f2471413bda9f0644d9682603929069796d4a7a09fae9da162d1873fc61a4a79cb34f7b4143091ca9793d66af1b5d607c797ed209496c9367087e7bc688abcec1724781ceb030604f46f1ef30c00b0d7bccf1fcd7f1ea844c3fa2a5dac2e7bc8164aba4f3f0e6c3bed142d4b523363d76942f4839dfa74c99393438f171044239e6cd4ee5fcc00e8263dd732ab208eee25746e33bd52e70c0cad080aab093dc46cb0000000000079a1200000000004006038828545d8ca3017a555b4291a4b79c7c3a5127a143c67d2ed8660641b9b19a063b3603a346981f2d569b04a93e43b95afbe983cc9941d32413a240c669d8010020d6cf43dc053bd184dea12b3fed454d6714bf2707bc48bfe0a8371691cd2ae84a0000052c8396790d8313e899111f5a7bb07fd5ba562b1bf6a6e003a5c465da78e4eadde398bd5cc9196b943e243dc7d07cc720c945e1b1df5115ada20339f15945adad461c3aac8741a6baccf456322767200de54a04483610a0e25c5eaf1b063bc45d39c21d964bd47be53b2d80d24e1e92a99664ed933ed6e33e1752448edb11e57f67707066d0444cb912b6eea016664836d89ab0f9d78e4e19c659a32cf86f91ac81e0a4b81e7ae93882e5bf729aa0bb4c08d7ed32f8fc5e4ebeee0b8c3361597451531d7c7868f460077b3a68b7e386a92ddee28d0c95ea33bbb76688da994ab256314508c5eabeddb82fa014e51cd46069cd00ca55e8fc055ea79a9a847d1cdb689fc2e5791c722fd178ca70b11a018289ab1dbae702105056552cc31ad5a42566298fd10644be94b99f1e871da7cf03bbb2aba25d04d13b7478281191860e0f1cd44ab3bb7fbfda919c163b0cd4e230b3d8be48d7e70d6d0b27fbeb7553b549f9ec985ec2956cb4efe0bfa429a0e3cb88b86540b2934580f3f92abc855dc61740fe27abfd473382a8db503131786181d364e05bfa7fdaa521116103b8af7bce071c894a735a98e8df4ca73e0e54ebbc34b60725c12471372e248b029705aea38cec1304a072eee5a92420d525c067500405edf07505319dce4d284c63b722bc3f8d9a3a18ae8122e8f8c51996c909665a5730b7f88aae7f9a6e2e49cb1989ac4c28c21ec8ff1897a28b1b64d487bd34f16a9565c81e02e69d5051c119da6034a7738e787c715b15c92dd042ca3d8c20c0c0cfa45346d90a0a7dff8b16557b66d304630c5cc1068e7be6c037a318d045f649101f437f20cc0de10ac41f73bfd36330f11a3c4a526800c6ae26f78e7056650291ed145ff06ac7de6857d6e9482a98682ba877c9b0116625760cacf1f23317bd3ad68a93c0617579cf005a6aa2403ab2d11ed591e1a39a6e9bb6cbd437bb244b116f672191ad86b224fc5fbf5d08445cfb3dff83e438d5b870182a0e8b7f2273011d66407c541285a4b980dc7d8e5a2b4147f3e3e28542d1458244b652f5d0bd4983c1226314cabb54146fb43b003453f52de183ea1edbbd54c59ffdde1b0e8ddacd43b52d1d5abe549ad1fa3190a6c61dca9832594165cbbf2f641caec3b7ceb0eac69f88e271f05eb80c016483194dad09a31d9919045d97dc9e52ee58361ded653f43d53c8edca71161763114d3078aee644c1fb02b2d6e1fa53d7f85cacf6691b62186774d5bdbddaaa08b8f07b20635dbbc016f74c1969d526bbc8607082d5cd42d5ea96decd476a2bb51a97d2605857d653c6016b78ebf3278348348a59bd25e57a2deb839eb6c872a87615b528079f7646878efe24e659a667cc24f82bf601cbba8efece2cc93f9e883326a01c503e77f9280c86481a4f20939698fa49ec0be321a01e45c72c26224c0e023e3a9ffeae97bac3db7a8de2d3cf950411bd5ff06358dfd89bea5a920ffa4eff9b667eed4d5dc91e88538738f60ea1247f3ce66a09a417d4bba1699fa2a7ec3326ce450699fe6b108f960f2e8fcdcb9a3357b1269603b2f4d1b9fe791cc716b0bbcc0454a38fadbfa1009b8994148e41b4da4649eb73e4c041f19fca3dcf7ee4ce07417cbe6e9b669512bf86b6050353b118add969e5bb6b169c566e48b6e9c55fc4e0111ab9f3638feb4b96e6320805d6bf5834a6009cbd9b6bab7c9ce3065bb0e19ef17a587417b37f64428c40e7a19d9dc4a3f2a597be62a92ae35cbf6bd6d45347ca7f758e818362d9d5bb61762d0c600e76b799c04d60392b269d349c9d967f1622a78fe2a3fc772cb41437b09b0bc769bf40533645ac2b1deb2d743ad810e319597ef4fe0c5508d67c0020020ac2142453d98a18740c7443f37a4e31db1c6e4806d89bcca7171ecac0ea7ba4b000001bcfef62abe5ac6148a93968244d54238a1347166541dde9101fddeba25ff17a3c0a07947c1a522fcb418acc648514afee91407cfa170e51a390fa8d6b46ec5cd59a7d06e6e181635542e1e374acbd6544d98299ab62baece2f63454b4fa5ada6504ec4d1e149be2d22c7ba466adf66b72a8790d04ad49675afb54d35ee306a42e7a350a5dfbb87442c5cb71cb832f77296b76fe31c91b910a2dc135027eb312cf9f3c5de305c1ba8ba55fc34bca10844bbbb0d69f38edd7926eb094f45fb232f9e4b0fb8bf75529ab0cb567226ca7c9c809f7f2a6ecadf567708a3ef45812239d6cda8e95dc83f33ba656c71bc6aefd3cca49dedff27b3e0faf2e2e230f92173f321d885b26f4ed5e8f67d319ccccef2c1d53c8bff1b2d88f1fdad414feb7e99092b325d1a4d2b2255a45161deaabe851a1dec212a6d07e1ba4719a6d71bce9ad094de0f92382dd0f941c512c55e0805a35f438b9249f73aed2d57f46023691c0396c56b242167da06e5389f838fa9a8b832134c259eaa96ec557c643d261f1413d4fb66b8b7a5e2d3248b3c82ca7d9cbf7d363cdd06a225265c0e360593fa93082ca08a93b141c894a599cb0eb2659b7cdf1549df39fa6a689d6b230c494c017f6572a53d13a069c32179bb7d0000000000079a110000000000405595e53e6ddfd32e092aa5c8c8c87ad80b64ae13bfc1ae9f2f3157a703f7ed04346d2f6c5de951a9e21e9868ed127d29362ff9c47cf57e4f4938948cb51b69870100209ead99dfd43c8b6f07b0e41fd2f66b11a7f0a1541e712075a375b83f1bd74b370000052cce7160af063c5c10caa3466ee1a0ea1a477b8ed53dd7ccaa305afc51da903f39e62f4b0c0b46c0b0e1a2d5216f7f76bfda646e1d7c7e3801f7a95b60ebd049ea22a88d9838106c100abd286e835006e2333630bfcbabe0c71d4f416567c1e392788a2326819f7c4acd43efb0cde3f4d1ecd73c802fcde394025dc5ce43eba8960b247f7e345bc685170534fca816906415cc6f69a466178de3888ed33f2d833da0099880f570ee4a0ce73f4c684dbcc0a460c5d074e413b118931a8c9af115946274b2600db84c43fb2c2825edc76e880ae9a62d2f4059b77237704f416fb5516dac84c35c03e44f033189074e0aaa7b7f732ac38922e6abe20ffd8a83a2847d61dbbd6f4d5cb70c9c17f8d9d82553b84c3cf4eb7879b88ba5c96c4d4853b27ff18500f78847439428636a4eb5d5056af24987d4cbdd1127bf6716b9b47bd55bdb58d9064a25f33ddd94accf492fe2c059ec95b39d9d5a149f3722fc482df5970355facd587ae2786fb13733da7c5e365a03252899b79a659aa4a7fcd889f6a4ade6783692334305a8aa47c1f3303e8c0b560266845f91708440ce252c5db98c59bd106edd0180dd7deaff388cd49b6be9aecded833b2e1d6623a0d28a1468cca9b3a7b2832fee5f4fa7438bd24926dd0e36a1b6b881d3d233f17b7ac851d0463f0891dac0dd3ed18f8c24b181c0c4c32108ff982aa885f65f287c49aa3129ff49d0898089e7416e9cc677ae35e6996673276aa45d22ee172855dac08fd4dbdd0d42040c9a345881c8b1eaa1e32b8af4dcf41750528e92e2b57eed5a983ff62b71bf3717445699d99bcd3378e5179937aee83093a285cddf1d0d3d8a1cbe2920ec06066a6b126a89eca35ad70ce7eeb6e6f4a166c84c1e9a3ef3a93e2eda0ff39263a64a96367fbe5a76c4ae949fd230aede7dc2a16a66ed7951ba27a4ac65f40301d4556e4d8e5b062b5965b82a120f36a794a2d0f061b0696cb3aec06d723e64c50fedb9bc88e4faff9e23d175447ceec92b612ca1fede64fb1cb067585268580dcfa1e800ef1ff0fd9e4ee7fcc4c02f4aa83cbcee6bf6a119bea1387e6384b4c5cc8254b54269b7eb2eb7eb3a8c8b1424702e88ccba19d3692a004cf137961914ea1707b6abb21047f074963c705d30fd754303fa434589768697665e253f69c129f366611522a39fd29b0145a26119d108d9b52b7657f2c079be261728151ca961f1a7d4f350f33966012a1eacf35b5e30619e1c0244dd2403baa9ef6ecf4b6f6d8f6c1c3478f6d6a87e28c531cf2c75f8881c559ccdf22cc58c1fadf2e1cbe3d9e25b1b2e3aa6ece229151aff4227b685c78c7fcac81afa2949e6c567418a549b945b3b9c026e33a2e413acd52c23c18f7eb1dbe12b2f5fd24c89bb672053b09f88529c8710cea9acebc5214cad485c636b8a76d02caf43926a505b3e3cb84fe74e73c6bd06d7676015b61f8a5463e8cfef6c7523dd72472ac7c8435f8d8f298ea9406aa734ff490845831fb81f9501a8d99cdb841601321bc7fa06b9e76bc28a02eb077bf9d1cb17e394face93ff3bf7953317cca326e50ce02883af42668d0d488d558f6b5dd99c031d90c9d6d7a99ff100bb83dc1a7e8f115150206cc75f15b48fe8c3acd984081f833551018a46227a84339f0951a11a9381f8155bd7254f47e8860588b86aa2104afda4463c3a4a3bda4ef83a6721dab6fa0a7bd3664cddefe423770ea16fbf070f3acb260d30d88fa6d7879c0e3d2e398c799c4580bb0eddbac7c1bb0bba1cf065731aee63432d3fe55413d78a98ffa1c48eed153a3be49b71d29ec6a308e4969dc85bc84bf3b0f4387ac4d13c145a9a5098ce492c90e905a4370f05b2b01c390200200acca95a6c00766754216c4af77c52ee84625c89364a0a0342f25647f022615d000001bcb1d597ed2aba87d6a7a90c8c833ed2e9fbb4e2827ec6813ec64bff2e30ef6d67cce88d1f7369ea99203a6786ab0f04165a9056e647d74af7473de5d744a52128d0e3505253e4655ca92125b140925d19245d5b1e07508b7d25c52abc2af48a613ce7abab9771294d10a7d88a4142de11b3cbe568bf58abaac00f30844ab18c2ebb140011817fe4565fb37ba310760f5e77480d72297e17f729b7b3f031181e81c51b0bb843f3a118e9987664a106e8b8e762b762b2eee8d05b4406fa0eaa80e544d684407ad4e73122f7d5208b924dfd9ed304d1cad85124f57ca0cbd400155ea3c115b275577e4881a3d313780081aac5c7ec817d90eb3a251f763d09e35c0b1c3a26fdb1ab08b6c4e70fe3fa5d63e9b5d1d1d843364ff13b107ef46b7a59885c1bfeef17e9fedff7ead1ca789ae7bb69a02c40ed56064138a9e7df95e36940d2846fbd1e174dc29f474530164bf0dd9e0ef8b9818de93789d172d2eecdb478b01e8accf374421ec872f96f26750a4b793bffa8defbb4cfd5cd7853e13672f2a77988816ebf987f3aa73b69bc82422e1dff97b15a72b264bab4c6a105218be18d12116f59c7b2dabbb457aaac9a9a8286747ad6be18719d0bd864115fb48f992ada397f2acac6a2cd587f5f0000000000079a11000000000040513af8ecdef971d1ab471ad0d981c39ae81d547a65ea48da82d55365898454fe3a2852821a7066e15b3fd4b3a8f7267f37f31c5f4eb07182114ab86f2d14d439010020dafef37af7cdb3aad4ddaff95fea05756e500f1ca3bcb1ed8196ace3d1603c0d0000052cd4846651faaf0fb0faee6b60d406b42998f99d5121d07e11f6871d6163460fb6c6669b9ab49865972a0ce7cf270779f04e6e33b54edfaa1c33133f86f7f23a5247fcbd7751b2ad5ff80ad6ac6b90cf16135e0465c8f890466b8b6989db0fa07c2191e1e9423f32e8a8faec9b6752760664a55ad8b2dc44e05951239c11e1a37f75953fc09103103e7b4f577aa9d0d5533f406d4b648475742ee80c98557ba8c44bee5b65c705e8468d696dd899d41ddd7c0df45321806849d2a916760b5c69db2c40b3e543a02c3a5f2b9a1b2ed40c47b46fe306f9e36ca17f54d0824f5f68c4bf41b575e03e178d0892c14d929209d046c282e0549af56422736800e23c1602ca99b018cdecc15ab71fff272efe25660274f5364da1b6bf4ded788ee7256877c4582c07f9a1181a120ce9b33eb3cea2d44afc90b90dcd25a0de7d8f24a8d5777bca21c89daefcfa876f0003f81f9c32f1d55c20de67b68ebcd63ef30072cc2f0380023c9dd60c200a080c001c6eb3d70c7639b4af5dcf42d53bd9bd65b11787fdd397d54f13944d8aa6b9294d7ae5dff4a9bcfc30d52d2ecd10c6517d3cd187eaaf542688808fa6883a436f2c7c45e715f0131ec8c1d3fd574cd166ad1fb9ab121a690da0476f1fc6382ffbf74947895e5a40d7b3c5e8fcb147546243aef9c61405152ae10164bd29cd18f481d00f6843b1dc41c399d2b9aa5a4f9428ece179734b709a449d905a493c20f15654eb9fd567644300ae3a11a74020f51aafbd2dbc965709b0f49479d67a53ec347db0c77d12f169833a02437d67438865aa91e8b77b5aaf609b1ae0c45eb3536f57a70aa8f1131070d57699549b6c3ff49d4aa08ff3b602a9b3c8490aa17d73e23b37344913eec7a0a38c3e3557a53af7cde974d5c5749b9e0564c40ebbcddbaa45ba570e6b983d90474f0bcb2d870c638e12ca596cf5ce7cfa56b78bb21c1866c77c4f88edd1c1e4f007f7421e3b3c4a90d3c4da6108eb385b647b1fe03c0d12ae7ffe7fb7e458db42ea936e3212b39e05c3fb2a9e63cb156c7ca766a1cc47e6d271d0e83669e53986821c2293cd6534c482fb8cb7b2ac2053e9824d2db69875f7524e71c1bdfdcb564c1b070799fd9fed0e725ee29796c858b26738eec1465265e3edd1598a6cba974deb97629ef12e386799a6bff4f89065e4d1f4da8475f433833a5d1245f697ba8a4453f4781b88c05dbf6d80cdee48230422acc738eefef418552f5fb42d8230f6641463ecb45d3d1b65113be8ee07c6bb55295b53290d5c888e93e112e48edf601c300b66b33f592b0dbe39e5c44147573a93be775433134c26e9c331720dcc54ae67c7d5df03ade9473af6ac351d0be5606d33355d2f2fac30c1bcee6cc1aeea391fff3dc461f317efe79b039dde724dd3a23755bd5a3466b47e022b2810ee1594722d15b9b5d028140a3592978e3a34e702e60dd2b7891e93bd155e67b70e623ce122b3954c14b01c877b6870f8eaaf72e48a22f633910cd6801e6f11047bb9d2ac21991bfa9c15101248200b5bd08540a1ec6c5858ef0ef33805406dc95c7d9c04ac6d056185d02c2c3f65af38035f4e90f2303103ec9057ead34b29d6701de082510501b7309aedd78fc68409e2cc3d4a1e3eb2ed7e0e8531e954a084abca99be4118232aa98c3cc3f915ed24fc53984d806ab78707990603dfd558fd980047e0fe3a127639afc2f647c112955d17d3058db0a141d6f6875e82cfe6122d2a8ee6cb3f2768ce1c4fa99fdcc6f4f22142479fc6b0f220d648b119b3d021c2a371ae25d9c8f5474d6d4288788e20ef6d3207c1433a358c4cdb3652d8f470b1fdf88e63f44b4176e4e96b232bd217d0c84f88f6c5370200205db5e51c31d994d20e9273b78bb23f4b5c9008bfa4d2fa8d7ddd6a00bc7c4902000001bca7aed06c8308d30bbb008cc65d4e89a44bfde0b481fc4d46d9cf97fec1ecc79e66ef369667d87ab01e6af232e74aa7e4ff941867b0570ef65270893b3dc7d432325e4afe67d70c9785f64b941ca720b73299bd42721c8e4d0beb6a6f2957ab840a0b4157125cac5cf2dc84fe684579fd3c7191787d6485115d23ed334af57ce1d310784afe328f789ff001d652de000dcca1f1d1a8356ee5f72151f38481783e5429b6b80deb29dac144cf38d224429b6c073ff0eac9acfaf524d24667208d8b159e3468e9c7b37233b13fdc6e6d0a6e3458127e4cb1dbf2f7f9400390fc4b7568010c468392c3f2f16f3759d64de56bc1c438cd5766625c2b7c64299934bc336a2a81167c3990e245a9c3621683226c1bb8b0e5639321012184c202af2676dfb121eec2e4f2b64f189e13f3cb512e88af4bd8987f12547a493de08f90474c9db039baef67aa203e81bb424eb648c5dcae10fb76a79835ce8de3ce99aeb4ab10b9a3d83d3fc8f89953da518baead2a63251cb8c409af3df43dd99f88e8ca958c8b97dcf2f188047b5937e8fd947204ebb44cdeb5d0542b658e0a726f0d2b1a7f4faa41447d250cd551e33d7863af583ecfb3abebc484c2f9d7ee3eab6138a2d1720bf553cc215cbc2f153d560000000000079a11000000000040d0180e49ed15ebfb6ca120dc1a136db9a96de0c0b76d2d355def6df1cc3cb0605fb5d35f9c2b870c71246b27c12fc2c1df8ca47f69ca24df34b6a49d0bee3bd5010020142b771da64d045274be8682068c03da3b9bff74a3470aec40fb2d021a47e4360000052ceda6091b5f17df081c7deda3e717e0b277b76f470ed8336959a4125506546ee7dc02ed2d9b5b78455c875395cc58a5bac183ef9934ceb02718eb868c004d64c6fafa0ade64e52fd767e32b48c51defe0b692c18660507212203bacd6eca2782eff7d2e366ae9ac0b8be08b7628d26548a47c1c5e43fd36a3ec47a90c905abb21f460bba6e6d89141ad99b1b95edf23dcd469cc02a9547ae5803a3b04421e3d9edcedb63c21b4105d4e61c08a8d6c0de24267e5cb9d19198cd9c2ec0876edb0ade8d3ce192e5f35c4f1d7d5f636c4c1e1d03a6929215199e6cf5da0e98f22f69c8c3b10ae411ec85c846d1b68cd776a440ead918556e50d84d965da77f8f58a19c13a702393e736ca98c8a753561ef2cec360a5d5b6164e64dfd20335ca427e2604832133762111c8f475f960c7980e088ece6c86f02b3b9f7aed0b161bb0885d5b727bcc1a5b2e3e3142bef8db9bab1333ba0f4d1ed3ff6d605ebdc4d7882f54ffe299f9290ca134926ed77e8175c4d94f9accbaf2a48023049b10b5c67c5c1c7b0aaa3c199afabd9ef586adb9032f26dca779721ed9f692072f3bbf9dc242e368292c5a6ec471727ccd18085107280a977c152a0b86a058805d251d756f1e76c9fb19f10f6a81fcb42ab1b83bc41b092e55b2c68233dd508c191b7c6f806cd7f1bfad625acaa9e9a508f6e4c4e55e463edbc9a4f615a0fbc11297ccb2e852aa0e738d1f5a44e826d609a1bd86c4edfd1a435489c044861fcb82b0fa41cfd0d0aa616180547a037bbe909e9e0a1ceb09f592f6816dd77eeb6af3a090369e36ca720f6ee565b8821357f89dcc73771607387469e85579930b66eccc55305525cf4c980da0f6b324f64ab05438a7d9e66e3fee5146599d78f9f704de3d7ea5e7b098f6866355417752801edcc021dd2406bfcc2212dc2175e020c9d7e0a79323f51fa46e3a6fe443a50106c8e7b7b3cfa7ab13c258e9bffccfabec88429d3f1d7d1938ae58c209215958301c4c375d85ce7328ed7bd09adc3d106787413b144652db9297d2a033fe0d9306db8c991ba278996baf53bb291fc691a157461ea8c0df894814da7d48029b4da60fd761f1f6e2c1c9c2eade428215126197236c6bf51de4945244a7e381a3179030ed2f57ff1e3f59f1fb721f47b1600c4b250ee1857fe955903d7b88ec25ec8f92d9d37e8c81d97403b1f3f1d00ec539280bcf54f1cce2e3a6569a53cee841c74f4a62a566105700f4f0231b3294c7e41574be3dce0cbf6afc1c1a7e26643c688f3d5de57aecf96ce5546ac6d252046541da6284672ee5b6534ba4466ee01a21f82c40645589290a3f113816958bab0c981d4c8651e79c9f957cf868c0681f4e52323d736070ff15d86396a6c2ded695357a175e329c954617d283727df97dd84856c002961f0b3a4665776ecbff7c9c27b5c991d9eac5610f4b4d8d9aaa772ee0f51b8199d74dcd3cc5e9dcf181a615ad009db9498bd6bb7f2ff8981fdf5fce167262e6bfc73ade81f029cc89f95407e72181ce463ff4c5fb8bc055b6a49da785dcd7b60f57e9d6f387f35ec0edc9446b97412e86e038c8764d7927e645a45fe75042c979cc1787c748c96115912737fc3e9440b0f9b99766f759867c023bd158dd3516111692b7ed253c0e4219766b758344aecdfaa5f1f6cc72ace40056b96f6f5b1564562fa7d5138c6ada860e5f5e07587a283c7d85f34144fdb8353f6ebd13d7d024758bafcaba716a405e1edf1ced9058240585969c9e0e3fe2a786b468faac3abfb522561a5aacbaf1c106224344fed5ff8c36dd1aecaed3aa513b132dd25979cd83b3f87e31cd539a5b888e6b08a431c39a9d26a6775f41f57fc7b4f4a90200209170d9c6c11daaa3493f4458dac9f641ce923f5eee8b9302fc4b1fc46ebd3106000001bc651f249e9336c9f833d965fa0cba22337baa4697ab5d03ef74846bff47926c807a52b5072671204287ffdeb0de8200bdb11f9997350568acc8632fba3422c85902a3302edeaa7903f72ce0b5febde74d12e28fef69567a5316e2764e7191bfc0c04414f170f6d47acdae5b229493b5576a4655f65a82a34d5c56071991a32bbb83b03a4f2a2d8202e08a73cbf1b16896a2fd71123e103d95b4cccd1742a4b24c9404551eb6b530a3619f295d0c922602936f91b8d248ebe6700f6d1c70f2e127a37b8cf3414d0fa94773bae8589fae05474f096e1df7e6e2535a81dcf63902d99a3e50c3ec165b9629862f62ea70c4a6dc3064acb86d047290c4a6d6dff061bc50c6dc292412878a2b823d19d6485de406fcc8962685e57228a85a6549864676487bfbee0320bde76bfaaa9ee18a7b38a5998bdaedc2174a910f0722cf91dcb92a16049e6573d999ce0b08584e42d5c84a9da6415a86a85002ba1fc30fab5bbfd752b0809baa44846fcf8fdbf3bf9d75bb4a8f5d00ecce1177538793a8d8e0b03d4bdb809eaf1302018311c4661e40fc2b2eb831b8cc4d9e279d1fbc173b711b54fd25fa7c7e44c2d7faacc3a47b26de41bc79891658827197b863966ac5f45efc2aebaada41881b5e978eb70000000000079a12000000000040c797d6f920ffab0e0d101703de5a4d44f790df35db1c886416c784485f80fd499398cc5ee2df84f61f880772d0e02c5d9a040f91bba0ed3dc4f7e106b8bcdc350100202a02a96c44ad1e2ab2820018da178a7ca5251bd58a7980e3c9d2c4dcd6d6857b0000052cbf5f9e5e8115d5d81459d9ebd150dce1a52a7f70abd8e51b6c06da3b902cb7fb6f8ef0dc060cc42a3a4734f66c19d3259e32ca5d9648f165ef070671b84099d8ac95e88b7b9cd9f1cc12181d42ec637d3e22624b0e84ba4e8ed6b1f750b1558a962b64dd3efc1452d1d9ac4d0d2af1e8bd3a8c9a8a391ca6d00898768f49f6b7136da72918019046ec830ce748a2ce712047e6e3c0f321166753a9bd9c88410ca72c5d60233b2568699cefbb9865ede53fbafab3dd729298d576e45a5af99a85ff4535f89275a31fdbc58b1d03ffe05ea3b407a7c9b9b75dcbc9cc1f6bd1b1313cf88e8f81d90afb082fed5b927b64df13dde8e4bb84806b6d27faeba0b665b477dc5da20528b7bce00dff3df635ec816c5db8269a1ecfa5a5d4697160b76e7a308c65cfa9bf767fa665df922d7da874acb19f5b5e8caaf1e92d60d85c953179cb68ab0506f7a47a608a53238a1f54fd8b01aa5ded5d5c3c1ba79a01d66393437cd7e64b61e696789ebadb5c05ee81a296f1ab2a335f1e8d52164c110b12052b952a2728521efd7cc42600b1ee82dccc4fc1d5b7fcf7e7105607d25eeab40587eb303a2f194c3341675a9b62d7f7bb62c4ed0d2a8344ac39ef34868f24da80842f26f30b86029919de7c14669baf28e3523a1edc03ea5e2fd112d6a42ab3cceba41887bf62e440e86d7aa3bf57929bbe01a82fee05f29384d08a6f425a23435045d175d54a3b219994de3d831c736f1fbe387b83cf2f705d5e2af563e3b6a2d287dc669d936aefdbc6ccd2eddbc195e31f1fb28e63e18eddc5e92ad9d9c301c83d852ff9a11f68f2527471f92eaabdcb1dc9ab5d2ca54b8c26b3a7276955d98fd1228aeb6ce5bcaae5df980d8cfc813262a84191d2e900141ba3e877cfce7362bbbfe81ce1c7317d6c1b9cb83feeb079c9cc2bda32f87f7e259fbd8afb9e990dd2dd03520904876aff6ee10094493d3348b986065f53d128c15df91e69af40af5bdfbe3939c2ce7573b8419478dde24631b7b8107047c665f05611a8cedde5a27a15974d26bbe4602106ca11048ed426ca90022de7756254340d7a94f5e054d743720fff73ccce2e554fdd801a0a8dc37bab1da51339939cea5fdb634f17a47078107a68cbd1728511b4c51267991e0bedcb5ecbe6dd5e3994937552ddc11ac70297c0fc2ec42163e141f7871c03cfc0b72614f22b515cb2aeff1025f736460791a4bf77654020788fa3bc0734e6186cc08f586e9c4a5be382af597a6b24995d231b70c4059ad68107d5f42dd9b0c8c357293f71067c1a0e8d65b936b4e297ee0edafda5d49cc10849cf70a83ad69b673475e48b6ba323140b3b2a14fa66261829e3f7815cc5271b470cfda2e9824fa311565a4c0810c0c985266e1ebfe970f0dfdce24252c4cfd068c4537128aac6a6043d1bc04c62375cdd78d13a352ef3c3640c12d299bc193ae806f63ba1b3e4c2dec688d9a7c076e37c46e5248ad939f1001f338a6eb27cd92d107f12e79bc73bfe5981a61ad02d10ca71f1ccc159f3c59f38d68c5a3b024d6089411c3753e262737f3ca97bdf827aeefcba2ee9ca15f4238a90b9c6ef5bcc9f785f275c4671896b92dd1e3b8cf78b6250e7be67cdc2b3070b5e9a0ba2211af9782cd755fb95e1aad57412e2bbf75c3998258da728ca1616f46d2ebdcb511d80b626d7f0373cadefa443ee0593a61ab32bf1e5da57ec9bb73792c9df6fc442b33c6d1c2fdf278252a7f09ae89a0ac8b716e2dd8afb378d4b4f22a720f7d5f7caada720776e62debeca76f40ed291de77b9f4f41eb27ebcbdd056c1f619c8341b793e424bcba08e4e88e0a843698ac3d33debd256519defe01c9a75fa354fb22c621f07020020e7a756d864f93a7fa26d26aa475d2c557b74b2e1db3764d060d7c48eb0b77e10000001bce335e37dbb737282308f9750130258bf5ea0f49a7a92a8ea68a3913c5f39b0d8661d4eca1754f8f074d20dc9929ba57d13d8ae59b9f18c4d26cfae8c477d93ac7755c790a22b61b2dc10a84cf74460340795c0cf9fbaa4ad9f8d26a0d5233afb45655f76147b11c863c50b2b3a30e5a606dd8454866a71f8dc3c2a7fae97cb24fba19fc0941fb60fc1de49b584ccef0fd35096278c55f77a16a46212498839194cee1336d3afe20233df5721afab4809b5df007731fcf49ba780aecee8901d0d0fd2b7d8c46b5e936637dcabc596158ad1f25f2087fc31455023cafe6fe62ac83aafe5448e3f948053466389cb87825dedf278c793a3fdaa75f8a7e5d3b6629d5e6415c3712f3ad1d6e0e0cc312044e9b357f3b62bba31c0f5678399b8b159531b630c939687b35f8f968e7a5cfd1a78412b7bbe6b78202b7c684e563cd0f458e8544253bcbe415aaeae36ad5eb622f100d350d1da654c10274b33c6674faf7d30f72b8d42bdd08b8bc74c5e540af1a18f54f650e1b8b40d4b5824156004668d606fd2c2de5c37272971c89069dc2ba78aad9866734f325357e8bee3bcc8e3b6a88670674b35aa2c9b0b1d6b3ea2619b6c9682f0e23e891620d8b0316fce5d51df9eddb1ad0c5c81ebd03de60000000000079a1100000000004083930bfa0dcc453773b7d788b142589d946e01d86d02392e1b4ec006336e1923643b6a5ae1ce1f2397e023caa95cc0449b8b9f7c65c83770a112ccfc912c1197010020b9733311773227cebbe02caeb1904e40a0b7e14da5ca38cb0e284eb408887e0e0000052cff669c8644eab4eb2cbf5e0cfabe66dac6e9bcb349aa902a7356d6925b9d9e01066c8bfb1debc20df86464e17e4287d031cc54eea6079a432ac34c0004f107518dc49cb1b5554c30c8db251a233df89e64a31eaba20edea75e9e4f0f23b1a36cb58e2c37a0fd132b3a3d3e071d02e48b9eff9f935d204b9d4e034c88317be3e0927c4d08dd910530f8e037b2b8fd839d54f23ab131793161a5a87f8291abbe268779ebcd9cd98247fc02771f5c97dfbbb9ead4a8b139a1980d65be14a7b6a4d0a0487b458f269418af1f453b4d4f06e623f570bcee96172a764a0f82d0343f7509ca87bd3524d117efe07b5edcf68224bb2da7f23ea27f97c0b18e61b17a337a790204ba7ec1e41509a28dc1cde49bb295ac19b520efced17174b56633232acd11a8f7a59adc68ac08f74bc99b7a5c41f2bfe1e581fb7446a6fd774b9f187dfd14ef6e56321751eb1fdf5a590cfcc9c0472f112351bd5ec4a7d2a277ec2e2d0215742869528613db94d3973180eed428f13d16036aabca6dd95f5c95be91cd22ecc1f5cf9a530090e67a9e0d63d0eb0002c48d5cce7aabffc08a234df11d1d75a37f28163512fa634492b5c4f9994c4c06656960d9499b103fad62cac7b16532609e4e80013eaeeef9ff51a1d3c35228e36ad8e34471229a240714aa7d18c374e786f7d62210a1750daaedaf7ba4b5b26749e435e1b0108773f81968d38ad1d9d88ba7466d90a4722e5c239d5bd30d782e96e41960248a10d03cd2608cf3941a9a89f0dcea39c9856f14b53ce1c671873cf17218629f6e5e83f14066ea21fb11f03ca0234e02b2095c7b4f3d787e92ab3b9eb2382e41f0f5fe12047f95e443326fa53a89fda8a646bbadfae0d2a9e0c12f2559d96c7eb8a050cb0731fd3ca46b5afe9e7b7f6b6fe0942060b7cac5afaa3e508c1af59e9d55cc083eecf3f850e411a94c13229561b67e79d418cc1970f4a793373128055e736a206ed2325f81482882b3ec6d3efc048dcdf608807f58787b0c27ecfbf0834e321ec84691efc3781e99520e9c3b76ed10276be0de7f17539613ac4fc69f891308475358c57ed48c000474c7530cd493a65eb3be4259a9ce77c59af7786e08b5f4e60b96e6179ffc555b5fb076f0e09840fb71488a43c5fd81932d3ae400bf2323d664699b7d7dbe54345e19208939b66907809bae1fc90cab2f591fee9da7b572c51e7554b08f846469e1a99d75d5c2c5346ee997e79ec7e871f36b64c4b4ca81d4ee0407f549f1411b0e6d62d5d5bb8bd58244ca5554de58755ee3b3e0bc70e6c2e3fa0c3c0e6b96bd241a124ccbaa35fc9b75f05b455721e34556b1610b3616303ce175b826dfdbd7a90438fe88ae2baec377e7ee657591846cbb86db359e3f6aa0d13981fed8de2d1ee2760f02e0ba108d867f0e9e778aca927fdea2daaaf2ba595ac5d935ac258b6f86382874590c1c887150629254b19d1798cfde1b2165d9f416e332a5e279f5c860e21ec336d3885aabd7215e79c843f3b5e793f1c6c046094e44c28302ffa4a358374d9e3003413abfdaa74666282f7004f738f60f7b1dec778260ef7f6f68901925aa35cadd21b865e20592441712d0bf48f23a2ca008657d5cc02eaed4f9be11da0bd5a19c637a8f51ecf6f3da0423932ad2f6d48537d688b867b8e6579a686cab124a8de4534ddd26944c454a36551f2c77b1471e89130ac324068e7d090be214478a01f29c89aebb22a6ee09a6e819f3b2dca21276d9803f10e6414ba77708fe98e7a0ecaf6292605ff069c6f47acf1b51c67e1bca91867c80a95de14a38960fa6f84d8481ca1d24151b110d35b3c60c419d50a41b97670640244cf1d944f1af6f5e1b7e30c49e020020acbd5e4e3e8e0e530f8d995e21677e1fd44323709e59ba13a39f8558ff2ffd11000001bc3e9fdd10a8a628c37ca61a01378387ed33ef0d1e11b09cae0bb9e41ccbe3b88306e3cb9719ceb98adf844ff723ddf3e54b83b0c6bb9c6090a08012c193bcf94ccd36d39db8778cfc602978aa61dd1b7e1a6a7ceaa3881c9596d9b961181b324317a6655ac4ad4b65e747b57a00fe371ad9f07766ba7f7b7d6901b148bcc6859c397c41f4e09c69f96affe4d077dcdf0406c736b26214eb304cd7324fb4d75c6f4676015e0cad178c4529ec29a731dee10aab729d6db98351a990be9e2765f888bf92fb5a73127ad8f44c35b48035c456bbd27b40cafc9be6984ad248cbff24c8c4f7d358d0ed3d00c650fc79cb6dbff92e79b10eec3090760db7654843acfa26966a56c75ef02dcc9b130bbd1a3477f9047c98b6699244be8ec164692d800d40f84a456e7ba21b404fa4122d41b0cb12c95a16e308bcb1034c9c7f64b417b1b1e261f5ef218fa3a46563b6628a468bb58c822a0ada4dd953b8c0dc875780c6a0a13fec8d45487b1d588115c34c122cacba0d3ad4cf940aacebe6458d0d6bf4bb9da3705dd2d729c4e8d84f3f29c6ad4c6e73f2080d1e4d82e1ad663f04b9411dffca75b0f4eedefc907c4117daa5b01301c76d5837c39a88a3343a3b7526b0f91818006ae914e27ef5a279830000000000079a11000000000040f6b55c76054ccca440bb8d290f79a7ce4cbbd969fd54d3e82df783f2c6284b8bc12231f02c6384f53fc07b3a663076088b48d50b749db3e15f539514bc98760d010020ec0d3d8152ddb5114a65457c103fa89cf613fa29ae0f6534838899ed11c37d550000052c82e1868540cbba687c25590ac4ad345f9ae20be09febf9faf8a5ed2428ffaf4f07ffd6a9bbb1054cc7b3607c5d756cc4f03ebbf8923e3bcf2c0ce3483665f671845e4d139b48e87ec37b5ba30508ff3f40e77ed0bf94b15e6f3f5f644610147c048a592d74ddb9f1b44518d219696c1642731cbea1186667d9b4963e444bb1875720102ccfc281ab9309a3334db4986bf0744ef7c57906685c307fde24cec3d754664d93570e79cdf4d6ff063ffd2f62404d106f3b2b0b720c8f1b4ac4bb9dd601323deb25336abf94e87b8c7abd8aa701242858ff2590faf3d6a36a3e9119ea7a7de43aba05e783dc2882539d693712f5cde7e2df2e34cd5c801d2a32c08a4cca239d8ab4b6812824db5f1e7e900faa4ce51aba4ea390bbacb138f74dc248b6344712fbf541bb115db0190e9e5068b0b271893341b592f4181e593e413c5c4463ff89504975ee820a53089fa4561c9049df376bfb0fd15d7704e38db310a500e36b3fc852ba060072f0cb42502f31ef37d07ba562578f67bab7c45946b725f3a9033290dc7041b7ad66ca57efbd4caf58f02f62a72fef25a4f6dba34efc9fc61cf56a730d21502e6b4bf9e18812c44aed17431bc9439d1f1a48076668b8ec4323f82cb1fb763f01055453f50a7d6a4c464a051dfc88aab913419b35dc9a6d409ec0ffa3612178baf0e43d8c25eb4f5cbf13f5eb3913152d7dcceb76b21acbde9ef84bb934339cd30a5687a878047f57f04529523082222e1bbed97b0a4325f4d70ce2f104ff06be1ed8a92f0793ee3cee2c22cdb01335bc4d08017f1e7f2f80dea0438d03946ed1866e97494e501bb2cc6e9a289f3fcc434d19435bf45bea99850d00790d656130136783ee542481038085d4888a3d2f930fcd214ca822fb7f95b7e8c0437e9804bf8b6a910416a4f3ac72a5170637520e96b0c22dab99c04ec7ce4885f54e77fee715adb54d090c4af7f1a44a413323e0fb433c9d4d6769829578f9c953be95b90d2173f9e61822145ae8f7bd5d127fc9224bf3942a88072d32ab8523697530fc40dfd53888471a4d32b129a52b007bd67795e5a3dbba56a319df1c4116bcedc5723046be00e12f1eeb7b7b0cccc1fb26355ec104bbdc1e509f3942c8512e4347930cef6054bb395f577a65e4d9447ba74fd49729da93cebbc1daa5fbd42f6236c854d79d348d40383eedb2087e43b06d10f5e921d7fc4e4caec1fbf9223d99ff2e1503f719ea2077b55b59edc93c13d87285f5623d2f3674e5504adc4cbf7763e36e6c8898ca433163dfbf4d6789d8d2e21229f810d7821204f348776cb029b7fd48ace8c9e9323912c2f256c9e58d5f91bb14a4e71c4c3c4c0b5bdb6d0a88c8c026825e3d6d742365f53eb3e7bdae5ac39dddbc04306fb07709c23b345216d5457fc62897253e7dc06c9ae01cc752ed1ebdf14319b9861e094763105ac15d0ce012d699c524187054b1b4bccb9c5b7d04b2e8ea2bf98c815de3c4f75326fc0dd16782693647354fec70f3e0d7bb18c645eb35eff07607bd0349b534c094f06c9299398c97269952a26fe0073d80003c871c967becec345cd22f2712e1769d5251e44306e322d66e622ba8f366cd8c62b71a3b5ccd2c63246d68068b54fd209be22cd3dc474170c73b6ae8ca7596452e43e55ab64f27b9c6f2998915531bf65214fb1c7845f30a93e505f224be46f7c56509bf2cae88d4f6492866a2436c73c4afd4c8a51463bf06d2c97d77e780246184ca7e7d9077d4aac5f24da2b714eb8244b1cc89bbc7b1f587f4ad33e142d00652702746ccab5fec301600a04d644a38e62846ac73e095e53ba8d1c8d925dacc5f70b73dd9a874c3ae165e8564c02e26caea99e1020020e5ea6f7e91aa66c6e43c1f95284e88bcfaa931f881815040c2947e52e93fbc25000001bcc88245040b73d348c07f8f952ce069660fa86944557ec1b06b845f48cf345ca029e118a319d2411a596e19fbfc4f92d73850e421623ebb6d04eb64cecb91ae6f2fdb15e61735c582699449ac6c0b7325b531b6fcc1b59e60450ea8d0449b11914c30c8f1e59eb54528bd9ad6f10c3a2a88fe72d846fcd35f7482a2ec356b0a28ad7b11748e6eec628c494f016d8c34bc9d6125b8379b1082b65c0679a7a821acbaf415ac06647ad24fab7813cfa348c1f267392902720d91665a12a0e179aff3816eb8d5c87cd44d3a8c7f3b7f36816a403baa058ba24f5d9fe22ad2a0cf3df33070ebbfbe997fefb6b3bc58b8a8881486c368ab8a5d8b557e4b9a3231f0f76c60c8004b6a7d5376f2a580aaf18e705e9892e80890e5601a2a3b076bdf43b0c0cd04384e5a80c4fa418e5912a9cf31562bc1b5f839febc4bcddc170a883fec4c33aedd33bac4a404df113a821b35f933e1adbed60cd02d3ff80f8242e9c8d6aeafa248a857b59828e602829b620fa878f2526e254dcc9e37808cc9c5c437dd16936065849debf030477ad588914d6be2013debebc0ee52ab6a28a5c80b70d35298e23a730faa5abd75a3ea63768ff27a32494c5918e154958b4cd2087b26e5f8998d87df4be0063272f9a4b80000000000079a12000000000040c1971c149c261ac2cac57ec8227e37ff3f36ee33d65ac3ac1a3126d9f6c43ac2363b363db5c6e4b85fcf3a60596d5a1144919a7a1422ffed55fd22b46dafbb26010020b6b7c0045e6ffd4be63182c9eaac343b504f58ad44d358add38b29109df807560000052c5b64c0247f98e87acaf0aadb252541e1c6f7b00cc3f5755d41e66f06032e450223daad25acb9285f50f9a83c18eb4d09fec614dcd0aa0a4f03612aadad400050d75c42650f9084f0d5f14160fac6c586ebd445702cf4380cf73f0eb8c76cf06f1f4faac298249c6940e6ef523758fbd459b160a12a2df836a4bbbfb4451e71fc77aa7d6712a2cd791dc7bda82b61fd870f51afa9b3908b1c06e4e11d43c153cfb5f4d97ea5444fb23bdc9c5681abe39810172a87bc06de48850b2bfec0ae97a321ac6a164bb808c4d5a5e37ea86ff5cc32e7a34e033673c9ec97633bc14ef66541e25bbd8585f6379c42981c218f8e95ba131861c65b7a32a3b52b28425f3d43a7638f8b2fe09076cacac7edbad7f832f04078cb17d5e859343756707ef4d7c5a21abe724c7f5a885fc89b7b79d201b4ae9b77d137a44bec26560af8351bbc80eb2c1ff404989644b31e51ee6dc94edb7e786bd866e0cb3c800d4b36712c63d7f032049f8acd8f6315699ded122e23404b1b6d78e170ffbfce91af2486894434eb9fc06e092c6541ff977bd5915a3172bc6a8ee9d2e3644b71e679bcbb8ab57f0ef5376e2755f54a67eaa1e02af219c4088e735bc73b26188b23b5ca0468d030f9abd0c24e0393a5b2cc62b83839f7b0fbb326e8ccfa8f4718381eb2c34276d95a165f3aef2752efc65b28e6723f5d77d8205c27312ff2b900dc4d2bd8146ed57fa61ce77706e5530ce2cb171353e9a95e7909be119fce5d2b0f7525f078a021682dbb26ba06e785b2c7d648d67f2df4d2392772b706be96168c8d8178dbef1352f51c28071804e9292d5c689be60452ebcfbc5d2269baaf7380e191b2b9410040407dd9b61cc636ed3573583e5ade5094d6af6933d58c0d01d80c960d4ca5ccbffb9aceae824feb4005985f742be1d8ff21ef7e3ad814060333930a57fe5c00d864c840b10f5fb8aef8408209bfa992adb181d49f509c7479380145766aa5bfbcdaf32166cd9f1ce6b6bf098339e64d15357b3e259c2c4df88d74d93d5b57b7ea8059303fc84db3b99eb33944bbd071c7839a4b6c06ec9742b66c670941978ae10bddf745e1f3428e8180014f32b7a2c3909a18ab53d67ccb6744c43d3cf4ca3b166365dba65e34b24551f69901474a1048ffd23988a4bd67a9ab9aae485b8bda69787fa393d8604fdd347bf2f03fa6582e951ce791f89598623a1d2d7cd7dcba466ca0524bef37525786987044569708e9bfbcc08ddef02e50eb8c16335bb73e0eb8d153082d8d3172eee5e6a00d15e5cae9b18c3aeca361533c71f28cc66851efed7214af2577a6c9fce2038400517e0135ff611ad8897981d2262589a1216101267373b3f214c3d20b7540aebc5b697c50e05165ea03c00c5c0caf336c803f2c1d529a0d58a4d9f0d4a6f442e66be730a53e7d326b030ac1f084160f870735caff67b77ea420b57e0c5a8807b56fc71d3b2a3bacc3c55b460d4531e71b1ffc1470da572094a48ae5cc40d5f2d76efb8cb9f53afd416e8022ce89981e2dea58f43b929e355f92d6d2e388dd39a0338a21babfc205571be82239ddaa803c4bb302d4d2e5de241cdfd0e87897d571d6a7d2b2816abea97db2740bc8e66638ee36efa8095f7e00ef38dd4a1ef36a55e80b88bb2bef52ac588231b3756137c20b5218346e5b745de7f4c749a53a4d76b00471720fdbb160a688519afb49f80e9e572fe6f56bbe0e2fc36d93ca890f3a0d008c30ca230f1bee9bebae36b2987f7f4e093d33c1656b6f9a127d7df546f75bcb64122603f922e1379053fab3423ce6c4b7d50669b6ba5b7c8946b8ef7917cc561f928c5e3940560496272c3648dded781c3c6fd67d34c23181788a0200204cb1538db9587f04ae49530ab93ebe721982075408fc0f72d38f00202bb2de75000001bc831840864f6be3cb07f7f284d9773d90cdabf1bde0385aafa80da340554ec20df923198409c3314f8c58b4bc2dae9c84af61fa37adf2dbd0206af3038f1289dc177530cca6b72255891b632841915ac8e0549c1dd01d9ba3d8d54aa31fc8a6e1aec460fdba1586afbd67423ba93186cc0dea20cc5010c6fa1f6510723c8d834d5a8baaf7cca00c8cf116b04a434b6cb2b4e6b155f84b9f2372c6e59df63e0792d6b5e3647e44047a55840819fee8b6caf698fdc46d2dbae28907321975b3e52de2201952124cfac43cb44d9717e41ea2dc7c0852797f0c5b5bccf345ee3874bc43864978342f3ed014552793e6b118198aa9d747e3c8ac49b124202199622ce0324801ee3611d29e017a2a81872ab58b6338feec4ba9a2fe23f46c2f393bed820b8cda5cc2f07d7a091d8c29f713719ba5e71384cb8dbd2d4abe8910a8e3802c4730d4637cc69cb8c6e80eb725283290ec2e1017e8d5a09027eff283f13123ec87ef01c52d617d8eda42503c81af5ddc485624568789ef87b316c9f181ba6c1173d51238b10f4f20b7e956109c693711b4c63f32711270af877aacbb0e210a722f264eee4f01782308f4be8096cfd67bd98ad2fab34066b01b2b591d7d9b51b49c6320c54730b8896dbe7f2a0000000000079a1200000000004063f5a3ebd7e4d4defa0f3e50a4fa700d104835d482a03553be449b70a255bc7dd928d6bf4f860f4a235e147a8fd200c02e29d1a79cb6b843325d1a45dbc8ee1b01002003a85749bb63267ef35e0b65b0e362f05fa34439c582bedcf1809036929eb6640000052cf602fd646591d2cf49419d1c9750b16d17f4243858c4274915ae9f17698b47e8e952cef1c079b9d23a59e66c463ca72d8877b9097e7f2cc95df3f75d8f1c1e56ae099de37178956bad4719bf96a6e962368892eff2e1c7b533007ad137c88a0deec9a79add31c82fd9a7e1db6da21e0a44ac45510ef39299ced95b2487986939945e7ac185d8504a9eecdb71988f717758a2d5f91a614cbca6094cdedf43654f28aed19a72ad5ebce901681bed7b4491bac5738aa26b9745bbed9ac1714654e1f10fc7edb24ada40214566c6c5eb69eef662ef330f05bb47317c8b3f9a475fd3b855114eab87bcec3b9f35b816bbfee4451f025bf9187b4a2b977016203a2e50945d7fc1c1fa8b5a442f6fec2cb626ee8cf37a5ea819a85b9b8678b4a22e4ad867b62cba10de538fbb4d610ccdd66564dee634872d7aa0e90a70bb922f0e0a9990599d14047ebdb7c6ecef48a387b4cdd71409191e7a5013f08e4100a91bc9da46597e636d1db8e40dbcf980d2f6f6df9bbf700091f4775f9d8eb6bdfb95ada5af18c068b2386b7068b743ed6cfd5427342aa5bb8b4f0b56b0d04b5dd5cb1aab8b0328d093ca6b777b02049c0e70ab8990663ce5e1fe8e61f79710517abb352cf548ed3d4b43b1f492c4df8133c4df99cdae521ff8cd6f3ff8f42f3aae2c23416ba3f31b09770942584a0373d138f2ebc01e71d27a225a59f9104bdc6de2432fdfc7123c7252f186bf01d11d9c110b972e48ea05e5114937745209cd85980b9daee199643193c58e85d3742acc9eb9a6df26e521b5ea25e84493c582cdf4d37e9acc46e16a00830a8a53376b177443955a4823ffda55e3efad77cf194371df2f82d07e0732c005a9175f7780170f8b60ed7d9925fcbff9e0cad782b93cc7f88c0e2749d43e5783f9b4cdf0dc74f895a944961a811dccf8048c2afb60cc4243ed8204edb9b7d8781493ee7ca8138e27ba0c0af9f134b1858fff5b5be684bd1409dc370fc68c4c08b7a4c4f98bb5cb574b6aaf623ef06527a8f800adbc3d46a69b3be599c5c593382a2f6f6539d7a375596310716c889af888eba19ba024524ee2476c248d2b8d47027f22df29c6990c661d52299c74928405ece787f295e40b2dabc2889a7d0a16db56474bf2704cbb06d034cb1a2258b2060bbf278006b2e4e517f1f0c80fa218868d45e01394f9f42b432537a184b56889f978c469e3d020c22d17e1565cbc1b4b8cdd55b37d5d7d761512f74a3709adf7169a061e5c3a15ad9376876baf3e1ab670bc28f1af353d78b268dbe8113774178bc773440f786f8e8c041ab69f578c60f0ce8ac90cea040e394fcc9f7cfab094ef663603abf9486754e08cd645ba74a873da0f62e87c1e7eb31724984bcb9dbfb69db8b05ce9df257152a3611adf8820234d94964f429582f988bd8a0b0eb40ea42610ced038a231fe9ed2e3e7b29e53cf5eeb4fcd6b56f8d1d0fe01424c1076c0a9c40dc0f88b2d5e573cb243cf52faa2a17c277521669da7cba6c98b76f6405e1ac95b74062b47bac6698d3100d412ed3c5bc457e114dfa51b6b0aa149e6f8a3539d63619fabd3c2066a76966f7ca0f2b7c6085ed6cb77e3b259da3fa90a6a02d67a6de664b4c89373af15e85eed298e0fa734b26ddbe9703ffb734b33736cb4ebe2dc30bb8933dcd8718993f9457749e4d8d272eba934077cd8bb3065bc105d1f3f93cabff19e78da6ba0a246d7347fc8cb8187c0e719e49c0cd2300beec33db7b80fe6bf5835c07baadb753dfbaff6a9edf2c8a475add7219bebd3445c05a345522be7cb0f49570603458519cb101f763e8dd2fcad3afaffe0bfd2ff4cb8b3d18af2dc768616dea6c682cd612b2a71266611020020e6e5b75c670d8ea51a09d2565e790d8a94b99f9ec2a38231d17a31578bf17e6a000001bcb8ae0b93020696f803c3f914798857986206e8a02a2d18ea09edfc03b1a2be4c8357158407b3a13797b9bbc158e1fcdaeb838cac5d8f7cdbc7ece6a2bb6d424e9e6e1f2fde2b1eb07407c483c05c7ef452ed348f73eca402fe04b2e7bc3f5d3ea3b42f860a0c4221738ba13e7d1dee89370341e76b48a98b181b45185af2a14547736e31fc4f4edac450ea36652a222469aa9937d364d9f1be286f7148b79406934e6c8c90aa2a72aa27eeb7de939c7572aaf387b34cd6245678c1299d7d222b3af40d4caa754d648be79708aff50210fb952dde5f22642743220d3dafc4a586122364296f18bd06a44d6497c36df4fb68edfa67f3036d1771646c678ef44080f55c8b894bda2115ee600599ebcd865b72ef747da7b5621eabc9a1fd072d4ea3917c8a3c33fa191fa2cdb54fb18aefe7ab9f701416f34b37ec99e3044ad39c1322dbf0faeec64b8fd76b7c26f7c4f6c0fbdfd58b03be2f4ef093912ac7a6e217b17245be8d3e9d85ab4d0444e6a39708bdcf40771edce9114bd1beac04190754d3a2075ca493a3ea158352daa285cfdf789580c6adf2169dbe8eb90721f93e2a2ecbea7054c7e8eb33b44d6372c1289115f2ef4987f03d9308fd04c48414418d02f95ea3aecb74067a9ed3840000000000079a120000000000400a8520cc8b90a11b07e280b206471270c763ff8340fd422b7f19d390bf68244c5721b9eb75d365a4d5c7189f40d08eeccd37f47b621b19e2b699d250f87ec66e0100208840c744efaa420706bd9e263e9da30fb0edef7ab967e3eb50997b01fbe77e0d0000052c027f7a6f96d8a0099ac479cdff42c8756960b339ec62182030359f279d3bc951abc3e03a7757f737e3c97ce21f29af125a7d33ee73095bd54745337d35f0e531c108652850ae8b1c7cf57b2077e6fcbcecb97742bd2d4e0b0d6de661880537fc5194caff8fc80e3214b9d4f3551a71ae8a18c2a65ec0da45b48c070f9c3f5fcc1ed2de65a602a860ffa03b9b0d1b88599d389590edc573316ac4c4a38d891ca8a49dd5685bb7799e2fa87e572609585c5b7891618549839eae1b68c2777894e09029e2bfa990a1a0a35e8d1cd7087bb37a6946d21d193b3dcd315ceef4e4994e60530652e32f74da66ef6e4841842e35587801dfc5cc72728007e9549a76f3000bd0e0c8b49d64e1fa8bea5904d0f81941217e61a8dd01955381fce528e60107d094b55ad8eca531e0849b9693e4a3f2ae0d4f3330fce19273005062e82cda8059ebf51e8edc46e85fc3cd6c3f41772efc708f684deba2ed426735ff891f7936114b32642be32c12e125bf581b90b16a40e350f9e162710635149bc41fe83e90a5d30e87a5e3e78af1d43958ddc96f6356462c5c02b0bf57290206e46ba07ed8b6fa095f52460472dbb7f4b75d7bac9d02ad05eb9faf99012aa4abb943f8b649def79635291a838679a187c91226aef57f766c294f2a771f1bde0c58c217a1f4a312888fee30963c657912114735b47a9576cd7c92ad96463cee854306e7e1a7928eb78d65fb3672901869e6663b9507bd4a5a2e9f4338cf33b9801d7cd400fededf38f5901c3bcb116a22c2674696fe7224b8ddb0bb2f11aaaebec647afea8fbbfefae3cbc449dc2683990e34cf09ff7e2b4e7b3f31fcb951ebbdace5e2529126d139335b28952652d8f7505d074a5e72fef25cabeb3024c4fc0e5a306b8c2ee941bbedf38b19ac8d7267f170b3af94d5f639f652f44061bf48359c899e0fb2ae8bfb1a9008c8205f11764fb00540d6034a0b5c914b204ea54c1ef20e7863c44632c54b11a44263ee682e628651fc06a2515c8cf7b23e03ba43a2761972fa2d047e896d8ce617b13b3d87b35980ee7d2c33c0ccfe213b8a28b05e1fa676e1610492a87b5999c58f5361ad3a485891de431b4e5ccf499cf7910660fb1525a04aab5f4c0d9c14a08d46aada3b3081cd56232bced0e7240acc44099843b48b03cd9279c30c778cda4e4acfff44b55598a5e02beb445fc57111271c2c6259a0d1ef045e386cf8f66d7de5b0e05dedd773b44781076a72854949e126242089dfb61123f4d78b122b5f856eed8b7afdb44ae96937cd10034acb440cc7a116697eb865117446d25f643dff69483a5f32986b3a9dfc0547edeaa3d0f18aec4c7b544d14fd4f4431b2bf29d8ba81ec96c3c5c3c1885455f69e8d39e2471faf0c32da171e2d0be8de89dea09c5b377b5f43669169e498d567ca2eb093d98316cfc19a391e0743f1d10a60925d148bfcbad70187f83e0922c21a90464df77eee3514baa0b581a241d00e780b66d00653d7f2288e4f7e58a112b47b667a441254fc457c612b0899f996072ce919b7b5924aeac5afd82f8a65e95a371509412a3f8ce0dee8f7726b90da0e5cf2a2ea8705b30f1cf6a93ca5a8eaf9372c8521cb905b84d216c3820bf147cd6ccdb38bd228ecdcb6fadaadc8d05158a203c3a7920ff998d43af53b0a546888ce6bb3f717bb87be2eeee61b7460a3e87b0aece83fd94946fa0a775edcea3062994ee7fa3af64bd75d2b152184a5b64bf682b2be9f0a3fd61f54c7e7d0efd32e007144b700958429739e87dd732dffb2dd4ec710e95ec48ca527696e8692ff68deba2cdb45920c34698d635ea69451544cc03038938a41e28f39a033ebf76753000d286e6b7c5902002072b312e94b9a41608cb07dec7baa370a08b43cc1fdbd3f1ff55705571f17165e000001bc78308b915c4a8a43ca2ff70c3f55e1ef78663bb0a11c61d7474c8c48b2cb24d5f264256d19862dcbed24298aba3dd34fccd2c31d31f6702d5bbbf70812adb57339001987726b6cb79976f291d4366f8b0ca3a005c6c9ba3c5af5de739f02cf71aa04e4f8cf7dbc5f57cd55cd5ee26eb1907376762e316759539e8453aaf72396c7e00fba95d122b2b558f4c3bc1077b2615ae89f1892ab71dcd2df73f6f5f8f881be76af1352bf4100a257be990efff0b505a3d3416fcd8a2736c8636b99a648836161edee9ed3fc5fce064287e38dd5e1cf842118bcea7725163221af6e02e2641fd8e9b5fa5db880e6fb379f2a89c89c2a5ad53e13caff9206946331c2e70132c8a0995ad1163bd19ce664a6682df12aac1db4cfeda2cb41e5cb11283c99a96ea6ddbab4f757e1eb50acdab05ecd070d9078240a98dae70882661d6660951800aa699594e650238ab273e305f967962ba01c1999ae7bc2ef0b48a15792c6c645e01816c7994c3d42cc3ff924e92ee4bd28ab0adedddfa1905c30497228f2913b1242636687dcbbed6cf6b54e8a97fb988da2f48fe0f374ea26aab39f55b3c0f8121dd4727353043ff6e8de462555825d63b5d6a5c07023e38e802c857be43a3b7c03d72eb3b735cd3ef7af0000000000079a110000000000401f000e80e809c13ab136d91167f6a76cbd2b74575e2fd1cb991d551e57785ca38c68c65f0fc4eeae413d5ccb43184ef71aa8bf5d07fde3bc5e0cff5d2d5eb268010020671769748b9ef8ce2e83d52ae9b10cac142a79211c73da028cb8dd46358d77160000052cf0bcdefcea5cefd42e6aec0f387e907c71fbf1874bcba33300c2e18d402dfc6c0d38616f8e27a0d4c00507fb8da9b619f2f63f56e2b254dbda50e4a4d5624742ba48026afed03c2506774785995beb1fd8ef2765f43c53c07b3c93ef9eecd63bd622934d9c8b49ec051d33f1efddc2258887e814d86c39638c25156015d9744236e82bb8f30358d03b91c4b29570f5adb58a7539423e9b3522e4f5e6e517f24708178a30052974de5262f6b1947addb874f403c0b5f3d4efaa8aed51d2710f24012139ca9095d93a38def49d027ea8e6933becb9289d9593fe5c590a7a44b8070f88f1aa42423518f289c0ce18846e991c9d04d87282969f6e2edda185c989e74696f8a3f65f04fab91e5163dffd771d5e51e56e74c01800628936b68f793b457847947ffd2519186975c0613f905a71612e0dfb4bcb422b7190512561a246340d843483eee7e3f635ef2eb319e8ba3b21a5937c222e4d4dba76cbfc32f641990bad73da20193a8602a4ad78a220e5ffa811ded058827e919be04586831b64deb6795cac3a424213c2981cadd29adc199c4902c9c47b4ec2c1f0ef5711ed24b73d72c815cf31627a27fdd141ac6799df9dfd96fb6ec8e91fad25fc10e11a1962995e17335ac4748a199231f4bdf439d236863d9007de42db1b699b788b1519e69cbb7b379cec8d40c7a5c56b5935a5b56e961bc26117a93847634454cf6bc410c95660562e6f3e564e825d95135047ca624fdcd1ccaa1703b480635fff8fe71dcf20b09cea5fa4072755c121cc61925b596dc3b24ed87fede2a31fadeadad0e9fca49f525b90f16e21ca2957ada4d137c7c6c9a80aac8b36f0be970483e5e8b0a3adc665adff7bd843d96c1520700f10997f68a0e7181cf0ba70ebad1b1897d6599dcc3fe979836ceb1bc2a512ab94eef779f72dff9ede5e06cd52e7bbae2e6a69463d9fc22d3e07e001481137fd8eca03a3472ec0acea80a361d4f7440973d655ffabc69c30ef54e821e22e136c6ed32bebe0ad46adf70a87c6e5d397d12c5609924b188ad8691219d2c0129c423d63f5378de6801ec0fe659310b99ae34830b6adcd7fc0d8ca8d743e981a38176044b8055d677110b75b1d8e237f3da271bffc9c7c96cdfed886e578523134c7a6471d25a06ae0b9b8e6282b73ae134317e55fd7a985bb56daf7603cf790c73a830b97c46b29628b5e26f7aa252aebe32f195fec5e22857872a0e830d4cde96ccd713e18ab3c34a8f6427d7b3ee434c146f5fb1244554fb70402e3f4e992b10db04b92e28a4de8bd7d1c96121a93291a698bc4071cfbc35f416911171fdca353436a73870fbb6eb018c16914ebdf33fffb50c64ba06a602b3069addfa0194aab4afb23b75d3299e6bd3aa7d4e75a3badc1779ff5ee2b93440d63a7939fec5fb441d1f1142ad287df1600cff1cced6cb0f88417ca7eb19b31ca2bbceab2ac3e62e7b96a508d1523accbcdd403596f272c19b63dd99353a5889a0bb40fc6b6ccf1263fe64d46893135e0cbc7cc248043d7511b81995f30da42d41bb9624ea0be224db5867e9703dc5c39e46f64edf65f01a65c0aa95ac888b4e4f9aa3c47960ec5ca487f029daf5a39a1235c79122c44ea614de575b1e3c82f0296511a6f06197cf3ef1393a37548e044eb865c489a461702b78e94e39bce2c5a76aefc3a32ec6e029c5b49d68b0863fdbfaef0fe7b17eb00d313c09a0cf69faabe33bb42970ab880217283cb53e3a029d1592c9b90f83c272ce779bde5740827d5dcad64961a938251e499f6738d7c25d2d89014d1a5dddde6743d700c7d542bd1855f0c90d0e3ae64a0b3867d0a0d75098c1f80312b33e3439a1655386e4de360ea4fc7b80200209afc9922816a8b86050a5f3d94a4cadbff7cbdb4da7a8a6b1574082e77d88f17000001bcf92cb87815ae1fd1b11ad18a434fe1e7fd504d35b7acb0b2ed60558ff17172e2ca5c3ff5aa61c96f98d182cfbcdc7692ee9195201930e6947fb8cf0cc8c753d08044a79189f9ae608d3c71664f004f4614489fb0a4f054fa130b04d1021591420d3c944e8f1751a76fd877cbe0b34e48ff2f81c12026942928030546790051ecb9655804ca35b2ba6e32c596bb6c165d9f042a644136cbb0bb7e6400340ab7891992845acd566bf071ea8ad48642f2b0adc6e0c72a9431a8185d0dcdf7221e28a80ee0b1dd4f6dcaaba3ce820f893040f5189ae4754c91632fe3c9539431fa2e7a77e4562430991a84eb3bddb33ed7f90d55a34857c5850093396a5cd81fecc5869fe195fbdcc86456f930430177fc07a5d3c8f4536490704d61205fcce51aceaacba3145ff943f8c6618f68f27601419cbe4eb2347a26797b64114af6f5b3156fc17b313e98ed901307f0a1d8be24b191e67fb28056330d8bc39f2c74ea7f2597c2473ba30c61114dfc323c38504dbe56883e33d16f445c2e997901f89b815c1d1e2dc0641a9fe0c21b5911794857d94f225b9125a0fc126ed09a42d5225a650faf65735dc328a5941c7d73f0f7cc1846b29d3a3c8f1be7b91a8f99887dddfa841b3e870db8d51a190cf19b0000000000079a12000000000040e7fecf6c488fc656576c94e5e71d2eb64a09d1a958e8999309ff548bce696b82b18904cf847624683672d9b85b10d46dc612fc5414be7698d004ea72a34d70c40100205784102db594a7d7116e365c49cb0d71eb1bdacda163661af4188d4eda41ac4a0000052c0faea34a8d9c6e12fb2b66412909d063cfc3feda442afc6c6f9dc37bbfc615ba4a4c8c73cdcae8768888ba8030454053b22e596094d55c1df9ec681b4e964070359a383c26adcc35df35519341c4d554ab555368b26b2406f65144ff902a12b4d797d090ffb721341e1bcc58abdcb08f27e66d439fd8e688a63a29727bfd3783c5e59c86753ee541d47138629050c9b09e6685244261cc352df44d6e393a62161a227cbdd84bf323dfdaafffbbc408b1ce804cf416d95156b03dafe77d4dfd40a4bc4c8a9b14356317e3079621aec1ccc81b96c76223f8ca1570d748cd944d4cca789c187680ea1b920a26ba06e4e66639229112f41a38b45cd65c72f50da9bbd7db7d16e2c2a68e3136edc1836fb17d1a402d397853e6ce2139fa76d23237dac92c93832391e8f30ea99ffb12b673c40f762d515766c8157e9d014800f068b83b1ee3207765f3176bcd6cbfff49eeea02d1a359ab9d97ca0676f41bb6cf92dc8bf484ed1b65899fd6a395f2e828b36302dd8d43763abb7a214349d2439bc21883d287662350cbc224343b714db5daacd04628a9bfff26b3c58f0a4a95fee9f21894db34093bba96b0078a1ba22b4433fa83c19c7d0073fea4b9c5453016825085570e88d521b74de5190a2ae23dd081e56f62f3b04041679543a14888e085ad4139f68d3f0b6e3df9866aa5e2849dc24f2197a0f43d9f2033e02621b7d0ec6ef2a24e7c3666f3325adc8ae3441fbd20c15a52349bc52ce400cb528e59665041d070617731fe991c2302c134fd0343f182840371b43b57ce70bca81b134aa57af8d624c6db97e5b335adc3bc00f5988f909de959fa075c018c7c9503b9f0a40217fd7129b881910abc13736a03f9be644e0c51df1c48c1434eee707bf856871feff5b29ad2519fab648b5a124d6c384a9a0c6f3995a42ce6ee111dbd9464d31d86d5f0f911dc16ef524ece850eb9424c908ab05e14c1570a26e90037dc0fb71149143173d8df04626b42c98c2740772be3a2e013d8b0d4f8f3fd893ff9428a0b2fc290c40ddec18d120c85812a8a2bb9b4f89f694ba5e348a377b8978e7e4e3f03e2c6616d66f3f14ce0d628313eb798e732fa2d089f7c4a09c3ca9287f24042b0006f164b514adfdd719bcba1566e9efd4c054ab703ca869404f07b6a637b6af9f52c378a9a50494b68455dd71fe63b4307945ee8885967c94f18a4319a6ebd4eab2bf145b1e96b1d9e0ed06a29673e988d882fdc86040234021910efae3e7c9eae4d69630ba6a09ba8224591117ae1428f0f2e2c340b7f0dca3d173cec906ee4301ef70ac58a510629d55ba512cac31275333af18a781149f9fbb6edc9566efddbee76d8ea2a724a15c0ab03d6f941b942ff90a63989725103f4829da11bf49ff1deeac52f526ae47e0d417e8666b3f4c7577216e1e0629cebf922795bcd22c97ba0262e5836b0c81a3f566ec597738693447c4ea71f1d3e711d531cbbd947b5afb152dcaf04d9c8b098abbba0c98af8c11b1f4074a876e0ce48630383b960ae9de8b31d915c73a9871a2fe5cf373463bb8fa5cb2d6b2ece2014c3bc286e2d32f269875ed2dc7087d58688dcc4e30aa35cf66194d3e5d080b2983936f3a9e7c8e1d779fae5c29527c9091460af294b114e7aba55313b1abda5f6cdb089285e1aea2c2e3dbf10aa6769b30476f39752f5ed6a5c7529381f2d6a0e4c9a3bc1522139ffc59f0826da034cce90243ab27ebb98752107f6534efbd3e702d9a40b93c80c69b94029c12277cc01aa7ec4d057917ebb7af32ce9919a311f974ff767f196e38f162b153af3e002ecd3dbd23cf9acdbe0ae295117e43c7f28c0aea1208f9475c0d244d6dac400d061c9020020b4b2e3722f068123c7eb80bfcca21b5fc48ce0f5e5fc34bc8b078d371330007d000001bc64ea5425ce251d222fbd15f9981c0923ecff7265cd92216061989621ba5b03c18dac1cb41c7af543eafe04d7dbef9ee59f3c49175a2fdbdacd7f97aa877f93107638cf00123c67e014616516fa78196a2f9b24885efd2dae3eaf49862d1b1523e0e90e083d73fabaec8a34b9cf486e7c0725b4ec4b58461f7a4ac06884c71c378785901ad95b3c4cfe4f1baabb1dbf0346c82c3f741007460183c2d22d80500925705f9b3391e078f688af008c7308481ae3bc29f4b7f596390bb1a747b07efbe19e6cc28e7f7f88ae92b13a057fb293da594062ee4ed18f0dac2ebc5fe2e99417b6d1782ee20e50c871b84a57413ce81e479d7571d3cb16e03acc2dba2c410f025025c07db4b8c037e5a02ad4ffb3ffa085a6aa32033e472a7805c2b27c057cab08b20862f883f50e4929b919b6c7a5f2d761d93cf4c4d0824885032b922298f7d57f4ebf97f9fd14b91bf2ccddc236117e1e8b6f1ed6e622fec386ea41cfbd04733b8bb1079a8d45d5cb87879ba4f5be30021d8abbec7c1f54d1cc2294e1440b46d480c2e965fa514de0510f3fd829f8ac6581526fd8ce97c9ec6edc4e6cf8cc95c001c387d90d846052281dd41a1aa6cbcbd12c63199bc9a2a40892333fddeeab6da144526bbe30e5d1520000000000079a120000000000409f197ad3779df1f8eb3b033eb20c3c2e97c9690876ac0c5d215d62c02f54a7b3eb74d1f3dbee683708b940f9da0bb42956f0f21c2535d55baec4e3496bd234f50100203c474d64e83261988e911d38b77fde7322e4cc11acde7cd6e52f7e2e362031630000052c4140aaad76e13e4976c91d365495933c89c6d85eab8812fb09d1539c9f0377260c4aeb9af95334038f423063721b07a3c375e82682b47268b2d4aa79fdac31957b22d2410f44c3399bdf840d45b6e9ba78851487b75c914107302427a5eec4c436dff5679ea72fcda7f07084eeb4bd16f0ef4adb4ecd5a20dbf08f5aed773b9810b4dc7182bb013464d9ea2b75a11cee4209e1e3e485a35e0a272f04aa351b8a18afdd7d95a928d5ff25f042550aeefe3d5cee2efa3c215ef07680a79ca76f498743d16eec524e8130824540ada38ab2533a91f35265483c374b4208c9b4cc8d994be95526a9a0b658271e8efccfc9a08e4f85d79d272809ba65977f95195ea29d013fea37bc6df0b1a826931b92ea40203f6c5aee007fef745c649e865ccc6dea6d16921e0c817774e0803ffb49289ddd5a77f0c04c849ff6fc227a6e1f8972bb466eb0a5406da4f4d28453988d0070a4f806b0f84f5ef3c46c01ad6e3fb476866e43dedc32cd73d31f6ca00265a2e48ce76d4fe0c01b331fc3bfee2a50292c04add8add37356080633a3b9ce3738ec28350d43412a326f03ac52352d4ee09db56c0bfc2cabed3d07e02cab610401fdfb44ec00c46a701c7ae6ec006085a51df658ca5c1f44cc452518d2ba83552a6f6ab7fcb32e4ed9c15ee8aa4c8644f30f3208ef8f88e46928731693b777a2d9b5a0054d57e2ee198459dd347530ac8b6f60a53106c45a8f87e360ed2cecdba6edb17b24cdf3785d85df8ae7b2f9d7157e006ec1617930477660f8685cb5b2201c9db3997046eaaa2274355600f6d11736312ff4fae1ef09fe265cab71dead749c04eb1239afbada47b822289821c58e87186deb2f5ac37dd45d3a96bb995dd56c727d8e5f5be77cbf51f370cc51fecc9de418d4acc11071b0964b6d85c06765edbe0a976ac4eedcbf54b8c8f99667175be4f2497b1bc3dc0b8117b101a83d6570a49c3e2f71eaa62ec40e63e499d3261082a22e4eb2b8f1dd812b22938417c0ce1803ef141bf38ef8050df6a603df59feb25fd3573d31af71031381055e96d75497d15f3a4734fcf2e841799fcd33d912ebb870bf870d969aaf24198ddd7796cb30195f8093ebb6bfba19601ebb98ae95a3907ce7c54c71a0c57dd89e2dd6a2e6ff87d982d504cc8cd20d65a3b05f0685d126594bcda8749fe32543ff2ee8739cddb4478af91119624d248e16710be1660e12a256846b620c3e8f0f6613b0b4cba75da055262c81f45c54b12e1a3e798562dee0a238b4e3e1f66236c4d43c4283bc034576e362e28901a85c55cadb3c87f9cb34c9706def02f2020b9996ea44d0016b65e40d84b6d884c1601435f3af0ff163110e49833d8a002e487f664b7eb9c03905a2d8e2720a1627b968c5ef7b4092be41ba0a0512b64c33891f4a6b07463bbeb1395c056c65c8e47a901c98fcb4ae73175195478ead2905a86dfdce191fcce8bd1726829c01b0b604dba72110fcd69b48158b7f4d58b473983bcc4c70c790f37ba909fde21a87d71e094dd362b8e51e5eae3e4f43f8aefeca8b13f90b4307147445455440512ffa9eac185d5e429bf925b627f205134f4222d88adc1b8e67f7041d1763b101239e26b08a83ea1f4b436b72c9f16bfba610969d88c8914560d75bbf24ac4d77d0e6518ffa9efd08588ad3af2fef7f811aca21b8a140582673e4009785975fc2ce0dcdb3ef1491c603ee01fd47e5230cf1f9c3f887d4ff6172c5da0f64d997d84ce769157f01ea51b5f2409185e05dadff8ac59dff46391640e186789bddc79e6cdd0d47c92feba5b4f6497058c6392fd31bd285f73b29b91a529f1635d2b995d53d38e9027bc0e58cd2bb984b0085fa8025efad0200207a0000167e18947ebb85e518a662584378a11bbf4d79a6f383817dc034fcea70000001bc959076e00f11e438b85dc8635a0f7e7797860580774953b58f0c958b03850f589aaf23fe982cac97dcdd0c53ff5790b1933521671d08e3795c983047e08193ef78fbcea76f62c38071f0700cd18527c6f08421587e911c6e7510d3b07fd95fbe3b56471421b3d719b5db9aff7f5ec434c639e98b3966a692930f131b1a6722450b0c15de1af2b9cd527662dda5f2d2784f5bebb679364bf8f8aea325d3df48d88f34bb2a291643a20bb7dcebe75d3933f8ee9386c6b49c418fec2c5d36502cf419d4cf695a8b65c2cc448286f2d5b31d9974644241ab1f5869dd915cb4262e947ef77c7795fc0f77197c2801e5878c4cb272bdb1df8fcfced73e598aba55055e2af3317f825ab7f5252b1bda3e656bb06f532298ece7bb5b1f5750ceb8b7420caec1862ce3c02ce2bc1c631f73167262d900a9cec4fc7923333da237a5d7b71051c60da8a8d23d5109078ca4d675f283dc16c7d0b2234b0e33c93ec956e4f0aa012a101e7aeea8b61c18433579738fda83beda5dad858c85aa1ce2409b0f0800924b8a551c1b2712f0faf4e0807dad6a01d078f9c6008a4f813c29ac4d767885cdfacfd44979a15da219ec7199b041e829b2b1f12e3502b0782356ef97409d8a09b3334f9a836aa28435d9cb0000000000079a12000000000040f004af4e06c9c4cb42054a2fa0d1c3054c5cd20016d64b24b4b11b9244f3256757985ecda7f938fc85f379b97419072c27062048b5d91e38711f56b39b237407010020ed7113a56a237a941bb345a5b70215c81c6b640a4bb0121ebafe97840d620e480000052ccdf4189570c2de3bacd5853aa3a05ca4ecf76f6e04dd4c9eb707ea1bfd1737f1919fdbf1f3d5de6981bf1a0c165ababd3923a885f47b30d92cd4191ee052fed3103ac216f9d8d8a1ce3528584986995e61624a0a817c82c97b2d8d5e6c07274ea4dbdb6406a11001e58392bc31f1067384e85bda255c36e1c9458ff1b97c72570b088685650becfd221fb0e3fbc4538b834b5439b49dc337c3a69ccfd63e9cd8cb945a99e8932c0cffd5208db31c4f65fcc0324e606429466584e0df0f98cd605f252cdc2bb5b8f5b24c21528159af517d2ce1e75f17010d945130aaa6ba871d7ce6ec6b5d54ddbc9400c09d37a2899158b70c192c88704f1979abfa5c248fc3b70b97caf7484f34b3efef01e75dea3fd296e663d97d608788609bd408fd6c2ac5179ee927630e38cfd7c97fab4cc8b64526dfe2b7a81e2da54af454384910784b771f6fdd538e4ace0f24b3504f87e9325141df9f4e79ff9a2471e3a687b0c6a2ad020da3ec1c6a3c3f0d82c9f71c3336467fd42586a795b4b3602ccb8aa8c0f85f2a4f43b130062585ebb3103208b3d73d0801daf63014d93983c97d68ba58fac1c4355d37d48737b1a685ca7b528ff9bd1562ac1758cfd5d22b4bd932a69142380e6d220ae85bc68dcd1346c8a35b675074591da6fed313526a947d58099ddddea0496de0c1f0c2508df0723391a185552d340cb04cd5f53b4b152f6ecff4176d0e6695634c1db0dab6f14cad6a56fbbf519376e297580c2acd15e031ffd6fce7760680f76921c4f06631158bd4d0f59929a55160e388f41b92b86b65007b24d87d522dce6d6df47378b87284fdfb7e0e5a1feee9adb84cbffdca35c8e5656e5da2a44b003c32bb1b8066e0f31a803cbf9d94e0358d48c353472bd2972272e99880e98e8821d41fdd1b9f8c341a293baf74f8fe028004d06647bf569c72627bc79aa27b121f4d62d1f9203b23df2faec223f70c3159d85bc6329be86e964ffed98a1a9109b87b1038a7182e0c7382884a67658d30392c5267896112e7448b7497839d866082b3b8e3792523f9accc921e56866c9cf7b896557ee195d89cc0c759e1a423e8119a5710be57fc687bab31a8e84c97f9cdf6e07c5cd76459acdfdaf12f73aebafd162cace75dba75e73093653d31f6fd6c71343d9568d5c49cefb4b0e08e0a08728e7f218c5e081933372d17ebdf4de714b592f9cefc59d0d1868d54c6456a185b10e4e7fa08ec79f440b19adbf81a55f13cfc460c89f6038894d0891ade2b283d84327e0edae1536048a2701c06c8031b7e750dc58c171dee84ec66029efcd07ccbfe43d9151066085d4563c1296b0c65c27e99a95afbc0175f8d93b6adfb269f9ac52b8388993e26ea94eec8f877624a929ca5382ca18d97d7a76a8301d786635dd4cfa71faea8ab39a02b5b3b0196257c4ab396104766d5c6c9ec1e5306650d5229c261530d27ae5acd76c3ceda4481ed3d9c9dd4d62b2d75871ebac9b9723e1cf98d2fc111c9cca97464b48d79fc9147d89d9492b8181181d453d662b8436921d3ac343d9853a30a64de37e67c4357c5a52044bbd697372ba8aa254d82a8fb1a973d435f96e4503e543dcd2a424e1530cf87db5b1fd52c8e73ab4bfceb0b5d40d8b45f434a31edfd79e547031d69be1454357839e80605fcdd61c360dc1ddbb4f4c7eeb4815153ce15dc83d5293633c3b32a9acec3e21e46d75df65992e2caad1a6fee385ede73d0ed1c18d3ddf38504b6709362b3b690d45cccf0958edc9a402d60b813ced263e284b9e2ed09383eaf1a4c66f0f2b7252c2a52f221a71ed41dcf3460a01eec414ca4327a2c1f913027100e4598f45a42037a29b950d04a73e4960a29ee020020eef4ca0fd49acec9cf1f26d8c18adcd01ec47b4b64b4da7993f29674f731624a000001bcff85c34cbaf243fdbcfba3c89b6b504708ded1fa4caa0a26721bfbda931b11ff945326d47060a9bc709ac458c525f534874fa196138e341ac35ec6442b6dda55fcc899800af8ae3d8cade8ada1778bc2bd7fda57661adf520d284c36a9feaf0f17ac8856773758a88c933916e969ff4f66661661f4a1c7f34ee8c8f0ded5ee07a9aa3d687acea6584d1ce9fa280106f49b8f22e643c222221579779eb6c4540eb4a057f1901234aa1ac3d13905e505aafd441fa84c4515368eac9bbd14ad9dc4432aeffdf045d2faf88f3522e38961bf85d701e83268c33a7e418c6c4ce387b6b4211854020ce233197e71933d2469dc3ec8ea1a2b3ce82031c7ab2baaada57829bde5a602a89ddefc1b0473d2d1eb08bae4694a0b913d67110679173f85bfedc12433a88962c75418d9d2f8887ebafc16aec30590fe3fe0267c01be819850858f580d0939c1a94372e320fdec19438c6b8385e2dfe5b916f943c584496201eb1cedb9f1ea91114ae6f9568ea59171a931d29a3b83fc76e2b38d49b6e9ed8384a627b5601225125fcca3d88205a684c416dd3ea8b7c8b8a2e1f5bcdbc298f612ddd974d87ded80100c2ccd6801dca383ba24861fc0a9ced02e6092319d8925750bb5300d2fde50e6eb86c4300000000000079a110000000000409e03b994fdbc547b18404580d50105a6a3d633d62834e7aca5314c6c3ec1f598d23bfc7b995bac9e8fce35b576dec1e4da24d6760a1fc5488e81ec323b390f3c010020bb6ed24e79ae116d5e944c3f78904073b1734ad54e6108a2651fd0c7448b842e0000052c5824648ae7a0c6bebd1d6874371a27627f78046906ed9fcd7c0936e0740aff1b85027957da52858c119dd88b49e3987d34bfe615eb2f5d7445544d290a999b6924233b22fc17204244924f213fef4ff7dae5154a6ab1a4b4b1420e89b846ce77963e2369fe9822a31dd721df55067a8e7de67a8fd7cfa61a8e30f6b975f2deb8ecbac2647a15b43d32e15e46acaf1a9a673d1de69a459fcae1b955f45039909c5832212ceadfcff3cac2c23c652e53133670ab9275a82a97b1eb1c06bbee03628056549348623ce377f7717d0244adb37c9e0f316e8d6b14128d566a8b6f4af924182424d794f46cbdea44540d3fe80ed50ab660e24584a7e740e865577eecd55b00321f3aaf8837cad5569799c381c7db02a9cbc4eab0767c0066234085a906ad9e1d08a05a24c9c5480a7438eb49d0c03ef046661897d564f6d780c151f70290255c3b0c83715183e4d2b3ca6f3759e097494e6647d572656b3ef1c36fa1af8c5572b605edde1de763d303c046cd162782f80cf53e05666f1e3b8dde002912c63dacb23bb08ee9387308e33c5260325f4a13973f6fbac71de73fa05e0b047ebeb20c6a86bbd865b92e7ffb7a1d5d10a694c7292cb1ebe759219a6653f5d821ec6cc129654f6dc9fde715184b69f8539f61867bb9e5808647c43047badf9fded53349c401098d568af50866df92c3bb86738fe72e1f87a3ef8ee4eb03f9eff88fc7346e0b350a64c39ae3bd4c73a9c09e03a44a7bfd4934f5074fc396c047df6901e015944e163c6e5973b6dd2abe697ff96354eb27f221bfdaa1ab82b8cef3b6272d5cd15ead69dd0bb6e004fdecc03f4fc1652bbdc73480d8d9f6a0e75af7f4c0f91d6d4ea49e95f8fd1a89a88f56ae531c837dd1160c539dacd2974b55168e204b315d349d49ed32609886f935b91e8e56fe0c7a6026d65e9c49c4254e09dfa3a942ed8ded92011cdcba75fb412603986288b166969be12512f0980ad182a80664bd44dd81a78520b565bd62a83a40796c5d3ebe687a8530da30c2fa20f6e7c960afb33740b67c6b15bd6c66c5fac01a843abe2ebcfc128c0432ac337c31da5f30f5c36fa157bf17d6110d0c6993083beb12cabd618bdccdc76ac5b12c7b918c972d6ff804a6c66a35dca21dbb82aea79976999391f35dbf4d37f8bb0878f2a08fda2e04d843b611f2db2ec5b09de7d7aefb24d4c95a97ee0e7c7527367981693572780466e6f0f739e567f01c0ed92544a13e9b9e7b0742ba360b436310c3453ac817e17d2a7e5a7390f914da380f72023026db9ee53ddd7a3ee30d42783a49bb4004859941668ebf37f2e7772c3ce19f0644d8020c5fed6b846aa1a4505f3791fa4f798e59940273c6f0949e8749798937b50312240b0115628d6738f7f0f279545d32f5c7279ac9cd394c38a012f2f3d1967b88219e7b6a3c2750debb4f51d16543ccb97786ca9610f2bd65beea153ef7d35a5c555fc948bf0145c0fc1574fa1177d512bb8a506d198098ca04b2e4a07d567318a4f9e872f77c2c3576d6930f3b24c879b3a20ca7b3160bbc1354c3e03e32c5a7da65f52fbe8c226c43f567328fc8b576497f4f7019d8897150638e4dd75c46665d3aebfb1f96ee5e3d69a2ec9c89a22737b56bc2cb613d5f81441a9a3d7e99259fb482c87badee4da6ed524bfde6a4b856b9e80314e8b7f6aa0316d7caf7cfa8db18562d8e2057df39d2706cac28ba36476c3e464fd3a80abe86b218f49cadc074280f56695d1590e59540d956596031f3269373afebdf3bc3c6a67f8e48b0f8c11fb7474b7a4484a57ffe868f0fd2b05b22e9ac6ae15e57d5617c91c312a68b871230255a707c70d4b2d4d66f248a40ae80fbb9d4020020c68d72db92549ca8a19bf22b4823a6bfb706508b7c713341e0793126f3d7bf35000001bcc26c5ea8795bc3217613fa8f0d971fdab0e82980e2d918fbecc13e4c747207412dd2ee5adc6e3a370d6287bead2f2e5683a5b8c3633725b45d3ab85ee18325850a06e083191a4c2771343cbf38b9e51df5e1995920a3229e4aad5ada146576afc61671922451e30a610e70fad8c392447e4ac2f48194d99af3837f7c884619e9d603df66b76a5890ed7a1e3476a57bf7f96b6572d285df625736fa04e5616747336e83e14efb8e487e9010add97257456683f7095762ed3e2411276ff9d65256fdcd4a607e7224cbad0aff037f63493b7f8e11b3a608bacc20551eb9ecbb6c563faa17bbb13e398b23531b366a3a1890e75ef895a63d3bf40c1eff14940eb1563bbeaf884181ac6f5b1bdc5b3a75267c27199ba583524b4c7ae143392dc26f41255d43e744c12cf80626e9b3346e10293ffa7e5b1b8a8f5620e0282fa223822d3e8ddfb5957f85a038afcf0ff4716650c8f0a06e6382862b36d05e62cec5019874f31a523d37582aae9b4428170fe93122be83423ff46fb3fbe1ed75b4701512f43e52875325838f67e1adbca85b6f20ae94b8afe67cff0afef350c82e11a5c6c39a1f355543bde8adbcfdfb49e6d60aa9417a8e17c4d99504870469a0f799425b823f0182363610d184dfa50000000000079a1200000000004033de1a8c95ce5853d01e540380198e9e75abd6600da1df298e510663a6f9834f87fb4993e4ad16a2d4b696645a88d162f18b683288b56f1395068f484f9c788b010020256eacb99d20ee6fb10312da37c19cc822ea4708cdd7cb096aeb5830cdeeb1090000052cc06a593eab90178a899cbffc01aef176d3491942bf3f30da834d2e944ecbf5cf3254b85904856d760daa1d3abe181207314169a81d83e148e9fbc1f66e5af5668254764bafd20ab99512dacfa9b81b8666238e04139038ab6f33be738ead4304c3aaf2e94a3cbf67608b56442084b5f8f3167b70422fe5379a1b2761f2249a818a3cd0e791c3b483d5f3815b0f7ad1869e0d2e14e3172cff6aeb3193846f2fe6170b45f7634507afcba895c00d9c3524576a3077442f76065efbb5b31b628f8730c27d44dc04224985517f180b2ba4f627ae5faa0e84874031ee59b17702796fe312aada77b42eb76732e5aa457656b28d96b622426fdaa7b2de239648ddd9b13d271060947d26bbb21c2b6d17e008d6a418ea34d279594a9484d3b620668b3426c2a6c38a275d7a2584cc1cb370d5cdea745ebc2ab1749bfda30192d9f17db982b299c6f835575443c28c642262ec7563aa3e143c5c7526c54515c1fb50816b1463678331d958ae980ff9589cb33e8c8c1e9e6ed61c1ad98ff7ffc2db98fb80ab164c018de89da548077d64b89dafe34bb7a82f523a5213cb06aed4f1ca1e948c9372e1029c4ba09ae24b8dbbe6a7469639d9f903fc8b3534097f65047b74c00286c4856d5a77008b83ee7c2ba42e54912ea91287de867eabb8e1bcf2bf43764e868066f03d4a745454f6b8f4ec41a4e02274dcc97fa2d8aeaeda7675b5f2b1cf099d7ff9e98b71bd215dd5b888fb3e7614540d7aa4cc6fcbc799ad9259a4762d12a3da5cbe04a0d2b27ca150cdca2c271e304ebf795bfb1992c8a58a6694f0f90e77676fd195af22d4836000907a19a4f732258acc29541c30c51eeb4a0252b67f46ab7cabf071042f64c2acc6b238f88c6c5e245e5ae4ff9284ab909cbe78696407b50c8f5b3d4b7f445a62388cca0403c3a1921cbec05b18c945a2ecfadc182bf48280a0add1ecc71b4725eeeaef54b712c8121ea12f1f9530002398def52c48e6f4fe88b3c411b21dcb2c52e0a0e4a7d3b0e2a5a9c10e7838447149d805f7e2c7a38b685b46c941d5aa796bc13c6ae6b317f3049dacecc2ca8f17e151683af53d484da1b2ea2a643021a8523131509ffd0c4712be76e56f929c885e2b7201995c43987c9e68d940eda34450efe350e5d8751d7dc3f703c932257e8ae0ed4bdff43f25d7897ab50847c7b3e75895746b746a9556d024c43f71632ff78f1374cd8d85271991aa5b8cc123dedd72c57961e5d9009430f807c072cd53d22bcd1fbc3f8fbb47b9703eeccb1c588fe74ba473350abb7efa99f42fdfae97b19bb38ee6b5fc6df0efdc053b0f43cfa04613efa3b0f1c7a2c7b16b77697d85fbc26c8dd331886fffc6a857682026651b7ef57082f57ea649513522fc0a5c802a98ee223c1372f8910cf3e74bc7ba79efd731801cdb1733882014c03223cc81de9377be68c9075d64618c09f2b536b0b129717599155aeda07c639775ca819e703396b81a228514d820547b4ac7235c38c4e01f508257fb05b70ff961e35ea3107cd4af0fbb5b5f7d0013697cd2f879011cd456ddf86b545600ee328458916971fb23d4aac78d8c685a40ec30a44b4a81dacada3b8fbf80781fecad66b5ac403aadc12a39ea5aa0c1cdc78b52dd5477c9ee0bca3b4772c4395cabed2cab5d2f89ff537d0d5836e48405f6e1837af7b27790b4a86b79352ed7951b6de7a1a1909ce7493fd5fa786968e95f61a995b8c0b7ebc6fea86c370f79325fe66d9210847c476b2213c9aca025bef94c8c2d5eacabba8c70888cabbdcf2ad6216033ca3170d8d1c50b98ea5b17b1361c5427230dc004a8403c3ac47b46a934ac0da13655f8999ce3e16455811cf1bc860009440200205360a361ecc721db6815f993d811d6b47175e103f2693d3c1187bd067b462460000001bc3af53e657b8dd0cb509703d99d1a57288f8eaa48d8dc69bba961b49916017a8fe12cda91d44c87bef923741993c68bcfa8ee4272ae5dd73b6c8acd80b33da26519ded7cf33381b98d45dd0a763ba640f5d23887f7723296d93e44219bcb60e4dcb938864d30b0eefdb9f06585ed331e809a549012c5bfb161c00e48b286d08b4f80082646e1ce551359814ea8aed48988a827f736a13342e4abac65db761974f884f35648dd71c3cf848bda63a24f3e00377099e8ece21971bd87b2a149ae01ec75333c7ace912f11dc268e4fc32f5b323d500ecc7e218629f0f1506a878190c86770150e7dd3a9ca7d21c6d7ab172b025775ff68375165d2a8dbc3b33c1748da3d2674577274faec6824ee83e8d9ed5b1fc68bf470dae7678ecf82fa7808ff7bca6f67ad02939af4bea27e3a8eca1dcfba86db1e9a04dfbd4e9f84183e4202792592a43d23297a359dfd352d47b8e1a2f3ad44ea85a854d919002ff27cd28492cc10ecb9d0921c51e83eee99f1a88a458f6d2c0178f86fc2605daac50218ff3fc5057d7f1a1589a96a56766d93840f36a4c1a2cd77b626993c1309f17733b418d43cee04a3e7b6685b228ecc5ec4f6b676b9b2073503e40ba288e1fa9344064cb5aa16a380e784b3e99a3e30000000000079a11000000000040a980b14b45f7f63637f1d77561643eda57a352e770d642bc34b89c4b522dfb4bf4154b0ac308af929e1a4c1b9319e90f3525108fcaa29fc9f0622fe65dfdd9e6010020921396183d1e2e636f42836f3571fd31e7a57812ed3418d047bebc926316730b0000052c5b85ba2b73219d0dfe13f385f9c11e3cdde7f1b0bcf6cfdf62bafb0a8187d88133bf8e12572f96f42bcaf9bfe3c8175f09c147a5c3a6d403c9c7221f1a5b339ed70da25f7f44f53592298061a34bdee819974225390e09dd36ec49a2a6a377d81d2a8b989a7ae3dd628e2d2a1d19ca37afda0316fd500bb7653d05982080888fd3a480a8ec6b316bbf6dab8530c7e6d57badd437187e30a1181b67eb5d39fc1222a1bf0bb34fa5b3be6f8a5642a54915f385f48bbe296fde7c55bbbbac504c48c539a4a4c3efb5b0aa2182a6650528ac04c56a707b0187c71df90343021b4ed986aaf610be7ebd85243c4edec79652f74d3d264d1bf3c915dcaca6aee3e31918cc9b66e6b3895fbce2ea4fdaa7e8cf5e31fff6b5c809acbc906fc8eb4c1068124d9d97dc93975c03ea75df52919101251e07d879d498c0ef0326ba66a037f524fb6240320e43861694ab1eedb84370992b4d6c6773c36ecda0cdf2b904fc1ab971fb0083f23e0cb4a802b692ca0ca8faf1d9daf655c55189ae3d5b63eb3d6fd85ca76b2db3d4c22f7473e79cd0591f9f1672adca9930202550ec5b1211a6e8380da6ec2e5cd07cd0aeb46e073d5ff9dfa48b212beb2e6528609c90de5256a64357f5e21adb8150d205ea2e2451fcf26791b051e456f495bfb9db58f0a584020086b7efcc94dfb9baced64d95c353e39c7d2c7ca416eefa993e2c2179067ac237e0971db32f9a255432b69f1d40e4258745d3ac140a3cdad6b5e36d781dccebf732cb26f40195c7ddf7052c2494ff634d14a7b29ff6bed0b3555ccbcc2cb835fed75f65153a3a38bc6312123dfbf80eb2ba6172966f13d27d4b92ad00390a2dceaa4a2f072449835cd0f448f29d712efeee90a5c00d2d31391976f30c37a33ad95af066526f1b9696d2a54076141005b1a88131283faa8d7b7c115a42698c1f7b19d191dd7f5c293bbe8dad72bb6af5b3a3f2cbb8eb3c11faea03d54e8a2c236897f7c5356aa9089d2248bb78ac4a0a1d17f46a39fb572ce63d5982359397667705426a621567fbcbd83a4c8eeb24f2c8cd179f0d43c265d0967f6431c22438f1bdfc2254f5dcb13f6e4090acd65b38bfdb4f1149365eda41e49f93b0dbc7da6a865d1d805e43475c504409f90cab55423f1b148865aa0fca6f0210800a824bebcb8b4e91edf968a2276d3b1cc8e039290f4b1f3a7df9659dea7888b299e5587710f7c223b555acc0741be07775de13545479637d6d1685b805fc95b0dfca09eea189aeb7c01398b361b969128952f2bcf87b91f5d10bfaf2c70fd6e91533130a57519438c44d8ebb2071d97516d9f23aee232e51afb24c321aaf5865aa56f98f1b7629f6cff6cef3757b50aac3108ba7f5a536c5036747e6a776a702b888c62166839e5e2d4eb509291e17af5226ce341333396ce0b817ac1d3c3e9d1dfa56d5c4eceaa2da92ec3acc5824e9db69b8e9fc8a87d14dd165d4e2d361d1e9da2a5baa66f78c2fc833e2a9c3bc833b63e32d709438f625849576de0b4aa01541791753e8c9970b67898724ea24c8960ed55c709d62dc77144d93e3153451b01c3548835db7568883ce7f3756602d76744bb32bc87d181494872fe634f0ab1d3ce44c4b9f6c72c0090b058bd0b68644ee0cff490e605e083bf27659868871f0f9634c2925bbe9cbd032683f64ffa7f258fbbdc51130eb5dc3b0f7acf241d3064c16e011572b7b06a80c9ef4b3ecc49f958b77785716c2917841c8c601f20661f473ba3dc49943dd66716955685a73ec8009e46a1b96839271bd3532729af6750a4b4053fb91981d6383794bb7fe7634f3c8c790e129086aad881f6922ea47d3a045c61800e21613326929656533870200200751278680f71c6339d408d2a7252fe96f0af4ffc65fbe4bdd78506260927c16000001bcd8f9ab7a3cb7d2551b4ca1d7611a61db429820b67253042c8a410e6637a224025edccf1ea7b8f223655c15cd30370e3080fc88c36733360a7a06d7ca9687920d92883144b12bb23e7c1bf8b27aa2257ab8a200780c15552e4caa9b18cc46230e0c23657fe231d32c295636ab4f086b6671e3f554160989052e5c2c430314ef1202ffeb02b5f08a1bc6771851c8a67195796067544a9ca1c8c3d751ae9145df6dd250aab641849ffd72fe95de56b3181df31e1a5450a89b15cb24da37e6aa9a224bae3bf3f3a4e23c1ec285870ae6258b57f460f98932bc8faa9c34f2bba1e72c3274f517c4552200ee7aac65b968a14f27596b15d16ad2fe4a7172c4a4ffde7dac0d966d6a8519ae29bef71820694395775e39e2ce28efc2fdff49ad833182765af199ae22cb85ec8e2a86853cf7536ad612f5ae65f1fe4acb8f869337374e2d14196f6cefa635518b1c01bd104140eadb2ba81441f39a3b016cde3606d67d4d65fcbb7b9c5ff2274242d3fb3323d0875dd24e1a575dee51b3158f975efd13cebca1847d048286d0145dbc85af99d715355e9ff4d7c8d5b852862bc0190b4a0cb37d5400eef3e350c4f79a4a6fbb6c2dd84ffbea007544b66d830460ac1ae1a720716eca8212f0286087ca6f0000000000079a110000000000405e673ac588f73ccc693212bca42f9e1f7714113ba2a8201baade4fb1f9ef18cb12596cf76c153a53e48a934246d24c48a50e363d5d45755edc270b95a4d0b732010020556ccb1923dae810a497233f2dd597d8004520e55ff058aaf74c210e141310120000052c1312876ae369df042e7fe2aea8fd311b8f4d6c9a31bced4b029cbedeb0ff38b2f38a0ccbaa1e09f80fbe071cea6632cd2f7d5b7276399265230ce2396108e919c6d3a3657ee531f2446e60d19ccc0450e5274af01de1473c4430262671b02f6eb2a31ac2c0b480da93f5b440d367dd5d82396013c68fb4f1388f35d15892f19fd7d9ff9ff05e298c01d025056dff5d3551017b183a3002c625e93475795507216408e0dfabd9fbb2e6c19eb8dbe48aae4d3fa9ed174c33d32f546fd3bae3caae5aee8625ec916b3e0df3a0e9344c42f6f75c0b43477d5bd869a6c02874b810febc9061dd9b4c1bd3b4771fcd753ce3fbde64d1d529205a5040935bf4327d644e40db300e7265213183cb2b311ca9735666af92ee905f4eabee3a1f249c86de0c977b8ad3eebc22d75fff577441444cb55326f07ee7f926b28cc08f55b5fd3c71e8811dcfc15011902e9fd57a50ada3a58524d823a50d6bb87e6549530a06d96e8c516bc8c15ae5a18f1ba010243bc5dec4a4fd1d7691ad3bb68186b2d3cf9dd3c068f002fef654ba389c44795429df4454d3707a66663dbd3170248f4c2a61c890a730dfb42bf8617f2469ac5c30f97c0adc16b2c016180035326bebfe6bcdf05e3593f25a1bc4c79da12e098e6b7f8f4979a9ab96b5627b21fd69e33cfe8b275c97f550f7df56d7882e77a941e0bef13bb2b87f2ff49098e2213a5940941ca646a8056953985e253ea63dfdd604e35ff7e586508681c65fa15b182263a2285ffd31534daeb6e91db15bc951a5fed7fac5a3362b5d4ff59b9cad54cfc352cb0d484058ce8cd827f8e6cd7a2f928641383d47d754b52bfd662e50039df1ed5575104c4c75e1f67af36d5ccd5db1c9ae8d4809f09f36dfaf72330f84bfbde590701525615685eaa9da5aac49f2d8141a7e7cf605b18e9183cc1ae15d93148b67685501d86820b8682dda3a8b7e8eca978d4bb8ab9ce5dc5d3d261182c6173220e1060bc62f32a8e7c3a749d02763dfb4d2bb1643ccd68671c7cd9889a2d323f9db70770cf62a6a33de4b0203a2026d2fa52da5528f59332304d994d39ee098b0342e9b0e96ba9107684c946e03d2f42d2c22d3a9e1645b95695e071c8dfe57038ccabb09b524372c45dfa833ec170255330d5acb9db5183740ad7a0b5e83841ab66447ea81050ab7290df37d6bdfe317cb96261c5620038e3a6a6f3a75a98c8b3b3ae1a97c696241fe021854493abdfa1382d02460af34f5c1d1d4347f4c867619473d54251fd46a73eb3eb4d3fd9b5028ccd7d2397b8aeccbce89eb39577c5e04482b189af6139c8c9f09c91d3a446cc83ba8b9f909836441a01e9c5a9414446128303d27926141b99fbd1470d5251dcb063b1a23ad71170f2cfeb053f66e0e906f2eb25f313b9d3d78608dd79e31b399fe964294de0df1a7b257dc41dab72453789e075c89cc2deb3a4efe0d25803284c3c3d84e58ed86faa48e0e10213bc50c634e2b055b6ce9d35ddd8bef5021835e58e021ca60c07ca0495b31e570ccec3b9a733ba250003169e837bfc5ad5f2b05cfa7fa61ef3fcad76d32c3292471c9d0310cd277a489420823f3f11bcd229f1b8a75fc0f7719e2ad885528c87c34aa4a54bc4871b23a9f70b2838e0f03a3666d487e5633f409b1f097d5b762ed0c1d6d3a314b92ccfb49ebbae3e2696578ac72d7445be3540aeb3f34c83e2a9f6778a4f32ea781517c62f5c6218b15b9139490feeab86fe37bbbce4f9cde8ba813ab8707d68a0dba380397a4b2d5090cc9936cc014388c8586ed1066c5e9ea932ca78b1cee7c7064e69bc02a8cd8d981e044ee1b42b3ab1a49d03a150f9365aa2873f902c60dc2f5cd85131b6916f2020020bfbcce09ae0c3dec2e8755984f03ae5872ff2eb0398822dd87023712523b1856000001bc3ad6cf2a1477f4c1846d64d0cf8117e5ea5c79b7f9207fc39f6c4917f97b9c3bf71a6849ebad494c4076602bfeb3f9776a53f544e8cd7c0397c6fd712a20025662dae1441887a081f771e86c0514eaf0a65368f78e52db8f212274451e52bbcab97e6cab4a668d4f1a5f62f077ef068f6804078e2f5b072bda5936631dd4f935a72157495c4db052327264768bb5eeaa05d70d37e61c826b76dc45da5df0dc7dd30be7c523f597b7686a7e09282e162510a890447c16cf0a8ecb07067c113f3634da9dc326a3814b81a5547fbebf5d46f4378cdb93f53ad8eb368b4b77ac81ed7bfd9d25b8f0e4bbd38e834b22711b32de97b2ad18fb0cabf7ea750f49ef40dd1c6d104fa929b19626995463692a8589e3400cfe20577f488e329a5ce3644ef797479c281bfb35e590932cd108ce15290f43a3cdda96c972a3e13ca3a0a30dc87dbf78182b6f00ec77bea006f4457373ab6a67959f37174334c4d7cb649798295e78bea5a38c83620bd9c8b3c5d5f2867095840e290f36afd257f9c92910910fe22a4c90200cb8ddf648af16b624d1c33f73a3b54aaf3470001305913eac6b6ba257c6d96123699faab34391af3b30345c1030a3de0f207bfa768f5bae69e512a4476acd5ad2cc7d22fd6a1d0000000000079a12000000000040c633a355bd5541055e51a164fb99b67809f01f768dab502bd26003a9fd1d304f33e53fe4064fde379a3b8286f6635f9266f8da7cf698c79ddd4269de166f6388010020a090034501af2e56e5c7dfa35a3e9d665769b005c02db69e1c8c1f24e3d6cd0f0000052c370d8c18509923962708cbd5a45579a7ebf6d3c626375a67364bd0af8361d946b34f9fbeffabf098cab7572f3b1655a8acd90b096c3dca3565003e02925d42f8218745af82de5aec3906d60b8983993bd4178c02e31cd40bac788bea4d96b91b492d8202e4398a7c2f57488cf0671912b0e52cb20d6d3b33aeb89d40c71728b6637a5971503a5b87ea4e29df821ea77d1db501d05db210c2a753c83e7b443131e8b048f0e320486f6c5e22ee64b7b68b8d7e8bc97d3bbe8b158ddd142bb7fddd46cbe082450cf0b8443f9e3c2251f6407ea607f1c0868cde7767cbe348f0c2434451580f82aec21f595590b8228909dc17bcb19ccf59a5b0570338d19926ff91b734f9177b69ef3ce2dc6ae35d93f64293ed2b58772fe0225a3a1397335f20838af1e32c4945494549929ff5a63210d8f3d5c103da8f8bdb0c7039c8b4dcaf519af71f5a24ec77a6d359457ba2f63ee7e3596cce5750dcb0eb3ac2e237b6f5abd984adafdc13b079ff268995fb6300e457bf462d533044107a6a4482dd11e6713daa0f928d51d06118ebc5275bc05c910da3bcefbad28a8f69472974c606dded9b83a540cc39b5f6765cd62cd5d2b6f1d0fcaa72c024e9700d331a86d2a413c64f8423860626d46eb750eca252c7291ab60ead44c10656be81614af6ba6d2c19c0ca90d420556fcedaf82122576ac11928fd4e73534cffc2a2767f398e38a59e9b6c703fb906a1df769b7dc787d27735c1ac98b6ffd4f5416297ff95eecde0f916cef29a4e3c528df02bb76da5c4c4e45321bc3649e01f75b9454c7aef54a17932af552bc4e88ef32276a2b7405ef529de339d47519db163e4d23627cf622a0d2f70d4b394c68931259dea5d055947f52e74b7d85276e123beb24d0ae7948b6a4016f23f3942ae2a3f20bf34271603d6ef3046f1fac9c803f3070e147038701adaac6e961d730bd0683d70d7b5c52d847a25928c3007e9784ae01cb66f210ca37e145c4eda3b7b2cd7a19cb3fbc409883d1bf3223f41dd8d60ac86cd39ec96e2b673e47c4075ab8552ddd84d2a627ea5d62f3f42d58956ff44cf232af5bdd670d57a06dd935962e9ccaadaa951b7fd8432521826d6ba746038cb0c2f466e1a04376a6243e18b47497fc417a734e993207a66a00df9571bf32632fd94e354e9a15a10945b1340e0a62c9850daa8c8f7ba7acb7547fb44ee9e69793cdb7c736a2f9d2a9a670470792001541aa6ba8c8c85f7a8ac76661561ef1b4c1f3d4929703907f589debcad98225f6db32e19dc05dace998d3ec2d84b786e2faf7046dfcf148d4037ef36ef3db53c5054b91c9b1c8f638454264d0bb8e373061fee68f1e6ecd61edc6ba140b2f21f98b9465f37093fd6f14aa2a3f0fdc0a253b287dac5fb3c9a0382300529fe12f6bd1fbf9c9f8faff85596efe0c60344ab777ec1007c6938ea049de099a350f2a63db8f23ff5838f7ee4b45a2a018d40e2adfcb960d10cc41bc74f7f8608086256dd401f4a8204d385fe848c3fc02d81ab208536db66ffbb0bc1437d1e379a691a03136c9f384bb45025f846598c3b120490016736194a4e914cc0da7f42a1f8f4cad4e61a0b2d1f3b7101de5beccba65a82c7a4b2e720b3f5486b90a5dfb4a74fb691580275d6a3cf7dead74e90208cf8852913729f015f917f79a4c86c2a78f3e1b033f7320ee2e1bb10be33e550018344c573dd5c9b010f7f53aa0fffc89a62c8db013eb728d212e79bc94ffe3195aca41ca7e15b89136636abfd3cfa1db5cba36b4542e0c59ad3a09717b7926d0f0aef1125b0e00bc56f58ea01066399c61c5bc1ee605b6083917e27819f852a42f5188334c7e151d84fa7f3f980bc1b5fb605d41e020020b66f6a0dd01344856951d169006590f0cc7540fc96b49afad63a6da18674d010000001bc289f16a88f4311bf520a93be5fb3555aaf6cd63b2d751fd696a688dad0c609a2ca5cea4493d9be8f042a1f231d7f61d6b8767ca2f570b39b3cc23a51aa1b9539a836459c94f7fc8bdf9feb2d2b168752426e7935e6c66ef35ffb1d7ae317beb002817127ced212c3ab23d33d7113b0aa06451fabff7012b13c02a45b49cbf6bbbc8366565bbffd00c326ceaaa2a2c421dab7a6b64430cb013d6d909ed31ede3ae014310a8803413682e2ea4f66e829ebeda5e7b961950e9a4f9d898baf94c210127bbe2f8458365e75eee88a34046ee75cdb60a1ea1bcab3fbccc74c41bc360ebaeb7fb150a7e7caf4b19ca7953d633cea66f8be4dd5637020687ac3a2675b9b522865836a522bb7abe14903536f6a8a54d220f445db1ee615bc55bf8b3aa72e903977f5a7f1dea8f6eb5dba6314e8fa3ef8c918f855eda63f7798a3c8180a6e12543364c1493158f717fc68a90ba321d36227cba4d8d6b3d08d39dca86c7c9a7463479f6223928b212e0d9b45ecf3249c8806bd03f0c86cf287b199a0d7f3771169ef7b271f543f123ae568afc9ef1eefa8e3cb2e62a9a70d2ef07702ac0c9ad4af5a88ddd94eb943926954a8dd75f29dd47d6b5c327eebf7e8bcfcaf1144365165c6528693e1cef65cd6980000000000079a12000000000040600688d234727feee93956cd2e7e8555e3da4cf0d67c9e3410bc9712416b3463f86cbdead18fe9addeff07af8227cd4796e5a1ca635d8d36e0a579ec06cf3c8f01002025451d88c7f19c5cfb91029473f1ec231af0269b5bb3f39f1e8e94e1f0a8d43e0000052c589e4b4aa20c91b4e859240195ff34c03fa5ea75c9664854d171ad12266bee73ce02bbc95db6f5ddd43dd997a463c4e5f087a5cfc28b5d8fd9fea358b07da493775d1569e7e44c78925fd1aa4361edc2afc4c27f18fc64f3548a891a3d453979881a4d80da6065e49cb72cc4a16cb856287ccf7dc2da8eba46968af85bc3a26296f8208273a7d3c6aeacee38178cb6bd04577374486c20c073da64ed618725cbff037451b3e68faf0824ebeecd2c8c971a56d1b14680f7c0b6bf4ada4aec2409b3bffa67d8dc304139e953a36b46b435d4a6fdcce839475d6b92edce1239317d32273926adcea0776be8edf3041fcac13834cddf836762f3cd5c1e2e4c0ee1f73af289fef0c5c78f22ce0a9e8a84292f94ea715484a2f938bbbb9a3a5b2e78f4ac98ed294c5610b7a2bfa41cac100af693944ee75095d7277de385e3e1e23a41a96415afa9da2ccdfee298e1af4c98d286ca40b2e381e5ce2fa3e75499c7e7ec2bf48a2956571a49783742248cfc11354fa40f89e0f0f732c0d542633ead1241b168142754128c7ba103e31e54216dcf1c4b44f5f8e0deaa30fce21ced53a6413a76ec4e3d653851dcd19bc9f97ea66d82b813307a6535ef4aadda19880fde81ade6b8fbe6553ff8409b216033979486d76efd36b7b7cb07e39c8e86ed0678d6a34ee840dff62f1aa2514acd45da3696e17de6db400b059cfcc560adc7b67ada6a27882662e89b10694995f53c67acf64611d94249cd5569aa23cc74ec16a840f25def57565a7fb0a39785621e7d7bb5c09192c2e7a51ce4896ef3361fd511bc5d14422e824c7e173649c20152a8369106b61f60db3b683c85fe9df714b79ba657d3cc588ebfe96ca013205d2f8bc23b8e0364b9438af9d2c8b1b41365ff13c7bd1082861fad8cd1c4321449a02c251dfe215f215ebdc63efb86d2d57e1fe3c7f2d41fc5f34f81e2b90f7e9249736ceb8ac4112e4f5166c7c723d84c36aaf21b34cdde716e7595643bc1a606b36db12057b628a75a0a78b25d5dbcca11d24445faa5be56f1da401a17b7756db9621ec578dcad3e04a3e28b1ec6f477a1c04a3f35aaad56940dd5bc0dd182910b6340e3057ec610b0bf7ee1be3ff8e27368ff1152e9d15e17863fe58dacdceaf9341b798607f659b46282806be49443c30f90ea3d554d941c64e57c8c665d13ba320b388b8a239c9efc984aec624f5fa4ade9982f20063e37557ff45694ac7776846f7a33bd6e5aa2f1ac0a29f0498db5a8b8b89ab5f3a39a94819deb3597894aef4f006b5809526137584dacec13853c1f27921fe47691a51d47531e9bd5a4f40d6a571a776067a1e08f080705ea73700ecb0d9d838901281ac7ceccb8d8746427bc2a31d716162a885ab641b7c986d8ff68a6db6a9b0551667dcd53b8822d73d6ddd6412e4cb8fda17ac4e20c4e5d68b96da85fa7707ecab9b3d493e32b2568a180d5131caeeeeaecd2e5f6c5c9a8be0fee692a0d3600d9e6a74f6cf65e44b74d197b1a8dd1ccdd30f86337a60d7c20ca360a9da2a25579f5c7ff502378212051395a7870bcd94e1e2c42fe7d3ed79dce461143ea49d5718b95689c1f39282f2af52b6c2b4a34f87c5ccf2bca4c3408ed7b143b7e30ccedf3441087e391e669439834648c283302507556310445b63170011003460adae71d19ee684d9d91548c0c19bd53c8e510b1a70fe1c53512e11783619b2d2d20c6a39a3bbd451d02e9a0d52f1a3905c96d8a42a39b3039703e4acbee7109eb60bd36dfa3a5ebbacfad4099682df5aa20a34ac5f630e423987a13fe17009bc8310b78d2447e9e779e24554391b86ef27a3fe546bdf33ccaba8b707544a2ab851bcad55dd6300ed2fe020020019c96d0e865f3d065391613a17a3507f7bd12e3f664ccafbc817e169e0ba17c000001bc6c12745c81cbb2121c8412bec3f72b5e349fd3139d19ca4d7075157c09d28d832a472ba546b3e03fa52d0cba5608678d24da159601e6679123104aaf5df890948154605a9bd62373038766585625bd86be37e43aaae7d82b5908167a57e128375fdc214825d2c96734141ca5bb184240ceb7450c449e1bba09f19604a0654c0640e77091ed2cb6fbe885a69ba7434a0f95155d57019d6c35eab936bc11b1803be8847e919cc13d4424eab042e92cc95ddfc70875ebc59c8468451af6d7f207c4956319ceea26e4926576332995748891fdae4b6d8e1a6d7e1caee7c6c5a9204453b1e3fd0f34d20a25df58fa7c1748ad856c9771d8e16f32e5b03bdf3498fcf914a9671f7f8a14c454e10d3e808814dd3eaf21440b6310a8f8de116f485c871279f0ed3fd060d13e4805190c004c4d54f855586b4018126ce5c6ea0d4dfeb5354495b270e9e0625ae1fd15838fda960a6fd691eb16684e70c02362c9ca898e4e5f70bed58dbe580146dd4bfc84066dd492fe68f9eb71bc8ae4ed6782fef7efa15f7b9151b0cd41e6695ff11400fb44d38bc4a707e2b3f49375bedfb17c14b8165cc163ba572c8c5a837d4bf02be3bfcdf28bb16a780a8ac9ec596b9ab40d934aa97390015d10cede33459c0d0000000000079a11000000000040018e308a6c83dc0d54f31336582f398d201df948940af5b54272b5d786109728bf34bde4a362c3beccebf30f83224a3eb9bbd5f0256e01beff2ee80f2f07624a010020c92300e6d24b7c465b3e5647e2b2b35f67da0d1c2f0212d4098dd452d220bd110000052c519c135e95d28c12cdb470d2444da42c4210f1498f4600693b4c3f0c23c9d77ecbd3a1c42d175addf7a1f6a4869eb9bcfddff4a491999b119ce27f700a4da739909c91eb55d1d5daef7615427fbd207d2bcb0211a734783ef5628d98398fda22a7e4149be3b1488467ca1ea2502feb9ecb9e65cd905e9439a84a5b7f6af792306f71a2756b25a418f33fe043b8663a83d528cb2859dbbe28eb210d0cb047f2f7c6f77bea204a090be3dcb6dd299d45170a47a4894bd7bd97b033c14306c8d057de2568f99e737eff1cd57f1613cac613112309d5e36a1dc38baa143a6a244c1c2f0e4978d76e64179100c099d8d62f3f7f836382a7495dde99141b9aa2dd7a64cc3d45108aeb68e06a07ecc1272db8f65456bbd15b4181036fb6e1fc8d22ffbc5379b92ef778fa03b3b1960cab9bc70b221b32a4b75694091869d529cd974484c790042b6c514bc3a888204c7ef897b35b305f6943acb4d700edeb4a218d18b79e3f7f94005ca6057eda3f9e177b0b9390ad643a926ecd5e174143eb133c0e2f00c345c814fdbfe4d8522dfa560c601e76cc5aad5fe54ece975673331f0d778416fe6ab27960ad4b2420bdae244bddc0e51ac691c6b411971368b9d0f799cd1e8eb499af76cef6f47852854953e420ccc1198aaf8bc3ecff828712caf1280f8ee50ccaef198b1b8c03a45eab84155d737e6361acd9203ac76e7c8acd8651c9f27dc6807db93771649d10ea710b128c54ec6a0410465b632326d427408a02f24a7185d7dc788f8f1e5daf2f40ca3b51d4238f11c0ccf99df2967ad5b02daa6a3e936f3415ca8d8e30d9efd29f1c7e846223728826cf4672410945140c6fd1194094ca9969ee002ec4d0420ee55b289b820d83c88133d21b586193a5562b39bb134f4a9a5f45eeec152cbbdd21e18bd9d6672b43e8aabe20000fbec2ecf63572136283bfc0c6cfc15e67b2c9874f611b544bad69a3bc8ea7ca2c94d6a02c2f776e70aa9e34e33fff090afd3c97d8ac2b6d25691c24e0a89d9f931c83bb1b1074a5475a68c3e1eb9c1b404cbfe4734267c38d25188f7b1569bc569c6b1bea5e42a43be24f39842919bc45436239b06bc836d85a605ce7eaaf0678e90a76b9436cbde1381764140c2c6ccce5e7144d1096b77de7a74551abc6e226db4b78bf50bbd7480fc6c6922e5f892835e5ebd8a2867b596a9c98e211e93ea5c6ca85b9e06660691b183e14baff3e6914d9fc18f035924af3a12f598e77fe459e769f568033f86965c6d8f90e9fe5058482ec5496bf1074f79a4611f180ea6c16c71efa734c29befa9f2c885eae1fe164dfa52f2d9fcd38222f98689fce361642d542135d6aa348bd8679bdc8f869bb2fb9b9310cd6f0cda049297887377577d95ae530c8868c99a96528c23b211cf37d6650beaa98adc1f129d31d832ba3fbd5b94ef778292cbbe305e0e9ae7faddfac6d3a3c73c2ade6ea0dd9338c20f4b2c8bf96c9da8f97a8399d67e1e5cb7171d346aff218375677b8b5443aad79f3b0f914737135f37b7612313d04ca653c32c1640ebd54d8b1324ce90634d0b98f633f26b0e8d6d8f5e50201c5aaa17a27e21361ebfc520cb1cfd03a72849ca98ba2aa8bb8edbef10c9107648d9ca841e217bdf78fc1ed57c917a4459dbac22f8960e22cfb4be8260b279f0b6c82b2a86d7227f6775747e7735a37b4df70dbc1a4af6825db8c6ad4dd881531a5011a300907e382d867365ead24ac6f053a42b9089bed67e2a17c60ba5935cfc4a4878b0b834f42193a4c6259e968e556b65185a9588082d3828294e7f5270d30701c413076f8fa0bb0d1bba93860cfb99c66ca01f65ac73aa2b2d780980dc2be5929170628db341f02002071139a6b6a3a5f24b7f2e979b159759bc96f8fc9e406775b07a64e80738ed446000001bc9711ec6b979e6abce4922a958e771a4496ff4374b6336c05e19b75ec274bf7a0fca14a73332f2c35a1c33487c34fed70f901624f17981a86ee848a7a9a8bbe66059f70f13226449f6d0f576d46e817a4b891de00b23d07aea77f0a62b0b38687929b619d13d163f180e42fdbae00f2d7e1c60682cbe37200511922bd751ebc5625bbc7cb843b569b268856900bbe8b1e7cfe66d1ab2463ef26ff1cdf7062ed378b5094424d94510e28f6d7fd29009bd4875bf3be97fd9378a09d14907b9d1841a400836cc2c1e52d3d3598a50fbcbca61b1d5b7ad500202a553db300a14fd3cf20e07194a22d329c3654274c13221610d89240a8dcda37dae485c34a50fb1bf4ca7c5ba7210ba28ec457770cb533231c8d21f193df051071c6e957c1e51aebdbdb732c29a436ae830e486b558e47caa61a27430459ab8e27e5d3dddf481d7a66c53171733750f36049daf2b899ebeb902304530afa679b8fc1029abad102acefa6afec7860d5bd9ec3e401d0cbe7505238d7fa84367709e8442bdf9623e0a4045f20e0e6dceebc208580ef94328fee692e4d8e97db4916f0cdb983e206d9dd466579d17d1c5fe3715c1b676f2247f613871501091776e3c552aa3a82b4dacf5d81f57d9c8e34bdbcd78f946e0000000000079a110000000000403dfadc783156aaf238415de59c390d1aa16e372fef61a0eafffefe718d19fadd38f16f0d98337f8342d18975912c67382eb36d1df606ec1288a92a0f05e08f2b010020d8b7e0f97899fe88153a424dd6127ff431bb160f4e2ca94caad4fe1fd94e05140000052c6116afe1365d540b40550288f50a12c3198e50e4af76c1e5e0210f9e4b9b0c3f87172f8a7007b41c5a59112f0e2eeb9b934b0df29659f08eca4f524016c5bfe45196c66c182f644d9a54c63d92438315f2e5523d3fbe62ab1341b6ff5a93937061a379c51fc16e3293c558ee952ebb81d7f42c5e1b1d22737386d601509fb873cf177ecee46e34a390b45a689e6d51c85c4e3212ccfb0e9aadb0d2b67200a238e0ed29448b2ec3376e53185bdde201ea06ab6228fb32be899157a499c717e5df12f34a536e97d68fd31229dd09313c971f75ddaa7716220e60a47c9d22db45db13efae0666eb11b6ff9c260e3c12c302c48f0fb4c94eed6494fbba8c55a90e53833d55b72141d9c5e681aa33e4103298d9822204fe725f4e71a4328c6208f628e0c3a8accde9f38242f421a4728e24b80c9d9a66c9e09934813dece418bab7cca50dce3b9d1a0b021456041d662c6fafdcb5153e874f0a0e92349c810c0f54b2b2e0c053761f34521e6941e17c32cb0b2afafbd1804099f248b4f68523647ba693f232431075f72681e1914732aa30948df7ca563c6ce2a374206a8d31ee06c22b470e2d42d8ac894e8f5f2dd6104b6f6f01a05a79884f969530b973bfa6dc88b0281f3e2a9361145779472d3e7d1646982044de44970d3cd5d2c5f740d8886ec74dd54eb435ec550be89e279bf49239bfb6899e8294381546cccb045deaee87fbd8b54091af15021485cb48dcfc1c88d9aa49e917d38caeef418045d3867e72da401e5990cf3aa32e7a71366bfb9c0a5e55cd98eff1b875039c3fc91e732bf8e55dfe7ff76a61e69eda7906684c9d3c30a6bfc0360d2dcd94664ca1ec5abf8c8771ddadc29d9ca0effb98675c9cdcb88327a7b225821cdf38035d8f9560ced456fac110ec77362c58735efde779a9c56e96593e042761ace95ed721079b7be43d47f2db8b623d6915203c0eb03044a79f2bb1933de3436514e7fa2aabd1d72b49fe66f331d1321d5a8fac67ee40a3145f6c2d9a517446ac7805311b3101ee98e061a289455c48a90ce772e60a6eddf5cfeb4293f334ebdea3ec4e6f243904b25879156344bf66f8acad5fcfc26f918c16d3ced7291b3a5bd5c37fb7f22719e7052d1687df66262774b25b6dc83b063f699b473f72f58de3b8f889eae90c3e2e7330a29d16efec342529679134d5e17bca7effb58dc6aec91b859b79ead4e368c84e58709fc9fb46a299e2457ca2776513a3cebec6d6b39fbc12e82fd688f5b49f88bdc70f225345c17c22714243542e180cdc032ef75e03b9f0b94c30eba7855da395806f8abd71c7c834e3d9606880b3f4b3adcc036860a7832932596aef636bf43b89b16d4119fb108cb25b7fe12f25fa8f1943bc019294d96961de7ea5dde2605ac78ef13176920b303dc39347231287d3d8e2c02edfed4282b69e46e85bb39740e2fa68ea08694507d475f2b9e68caef036233572e4998575a12bdc25fcebcc0b0732560d10febc77211e9d1b0b7b81e8586e6e2f5f0fc16223ca8f51fc31edb6477f89516d72cec8f07b5d415bb150acaf6950874c012615758b83f16c98306c1b4a2177d8601d21f419726be0b2d48c6738c2647eba8b74451e053db3bf7d84ddbebae8e1457e44f21ddabf4b61c77d98c6d7b237210ba99872b4b81befb3c9014d9a54918c19189da87fbad4eabf8a11f1f93cccf4a4f7c320ea69d2730bd7272c0212651cfa9aa47d4ddebf58963b23c232b74bf92a2d4316433f6502e450af83b295bcb653a8db5a065c7eb2f7a781023025570595e4e1f38717b7d56859323cd565da389ed21f2f8762afd0d29e3881e2d59662e6516bb96a505d9129bd0cfb7c3bd9173e6d6a020020e779d18915cd210d04d0b2fb0a9bf11d9ca878d580afaad2d90225c12ece4f75000001bcaa587d62a4599556eff8c3348c20061d94c85b1f0ff94b1db5b21f01a48c587badd7e789fb9f87ca8daea2173ed0e42eb19a72f60a88a78ab8e6944f2a35774a75103498d3714d429afd8c0100c16662e96f6da9cfb3e4ecb2e134d446640b8c1495ff92698170fa00915eab2c307dcb5a4eacd58f998a808b47894692e191694eabb556dea89d1787059560d496dfe76e8cb53b7004d03f078f6299685c1deef059dd5e94def5df3223388bc7a3db6b8e8f788d26934dfa26b38ffa2f63736188498a713152fc502ef3070021f03402be318759b729ea68cd2a051761b3f48a66d94c61dd4415f254e0e6e3a8ea90e5b43d2c780b72c13d619a22f9d827b016eafe85c6948df5f3961fd9b12fc3f3593bd368a0c852cb145cc8c1acea65ca2e26ed6177c7496661e1b2c615fd47c4fbc8493fdc74879acc7637ea52051651dfc12a9dd6282f2a73d303a758f59fed2570a34f8418a7381ac149c27b60bd922179092384d9da1b6ac9ea3fc739cca99e0283ff31acb9f35b882a42f1539168216485ce327ce5a11a59f8de8bf1d89e747e528aa2319be22c9dd518ac77b0308cc4535eec87e8043ae1061e93be1c6d584816ce31e19a207263094304becf6beeb5cca1f27c2c231f9210d9860000000000079a1100000000004054c8c42bb4acec364debf64472f7c5426bd361afdc3e4071751b328107242994a399a8233c911cc58a65100758fcd71d9a65b1d89d61e2184e8cae69e547c228010020bd4372926e4dcb14bfc3d79f593bfaf9f9a6164481aac9c91ff8b882f5d613360000052cadb2d7349d34fb0e310db829dbc9f709557f4b44025b14fa734435766acb8a98e16da9253ea11b40266f68f640431fa2887aeddb7496d5fb975909f63e1db6d4627de252aa08ca261fba93fa37c8085d6c059150e1255d75f26ba237706b8857ff202f48b0daac68b4ad06ffeb33676aac7478d482f80a7d75502433e68788538a15267c6f93dd9a8af26b6d04dc6492b503edebeab7a8e4c4667402d1e4bda75740b6737669bea7defb21501748d598546b277c4cfa172cb081fba3c1e9ac9ffdb7bb79ce46ad8101a4acaee56932b4d3322d0993c8a9d426dac293028653fd73da6b756351faea5a099e0cc69e946533fc19b2efebad07b3fb23043077ff265e07d9bc25638dd4f704a89a11eb109387bc9850422b40eb354eb4d4fd9c3ddf74f5ef86f85a5fd3f0febb8a2ead8fceb7acc1a9949293e843b997bb618dcdf7eeab7a6e04ea812ecc6466965d9d7914a304277281cd98c91b3eaecda9b8409ec877d413b819cb6ce3c983dac9ee992278b43e8be195e74a8fa66703972bf15b8ab646d8a1254ca00cd47e6eade9e69ee39e6e63da0c17848e5be3aab265e453d295d1f11596669e8ca082d496dc88047931928c2db1449ac9c1c9aaf3dbf459a5e683da381e79c5023a305264d6eee41abb504e042b33f3fad125cf285895f3ff304e6848556072c551ba581ba3206ebb3370a4f00de4d99e0a63a145bb9161f71db2db1b8c419281829948b842a9bbdd33ff24ddc25ab5ed7f074fb139e4d33f3c1b8583f2609004e0ed44f9a45555f4b28d3678cca5fa9b96827ba0f719a78f8ae5b169eaffdb253ecd042bd859572bcf3c25d300399ddd53a198b95a074720a405b7d3afdba8749fd999c18b67da7a778ea71eb61bb25422cec111f543a8ce7898726ab19421f2f50ffff4e44c431b009de6d26db7cec71eb775c6b1590ebfe75f837dbdea24b6308639623e8c7e0e8d8e562dca8a5d07c819a982911557ae467cf38b46c29a8acc4df38d8d7e91902ff7f35a1d21e7bb736499e94fc646a45a67e5abf1a3fad2c04f09ce6693694a4a4d89f8ba67f5bf9c170c9e50cbe48514bfe1f81a11679a1829284a3643410d51b93140ffabef5b29e5c3e4a5afc39044a4d782a692940e796beb60071ca05847fea2d3011e17309944a8d07be0a8111ac3519d65aa62cf10590c344aabda6886b49dba45ed755848196747f22618e42553a47e0390b0839b8c4279e14e28fb17dc7fb572d2af7ae9d26f5fe74dc7dda1cdbdd5ae370d678807822da50004bbcdb502b57e1500416aec22f822cfbb79be23370add8d98ad37458aa3bc88195a4fccdc8baa7b37a6dbbef16354525a41f87840d96da6aec5f31841384dc74a413457241f2f964c9c2c0d5496f1cf7cdcc68c220d4c08e54440a62086198158442a2e6472a2dc5cd358e7984a48efa80d00dc701cfeedcf71d044668564cfe8c91bbb64e28bba09e0dfedbc75b82c6cf457f5a13367af15e39605f426e22354787aa31e0645ee981fbf7bf4f86b9b8163e003db6960f6ddec06ae473628fd726fa3efd07f3faef0fe4af056b4f8cc3db8d0dd1fcb07f90b9ca8367f236fa07adc241fee65f4d36405f245bc1450838e2f6c6d2d93d0edfc11b0ea44841a6d5b0dfe58c11d1248330b9b33ad1914a43a218e73adec85b5619846376d46e5a116bd93c7e8dcf4ab1b52b0e56462d05c7e185c982c46ed69fe42461ef1df47f1807bfbc3bf2a6f9bd88f65d328bdc5b63a51ad85c82163786ecb1e5c2568eaeeadd70b45999717799fef5821662cb27820d3708ea791833811081cd0350bc6be8cef84c40f3e236047c27aa6f5aa2ec1f29503ce9ea94e3aa7289ebf0c02002003a2fa88f2121d5c1a1cd21fd5651df44d55cbe5c73240d57ea178ce67fd2e56000001bc8586da6d8dd2c71dee54a298208abae4a4f7ae6aed81eecfe39901a51d08b8af12257eff91a810d162fb97e5a16cab1962cd9b0e736d438043afcbc0bd4d8096bac5890905d4897b51895a2a8b587f5604ac194c8c4cbafa3b0ccc595e92f8db2570b20ec88aa737e5b682a3497f1728b762c3ab39c8d209410cf71f1064bd3c6cab233b9bee3ec00ebd96eb7eeedd194e00a8f427e023d60ce98dd135cdc190040f0a61111a1d2a929926a591bd5133f328f15a9a59f05dd11fcf00e55d787ff3023f0f53bbfe0815ff7b5ae08e32eeac7199304699183db60a35f62f999b8c8625bdd07ef53d0eb1edd1f1d0b4a074f06236a81279f73bdecde1c7f96ecd0308128f8cdd79eac30280be19cb58ac5c6e487f069d7e959409ece03b579a49970f1add8f579c0c8d12545a95fddbfc6486ecafd92fbeca95ba70c0d791a393a585e0d0f1212bd6215813b4ad12939674ac82f3e19adb2365d1da800d6942bcfe22066bf2c3851cc2a38ada48eaeba66745659f2ae9908ff31de01814725b0954987613dae689f26987e2968912d1326ba6526b6c80380ddc867efde7beba46f63f37d3fed85fed6050a34f016005dcb93d921e82341fdf7b59bb1b86c26fa81954b496e01eb8b2b6d82cd34e0000000000079a110000000000406522b0e7f769819d55ca74be9c70f067ca46eb42ed6f4f7fa6a652f39a02a7b45a55176da2bd1cb0d4ef08b1511b3a4c778bc2e9a8fcf5939871dc853e628b22010020a89dd228039f3171551550488f71bfd228e087a5bea7833d2e52a5be5cd8dd380000052c1c8d08e6561883b57f974a6b4d2eb568dcf3677029b4d3551212d232e3ed3e76fc25dffa7ee78b19f7384ce4d7ce20a4f96dece35d90de5f7da2f88c30c394d663f0b624511a5fafd16e0ae4af22a4e0b8706a9c91513b565b74bc42920315657f4008f021ce982663daa8d61a9aeb38a3603a9b96650c1fd0dd36ef76d8ab3f55be5d378fc4d2221e81f3eaf8b9bf25e7078df92846005a505b006b96982261b9eb60538d123b326c8d88fbbfff33ceddf81d983dd649602bd4512dc519de901911a770c859f37eb7e612ba15e603ffaa25061e3032fe19122cddb308bc299551dbe564246f0387c2fe854062ee4f7548987618ff3fb95bdd9c274bd1c1f034b339d44f1de7d05de254707d43797ec94f46b5e3da0eb8a52ff8b029d9108bde8e0700c3a37f0c130ce156573c89278a227d5242b3cc70d38ccf4eef25ea9648ce2baa4f093052ebfc10196f01955a66a5b20a3840abacf89f9e33b5342839861b6ede15591cb9f71b1683347e9e47aeb86ce59e0231d4e1d0f747079b7168f39deeec2002a90980a2d350eaa30e244b33f083344e768de46664ebe7d6b4fc7caec479a8649c5a42c4b339fcec2040096c3777ab2648ed5408e94f6eb058128e92e4205e05b71fdeca48d74353d7331d7732d84c2e078b8935936b4402c2a1a2787a835c21b13fcb646b161ba6ea82467845d2cc8cd202c28def6ad28e95178365937d9819b4e116dc6284d529a974435f1cefe5e54d651aa32e3fbce35f5f58c93249e73826c37a67804ab5c5896e53028d9e5665d51d83cebecd162dac59ebc0c37c0a5d594bf858ddfa38a29161b6c1d459b9b28e58e51abc7d90eca4a92a00d9ebd309f58a1dd6b78c105543a5b08378221b5b35355e5e40099fb7aa720e7b166a66d4a7ea499c50482ec3121ee527f0c967871b0adf0f4762f2630b08f5ba7270064ce5c6f1fa5da6dfe73c32515d71cd247580e45efd7e29e6f9de2a5f1de45407d406a0892995a71768f7f099b522d2819ec3e6edec5482fa09cc1d12024abdadf554e0ee3a748cd253dac14f718903464859459e11579e9e94d1d0d55378b9793d393f4c42950db837ba9bca04eb46fe577e8c39806d355f15e1c2deb0c0411af73f3da2a5f66a2252add51c2d3cf84d89b52173a1128e607d52ed18a963355cac95829a6563fb03eee144c334b642c4c14902a48f02395dbb6b31054543f80395b32e2a07ce3dfe88495a8504a1fd8e001464ffa8e440177edf58cd39617cc566118c0d210d505428b532741bc81b82111a64c4d7775514efbe4aa4fee9265698d52357edf298b18728c1eae12d62c410b47bd303c8b34752fc50793d7b15386e051e0cddf86c60a5a2356f9dfa38294ca5e5b7be222ddc1186f307d518e9a8daa62038f2089d90b9f2e478396a48f01ba0e0dba023e347e0fd91d9a5ef85807120e373b2378408be65ae344d303f18a7e37dd62c14eb92ebd4d31048680158d0c3e2f4471ab6d327a6fa0360ffe304b5d0aa9b4ec003fa8322b452b671be0620c54bd8795659b932df0465a31d4161123a7bb93c51560129406657a604a4ce2bacec745afe39d3957c0a36d7b56b6d8174aca7983f38f8df074e661521ca26991daee90564e470cefbeb9e33a0b3c91b4274561be20a47309a4a12a935df4c9da5e467a0dd7df6c546f83a9f9d332fd20e598946a9ef4db63e9f73b0de95110923d46cb33e6d549eb038ca4433370c93699b20ac0744aa6178e3506bac70387a7f6c02d7c891f884376479cc86bc74a75c647350840c0d43e301676a1a66a1a163e328c0288351f8969da8ee64eb1bfaaae787e73c8a9bbec8b3d6ed82f09488fcd7fbe0077e2b020020b1cc8db8ce310857f2f1c25f8cf38b32a6617c8c089b4e664da1332e50e5977f000001bcd0f5eb3f86f7400963fb1eca13f069eacee1345bb6ec1498586e510b6b3d61e2efb56783467379ed8b5c526894b5d0c09143fecd9aa014b159af7e83d0eb55cc5aa8526a0fcdf195bf321dc99844cc38f384da06d7641f5ea85b218fde5261791fdb67749aadd79661f1a80eacab405d9df05f8205202c0c0362e8155f30782a3f0247a9e3f95156c2e8aa69a5702b1b74853752b999140c36285189136b7981ba744555bc639375f36f83c3729ea9df82032dc6adf3c85d1db8982e1792d5833e77bd744ccb0daa08f6acd971434897561665f8485aecc61cdf102a8676ae9b31ee55ce1620a42ec507ba331c0d422b8203bf2f6fbe55ac110780181b4f1242645fc20abe72eabee2ab4c036019e7e9ed26788d921c2828ca52e0d2d454cf1fe3e5d0206e0bd4f4f87ee81aba75cf64b96e49ed4ed65789b2416bda94dce30c1510b0696d9fdfd72533f6dca3dde292e3d91e87c0e1de62120a83f6c687997feb1550a8de390fe5764de3945d81be0906c99c298f5df008e3a090b9e74d1f782f4ee96c786979359b30de8ddff86447238cc3c69a0f97fe7f4b373cd5ec8d904cce1cd94ee2a50db80ec88c21a9bcad9a981aabc6e2ce88a6c538c0c365d985dac103650b1b2f4e65d5409c0000000000079a1100000000004050c57e2cc913208866cfecfc7f8dfbbff0063a6de4ab38b5d86c25f3faa64105802545b6c709723ceb176bf95ff5d8c949d9af994bb6c051ec73e73f671e036601002040a60288da4b18876266d0577dce7e6e46635b7a6b9f579e1d17ce4b6f1f216f0000052cfd86551e1823cdc2f91994495038750bf050ba43c2b16836e57074d70fa4c3e32e8848c331b8f8b6012e1ff48960b970e82d7452090a2ce2f4bbbfa9ce71e8eada3abe720ae369e58b50d2dbf0599c8c132bc0e2066c0de7f8ded236e6d2aa0d208ff41debbbd041729579b4711d3ed511b93eaca714873fa679f388fb96360608f7b4fc06ef1f1e6a687ba837fa01e9255a14f41714c995537d894884231e09f25274952adc8f9c7f3cbd54f31e7c5fdca3ccaa9e2dc6fe8c0797b1c0de5d5393955496450acae84566ee2a326bc65e28c175ee76541cf620c2790120466d9baf73d45a073b4bc4f949ca2256e3609541af14ce4d9362dffc1c67b08c18b97eec8ca626337736284c74940ed3fa643d31c7a01364567f01ce3e74ff9dbfbbf4ad5529238dbff665f7a0e50a00dd33990ff6643bed621389581ae41431b8cd9c2aecdc5c2c499e783904da766e80b96484c4bc57379d7b42d8fd57efed3ea063b48772442eb5fe6746e65f44f7e16073c961b206e02b153382ab0f47ae46d5fe6ce6db60e15c32e070aca04147c9053dee1f682ae93f372e0d4eac8f6ea7e3404fd3334a3114927ab180f4ff37c7a9682e48fe8a97e617bad1dbdd464e96fb9bd9080f07b5c3ed74fe5a21cee3b9d95968422212a657fd76ed67725b9cacaa52031d9539546f5a89028fba9fd21c0f19466a8d092ac8060e3304f2c67d62a7d047b8d9a6dc2ff7eb11f4099c59d1afa4ae56a5d8305aa99dbd18f0a0892af5f6f84c2ac84a149c8469ff597ef95e526590d220f127ced196a951999c67d99dff6216d3fba8bf6380846503c52d5df5bc8d1cc3a4e49d319fbd270c32c1ce91a513fc6200a2906de01e3c923f31234886de079eaee5d6c4ab79f93006374ac69b17bd82d0352798fbf5b3ad81eb7da0a260a00801ea78fd1988e68003b5192c7f62cbad2245bf9a2eb792fd5452dd6049b04b7596e1b7fb29dff46398597ccc0305fc0d30a9be322955a523e165eaa0af19f0c1b3b05f67081e69d2b2df75bdd42db6b78f8bf13da249306b13330d51a0f21722cefd295553b2acbbf88f100698591f9887b61239fe58ac2da717afaed06dc1d0bec34bb35e7e6d401a6e65f99e39a882f62a4a4d6b94f2c5ec1f4981a01929927871a6144649b291336181bbc6f73d9c99087f76a29dc6a919d71149651eaed188d59ab81b2173728e035e4fdcd97c33cc1dd5754013bfc9870e52b58c8acf0379dfbd2609e766f74a75c6aca54e86faa296c79743c4069d2f336c193c8eba3e810c1fdf945532eb3708c766dd1fd06b80d3dd07d4341cbafddd8703f2c4d50bb0c38152200510b4f93651779d6c730c4116866224881821ef6db423beb3f8dd97ec45edd4cee2df63d2ec5f5ff35de146b9d7423b83ad8a2e486c25aeaceb73eb491ba1b4368c044fe2b2fb240981ab68b7de69ea0c3b5db3fbfc128ec8b2ebc36c2359c0719f6af37bf1d620359dc8ee622e4fa5e2fa8286ff13aef117e3b40da4d5167d7a74ce474a10e893326995870d45772c5a4eff258ef1edf428ec5ab4c962ac92cafa6c7f5c849067b27493eaa60ddbd88be24f98d5be2665aaac28077634dba709d478770429d468b98182c866b6b36f2392c7293537b2a56860409bc7da8982498dbbaf51a26c9b9ed30348facb1bde943bf7a21cdff001f4730c69bca73502339e3fd61abe779221b43dba4166201421a84af59a6a91afd73af2773d223e41bbcf5b19bbd45ca91b34ab383a5f482f137f5b5fad993f681a5bca72b4079c37d86aa14e1f4bf3a60a03a60c4597c3121fdb5531777a5fc2778fbb517e45b699281b74a8dbeff6138bd3bf8d432449fdee39ea6d020020e9abcf3957cd6d3969b29ef17876a940453705a1f580bda944f2357d184d3130000001bce29a8d977815a4e2b93f4b2237396500cee6414f7914e6472eb761b347175dd6033f8d6e8ea56c0394bc8c5e2cc9d86f2b966b2ef3bac5faadadbf7aba44f2eb38d7ed2c823b562593c0a1345a3fe78d575b9e84049735d0d8d60f34bcaa0d861cc4b5888eac5d5975f21ac09cf2d0bc28977d64983d7802cf5054996133815f362d54d9c0233de283422b265362959c13a249b2c70026554e868dc1e1a5de852c93b37550231d044c6b4faff80a75bf54aa34cc6dffa4665affe37817df2adce8a604375c84893de5b84a57ac016583e7fd016da4808510cf207cb95b6b43bf9b8ce21101cf3429aabaeb688aa4d3b594826e5992c0f75611276d8cbe402dff5591d854fdddebf9e6b3d6e74e1875a5b284849a56625a954945d2e3236b2b713fbcf815ab5c6b79ae09a5deeafafd93824c2b24182d04c82376e4abf10a27bedef4f9cdbcb800a19dde4c119550ceffe5af7c91f83b2268b8095571e2219645614a75b017914e407b1b4b8f53ce144f06d7d145c08e8de56d9d4807d1c32b45505ddf3d72774c40de9a6cd0dc4b154eece13b6677bba13cfce52698b5f5867e363aebf755467730fb75b12c479c828863ff05d27b3d35a5e568c3dad6cb42f9f8040334b95b4730298de7890000000000079a0f000000000040888f478a768c8e767cc995034fd93b94725388a245ac8d298e699d2b9d5f3852cf628ba83a38aab39dd0d02570fc295b54b931c9b766ed67d0051e2a47ef953b0100200f39ee2d4ef2060607ea10ce409ceec5199f8a4f8b8fbcd3cad7f73ffcd23f5e000003c600b987751922476c839c3c1a546bb26167e3bf1dc5f63592d5c04310a86ef551d7b04d5b26cdd646158ee0c719539e1fa7b28505ce9a27f36b273071d8fdc9b968e7ffc3943bdf23e7142b6315c9ff3fa2e0904ac67157ab6ee9fb4e89bbad4ff6f71dc7503123158ca6f2ca9d958e2b844a0fd8eab660d253dae97be4d778c741cf1cbc091a950e1b3134a58c82afd9b20b9e3f7c41591eb1b474c3ed8ac3d974182c83dd2c5e4c788a03eff066bf12938a6634c7de425e59e5c7585fe0eeb7be374a8d1c3680d04df28de2f5f17192228035d3f8be5e74fc448a05bdb17880929d9a54b522fea32fc653afced02fdd662f6eede89ed01ba5646f54b4dec446317c38c927f2f3a12c7b885e79a02e86b19d8c47484aaea6f0b0c63bf0ae9f6cc3a3f5d6667143bbfb9257b81b3ede2506f22196e71aba533b766d14dd267e5bd8644a4e3b1c98a5a0fee06abc0ecf23506b52afb6c07ca62865210adac64a91ce31640219d2722d7a79de1363c632eb998431c925c65767bfbac7377bb4c84438ea27ca2c16c043d052d8afcdc712391f0438b778fb25f0dbf31c9f4410e8524fba8a7a7a427fcf075bc626b0121426a36f58c3582d6104292ed0706af56a23a0408dbf3c88c5935a2effa4fac4ea68ab7efbe3310ac684b7cd4f919fc78c0e495259edca0165741deea82db4fb2262d02c9050ed62c7d9f1dcc918c6d1b5ec5617727f9ce64719f8345bb75ae20da4dfd976c6e3cc6a7c103245e8219b104648fcf8d0aeb0d048dad4d9aebf7b75f1569943db4e6befd7183899941270ac0ecdfcf659b45eaca5e2ff1eb6f82bf4ba618e057fd895c7905dc82b199b365057a96e64bff3235a51eb8c90f2314965745b0afdb6824ec110fdacc2dd6b2f2c46a4145e6c15ce48990a7e3734d061beba4c322f54d6dcd39537979436bf3c20db3b9df0ab3fdf4fb42e90392fc5792f2f2d5ea8d153041120714f45c3349724ed377459d97735e8b34b3dfab30064f0c6a7ed0645777237f0a0f94f99ab1360065b74c68e087e969349cc3519df57fa0817653eefa31b581105a9c7b40ef99f4b33b09106456495ad3d6de57aca7039fa389d1dbaae5517cad158150477f62e2899e4b8b672d2d1f2a8248cfddd5d3c102ecb8bec364b99409f7df6f49f777445bdc7dd8fab762e8bfa34d4099018735cf63ecc770a48699a7dfece0d4980d62f5fbb90e45298af9ebfd0cd12b3b0a1090281bd6363218915af40b1766f4794e7bcbee609cb67548bfa44571595a8e1fa78d15faf9be7a198a542ea6f4fd411f629953a156e9ddeb9d6b4890449026e8f9c3811304a2b99c1a7c95f091b6973307bb24e9fef80020020eaf820bbb55663ccb5242ef21ddf9637262e06ba3eb74a5855ea08ada22f6f6300000056472fbf716f1231e2567db0915ebed8c676bac7be3ffb4cc63904e49e711cf81ce7365dd652191bba3ed8b93f55c310ab27f7bc41ac89a52e38d7648b996e1062fc48e03231c50bb3208cb1794fcaeb57f037c743a432d93709372219ac824454d2ecea1acb9f0000000000079a120000000000402406579a89f583deb8833a5fab3056b32e10fa1fe5b28b1b7c0f1d57367e7816338d3a095a4dd8d5b5b6a69e09b94ad6f6b2c8cd2e1eb346d6d78dad08698e87010020344be1b22f5fc4bccd3e6e675c1944eb37eaa8276b27a67883aeaa8d1b6cf5280000052c9f0dfd58e142fb5ca3e9679cff94bb00b15b9233b9ca81a7318b5ef721aae733a76b9e16ada1142b372842c0d8989f492840dc1b2913a45bbc3893a998926fd96005a88298e3c833940c125c3cdd86207ca327087efdabb68fb90d3e66648a504770bf5f58a4843996290cea2c00bda662c40845c31430732affe1deb979cadacb8ae7f7086926e2d9e24d265d8adf26c3806cbbff544ffe1f9c4503c460a4aad42386f3042206e0e1b7c07fb18a5d40b809efc9884e65ae1779c55ac901eb6de01ec5f55b091d02f2ea2510b5c10cdf02bb43c0943ed42c15c2ca3ca4426d30c41628a91189feaaa5ccd1925ac34b0aebca7aa0a0c32061cf74a0dd4ca8b8553097ce0d6097eeda7974105224472d086e481296cf4a71f79cd00a25e0c60f4c854b99894972a9f3c7159fa0d249296d515ac5b88bbdc7c583e94cb9b566d80e5547752044ef00e488fc329106233f46f09822e41da37d68fb428d185d2bc27e77f3381cacf54e53a24086d54e43d3df6ba8cb38da4aa7f4c7ae763f7e82ae12229e945df5e897c5bd9601582ad832fea2aa4693286e5f54377771a2b5acdee55000b49e940f9e1aaf84803db8d391a6806ea19f52259010e3ef35d42d4a5a465550b4722374cd88295c964af04fda2cdaafcfa98236efa191e02bb29c725de7a4d1a61074f86fb9a9ebb033e053acb50d01e07250e91597955410b2263de9bf7afe552f683778a09320e8b954a54d252ff99633c6123c900714639d1aade5f4e87e32a3ef8edd5f7cb96bad7cf84567eba76991526c70f2054fab1714d76538e8ea7427d7a1689b66a89688ac0c2b2199d54f69ae6148075cf2cdfcefbc14ba98c22d0ee9919e589b1de06b9696673f01b0d6a10948c6d3d806afa8bbad2a374b42716b75a619f3a78887a30cbc19d42b78eca8644626f93a1ff3a157585915a951cf11274504076c1d4c31ff65b1a752ad4c471eed21fabfbbfcd5aa4dcbe847dd3f160e3160ca3459c6b32a539251845e532a53cfc2117d9ebfa2830813ae96734536279c54bf2be9a2110babf32ac800576baf79608e0f118ee647a5c542d6904f666026c7a1574b4f336d715ee6acb640654ac1c2733ab32980de8e244e71b9362de7d13f1bd3cee6ae24da07c8e5cda9bbb30189054b557865763adc25e4a55a4c14bd20ec0223a95f9165df4552a3a1cfe17853457e12d43e7dc807fcab9190c0fef9d4ebe74b21eec58222205c163b33a603617672f38aef335047544ba8874e324748cbcfc70fe236d48f756ea75ef2aad528cee654b4be2753303c0d78465157bcdde0707940cbb52e8de6e57f0c92d98b71a775b77c22e57c0aee0f5663bdd739047470861187ba902834c2d0ebc252f9496e29c0b52edba4c354da994e5317f529ce95e912d1febbfe1d0ec26c0b314a8aae90f598ebdeb9d237fa66cd5afc3e54cda4a8061d6412fa5425655bc7b899757d23e5e220eb27d86043802fa8e673eb2aff98cf259372bbfc6427bd73dc69556393f8b15796fc56cbc7f04eb0fabb310c4ffb1e765e29a33acd77f89f2712658cefac7e9d45eb36ca2b530e60a287b73cf4da00109105a8365badc099075f1a61919470bd91c19fa9f24b649ec20532b8aca7c96fbaec2052a7cde746af152ae96e304dcc781de3b356fcc3a3d0775ed71e421b4f23c4f5b1586b6d17eeaf32be28f4fe658fd7f050224aa717615d0c1dc354b8eacfeed7a0e2ed5a2ef210d157fe36a0837857860b66db0a2e4395096facb924bf8f0c0c7746fbce91566f84ed9ddb68ece9a741747e0d0ae2cae0c98b1161ceaa2c9c379f0c9b18dffb2f4b7b96a80ad2987a4024d99cf8da4cc707667183b5f1020020d14a9a213242e5763172851e1bf9f72e1ed6c6442514309fbcc1759163044879000001bc4a4c261a24fa04b0b2ce2268f4dfe83347da303d1ab62ce1f20d4beca32a7271a32234f0755bf46070c10d8f47d797121516e4a47f1f9423aa30010b9615287b9f5e7d0274ec1657ba16ff541b6179dbad4692060ac8b5fe6f3e8a8bcee5c5e9a69e93a3c53aa7c8ca5090fa5531b35d1a72e1a97e94d696e949f9d9c3fcfa916dbae715a5b47742f5b4d48a98e9093dacac8b5b8185cda7a966ce5b0eed198e6c81af1d94fb69696d59389eb70b7bf871828f7572fc30720b6c15b112e921d5d107b78ab7fbe1b96124344c418f5f9f7286cf60c8bceafd782be14dfe54588746a6c69b64855fa26434fd0120f05ebfbb4bb579b36ed7ac0c5a376d5c27157c2fe86fcac2bd85cac7bc0aa1c790fe05832528309288b9ceb2a2e72548792a57beb69de48b3f24e4dbfa11b7ed11609bdf258730bd05704daaf72799d77d827e8dc7590f9cf2633a8c6b5d6c20c8db773a3f907969523a0372e0d6382406e2ff2322a0c0c48eda3902931aebcefb4bd272dd4f2d62e52eac4362bc3e11f515184e5f2b65722d2e0b2da73d324d0dfdca23807da8a6acc053ec2d998e64104278b6038aaa324a1f101853e967f4e3bc725d597fbfacf4a8cf7fbbe852db7d28664da14468e2707a2cd402dd910000000000079a11000000000040540459e2c62727a3f1aa3267ddb216a544a2064535be5ebd0a062d409669f44deb69f8ff02800d8973f2e31c00326dc252c272438ad1e96e2215023085995eee01002094a5908bb8eda31bc772e2ab46ca04d9a831b4718cb4f6ee4f03123882b3f05a0000052ccb18e20193c4a8eca929e6d659113c02c66206e769ef1938194b21f89058b446c1b599383b4080066f59d99895a38ed1fab5fe964c198ee07eabbf8db68e1ec5e0807edb29564507f3e55d7261ca7eb7ddd38b263f8b15b0120948cbffe41e56352a108ecf8b54b054c087e6553a893a0c4946a5e8aa09ecfe825b8d111f3cb7d76a2a4960e660bffdc7c87f7d2290c2f9c342022913941aa7f284c087a419178922c5bb143a2117ab6ef3698aec0d37907ec6fb62186bb627f28806c8ebb6f8a3a367ce600a912cacdef924bb5deca2affce9535c50bb2a9aceabbf2bfc58d0611f04686e8bd86bb8a72ba6f3bc2164dceea174105893919f8cb35345a344b9ca1be9c87aa68ab3fb90d41f19e586c1a6e1684a51f1a1f89455ffd84c65403b6371dfa2e6652ab8bef5c733d2043a4d62adbfc231dc6700a8f3fbe07881fe1e8ff52dab79a42eda2f8a5eab1ae71149a9925594d1085a75003b6b2305742f86c79280cf9a4db76d88ee2928e8f92996866c594522ed27cceaac6addf847404b806de88c551dca2cf17e6754ce4e0b2b0cc6b7c2f2caf4bbfd5ad2871c4c8a9f98d96990c16744434c9156943b1cd9bec8816db0312db04362c46ee6f34b919fd6f151bcc3f123a721e0b23517a65386603acf9930096153800285f1718a3b399e1874298ed7883d0ce0232f1c4ad269d5fb1ec26e53dcaaa2f8d4c122eccec36361a13213cf7813ca1fa0a45d3e15b539f7ec969d24aa865a157650b58732abb3c9550dad691e36fa79a9245703402e7f03a9b8f8353936bf3362a960707c30224d9ed36e4fe5a3f53de7e420f80c41f16678785823f233d4ca581b87d8a964378a850686d360e5cbae8ddd87166860df62bc72775c38195b9b153083adff8a472c39772808bac2bfd618790fd656d16790f9b0013f89fa3c72e89b4fe3b84c9a407714c2408db56e32e8ae6c7ee42b486f9dcb716e63b5941df7729af706b409a1d439664f0d58ada7bf2f507b44ca7aee208e4c65003b7baaf94fbb639993c9baca3bd8efc75219960a6d8647488fc14117afab5048187023893846f37ee53fd399f7f9376f36b0cfb9881e5bdba6d8548fa90b0c2b280932cd875edec44917cf99c423232ca006d216028e2dfe64f11c828728b781a3ae8ea6c928c649d21a1f6854c1a46795f683bc30f7ee0330c486e7423a801a3827da6f3302ff3a2caf15d30ac478fac43d58482c26fd86fef1fdd36fcc79c156207dd07acd0d95037c436ccb16fa0edd252e56716f014f52de51e6901b8e3fb08b1f2359aef7470c529f23e9d98407d61cc0cfd8d242629cb9c7ceafbf7d29892ef74b5dea71f36c7292cc46287c34c93781e9088eb705ef479e5c6eba7977b4bcffd8913ddff2c1e4c76b86896eb42e9be70929b9867a8683c24b20c65476eebee3c69889b3e42082e43c1b0a32347e4983a5c85ecc562dec0e2617d935512046a46b190e9a8be7dd464fcb3c8f09c97d572f4f915cbb8539d94f84ac14e6c5a0a01309df55007f6257baf6fcce82fc61c0efd504d491e57c660d9841526a3927ca4c97d282c939e92261e61f6019d5d012540d21d0423e675629bef996b84bcce5df66935ac0e139532d70b2c0de4722b6dfe4ae1507730d38d0c2fb07aa6b64271235c3496fc674c93e5fb7968b4d69c3d57d8baecad5b17512b9ca12588c4bd0bd4b3a0711eebc7930f1861b0361f8e7defd0dd29d5d92d3eeb5b47767e80f5c4bf3b61e6c48be05b976a2de30c9dd87f4d2950b079a23470bad666d8589791d417b3b4a4ebc40a967c3ce751563f2918791669261adba48f1e58bee75a3302821fbe3e5b411e456db33dddddfa2f4f9a936020020e688853924e818c4617d4da320dc9c863b229b2ce0c0cec9a02308e4488b1e61000001bc196eb8d0b638e3812bbc720a9ef0d5eaf1bd06ed9364007a43acf15c65d76fade30c3d227e276cc7018b1e85422bc96bb35a87213d7cab8b595fa3eb7da18b3f124a929f8f4d053b1a402a24169ff380ceb04db6c53d028cee0d04f1e0428da7678b3f279645d481815418dd191b1ba00a3850664fbd3bc984fc2aab479bc09dd48c29eaf97dbbf312d39a7dff669a4ffd89074d370751f693d803cd2303cef020508c44662a83531c73eca28d8aa46a637bd0670b5e7265636ae4a02f97db446d1bad273fce1084076876afce40795ca5933c8ce43af5d618a6c41e73c9d5e0df15e92a84029cdff6a168d7cd590e97182033c48fb54205a598fa28b4a6d0205099bd7521fd36eb201cee1c684c2c3ad7a7add76db59c67f6f8bcfa11b9f7b6fe8e25d696b91726fea10552cd6dcbe91f34eaa7a96c55760ec503b7176e23feb4b82ebcab7e4165028ba610896552f7d86aa62710bcecfe22cc57dbd8e3e7175be8c1d4a2444b2b4a5b8ec4dcf3a9c60a02fc2488d81dc171aef65b80c0be42679618264c95e463308127ddafdb020793716be3ede58ed2073ae98d25a4bcda0f138b5c6e60e37cb1f650dc71b351a88b50bfe73ec1cd9c738f252bdc9b54ea1cb5110ada54ed9bb9d32ef90000000000079a11000000000040436f73faa7ea753d6a197a5b05fb03071ead243b1e9c9240d56af7a6be2c9e17516969201cba173bf057618436fae03e5d67f7b857bf4019c69a16e4f39d4a290100207b56415aab24eda46eb300596561de404d8a824c0c96c4443085c99215d6973e0000052cca6b0a688d0364e77cfc2086dd67022b7b76f91e773af653d55016ca848962a455bb837b45974ee91ccfe56e261b2ae611d4309b0f3624e8805efee7b99f1247fe0785a7d3345ce123900bfae52412ff74da7760c7b2c770eb8eb2403f38ff06c184abb4324dd621f59f78db4d07f6a3f83ae8dc0785f76931628beb639e2710e243104afa364f9366f39678926e7894f1923341e7e1d6362102b366efa17bfeeee60a6e104013ce417fb2e2cef9cba17babec863e663ab406510058dab36494e7dce1d1c0c99ac22cd0aff0be9d4fc42baa42debcb0c038e8730ba798245f1bf826650accc8283568cf5bf5af6aaf74ebb7aa533f91295e0cae16f5f12d5136ffbc88ed088f13c94eb91b62358b5832c1432b55761012001bce913ca74e03d8a6ddd520b6f957922d437b40a6c969f8c07d0012e1e91baccab776f3a101b68e06da6252c0180bdfacc263eed4f63c1282066ab28accf85c6c47331ba69cf6a16a2532e10cdb63f81b4f4f8f082bdc98cefc57a78048be18efff1c69401905962d3bc85e4e6e0f1c16d61f189f184e01f30932b1ef6f6922ee1f126d8c2bb7913297b3dab9e192ba57d337aad399cae13865af8a76589049c0a6156922b40bae9bc70e7b29fb76997be55f6e63b01ce1b3f2812507536649de29d2ee5efada1adc1eebdbbc5b4fa7e193a70fb8152ab357e40a0581f090558f7e5f683d84752e7606487102c0c18027f7ef1a62b22f9e72390f9cde439c54ce626b700e3236c69f704ddc2ee3a605af2f25debbb093e50165daa37af3d830514ab49340e85fc1e8fead65460bf55c47ddd180df3f66527e4f9f62f48b0f830b5c12d3a843f61b041a00ec3790202e342758b808abfca9afe4bdb290bdee078b7a2330ab76501a9ac2057e6cb75f3aa1db6d204b279f5b23149017fbd21a78ad8f5ae37e0b7839153fb70017f7b9457b6aab89d1aee31552e8338757692103001e1475292ae2ed8ffddae4a86282a2c0f877cb6d7fe5397bd98806c0c164ecd6329a9b01375570269cb5cf5ae061c01c61d34471a478d942f6ca9c228879763fa09910333c341f3cf9dac5cc00d1dc0a9ab6408990c10f6f9439dd5020c6900c13a3c3ad08bbdd2aac2686f6961e036bae94fbad09f3d48b53e322bb2e99f205c530a57be545a3a836692e6f2af6ec7616fd5f00e6c78cd196e30e01bcd76ae9812f680959c8ea2b3490144933936bcb80424a666919dbb67feeb3edbbc7c36d14f39a6a5b57d39573d7f662cefd59e9e0fae41619842d92eff9932534504eda0a731005da809dd0f6ccc1f06b2725b1639ab2dae39faecf2bdd590650be8ebb9dc61018710ea8fa060917e084f25404bc0f22d84c39d79fcbf43156a300ae53cc235c1d6ec5d8cb9924902527d75965aeeb1a09991f96d3314c8d4dc15ca7e48fddfc4374a7ca83addede1d60fe4477854de89522c1e4901c2646057f627cd5d0c70036fda3d55e2cc7a79aabe9b9e722866ef8a1eaadc2ccdd9100cf076c8271247d51707bd54fcb04b433b6ec486cdb4713dbaac64760f3388f171c9748cce1a76fbc53b8b146b79856468ea5cfca813059056e714c528e6493d5d38accff953b9ddfa204a99a30386ca53285d46dbe4e83c912a3789ce769d50c0fa9222eed55a00fd17e4e65dd917bbe79215ae3be3edccad71a68c8d29568535fcec779330949d183d6cafbe60229c86622b6bd5337a01a6fef669a41bcb8e421dfeddcdab4145b13553d632fe989e4a05aec665ff66920a92a11ad11788677034159bd076a634f95fbb050bfcb9425437167a907bc91762b585c855057def816263db845df19250a3e6eb195eb762399ae1d8ea70e94020020be41399b492f26811308ac20b39ebc9d7f22489c0b37eda1f06139f6235a184c000001bcdad30bc7be2d27ec9542ee2a1ae52d93ed34f02aa3e545c92127a3463590cedadd4e5154a7a9a1f024837fe5a41562303c44929ee39af86c9a5cd09982cf7ad24dd96ae0775a3ffd1ff63a78ce3df5af1254a9242792bafcfd1fba6e0ab90bfd416f9e850c0c7ae246f508437d399400fec6da90e38676763406af3c54ec2040b7059277cbb559f93082be56b778c6d9c29233be0229cf1c5f47158487801562dfef389298a812946a7d52309aa38504aff5a4d424af38132cec753450274b3b305f62a816562a3b739db60c4ce239f3abccd90c20d4d6765850250deb3249fd78b945e8e798308ae1314e5ac53c4f8d2868f34728ecddd4f06a45fec99c9975e33cfdb9ed9f965b4cdc5fab74cc09190ff53d918598d29e7b6e637ff1f80eb9e3017744b0404bbbfc8b0145174a02fc889bb153486a192f924aa6187a710b9111cf324205b1d53d167099d7d3e9408de199f38dee62c547c4a9a4d1516c9d1a06f4e54b5d8538fb85cd1b92599023e1c0600fdc5b16530fe1e36926bd12454f96616e2274d62017454c227f53d54847aa4b3121433ff8690f719ef134664e77a37ad57e3526391824c19fc3377fe924d8d72806e15cb44b097a15f7e04165ab3dfb9c521f9b579af5f90c2d0000000000079a11000000000040607aedb9541de6403764fba41cab5f5a179bd76da20d7048b368d834290dd749aaa37221cabec0a032f2322f54095d96c952baa43855aba51c3b5457f1b5a21f010020351012aac48827ca0b1e1a7a18d4732077b49071f115a31e8a7222093e94011e0000052c4078a211a9bbf245559323ed95c416d7213a02c1b1d04ac6039a83bc77645dfa897a167a6512a73d67f0177d7715de282071a0dc825442107b0568080ebe6b88f7e7c52a2ccb067e60b61d29d5ce55916d14b87f92f10a19ecab99a31dffaa6c685eaa7ff4d2543acfc96f8b2abb992c6d77b6b7cf739d328074ce25ad49749c92ada7b070b6f7bb9083916faced9206c9f2e0c59beffeccdcada23fc57f539dba3da70b58b0b21dc80b75bab7b60f9e464b31702d124c59624f821cd7005fac1fe6f8383f13225d90f6d5447d6564c865a43f7d0ac1de1888da8e331950fb4eac42fa78db8b819b9d835e7d86fab77b73f9ce1b49cc2f0576d3121b3747e7e2bfea8c8d3275f41994ca6ae3db04bc31cb7a31bdb34be957f45c96d8685a59d70caaa5f607a61d79499de27aa0a2197c775051fb64ce742af974982cf42a3d02ba6e5c07e2ce3f185fd4eba272415ee35afb526eaf3f6c4a5a42c5e4df7a3487c5901124a062a352420e3160c7b5bae4eea5922089667f49a0b5380c12d6c437580f9543ad8f882700e8952b77d14d539f87b8367ecefd2629913ba272b34ebe18f45fd99ff6c5bb7a78d41b1af6dfd3328faadd7d108d554f50fc8929321d3d58f64b5b4c0a585065c4ddd09562085d8e9bcef45ac00aa436193b75d91259d408ded1c0b8dc7dfb3adbf99c1e419c5dfecb4a153e854edb1f6b09904cce9ce9c9ad3d36404c0c05b8dfae118769dc970ccab2936ca834ab60472268665241c50a6855771f5b23f62de3c1f743a8a04d5c428523b4ea696e22fa02ac6f8a8d216d39e5e4b9caf63c9eed12b25557c6ae30abcd350c70a4695645784397ea4c63bff86559c811e859ff3e3331d58a3e73227f7be9c7c25be3ff5c76a69e13c85bee16d258ce7a6d275a2e6ce0271ca43f8818356f9aafd1b5dec66c3da4727c0378f9abc63cbbf5d7815658a7c020ed5f66ffd629640995627aed70d3a14ce2ce30d8d994c9ada6f26dc267173160aa950fc946c3b87748c3ee7ee7a310e0be737a6212c1ae3d1e097b3bb780c9d868b8f44af5e987b445e763caf999ec4303ef6b301d98b6a28f65e207fadc7bb557178a66241de1e63e0503da99b520882c5a0af03b7b9bfc44af44ca1742531412eadf62f62a3bea9abf2e333d6d5dad3ed53685ce2bd8d8050dcfd75e14b34c5397f1d836f4d3a1b8b2b7f34d22a83240686f99f3fff904d22b752d974c88322ff1647c677bf2e6329bbce7824fca939779abb9b63c7d9b51fb1d6b3175700abb2071128e5babefd00e31958ac134964904bb5aff16fd27521a0d2a95328ed56cc9751eacc97d47d805ea9b6b0085484c00a2979eee5c0393d0a3e1da7d2daa16e6c2783a175c6687b9b537f1c3a0497edb2c50cd2186b4dc6b6089b5b076d03f3d2a44d185b2ca4375416daa106a867c696e9ef7ed2c41e40bb89e7172ec48806977616ddb055246ae64079f90935831ca59742c2013171f3bc5a8656e264d14886103e2c37b65e6353c9f8d734179d4598553404a811fd37f08f39458be0196ed252f8bbc660444c844dd7fd41a076001abbaf369e146efe0964bba885c1699ca4d77f41297270d7a269dd17aaf67154e076e22ed70b92923cb5924d1be01b862ca013e3c2925910581b964f26f0b386871e3fde81e6d93db094dc0468435cf08027796ce3198cfab44214332596338dd4ff77d02c61265a66287c4afd9704685c4de33bcb345fea7d1956589a04beea0a86b781da35642077a6babf2b5fbcdb749753ad3224edc17e9591a884bcc29202eb853ace9fc6fc52658f0013a843536763ba798b5fb88d50dd696e56947b11226d6227e59e2a6411bcccd05020020ba2fc2c6c6479fc61b2df6e049edfc1bac11b73c942236b86a34c085f4b60d0e000001bc9fbdbeb31005e11f64b9340fcb94af29b026e9cc8444c76a8c8a1df10b493886ce7e7582522faf0ecc9447c766ff76cf5f2f3eb6ca315ce7fdff44b74a16cad91479dc66915c6e732412c07563a0c01a65dedac976bc4007d690a442db771cabdb286cf047f63a974c6f978c805c4c1076de51ee2bcbed21a5316b44e6783d750d080a5d56465b690cd498de5ac49beb3576daa6a2b6e08eb5f18633a3760f764dde625954a6f0454b3e0706a34e0f92cb497eb3829d7683c41d4a2dd8768a4bdfd646bf59af280682e80b4a451a4ed63c889f44b4020ab012f1d57435746e0ffd3d9f210370cf6822761e6e773ba0a620710ef4aa61f1a12184ff7905b4f78074ae9fab55893facab1e655c989f663d6d03f20ea17913a5b5e6322408622c46633bac7c41669073676711a87ec79492ec0d2639c99c9c2a524fee3ac322ac5cd0bda65de6d095f9c72f43b54e3df652f86c881e6eaa3ad095ea47081747b4542990cfef2971f201b09f050482d80263bee4349e21c4982e40da17f1ca9389a4d526e29e59fe15581d2e62949069e4c9a6d56841891d099cd62c4445822bc3de3980b79164642e41268521dd922e7837cc71a6a2d540b52f233892a9ee803408598ba0ec98c67ec83d4471c80000000000079a1200000000004013e5a1473206c1158b8fe56ea480af897c75b5f324d54049fead9bab904d63ff9225c98e93ff36606f66bba0de966f19ad1a38ae6862b7d85013add4595ea39d01002044ec9c259ac25785b0261c185fb23c20183c959ee04348e9127b6b924b5b89010000052cda7bd4cf6d224648944acef226545c86c16275f3d6897281debba66380bce11942285405742569216baccbdf477d7292594288f5c78bcad8019824e6d19413bd4345ea5d1bc5cc55bf1d22f7062c4229ab9b7874db14224908f9b04acee173898efd93337e1f4d776dead63a664c745700ff10dae53acd10299105d97b491c3a39cf0c7d8981096aa4141caf3cff7f63dcc9915517bedd77304068e099bf8b34d11ad192d4879787563f2a393a08d9def2b9096793f62b3b0faadab3aa9a6a7644b79ca002a6ee76cd66bf825cba53c3a4cfb589ab0027e11ff0f8df20064db6bf2f7c75b92310cd09924ce8ea88dcdd11a7a49adad11e2488fdafa59823561828720a43ad7a45d043d74c95cc25504ffc7ad5d08ce3f392889a2f2e23adff4db7e229fc53731bc5bcf325f4a65e2e056ddb26901c456de01efe7d26a73333cac3584d3743d90c9c482b9a1aab03acbac2ff2e50b2b7ede233e3397ddf99a716cf7311a39a8a84756b5139958324852a463a016e172bf24cf24ce2c6a145ddd2368490a2c03c40f133d23103c51a9840b0beedee5fcf0e3fcd9a90a6610709d6edce8fc0a679d50adf38709858fc928938435b99fe33af759452ac774f51cd33cc4e349dcad15833ffc212ca1e1af55ff1bece9a85d263616884a03670cca5a17f9b6d013b49ddf8edc35e349ef584012e9cb9bf552725176f8d0261c7d28b4d7c8616f09056de26535c195da6edfcfbe149d7fb10ebced10d2fc332254522a84ba689af0ce8efc20ee1a9b03b598c46ce7aef99c951ea998ce2a3f22825e737b028e5bf58800925210772e4478f42b812a1be3425d3cd94cbaea20dd2fdf5066ac637e835b39a71beaea842cd91d33ed8a51bdb297434e2e0dd3286a618d5d7cbb5c1af1a177b0240bcc4c52da53f3132359fe22d2f5e72bb1d5638372bcc9018606299108519795263bc52e378e22a71e7f4f3b69bc22da2c057eb13c221877116c4464bba6a2937d218c77bee30a2718b03e6bc5beb7572563557edffd7066761175c9ea7164ee2e05ee55d7a66b62818f1ae82959aa83ed9f239582706db41144f2bd533620c45ede6ea3c08e4c6c462604d1cb0e5b9f35f6b1a8a5b9bd0a2a807b06f2910bc78c6e578c215dfdf3f0999fd46022c6ed839db384efcfb23e70cc874695a508929bc1c474a1f72712d1b06f819163c4e9684ccc6ab2005c792eb23ddb2e9f2dd95d2842a92e84f625904900a3cff5c26019946d69cf5f0926a8663b5e08a3470489a3cd8533c069e5770240133848385621801ca7fab1f404de833e2ee2ae4575dfa31b0ce5f32289596904f3c039b23cdb4cc55e1ce1e6e314f3dcb3d42158885133e07bd908065c26fe3a629c3cf80d4a47aad4d3f68189db6d493cfa7c0b4ba3be440502e6dc87e61f97389349580053002a89d38d7935adebf59aa9ecd94cf4ce967005a710194aaf9987415adc1336eb52bf9c61f239ba074939ebc4785312e6094ea78d2be66af4c9856c871ec1b3ea50aafbfaf3a92b6bd6be796c24727444b5bb21edd84a06141587cfbd71328c49e6f7eded422d352cbe83daa69b8ce93d4790304f7a45ab3e568950e8d03124ec65932d213b61b6ac9c10e9686b68cab4e70d508139dbbfa924b0599ae4c7a65aa3cc49b9fc85361e11fba9690767f70ce8628d182e8fe94b1cc2e1a920bd90de200701a63954e5c015bb8363a04dec4c72f1aa3fd1465788e5a1215f6150b627a401bb14046dd54988169fca2e9940aca103110fa76f1d988da18457650c2958efc228fb89643a666aa0590f9efeb3ddfe753f90dcf1cbe62076bdd6e6da4d0e2f4e4a512edcc228a2e0e7d62f3cd02588e0200205ccaeae5284cef8eb7743ae72f2accec036bf469ccf678d4d7460a8a645f6c52000001bcf96404ddcc0dd95874d9672634d9cad2ed6a5e2ad92897c3bf24a55cc5b39c937604ef5afdcb5a5b852f4f54b3055a5ebc3646dfc0584efe21a5c0431f6b96df437a82396373c6080a908ebc332e830b901f14d442cdaa862992d581254ce30974f1342c798389ba5e17a0d5a6f5a2a6dbbe6835f3117178a0512e5b686545b8746415043894efa7a5e8b2871e93ea75c7a1145d32e10401269b884a9d9a40112786962e61737a4c15ee1e616177ecefc84f64ea047574f09a30bfb6ed1e19b3aa2ad4ad86da4af30cec7f59b7d175e3dd9140d7a19048c116d5e1402921c18ed67f52bac0b7b5998b784826318887d2284d19fc1521c89199179b69f14a2d09faa952bff92e17346006e25cc465d0da2ba2477f76efd9c72e4609263e52adaf0f07e032f0274ed870391b3430dc4211c5834465d077059705965795c614e167fbe1f7b679f48a37dda7e432fe111d911c3a727d9295da27f9c4fbb2c2298d9c38006be7c0eff76ff99cadef2ab080d1412591b1a244c7d41fe948995e5288385eb5355aba08061b8b984b9345e349ba4b31c5fca213d80ed9a6f6fb53852eaa3d6a314a6309c3c0859a457cf7be25d7722199963b2252524580f8d5f48dcaf73ddb58091658bd37f941ad640000000000079a1100000000004047fdb0b6635b4c81cdd25d0bfd64c18fbac81a7c0ed63e8f18a2707e570ff2967f5a907d47ea6df50afadc9103fed9643f79393b0015cdd4c46e0770a34abbe60100201537f31b2e400f8ca8123b2f18fe056d9e233bb3ea5299ffd5d072d73cc5527a0000052c3cca7a383f608c1a7cb7788b7c56273e68629701e7a55eade2f68f8efe2197a967e5573e1fdfc2745d008ec56612b9380bf24f7305b7cf1bc21717eedfca9f185e67a98ce595c259250ed05178360af2447d89c50ffbbb33f105f534d1f176effbe7ac4f8e5ed18eeb749e1c8baed96f694f630cfe28fdf593b24867d2f4e8775e4cba8117c85a187b353c11d9618c359718c503375a6c311174daa764a0b38cb8bbdd931580c83b30fb628fe43468d40d3ecc2876207314efd39bbb3f83e5b16d3ef71bfd0977d2d6b86fb985646731ba89bcd91bcc196c36e55ad914edd2e1054c642c4bf694b9bf74ef8a3f4ee94d2e26161d1ff7a5294b944916b40f615fcf6975a353579b47b862a51e88d7ec57b96de1e0f2fd0261d1c1bb216436f876fda7d709b651e0530259663bdafb77adc6069e33e03235d9ebdc654cf5f64ab7f470db9abeb0981e1c6c13a87dd582ccfa7465c0b72e755fabbbcf8ab8387692eb16494622ba2e3f48b1f39035fc78f8796e8b78ebdbb0252ea779d6b709a22a44490a9ba7ad1b42a8de0d6bef8d49f4816f18a2455c4998e8722e861afef9706afd0042c91a110fc0e20b865612f925298eb4b6326e81b1c2386e703a640f593e1c558ea5a9fdfd7488dac7af131aa5cbab94152150901d45928c2df449afdbdbbc102306153436a90de6f52b8e8c27c853cbffcc479a000720b9aa0e27a0eeb72437275a224e74b5e94ccecf32dd4f76eb0c3785b87955d0be4e0ab8b9c5402b5727bdd45ed44a0e53c4cdfd0bab3e4c35e0eaf24e322eef70bf684a0ac7741b09e264c11aabc765b5524bc7f10038ba970a24a9f7c313a8d328308264b709859e8319121eafb361163abd7668d442bcc17f91f00700aefd705fdccc19048fb0a831766e4d9bd0981e205ee27db2a2d0990196c4d79cbfb80ad323c0fd23c157694a0f306ecb78e0815ef16ce6f56dde36a37d1df0efa70a485e9bd26689c31ff2698fd05a7b0094e66861311f668e4255b705d569da88f42287a15ae7a1d6285fe103f294ee3010bffd59355d8b3fbc3cb1f6eb9d5d25a1ba862f3da66bf5bb8b9f54752cfb3cdef9684054e99ec87c5697e31228a881eb118ca22ed529ffe36f2bb28b2d1918424c0c5ab50376dd47c7e740ee6869c2e16c94b42549dbd9c2051be6c033358c0287f715aac1b02853162f1e14f51cb2ddf45c31e87968293cdad2708504c99a1fa87218c2aaaa2cb90bb7bd417621c4af739ff3f86b858ab98bcdf0f773107d62e00b687582699834b6a853ed42e982c6b9a4db1e7bc81b8074f09cec6bde700fd53edc3d91b1fb74a0ab7fda3135618d75a100aca2164e8047800e09d78b00b6a40c26c5dd05953b48bb452ccb478028f92384fb88f752ff4bea5a01c1f4eb6c5a766af1c4e0b0fc7a71620feb59a16e3c9638c145f12fb20a0e13a54bdd3dbdb1ff271cd4e8640de7a265d4e173278354275248cf9707b67d71935f96fbeee3ccf47739df24e9ccfa367888e73ad7a6677dcc4b881854c204c79a7f1be8ee3b5a1d43fe789f95e9098169f4a4f3e608b69ebad0e6362df61df15f7dcf00deb315ec8d434450362660733acf28e36476e7c8eb4f4b36df440403daa79bc6190dae8b9122f478ee90e5fd4349860cbcee4dc1b21b97dad46bf8e77fada71b9650033cdf8ca8c69d820411a820036570079ba12a1a8c307b82ca9552ad87338f924f13982517207e4a0c1e2c64635be2cd1e33a89dd85837c6a5d85d9d9579c2023a2166287aadfe3f4be226f9eb190654deb60dccb2e61004ec7ebcf26c05d733ea463e4343e012bf08895648609ed27cc2639666329c299c825e82798dd4f71d1d59ac0200206143a0d4eb6b47f7ae0dd1bcb0fb4aad54c576b2b5aa26a287208150d004fb22000001bcd4c6e1414de8595837af94e889052876a129f81fd8ef29f5ee7a2bf75527df454c61fc837f413e10e08216f39a997d73a8d0b0598a4c4c253ad72445e2349659628d08be52da578fa726629fc79467c345c65a882d5d4db0db9ef985364b9fb76bb9f3b2e233edb1a6483d736c2613f7ec0418e3f0f92cc90985646467c865bc664408623b4a09264c981502c5a86dee94d84f538072d5ef6b1ba6986698fef7bd314b8761e4ce0cc10ec6929fdf6658701259375eae282a41fa0d0c8c9b6e243f5543e1cb0a3191af375392f9d259091b963b4795ada8c5ac6b1434144e1d79db3d4c7090ca2babf4b08c0a3255ffbfd0d4ffeaaf41d0b98b131ab19057ea503a597937800d23ef8680a4ca87f3b129fcd061d49cc351e686b59c7c46da6411619c46e63d79995efb4810bb15294759bb19603c68d5d06ec58bce961b5aa3f9e056a13f1df586aac0c5ca5b68d38038c9b46c0c1b01fa1ccd6f383b43c99fa52044ae7bfe9adc8259506e53832c3cdbcea2aaa6922a1b1ab403082fdcdf385587cfdfdec3e64eaaf2a2fbbda2984d51253852a714a4235b957552a6996298d7c6715a0605a10f9b1dc7d20b642d1726f2047b5cf46605d57d8941c4fb1d846a5a82d98e127655f9833a9e580000000000079a110000000000401c446f4a7af49cd9aab724ca3d0ff48a94fb243380021a4b7edfa6cb75f2f936eff61542e3e93540936c918f78e74cd32e92ec83d718574794ce2c7fe359dafd010020e6701194986d7a9b914c7731113bcbf81cdc645fa49b57d196131a069a148f7b0000052c8b6bae80df1392394703f24ca14b7b12746fa52f9e25cdd42a155e1adbb123eaeffebc9e79ed268a8b96689c3a223b27a0b93f746b2c1dd9bee3cf972cbde95d567c116384ead95d6b5e8c68b3608d33c58a66ba9af92eb178eb9db83042d20e93064c79808b1052dc8b71a35193da45a99b0c5e637cbc588fe7074e29de8a78a1cc7dc0c99c577590cb0efe6e3763045ebf8628988d37bd2f0b89d75e074e0fa598ca53081296c873b4bd37a21387a94748955c5a29a3129c0f2340bcb45d9bdbdb921a3bdf329032d7be8b429229371bf231f6a261601b196280134883bf272da0be311a08a29affe4e6dd176aa2da71d7aa67e1a1576064c3ca1a41a59968cf8a080e827f2f4a98d8794e1baa99d010297c875cf3b6d8671534df8812d674c6d802209d779cffffb3f3ac9a00d2d4516bbd90f9a34a47c9a0cab2c3d5956c452851eea2b2e3056aa7fb27fdeb77fee550c4cc652e0b3cbe979cd5d1147224aa22a341db029181003e64d288509f1d34b3a1a411c6dc601fd7013239216e8c7f801927b627af422e94e3337b34a3f3cada6e921caa9661bb08af90e87cb1f6a4001584eb73709c32d2808930a2e3fd721351fc68a95ba050e29ba03b8c6e91587ff83754456ba8b011e267494b54b32cec359481dbe070041bcc7fe85f0c9d411543ddf444fc12a9e26822fd36062363d090dfec0c26cee49da915cee8493fd72a652b3ac0242886ba8b9a4c3b663c3c1f01d098c1d7e579fb52786840a316c7a29853028dd2236274f45465c6b6293601a8ad7877691e45078cef896b679e4931b2161ab541d685c3ce7a0b62c2ee466b6da6788b7db4454a0fc872ee2c311c2467c45e35d1ebffedc8cab0a2864c5395a8eb362859fe0951c7c97905c502ffef7277a6bb6f2684ca4e5e83bdbd029e30a9c856059da8327b08d084a919e5e320eae6cfc6085bd5e06782ae55fcddeb62818453c566ee9d761e0f35179aa621b00aed80ce45525159341e349bb81267a5d10c59b0dd08428887d5961180496849125fbb4bd909f63f914bddae3c87c6c0eb5054d8bc3fafeddf923b2a51c049b1fe194bb6f7c182db6a111aa439b66ee0c9e500165d484285e9160bead7a837e021949a0297522798e195eaf741f83d6823de52dcdf0b3eed577a16d0d6f7344845bf1ed3d6a59c8cfe5cf4e1c2b9c5cdeb3c4d6b7274e4ab0efcc3be2a55e92196ae8371e5a45bf3c213dd115d284edb37e35e1047d66998f7a321fb382977903f1783b447e66ba6ae539862dbfd4dcf17fc69940aa040caa408a70318f8a9d2eb07b6dd19483089d513d43c2692f61e9b441228830d02d38a8098eff5c8b6ba060da177b47eeff5b4e2a1d2a275afdc50974cf44a64f3f489b0122ac2826a9a876319403a8fd7385a631248c6f2f56533837df7988ba6ec449f6aef53ca7c7f8d704c084c811c93d59ca1369fc14fa0eec331881ea386fe57edfd92cde596cdb587eca42dbe03e5d3ee69eff43ee2caf208f402538895f2683b0b57c85107f60c22a8c89d85b60f63881d4b758f68cb3b9ba623b624ebeca03625b474c72b55d2c249e3e1c4298244ecfa3281d0a784b9bba1c7bb3f8215fdc5830154b844f5070ac50faccf2e5655f46bb62bc9af4bc6a9b7b28eb15ce0a82967871bbdf379ee9402b6f4e3263644be02b74ff1c097f9ab66b91d22ad5d0a9862033064b883a892f58e1f77fb96da11746adc9f631abd64fe5c987caac96883494e2f1cd4afaea5e137a6a9f36f2c960a3c0705e90369365bea6541059f59efff093a4dc601b293e2c5513ad5e57fe9ffa3e69d4f789d061990836b985e95cd56631198250d74185cae129c265107bb020020391acef6079a8c0ce3fa1052d4bf923964b1fdb27a021f512cc5d4255da7b048000001bc5247e7d5f47a27a6f476e8d16da649745d50d31bfcac5b537db5e2c20ba5d6475638c6a1b2fafcdd21e483ca63d1c2d53da56c4e8ab4ffec66730e15c012b92a5c441b050604ee02565028fed8c76d73e8b8d4ccbccbb86c8dfe0ea9e4b17abf95c110bb93799eff110732fb0555d2b75ea44a1b10e6521f1d394a6d0231259d3af235111f8de073b706d195a8150d27b6997f1f75e11c8949f23164249bad6c18b503e1f72060aecf374cfe0e41b3aa26979e2e3ae9c817c15bc40368ccff7144cffb0cc7fc30a42de05e5b67e790702a00ef3576331487b8d791847bd010c9eea522d32192ab55971ad5aaff3a8e02ea8de698f6a06b27d9b8fa1b2517af492c6df768a62115426ce6e54bebd4b2cbbf963e5348871efa820be0e297d14bf8c5942f899023c45282c8fa11837c87a8e7a68c92fe58c7f6f9985ea00932ce95c1101179e77efbe5bff2ddfb18fbfaa7189c6662cb81a98f509daec26e34f25cdc8fec194270cc6654488d8f5d3bf6f3f6a17479c7e369c9eff25b581fbd37cf1cb22c47895d205bf2efe72177f522b22345c36e5304028a35dd896731bfbfd332b9f68aaa544a8500e319fc3fada34ad9d7138cb3e489f1a75e0faafd5669008eb774b8e610c9c4f8793eec0000000000079a12000000000040f9de13eac2e247e629b0d269fad9b6c9764181de51e73f7ec6d530b0e7c4840bcbb92ede7188888a4c413f3154ad72bece893993eecd7b19fa4117233461cb84010020e680e81785ab96c975e7d5ccfda40fc0146c6890754afb06e45c8e86d1f632550000052c1f30516103e98c2c252e53509048fb405ec3d245e57c2ac126c3ba4914e24beb4bd23b6e9dc6bc39399b1e35636eba09ad0a5cee450655a32d2c8fb219e117bfb052d7017139307ce4c43ec4de1f6195f235e6f1aed9a884531dd57e453724cde91f16880e7ebb4ecd043020a4d1168117dd5c96fe4857146c8fa9a0c97ad7ca842a627de5399add0615e37d6e52f476951bb96cc4ce1b38c181bca7d8e7db1b4af891f1672e92c2d51a3d02c4de8a4508997a7e53d6f38610adfd1ef245640d3ecfbb5791cdceb665b6294b0c4ebab654aaf272e080aaf71e0ea624d1cfdce45b676749b3bc029802c2d7148af0dae29ba4522060de51a256b381447770adb1aba863a55cd44c29e9c95935b77b95b8171f042f45a7909965ac4aa999cc22509831231f73ba8192f54a50112fb04d71756c004f9e5403c47fa9b1b1c667bf9d6be709d24b3ec4ca89bc15fb1fbd9ff9b52ad18dd8b2869b4df16785ef5b952f3682af6dc215c08e9f559e602e8489de3737b08881d121bd2caf5b845d469a09a9fd30e3cd4b5585b948a06f0d4fad466538be98243578eef9833a0a0f1431d5e10646c292414ef32228bfc82b315964189f3cdfecb99e6a218c84ac7cd219d4f9d3cffcdcfd1adcdd027c689579da31146c82620db13a8aaa559686bda8aa988572c21c0b73914be121ec847036f1cf78ec085e53449cc68c09276ad38531e80c5acb7b1ef0240afcae50166232f67385db67b5abc9779200956709f7b6b2125a66fe77dfaa6abf53612cdd04520efe40a994362d304ecf60de883fbd037330d93673a41e17bbc8e37298120bf5bedff3952bfc9e82182a894c29657fbada6ca9a3bc8646578ce40cc7d339a941416daa9593cb1137858debf479eef23e60cbdc3c65f1008f3498a40684d2eebebd68306ef9b63cd68af8db8ba84e8ea0de75c522b56703097aeffd68bad1a105b160fa1b8e98d67e1055a728f512e0162c05595e18ff117537ebdda7942cc017377d5c1c73fa3f78df57489350dff469c9edf9255c924bd5d3f49c53d27a1fcf37a3fd3218f4ecef227b16b6afe5bc11724b9a7dad728db897123f3519881a638bc7bb024a090f558795216d187feb5f7020b092c82cdfc7f6cf7c7046af748fe3596b54538c84b63f9e9c71c92c1be0fbb73e0ea79e6bddefc20586ee7d4456e5a098975f52ebfd934992956260246dffc5e6c122cf9100ae8b0c48bb3eb1efd99fb207cd2ee58c90df97bc11ffae19ed5e3f8e3f088fb3f2b1db327c10716543f0f69e14f90b4e520dc051ddad130eb90634d11911be780db4103e986a26234dca125491c26b0fcb998b63d9eaf11c3aa5397115772fd810c000a24f0aa6b33bbbf92fd6858485eaec43011d929e9f9fa807f8bccd689dbc970130a66dd03de59182d5d1ab51d675cfe91b311816a820b521936752d0e25b2b64540e25665eb8f7a867f5f9b558ea2eadbf2abc58b81062163c42e87359938c644f5dd949aee9b943f85b34e350aef93b2d07c3a7dc585d2aed4c73febca754a86d0ea88d1e9668dc2e437127a140c48bd579a140f8b3ef84410c9d8d058f1e1c6510a1a1d3343d10d9c4b46508aac84a7142564edc4ae85388528cc3dcebe5b50b00526f6dc3b05ec62060dece4823ead3fc65aa2e31e9bcda6a98d3dfaf9f6c1091bd3f60fd95a671335292130da81cac466b6aa33cbc95e0ac2ccbfcb14119529dc2dc2d5e2769144c1033b59a0c4ce10b44484774b8648fedfe535fb6a8b79721eb57dec73118d9f71383c4209c4b82225a676af2220b01e9bba8290507d52a7f0b20cd15ebfa40a15b5fe61b5e11fa41fa24ab9a99e141de5db63df5b88a80a7e5020020b38f872674b6d8865a2efa48c879df94e6355ddb12fbcb80384234663b07b978000001bce26bdcd1f675fbd84712baf10331953b6a8d455e6fafaf81c2d96c25e89635104e3649035df535802fbab0efe850596cd4a605fddb9997127e69ea827d472bdadf1157be8c362f0e2b1cc2f7294a56145a8e92e69d1ad354b384c8755164e7a4c498d5667f5c813fd66ed626106171228cfd20214842d9b8b64aa0c184185c0860f1951d6741de12c1fb53fa36a7e98e8ae1d542c4191d83b6d4f475b9d99c4a29779f8d3163eb45d994165e6d6a5cad8abacee30da17a8e7eb9591518c816ccc3c7879f36ffc3d99d00d600feb5441578f343431fe29570a9e11905ec957be50985fd70dac9c708fd2579769134973d9d40fb49185b7699da6979ac80abe93280bbec4786cb3dc0f2b13a6abdb22e2ec52953ef145bb568c5750768a9558e38b2c14ce602a72d149accba05ceb58d47958d19d484a99f3c73e6c1c8937de0d8da9c4f16aa01325e4f58182a06606610b084b57e12ae01fbe3f2608ed436b88e4b2b24bde00deeb9d515a40d297355845b6973d0ba9be3c41cb8af718313d2bd76cdad9aabe1c6aa8437fdfa3a50fb5ed4bd0d0fcdcde12537dacb1c672eaf4970e76b69f62d0914ff9b8e5a2e510d69d752c0ab2d6a41c1d83840bcfd9d683db6b837482ef5280a47c740090000000000079a1100000000004036098df74d316899430072716cde261d995e78d986b39689b39e765a5b0ff64ce8e56034bd7bbaf7667595b3f770365c98d8e94ba0488a3d9db9374db747c70301002017af03f1e7759abe885ae88d67c2dc373d27385b2c06263d544c6a844880933b0000052c431f691fbc97528303416421d28a8e41d3febe0922dbcbc2eac1d06d212df609c9282ceea1a9a02be5e63d8fdbfa3bed77e5c33e768327aa03a48d3b52af4f9f6a895b3695995f1b4ffbab76741e4f852f5b38fbe2c484eac8719a2e0436c950131ba427b193f9c4f7439c8ccfa675714ab7a8eba0697946fd29917879c473d015ac0c5e3e2e06e9b6ea38e5de1121713e243f50abbe0eaa0f163cb6f567d27058444bf0b90aa6b010a06a1171356c0c7c878ea3cada6fdd1cd943c0bd255628e5d591501c6741fa40ae7293c92e3c543d9c897e8ad7967bb88b477e489df29d66e0a08dc0130c0835d59260f664b4771428bbb48a9a0b364d33747a7cb09a6218b4c4ddea33d814692ebfbe47991fc0308dae39a029013a9420ad3bccc95c623fa26667081d3e9cd134b9c0c4cfe793132214f6decabdb8bde7272159382ec9d16cb31bc99c18dcb31c6dc8e5244a8bf5e88d2002cbf3a5874557ebeabeb88e944575a4c9613310035ac18ab61c45f79e440956aef6bdf972af893f0a1e3ce471d2ad3aa39e4dd105349584a2656aa5ada8ca279014a106534752bb9ac97dbcf848b3f9e23798121e213b3ff1739140fe75a995a154edca11e1f9a8653afccc29e78d14e3e0cdbdfb553425d551edc5f003ae1f8524c3284d2cd06ae4e7cc79f6aa869a566a6a60f411d843fcd5dc8c479fa575f94b0613f1c5901b921ba6784da704f2d314ec4187c19e3665ee4d4595b53cab2e9c26085407fcebe6282c0c1249df1c8f321cd58ca667c4beea0b41f5cd1bf85d066b64e4d50964075f0076763de72885e6fc217cad6ca3efe88f0d7b7fe40a21848e8b8787e46918e0a71c6119ec7d1d9b08bfe1f1ba9b911130bbfbe4019694df03185c7ba0a4af08fd66cfbbd64456edf93450cb94263f92512f42b5db537f3fe10fc6a06e7e816dc319afed35a01ca0db21320c67b42842433be47b9eb30bf5ccb0721040298431a63682a9e5833cfb4e6a3cbdcd8d3335e01c74c3c0bbd1acd1c3b3a1d630fe4b30af6b63cdf928012d06bad4cca19083866ad1398fc0f3b7186610fa76487bb1973829fd2faf53a3085e460656285f00bedba422e1ffa55a46fe37940fc35a1bbb060ed39f8b32bf72e61a017816fca459676f017626718c0f8dc0736d16aba6e83c754e0ae3148d0af49ada37c1c7d30bfbe9e83e8a38e0dc687d3c1413bc4aaf44c14a59ec75c49dd0872d299d4dc066a98f7d907ae4d2ccd9c93196898082330a484fcd87332d471bfd65c60dc7ae600c9f3148238ff1bc4913238758d80c930273175356f023fd86bfd959065ba8893d205a716e8d141f13ae96f567a5731612016c1007aba6d91a4ebabec1641e8f4fc4da97e38cab9997aa949395ba711c7c9908eb21d23779f2ca4aeadb2af159e7b123f118a01955591198732ceccbcf1c6bf9a550ad9b9cd1ab1e749ae35dd1d297c21fbbc64cc82d4a045ea5bbfa42a99441ed097f309783836ca5893d8ded5007828f622161876524b6074abd1fa3eb41aa7b2192f788c76071a0e5c1840e8abf3d7de6d51947fd79d72fe101728817784118c43039e0c97053f6f0dddfd194a874fe5013f6ddf9704e9a64c56316e1ed0d830f2b527935005a9b99f91262e34220ed7071b327fa19dc9d3cd354cc9088d912af2ccda3ace394d19f24569eea5d273cd5c3754c53e659c4086aa266612bcec4102a1c4242e4655aa4d001977f9d0e29d8e1c51bc61136cb9ac55ea19ae9edd091ff2d3e28950bf714f0df3b9246926e45c9ac0a5de9f32aeeda8c14f28f1eeebbf8d73a13de3e010f3c335fef659bd774a69b92670b47ba569339298c6be8ad3f6b23b9766ab35afa02002086c9034ed1122c4249e00d59dbc3a24fff0e4ca217cfd83e75c0e12ed40ccd31000001bc0699ccc64cc86f9e03b3ba41e32ba98205a70072e3dc90704d722ec87883badfe6078fe081345f51dc486038552abd538fddd1c14c016dd8f4a1a301ebb9ee232bca18bb2f6706ada83d3b9e493029a2b0ff3b72d6b74a92290b1420041a4c55754ebcb13be131c40889ba19f332c81be136537a0ab56f911f1ea1687f80e5dfb33299d41a3f8797bddf91d251c58f942f53e856ce75262763b3726cb6104af6c398366f586e52534010ffffbff16a37c2635bfc162d32d9a28f85ce90ce9edbc391f35d503d3cfdb0e9ba59ac0cb2b303f98a93b4feffc2995eafea99d8bb7e6f4bf6c2d3cfb6becb9d7c88300a203c86f5133ea5642ada7959c946660dbb6c1ea2600a6eea7690382b7a6ec5cc36840f005ae746de9e2d844bfd761851bdffa3ae88202684422d2e044bb1e499b6de6bacfe6157c239d1c0f7ec55d0fcac7c6aebf6f7f3aaada148a5705db6fe12059bd85a9b3b1ca4901bd56078873886bd6cdd39baf37ef74b130ee1620f792c9d1c36d7249368dbf3dd72fc35e36a57ca4cd4e16e84192a9d773c1cf4e3b9ca4892f0233bb6be8b692698376ad8c5d02a998af06fb59b2b299cea68492b6de8c4c63b83a0ab221e6664fbcb1cffeab86a552eca45633c8c36834c5fa40000000000079a11000000000040cae7511037cac89085f731e795835d15f42d5ab1bd281fc233770d6360ea23f62a4796c27dfcf0947ade09910bc0fa90d9b6e2f84d2b5118516f8c0b97d5d01f010020d95cdb416147f5c6fdae8d173ab24dd2985097dff353a860ff113c7af3bce6540000052c59a0ba54445b439a1309f7f2ab1dd847c0c839cc6ca4b5df033974418793b35891ed00bd7591621233fb54b012552c8c06a40e3bb38e3872908086cb5b9c94c91e905236774e83d35494e89de9d46ecaa1bba1dbbf45e009a141468c284662e4286b4e97323e59ec8b383552cf10d3e85d7cb03cc6cc66e7be3adbafd7516d3452fb43ddbfd5a2d31abd2b0fe22016cb3f69315f71bd6cf5859dd15f8d58c1b57412226af869a4c4d4551bb4392033044130e0d68833d6e86e551ab180cd9103e699654a9b34fab472f74bf667c7bca0346177a7e096247762b2e8af95106627a7647b721d48bf1116a48097643c7f077cb35062a456439fc7b76146a4194b980a18f6527ab0b9358107d6db3c6f0314a7499c654b6ec44aa27a8f036452937179bfd92cab2bd669ac18e1bb8cdbc31f8005a6a4964be0f3253844a42e8642ae0f1232e2fc33f3b0d0d5ece9239bf6a150aae4b165600663766e86b860b2231b6afe013ae0f110b8e6fc07791e31ed5fd1d29deb38bb8c3db176a2cf8012292f6aca8560e8d7debd6d6562bdc48d2a6e50bad1214d60c34503bcf654292643f0c25c4f1577332303d29da4eb07f2fdfd39258dea9b7d2127d2d56d7c1cf7f7efcc67fb548ddb34eb29c3bc296e6ada963dbf3e57de58b35eb237c9e3913582aa94a09c9e2b19b13249fa41a6861a7d7b05838ddc0918770cdf06ba6fb51d49555a694b6a8cda8fb34b4640af6a0e0fd45f0e2687a54e3e9cd223dfd14961feedc2df8d7deba78e0f5d14edd78fab8d8afebc8f8a3e6f8f9bd0e4d298044c4557214fc82879a9ca5a6c018f7653b25c6257458e33149c3b48d03832eefc1772976378d6d726199d19671e765789322764d090df3c4ba6b1e418e8e4f51e1eead77d678cbe3db1b9cc05f0eb643ddee6c4b3ae9137070db05c426f73086ae2fab54c4a4c4cede871e948a2b27a469f5558bd335a06b235a54343602dda4aa6b80c63ba3f88cd411b7058754370160fb8768988a51d08c0776b88f57ce2aca5ec600e08b8bf68c730aadfe69efb42186c7d3abc7f2b45b04ed38762790bd0c5aefbfd00f4541de63273e01863a35681cb7f739159b7361e4f48cfe95dcdfa39a55603f75572f056d2147488bca84a1299d44c9146c196e586b2027626c8cc3ea5bf81a59c4d29d5b918b289343c7d7eca13ef0e6655a292be9de2f2fab88185ed6f8bbf6c4df2d37c708119dc80490ba6b5c309245b09569be86661b1f555c8a2bc342a70726e89cf915ee36bc7df3ead83864522214d456492c9eeb234bc7254ddda00ca8b53bff600cac49110aad846874483ea5f3051eb13024fa3db54ac7c117df37558cb1b0fed65dcbee44402a58624054b57783a8699fabc5f66e6bc81c8e9978052838cdd028a788d0ae315d5f47c163d0395ca558e7f15d899305526d81232d722f67d20d1ea85adf7a27996f56a4d890d761c529f8007ef1fb47bdb4e77a1996d59f559ec05ea0d7cdd52e747a37bc4ac104430c6d8bd7a7c359925968058b19db8e5a3d929f0bea901ae8b1beb94198b1036f674695d30a17b64df6ccc3151871315a31397efdc0cb48aa4d207bbe0c9cb93c751e5cd652768c2ecd58dc8e13f20e6d27455d6df5d378389cf18fec79df3473ceae049d39cc104d6f7819d38c235d33daea4f4dac4558b2da372992f98cb53d0138c45c0272ea829200a1c4c1ec1fc74ad8752ca6d3157ff92a45eec5f51717f13bbb4c896e19731a1a72780fc6a8936ef8fb0caa998c94d43fa6500b7cdb5cdbe4e6b0edee9123fd0c2695f5b70cbbd34764c7adf5bf6aac46eca653479e11e66b851bd27f978691b9f92dbaed1f9edd5ac7dbc6f0200209c77ebdaea95858e14bf157e4be5630ad8189413d253923340f02541c543bf01000001bc5edbc57344427d65dca806461fe882b45b8cef9fe203a2abf5f79ea4ae2217e9da35aff196f0454258ff0826312947beb005c7df373d70787106d988264b7a7dab06285dda1d226b788f0254b3b347a9bbb961062fdf8ef876220a20082e55b04442b6ead8f9475659911f1127bbbd47f4d2929d76f27bff4a363a03ef47d313d5ac9c40b7f189d8c81a7d56869c4ccee5c88bb0ae9f463fdfd0745ea81b610b93a8fe41331da1b1b7eb4ecb54c5985e2f13f1a9a1d7387f5ef57be65eef644ee44654489e9b1b8caf4b7396dbfb129849bfce26c2f4fa9ffe658262ff2cafbcfc64073cbded158544ed771a09ffc115c503b3cd7fb18ed7c8bb3322b24970aca7f04f9062772be54c52a359a4b5254953e6b3d122e7a4dea45ebecc0582db3bca0348bc5573c686d25e34a54e0b0e66dbb36eb5820aa62b1b0903014b3b5b5ce1a4d66f39295344b5a8616e6ae6bd8f076c699b12ac154d559971d44e9b647b9b4400470195db35e3b501491d222089c1d3f0804b4cc7b0f7e0855060d4d33b931850be666c348c5501b500f565180d38365206c425c049922e91b771074142650cd748e95155ab4f1eb55b9baf3511cb35acdc0c78b52997a66258", + "response": "d6cb42f9f8040334b95b4730298de78903", + "errors": [ + { + "id": "d6cb42f9f8040334b95b4730298de789", + "error": "report_dropped" + } + ], + "sources": [ + "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b50000e82011d99c18dd9a0c505f13379e4c1ea37f0000000000079a110000000000405618aba3d11b7063af27d29f19589290e6f8e136c6c8148e039a6aed760f71cac093618b42e3235856daab87f09eb2f51d6d8e03665c25798cce78fe6a1473b7010020f48fe513b26b0941e5f011ef85f5167d432dbe14d547cacbe188f5f3ee9824510000052cb5740ed4f40be0720f0bad367d5eda5ca30cfa12848f7e2cce50b15a10d0bca53b462416d230af58d5c93fc15d2812f2fa9e237a03c2a4e3295a473dd8d8e6f908f8b0860a0c8fc2ac9726d7fc24aedd9019349df421e6e4af3c03bfa36d98c61644c3faa32a90830581d66bf95984aa08d1532f822f4094e5285e65d6630b21562a814824c6abd7dcb56d9e2de48b5b7c49b134c2a307342f8e0ebc8f58429096195428d0fff2e06be1975523b89af92c65e2bec91041d54ce26892acae50dce6f72d4a3545b9079faf71809a5236e202754ecb01ea24886823f4845bae5a7c5ba3ec13571ba47587584e2c7aff5ae6645819d03bf7e6383468eb3bd8c9802e98ae49d33cd9dce30459cabcfd5b18c2b2c5ae75537b4a5eec54c481a400978efee824796d92548a918461184a03caf7d6748d056e3c1c138c82e24e371f0dc5620e783da2b14f357fb347c9270524bc6bb8f5654f11324a19a2d8df7a4b21c61a969dc85aeda8a8623a6dcdecc874b1dbd9fd7ab60a263276aa938c2f528c31a1dfcf064409d81a03c2e1db13945f5afbd61316321b66d8d2574430f4c8691c79d10e1031ea9c38fd106fd71fbe6715242b51182e6450d50b2e3ffd37350d5e3f19b7389e60f3a511dc896c795d654ba9bc4000554043ec98f4ecf9919e29c3560ccf75bfcfac44928979e622ed0c7144acf04b2457a3344c30ab98adae96ce1c506e31a110765ef8deed2549d64f6c624ba23ad04f33c90f6519a8b37b7a00ddf8aac71306502ec478f9c51347605b86f5fc7312cc66cc834b54b460584959e4c16707169ccec13e21eeeccd00bc767f86165f2d3f2c2b36262840a1ea5961ad668b56ea896b875824bbe949c6b9fdbd9b13ec6f09f86fc3c1b116417833938b63ea3455a0ff35f81080dd8ec837d2ee7829577c07759272712abb7c920385668872c8cfc72e2665cd3e9fd9262cbcef6e67eedb4226cf842edebf95a67c41b4ec9667d8b9f56c8eb6f3041eaf60ce3ad9382d663a88b7c7e0a78b2eec628bf79be32f2dad9ab711589c34efce81c96970f6fb63609f1a5c99e3082a59eac889c2073f3754e86665557e812190818606609dee392c059cae7bce0b2aca442ba8a1ec138e6fa5e067f911b2ffdb96f14a583299cc3666ef0d1875a91770ca70684f28691ec651b47fe4e27edc5dd976a1e5a09dfae2a53b2ef6c1227372785670f06a2d4f8d78e015866aa1f837c1c5b3aa6de1870174e1a7e550a1d916d09cf2b440fdc78dd750beda6e5ab1a71c6d45856e5b2bd8a03d4e185a38f29287678059f3b74b34ebfe47421ba5b62ca4922cbfc7ed6b370860430c0e4be9697ff01b50959249e1405341ea9be6ba692bdf2930bc5fa90d0deaa0d39ea01ddec7e06146f1e3359275c29f6ce2dd34eaa888ecff8868ab45e5a2331a9e40b47b15e688de9b62f808696e49bd12ad8c279d91cf9866e15d18ed2a8a8ffea6210e09082b42786422a7623ba3e8f8d31b40a4768e4a05ba617791d1c071483801efca275dd8439bd0c85f16fa2d0acdf19bfa8a0c43d3ac4be0738edb0bedefb0b90a08d71783395e2aee20f02173ecf89714b4ebbec549c476fd46d68687d8a23925c82db62cfb8c12585ad42987ad11ab526494075867d972fe5982f227fd395e162306cc5d643b5cf64c868c6205ea1ed965d474ca0cc663c4c01b0fc3f6f7f56d72d598a35e361537b56d18614dad0318e04ead39c8973032d392424f8a2bc756b18c8d52f53efce069376a3bc3c6f937e51bc151e19bfa6879d26a0d1d29e9cb704e60eb2b3d71231ebc5fc4768a6adf49abe4b7417bd327e9ea670a71ad6d182a7ed23f36e6563c9381a6b924020020c0d6240f8a89dc159e350f7d8ad95d0f52a3b937d2bec2436b16968b5d3da843000001bcfdca579d6925cdc403abc259a3f6d89bbc07a46e3c0c05d6845c4b3f1fbf59e2a56a4c21e1c5d4e0ad5fb05a5d272f3007331e8303ccdfdc2ddb5dfa6f7f1ed302b61245ff478ad1f51c8e81432a79498cee15b4b7aee3de1bf31b17579f55917cc0e6d1752847f4a37d3907e38d4950fe2440e2c6e6bf164f53dc1c55b7118ca44d42f68dd7e3a36de9298103c7082cbe1ff0947a43306ef73e65c4a914f3f430641ce4ad6bc4fd6f605bfa5766b6785f9866a30e9c017651cde15ef1462fe5c73cb0edfd08e795eaa03c89de93a9b070a72181be254997fdf08a48785ba24194edf38a12807039258ea02c73368f029cfd5c8e19f55ff8fb4bccc8e1a772d16b034bcca83a7a8a5ab94bee27b7b07ac4742625835ac9cb9a2e25871e9fbab5b7c39226e8dee77dc7688db944a26b11c13257243452164d59355113f2d27390107cbb59273d58f186bafd820655adbe0afa072cc97200b9f1550ec2bd009c8c10ccb327d70cab5e21564208f15c48727a7f925027c626e2bb59be3b1fe9ad8d0afa7d8548cfccc91f08f9185ee9f334b1f83d3e5a8763bc3ba5b3fb2bf11c7b849bedc082858fd29abd2f923af3c8bfb82260027f77ccca4a6648012642b5ef328ccbcb4158e53c9ba201aa0000000000079a110000000000400e9d2505474045412d42def11d453e38ad144c620e1cb59ec4942ac9d2d4fd9c3317c491ef581c5cc1442040ce0c55c494821834c7dbd4123b6cd25c0ab8ed210100203647531190ccdec3eef1145adb7c4ff780828fba1631ac9ec7ffd96eb2e2bd6f0000052cc3ae88b2c5cd014274dfd90e5ce93655fc36204dd001b1aab4fd8e1a029ac1e6eafabfaefc33afade74bea46fb0560a775a82c5eb5d210445deaf201b1c8a9ed5888581e91b54cd418062b53eea7d8592049e75fd6302b8b88b544617a0aa0124a1ab80ddd5579ef7582584423bb2b943a9936740fbea361dff8a51409fc48c2f6ee6f471b0a92d4c1c53875e5657d73f54519e5e10f176aa76ce4511b85b37fa04d38b60b3583e2c762d29b4b102535262227055af6128a0d2242e9f55345e5c950b08cfc571a21811b5fa2f742ab42cdcbef7fc53113d1b6472dc251b6d831e6020fcf0853070b960e93d41ad38bc626666c800169580877a9f993bac3ce78861f07fe497d9a084d7fa2ddb1ff6fc443d014af80f21ea6d797f7634a6fe4d430c05f2f0db185f1bb9379986af3f0a3157626a2cd673bd68779c5e58f82c453a9d7b6200e04b22390c84691d70607a10f309364d98bc430ecb45b4216c4e8fbbd7c6cc8cf46b255d84bf676a02322805b9c5c8fca67c93a4cddc5b06b4523e2f933780d66b9217d633347a8b6560d94c269a25179f8979347c79411b4dacf1b2a32c10f42b8031982deeb18a1abe15a3eb7ba0613516af5c77d4d7f57c46cb599c1ea7d1d7a03137fe76b2fc727e1b598ac199775096ad6852a93bdd4645d2d63b599e84161826b322cbdc517bb934abe0a7fcf39f0c664daae97230ece9ef94887786aac5b471bcedc50fcfaf862dc03e0dea8f977cd50a68abdded4856b7199bff282288af2113de2361853499ba4a9c24a2d54bd36b9214feca62bc604921a3dbec9547ddf1dd8cce3cb16ed4dcb94388be6b37296b7362b05747d6177e3030aba613d9a7c44e32c108d5acf74d460adb392536ba76195616d176861c454b331c7f6c537a09a9f04edff3412be78a98399399f03924fb31aec8028eb74ea9643751675d3fb63bcdb67a011a05d04757a45c61402aaa8b0af85f8d93975d508f33e81529aa51a4882c624528c552ce65a2becbc809595cc675e837af5327168a7875ce435b8aed9c0f070d66787e2e32265b039c2f0a63207862ef96426854ef0e6c940496f525d863391c454584ab6c4e46895a830115800cc422e58c759af56f1f804c57c46309a0541a955a59b11608d2ffc4b60cc01b35106ea3766ad149cd45f09c17f6d0eb0f077aaf0608005aeb808734303f5d7cfabc624d7ecb65f315c3b75bf276ab87bebf7b0a55ddc97aa201e4a1f5d88b408f07e1d69a24bcd3c76b4102b01ddd5731cedf977a015e79bdddae2877325de40cd32383de27c8c0adf1a27f57a237736e4d6914ab979bbb00e81b9f4138789e9e99fc54eb0223a867b424a752215b04073ccebd44e7cb72a7053bc18f2f76a3da358b6aba89891b1f5f75e12f4fbf35b245c2a2067dc2711c8305ad42e3f04d9056229ad70c885ab0e23eef47694422011b5caf5545514768efac56b3007967c5243ea27df2237934ba465addbd409eba778d9e8afacf29b97939ed6b056178a07d1daacc41eb3c42fd868f2366310de70808584f7b1b39b9ba1590dfe1cdf48adda6b3c3fd42c8aa20c028fb96d644be7db1445715b86a1ca317cc666ec89792c1eafce6498a54029e7cb3b4927c9f491e30fd2f7e078a03e25743e1ecdcb02bd84f146ae44c8fec2c74081d39902afac1eeaa2c15c4e9c6eb9905298f213d6a87a69ad9c2f2b20637bffae79053a7a78588e6b61120c079acb97a9936f018f68f1468f10b173ced772c4a7607b8a970b1bfa3a03941c4253dec27415b70a04961b037085b3736f07d4dded22f0114b73fa746cf001e1dde35345a03eddc18b3def9a44a7db10b1c5df4f9ede751ae0e4ee0200204202fe988b93a6667606662882834b4f3a1b11a2c70b4e345877b6b8c0087b39000001bc16c6d5b7081d7f7ee1322fff410e5a0c31e839df121381cdba37f332dafc6b6f2af723109a3c1192f9c36fa236416728db1c978cc1a7688d72da550175a886f54815dc88232535908e98c79158968bfc2a77a4d46164f12980b9b0ce45e4e0dfb7f84bd8fd8afe790f8ad82c6166f46972cdde0a32fa7fb71640a03cc8c729e739cf5764fd697692ddd2a8e5b98a091b654e6f72ec3246886513a8cd7915004cfe831e5d03b20d37724359ecf8d98cf98a1e91b46fedb9a17774985394ecbdaa9b841c2824de9eddb77c4cc303c08ca3278559abd6e69f06777db871e284d8518360a2b0c4768447d674ba72f174a1e0d9caf7c32ddf9ad175cb7663f541ddbea30af3664c5f9f5feed7a4b5b4c680026ec0c18fa22b78d9a8b344d9ec851dcc2c4eb105005537e6dc8d03147f4b24e3a29ef5005ee66efa6321c9afdf2c349fcb38abd59fe9f353b83ccb04e2bd0dd857ec0aed36ff6c0ebb28be9c07d55f84674c4b8d020aa7b8d0d04b148a2fa30c96c4e0816563f871d9db007e9ac28dc2693fd6c47f79e89259d7fd9cde50572717b4f33bc529acb53b5e44cc7877ccc5bf9002d8384afc691c4551a4233e776d5b54ee5372e036f130ab82cb291177eefccf35c5fe6ad8ac24d827f80000000000079a11000000000040aa41a457d7eeea055625bb96a1f3de6a167ce888d873eba0f3732541215c9fc06663eb862e1358ed23b03d3d65e85528e0a1d82a4f80d8fa5bb5465e646f40de010020269c1330488759cbf6ecbc5c32d705331bd755f5ae8ee89a740cea8feb47c9310000052ca489ef1473d8f2678b5e246245cf19b0d626c002aff3ef87f7454cbc7a52e2659e5fa61746d883faa7541a96d01faf0665e7548aab6b5fdb1533d67aa841f3c6ade3e2a9da907298dead458582cd8f38726f0f12a41c958ff32b01dd2f6a43ac2a6b4b6709724763d5e8b80fca3780710f4a516e091badde5f5c1a85c9980ce7a5796e2242f5aeab09fb6e278e12eb18b8ae80b0db0a2adfbc3c345e1cff279f866f52ba5c08dc8e66b521072dbea85c9ba8c3b92c0c08cff5ff0d3ace00a0a571292f7b53f54290a14905146cbae390436a117fb7f92e75f245385e2a96d5a26f4ff74dbeb952545a5eb81ea9ed5b9fb45ef0ff57d298f2f8ea0b2a2fd5b84e772a1350abcd8590e62e2cf14d4734aea1b970a6d4e8bbd237689cbad37c8af0251fbb9986dbd08cb57f312d2b22079b7e162ad506ab1a05be0d13c710d2dd6cbd36d220ad7cfad8706d17c88488a8311a635d577867a1ca0a80fd04ec66f23a139c5e7d7c7b3cb00790c8a8ce0ad3b437e158e352c0a0fdff2720b7ab606093af6ee5f0323a138de5bbaa72fd5179f048e9c2b88b1d850734c03edaeb2333f33b689ac97c61ea919458a716c0d32e937fa04074eae5800b74122f4618238093c313b521add325eaec073ef44b1b2f34461d28165edb7229a1832e86093381039a3362945fd1c4aa60a2189826b215fc410a710a4a441fe284520fd6800e7adaad7d97d37c71662335ffb4ba028c42e64deb00acd063cf5452816db0ac7fa4174dcb2fcbe8b7ebfeffd20fb288aeb10348597cea24d8c370cac7053d9ae79178ab3150a042dc3a92abae9f95ef930ef60e0cf0236587a4e758fddee281753cb2732d6d5ab22dde18945e034146349ca9ae5fa87de175707992c5a11c01a86b4d1c0f2c36691f73520357a8381c950b13ec08efed30c475d130c821014be29d25db07ebfc6f4cdbef6397008554f924f99f934924ed2b79ce70e10c71817c8571a73b557f88b83b688cd388d40166806d96df53dfeb89c21c6146acc7d86bf33fccb2d425fc7a94bef3341e7f5b345c6d03d346e917791c5c7c3c0b0b2a976c23c7a8109f1bb81ee05113053990662e6f766ff5c92df42e35b4e1c2cf7c486e385a1e3708374babdf1aa6446b3afa360604c5208be98b298a752f49d844b9a914833d1e49ae4de38d3d95f5e5c489f69756308906e91016c16e3d700ac5ed9820efc44feda757323ee88ea33b074db5aec650ed6522d4d55d3e77572901d5d79bc7fb5c60ec8c42e952eca717539d3732ddbfb8aa6e21f35923318f001af8bdbd6e2df4c7ec0c3b1d749eff53e747f78010aab7141cf2c3517c3b7e1c3aee2b0eab5c33a480aee75e1590107c1fd2c46fab0e09f195a4a96bda42c32f208aef8d972cfe75c6ea975d2bf3ea92fc9f9db22f07e5cf7c1c264816f9e46fce46901a979596ea3cb7bbd10e5b4db31ab76bc7485fcebf10a42ef823fc729f549e706bc3d7933627db41121aee44f5de9a85e4560b3d9a6ae14e01ff58556624048bf42a2332e041163ddfdc076a717ab0fb0153ef3d139cf0d547a0743a0f1b7df72396bf722e8ac7830dc3a02999440aebb3529aa4c5eb823057612af5da6a8c1d8e32c204b3f994fd4968634dc7f55893949401bfefa25b88723f0a1235074cca8d4e4b722b01a939e3b10eaa4772dc161c43f24487ac9b53bd518d275866ee7f79bbe5807c3573bc9fd228b60ffc481ccbf0efdc1f25c2d6bd454f7d4d335c4af892f41a244c55d72918d9a3a950f30a9b17269b25934c218866dc235674b88c4a021a6bf29dd8c98dc2ce36717283309f9658690ff137144c94778b75f0460caff57c664313fc751d79edf362020020e87c7ebca643873a0624f0b8f9513f5adfc48ed3277720016bb08faacd78957e000001bce340a385d6c39313e8b0c657826d9e83f6b15fa0ce13f0509b724419ac4034eb56b47ab119f59be4874d2c0da89869162a53c95fbafb0312a92d9cf97cd2e3b6008185e1afc982f37bf06c496104dc922629fdf981556ccc852cbab39b4e0648f3e49aa4edfdca22f9d08488bfaafa33a66d7d4ef09cf1360daa8dc8d9b8b5103b18fdcdc86e355b77b240d59838054df1028ad3c5a31e5f7af2868ff2ac175e8c7d37588f4ec5225b477aba056ac1f1082c22629ba8e396dc52fefe4cb8b69a8476db47bda9afbc06c59696cad125919209076c7522027ce018e315af2b73b77ce4b57eb3b35dbbab3152b282bf709a00e85526852d78515d3be04c87cbddd8aee36bd1bdab44d3e349fde402791367fff00cd015dbbba78fb674352f6664fb91dcfaccaad9b1176a325d173e1c47c2b0bf8b71d0157bb91a3a07cd0a391f0949743efae94a47ac5337fb25a31376c88f71aefa1e00f8b1f983b663c66f668e3ce768805c8d7eebdca2598d3e0e01cf5cdce88b896114ba3ed7272df4b25c23419fec44b7edaadbc2c2dce2ef9e7742dcc5bf3f285f7c8cc5418902982d485bd7756cc1990c6a880f6658b8f74b015a8dd73c1c0b8efebd9e7983ef2cf06ea0858f3b84c2f1b6cef9eb379e0000000000079a11000000000040540427952346c276a4b7c69e3e18306ee35662feb18d7974753c2d4cac8725a3fadf01557f0fd89116b2f7a0e5203ba8bb3cb3b0d9d2e3f58a9e4e4ab1a065c801002068cbd7332c34ebe74a84a4648330514faaf78c68274226533837147bd4aadb5f0000052c7b2302831f0b8a5628204ba0bd29b35c04bb5ea53dbd24fc645d8b5d3d16db92bf64da3d18aa9c694eb14d27130d0a0144648933495a16c46d7acd8761b3ba8dbc082e6c221df474ce7785c7af03bd79e4f76da00d7e12547ac6add2116846a0d78ec59d7206526f5105b2ec11eddec36f8793507de7b5d2f764766a4a50b6f3be0a230142f99573631e33216d11b2d1419460f76c6bcd9427616fcdcab69b139e418801549dbf092d92e4cf188632a9cf89546588007452941109f1e0d69c20e09ef680c55f397d89267865f7e4f794fc051961aa4dddc834852a82fa809236f8261dedfcbbae13639e108152fadc7ed687389f6e9649a901297a11799c00da6ceb921fd87652b8a374184f3f613d6bfef2f61970e5e951faf13b09e6fe74616fcfcd5177b494e4530822641f2045bf2d99210885db1da613a1b427ef7939be5e92fcbdd0cab803ea32bc251ca8c0b630963c4cdb972920397783ae85c47d1c2a8f96179f5d808bfb11b0db7f8249045ff44ef3ddf0b7f113b7dca454bfd34b1864fdc6cac6cb4a92c28e4dad2c4f87fc86fcc91a6190225b3a24dabfd80b3a5d27b67861cb80adf26cdc0e440bd13b321ea0fad9f51647e365d7ce7e7235a82ae6f78a27f74ef796be8a6c3d63215e027b65666a459df8385dd828a5e03380943fb833785f97bb5108b6277fb5f3663b7c411ca65d10377ee2b9802a1d7a01be34b8406903c66bc9eb712d95725be3cb64ffad577e5b24a207bd3891f4db53dd039b35a99ff3f6eb0de080be4b1aea3e3d19c57f944baa53d12fd7ec1503229c029f13a93e7c7b52a9473c5c62983cace9651cb46e32ce804fa597ecccc681964bf615c60ee0862243b5c6d14334cf6abc82e8dffd71af4ece11199dc9c5ff40c6bd3f9eca88e8ba7190d81acead584e76ef41a007e64733ecd91528edb105fabae2acfab827b9aeb54ba64d7977e01d08690c4ddb4f0dfde52f1efe773f779617c7f80b9d67dd05eb05a14fdc81f4f0a422f9c200d324da650f64d2c8566fffdbd0ec499f4d80692acf2d62ea4a26bd0564fb753cc328730701d567880bde8d8e377afea8b839c7007ab0fd02139ca835288fc5a055e84f538c9996997c5aed0bc29771f7f320bbbddc8b83f6861469325868034bba5c15593706afa1c3538025ea7e8e86703331a1ac1e9a5f2e671c948594c7b90cc6aba71f7f8170418618069bc921401b87030a5a4749980991a2a687790ad6d996ad76858e026dd460ae62cbb4d889cee76888fc031ed2ba761dc31f54f21a11ef7f31acc5fdb9d8808a7d69c6cffc2f49943bdcfbddcad8ffdd081b6e79a67d23925d82e0485948cfbffc3db404bb45f964ee5a065675925afe97faa93458074b04d5d57a98ece77195a8a14c1d0c1305829511975c9e6665515f7f7c01e608751082d4ff42d537ede1b9db83391ff2797144375d38b0d6f393794b17a38abc44f327d41b9ceb8bce453d8c07c9d7a8f892904aaf9d9a57649410669b1be15a32ddbf0d9fe58aecfb88bd33543d8b6bad0ede992f04880d8fac976f38d523fa0346f91a2c687b18090d5208601834ac5d0ba4a1633d7dd41dd85a21827186cfb92e7f6ad89e85734f509488160ef6a3559b18084a8706fad1e168a85ea021109eafd8a2bf787649b1d6df67b817d6a88fa52a5dec9f42c588d706f9f7d555a99443569594fe89c657cc962a523b9906d76d6ffa010f18c1d42d6abf3166d5be30b1f4b9e74606608c9db46490a788c00cd3fe7a91d6d44cced826950e0592e66b0274549b126ec778bf9ba707e38c049785503ef6c7b566250feb7438907995ef17a4b62fe373b8794cc71109242ad5cb769e71e80200201b121d2257cb93c612a71275611f8e30bf6e7dbfd74d046b6b09ef408c6a0152000001bcefb72025f005a90142dec3a11b4ae7549e4bddb108697a02fd2267c392ab97e823c105ebf3a3c917c0033440adca7b399be6211469d1d326510f6b1ef5dc71e1105533814dbfcc9a0c1844ec2476008dfce1265aa7ae77f5ba7fea30c621eb8f8ba028d683fdbfff8ec803dfd5aacb8a954619eee65ec20749f46ae457fb8e43ab97e4083bab9b326deabcd26a9a5ebfe84683e94f368d5e514c8f705650f61981bc9ff034250a4a1e40c20a3ac63f3ac2f49e8bd1b8071c9ce8d8b27701865f28666c88d72b950bb41137b224524bfd1dd7dc02ec561c8275b5e173b8f6bfe0f1f121aa54156e70297191f96449e67932e38020512c94a0f1113b70d7dbe85a55eea0c1f83a67e585eaad132a8e9e4b54d774ef480782298d5f6e043618c54c842edacbe516de3ba433bd03d28c8ca46a24b439805783310692fa56133428b8b482dc4c9b4971831490b4e1e5a85a5f4894174f60f4c58e02c568d5d4b9d79da8b32f8bd1685e8d71c7581b6d1610759c0d03c0340cb62aefb8dfc50019114458a6cbb5ecef3e0c19c53fa4f434b8e1d2b3eb6ad6e36c052d1af747132ec2ddee0525b7361deccb211f5fdf583753afef4b8ed4ddfffd91b88547822ff25df49a3b6cbe82cec68296d5c3100000000000079a11000000000040b411111b9a73ed732062a3ebb57cc00ca7f1c0581d88437f8b6915372fd8004c4886d15103ae5d499abc422e86262ffcbee10669704811dfa5099232650098010100200a1cf86d3373edd636e0b401817adba3c1e0bda7d7bf98392c67f707ed98f65f0000052c63b30ddcc9efa465a7e668e34576587198af0a0c23788ec0e45ee1204dbd3b5bf86e10459ddbf42041abf262e61407edf3037b60ac4c9c721280b5d9e08ac69301f2797399207f6bf9e4c2bea8e4701e6d78e54e05988985c750162c98764fc2a15f2a4be47618f82aa2c8d6cd1ef03655d1de4a07ce479da274174a82e42e8d4d80da4626cb33f9c1ff73e85cc8df539d02ff1796eec473c4cd9392348ce0e41203aa879fac67233061234534d323d80141043de59bfd93881edcbd3df26d06c01e754080a3f5e6e96053d62935a252957d7f17550444ceefc675d4275beab1a2dec9df8851506e77c26e1371ed1f76ff9c78ce72c3b52b7af32c557be64af5c0469e91fc7c07bac035fb7170e2c6f23ff824303414f3fbdcf2c27fc414fec42a924dd9e63b9d3eac4d3abd527f7c023c0b66bcea24f5a9c45f42ddb6f1c9b8add68c448cd18182d3d04e9da25e5587faef290530213f419c5336cd4dde2ff0c4539369df1085d5d0a327e588ef64780d05c8344f0eaa2cf32f5423cd95335ecd1989013c6bbaf6ad11607aaf367fed4d3f04ef7469d87792c5253ff7200eced7cee1de7937d45a677389b580db3a2a33b9f7cb216c131486a7f3fdf06d232ab02de2db8a98c3eb6292ff45020f61400d07f76a0f05a1e8cd4d283bf01799544afa7c515daa5ccc6f77930a551452b50bade7b6ad006ea9e7176cb6f80be210845bcaf1aa191c85189b1b919bb105f4e4f146c6628604ef24f6ff56f459c94b38f150d8609a3b65f13cbd5660b34116b385f9f7d12b090daff71929ace6f75558924db0b405798541af3921397bec761323db19b8499e0948372c137b563073795578dcc4d50ee15fa79e188cbb648be91dbbce2181fe933f149daf50a4577141ae6c67e78bbdf0940c5440e1563c74f0ecf403e34a09653e46d84db6b4c30788c2e0051532390c16386a7aac0f0b52742f287fcbd44c7a42b0369e2488315d95c829c73dfe809034bd4e6448b771ad318adc7c63481e2fab80577999edcf3040f8f80aaade4a888a8786404bd40e7ddad8c6f888f8134b94e1a3abc869d1be60fcb343adeb0707f8cc9e8a0b2f46e1679153850496e74a634a5949d5a5d29116c039aba00e0e67731fcbb6b61905b8db098a69e8e19e42455598ee4d03d90bae0784abda7c812665e2bafcc7a561cff0f817f056e03465c4041198dd0e48a8bd113df9e0f7dbec7c3b3af6489657e0586548f1d940f8fa720565f92c84363c3abceb7f3be2a2fc27f7fd08b6d114bf4e7c28346b1bcad0e08e22723f459cf1d1a2a91820afabbec20694e9fbbf4a4bd9a103c5fd0de1763f436f438be1ad796b3e58486bb1b8796a30cc3abf53562812642375edd7c083e73229a8c0904ddf9a6902a950c1f08fa845644309d7544f411525026b940c61074e16094aa7fae2558ca9b1215b27797e23f5bc17a3687f19649ad2cc2a29b684b71033333e212515c7459ea679268b366ae5fe8cc6f4dd556fc2d6436eafa3ca98758ce8812b86536d22fb16f60ad18ae17d82fceb148dd991bcfd80d214b01e8e0380844204890e5fe428fc51e549df6c5445ee5783796f2cdcaddcd7583f35f87571afe4faf292f869036b60ed9d06f77b136ae3fbaf70bdd5a090fdaae405ea2fbc7bdfcba945500022aaf63e97e4d880e746310d8b715f8b93d47ffa9b401e7604161435b471e5c72f44cf0aa3664ce46e5fc74c3e2b2803a4ebc2e78e76b146e1f5fddc9834ecefa29775e79f3ab2926769b13bd2de67af505c2e8d68502a1e48c08f25193aadf4d02ec44b2be7176ec2f40ae041fa41f88e42a183c4dc5d0e5c556fa37416bd50d13c85006b1a6f4a1e02002027553cab9821b94bc0b09892f5df03c3a235249b88f90fc278132171e14d9364000001bcdad171b6fe47a5921f98d73d95a29ff2d706faf42aa62ae9f5ea754cfa9192fcc79b58c0ab3696e201ac100c0662b7d46aa27e1a8ad693e643c40e2bbd262c5c9b4b2c8c283ed4976b1347e2d10bcbcbf4d2867fd19f9a9194396fcc6fed6142c67bbbca8815130176cf15598ebd09523b842f4f937b8866c760aad0e3621ff8dcce477c5e164d0ca1cbfe8cfacf6cd2b606003ca439cefbd4dc396b3b0b51cefcd28ffe868517d886b6e6a1d347b4cc07882187f9a4f51bf02b016b73a38a38502681526925f2fceabdc9e6f8a572d560b520ec450726805332bc2570c80bc40b3244df2f64d020e94cad4e1f82f6bdc243690d08a6afc0c44afc5d3d106feddad275ae1934646f523c3900d1069f70bd1683e3c36023af7ed35a16b5daef0c4bd1ef3dd0bf54ae5fd44864e0d299a168bafc0ec3489ee208a9cadd74ade6d30490f04d8e21aa4aa8837b65b1243ba44062098b2d266ab408ab73004a8a3a1683c09ec66b13b653416147840f717e3bf1074434922e2085dc6a26af4c86035039e3b5e9243357e6a6010da7b05f4c8031e9ed03752d0893e4071cf384dec1dc57e7b3f987f219f26320698c6753bf9383190faa62907980f03609233276590b43be46973df2da6cfbbd6ad70000000000079a110000000000406be94276d004f9836957800cef15a3427d8d4bae660bfb405bed635a502fcd8335bd0d437b749235bc7d6690c633502dfd1726c67a4895a6d6eb3eb106b2975001002037a6f4946d78076a6e63dfd942b3d65dad2910f4870c51f0973bca700bfa91670000052cee1bce87fdec90bc352607694f51075e1fbc5a8946fe37778ce8e944e455d382559c8e8dc34c7ca9acf301a0bf9b50d93e06c2181fda74fb611b351f8fc5ae419c5377888b08f0b1efe6538b0838ebbc152e87c85762cacd1692ae69bb813cb782c533422080e19bd6def43a3cf0d9be10c63640431125f19760b1248f4825bcef85f96149fc66c7fa266fa5eadc6d86465ccfad53ed43162c74679aef247ed4c67be6c90097e95143666b9d6ccb081c6c7b7d0ec1b579fa6ab2475c99312e24efc0b30b7f71b251ea927f8119919c96c1fff4477f117221eaed9477d7b197874d8063efd10623b0300b7e45e02a9e31b5de2a786a2ef0c2b85f1dfed1a32bb6a6ea6a6c8673b0ea06da89d44ec10d57095eec2b16d2ed9bcdd5c6fa2fa8640c98f03d29bb5ff919aff0be7c115f9a9e4d9aec915d078dc05c12de91c4ae83a2e751f0fc25f228a8bce68ce8ea2c053d00b045e91f98c5cef2e827371c66f9203b06543dd0306eb4c31ea613cf0c4b73335b22454b04cd259f4278089632821390b92d846a237cf152fac3a2809fa3be8d5fa46d92d13df94db369025a518cc217961cd4e372a05182bf67ec58bf253762a67b1c32681e26c2e525b3ae055de9a68144b1d96fcfc8b05d9a769e1a772dd4fbac7925c98c7b802a2eafda104a4fd115381144bec43c869be7bf875f73ba8b0f9b0faf5e15a084e0881c22dd266c9c6bd4a522e428282ab3725fef14be70dfd15705c55aa83589cf5a669d743a81b291645794719ba5ad672f779d03634fad73f98d956d06cbf60d711994cfce49bb15ecc61068334ff5326b61d12461f7dbb898e51b58776cb62ac03e507a26af1b61400c3d3666d792ab1df7af1c4fadbf8eeeb3cfdcc1b70917e3872fe10091e6a44948ac9cc8c51afe5d547967a6c2a619d981086dccab1296afe7b0974bed0255ed2f908c692d3247a5c059fbe192b73e31bc8356095de4dfd9c8d51032a13bf19ae3347820ea4b64c537d437f5f51f8f866c22cab037b137176bda48dd1ad8d43d82b5b413a4e8328b6c052e2b3f9b1b2a950bce2ab0495109f7697401658914484346551bb631bbd21a97903f1dd2886adcf5f7a2d99acb76bfd1c9b609fd19dc14277a96f96fbc6e65deb8d91ffb69bac068ffef6f2ca87b65bad47ca7c9e2595ffbbc5d45a447656398387aca86068b85c09d2a580140722ef66e2f3f51fde0792208c4b15bde8249b022877660abdc66b8c8daf021f6080c15a6d9792acb5ea13e16ddd0c1152b596e7116ad117f4fff69aa3ef3aa5dccfe9a7492f0e561334082b1f5c44ccce4497a7c1960c1ead1177d9e59bee8e5b47044dfbf13ce568b4230d6b98c03b08d249aef94ae85f271163b6ffbddf8029d8d90ade8c4279e209eb4e572246bcca1f390d11596585fc6cf07d25a6331533e03c2347e8ffa509bb2bccd35e50502b995acf5b4b43b21b30c35b8914c0ddc675b5da1178a44e489139b75835457e27c23c58f645163ae78b175712b7890e8bfc93f845cfd7433ed81d6185ffc2830e4d58e6c0d215f0a0db05b3b31ae12983d663778fa12f826a2744b75bb0bad112498dbc1b923295834e83834869ac147c07e87bc09acad20fb04b2bce302f28caf06747ccde191e6a4a933bd68679b1b3b72f11d3fb2a53897f92d1839d078fa3ca1aa335b24dde94717824dd4d72f0cedeebd6f8db71ca71fb1f24f5112ab12e1103ff83c496f37d6a2332a5b94b8b75d978ab6cf727347a569a87dd46b547490c30160ca45a98b18e36c97090ecd8d732d29a81479526838943a0c5323891d5258cab6ab96054e8f884876757936a179369fc2d46a3db214f83f64ecadec8c9f1f0200203d11a82f16cbcbaa550b9b1d6ab35ba274cde494c8bfa745dcf24395d9041f4b000001bc66c9e81338c11765158d992f21e88bd7538dee84c113d232c70645f85ba003aad34c5079b7b65449cc25e910063305d126a973fe23e3ee86d5dfe3c3fb9033c2e0ecfa73ca7c9c9503f54b6d0e9c9b386b53e472c0abb9df0efa93cc867b469e6a5f2c74db8a8378991bae7b962a2ae943d2a44359f81e6a67f928d2cefa87418496975d191758d33df117f2f0577dd9d1b62d308cbc9302d8bb919eae16c9e3abd8671b91e1fb3d14510e6340ded62b38d2ea1a309be371e7b2ab3d925633a9b7d9eb4250db49f4ef525687faf9f4a39f3df5c0e83d3c689b2cfb980a2931bf29d22a8ec9e9315aaf781c48b95e5699f21f079055f8ea1fb0161fe7997efa626b0bdd4b07597b9f62c2ea236044f5b73385e8b7089f036d450eb91fd049800fe5e4f7bfec5aa7991af90da2669d0bd4eb29623a08af20161b33165e6a2d049e51e9cbe2797b3becc2ae23781bb9500ea88f2b34780e250e51436c67fdd9cb7536fb815af03c532dba1427f40d9551fe95dd8fb2ac3dad84120a0f62ff9410122b72c4c33ffaf402627a6fe4b18512f1a2d9b03d4667e5ec6e6b8db8ba35e2e9a23289333f51e4172e35a762bebc321c177bf06e293b560dc58a946b3d84b8e38ce9861ed97804affba3e1620000000000079a11000000000040a63456431875da31832b2f6007b35edbd091081b0e0dce0b7371132da67a110e6fb0deef15e8e67f261d66cbd23806cc500727e12034717934453a2b8c28b6b401002017e107c9410e44509e5c6a5235661b10f23fa98434aec6977e2bba57c1b77f2d0000052cea8efcca39f0c8c6418d734e7f3b8dd22017ead880bf09cb69664134ba808ea0584d154ba7c6370bed55cb724fb830384f7fc0ad33f25101cc017f525565244181a73d38fe14ce42639a569a02006f8b2d48a2efc0bfe0a8c0476e994a509d2ada6feb3086adb467ebdf796c3df64e2a68f1fe3a91b9658016822ae274f06c09baddee1228e59287b2723550dd26d168feb580837335760bac2ba5ab7e55a962f92188b3d4e7e78404ae4e95b1ba3abdf846d76def9c6c8eaa17a63fbfdcca055948dccf5fa60a300cf2649dbd01ec255817ce259ca23d931fc2ad40927144377fac20b63e2a4a7a238f281f28bb4a5c1a5b3f4522ce5cae2bf937adc69b475d894835a239083ffb3ce068292e5d9ba2a0580defce05f6b37979bd4ef920c5295d098058c05763fbaae23a5c4528e3d8901d73aa18951833428aefd77734b7ca418d3c3b08aa08c321f0fe6b4b214b44e5b4745ce8b4e7968c60830aea8ebb3216825ee843ce1de54079502f156599649c6913a8f05b094b0dec1fb2a643ddf314cd2bacd78a08f31bee18ef1954db281eabc2a70d24492815892e01f6e1ab11767775954aa9da0463ddb2fcf48d1610c2863e8c527ef4fd021358dc41e133221486bb79dfd0db6361aa7be6f1872159e2b89d13f89ad4b1356b551b629da8c074f14b90b733cc7cecbf9d54d270c88c4b379b892b6daf148d308e0e8dffdd7666f71decf7b2c43d588f208945c934f9e0a2c1a395d94bcfe1eb114201f92c3b8d75352181b607c3c6423c743fc40f3defcc46b98003b35eaf005b8bd780975ddea5782b186507e9509498e967aa0467556095644379de26934750bc06e0de8015f29b746a35f441d07559d6b94eaec245770441447b595c0263d45c3b105181dbe906e5a225b79e903d0c90b6ca5dcad974524099cde1d076d736b88da6bb7d3ae79dc5289590cbdec5f0880a6a6cb939ad0f381f08803aa2d689202dd264582c18b343c8f38ad62fd164ef55e979a9f640af30ec3bd9e80dac0b31ae763a60354aecfdd803ee8dec8dd77688c09d5d436739c0ec9385f65110295c2cbcd7ca405c1249d6be63ad38a405dd8f1cb23b2adddf1237e341e238f9b07146ddf92bbda2047b6075c946384de465ee8a6f0489bec4732f72735586ba2c16809d7903eb0bd52a4c9e57c5fa830aafb8a1f3ae8a4c2d5ca5a6bb0b8996f636449a7507fde1446a8afd67a5d2b2c483dea8a4c5c0e975cc0a05089ab1fe2496126ccea7da84de81ca0f868267574d05f5afedb95db3d869067ca9990a24d5e606308d38a2d308dc371bfdd40bcc6c348317ea821e2afbcc6984898a4ead2496988fb3b0692ac8c2aefc3f5c555d4899a98b5ab933c9831c2dfe8de7777e09ef271b0cdf57f3ec5d8f53780d91c72b5fbc35999f1cb962bd9ecc2856e9b79f43ca6572a9f1119273557b3a9d9400bc2d522224a93e4009d47f40f23d2f6235a997de17adea59686dafdf46c581fdcff296ed8ad165c3703e4fcb827c6ff89d9a182506ba908f1bc3210101a412534c5a729f290007b57270fdb67520184c36ce5b0c895b465a5603675cccb9a0b7ad63df2c7bf21e4ff87d760b5975577f2d280ed55b86a15dfd01d181470d76d414f97afce92aea62d78d8de4c6b76b6609457975f259ea7735934a0cb8c28bb8508b31c4a3b78b2ebb8f6a17ea061da6c126509bc127bdd967eaefc6939c6ba64805142eb071a680b52ee13bc0ca91894c60781e146a38b83c05a760e9d55fc530fa4929d588fff1ceacc81f986867a52f9b8dc1237bc33bbb6b84036b0f11b444abacf8afbc9135b0715ae0062704e5c619061929d84e254b9ae0d78fd64ec7ef6b020020a0450186b2334623f438e73ddf98be4541093eef5a736a72b828d7ee63298f5b000001bc343f31ad1f8b00706805ca6b63e5740d693cffa4357d80e9a1c68216c4063129e60a4f186206163f89d1290d1e941a04a14a5b179212b152f3f7bee3d45c3d3853b169fef54598eebe7ab647741007ae94273d0ff7ba09086d1d7c29a3261ab9a299cb6fa2bde466c259e97dd3beda5c7ef3b1d8f2ad3123553e57c83eb77cb7caf7c00b2ebec375b1349e0f1c5025cc6db135ba1d0df3650f7516fd61306aaafada3324d93b2fda8fd8bc38c4e5265aaecf688a152afc70e6f4bfb0dabf593800ff48995d4cf145867d47e47e49952fe60a388df7be9bf2d723fcff65a7eac56705b5169c8c86b5ef15aaaa8dc377926f688926f1db09131edb73e0a94e8b904f8c8d5182a6d49a57f98d3e249fc1fc4c87a7b90eeafdf194ab8f5489a4e736ea87dfc99030bc724890f21485c92ef7c7cd7e8fdf5e54ea7f925c0800605b06bf0abb999d3f74c80b443db7340f61742f78e74420afab25bf865f203f17c758263210b53c1ecdfb6b1bd8acd105cda102f826e2aef90deac2b3c17908cf3cc6fd7c3da417dce05de5a561fce937920c973f7a966bdaa98cb080cc5cbbed4f378e6c8ab95143532b163d171210effdc9cc558c3f796ef48929de83043e811398082723e0ecefdf35ba31ffbc0000000000079a11000000000040435d4655961b7e7f662ff0c27f1e2ff97e430f63eeca680d117dd417fdae0eb46dc9500779a459f537cf2e51bfe7d3e045f9c074ba50b3a349edbc0c98a599b9010020b380ce58ea93f8af3e8339fb6af154d13b70e90899cd733bef1fe00d329e89030000052c94ecfc1b106716d261a10b875bd21999208ba92cfb9a286be626b5a598d39a4f870578743efcc6cf8d0bdc39cd0f7e5c44e49b04d3095e412a553c86e6dde37cf5deeef0d08bab5125472aa51bbe6c63d96a09e97ef61b45efd250e86edc5d94d151dd4336441adf3f9fdcb855602c3c9b6a7279e6d2d8239fcfd6bf32660b3613e831bbf66e233eb79b0a7f5946be894db9a3f01c04f4d6e2bfb61b135a862de24cb47b3cd3f5cf05782a2a7a9eac9f94a835144e103e92103e79fe88ddd5fb4137f27bc898d61211c66be35f753f80f22e6fecec369c9328da9e590766df7acbc69ae8aaa4a7fd5e80d97d8fc3b18ff11ca03fdffcc2e1b693cddd736560b590796d5b9c3010e3c5fac7c30a7201a468c09fb017e3494a786b9c855f376f50ca92853d471af9e96db52fff476615b26d4d81deff4df1524be19e57283c570e490b76a5caeacf4dc9b9741c6c8de798859d329085d34a048bccb53ed522dd1f99677dbf01f5cd8b3a33733ea763c15eefcade43772365ad9635e5a3b4c0cf75bf8fbc75989ebaa4de1d67272d9d4f8382d0d093df4c555aa2f79e7b1afc038710a4024e823e7fc016566f2893796b5eb0f105ef5ddefc57657ad745c369c7c3a166e4d3668d6fd40e597fc267036101b55698735ceab65d8a255ad7e3b3b999176b01738634718894a7808e4d72df7437eb2472090ebff1981cb19e47ae25267c6ef23496ab4984421178f22189e568c26cc2b326c7bdbe2983a20ca6dba96d1d8c9f26e20712e9843fa6fb4ca73dee2fdd1ae76d3a36f2b55bd09b59ca54a989997f4f97bb5fe57f0fd7709409b5e7dffc893867770fe8937442534a34715b6f3b4b7cbe8422cc08aa8c458157eb525b8222a3ee9c02d1a20cb3cd250a29cb844d5c4b70b11a37b6f510154dd3fa2ff35ec3a638cdc97b859ca2bf0558bc20bd89322c6c062656bc2057457c65d0a9ce509f2908bf798c7599f2ea6331af59a6214382526b23267d99ab72d6f957fd35b37e917d53e0cc6e171be794b0b52587cdf535f83a5042e042c4c08016caa66b0c0be3157cc8d6491880884299cb6770b01bdf7c5ef70f2030230c410989bcf9b8594b185bf9700b332dfc7b8b3442b0832a0e5e032fb11ea3e389fd7e4ed90cfc2e1db9aae6e0d5eed4a7eec34850b5f3fed40f1f8608423d5d097c43914e7ea527ccbce26e2887da9553740ab075cfaa22411c60c1a4a0826c5c4b91771b04da1f7d1b1e83145d6f76e49617f11f64493e84d85fd8b31ad950765558de8bfabe8b29c76e5b87d879a1541112d40f2b925d07e3db682334c21487f9f6dd8724439c6f3799a579d6bf3a3196522fe029715be3bd2ea0854d794ecd0f536fe9fd1330447845f933f704f98c9951b65701944d8bbc096a6e5565947a290e1c693564ab9d208ce98a416df8bc1faf22b7efe31976f35ae6260725402548319a0305b93f20cdb370d71eb38ce461d0f493ce48b25581079fb022675f9ba6ea12847b7df93a1fff087dc1f22f9bbd4f202f11e7ec0d68d40fc7d8a17db2936a3583ad56670b3b7fab6175a2432aef7c85f3ebe56c227ab4b961b9fa3b61363ff34bbf675645bdbd9c24b97959ec08393a878fee7e20aa7afa17021b73a5d06118944dc9509aba8197f2f25c87637cf478dc506dca7cb525d2038c5c1c7452a64cae6a7229f52fdc4987905149ffb9aab80c4e6986c9ed8a00186a6c8e1e99ca6ecd7e0a47feac9bd73e84aecc56712b51bd3cb0684baf53ee0b2e52e6ef0bf9bbc6aa560b11858a4417b3cf0aa83b7335426afabe0d1d51991ddb29f7c37ab318a453753d83c5cf953c8e86860702c35d95e570bc1924a051643bdcdbd10200202aa2e9fb3a2c97df6c265263aac1953ffef6fdb83fb6939184d80a0939cc9c17000001bc1fe519b93176bbb281f463a3572b6ece433457eda4f371324485a71fb3c1287ea908b45be59a21e392a8486733df861a8ca4ff2332b24c5416dfa1f2cdf42fafa06b949f532bbab7c938ce376661665b931dcb0ddb78f7df6a2926be2196938a157985739e50d34cb95e76bd7c004d1a7d8ba4ab100f4a5d751b533d02a00265d98db17e3143387c49ec63080a4663f5b604455a6e9c369f1c09709d35cfd69409debfe20cbb39fb1d86223088662ca79cec8f8840611609049979183c355d1e2e97890d01bdd4e64c9d6e5a2662287d773cf3a5fee8c3003e3bf34bc1e8f17125046d2a2128c2ffb8722b874e2ee9a95947c383d3ca906119d496ce0c822950207c512026dc54ea26ea947f59627958101804191f74b57b4b3cd199a94fa3d8371357d60ddd24362218689027677114d9e20573470cc18f0ef82716f959a0b5bb6e14c5e8e455317955ea2ea12dbf7f6f97507903935f12fc66ba1c35b238689a64aca2d9b85181b2507e2cb0f768ccf8a46f6fafbb77d50447fdcf9d58a25b6ef176cba82f0e8627364c2f6219ab98ef68981a5923bc3dc153a75a0bacf8034f8b53fccb2831d9fa7b8141d5d8a42b4956581067d7a4709b36647c4183ab0f65080b969c0cae44e8e313830000000000079a110000000000405030ebb1f0f1af4eaa8529b1cc46445660f3488f71fb68ee86649783777004b7dbe14c6f86c684a8822e025794d919be726a08d4b90dfdf311bb1a11a4e666e3010020b144049e7e92142c136a36e90c46bafe72fa21929e13d9b45acb449a150348760000052c6991ef0652ed188f9421352001fbe6261ba554c4d7e0c727d6c63d50fe3247634ec459b77a9372d693671a06a3eea90299a6e9144b7c02841fb156a7f537c8b5e63ebfa69587c90ba97a00a0205ee27539ac038018317dc4a76e7d4ea56d5d7485d43637a936b08cb792900d2a274432480bd57ea23f5086ddb03a7937e9bef6dd5392f6529fd58db8c5b61e2014da5e96aa5cd478e60ed857b56d1209172a791f308d250318cf6a062106e727bc1fcaa922c5040af41e5d2e8730dac891f1847eb2b4af6f52f545cea60136f2900b50fb849bbc35a825a0f23d8f53476c04b6c81898318c6a4590f082d94404dd24ce677e2e08f7cee594fd83010e6c77256bcaa58a7cb936a8e12b32e8f2ecd55593e6ee547d82566219fa28c50ca1695909be102aec556b119f6ea1ef90c7a47e89a2fd9e8185155e69445dca99f6ab80888b87d1019b41ce1983656561343034b70312a772ce15609fc6745dd8b21d8951c4eaed5cce00512a0a63e03f6893d41cc9b3fa309bf2d6fbb87076119a1d5760d8f62608ab1c9eeacae63ed566f359dffd5857f68382a9feb2c61fc8fe8ccc4e2724ecae759f993ef6cf422936dce06bb1a064f4510bccbc87d55ade90521e0cf3ebd04269aafa2fe88b9125724db893e5e92fc1ba43aadb4c6f22f4752348d774f7488b5b009ad461387e5e67a8dbb40544875829ce06e828f5b875efbe48ddc7d5ec4b5dc5f06f0e9d7aeef430059598d030927c9c7512e5cdd032bc918337ea6052acb88bc33aabf8f344bdee1551909d9e1e789cf8b637b31fbc4f43a6bf423a27c9e21ecf531395c107ba3812ee9e59f24728722488831f5d44d827807cdaad40aca31df5f46d6ff591c88ce33c4a6aab0921350723d4c5bdac4cfb7390fa8bb5ae548a41119a6ca2b7db86349da7dc3360880659377101ed3d8b1ea605e3045c4fb830e1d979db94037d112937151d57185440b8dd989770cf4199eff37fec4e2fb7514e3f197e36c3c5e725ae03c172738e78f0631c412fc79cce17df8fbbe58a43447626ffe70e6aa0576e0b6b64ec7a87060dfee8975c4fa117460c99be33802ac1fb80edf4e5239b7dc6554240cafbd027e4635d321f49cc0cccfb057b0daafa7c28fb3a4f979da4fb8784bdc604a3112a4897a6f2090979ac89a4d78f682b8f089fe32984ed00248d329ab9871c8be3c76d06808fdf183e3b83bf033d3ae5010ffa3a4947e8faf7ca93c2569993bc235cdaa577149daa25316ddadcc46963d17973fdb6ee60e1f478409569f27d671e966b3661d5e9b587f74b2b4e2d97b5e655ed1f5f70282b212f861a6bb7a4f668e25a9390ffd6b287d120b9542103ef62bf556b94aa7ac5f703937835822f3d1089fdac90ed3e15a72994577686ed45efe92e714775bf49508d3e93596ed090e183f065d41d26b555323721a57aaf831a4ae7d50faa8bca61af5ad57c559798ba2723292ba760f75aae4eb9745758d6dc0c04866e4e257d7f656449b01e5c771bcab567496aa0cb15cf3c0b853a096e437aa882d133efc0a48c9cb655e4bb61e450d6bacab8210988675fd37ef275c3544bd4aa7f4d2897519795af6254e9dec40bc7709ec2bb2270ed2b83bfd214572bc4798c50bba3406dac6a1c04d4169a69682ce7bd9ad9a3164e79bb7085d4cdbb0df4bfbe542922c4219ce9e0cf4d8bfe1911211cfb6ebc3468528e57989321c481010311e75735cdecb9c34e10b4df4e200d80121fa6e6de81fb27486e2e40603e4ee4de902f415423a4b7622014af72b6323d8b6a22b7290cc962da63f43e791110e28cf7d12ec87df0e76c608f5e02e7ac058f3729216e1c8f53964273d3a7f82dce4ba655ed0200205d512f1586316ace9a464b5076ac9a80d9274c569e8ac7239dd18ce2d61c8316000001bc295cdb759a4e6116c48f056b65ad4decf4467844d2ff568ebe01febdc7b801cdbd127d7828e121b75cd65dbde5ed15cb23c84488fb4b0bcc6d103250dd81c18044412a8471dca446d82ca309d316fbe23b66e4879520ef248bad3b0d63af0d42188b7404aaf817b2ea852cae5f6b549d0f4231c186ab57ec7dc504f172290c3f73553aa5a2f290824c76d2757fd5d5474671458e08aedb4818bf7b9ac291f5d339c4c693434c1a5ce5cfb288944c5660e877175830dc2f0321bfee93cca83c071d2868eb0594656bf920fd6aa0861b20a674303cf533c1a12e513c40adc2aa9661a007e86d68b6887c2aa4756b5f7a30bb6d519520eea769c03e1cade04286c6c74553431dfb79162b00f9b3998f1b30d25acebef9afce864b3df8d4809b6718b9977863517de1cd9fdd8f2471413bda9f0644d9682603929069796d4a7a09fae9da162d1873fc61a4a79cb34f7b4143091ca9793d66af1b5d607c797ed209496c9367087e7bc688abcec1724781ceb030604f46f1ef30c00b0d7bccf1fcd7f1ea844c3fa2a5dac2e7bc8164aba4f3f0e6c3bed142d4b523363d76942f4839dfa74c99393438f171044239e6cd4ee5fcc00e8263dd732ab208eee257494c017f6572a53d13a069c32179bb7d0000000000079a110000000000405595e53e6ddfd32e092aa5c8c8c87ad80b64ae13bfc1ae9f2f3157a703f7ed04346d2f6c5de951a9e21e9868ed127d29362ff9c47cf57e4f4938948cb51b69870100209ead99dfd43c8b6f07b0e41fd2f66b11a7f0a1541e712075a375b83f1bd74b370000052cce7160af063c5c10caa3466ee1a0ea1a477b8ed53dd7ccaa305afc51da903f39e62f4b0c0b46c0b0e1a2d5216f7f76bfda646e1d7c7e3801f7a95b60ebd049ea22a88d9838106c100abd286e835006e2333630bfcbabe0c71d4f416567c1e392788a2326819f7c4acd43efb0cde3f4d1ecd73c802fcde394025dc5ce43eba8960b247f7e345bc685170534fca816906415cc6f69a466178de3888ed33f2d833da0099880f570ee4a0ce73f4c684dbcc0a460c5d074e413b118931a8c9af115946274b2600db84c43fb2c2825edc76e880ae9a62d2f4059b77237704f416fb5516dac84c35c03e44f033189074e0aaa7b7f732ac38922e6abe20ffd8a83a2847d61dbbd6f4d5cb70c9c17f8d9d82553b84c3cf4eb7879b88ba5c96c4d4853b27ff18500f78847439428636a4eb5d5056af24987d4cbdd1127bf6716b9b47bd55bdb58d9064a25f33ddd94accf492fe2c059ec95b39d9d5a149f3722fc482df5970355facd587ae2786fb13733da7c5e365a03252899b79a659aa4a7fcd889f6a4ade6783692334305a8aa47c1f3303e8c0b560266845f91708440ce252c5db98c59bd106edd0180dd7deaff388cd49b6be9aecded833b2e1d6623a0d28a1468cca9b3a7b2832fee5f4fa7438bd24926dd0e36a1b6b881d3d233f17b7ac851d0463f0891dac0dd3ed18f8c24b181c0c4c32108ff982aa885f65f287c49aa3129ff49d0898089e7416e9cc677ae35e6996673276aa45d22ee172855dac08fd4dbdd0d42040c9a345881c8b1eaa1e32b8af4dcf41750528e92e2b57eed5a983ff62b71bf3717445699d99bcd3378e5179937aee83093a285cddf1d0d3d8a1cbe2920ec06066a6b126a89eca35ad70ce7eeb6e6f4a166c84c1e9a3ef3a93e2eda0ff39263a64a96367fbe5a76c4ae949fd230aede7dc2a16a66ed7951ba27a4ac65f40301d4556e4d8e5b062b5965b82a120f36a794a2d0f061b0696cb3aec06d723e64c50fedb9bc88e4faff9e23d175447ceec92b612ca1fede64fb1cb067585268580dcfa1e800ef1ff0fd9e4ee7fcc4c02f4aa83cbcee6bf6a119bea1387e6384b4c5cc8254b54269b7eb2eb7eb3a8c8b1424702e88ccba19d3692a004cf137961914ea1707b6abb21047f074963c705d30fd754303fa434589768697665e253f69c129f366611522a39fd29b0145a26119d108d9b52b7657f2c079be261728151ca961f1a7d4f350f33966012a1eacf35b5e30619e1c0244dd2403baa9ef6ecf4b6f6d8f6c1c3478f6d6a87e28c531cf2c75f8881c559ccdf22cc58c1fadf2e1cbe3d9e25b1b2e3aa6ece229151aff4227b685c78c7fcac81afa2949e6c567418a549b945b3b9c026e33a2e413acd52c23c18f7eb1dbe12b2f5fd24c89bb672053b09f88529c8710cea9acebc5214cad485c636b8a76d02caf43926a505b3e3cb84fe74e73c6bd06d7676015b61f8a5463e8cfef6c7523dd72472ac7c8435f8d8f298ea9406aa734ff490845831fb81f9501a8d99cdb841601321bc7fa06b9e76bc28a02eb077bf9d1cb17e394face93ff3bf7953317cca326e50ce02883af42668d0d488d558f6b5dd99c031d90c9d6d7a99ff100bb83dc1a7e8f115150206cc75f15b48fe8c3acd984081f833551018a46227a84339f0951a11a9381f8155bd7254f47e8860588b86aa2104afda4463c3a4a3bda4ef83a6721dab6fa0a7bd3664cddefe423770ea16fbf070f3acb260d30d88fa6d7879c0e3d2e398c799c4580bb0eddbac7c1bb0bba1cf065731aee63432d3fe55413d78a98ffa1c48eed153a3be49b71d29ec6a308e4969dc85bc84bf3b0f4387ac4d13c145a9a5098ce492c90e905a4370f05b2b01c390200200acca95a6c00766754216c4af77c52ee84625c89364a0a0342f25647f022615d000001bcb1d597ed2aba87d6a7a90c8c833ed2e9fbb4e2827ec6813ec64bff2e30ef6d67cce88d1f7369ea99203a6786ab0f04165a9056e647d74af7473de5d744a52128d0e3505253e4655ca92125b140925d19245d5b1e07508b7d25c52abc2af48a613ce7abab9771294d10a7d88a4142de11b3cbe568bf58abaac00f30844ab18c2ebb140011817fe4565fb37ba310760f5e77480d72297e17f729b7b3f031181e81c51b0bb843f3a118e9987664a106e8b8e762b762b2eee8d05b4406fa0eaa80e544d684407ad4e73122f7d5208b924dfd9ed304d1cad85124f57ca0cbd400155ea3c115b275577e4881a3d313780081aac5c7ec817d90eb3a251f763d09e35c0b1c3a26fdb1ab08b6c4e70fe3fa5d63e9b5d1d1d843364ff13b107ef46b7a59885c1bfeef17e9fedff7ead1ca789ae7bb69a02c40ed56064138a9e7df95e36940d2846fbd1e174dc29f474530164bf0dd9e0ef8b9818de93789d172d2eecdb478b01e8accf374421ec872f96f26750a4b793bffa8defbb4cfd5cd7853e13672f2a77988816ebf987f3aa73b69bc82422e1dff97b15a72b264bab4c6a105218be18d12116f59c7b2dabbb457aaac9a9a8286747ad6be18719d0bd864115fb48f992ada397f2acac6a2cd587f5f0000000000079a11000000000040513af8ecdef971d1ab471ad0d981c39ae81d547a65ea48da82d55365898454fe3a2852821a7066e15b3fd4b3a8f7267f37f31c5f4eb07182114ab86f2d14d439010020dafef37af7cdb3aad4ddaff95fea05756e500f1ca3bcb1ed8196ace3d1603c0d0000052cd4846651faaf0fb0faee6b60d406b42998f99d5121d07e11f6871d6163460fb6c6669b9ab49865972a0ce7cf270779f04e6e33b54edfaa1c33133f86f7f23a5247fcbd7751b2ad5ff80ad6ac6b90cf16135e0465c8f890466b8b6989db0fa07c2191e1e9423f32e8a8faec9b6752760664a55ad8b2dc44e05951239c11e1a37f75953fc09103103e7b4f577aa9d0d5533f406d4b648475742ee80c98557ba8c44bee5b65c705e8468d696dd899d41ddd7c0df45321806849d2a916760b5c69db2c40b3e543a02c3a5f2b9a1b2ed40c47b46fe306f9e36ca17f54d0824f5f68c4bf41b575e03e178d0892c14d929209d046c282e0549af56422736800e23c1602ca99b018cdecc15ab71fff272efe25660274f5364da1b6bf4ded788ee7256877c4582c07f9a1181a120ce9b33eb3cea2d44afc90b90dcd25a0de7d8f24a8d5777bca21c89daefcfa876f0003f81f9c32f1d55c20de67b68ebcd63ef30072cc2f0380023c9dd60c200a080c001c6eb3d70c7639b4af5dcf42d53bd9bd65b11787fdd397d54f13944d8aa6b9294d7ae5dff4a9bcfc30d52d2ecd10c6517d3cd187eaaf542688808fa6883a436f2c7c45e715f0131ec8c1d3fd574cd166ad1fb9ab121a690da0476f1fc6382ffbf74947895e5a40d7b3c5e8fcb147546243aef9c61405152ae10164bd29cd18f481d00f6843b1dc41c399d2b9aa5a4f9428ece179734b709a449d905a493c20f15654eb9fd567644300ae3a11a74020f51aafbd2dbc965709b0f49479d67a53ec347db0c77d12f169833a02437d67438865aa91e8b77b5aaf609b1ae0c45eb3536f57a70aa8f1131070d57699549b6c3ff49d4aa08ff3b602a9b3c8490aa17d73e23b37344913eec7a0a38c3e3557a53af7cde974d5c5749b9e0564c40ebbcddbaa45ba570e6b983d90474f0bcb2d870c638e12ca596cf5ce7cfa56b78bb21c1866c77c4f88edd1c1e4f007f7421e3b3c4a90d3c4da6108eb385b647b1fe03c0d12ae7ffe7fb7e458db42ea936e3212b39e05c3fb2a9e63cb156c7ca766a1cc47e6d271d0e83669e53986821c2293cd6534c482fb8cb7b2ac2053e9824d2db69875f7524e71c1bdfdcb564c1b070799fd9fed0e725ee29796c858b26738eec1465265e3edd1598a6cba974deb97629ef12e386799a6bff4f89065e4d1f4da8475f433833a5d1245f697ba8a4453f4781b88c05dbf6d80cdee48230422acc738eefef418552f5fb42d8230f6641463ecb45d3d1b65113be8ee07c6bb55295b53290d5c888e93e112e48edf601c300b66b33f592b0dbe39e5c44147573a93be775433134c26e9c331720dcc54ae67c7d5df03ade9473af6ac351d0be5606d33355d2f2fac30c1bcee6cc1aeea391fff3dc461f317efe79b039dde724dd3a23755bd5a3466b47e022b2810ee1594722d15b9b5d028140a3592978e3a34e702e60dd2b7891e93bd155e67b70e623ce122b3954c14b01c877b6870f8eaaf72e48a22f633910cd6801e6f11047bb9d2ac21991bfa9c15101248200b5bd08540a1ec6c5858ef0ef33805406dc95c7d9c04ac6d056185d02c2c3f65af38035f4e90f2303103ec9057ead34b29d6701de082510501b7309aedd78fc68409e2cc3d4a1e3eb2ed7e0e8531e954a084abca99be4118232aa98c3cc3f915ed24fc53984d806ab78707990603dfd558fd980047e0fe3a127639afc2f647c112955d17d3058db0a141d6f6875e82cfe6122d2a8ee6cb3f2768ce1c4fa99fdcc6f4f22142479fc6b0f220d648b119b3d021c2a371ae25d9c8f5474d6d4288788e20ef6d3207c1433a358c4cdb3652d8f470b1fdf88e63f44b4176e4e96b232bd217d0c84f88f6c5370200205db5e51c31d994d20e9273b78bb23f4b5c9008bfa4d2fa8d7ddd6a00bc7c4902000001bca7aed06c8308d30bbb008cc65d4e89a44bfde0b481fc4d46d9cf97fec1ecc79e66ef369667d87ab01e6af232e74aa7e4ff941867b0570ef65270893b3dc7d432325e4afe67d70c9785f64b941ca720b73299bd42721c8e4d0beb6a6f2957ab840a0b4157125cac5cf2dc84fe684579fd3c7191787d6485115d23ed334af57ce1d310784afe328f789ff001d652de000dcca1f1d1a8356ee5f72151f38481783e5429b6b80deb29dac144cf38d224429b6c073ff0eac9acfaf524d24667208d8b159e3468e9c7b37233b13fdc6e6d0a6e3458127e4cb1dbf2f7f9400390fc4b7568010c468392c3f2f16f3759d64de56bc1c438cd5766625c2b7c64299934bc336a2a81167c3990e245a9c3621683226c1bb8b0e5639321012184c202af2676dfb121eec2e4f2b64f189e13f3cb512e88af4bd8987f12547a493de08f90474c9db039baef67aa203e81bb424eb648c5dcae10fb76a79835ce8de3ce99aeb4ab10b9a3d83d3fc8f89953da518baead2a63251cb8c409af3df43dd99f88e8ca958c8b97dcf2f188047b5937e8fd947204ebb44cdeb5d0542b658e0a726f0d2b1a7f4faa41447d250cd551e33d7863af583ecfb3abebc484c2f9d7ee3eab6138a2d1720bf553cc215cbc2f153d560000000000079a11000000000040d0180e49ed15ebfb6ca120dc1a136db9a96de0c0b76d2d355def6df1cc3cb0605fb5d35f9c2b870c71246b27c12fc2c1df8ca47f69ca24df34b6a49d0bee3bd5010020142b771da64d045274be8682068c03da3b9bff74a3470aec40fb2d021a47e4360000052ceda6091b5f17df081c7deda3e717e0b277b76f470ed8336959a4125506546ee7dc02ed2d9b5b78455c875395cc58a5bac183ef9934ceb02718eb868c004d64c6fafa0ade64e52fd767e32b48c51defe0b692c18660507212203bacd6eca2782eff7d2e366ae9ac0b8be08b7628d26548a47c1c5e43fd36a3ec47a90c905abb21f460bba6e6d89141ad99b1b95edf23dcd469cc02a9547ae5803a3b04421e3d9edcedb63c21b4105d4e61c08a8d6c0de24267e5cb9d19198cd9c2ec0876edb0ade8d3ce192e5f35c4f1d7d5f636c4c1e1d03a6929215199e6cf5da0e98f22f69c8c3b10ae411ec85c846d1b68cd776a440ead918556e50d84d965da77f8f58a19c13a702393e736ca98c8a753561ef2cec360a5d5b6164e64dfd20335ca427e2604832133762111c8f475f960c7980e088ece6c86f02b3b9f7aed0b161bb0885d5b727bcc1a5b2e3e3142bef8db9bab1333ba0f4d1ed3ff6d605ebdc4d7882f54ffe299f9290ca134926ed77e8175c4d94f9accbaf2a48023049b10b5c67c5c1c7b0aaa3c199afabd9ef586adb9032f26dca779721ed9f692072f3bbf9dc242e368292c5a6ec471727ccd18085107280a977c152a0b86a058805d251d756f1e76c9fb19f10f6a81fcb42ab1b83bc41b092e55b2c68233dd508c191b7c6f806cd7f1bfad625acaa9e9a508f6e4c4e55e463edbc9a4f615a0fbc11297ccb2e852aa0e738d1f5a44e826d609a1bd86c4edfd1a435489c044861fcb82b0fa41cfd0d0aa616180547a037bbe909e9e0a1ceb09f592f6816dd77eeb6af3a090369e36ca720f6ee565b8821357f89dcc73771607387469e85579930b66eccc55305525cf4c980da0f6b324f64ab05438a7d9e66e3fee5146599d78f9f704de3d7ea5e7b098f6866355417752801edcc021dd2406bfcc2212dc2175e020c9d7e0a79323f51fa46e3a6fe443a50106c8e7b7b3cfa7ab13c258e9bffccfabec88429d3f1d7d1938ae58c209215958301c4c375d85ce7328ed7bd09adc3d106787413b144652db9297d2a033fe0d9306db8c991ba278996baf53bb291fc691a157461ea8c0df894814da7d48029b4da60fd761f1f6e2c1c9c2eade428215126197236c6bf51de4945244a7e381a3179030ed2f57ff1e3f59f1fb721f47b1600c4b250ee1857fe955903d7b88ec25ec8f92d9d37e8c81d97403b1f3f1d00ec539280bcf54f1cce2e3a6569a53cee841c74f4a62a566105700f4f0231b3294c7e41574be3dce0cbf6afc1c1a7e26643c688f3d5de57aecf96ce5546ac6d252046541da6284672ee5b6534ba4466ee01a21f82c40645589290a3f113816958bab0c981d4c8651e79c9f957cf868c0681f4e52323d736070ff15d86396a6c2ded695357a175e329c954617d283727df97dd84856c002961f0b3a4665776ecbff7c9c27b5c991d9eac5610f4b4d8d9aaa772ee0f51b8199d74dcd3cc5e9dcf181a615ad009db9498bd6bb7f2ff8981fdf5fce167262e6bfc73ade81f029cc89f95407e72181ce463ff4c5fb8bc055b6a49da785dcd7b60f57e9d6f387f35ec0edc9446b97412e86e038c8764d7927e645a45fe75042c979cc1787c748c96115912737fc3e9440b0f9b99766f759867c023bd158dd3516111692b7ed253c0e4219766b758344aecdfaa5f1f6cc72ace40056b96f6f5b1564562fa7d5138c6ada860e5f5e07587a283c7d85f34144fdb8353f6ebd13d7d024758bafcaba716a405e1edf1ced9058240585969c9e0e3fe2a786b468faac3abfb522561a5aacbaf1c106224344fed5ff8c36dd1aecaed3aa513b132dd25979cd83b3f87e31cd539a5b888e6b08a431c39a9d26a6775f41f57fc7b4f4a90200209170d9c6c11daaa3493f4458dac9f641ce923f5eee8b9302fc4b1fc46ebd3106000001bc651f249e9336c9f833d965fa0cba22337baa4697ab5d03ef74846bff47926c807a52b5072671204287ffdeb0de8200bdb11f9997350568acc8632fba3422c85902a3302edeaa7903f72ce0b5febde74d12e28fef69567a5316e2764e7191bfc0c04414f170f6d47acdae5b229493b5576a4655f65a82a34d5c56071991a32bbb83b03a4f2a2d8202e08a73cbf1b16896a2fd71123e103d95b4cccd1742a4b24c9404551eb6b530a3619f295d0c922602936f91b8d248ebe6700f6d1c70f2e127a37b8cf3414d0fa94773bae8589fae05474f096e1df7e6e2535a81dcf63902d99a3e50c3ec165b9629862f62ea70c4a6dc3064acb86d047290c4a6d6dff061bc50c6dc292412878a2b823d19d6485de406fcc8962685e57228a85a6549864676487bfbee0320bde76bfaaa9ee18a7b38a5998bdaedc2174a910f0722cf91dcb92a16049e6573d999ce0b08584e42d5c84a9da6415a86a85002ba1fc30fab5bbfd752b0809baa44846fcf8fdbf3bf9d75bb4a8f5d00ecce1177538793a8d8e0b03d4bdb809eaf1302018311c4661e40fc2b2eb831b8cc4d9e279d1fbc173b711b54fd25fa7c7e44c2d7faacc3a47b26de41bc79891658827197b863966fce5d51df9eddb1ad0c5c81ebd03de60000000000079a1100000000004083930bfa0dcc453773b7d788b142589d946e01d86d02392e1b4ec006336e1923643b6a5ae1ce1f2397e023caa95cc0449b8b9f7c65c83770a112ccfc912c1197010020b9733311773227cebbe02caeb1904e40a0b7e14da5ca38cb0e284eb408887e0e0000052cff669c8644eab4eb2cbf5e0cfabe66dac6e9bcb349aa902a7356d6925b9d9e01066c8bfb1debc20df86464e17e4287d031cc54eea6079a432ac34c0004f107518dc49cb1b5554c30c8db251a233df89e64a31eaba20edea75e9e4f0f23b1a36cb58e2c37a0fd132b3a3d3e071d02e48b9eff9f935d204b9d4e034c88317be3e0927c4d08dd910530f8e037b2b8fd839d54f23ab131793161a5a87f8291abbe268779ebcd9cd98247fc02771f5c97dfbbb9ead4a8b139a1980d65be14a7b6a4d0a0487b458f269418af1f453b4d4f06e623f570bcee96172a764a0f82d0343f7509ca87bd3524d117efe07b5edcf68224bb2da7f23ea27f97c0b18e61b17a337a790204ba7ec1e41509a28dc1cde49bb295ac19b520efced17174b56633232acd11a8f7a59adc68ac08f74bc99b7a5c41f2bfe1e581fb7446a6fd774b9f187dfd14ef6e56321751eb1fdf5a590cfcc9c0472f112351bd5ec4a7d2a277ec2e2d0215742869528613db94d3973180eed428f13d16036aabca6dd95f5c95be91cd22ecc1f5cf9a530090e67a9e0d63d0eb0002c48d5cce7aabffc08a234df11d1d75a37f28163512fa634492b5c4f9994c4c06656960d9499b103fad62cac7b16532609e4e80013eaeeef9ff51a1d3c35228e36ad8e34471229a240714aa7d18c374e786f7d62210a1750daaedaf7ba4b5b26749e435e1b0108773f81968d38ad1d9d88ba7466d90a4722e5c239d5bd30d782e96e41960248a10d03cd2608cf3941a9a89f0dcea39c9856f14b53ce1c671873cf17218629f6e5e83f14066ea21fb11f03ca0234e02b2095c7b4f3d787e92ab3b9eb2382e41f0f5fe12047f95e443326fa53a89fda8a646bbadfae0d2a9e0c12f2559d96c7eb8a050cb0731fd3ca46b5afe9e7b7f6b6fe0942060b7cac5afaa3e508c1af59e9d55cc083eecf3f850e411a94c13229561b67e79d418cc1970f4a793373128055e736a206ed2325f81482882b3ec6d3efc048dcdf608807f58787b0c27ecfbf0834e321ec84691efc3781e99520e9c3b76ed10276be0de7f17539613ac4fc69f891308475358c57ed48c000474c7530cd493a65eb3be4259a9ce77c59af7786e08b5f4e60b96e6179ffc555b5fb076f0e09840fb71488a43c5fd81932d3ae400bf2323d664699b7d7dbe54345e19208939b66907809bae1fc90cab2f591fee9da7b572c51e7554b08f846469e1a99d75d5c2c5346ee997e79ec7e871f36b64c4b4ca81d4ee0407f549f1411b0e6d62d5d5bb8bd58244ca5554de58755ee3b3e0bc70e6c2e3fa0c3c0e6b96bd241a124ccbaa35fc9b75f05b455721e34556b1610b3616303ce175b826dfdbd7a90438fe88ae2baec377e7ee657591846cbb86db359e3f6aa0d13981fed8de2d1ee2760f02e0ba108d867f0e9e778aca927fdea2daaaf2ba595ac5d935ac258b6f86382874590c1c887150629254b19d1798cfde1b2165d9f416e332a5e279f5c860e21ec336d3885aabd7215e79c843f3b5e793f1c6c046094e44c28302ffa4a358374d9e3003413abfdaa74666282f7004f738f60f7b1dec778260ef7f6f68901925aa35cadd21b865e20592441712d0bf48f23a2ca008657d5cc02eaed4f9be11da0bd5a19c637a8f51ecf6f3da0423932ad2f6d48537d688b867b8e6579a686cab124a8de4534ddd26944c454a36551f2c77b1471e89130ac324068e7d090be214478a01f29c89aebb22a6ee09a6e819f3b2dca21276d9803f10e6414ba77708fe98e7a0ecaf6292605ff069c6f47acf1b51c67e1bca91867c80a95de14a38960fa6f84d8481ca1d24151b110d35b3c60c419d50a41b97670640244cf1d944f1af6f5e1b7e30c49e020020acbd5e4e3e8e0e530f8d995e21677e1fd44323709e59ba13a39f8558ff2ffd11000001bc3e9fdd10a8a628c37ca61a01378387ed33ef0d1e11b09cae0bb9e41ccbe3b88306e3cb9719ceb98adf844ff723ddf3e54b83b0c6bb9c6090a08012c193bcf94ccd36d39db8778cfc602978aa61dd1b7e1a6a7ceaa3881c9596d9b961181b324317a6655ac4ad4b65e747b57a00fe371ad9f07766ba7f7b7d6901b148bcc6859c397c41f4e09c69f96affe4d077dcdf0406c736b26214eb304cd7324fb4d75c6f4676015e0cad178c4529ec29a731dee10aab729d6db98351a990be9e2765f888bf92fb5a73127ad8f44c35b48035c456bbd27b40cafc9be6984ad248cbff24c8c4f7d358d0ed3d00c650fc79cb6dbff92e79b10eec3090760db7654843acfa26966a56c75ef02dcc9b130bbd1a3477f9047c98b6699244be8ec164692d800d40f84a456e7ba21b404fa4122d41b0cb12c95a16e308bcb1034c9c7f64b417b1b1e261f5ef218fa3a46563b6628a468bb58c822a0ada4dd953b8c0dc875780c6a0a13fec8d45487b1d588115c34c122cacba0d3ad4cf940aacebe6458d0d6bf4bb9da3705dd2d729c4e8d84f3f29c6ad4c6e73f2080d1e4d82e1ad663f04b9411dffca75b0f4eedefc907c4117daa5b01301c76d5837c39a88a3343a3b7526b0f91818006ae914e27ef5a279830000000000079a11000000000040f6b55c76054ccca440bb8d290f79a7ce4cbbd969fd54d3e82df783f2c6284b8bc12231f02c6384f53fc07b3a663076088b48d50b749db3e15f539514bc98760d010020ec0d3d8152ddb5114a65457c103fa89cf613fa29ae0f6534838899ed11c37d550000052c82e1868540cbba687c25590ac4ad345f9ae20be09febf9faf8a5ed2428ffaf4f07ffd6a9bbb1054cc7b3607c5d756cc4f03ebbf8923e3bcf2c0ce3483665f671845e4d139b48e87ec37b5ba30508ff3f40e77ed0bf94b15e6f3f5f644610147c048a592d74ddb9f1b44518d219696c1642731cbea1186667d9b4963e444bb1875720102ccfc281ab9309a3334db4986bf0744ef7c57906685c307fde24cec3d754664d93570e79cdf4d6ff063ffd2f62404d106f3b2b0b720c8f1b4ac4bb9dd601323deb25336abf94e87b8c7abd8aa701242858ff2590faf3d6a36a3e9119ea7a7de43aba05e783dc2882539d693712f5cde7e2df2e34cd5c801d2a32c08a4cca239d8ab4b6812824db5f1e7e900faa4ce51aba4ea390bbacb138f74dc248b6344712fbf541bb115db0190e9e5068b0b271893341b592f4181e593e413c5c4463ff89504975ee820a53089fa4561c9049df376bfb0fd15d7704e38db310a500e36b3fc852ba060072f0cb42502f31ef37d07ba562578f67bab7c45946b725f3a9033290dc7041b7ad66ca57efbd4caf58f02f62a72fef25a4f6dba34efc9fc61cf56a730d21502e6b4bf9e18812c44aed17431bc9439d1f1a48076668b8ec4323f82cb1fb763f01055453f50a7d6a4c464a051dfc88aab913419b35dc9a6d409ec0ffa3612178baf0e43d8c25eb4f5cbf13f5eb3913152d7dcceb76b21acbde9ef84bb934339cd30a5687a878047f57f04529523082222e1bbed97b0a4325f4d70ce2f104ff06be1ed8a92f0793ee3cee2c22cdb01335bc4d08017f1e7f2f80dea0438d03946ed1866e97494e501bb2cc6e9a289f3fcc434d19435bf45bea99850d00790d656130136783ee542481038085d4888a3d2f930fcd214ca822fb7f95b7e8c0437e9804bf8b6a910416a4f3ac72a5170637520e96b0c22dab99c04ec7ce4885f54e77fee715adb54d090c4af7f1a44a413323e0fb433c9d4d6769829578f9c953be95b90d2173f9e61822145ae8f7bd5d127fc9224bf3942a88072d32ab8523697530fc40dfd53888471a4d32b129a52b007bd67795e5a3dbba56a319df1c4116bcedc5723046be00e12f1eeb7b7b0cccc1fb26355ec104bbdc1e509f3942c8512e4347930cef6054bb395f577a65e4d9447ba74fd49729da93cebbc1daa5fbd42f6236c854d79d348d40383eedb2087e43b06d10f5e921d7fc4e4caec1fbf9223d99ff2e1503f719ea2077b55b59edc93c13d87285f5623d2f3674e5504adc4cbf7763e36e6c8898ca433163dfbf4d6789d8d2e21229f810d7821204f348776cb029b7fd48ace8c9e9323912c2f256c9e58d5f91bb14a4e71c4c3c4c0b5bdb6d0a88c8c026825e3d6d742365f53eb3e7bdae5ac39dddbc04306fb07709c23b345216d5457fc62897253e7dc06c9ae01cc752ed1ebdf14319b9861e094763105ac15d0ce012d699c524187054b1b4bccb9c5b7d04b2e8ea2bf98c815de3c4f75326fc0dd16782693647354fec70f3e0d7bb18c645eb35eff07607bd0349b534c094f06c9299398c97269952a26fe0073d80003c871c967becec345cd22f2712e1769d5251e44306e322d66e622ba8f366cd8c62b71a3b5ccd2c63246d68068b54fd209be22cd3dc474170c73b6ae8ca7596452e43e55ab64f27b9c6f2998915531bf65214fb1c7845f30a93e505f224be46f7c56509bf2cae88d4f6492866a2436c73c4afd4c8a51463bf06d2c97d77e780246184ca7e7d9077d4aac5f24da2b714eb8244b1cc89bbc7b1f587f4ad33e142d00652702746ccab5fec301600a04d644a38e62846ac73e095e53ba8d1c8d925dacc5f70b73dd9a874c3ae165e8564c02e26caea99e1020020e5ea6f7e91aa66c6e43c1f95284e88bcfaa931f881815040c2947e52e93fbc25000001bcc88245040b73d348c07f8f952ce069660fa86944557ec1b06b845f48cf345ca029e118a319d2411a596e19fbfc4f92d73850e421623ebb6d04eb64cecb91ae6f2fdb15e61735c582699449ac6c0b7325b531b6fcc1b59e60450ea8d0449b11914c30c8f1e59eb54528bd9ad6f10c3a2a88fe72d846fcd35f7482a2ec356b0a28ad7b11748e6eec628c494f016d8c34bc9d6125b8379b1082b65c0679a7a821acbaf415ac06647ad24fab7813cfa348c1f267392902720d91665a12a0e179aff3816eb8d5c87cd44d3a8c7f3b7f36816a403baa058ba24f5d9fe22ad2a0cf3df33070ebbfbe997fefb6b3bc58b8a8881486c368ab8a5d8b557e4b9a3231f0f76c60c8004b6a7d5376f2a580aaf18e705e9892e80890e5601a2a3b076bdf43b0c0cd04384e5a80c4fa418e5912a9cf31562bc1b5f839febc4bcddc170a883fec4c33aedd33bac4a404df113a821b35f933e1adbed60cd02d3ff80f8242e9c8d6aeafa248a857b59828e602829b620fa878f2526e254dcc9e37808cc9c5c437dd16936065849debf030477ad588914d6be2013debebc0ee52ab6a28a5c80b70d35298e23a730faa5abd75a3ea63768ff27a32494c5918e154958b4cd208857be43a3b7c03d72eb3b735cd3ef7af0000000000079a110000000000401f000e80e809c13ab136d91167f6a76cbd2b74575e2fd1cb991d551e57785ca38c68c65f0fc4eeae413d5ccb43184ef71aa8bf5d07fde3bc5e0cff5d2d5eb268010020671769748b9ef8ce2e83d52ae9b10cac142a79211c73da028cb8dd46358d77160000052cf0bcdefcea5cefd42e6aec0f387e907c71fbf1874bcba33300c2e18d402dfc6c0d38616f8e27a0d4c00507fb8da9b619f2f63f56e2b254dbda50e4a4d5624742ba48026afed03c2506774785995beb1fd8ef2765f43c53c07b3c93ef9eecd63bd622934d9c8b49ec051d33f1efddc2258887e814d86c39638c25156015d9744236e82bb8f30358d03b91c4b29570f5adb58a7539423e9b3522e4f5e6e517f24708178a30052974de5262f6b1947addb874f403c0b5f3d4efaa8aed51d2710f24012139ca9095d93a38def49d027ea8e6933becb9289d9593fe5c590a7a44b8070f88f1aa42423518f289c0ce18846e991c9d04d87282969f6e2edda185c989e74696f8a3f65f04fab91e5163dffd771d5e51e56e74c01800628936b68f793b457847947ffd2519186975c0613f905a71612e0dfb4bcb422b7190512561a246340d843483eee7e3f635ef2eb319e8ba3b21a5937c222e4d4dba76cbfc32f641990bad73da20193a8602a4ad78a220e5ffa811ded058827e919be04586831b64deb6795cac3a424213c2981cadd29adc199c4902c9c47b4ec2c1f0ef5711ed24b73d72c815cf31627a27fdd141ac6799df9dfd96fb6ec8e91fad25fc10e11a1962995e17335ac4748a199231f4bdf439d236863d9007de42db1b699b788b1519e69cbb7b379cec8d40c7a5c56b5935a5b56e961bc26117a93847634454cf6bc410c95660562e6f3e564e825d95135047ca624fdcd1ccaa1703b480635fff8fe71dcf20b09cea5fa4072755c121cc61925b596dc3b24ed87fede2a31fadeadad0e9fca49f525b90f16e21ca2957ada4d137c7c6c9a80aac8b36f0be970483e5e8b0a3adc665adff7bd843d96c1520700f10997f68a0e7181cf0ba70ebad1b1897d6599dcc3fe979836ceb1bc2a512ab94eef779f72dff9ede5e06cd52e7bbae2e6a69463d9fc22d3e07e001481137fd8eca03a3472ec0acea80a361d4f7440973d655ffabc69c30ef54e821e22e136c6ed32bebe0ad46adf70a87c6e5d397d12c5609924b188ad8691219d2c0129c423d63f5378de6801ec0fe659310b99ae34830b6adcd7fc0d8ca8d743e981a38176044b8055d677110b75b1d8e237f3da271bffc9c7c96cdfed886e578523134c7a6471d25a06ae0b9b8e6282b73ae134317e55fd7a985bb56daf7603cf790c73a830b97c46b29628b5e26f7aa252aebe32f195fec5e22857872a0e830d4cde96ccd713e18ab3c34a8f6427d7b3ee434c146f5fb1244554fb70402e3f4e992b10db04b92e28a4de8bd7d1c96121a93291a698bc4071cfbc35f416911171fdca353436a73870fbb6eb018c16914ebdf33fffb50c64ba06a602b3069addfa0194aab4afb23b75d3299e6bd3aa7d4e75a3badc1779ff5ee2b93440d63a7939fec5fb441d1f1142ad287df1600cff1cced6cb0f88417ca7eb19b31ca2bbceab2ac3e62e7b96a508d1523accbcdd403596f272c19b63dd99353a5889a0bb40fc6b6ccf1263fe64d46893135e0cbc7cc248043d7511b81995f30da42d41bb9624ea0be224db5867e9703dc5c39e46f64edf65f01a65c0aa95ac888b4e4f9aa3c47960ec5ca487f029daf5a39a1235c79122c44ea614de575b1e3c82f0296511a6f06197cf3ef1393a37548e044eb865c489a461702b78e94e39bce2c5a76aefc3a32ec6e029c5b49d68b0863fdbfaef0fe7b17eb00d313c09a0cf69faabe33bb42970ab880217283cb53e3a029d1592c9b90f83c272ce779bde5740827d5dcad64961a938251e499f6738d7c25d2d89014d1a5dddde6743d700c7d542bd1855f0c90d0e3ae64a0b3867d0a0d75098c1f80312b33e3439a1655386e4de360ea4fc7b80200209afc9922816a8b86050a5f3d94a4cadbff7cbdb4da7a8a6b1574082e77d88f17000001bcf92cb87815ae1fd1b11ad18a434fe1e7fd504d35b7acb0b2ed60558ff17172e2ca5c3ff5aa61c96f98d182cfbcdc7692ee9195201930e6947fb8cf0cc8c753d08044a79189f9ae608d3c71664f004f4614489fb0a4f054fa130b04d1021591420d3c944e8f1751a76fd877cbe0b34e48ff2f81c12026942928030546790051ecb9655804ca35b2ba6e32c596bb6c165d9f042a644136cbb0bb7e6400340ab7891992845acd566bf071ea8ad48642f2b0adc6e0c72a9431a8185d0dcdf7221e28a80ee0b1dd4f6dcaaba3ce820f893040f5189ae4754c91632fe3c9539431fa2e7a77e4562430991a84eb3bddb33ed7f90d55a34857c5850093396a5cd81fecc5869fe195fbdcc86456f930430177fc07a5d3c8f4536490704d61205fcce51aceaacba3145ff943f8c6618f68f27601419cbe4eb2347a26797b64114af6f5b3156fc17b313e98ed901307f0a1d8be24b191e67fb28056330d8bc39f2c74ea7f2597c2473ba30c61114dfc323c38504dbe56883e33d16f445c2e997901f89b815c1d1e2dc0641a9fe0c21b5911794857d94f225b9125a0fc126ed09a42d5225a650faf65735dc328a5941c7d73f0f7cc1846b29d3a3c8f1be7b91a8f999d8925750bb5300d2fde50e6eb86c4300000000000079a110000000000409e03b994fdbc547b18404580d50105a6a3d633d62834e7aca5314c6c3ec1f598d23bfc7b995bac9e8fce35b576dec1e4da24d6760a1fc5488e81ec323b390f3c010020bb6ed24e79ae116d5e944c3f78904073b1734ad54e6108a2651fd0c7448b842e0000052c5824648ae7a0c6bebd1d6874371a27627f78046906ed9fcd7c0936e0740aff1b85027957da52858c119dd88b49e3987d34bfe615eb2f5d7445544d290a999b6924233b22fc17204244924f213fef4ff7dae5154a6ab1a4b4b1420e89b846ce77963e2369fe9822a31dd721df55067a8e7de67a8fd7cfa61a8e30f6b975f2deb8ecbac2647a15b43d32e15e46acaf1a9a673d1de69a459fcae1b955f45039909c5832212ceadfcff3cac2c23c652e53133670ab9275a82a97b1eb1c06bbee03628056549348623ce377f7717d0244adb37c9e0f316e8d6b14128d566a8b6f4af924182424d794f46cbdea44540d3fe80ed50ab660e24584a7e740e865577eecd55b00321f3aaf8837cad5569799c381c7db02a9cbc4eab0767c0066234085a906ad9e1d08a05a24c9c5480a7438eb49d0c03ef046661897d564f6d780c151f70290255c3b0c83715183e4d2b3ca6f3759e097494e6647d572656b3ef1c36fa1af8c5572b605edde1de763d303c046cd162782f80cf53e05666f1e3b8dde002912c63dacb23bb08ee9387308e33c5260325f4a13973f6fbac71de73fa05e0b047ebeb20c6a86bbd865b92e7ffb7a1d5d10a694c7292cb1ebe759219a6653f5d821ec6cc129654f6dc9fde715184b69f8539f61867bb9e5808647c43047badf9fded53349c401098d568af50866df92c3bb86738fe72e1f87a3ef8ee4eb03f9eff88fc7346e0b350a64c39ae3bd4c73a9c09e03a44a7bfd4934f5074fc396c047df6901e015944e163c6e5973b6dd2abe697ff96354eb27f221bfdaa1ab82b8cef3b6272d5cd15ead69dd0bb6e004fdecc03f4fc1652bbdc73480d8d9f6a0e75af7f4c0f91d6d4ea49e95f8fd1a89a88f56ae531c837dd1160c539dacd2974b55168e204b315d349d49ed32609886f935b91e8e56fe0c7a6026d65e9c49c4254e09dfa3a942ed8ded92011cdcba75fb412603986288b166969be12512f0980ad182a80664bd44dd81a78520b565bd62a83a40796c5d3ebe687a8530da30c2fa20f6e7c960afb33740b67c6b15bd6c66c5fac01a843abe2ebcfc128c0432ac337c31da5f30f5c36fa157bf17d6110d0c6993083beb12cabd618bdccdc76ac5b12c7b918c972d6ff804a6c66a35dca21dbb82aea79976999391f35dbf4d37f8bb0878f2a08fda2e04d843b611f2db2ec5b09de7d7aefb24d4c95a97ee0e7c7527367981693572780466e6f0f739e567f01c0ed92544a13e9b9e7b0742ba360b436310c3453ac817e17d2a7e5a7390f914da380f72023026db9ee53ddd7a3ee30d42783a49bb4004859941668ebf37f2e7772c3ce19f0644d8020c5fed6b846aa1a4505f3791fa4f798e59940273c6f0949e8749798937b50312240b0115628d6738f7f0f279545d32f5c7279ac9cd394c38a012f2f3d1967b88219e7b6a3c2750debb4f51d16543ccb97786ca9610f2bd65beea153ef7d35a5c555fc948bf0145c0fc1574fa1177d512bb8a506d198098ca04b2e4a07d567318a4f9e872f77c2c3576d6930f3b24c879b3a20ca7b3160bbc1354c3e03e32c5a7da65f52fbe8c226c43f567328fc8b576497f4f7019d8897150638e4dd75c46665d3aebfb1f96ee5e3d69a2ec9c89a22737b56bc2cb613d5f81441a9a3d7e99259fb482c87badee4da6ed524bfde6a4b856b9e80314e8b7f6aa0316d7caf7cfa8db18562d8e2057df39d2706cac28ba36476c3e464fd3a80abe86b218f49cadc074280f56695d1590e59540d956596031f3269373afebdf3bc3c6a67f8e48b0f8c11fb7474b7a4484a57ffe868f0fd2b05b22e9ac6ae15e57d5617c91c312a68b871230255a707c70d4b2d4d66f248a40ae80fbb9d4020020c68d72db92549ca8a19bf22b4823a6bfb706508b7c713341e0793126f3d7bf35000001bcc26c5ea8795bc3217613fa8f0d971fdab0e82980e2d918fbecc13e4c747207412dd2ee5adc6e3a370d6287bead2f2e5683a5b8c3633725b45d3ab85ee18325850a06e083191a4c2771343cbf38b9e51df5e1995920a3229e4aad5ada146576afc61671922451e30a610e70fad8c392447e4ac2f48194d99af3837f7c884619e9d603df66b76a5890ed7a1e3476a57bf7f96b6572d285df625736fa04e5616747336e83e14efb8e487e9010add97257456683f7095762ed3e2411276ff9d65256fdcd4a607e7224cbad0aff037f63493b7f8e11b3a608bacc20551eb9ecbb6c563faa17bbb13e398b23531b366a3a1890e75ef895a63d3bf40c1eff14940eb1563bbeaf884181ac6f5b1bdc5b3a75267c27199ba583524b4c7ae143392dc26f41255d43e744c12cf80626e9b3346e10293ffa7e5b1b8a8f5620e0282fa223822d3e8ddfb5957f85a038afcf0ff4716650c8f0a06e6382862b36d05e62cec5019874f31a523d37582aae9b4428170fe93122be83423ff46fb3fbe1ed75b4701512f43e52875325838f67e1adbca85b6f20ae94b8afe67cff0afef350c82e11a5c6c39a1f355543bde8adbcfdfb49e6d60aa9417a8e17c4d99504870469a9344064cb5aa16a380e784b3e99a3e30000000000079a11000000000040a980b14b45f7f63637f1d77561643eda57a352e770d642bc34b89c4b522dfb4bf4154b0ac308af929e1a4c1b9319e90f3525108fcaa29fc9f0622fe65dfdd9e6010020921396183d1e2e636f42836f3571fd31e7a57812ed3418d047bebc926316730b0000052c5b85ba2b73219d0dfe13f385f9c11e3cdde7f1b0bcf6cfdf62bafb0a8187d88133bf8e12572f96f42bcaf9bfe3c8175f09c147a5c3a6d403c9c7221f1a5b339ed70da25f7f44f53592298061a34bdee819974225390e09dd36ec49a2a6a377d81d2a8b989a7ae3dd628e2d2a1d19ca37afda0316fd500bb7653d05982080888fd3a480a8ec6b316bbf6dab8530c7e6d57badd437187e30a1181b67eb5d39fc1222a1bf0bb34fa5b3be6f8a5642a54915f385f48bbe296fde7c55bbbbac504c48c539a4a4c3efb5b0aa2182a6650528ac04c56a707b0187c71df90343021b4ed986aaf610be7ebd85243c4edec79652f74d3d264d1bf3c915dcaca6aee3e31918cc9b66e6b3895fbce2ea4fdaa7e8cf5e31fff6b5c809acbc906fc8eb4c1068124d9d97dc93975c03ea75df52919101251e07d879d498c0ef0326ba66a037f524fb6240320e43861694ab1eedb84370992b4d6c6773c36ecda0cdf2b904fc1ab971fb0083f23e0cb4a802b692ca0ca8faf1d9daf655c55189ae3d5b63eb3d6fd85ca76b2db3d4c22f7473e79cd0591f9f1672adca9930202550ec5b1211a6e8380da6ec2e5cd07cd0aeb46e073d5ff9dfa48b212beb2e6528609c90de5256a64357f5e21adb8150d205ea2e2451fcf26791b051e456f495bfb9db58f0a584020086b7efcc94dfb9baced64d95c353e39c7d2c7ca416eefa993e2c2179067ac237e0971db32f9a255432b69f1d40e4258745d3ac140a3cdad6b5e36d781dccebf732cb26f40195c7ddf7052c2494ff634d14a7b29ff6bed0b3555ccbcc2cb835fed75f65153a3a38bc6312123dfbf80eb2ba6172966f13d27d4b92ad00390a2dceaa4a2f072449835cd0f448f29d712efeee90a5c00d2d31391976f30c37a33ad95af066526f1b9696d2a54076141005b1a88131283faa8d7b7c115a42698c1f7b19d191dd7f5c293bbe8dad72bb6af5b3a3f2cbb8eb3c11faea03d54e8a2c236897f7c5356aa9089d2248bb78ac4a0a1d17f46a39fb572ce63d5982359397667705426a621567fbcbd83a4c8eeb24f2c8cd179f0d43c265d0967f6431c22438f1bdfc2254f5dcb13f6e4090acd65b38bfdb4f1149365eda41e49f93b0dbc7da6a865d1d805e43475c504409f90cab55423f1b148865aa0fca6f0210800a824bebcb8b4e91edf968a2276d3b1cc8e039290f4b1f3a7df9659dea7888b299e5587710f7c223b555acc0741be07775de13545479637d6d1685b805fc95b0dfca09eea189aeb7c01398b361b969128952f2bcf87b91f5d10bfaf2c70fd6e91533130a57519438c44d8ebb2071d97516d9f23aee232e51afb24c321aaf5865aa56f98f1b7629f6cff6cef3757b50aac3108ba7f5a536c5036747e6a776a702b888c62166839e5e2d4eb509291e17af5226ce341333396ce0b817ac1d3c3e9d1dfa56d5c4eceaa2da92ec3acc5824e9db69b8e9fc8a87d14dd165d4e2d361d1e9da2a5baa66f78c2fc833e2a9c3bc833b63e32d709438f625849576de0b4aa01541791753e8c9970b67898724ea24c8960ed55c709d62dc77144d93e3153451b01c3548835db7568883ce7f3756602d76744bb32bc87d181494872fe634f0ab1d3ce44c4b9f6c72c0090b058bd0b68644ee0cff490e605e083bf27659868871f0f9634c2925bbe9cbd032683f64ffa7f258fbbdc51130eb5dc3b0f7acf241d3064c16e011572b7b06a80c9ef4b3ecc49f958b77785716c2917841c8c601f20661f473ba3dc49943dd66716955685a73ec8009e46a1b96839271bd3532729af6750a4b4053fb91981d6383794bb7fe7634f3c8c790e129086aad881f6922ea47d3a045c61800e21613326929656533870200200751278680f71c6339d408d2a7252fe96f0af4ffc65fbe4bdd78506260927c16000001bcd8f9ab7a3cb7d2551b4ca1d7611a61db429820b67253042c8a410e6637a224025edccf1ea7b8f223655c15cd30370e3080fc88c36733360a7a06d7ca9687920d92883144b12bb23e7c1bf8b27aa2257ab8a200780c15552e4caa9b18cc46230e0c23657fe231d32c295636ab4f086b6671e3f554160989052e5c2c430314ef1202ffeb02b5f08a1bc6771851c8a67195796067544a9ca1c8c3d751ae9145df6dd250aab641849ffd72fe95de56b3181df31e1a5450a89b15cb24da37e6aa9a224bae3bf3f3a4e23c1ec285870ae6258b57f460f98932bc8faa9c34f2bba1e72c3274f517c4552200ee7aac65b968a14f27596b15d16ad2fe4a7172c4a4ffde7dac0d966d6a8519ae29bef71820694395775e39e2ce28efc2fdff49ad833182765af199ae22cb85ec8e2a86853cf7536ad612f5ae65f1fe4acb8f869337374e2d14196f6cefa635518b1c01bd104140eadb2ba81441f39a3b016cde3606d67d4d65fcbb7b9c5ff2274242d3fb3323d0875dd24e1a575dee51b3158f975efd13cebca1847d048286d0145dbc85af99d715355e9ff4d7c8d5b852862bc0190b4a0cb37d5400eef3e350c4f79a4a6fbb6c2dd84ffbea007544b66d830460ac1ae1a720716eca8212f0286087ca6f0000000000079a110000000000405e673ac588f73ccc693212bca42f9e1f7714113ba2a8201baade4fb1f9ef18cb12596cf76c153a53e48a934246d24c48a50e363d5d45755edc270b95a4d0b732010020556ccb1923dae810a497233f2dd597d8004520e55ff058aaf74c210e141310120000052c1312876ae369df042e7fe2aea8fd311b8f4d6c9a31bced4b029cbedeb0ff38b2f38a0ccbaa1e09f80fbe071cea6632cd2f7d5b7276399265230ce2396108e919c6d3a3657ee531f2446e60d19ccc0450e5274af01de1473c4430262671b02f6eb2a31ac2c0b480da93f5b440d367dd5d82396013c68fb4f1388f35d15892f19fd7d9ff9ff05e298c01d025056dff5d3551017b183a3002c625e93475795507216408e0dfabd9fbb2e6c19eb8dbe48aae4d3fa9ed174c33d32f546fd3bae3caae5aee8625ec916b3e0df3a0e9344c42f6f75c0b43477d5bd869a6c02874b810febc9061dd9b4c1bd3b4771fcd753ce3fbde64d1d529205a5040935bf4327d644e40db300e7265213183cb2b311ca9735666af92ee905f4eabee3a1f249c86de0c977b8ad3eebc22d75fff577441444cb55326f07ee7f926b28cc08f55b5fd3c71e8811dcfc15011902e9fd57a50ada3a58524d823a50d6bb87e6549530a06d96e8c516bc8c15ae5a18f1ba010243bc5dec4a4fd1d7691ad3bb68186b2d3cf9dd3c068f002fef654ba389c44795429df4454d3707a66663dbd3170248f4c2a61c890a730dfb42bf8617f2469ac5c30f97c0adc16b2c016180035326bebfe6bcdf05e3593f25a1bc4c79da12e098e6b7f8f4979a9ab96b5627b21fd69e33cfe8b275c97f550f7df56d7882e77a941e0bef13bb2b87f2ff49098e2213a5940941ca646a8056953985e253ea63dfdd604e35ff7e586508681c65fa15b182263a2285ffd31534daeb6e91db15bc951a5fed7fac5a3362b5d4ff59b9cad54cfc352cb0d484058ce8cd827f8e6cd7a2f928641383d47d754b52bfd662e50039df1ed5575104c4c75e1f67af36d5ccd5db1c9ae8d4809f09f36dfaf72330f84bfbde590701525615685eaa9da5aac49f2d8141a7e7cf605b18e9183cc1ae15d93148b67685501d86820b8682dda3a8b7e8eca978d4bb8ab9ce5dc5d3d261182c6173220e1060bc62f32a8e7c3a749d02763dfb4d2bb1643ccd68671c7cd9889a2d323f9db70770cf62a6a33de4b0203a2026d2fa52da5528f59332304d994d39ee098b0342e9b0e96ba9107684c946e03d2f42d2c22d3a9e1645b95695e071c8dfe57038ccabb09b524372c45dfa833ec170255330d5acb9db5183740ad7a0b5e83841ab66447ea81050ab7290df37d6bdfe317cb96261c5620038e3a6a6f3a75a98c8b3b3ae1a97c696241fe021854493abdfa1382d02460af34f5c1d1d4347f4c867619473d54251fd46a73eb3eb4d3fd9b5028ccd7d2397b8aeccbce89eb39577c5e04482b189af6139c8c9f09c91d3a446cc83ba8b9f909836441a01e9c5a9414446128303d27926141b99fbd1470d5251dcb063b1a23ad71170f2cfeb053f66e0e906f2eb25f313b9d3d78608dd79e31b399fe964294de0df1a7b257dc41dab72453789e075c89cc2deb3a4efe0d25803284c3c3d84e58ed86faa48e0e10213bc50c634e2b055b6ce9d35ddd8bef5021835e58e021ca60c07ca0495b31e570ccec3b9a733ba250003169e837bfc5ad5f2b05cfa7fa61ef3fcad76d32c3292471c9d0310cd277a489420823f3f11bcd229f1b8a75fc0f7719e2ad885528c87c34aa4a54bc4871b23a9f70b2838e0f03a3666d487e5633f409b1f097d5b762ed0c1d6d3a314b92ccfb49ebbae3e2696578ac72d7445be3540aeb3f34c83e2a9f6778a4f32ea781517c62f5c6218b15b9139490feeab86fe37bbbce4f9cde8ba813ab8707d68a0dba380397a4b2d5090cc9936cc014388c8586ed1066c5e9ea932ca78b1cee7c7064e69bc02a8cd8d981e044ee1b42b3ab1a49d03a150f9365aa2873f902c60dc2f5cd85131b6916f2020020bfbcce09ae0c3dec2e8755984f03ae5872ff2eb0398822dd87023712523b1856000001bc3ad6cf2a1477f4c1846d64d0cf8117e5ea5c79b7f9207fc39f6c4917f97b9c3bf71a6849ebad494c4076602bfeb3f9776a53f544e8cd7c0397c6fd712a20025662dae1441887a081f771e86c0514eaf0a65368f78e52db8f212274451e52bbcab97e6cab4a668d4f1a5f62f077ef068f6804078e2f5b072bda5936631dd4f935a72157495c4db052327264768bb5eeaa05d70d37e61c826b76dc45da5df0dc7dd30be7c523f597b7686a7e09282e162510a890447c16cf0a8ecb07067c113f3634da9dc326a3814b81a5547fbebf5d46f4378cdb93f53ad8eb368b4b77ac81ed7bfd9d25b8f0e4bbd38e834b22711b32de97b2ad18fb0cabf7ea750f49ef40dd1c6d104fa929b19626995463692a8589e3400cfe20577f488e329a5ce3644ef797479c281bfb35e590932cd108ce15290f43a3cdda96c972a3e13ca3a0a30dc87dbf78182b6f00ec77bea006f4457373ab6a67959f37174334c4d7cb649798295e78bea5a38c83620bd9c8b3c5d5f2867095840e290f36afd257f9c92910910fe22a4c90200cb8ddf648af16b624d1c33f73a3b54aaf3470001305913eac6b6ba257c6d96123699faab34391af3b30345c1030a3de0f207bfa768f5bb40d934aa97390015d10cede33459c0d0000000000079a11000000000040018e308a6c83dc0d54f31336582f398d201df948940af5b54272b5d786109728bf34bde4a362c3beccebf30f83224a3eb9bbd5f0256e01beff2ee80f2f07624a010020c92300e6d24b7c465b3e5647e2b2b35f67da0d1c2f0212d4098dd452d220bd110000052c519c135e95d28c12cdb470d2444da42c4210f1498f4600693b4c3f0c23c9d77ecbd3a1c42d175addf7a1f6a4869eb9bcfddff4a491999b119ce27f700a4da739909c91eb55d1d5daef7615427fbd207d2bcb0211a734783ef5628d98398fda22a7e4149be3b1488467ca1ea2502feb9ecb9e65cd905e9439a84a5b7f6af792306f71a2756b25a418f33fe043b8663a83d528cb2859dbbe28eb210d0cb047f2f7c6f77bea204a090be3dcb6dd299d45170a47a4894bd7bd97b033c14306c8d057de2568f99e737eff1cd57f1613cac613112309d5e36a1dc38baa143a6a244c1c2f0e4978d76e64179100c099d8d62f3f7f836382a7495dde99141b9aa2dd7a64cc3d45108aeb68e06a07ecc1272db8f65456bbd15b4181036fb6e1fc8d22ffbc5379b92ef778fa03b3b1960cab9bc70b221b32a4b75694091869d529cd974484c790042b6c514bc3a888204c7ef897b35b305f6943acb4d700edeb4a218d18b79e3f7f94005ca6057eda3f9e177b0b9390ad643a926ecd5e174143eb133c0e2f00c345c814fdbfe4d8522dfa560c601e76cc5aad5fe54ece975673331f0d778416fe6ab27960ad4b2420bdae244bddc0e51ac691c6b411971368b9d0f799cd1e8eb499af76cef6f47852854953e420ccc1198aaf8bc3ecff828712caf1280f8ee50ccaef198b1b8c03a45eab84155d737e6361acd9203ac76e7c8acd8651c9f27dc6807db93771649d10ea710b128c54ec6a0410465b632326d427408a02f24a7185d7dc788f8f1e5daf2f40ca3b51d4238f11c0ccf99df2967ad5b02daa6a3e936f3415ca8d8e30d9efd29f1c7e846223728826cf4672410945140c6fd1194094ca9969ee002ec4d0420ee55b289b820d83c88133d21b586193a5562b39bb134f4a9a5f45eeec152cbbdd21e18bd9d6672b43e8aabe20000fbec2ecf63572136283bfc0c6cfc15e67b2c9874f611b544bad69a3bc8ea7ca2c94d6a02c2f776e70aa9e34e33fff090afd3c97d8ac2b6d25691c24e0a89d9f931c83bb1b1074a5475a68c3e1eb9c1b404cbfe4734267c38d25188f7b1569bc569c6b1bea5e42a43be24f39842919bc45436239b06bc836d85a605ce7eaaf0678e90a76b9436cbde1381764140c2c6ccce5e7144d1096b77de7a74551abc6e226db4b78bf50bbd7480fc6c6922e5f892835e5ebd8a2867b596a9c98e211e93ea5c6ca85b9e06660691b183e14baff3e6914d9fc18f035924af3a12f598e77fe459e769f568033f86965c6d8f90e9fe5058482ec5496bf1074f79a4611f180ea6c16c71efa734c29befa9f2c885eae1fe164dfa52f2d9fcd38222f98689fce361642d542135d6aa348bd8679bdc8f869bb2fb9b9310cd6f0cda049297887377577d95ae530c8868c99a96528c23b211cf37d6650beaa98adc1f129d31d832ba3fbd5b94ef778292cbbe305e0e9ae7faddfac6d3a3c73c2ade6ea0dd9338c20f4b2c8bf96c9da8f97a8399d67e1e5cb7171d346aff218375677b8b5443aad79f3b0f914737135f37b7612313d04ca653c32c1640ebd54d8b1324ce90634d0b98f633f26b0e8d6d8f5e50201c5aaa17a27e21361ebfc520cb1cfd03a72849ca98ba2aa8bb8edbef10c9107648d9ca841e217bdf78fc1ed57c917a4459dbac22f8960e22cfb4be8260b279f0b6c82b2a86d7227f6775747e7735a37b4df70dbc1a4af6825db8c6ad4dd881531a5011a300907e382d867365ead24ac6f053a42b9089bed67e2a17c60ba5935cfc4a4878b0b834f42193a4c6259e968e556b65185a9588082d3828294e7f5270d30701c413076f8fa0bb0d1bba93860cfb99c66ca01f65ac73aa2b2d780980dc2be5929170628db341f02002071139a6b6a3a5f24b7f2e979b159759bc96f8fc9e406775b07a64e80738ed446000001bc9711ec6b979e6abce4922a958e771a4496ff4374b6336c05e19b75ec274bf7a0fca14a73332f2c35a1c33487c34fed70f901624f17981a86ee848a7a9a8bbe66059f70f13226449f6d0f576d46e817a4b891de00b23d07aea77f0a62b0b38687929b619d13d163f180e42fdbae00f2d7e1c60682cbe37200511922bd751ebc5625bbc7cb843b569b268856900bbe8b1e7cfe66d1ab2463ef26ff1cdf7062ed378b5094424d94510e28f6d7fd29009bd4875bf3be97fd9378a09d14907b9d1841a400836cc2c1e52d3d3598a50fbcbca61b1d5b7ad500202a553db300a14fd3cf20e07194a22d329c3654274c13221610d89240a8dcda37dae485c34a50fb1bf4ca7c5ba7210ba28ec457770cb533231c8d21f193df051071c6e957c1e51aebdbdb732c29a436ae830e486b558e47caa61a27430459ab8e27e5d3dddf481d7a66c53171733750f36049daf2b899ebeb902304530afa679b8fc1029abad102acefa6afec7860d5bd9ec3e401d0cbe7505238d7fa84367709e8442bdf9623e0a4045f20e0e6dceebc208580ef94328fee692e4d8e97db4916f0cdb983e206d9dd466579d17d1c5fe3715c1b676f2247f613871501091776e3c552aa3a82b4dacf5d81f57d9c8e34bdbcd78f946e0000000000079a110000000000403dfadc783156aaf238415de59c390d1aa16e372fef61a0eafffefe718d19fadd38f16f0d98337f8342d18975912c67382eb36d1df606ec1288a92a0f05e08f2b010020d8b7e0f97899fe88153a424dd6127ff431bb160f4e2ca94caad4fe1fd94e05140000052c6116afe1365d540b40550288f50a12c3198e50e4af76c1e5e0210f9e4b9b0c3f87172f8a7007b41c5a59112f0e2eeb9b934b0df29659f08eca4f524016c5bfe45196c66c182f644d9a54c63d92438315f2e5523d3fbe62ab1341b6ff5a93937061a379c51fc16e3293c558ee952ebb81d7f42c5e1b1d22737386d601509fb873cf177ecee46e34a390b45a689e6d51c85c4e3212ccfb0e9aadb0d2b67200a238e0ed29448b2ec3376e53185bdde201ea06ab6228fb32be899157a499c717e5df12f34a536e97d68fd31229dd09313c971f75ddaa7716220e60a47c9d22db45db13efae0666eb11b6ff9c260e3c12c302c48f0fb4c94eed6494fbba8c55a90e53833d55b72141d9c5e681aa33e4103298d9822204fe725f4e71a4328c6208f628e0c3a8accde9f38242f421a4728e24b80c9d9a66c9e09934813dece418bab7cca50dce3b9d1a0b021456041d662c6fafdcb5153e874f0a0e92349c810c0f54b2b2e0c053761f34521e6941e17c32cb0b2afafbd1804099f248b4f68523647ba693f232431075f72681e1914732aa30948df7ca563c6ce2a374206a8d31ee06c22b470e2d42d8ac894e8f5f2dd6104b6f6f01a05a79884f969530b973bfa6dc88b0281f3e2a9361145779472d3e7d1646982044de44970d3cd5d2c5f740d8886ec74dd54eb435ec550be89e279bf49239bfb6899e8294381546cccb045deaee87fbd8b54091af15021485cb48dcfc1c88d9aa49e917d38caeef418045d3867e72da401e5990cf3aa32e7a71366bfb9c0a5e55cd98eff1b875039c3fc91e732bf8e55dfe7ff76a61e69eda7906684c9d3c30a6bfc0360d2dcd94664ca1ec5abf8c8771ddadc29d9ca0effb98675c9cdcb88327a7b225821cdf38035d8f9560ced456fac110ec77362c58735efde779a9c56e96593e042761ace95ed721079b7be43d47f2db8b623d6915203c0eb03044a79f2bb1933de3436514e7fa2aabd1d72b49fe66f331d1321d5a8fac67ee40a3145f6c2d9a517446ac7805311b3101ee98e061a289455c48a90ce772e60a6eddf5cfeb4293f334ebdea3ec4e6f243904b25879156344bf66f8acad5fcfc26f918c16d3ced7291b3a5bd5c37fb7f22719e7052d1687df66262774b25b6dc83b063f699b473f72f58de3b8f889eae90c3e2e7330a29d16efec342529679134d5e17bca7effb58dc6aec91b859b79ead4e368c84e58709fc9fb46a299e2457ca2776513a3cebec6d6b39fbc12e82fd688f5b49f88bdc70f225345c17c22714243542e180cdc032ef75e03b9f0b94c30eba7855da395806f8abd71c7c834e3d9606880b3f4b3adcc036860a7832932596aef636bf43b89b16d4119fb108cb25b7fe12f25fa8f1943bc019294d96961de7ea5dde2605ac78ef13176920b303dc39347231287d3d8e2c02edfed4282b69e46e85bb39740e2fa68ea08694507d475f2b9e68caef036233572e4998575a12bdc25fcebcc0b0732560d10febc77211e9d1b0b7b81e8586e6e2f5f0fc16223ca8f51fc31edb6477f89516d72cec8f07b5d415bb150acaf6950874c012615758b83f16c98306c1b4a2177d8601d21f419726be0b2d48c6738c2647eba8b74451e053db3bf7d84ddbebae8e1457e44f21ddabf4b61c77d98c6d7b237210ba99872b4b81befb3c9014d9a54918c19189da87fbad4eabf8a11f1f93cccf4a4f7c320ea69d2730bd7272c0212651cfa9aa47d4ddebf58963b23c232b74bf92a2d4316433f6502e450af83b295bcb653a8db5a065c7eb2f7a781023025570595e4e1f38717b7d56859323cd565da389ed21f2f8762afd0d29e3881e2d59662e6516bb96a505d9129bd0cfb7c3bd9173e6d6a020020e779d18915cd210d04d0b2fb0a9bf11d9ca878d580afaad2d90225c12ece4f75000001bcaa587d62a4599556eff8c3348c20061d94c85b1f0ff94b1db5b21f01a48c587badd7e789fb9f87ca8daea2173ed0e42eb19a72f60a88a78ab8e6944f2a35774a75103498d3714d429afd8c0100c16662e96f6da9cfb3e4ecb2e134d446640b8c1495ff92698170fa00915eab2c307dcb5a4eacd58f998a808b47894692e191694eabb556dea89d1787059560d496dfe76e8cb53b7004d03f078f6299685c1deef059dd5e94def5df3223388bc7a3db6b8e8f788d26934dfa26b38ffa2f63736188498a713152fc502ef3070021f03402be318759b729ea68cd2a051761b3f48a66d94c61dd4415f254e0e6e3a8ea90e5b43d2c780b72c13d619a22f9d827b016eafe85c6948df5f3961fd9b12fc3f3593bd368a0c852cb145cc8c1acea65ca2e26ed6177c7496661e1b2c615fd47c4fbc8493fdc74879acc7637ea52051651dfc12a9dd6282f2a73d303a758f59fed2570a34f8418a7381ac149c27b60bd922179092384d9da1b6ac9ea3fc739cca99e0283ff31acb9f35b882a42f1539168216485ce327ce5a11a59f8de8bf1d89e747e528aa2319be22c9dd518ac77b0308cc4535eec87e8043ae1061e93be1c6d584816ce31e19a207263094304becf6beeb5cca1f27c2c231f9210d9860000000000079a1100000000004054c8c42bb4acec364debf64472f7c5426bd361afdc3e4071751b328107242994a399a8233c911cc58a65100758fcd71d9a65b1d89d61e2184e8cae69e547c228010020bd4372926e4dcb14bfc3d79f593bfaf9f9a6164481aac9c91ff8b882f5d613360000052cadb2d7349d34fb0e310db829dbc9f709557f4b44025b14fa734435766acb8a98e16da9253ea11b40266f68f640431fa2887aeddb7496d5fb975909f63e1db6d4627de252aa08ca261fba93fa37c8085d6c059150e1255d75f26ba237706b8857ff202f48b0daac68b4ad06ffeb33676aac7478d482f80a7d75502433e68788538a15267c6f93dd9a8af26b6d04dc6492b503edebeab7a8e4c4667402d1e4bda75740b6737669bea7defb21501748d598546b277c4cfa172cb081fba3c1e9ac9ffdb7bb79ce46ad8101a4acaee56932b4d3322d0993c8a9d426dac293028653fd73da6b756351faea5a099e0cc69e946533fc19b2efebad07b3fb23043077ff265e07d9bc25638dd4f704a89a11eb109387bc9850422b40eb354eb4d4fd9c3ddf74f5ef86f85a5fd3f0febb8a2ead8fceb7acc1a9949293e843b997bb618dcdf7eeab7a6e04ea812ecc6466965d9d7914a304277281cd98c91b3eaecda9b8409ec877d413b819cb6ce3c983dac9ee992278b43e8be195e74a8fa66703972bf15b8ab646d8a1254ca00cd47e6eade9e69ee39e6e63da0c17848e5be3aab265e453d295d1f11596669e8ca082d496dc88047931928c2db1449ac9c1c9aaf3dbf459a5e683da381e79c5023a305264d6eee41abb504e042b33f3fad125cf285895f3ff304e6848556072c551ba581ba3206ebb3370a4f00de4d99e0a63a145bb9161f71db2db1b8c419281829948b842a9bbdd33ff24ddc25ab5ed7f074fb139e4d33f3c1b8583f2609004e0ed44f9a45555f4b28d3678cca5fa9b96827ba0f719a78f8ae5b169eaffdb253ecd042bd859572bcf3c25d300399ddd53a198b95a074720a405b7d3afdba8749fd999c18b67da7a778ea71eb61bb25422cec111f543a8ce7898726ab19421f2f50ffff4e44c431b009de6d26db7cec71eb775c6b1590ebfe75f837dbdea24b6308639623e8c7e0e8d8e562dca8a5d07c819a982911557ae467cf38b46c29a8acc4df38d8d7e91902ff7f35a1d21e7bb736499e94fc646a45a67e5abf1a3fad2c04f09ce6693694a4a4d89f8ba67f5bf9c170c9e50cbe48514bfe1f81a11679a1829284a3643410d51b93140ffabef5b29e5c3e4a5afc39044a4d782a692940e796beb60071ca05847fea2d3011e17309944a8d07be0a8111ac3519d65aa62cf10590c344aabda6886b49dba45ed755848196747f22618e42553a47e0390b0839b8c4279e14e28fb17dc7fb572d2af7ae9d26f5fe74dc7dda1cdbdd5ae370d678807822da50004bbcdb502b57e1500416aec22f822cfbb79be23370add8d98ad37458aa3bc88195a4fccdc8baa7b37a6dbbef16354525a41f87840d96da6aec5f31841384dc74a413457241f2f964c9c2c0d5496f1cf7cdcc68c220d4c08e54440a62086198158442a2e6472a2dc5cd358e7984a48efa80d00dc701cfeedcf71d044668564cfe8c91bbb64e28bba09e0dfedbc75b82c6cf457f5a13367af15e39605f426e22354787aa31e0645ee981fbf7bf4f86b9b8163e003db6960f6ddec06ae473628fd726fa3efd07f3faef0fe4af056b4f8cc3db8d0dd1fcb07f90b9ca8367f236fa07adc241fee65f4d36405f245bc1450838e2f6c6d2d93d0edfc11b0ea44841a6d5b0dfe58c11d1248330b9b33ad1914a43a218e73adec85b5619846376d46e5a116bd93c7e8dcf4ab1b52b0e56462d05c7e185c982c46ed69fe42461ef1df47f1807bfbc3bf2a6f9bd88f65d328bdc5b63a51ad85c82163786ecb1e5c2568eaeeadd70b45999717799fef5821662cb27820d3708ea791833811081cd0350bc6be8cef84c40f3e236047c27aa6f5aa2ec1f29503ce9ea94e3aa7289ebf0c02002003a2fa88f2121d5c1a1cd21fd5651df44d55cbe5c73240d57ea178ce67fd2e56000001bc8586da6d8dd2c71dee54a298208abae4a4f7ae6aed81eecfe39901a51d08b8af12257eff91a810d162fb97e5a16cab1962cd9b0e736d438043afcbc0bd4d8096bac5890905d4897b51895a2a8b587f5604ac194c8c4cbafa3b0ccc595e92f8db2570b20ec88aa737e5b682a3497f1728b762c3ab39c8d209410cf71f1064bd3c6cab233b9bee3ec00ebd96eb7eeedd194e00a8f427e023d60ce98dd135cdc190040f0a61111a1d2a929926a591bd5133f328f15a9a59f05dd11fcf00e55d787ff3023f0f53bbfe0815ff7b5ae08e32eeac7199304699183db60a35f62f999b8c8625bdd07ef53d0eb1edd1f1d0b4a074f06236a81279f73bdecde1c7f96ecd0308128f8cdd79eac30280be19cb58ac5c6e487f069d7e959409ece03b579a49970f1add8f579c0c8d12545a95fddbfc6486ecafd92fbeca95ba70c0d791a393a585e0d0f1212bd6215813b4ad12939674ac82f3e19adb2365d1da800d6942bcfe22066bf2c3851cc2a38ada48eaeba66745659f2ae9908ff31de01814725b0954987613dae689f26987e2968912d1326ba6526b6c80380ddc867efde7beba46f63f37d3fed85fed6050a34f016005dcb93d921e82341fdf7b59bb1b86c26fa81954b496e01eb8b2b6d82cd34e0000000000079a110000000000406522b0e7f769819d55ca74be9c70f067ca46eb42ed6f4f7fa6a652f39a02a7b45a55176da2bd1cb0d4ef08b1511b3a4c778bc2e9a8fcf5939871dc853e628b22010020a89dd228039f3171551550488f71bfd228e087a5bea7833d2e52a5be5cd8dd380000052c1c8d08e6561883b57f974a6b4d2eb568dcf3677029b4d3551212d232e3ed3e76fc25dffa7ee78b19f7384ce4d7ce20a4f96dece35d90de5f7da2f88c30c394d663f0b624511a5fafd16e0ae4af22a4e0b8706a9c91513b565b74bc42920315657f4008f021ce982663daa8d61a9aeb38a3603a9b96650c1fd0dd36ef76d8ab3f55be5d378fc4d2221e81f3eaf8b9bf25e7078df92846005a505b006b96982261b9eb60538d123b326c8d88fbbfff33ceddf81d983dd649602bd4512dc519de901911a770c859f37eb7e612ba15e603ffaa25061e3032fe19122cddb308bc299551dbe564246f0387c2fe854062ee4f7548987618ff3fb95bdd9c274bd1c1f034b339d44f1de7d05de254707d43797ec94f46b5e3da0eb8a52ff8b029d9108bde8e0700c3a37f0c130ce156573c89278a227d5242b3cc70d38ccf4eef25ea9648ce2baa4f093052ebfc10196f01955a66a5b20a3840abacf89f9e33b5342839861b6ede15591cb9f71b1683347e9e47aeb86ce59e0231d4e1d0f747079b7168f39deeec2002a90980a2d350eaa30e244b33f083344e768de46664ebe7d6b4fc7caec479a8649c5a42c4b339fcec2040096c3777ab2648ed5408e94f6eb058128e92e4205e05b71fdeca48d74353d7331d7732d84c2e078b8935936b4402c2a1a2787a835c21b13fcb646b161ba6ea82467845d2cc8cd202c28def6ad28e95178365937d9819b4e116dc6284d529a974435f1cefe5e54d651aa32e3fbce35f5f58c93249e73826c37a67804ab5c5896e53028d9e5665d51d83cebecd162dac59ebc0c37c0a5d594bf858ddfa38a29161b6c1d459b9b28e58e51abc7d90eca4a92a00d9ebd309f58a1dd6b78c105543a5b08378221b5b35355e5e40099fb7aa720e7b166a66d4a7ea499c50482ec3121ee527f0c967871b0adf0f4762f2630b08f5ba7270064ce5c6f1fa5da6dfe73c32515d71cd247580e45efd7e29e6f9de2a5f1de45407d406a0892995a71768f7f099b522d2819ec3e6edec5482fa09cc1d12024abdadf554e0ee3a748cd253dac14f718903464859459e11579e9e94d1d0d55378b9793d393f4c42950db837ba9bca04eb46fe577e8c39806d355f15e1c2deb0c0411af73f3da2a5f66a2252add51c2d3cf84d89b52173a1128e607d52ed18a963355cac95829a6563fb03eee144c334b642c4c14902a48f02395dbb6b31054543f80395b32e2a07ce3dfe88495a8504a1fd8e001464ffa8e440177edf58cd39617cc566118c0d210d505428b532741bc81b82111a64c4d7775514efbe4aa4fee9265698d52357edf298b18728c1eae12d62c410b47bd303c8b34752fc50793d7b15386e051e0cddf86c60a5a2356f9dfa38294ca5e5b7be222ddc1186f307d518e9a8daa62038f2089d90b9f2e478396a48f01ba0e0dba023e347e0fd91d9a5ef85807120e373b2378408be65ae344d303f18a7e37dd62c14eb92ebd4d31048680158d0c3e2f4471ab6d327a6fa0360ffe304b5d0aa9b4ec003fa8322b452b671be0620c54bd8795659b932df0465a31d4161123a7bb93c51560129406657a604a4ce2bacec745afe39d3957c0a36d7b56b6d8174aca7983f38f8df074e661521ca26991daee90564e470cefbeb9e33a0b3c91b4274561be20a47309a4a12a935df4c9da5e467a0dd7df6c546f83a9f9d332fd20e598946a9ef4db63e9f73b0de95110923d46cb33e6d549eb038ca4433370c93699b20ac0744aa6178e3506bac70387a7f6c02d7c891f884376479cc86bc74a75c647350840c0d43e301676a1a66a1a163e328c0288351f8969da8ee64eb1bfaaae787e73c8a9bbec8b3d6ed82f09488fcd7fbe0077e2b020020b1cc8db8ce310857f2f1c25f8cf38b32a6617c8c089b4e664da1332e50e5977f000001bcd0f5eb3f86f7400963fb1eca13f069eacee1345bb6ec1498586e510b6b3d61e2efb56783467379ed8b5c526894b5d0c09143fecd9aa014b159af7e83d0eb55cc5aa8526a0fcdf195bf321dc99844cc38f384da06d7641f5ea85b218fde5261791fdb67749aadd79661f1a80eacab405d9df05f8205202c0c0362e8155f30782a3f0247a9e3f95156c2e8aa69a5702b1b74853752b999140c36285189136b7981ba744555bc639375f36f83c3729ea9df82032dc6adf3c85d1db8982e1792d5833e77bd744ccb0daa08f6acd971434897561665f8485aecc61cdf102a8676ae9b31ee55ce1620a42ec507ba331c0d422b8203bf2f6fbe55ac110780181b4f1242645fc20abe72eabee2ab4c036019e7e9ed26788d921c2828ca52e0d2d454cf1fe3e5d0206e0bd4f4f87ee81aba75cf64b96e49ed4ed65789b2416bda94dce30c1510b0696d9fdfd72533f6dca3dde292e3d91e87c0e1de62120a83f6c687997feb1550a8de390fe5764de3945d81be0906c99c298f5df008e3a090b9e74d1f782f4ee96c786979359b30de8ddff86447238cc3c69a0f97fe7f4b373cd5ec8d904cce1cd94ee2a50db80ec88c21a9bcad9a981aabc6e2ce88a6c538c0c365d985dac103650b1b2f4e65d5409c0000000000079a1100000000004050c57e2cc913208866cfecfc7f8dfbbff0063a6de4ab38b5d86c25f3faa64105802545b6c709723ceb176bf95ff5d8c949d9af994bb6c051ec73e73f671e036601002040a60288da4b18876266d0577dce7e6e46635b7a6b9f579e1d17ce4b6f1f216f0000052cfd86551e1823cdc2f91994495038750bf050ba43c2b16836e57074d70fa4c3e32e8848c331b8f8b6012e1ff48960b970e82d7452090a2ce2f4bbbfa9ce71e8eada3abe720ae369e58b50d2dbf0599c8c132bc0e2066c0de7f8ded236e6d2aa0d208ff41debbbd041729579b4711d3ed511b93eaca714873fa679f388fb96360608f7b4fc06ef1f1e6a687ba837fa01e9255a14f41714c995537d894884231e09f25274952adc8f9c7f3cbd54f31e7c5fdca3ccaa9e2dc6fe8c0797b1c0de5d5393955496450acae84566ee2a326bc65e28c175ee76541cf620c2790120466d9baf73d45a073b4bc4f949ca2256e3609541af14ce4d9362dffc1c67b08c18b97eec8ca626337736284c74940ed3fa643d31c7a01364567f01ce3e74ff9dbfbbf4ad5529238dbff665f7a0e50a00dd33990ff6643bed621389581ae41431b8cd9c2aecdc5c2c499e783904da766e80b96484c4bc57379d7b42d8fd57efed3ea063b48772442eb5fe6746e65f44f7e16073c961b206e02b153382ab0f47ae46d5fe6ce6db60e15c32e070aca04147c9053dee1f682ae93f372e0d4eac8f6ea7e3404fd3334a3114927ab180f4ff37c7a9682e48fe8a97e617bad1dbdd464e96fb9bd9080f07b5c3ed74fe5a21cee3b9d95968422212a657fd76ed67725b9cacaa52031d9539546f5a89028fba9fd21c0f19466a8d092ac8060e3304f2c67d62a7d047b8d9a6dc2ff7eb11f4099c59d1afa4ae56a5d8305aa99dbd18f0a0892af5f6f84c2ac84a149c8469ff597ef95e526590d220f127ced196a951999c67d99dff6216d3fba8bf6380846503c52d5df5bc8d1cc3a4e49d319fbd270c32c1ce91a513fc6200a2906de01e3c923f31234886de079eaee5d6c4ab79f93006374ac69b17bd82d0352798fbf5b3ad81eb7da0a260a00801ea78fd1988e68003b5192c7f62cbad2245bf9a2eb792fd5452dd6049b04b7596e1b7fb29dff46398597ccc0305fc0d30a9be322955a523e165eaa0af19f0c1b3b05f67081e69d2b2df75bdd42db6b78f8bf13da249306b13330d51a0f21722cefd295553b2acbbf88f100698591f9887b61239fe58ac2da717afaed06dc1d0bec34bb35e7e6d401a6e65f99e39a882f62a4a4d6b94f2c5ec1f4981a01929927871a6144649b291336181bbc6f73d9c99087f76a29dc6a919d71149651eaed188d59ab81b2173728e035e4fdcd97c33cc1dd5754013bfc9870e52b58c8acf0379dfbd2609e766f74a75c6aca54e86faa296c79743c4069d2f336c193c8eba3e810c1fdf945532eb3708c766dd1fd06b80d3dd07d4341cbafddd8703f2c4d50bb0c38152200510b4f93651779d6c730c4116866224881821ef6db423beb3f8dd97ec45edd4cee2df63d2ec5f5ff35de146b9d7423b83ad8a2e486c25aeaceb73eb491ba1b4368c044fe2b2fb240981ab68b7de69ea0c3b5db3fbfc128ec8b2ebc36c2359c0719f6af37bf1d620359dc8ee622e4fa5e2fa8286ff13aef117e3b40da4d5167d7a74ce474a10e893326995870d45772c5a4eff258ef1edf428ec5ab4c962ac92cafa6c7f5c849067b27493eaa60ddbd88be24f98d5be2665aaac28077634dba709d478770429d468b98182c866b6b36f2392c7293537b2a56860409bc7da8982498dbbaf51a26c9b9ed30348facb1bde943bf7a21cdff001f4730c69bca73502339e3fd61abe779221b43dba4166201421a84af59a6a91afd73af2773d223e41bbcf5b19bbd45ca91b34ab383a5f482f137f5b5fad993f681a5bca72b4079c37d86aa14e1f4bf3a60a03a60c4597c3121fdb5531777a5fc2778fbb517e45b699281b74a8dbeff6138bd3bf8d432449fdee39ea6d020020e9abcf3957cd6d3969b29ef17876a940453705a1f580bda944f2357d184d3130000001bce29a8d977815a4e2b93f4b2237396500cee6414f7914e6472eb761b347175dd6033f8d6e8ea56c0394bc8c5e2cc9d86f2b966b2ef3bac5faadadbf7aba44f2eb38d7ed2c823b562593c0a1345a3fe78d575b9e84049735d0d8d60f34bcaa0d861cc4b5888eac5d5975f21ac09cf2d0bc28977d64983d7802cf5054996133815f362d54d9c0233de283422b265362959c13a249b2c70026554e868dc1e1a5de852c93b37550231d044c6b4faff80a75bf54aa34cc6dffa4665affe37817df2adce8a604375c84893de5b84a57ac016583e7fd016da4808510cf207cb95b6b43bf9b8ce21101cf3429aabaeb688aa4d3b594826e5992c0f75611276d8cbe402dff5591d854fdddebf9e6b3d6e74e1875a5b284849a56625a954945d2e3236b2b713fbcf815ab5c6b79ae09a5deeafafd93824c2b24182d04c82376e4abf10a27bedef4f9cdbcb800a19dde4c119550ceffe5af7c91f83b2268b8095571e2219645614a75b017914e407b1b4b8f53ce144f06d7d145c08e8de56d9d4807d1c32b45505ddf3d72774c40de9a6cd0dc4b154eece13b6677bba13cfce52698b5f5867e363aebf755467730fb75b12c479c828863ff05d27b3d35a5e568c3dad6cb42f9f8040334b95b4730298de7890000000000079a0f000000000040888f478a768c8e767cc995034fd93b94725388a245ac8d298e699d2b9d5f3852cf628ba83a38aab39dd0d02570fc295b54b931c9b766ed67d0051e2a47ef953b0100200f39ee2d4ef2060607ea10ce409ceec5199f8a4f8b8fbcd3cad7f73ffcd23f5e000003c600b987751922476c839c3c1a546bb26167e3bf1dc5f63592d5c04310a86ef551d7b04d5b26cdd646158ee0c719539e1fa7b28505ce9a27f36b273071d8fdc9b968e7ffc3943bdf23e7142b6315c9ff3fa2e0904ac67157ab6ee9fb4e89bbad4ff6f71dc7503123158ca6f2ca9d958e2b844a0fd8eab660d253dae97be4d778c741cf1cbc091a950e1b3134a58c82afd9b20b9e3f7c41591eb1b474c3ed8ac3d974182c83dd2c5e4c788a03eff066bf12938a6634c7de425e59e5c7585fe0eeb7be374a8d1c3680d04df28de2f5f17192228035d3f8be5e74fc448a05bdb17880929d9a54b522fea32fc653afced02fdd662f6eede89ed01ba5646f54b4dec446317c38c927f2f3a12c7b885e79a02e86b19d8c47484aaea6f0b0c63bf0ae9f6cc3a3f5d6667143bbfb9257b81b3ede2506f22196e71aba533b766d14dd267e5bd8644a4e3b1c98a5a0fee06abc0ecf23506b52afb6c07ca62865210adac64a91ce31640219d2722d7a79de1363c632eb998431c925c65767bfbac7377bb4c84438ea27ca2c16c043d052d8afcdc712391f0438b778fb25f0dbf31c9f4410e8524fba8a7a7a427fcf075bc626b0121426a36f58c3582d6104292ed0706af56a23a0408dbf3c88c5935a2effa4fac4ea68ab7efbe3310ac684b7cd4f919fc78c0e495259edca0165741deea82db4fb2262d02c9050ed62c7d9f1dcc918c6d1b5ec5617727f9ce64719f8345bb75ae20da4dfd976c6e3cc6a7c103245e8219b104648fcf8d0aeb0d048dad4d9aebf7b75f1569943db4e6befd7183899941270ac0ecdfcf659b45eaca5e2ff1eb6f82bf4ba618e057fd895c7905dc82b199b365057a96e64bff3235a51eb8c90f2314965745b0afdb6824ec110fdacc2dd6b2f2c46a4145e6c15ce48990a7e3734d061beba4c322f54d6dcd39537979436bf3c20db3b9df0ab3fdf4fb42e90392fc5792f2f2d5ea8d153041120714f45c3349724ed377459d97735e8b34b3dfab30064f0c6a7ed0645777237f0a0f94f99ab1360065b74c68e087e969349cc3519df57fa0817653eefa31b581105a9c7b40ef99f4b33b09106456495ad3d6de57aca7039fa389d1dbaae5517cad158150477f62e2899e4b8b672d2d1f2a8248cfddd5d3c102ecb8bec364b99409f7df6f49f777445bdc7dd8fab762e8bfa34d4099018735cf63ecc770a48699a7dfece0d4980d62f5fbb90e45298af9ebfd0cd12b3b0a1090281bd6363218915af40b1766f4794e7bcbee609cb67548bfa44571595a8e1fa78d15faf9be7a198a542ea6f4fd411f629953a156e9ddeb9d6b4890449026e8f9c3811304a2b99c1a7c95f091b6973307bb24e9fef80020020eaf820bbb55663ccb5242ef21ddf9637262e06ba3eb74a5855ea08ada22f6f6300000056472fbf716f1231e2567db0915ebed8c676bac7be3ffb4cc63904e49e711cf81ce7365dd652191bba3ed8b93f55c310ab27f7bc41ac89a52e38d7648b996e1062fc48e03231c50bb3208cb1794fcaeb57f037c743a432db7d28664da14468e2707a2cd402dd910000000000079a11000000000040540459e2c62727a3f1aa3267ddb216a544a2064535be5ebd0a062d409669f44deb69f8ff02800d8973f2e31c00326dc252c272438ad1e96e2215023085995eee01002094a5908bb8eda31bc772e2ab46ca04d9a831b4718cb4f6ee4f03123882b3f05a0000052ccb18e20193c4a8eca929e6d659113c02c66206e769ef1938194b21f89058b446c1b599383b4080066f59d99895a38ed1fab5fe964c198ee07eabbf8db68e1ec5e0807edb29564507f3e55d7261ca7eb7ddd38b263f8b15b0120948cbffe41e56352a108ecf8b54b054c087e6553a893a0c4946a5e8aa09ecfe825b8d111f3cb7d76a2a4960e660bffdc7c87f7d2290c2f9c342022913941aa7f284c087a419178922c5bb143a2117ab6ef3698aec0d37907ec6fb62186bb627f28806c8ebb6f8a3a367ce600a912cacdef924bb5deca2affce9535c50bb2a9aceabbf2bfc58d0611f04686e8bd86bb8a72ba6f3bc2164dceea174105893919f8cb35345a344b9ca1be9c87aa68ab3fb90d41f19e586c1a6e1684a51f1a1f89455ffd84c65403b6371dfa2e6652ab8bef5c733d2043a4d62adbfc231dc6700a8f3fbe07881fe1e8ff52dab79a42eda2f8a5eab1ae71149a9925594d1085a75003b6b2305742f86c79280cf9a4db76d88ee2928e8f92996866c594522ed27cceaac6addf847404b806de88c551dca2cf17e6754ce4e0b2b0cc6b7c2f2caf4bbfd5ad2871c4c8a9f98d96990c16744434c9156943b1cd9bec8816db0312db04362c46ee6f34b919fd6f151bcc3f123a721e0b23517a65386603acf9930096153800285f1718a3b399e1874298ed7883d0ce0232f1c4ad269d5fb1ec26e53dcaaa2f8d4c122eccec36361a13213cf7813ca1fa0a45d3e15b539f7ec969d24aa865a157650b58732abb3c9550dad691e36fa79a9245703402e7f03a9b8f8353936bf3362a960707c30224d9ed36e4fe5a3f53de7e420f80c41f16678785823f233d4ca581b87d8a964378a850686d360e5cbae8ddd87166860df62bc72775c38195b9b153083adff8a472c39772808bac2bfd618790fd656d16790f9b0013f89fa3c72e89b4fe3b84c9a407714c2408db56e32e8ae6c7ee42b486f9dcb716e63b5941df7729af706b409a1d439664f0d58ada7bf2f507b44ca7aee208e4c65003b7baaf94fbb639993c9baca3bd8efc75219960a6d8647488fc14117afab5048187023893846f37ee53fd399f7f9376f36b0cfb9881e5bdba6d8548fa90b0c2b280932cd875edec44917cf99c423232ca006d216028e2dfe64f11c828728b781a3ae8ea6c928c649d21a1f6854c1a46795f683bc30f7ee0330c486e7423a801a3827da6f3302ff3a2caf15d30ac478fac43d58482c26fd86fef1fdd36fcc79c156207dd07acd0d95037c436ccb16fa0edd252e56716f014f52de51e6901b8e3fb08b1f2359aef7470c529f23e9d98407d61cc0cfd8d242629cb9c7ceafbf7d29892ef74b5dea71f36c7292cc46287c34c93781e9088eb705ef479e5c6eba7977b4bcffd8913ddff2c1e4c76b86896eb42e9be70929b9867a8683c24b20c65476eebee3c69889b3e42082e43c1b0a32347e4983a5c85ecc562dec0e2617d935512046a46b190e9a8be7dd464fcb3c8f09c97d572f4f915cbb8539d94f84ac14e6c5a0a01309df55007f6257baf6fcce82fc61c0efd504d491e57c660d9841526a3927ca4c97d282c939e92261e61f6019d5d012540d21d0423e675629bef996b84bcce5df66935ac0e139532d70b2c0de4722b6dfe4ae1507730d38d0c2fb07aa6b64271235c3496fc674c93e5fb7968b4d69c3d57d8baecad5b17512b9ca12588c4bd0bd4b3a0711eebc7930f1861b0361f8e7defd0dd29d5d92d3eeb5b47767e80f5c4bf3b61e6c48be05b976a2de30c9dd87f4d2950b079a23470bad666d8589791d417b3b4a4ebc40a967c3ce751563f2918791669261adba48f1e58bee75a3302821fbe3e5b411e456db33dddddfa2f4f9a936020020e688853924e818c4617d4da320dc9c863b229b2ce0c0cec9a02308e4488b1e61000001bc196eb8d0b638e3812bbc720a9ef0d5eaf1bd06ed9364007a43acf15c65d76fade30c3d227e276cc7018b1e85422bc96bb35a87213d7cab8b595fa3eb7da18b3f124a929f8f4d053b1a402a24169ff380ceb04db6c53d028cee0d04f1e0428da7678b3f279645d481815418dd191b1ba00a3850664fbd3bc984fc2aab479bc09dd48c29eaf97dbbf312d39a7dff669a4ffd89074d370751f693d803cd2303cef020508c44662a83531c73eca28d8aa46a637bd0670b5e7265636ae4a02f97db446d1bad273fce1084076876afce40795ca5933c8ce43af5d618a6c41e73c9d5e0df15e92a84029cdff6a168d7cd590e97182033c48fb54205a598fa28b4a6d0205099bd7521fd36eb201cee1c684c2c3ad7a7add76db59c67f6f8bcfa11b9f7b6fe8e25d696b91726fea10552cd6dcbe91f34eaa7a96c55760ec503b7176e23feb4b82ebcab7e4165028ba610896552f7d86aa62710bcecfe22cc57dbd8e3e7175be8c1d4a2444b2b4a5b8ec4dcf3a9c60a02fc2488d81dc171aef65b80c0be42679618264c95e463308127ddafdb020793716be3ede58ed2073ae98d25a4bcda0f138b5c6e60e37cb1f650dc71b351a88b50bfe73ec1cd9c738f252bdc9b54ea1cb5110ada54ed9bb9d32ef90000000000079a11000000000040436f73faa7ea753d6a197a5b05fb03071ead243b1e9c9240d56af7a6be2c9e17516969201cba173bf057618436fae03e5d67f7b857bf4019c69a16e4f39d4a290100207b56415aab24eda46eb300596561de404d8a824c0c96c4443085c99215d6973e0000052cca6b0a688d0364e77cfc2086dd67022b7b76f91e773af653d55016ca848962a455bb837b45974ee91ccfe56e261b2ae611d4309b0f3624e8805efee7b99f1247fe0785a7d3345ce123900bfae52412ff74da7760c7b2c770eb8eb2403f38ff06c184abb4324dd621f59f78db4d07f6a3f83ae8dc0785f76931628beb639e2710e243104afa364f9366f39678926e7894f1923341e7e1d6362102b366efa17bfeeee60a6e104013ce417fb2e2cef9cba17babec863e663ab406510058dab36494e7dce1d1c0c99ac22cd0aff0be9d4fc42baa42debcb0c038e8730ba798245f1bf826650accc8283568cf5bf5af6aaf74ebb7aa533f91295e0cae16f5f12d5136ffbc88ed088f13c94eb91b62358b5832c1432b55761012001bce913ca74e03d8a6ddd520b6f957922d437b40a6c969f8c07d0012e1e91baccab776f3a101b68e06da6252c0180bdfacc263eed4f63c1282066ab28accf85c6c47331ba69cf6a16a2532e10cdb63f81b4f4f8f082bdc98cefc57a78048be18efff1c69401905962d3bc85e4e6e0f1c16d61f189f184e01f30932b1ef6f6922ee1f126d8c2bb7913297b3dab9e192ba57d337aad399cae13865af8a76589049c0a6156922b40bae9bc70e7b29fb76997be55f6e63b01ce1b3f2812507536649de29d2ee5efada1adc1eebdbbc5b4fa7e193a70fb8152ab357e40a0581f090558f7e5f683d84752e7606487102c0c18027f7ef1a62b22f9e72390f9cde439c54ce626b700e3236c69f704ddc2ee3a605af2f25debbb093e50165daa37af3d830514ab49340e85fc1e8fead65460bf55c47ddd180df3f66527e4f9f62f48b0f830b5c12d3a843f61b041a00ec3790202e342758b808abfca9afe4bdb290bdee078b7a2330ab76501a9ac2057e6cb75f3aa1db6d204b279f5b23149017fbd21a78ad8f5ae37e0b7839153fb70017f7b9457b6aab89d1aee31552e8338757692103001e1475292ae2ed8ffddae4a86282a2c0f877cb6d7fe5397bd98806c0c164ecd6329a9b01375570269cb5cf5ae061c01c61d34471a478d942f6ca9c228879763fa09910333c341f3cf9dac5cc00d1dc0a9ab6408990c10f6f9439dd5020c6900c13a3c3ad08bbdd2aac2686f6961e036bae94fbad09f3d48b53e322bb2e99f205c530a57be545a3a836692e6f2af6ec7616fd5f00e6c78cd196e30e01bcd76ae9812f680959c8ea2b3490144933936bcb80424a666919dbb67feeb3edbbc7c36d14f39a6a5b57d39573d7f662cefd59e9e0fae41619842d92eff9932534504eda0a731005da809dd0f6ccc1f06b2725b1639ab2dae39faecf2bdd590650be8ebb9dc61018710ea8fa060917e084f25404bc0f22d84c39d79fcbf43156a300ae53cc235c1d6ec5d8cb9924902527d75965aeeb1a09991f96d3314c8d4dc15ca7e48fddfc4374a7ca83addede1d60fe4477854de89522c1e4901c2646057f627cd5d0c70036fda3d55e2cc7a79aabe9b9e722866ef8a1eaadc2ccdd9100cf076c8271247d51707bd54fcb04b433b6ec486cdb4713dbaac64760f3388f171c9748cce1a76fbc53b8b146b79856468ea5cfca813059056e714c528e6493d5d38accff953b9ddfa204a99a30386ca53285d46dbe4e83c912a3789ce769d50c0fa9222eed55a00fd17e4e65dd917bbe79215ae3be3edccad71a68c8d29568535fcec779330949d183d6cafbe60229c86622b6bd5337a01a6fef669a41bcb8e421dfeddcdab4145b13553d632fe989e4a05aec665ff66920a92a11ad11788677034159bd076a634f95fbb050bfcb9425437167a907bc91762b585c855057def816263db845df19250a3e6eb195eb762399ae1d8ea70e94020020be41399b492f26811308ac20b39ebc9d7f22489c0b37eda1f06139f6235a184c000001bcdad30bc7be2d27ec9542ee2a1ae52d93ed34f02aa3e545c92127a3463590cedadd4e5154a7a9a1f024837fe5a41562303c44929ee39af86c9a5cd09982cf7ad24dd96ae0775a3ffd1ff63a78ce3df5af1254a9242792bafcfd1fba6e0ab90bfd416f9e850c0c7ae246f508437d399400fec6da90e38676763406af3c54ec2040b7059277cbb559f93082be56b778c6d9c29233be0229cf1c5f47158487801562dfef389298a812946a7d52309aa38504aff5a4d424af38132cec753450274b3b305f62a816562a3b739db60c4ce239f3abccd90c20d4d6765850250deb3249fd78b945e8e798308ae1314e5ac53c4f8d2868f34728ecddd4f06a45fec99c9975e33cfdb9ed9f965b4cdc5fab74cc09190ff53d918598d29e7b6e637ff1f80eb9e3017744b0404bbbfc8b0145174a02fc889bb153486a192f924aa6187a710b9111cf324205b1d53d167099d7d3e9408de199f38dee62c547c4a9a4d1516c9d1a06f4e54b5d8538fb85cd1b92599023e1c0600fdc5b16530fe1e36926bd12454f96616e2274d62017454c227f53d54847aa4b3121433ff8690f719ef134664e77a37ad57e3526391824c19fc3377fe924d8d72806e15cb44b097a15f7e04165ab3dfb9c521f9b579af5f90c2d0000000000079a11000000000040607aedb9541de6403764fba41cab5f5a179bd76da20d7048b368d834290dd749aaa37221cabec0a032f2322f54095d96c952baa43855aba51c3b5457f1b5a21f010020351012aac48827ca0b1e1a7a18d4732077b49071f115a31e8a7222093e94011e0000052c4078a211a9bbf245559323ed95c416d7213a02c1b1d04ac6039a83bc77645dfa897a167a6512a73d67f0177d7715de282071a0dc825442107b0568080ebe6b88f7e7c52a2ccb067e60b61d29d5ce55916d14b87f92f10a19ecab99a31dffaa6c685eaa7ff4d2543acfc96f8b2abb992c6d77b6b7cf739d328074ce25ad49749c92ada7b070b6f7bb9083916faced9206c9f2e0c59beffeccdcada23fc57f539dba3da70b58b0b21dc80b75bab7b60f9e464b31702d124c59624f821cd7005fac1fe6f8383f13225d90f6d5447d6564c865a43f7d0ac1de1888da8e331950fb4eac42fa78db8b819b9d835e7d86fab77b73f9ce1b49cc2f0576d3121b3747e7e2bfea8c8d3275f41994ca6ae3db04bc31cb7a31bdb34be957f45c96d8685a59d70caaa5f607a61d79499de27aa0a2197c775051fb64ce742af974982cf42a3d02ba6e5c07e2ce3f185fd4eba272415ee35afb526eaf3f6c4a5a42c5e4df7a3487c5901124a062a352420e3160c7b5bae4eea5922089667f49a0b5380c12d6c437580f9543ad8f882700e8952b77d14d539f87b8367ecefd2629913ba272b34ebe18f45fd99ff6c5bb7a78d41b1af6dfd3328faadd7d108d554f50fc8929321d3d58f64b5b4c0a585065c4ddd09562085d8e9bcef45ac00aa436193b75d91259d408ded1c0b8dc7dfb3adbf99c1e419c5dfecb4a153e854edb1f6b09904cce9ce9c9ad3d36404c0c05b8dfae118769dc970ccab2936ca834ab60472268665241c50a6855771f5b23f62de3c1f743a8a04d5c428523b4ea696e22fa02ac6f8a8d216d39e5e4b9caf63c9eed12b25557c6ae30abcd350c70a4695645784397ea4c63bff86559c811e859ff3e3331d58a3e73227f7be9c7c25be3ff5c76a69e13c85bee16d258ce7a6d275a2e6ce0271ca43f8818356f9aafd1b5dec66c3da4727c0378f9abc63cbbf5d7815658a7c020ed5f66ffd629640995627aed70d3a14ce2ce30d8d994c9ada6f26dc267173160aa950fc946c3b87748c3ee7ee7a310e0be737a6212c1ae3d1e097b3bb780c9d868b8f44af5e987b445e763caf999ec4303ef6b301d98b6a28f65e207fadc7bb557178a66241de1e63e0503da99b520882c5a0af03b7b9bfc44af44ca1742531412eadf62f62a3bea9abf2e333d6d5dad3ed53685ce2bd8d8050dcfd75e14b34c5397f1d836f4d3a1b8b2b7f34d22a83240686f99f3fff904d22b752d974c88322ff1647c677bf2e6329bbce7824fca939779abb9b63c7d9b51fb1d6b3175700abb2071128e5babefd00e31958ac134964904bb5aff16fd27521a0d2a95328ed56cc9751eacc97d47d805ea9b6b0085484c00a2979eee5c0393d0a3e1da7d2daa16e6c2783a175c6687b9b537f1c3a0497edb2c50cd2186b4dc6b6089b5b076d03f3d2a44d185b2ca4375416daa106a867c696e9ef7ed2c41e40bb89e7172ec48806977616ddb055246ae64079f90935831ca59742c2013171f3bc5a8656e264d14886103e2c37b65e6353c9f8d734179d4598553404a811fd37f08f39458be0196ed252f8bbc660444c844dd7fd41a076001abbaf369e146efe0964bba885c1699ca4d77f41297270d7a269dd17aaf67154e076e22ed70b92923cb5924d1be01b862ca013e3c2925910581b964f26f0b386871e3fde81e6d93db094dc0468435cf08027796ce3198cfab44214332596338dd4ff77d02c61265a66287c4afd9704685c4de33bcb345fea7d1956589a04beea0a86b781da35642077a6babf2b5fbcdb749753ad3224edc17e9591a884bcc29202eb853ace9fc6fc52658f0013a843536763ba798b5fb88d50dd696e56947b11226d6227e59e2a6411bcccd05020020ba2fc2c6c6479fc61b2df6e049edfc1bac11b73c942236b86a34c085f4b60d0e000001bc9fbdbeb31005e11f64b9340fcb94af29b026e9cc8444c76a8c8a1df10b493886ce7e7582522faf0ecc9447c766ff76cf5f2f3eb6ca315ce7fdff44b74a16cad91479dc66915c6e732412c07563a0c01a65dedac976bc4007d690a442db771cabdb286cf047f63a974c6f978c805c4c1076de51ee2bcbed21a5316b44e6783d750d080a5d56465b690cd498de5ac49beb3576daa6a2b6e08eb5f18633a3760f764dde625954a6f0454b3e0706a34e0f92cb497eb3829d7683c41d4a2dd8768a4bdfd646bf59af280682e80b4a451a4ed63c889f44b4020ab012f1d57435746e0ffd3d9f210370cf6822761e6e773ba0a620710ef4aa61f1a12184ff7905b4f78074ae9fab55893facab1e655c989f663d6d03f20ea17913a5b5e6322408622c46633bac7c41669073676711a87ec79492ec0d2639c99c9c2a524fee3ac322ac5cd0bda65de6d095f9c72f43b54e3df652f86c881e6eaa3ad095ea47081747b4542990cfef2971f201b09f050482d80263bee4349e21c4982e40da17f1ca9389a4d526e29e59fe15581d2e62949069e4c9a6d56841891d099cd62c4445822bc3de3980b79164642e41268521dd922e7837cc71a6a2d540b52f233892a9f48dcaf73ddb58091658bd37f941ad640000000000079a1100000000004047fdb0b6635b4c81cdd25d0bfd64c18fbac81a7c0ed63e8f18a2707e570ff2967f5a907d47ea6df50afadc9103fed9643f79393b0015cdd4c46e0770a34abbe60100201537f31b2e400f8ca8123b2f18fe056d9e233bb3ea5299ffd5d072d73cc5527a0000052c3cca7a383f608c1a7cb7788b7c56273e68629701e7a55eade2f68f8efe2197a967e5573e1fdfc2745d008ec56612b9380bf24f7305b7cf1bc21717eedfca9f185e67a98ce595c259250ed05178360af2447d89c50ffbbb33f105f534d1f176effbe7ac4f8e5ed18eeb749e1c8baed96f694f630cfe28fdf593b24867d2f4e8775e4cba8117c85a187b353c11d9618c359718c503375a6c311174daa764a0b38cb8bbdd931580c83b30fb628fe43468d40d3ecc2876207314efd39bbb3f83e5b16d3ef71bfd0977d2d6b86fb985646731ba89bcd91bcc196c36e55ad914edd2e1054c642c4bf694b9bf74ef8a3f4ee94d2e26161d1ff7a5294b944916b40f615fcf6975a353579b47b862a51e88d7ec57b96de1e0f2fd0261d1c1bb216436f876fda7d709b651e0530259663bdafb77adc6069e33e03235d9ebdc654cf5f64ab7f470db9abeb0981e1c6c13a87dd582ccfa7465c0b72e755fabbbcf8ab8387692eb16494622ba2e3f48b1f39035fc78f8796e8b78ebdbb0252ea779d6b709a22a44490a9ba7ad1b42a8de0d6bef8d49f4816f18a2455c4998e8722e861afef9706afd0042c91a110fc0e20b865612f925298eb4b6326e81b1c2386e703a640f593e1c558ea5a9fdfd7488dac7af131aa5cbab94152150901d45928c2df449afdbdbbc102306153436a90de6f52b8e8c27c853cbffcc479a000720b9aa0e27a0eeb72437275a224e74b5e94ccecf32dd4f76eb0c3785b87955d0be4e0ab8b9c5402b5727bdd45ed44a0e53c4cdfd0bab3e4c35e0eaf24e322eef70bf684a0ac7741b09e264c11aabc765b5524bc7f10038ba970a24a9f7c313a8d328308264b709859e8319121eafb361163abd7668d442bcc17f91f00700aefd705fdccc19048fb0a831766e4d9bd0981e205ee27db2a2d0990196c4d79cbfb80ad323c0fd23c157694a0f306ecb78e0815ef16ce6f56dde36a37d1df0efa70a485e9bd26689c31ff2698fd05a7b0094e66861311f668e4255b705d569da88f42287a15ae7a1d6285fe103f294ee3010bffd59355d8b3fbc3cb1f6eb9d5d25a1ba862f3da66bf5bb8b9f54752cfb3cdef9684054e99ec87c5697e31228a881eb118ca22ed529ffe36f2bb28b2d1918424c0c5ab50376dd47c7e740ee6869c2e16c94b42549dbd9c2051be6c033358c0287f715aac1b02853162f1e14f51cb2ddf45c31e87968293cdad2708504c99a1fa87218c2aaaa2cb90bb7bd417621c4af739ff3f86b858ab98bcdf0f773107d62e00b687582699834b6a853ed42e982c6b9a4db1e7bc81b8074f09cec6bde700fd53edc3d91b1fb74a0ab7fda3135618d75a100aca2164e8047800e09d78b00b6a40c26c5dd05953b48bb452ccb478028f92384fb88f752ff4bea5a01c1f4eb6c5a766af1c4e0b0fc7a71620feb59a16e3c9638c145f12fb20a0e13a54bdd3dbdb1ff271cd4e8640de7a265d4e173278354275248cf9707b67d71935f96fbeee3ccf47739df24e9ccfa367888e73ad7a6677dcc4b881854c204c79a7f1be8ee3b5a1d43fe789f95e9098169f4a4f3e608b69ebad0e6362df61df15f7dcf00deb315ec8d434450362660733acf28e36476e7c8eb4f4b36df440403daa79bc6190dae8b9122f478ee90e5fd4349860cbcee4dc1b21b97dad46bf8e77fada71b9650033cdf8ca8c69d820411a820036570079ba12a1a8c307b82ca9552ad87338f924f13982517207e4a0c1e2c64635be2cd1e33a89dd85837c6a5d85d9d9579c2023a2166287aadfe3f4be226f9eb190654deb60dccb2e61004ec7ebcf26c05d733ea463e4343e012bf08895648609ed27cc2639666329c299c825e82798dd4f71d1d59ac0200206143a0d4eb6b47f7ae0dd1bcb0fb4aad54c576b2b5aa26a287208150d004fb22000001bcd4c6e1414de8595837af94e889052876a129f81fd8ef29f5ee7a2bf75527df454c61fc837f413e10e08216f39a997d73a8d0b0598a4c4c253ad72445e2349659628d08be52da578fa726629fc79467c345c65a882d5d4db0db9ef985364b9fb76bb9f3b2e233edb1a6483d736c2613f7ec0418e3f0f92cc90985646467c865bc664408623b4a09264c981502c5a86dee94d84f538072d5ef6b1ba6986698fef7bd314b8761e4ce0cc10ec6929fdf6658701259375eae282a41fa0d0c8c9b6e243f5543e1cb0a3191af375392f9d259091b963b4795ada8c5ac6b1434144e1d79db3d4c7090ca2babf4b08c0a3255ffbfd0d4ffeaaf41d0b98b131ab19057ea503a597937800d23ef8680a4ca87f3b129fcd061d49cc351e686b59c7c46da6411619c46e63d79995efb4810bb15294759bb19603c68d5d06ec58bce961b5aa3f9e056a13f1df586aac0c5ca5b68d38038c9b46c0c1b01fa1ccd6f383b43c99fa52044ae7bfe9adc8259506e53832c3cdbcea2aaa6922a1b1ab403082fdcdf385587cfdfdec3e64eaaf2a2fbbda2984d51253852a714a4235b957552a6996298d7c6715a0605a10f9b1dc7d20b642d1726f2047b5cf46605d57d8941c4fb1d846a5a82d98e127655f9833a9e580000000000079a110000000000401c446f4a7af49cd9aab724ca3d0ff48a94fb243380021a4b7edfa6cb75f2f936eff61542e3e93540936c918f78e74cd32e92ec83d718574794ce2c7fe359dafd010020e6701194986d7a9b914c7731113bcbf81cdc645fa49b57d196131a069a148f7b0000052c8b6bae80df1392394703f24ca14b7b12746fa52f9e25cdd42a155e1adbb123eaeffebc9e79ed268a8b96689c3a223b27a0b93f746b2c1dd9bee3cf972cbde95d567c116384ead95d6b5e8c68b3608d33c58a66ba9af92eb178eb9db83042d20e93064c79808b1052dc8b71a35193da45a99b0c5e637cbc588fe7074e29de8a78a1cc7dc0c99c577590cb0efe6e3763045ebf8628988d37bd2f0b89d75e074e0fa598ca53081296c873b4bd37a21387a94748955c5a29a3129c0f2340bcb45d9bdbdb921a3bdf329032d7be8b429229371bf231f6a261601b196280134883bf272da0be311a08a29affe4e6dd176aa2da71d7aa67e1a1576064c3ca1a41a59968cf8a080e827f2f4a98d8794e1baa99d010297c875cf3b6d8671534df8812d674c6d802209d779cffffb3f3ac9a00d2d4516bbd90f9a34a47c9a0cab2c3d5956c452851eea2b2e3056aa7fb27fdeb77fee550c4cc652e0b3cbe979cd5d1147224aa22a341db029181003e64d288509f1d34b3a1a411c6dc601fd7013239216e8c7f801927b627af422e94e3337b34a3f3cada6e921caa9661bb08af90e87cb1f6a4001584eb73709c32d2808930a2e3fd721351fc68a95ba050e29ba03b8c6e91587ff83754456ba8b011e267494b54b32cec359481dbe070041bcc7fe85f0c9d411543ddf444fc12a9e26822fd36062363d090dfec0c26cee49da915cee8493fd72a652b3ac0242886ba8b9a4c3b663c3c1f01d098c1d7e579fb52786840a316c7a29853028dd2236274f45465c6b6293601a8ad7877691e45078cef896b679e4931b2161ab541d685c3ce7a0b62c2ee466b6da6788b7db4454a0fc872ee2c311c2467c45e35d1ebffedc8cab0a2864c5395a8eb362859fe0951c7c97905c502ffef7277a6bb6f2684ca4e5e83bdbd029e30a9c856059da8327b08d084a919e5e320eae6cfc6085bd5e06782ae55fcddeb62818453c566ee9d761e0f35179aa621b00aed80ce45525159341e349bb81267a5d10c59b0dd08428887d5961180496849125fbb4bd909f63f914bddae3c87c6c0eb5054d8bc3fafeddf923b2a51c049b1fe194bb6f7c182db6a111aa439b66ee0c9e500165d484285e9160bead7a837e021949a0297522798e195eaf741f83d6823de52dcdf0b3eed577a16d0d6f7344845bf1ed3d6a59c8cfe5cf4e1c2b9c5cdeb3c4d6b7274e4ab0efcc3be2a55e92196ae8371e5a45bf3c213dd115d284edb37e35e1047d66998f7a321fb382977903f1783b447e66ba6ae539862dbfd4dcf17fc69940aa040caa408a70318f8a9d2eb07b6dd19483089d513d43c2692f61e9b441228830d02d38a8098eff5c8b6ba060da177b47eeff5b4e2a1d2a275afdc50974cf44a64f3f489b0122ac2826a9a876319403a8fd7385a631248c6f2f56533837df7988ba6ec449f6aef53ca7c7f8d704c084c811c93d59ca1369fc14fa0eec331881ea386fe57edfd92cde596cdb587eca42dbe03e5d3ee69eff43ee2caf208f402538895f2683b0b57c85107f60c22a8c89d85b60f63881d4b758f68cb3b9ba623b624ebeca03625b474c72b55d2c249e3e1c4298244ecfa3281d0a784b9bba1c7bb3f8215fdc5830154b844f5070ac50faccf2e5655f46bb62bc9af4bc6a9b7b28eb15ce0a82967871bbdf379ee9402b6f4e3263644be02b74ff1c097f9ab66b91d22ad5d0a9862033064b883a892f58e1f77fb96da11746adc9f631abd64fe5c987caac96883494e2f1cd4afaea5e137a6a9f36f2c960a3c0705e90369365bea6541059f59efff093a4dc601b293e2c5513ad5e57fe9ffa3e69d4f789d061990836b985e95cd56631198250d74185cae129c265107bb020020391acef6079a8c0ce3fa1052d4bf923964b1fdb27a021f512cc5d4255da7b048000001bc5247e7d5f47a27a6f476e8d16da649745d50d31bfcac5b537db5e2c20ba5d6475638c6a1b2fafcdd21e483ca63d1c2d53da56c4e8ab4ffec66730e15c012b92a5c441b050604ee02565028fed8c76d73e8b8d4ccbccbb86c8dfe0ea9e4b17abf95c110bb93799eff110732fb0555d2b75ea44a1b10e6521f1d394a6d0231259d3af235111f8de073b706d195a8150d27b6997f1f75e11c8949f23164249bad6c18b503e1f72060aecf374cfe0e41b3aa26979e2e3ae9c817c15bc40368ccff7144cffb0cc7fc30a42de05e5b67e790702a00ef3576331487b8d791847bd010c9eea522d32192ab55971ad5aaff3a8e02ea8de698f6a06b27d9b8fa1b2517af492c6df768a62115426ce6e54bebd4b2cbbf963e5348871efa820be0e297d14bf8c5942f899023c45282c8fa11837c87a8e7a68c92fe58c7f6f9985ea00932ce95c1101179e77efbe5bff2ddfb18fbfaa7189c6662cb81a98f509daec26e34f25cdc8fec194270cc6654488d8f5d3bf6f3f6a17479c7e369c9eff25b581fbd37cf1cb22c47895d205bf2efe72177f522b22345c36e5304028a35dd896731bfbfd332b9f68aaa544a8500e319fc3fada34ad9d7138cb3e489f1a75e0faafd9d683db6b837482ef5280a47c740090000000000079a1100000000004036098df74d316899430072716cde261d995e78d986b39689b39e765a5b0ff64ce8e56034bd7bbaf7667595b3f770365c98d8e94ba0488a3d9db9374db747c70301002017af03f1e7759abe885ae88d67c2dc373d27385b2c06263d544c6a844880933b0000052c431f691fbc97528303416421d28a8e41d3febe0922dbcbc2eac1d06d212df609c9282ceea1a9a02be5e63d8fdbfa3bed77e5c33e768327aa03a48d3b52af4f9f6a895b3695995f1b4ffbab76741e4f852f5b38fbe2c484eac8719a2e0436c950131ba427b193f9c4f7439c8ccfa675714ab7a8eba0697946fd29917879c473d015ac0c5e3e2e06e9b6ea38e5de1121713e243f50abbe0eaa0f163cb6f567d27058444bf0b90aa6b010a06a1171356c0c7c878ea3cada6fdd1cd943c0bd255628e5d591501c6741fa40ae7293c92e3c543d9c897e8ad7967bb88b477e489df29d66e0a08dc0130c0835d59260f664b4771428bbb48a9a0b364d33747a7cb09a6218b4c4ddea33d814692ebfbe47991fc0308dae39a029013a9420ad3bccc95c623fa26667081d3e9cd134b9c0c4cfe793132214f6decabdb8bde7272159382ec9d16cb31bc99c18dcb31c6dc8e5244a8bf5e88d2002cbf3a5874557ebeabeb88e944575a4c9613310035ac18ab61c45f79e440956aef6bdf972af893f0a1e3ce471d2ad3aa39e4dd105349584a2656aa5ada8ca279014a106534752bb9ac97dbcf848b3f9e23798121e213b3ff1739140fe75a995a154edca11e1f9a8653afccc29e78d14e3e0cdbdfb553425d551edc5f003ae1f8524c3284d2cd06ae4e7cc79f6aa869a566a6a60f411d843fcd5dc8c479fa575f94b0613f1c5901b921ba6784da704f2d314ec4187c19e3665ee4d4595b53cab2e9c26085407fcebe6282c0c1249df1c8f321cd58ca667c4beea0b41f5cd1bf85d066b64e4d50964075f0076763de72885e6fc217cad6ca3efe88f0d7b7fe40a21848e8b8787e46918e0a71c6119ec7d1d9b08bfe1f1ba9b911130bbfbe4019694df03185c7ba0a4af08fd66cfbbd64456edf93450cb94263f92512f42b5db537f3fe10fc6a06e7e816dc319afed35a01ca0db21320c67b42842433be47b9eb30bf5ccb0721040298431a63682a9e5833cfb4e6a3cbdcd8d3335e01c74c3c0bbd1acd1c3b3a1d630fe4b30af6b63cdf928012d06bad4cca19083866ad1398fc0f3b7186610fa76487bb1973829fd2faf53a3085e460656285f00bedba422e1ffa55a46fe37940fc35a1bbb060ed39f8b32bf72e61a017816fca459676f017626718c0f8dc0736d16aba6e83c754e0ae3148d0af49ada37c1c7d30bfbe9e83e8a38e0dc687d3c1413bc4aaf44c14a59ec75c49dd0872d299d4dc066a98f7d907ae4d2ccd9c93196898082330a484fcd87332d471bfd65c60dc7ae600c9f3148238ff1bc4913238758d80c930273175356f023fd86bfd959065ba8893d205a716e8d141f13ae96f567a5731612016c1007aba6d91a4ebabec1641e8f4fc4da97e38cab9997aa949395ba711c7c9908eb21d23779f2ca4aeadb2af159e7b123f118a01955591198732ceccbcf1c6bf9a550ad9b9cd1ab1e749ae35dd1d297c21fbbc64cc82d4a045ea5bbfa42a99441ed097f309783836ca5893d8ded5007828f622161876524b6074abd1fa3eb41aa7b2192f788c76071a0e5c1840e8abf3d7de6d51947fd79d72fe101728817784118c43039e0c97053f6f0dddfd194a874fe5013f6ddf9704e9a64c56316e1ed0d830f2b527935005a9b99f91262e34220ed7071b327fa19dc9d3cd354cc9088d912af2ccda3ace394d19f24569eea5d273cd5c3754c53e659c4086aa266612bcec4102a1c4242e4655aa4d001977f9d0e29d8e1c51bc61136cb9ac55ea19ae9edd091ff2d3e28950bf714f0df3b9246926e45c9ac0a5de9f32aeeda8c14f28f1eeebbf8d73a13de3e010f3c335fef659bd774a69b92670b47ba569339298c6be8ad3f6b23b9766ab35afa02002086c9034ed1122c4249e00d59dbc3a24fff0e4ca217cfd83e75c0e12ed40ccd31000001bc0699ccc64cc86f9e03b3ba41e32ba98205a70072e3dc90704d722ec87883badfe6078fe081345f51dc486038552abd538fddd1c14c016dd8f4a1a301ebb9ee232bca18bb2f6706ada83d3b9e493029a2b0ff3b72d6b74a92290b1420041a4c55754ebcb13be131c40889ba19f332c81be136537a0ab56f911f1ea1687f80e5dfb33299d41a3f8797bddf91d251c58f942f53e856ce75262763b3726cb6104af6c398366f586e52534010ffffbff16a37c2635bfc162d32d9a28f85ce90ce9edbc391f35d503d3cfdb0e9ba59ac0cb2b303f98a93b4feffc2995eafea99d8bb7e6f4bf6c2d3cfb6becb9d7c88300a203c86f5133ea5642ada7959c946660dbb6c1ea2600a6eea7690382b7a6ec5cc36840f005ae746de9e2d844bfd761851bdffa3ae88202684422d2e044bb1e499b6de6bacfe6157c239d1c0f7ec55d0fcac7c6aebf6f7f3aaada148a5705db6fe12059bd85a9b3b1ca4901bd56078873886bd6cdd39baf37ef74b130ee1620f792c9d1c36d7249368dbf3dd72fc35e36a57ca4cd4e16e84192a9d773c1cf4e3b9ca4892f0233bb6be8b692698376ad8c5d02a998af06fb59b2b299cea68492b6de8c4c63b83a0ab221e6664fbcb1cffeab86a552eca45633c8c36834c5fa40000000000079a11000000000040cae7511037cac89085f731e795835d15f42d5ab1bd281fc233770d6360ea23f62a4796c27dfcf0947ade09910bc0fa90d9b6e2f84d2b5118516f8c0b97d5d01f010020d95cdb416147f5c6fdae8d173ab24dd2985097dff353a860ff113c7af3bce6540000052c59a0ba54445b439a1309f7f2ab1dd847c0c839cc6ca4b5df033974418793b35891ed00bd7591621233fb54b012552c8c06a40e3bb38e3872908086cb5b9c94c91e905236774e83d35494e89de9d46ecaa1bba1dbbf45e009a141468c284662e4286b4e97323e59ec8b383552cf10d3e85d7cb03cc6cc66e7be3adbafd7516d3452fb43ddbfd5a2d31abd2b0fe22016cb3f69315f71bd6cf5859dd15f8d58c1b57412226af869a4c4d4551bb4392033044130e0d68833d6e86e551ab180cd9103e699654a9b34fab472f74bf667c7bca0346177a7e096247762b2e8af95106627a7647b721d48bf1116a48097643c7f077cb35062a456439fc7b76146a4194b980a18f6527ab0b9358107d6db3c6f0314a7499c654b6ec44aa27a8f036452937179bfd92cab2bd669ac18e1bb8cdbc31f8005a6a4964be0f3253844a42e8642ae0f1232e2fc33f3b0d0d5ece9239bf6a150aae4b165600663766e86b860b2231b6afe013ae0f110b8e6fc07791e31ed5fd1d29deb38bb8c3db176a2cf8012292f6aca8560e8d7debd6d6562bdc48d2a6e50bad1214d60c34503bcf654292643f0c25c4f1577332303d29da4eb07f2fdfd39258dea9b7d2127d2d56d7c1cf7f7efcc67fb548ddb34eb29c3bc296e6ada963dbf3e57de58b35eb237c9e3913582aa94a09c9e2b19b13249fa41a6861a7d7b05838ddc0918770cdf06ba6fb51d49555a694b6a8cda8fb34b4640af6a0e0fd45f0e2687a54e3e9cd223dfd14961feedc2df8d7deba78e0f5d14edd78fab8d8afebc8f8a3e6f8f9bd0e4d298044c4557214fc82879a9ca5a6c018f7653b25c6257458e33149c3b48d03832eefc1772976378d6d726199d19671e765789322764d090df3c4ba6b1e418e8e4f51e1eead77d678cbe3db1b9cc05f0eb643ddee6c4b3ae9137070db05c426f73086ae2fab54c4a4c4cede871e948a2b27a469f5558bd335a06b235a54343602dda4aa6b80c63ba3f88cd411b7058754370160fb8768988a51d08c0776b88f57ce2aca5ec600e08b8bf68c730aadfe69efb42186c7d3abc7f2b45b04ed38762790bd0c5aefbfd00f4541de63273e01863a35681cb7f739159b7361e4f48cfe95dcdfa39a55603f75572f056d2147488bca84a1299d44c9146c196e586b2027626c8cc3ea5bf81a59c4d29d5b918b289343c7d7eca13ef0e6655a292be9de2f2fab88185ed6f8bbf6c4df2d37c708119dc80490ba6b5c309245b09569be86661b1f555c8a2bc342a70726e89cf915ee36bc7df3ead83864522214d456492c9eeb234bc7254ddda00ca8b53bff600cac49110aad846874483ea5f3051eb13024fa3db54ac7c117df37558cb1b0fed65dcbee44402a58624054b57783a8699fabc5f66e6bc81c8e9978052838cdd028a788d0ae315d5f47c163d0395ca558e7f15d899305526d81232d722f67d20d1ea85adf7a27996f56a4d890d761c529f8007ef1fb47bdb4e77a1996d59f559ec05ea0d7cdd52e747a37bc4ac104430c6d8bd7a7c359925968058b19db8e5a3d929f0bea901ae8b1beb94198b1036f674695d30a17b64df6ccc3151871315a31397efdc0cb48aa4d207bbe0c9cb93c751e5cd652768c2ecd58dc8e13f20e6d27455d6df5d378389cf18fec79df3473ceae049d39cc104d6f7819d38c235d33daea4f4dac4558b2da372992f98cb53d0138c45c0272ea829200a1c4c1ec1fc74ad8752ca6d3157ff92a45eec5f51717f13bbb4c896e19731a1a72780fc6a8936ef8fb0caa998c94d43fa6500b7cdb5cdbe4e6b0edee9123fd0c2695f5b70cbbd34764c7adf5bf6aac46eca653479e11e66b851bd27f978691b9f92dbaed1f9edd5ac7dbc6f0200209c77ebdaea95858e14bf157e4be5630ad8189413d253923340f02541c543bf01000001bc5edbc57344427d65dca806461fe882b45b8cef9fe203a2abf5f79ea4ae2217e9da35aff196f0454258ff0826312947beb005c7df373d70787106d988264b7a7dab06285dda1d226b788f0254b3b347a9bbb961062fdf8ef876220a20082e55b04442b6ead8f9475659911f1127bbbd47f4d2929d76f27bff4a363a03ef47d313d5ac9c40b7f189d8c81a7d56869c4ccee5c88bb0ae9f463fdfd0745ea81b610b93a8fe41331da1b1b7eb4ecb54c5985e2f13f1a9a1d7387f5ef57be65eef644ee44654489e9b1b8caf4b7396dbfb129849bfce26c2f4fa9ffe658262ff2cafbcfc64073cbded158544ed771a09ffc115c503b3cd7fb18ed7c8bb3322b24970aca7f04f9062772be54c52a359a4b5254953e6b3d122e7a4dea45ebecc0582db3bca0348bc5573c686d25e34a54e0b0e66dbb36eb5820aa62b1b0903014b3b5b5ce1a4d66f39295344b5a8616e6ae6bd8f076c699b12ac154d559971d44e9b647b9b4400470195db35e3b501491d222089c1d3f0804b4cc7b0f7e0855060d4d33b931850be666c348c5501b500f565180d38365206c425c049922e91b771074142650cd748e95155ab4f1eb55b9baf3511cb35acdc0c78b52997a66258", + "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b500009790018ce3d4c29c59501069455f10144e600000000000079a120000000000408443bbd91d4c9eddf7176be0034925aa49219f0b4eb486254265facccfbe03f0a97a7b3c3fbdebb692a95e4f49bd1abc3f97789b3b947252f74d4f1059abf1e90100208aa24504653e6195a4691d7600b06ed0c307b4ee3e39aaabecf8a549e85f81450000052c6dcf38fcc3f6df7826800990e0124fdd4746038fd24e9478627378b024e5314b2a06db0e6dfcdd026228c54c25464f8edbea369bc166e561f76c4dcffe21cfe1ebf84321b38cdf525a30edb02ad50d631f459881fa3109b25faaec0943af97e5b19257138c996b9ee3e63d2f8914e4857080a7afc77854a46e396d79cec6b933a53c0543d4cf5862c512ac2a06f2eeaea4ed96bcb0052bda1859d41117afb8b1ee69b742a244cf6c49a1058811372e498e2cfc1294d6b561fc82f712b1ae2f4c2471a11c884b80339ff5bd7d8a7ec0bccad049436e3bd2f2792c8b65cf85f5c5dbada33bd7c3c4517c34d76a41477f3306fe4fe33f65f91b11ca0a7681ecf74f4eea9012a5aca51b4ddfb7de22b9f349ab889d739663bda56a2e73ff3ae4881023d1d1290bb297610954d5c393eee015a9f36047e0a023f9ac7dfe6d59f41bfc864b5c949c6a55c25aba96fa701ab349098b56dd43f6a950b8028f11e5c6b385d8f100c5cb511c0f67fdcff88a7d28663b738cd45a462fd385ab3ff662bb412eab92af5980d8524d2b8c5ad90a931d9e1b241202d437d750e66b03983cb6de3e0e9d394198cdce23a0848cb07ba7c39b314731322d3601e347b4d79563f6c92bacbf20d9ce6045bdbf2948a499de7f8e5a372dd81f7984183d211ba5cd68cef0128348063515b7a9b612c3abafd68ba0ccec8f713c2228316df9a3e78f9df4d34cfe8becd1b73dadd1a17ea8dac59a10b10ff1e6f88b57da49523d08a729ab82d9969dd0095a25e0f721561c91435d75375cecb7a1015ee7b4f574858549a3f1a9d13959974b9efa318d019285b290ed27dc681bbeffb2cf226d67e00e149d2b223825dd9b61295c436a18c4437aaa7961abf9e49b27258975c840d028a3e40dba366c292df9b30594f70f2ecf11dd3b492adc03949e5a44b42fe673f39de9a0ae8b155a5d007e29a09d20d7ed2a911760bda31562837c55d8c013322fed608ba50c5bc2d0a3a9ed2a4594122c55503e6232ad47133fbfb1b5dfe5614319eb0fcdda4df2a701208f55d7463fc2bf2fd1de1260a9e99a699076f623ab87002e5a9147dae25c4e289224c9d174ed0e21482cf47135546f62c8aea9e327ced0ab6be084408021d7e276e475b8b24faff69ddfd396e1126be0d1a8f0134249c293762745295070006a87e496ec38f6babdbd48654cb7bbefe38db51933579c78ce0279bcc3be542034fd8bf7dfbe08df3ec7657c714701ee5de7f769b1dcc3cdffe0fa20512b2f214ef1bf4fb8f9fcba575c200e21822c4b99df768e30d180cea416e377ba6ffebb4311434ad3bd26b31691510f303ab985bc703812a60aefc651db71ad8f2b459a2819efac0f9ab59068ad365b77cee0e3cc65945cf1a64f90a3010ea1e506a62c65350d3d561260118efa250f2f82b5301bf82de30c83a1502fdf29c64efa9810903cb6d2e5518d3ed32caae553f7aa2f5c666f277af0b1de01c570c280f59b6016eb7c8f1942c513f62f3c2e2ade2fc04ea3d362aafdcbf1dcdf1af9330ef0d17438748f86820e67fe9c3f4c733572bc3dbb482ed811f32f923d585c98c9c1f948b81569b82ae6bcf518b3292ea914fcaa20d1d0799ed1cefcf683ead543f33c6c165143974d8fdc2664c99120e53d4b220c77a952aab9301d3c56d82bf8e6874046f78489cce4af42a7957b958339641c3e816d9e912a6253aef390b8423b9b8527fa186663ed05b8cd6863ccdb4c7598dcae0ea3520100f51d2f6643b03f71834c1f9bf799e0bae2b4e89d2c835e3ff3cbb53a23d8c1ebe7f17dfa6f9952cc76690484259c3226c0e9925383ed9929c7a7aaf27daf222d9dba2c71d8f280f1022a7749bb1202002019932c884da95fa3e8706dd223b359aa2685962cb7f5bb7898dc0ce7dc9abf7e000001bc74985e6c1953352cd8eeb623863492c6fe407788997ac9976f3ee3a9d6e2028b6d64031de568c91ddf3ec7fce3e622ed689812299b0b9d21be64d1ba0b935542903aeba6d812dd695fe9eb29f8142c114a2f0d3ad4a28e56219af5102b5eb2c9a348054ff1a8e690ebe9b84f0987f5856c7175fd7a10685d03b405ebc658e88bbe31ad1a82a77de1cd5b0687b81606fd71472b490e821258ffdf2199805ec87926ad32918de7d02c1ffdb70fa9f75b0d3c6e8895b1ce470aa1d08da4ccb469cc72a4c77c67f09a83a7472fd974bb28789acafa19ecec6d85d0ce24ee151e55ad88c95046b3ebd9e425029683d5b46edd0faa30742073eb7736d038e5f6cfbcd5b229efa853dd4608da3bb472fd713b7c4f68efdddd6970485f44acac579cc43348cae3f25386a2d4a29c0040b29620e35750762f1e7265a88de3e2c48439a3b3a67b58d61a1aaa0784987a302d47e2584b3b27ef74b1b86fcd164a100e3714d413dafde8e00a095f8573f2c891a351a53679e4d0f8b764f89e2dcf40354578b40760bc570ff9888c924052154af0cdb1fdc49a4815ef4f6be82b9b1383994ccdbff0ad84684d20b20c59905f93fec28b56a8c152feebaa066dc68c1602ac8210891e152d62c2673cb051f3480000000000079a1200000000004093a9ba36135c2ff9bad8c941b39a5316fc2809600e35244358254f3fda5ec6e29fdb79e3f2df66a1155e93020eb454493b195118ce15210224d1e5dece78014f010020b682c926706d00bcf116f86b99beaaf78cfaf5e018a2c825627d6aea3dc3807e0000052c42f1a58e968e79fc1b53be2af9abb7326323d8d84b1bf667b535d7a62e2702d3fe189931cc56f719eb07509ca4bb84833ce74ce356283dd7db1023c96ec261e469474cbacd8bf04af166c047282b9b98be047da7e9ab0aa17b6e3aa7afe698cbf2c110eb0480fe26fc5c60acb96bb02ef3481e3ba4372862006b175bf10a16877a7ebfc88b5ad41f22e93d5cf08f9941339dc34d2b249610413b7268c2db9e50baf9bc0dc40d0f3fea7dede38cd16bc4590c287f9af99a20f214555dca16423312a5187b34d621c9131bd772abaa52c09ed40102f32eb062d4f1128c01828fb0305d82102958c63fa13c7d209e97fd78c126e174026d9634ad783f77f74bd261cf6edae3b83cd49ce40a83bbc56959321f9b9bd7f6d1031bccd02f446291435eda7572a10e275ba7b64cbe175e34a69e6e2d92d858968b9ce2990d7ca655b5c1c248ef55420c91e858a7d4e14b10f8564bc5fdde04d4e97314d5583877e9742977038223863b735aab30ef672f2e46148e4ee35390e9cd55658f2e879f853c4206b134594d345e683609600ed5879622018f8b3730dad5cfebd9c8e14153b9ab270ee97f500ba2b11661ec5ba9d8aa854f212ab70440e377d5965505a56114d5f7e1271333a065a0bd0d315b4f9825b215b794129bd375b5ab86c3a73d43844916f33e6bd945947dc7235701e16178ac3ca41f76aca76078d9f3f0cdddc36689149ad5ac2cd1d40daa630b7e05b5e031c29273ff2e17dc61e3d1d0df9f48711b9f7ae3d41b3e53c143dbde03b14699f8f2f5a1a782b87b8bdbf5bd45d5b05502dc6e9c0fdb11828d265f05b5e2451409598dac40cf82c43f0c82c73b025fd33bbe436c25846643ff9a9007793a201cc8cf615236ef01c820bfc778b6df24839df95e9aee15a89f9ab851b7e3a406a5fcc957b0bac285bd4978a704c1c523ae971c687281339eed25ac1e356933e635086024d22e85ee1a00392fc6fd85f101733f99e92785ce105442f55dff8ed03fc8cd7c5b372f5fe3c9ad08e784982bab0ceef8f10de5bacd8b1d401d9217d330109791ee33052445fa9b6e2dcec2adacf31ea62f79e42cb8fc97c3257ec47afea41dbda3824d7675b1919df58cdc36d5d8db3a3af27e3d759b15ba5ebead4352f7177d53c4d15e2d86125d572f71f7165854c3d51f31a140e9ac01dcd24236c29c4d1cfc070021caf4647ee8d3228a659e6acae638ad24edbb3811d4fee4a702cb92dfb7e3c71f472cbed35aae2a7c66f3ea86de1572f34b34632c965d2b7221276539496953e3a75445e649709009df7d39b4230110e7a2996af99b8e23bb7e7d22fc8a4a6554d1703d7665867fbfc72832350eb7681c330e1dd95879aa2c7380ec060e0b0cb7eb629cfcf09c89b41ad1bfae539a922bbf92f84accfd7fc3a9519bfc970d71de46698804a3aefbe12ad8098db9fe82fa539367bb3daa81cf04e9238de0dd7437b3df25cef5bf59aea761afc4dec79b708e42ce822649f4422b9697920ee62f5d0014ea4c7c6d49b342d950b81bf2a2e05a7c103f27e80889c8af198c145b29e7f08f410ea08d2ec87329b6436648c9b6b85e3777fbde5a83512f8f165cba536ec2c92dc0fe8629ba2cba821a638be893a924cb27d868e4d6840892d1463e1784af9872c8d22510210746351cf2a067c39143920467ed724d4415a03616c8c56dbfb9c1f42c6f9b72ffaf7316bb6af0eb3b100f6ea52554f6a1963cac32755b76996d60d8ad3f1c1e482f78df079c109365db5d4769893bfd23581344c2685d1b43d5b681841067896d3b0d667f666d4af8d6d2780ccb02c7556418ff8f37c2e4ccf439761f4405fa1524149c34646de643ab65069a39020020d214033ed4a5850ed945d0a6954639c6da60363088620bf514dcb20eab340514000001bc4b71d96bad90032250ece1d60a2d48c9e97444b95b385f7d3e4b40e5f20c74eee01cc961a34a84da63c1dbd5087bef6e2ed210e54a769e1fbab5a539dacdd70d859c94f7e01238990f894eaabb3de840fa4a7f491c77276c4eb19167b85eb5182b818948470350a238bcfa588ba471c6adad4d1be9ff7a854893af45f77d8624200dd8bee61b050317b2b8af447922f7b1e4049918d39eba3e2d83ab4e9e12ba437286bb1e017fc150967cef73bf7e0ebd5fa39bf60a8aa9f6e23dac11930585ee48c407eafd9fd6bd8a36fedd3e38b7811545b3905f12ad362e3756fb23f470a33d85a347f0c84476e000e27f1f0eebd456915d667543c950832242cf278380118c5102251fdbe0e997df73889dcf95ad7b299177d9e0bff4b9aff51494e595893fcf87f9ab048933fcee9ef6876fe31eabf317e0c663398a543a8deddca1e35c905345e57cb8708ed6ae639e93b80aa22a73f21858c02ab08540be1ac104a5eaaae6ee9d593bd46fc6b6f8ee86ed378b36e9c98df1fe18ae866ed836ecca9f74de83d02561fce1787a447122ac5e52b511e6b804bf292b511d4bcb9de9da6d461545a4f3063745cb45bf603995e8bb0bd87474113b95015c912e0d0a257ff2431574ab1a615c00d74eadc40000000000079a1200000000004001f61ba8daad40f19f36743907405a56a6acc5a3cf945cfcc4b079265726be05eb8018b138745f3944d515d5907d47eaaa1f934994be3fb77ea562817b08801b010020bd52de82eef2ab6eb48d8d42afdbcb9ee943509971adf4545de64731a4381c700000052cff5db39a0000128bcec452fe28608620fefab69e371a09178b21ab739377943b9d723a7a014d6f19884dddc4394468f02a9979a3b4bdeaa13e55db3dcad59bbd7565132c44d0c5fbbb86ccd5f9604d0a5bd51a336add88f145dde59cbd05a89e7fe8cc2ca2a201e9e9e90ce23b0eac3a54ab7d0f24492c1a51a4099579e639399456f14f5380334c5bfa9e1bdf117572f4d82f902fde4531a0030dd8f184161997530840a72baabcbb021f99266474fef7126a25e7a0fc57177d230b851a35172ce90685330747a1bee1e9ca22ada5dd0a562df8cdb4f92c13b36a3c1e004ba8972a0f4aeec55300d3608c20de1f4c96d222cca35ffccea4e708a3262ee32174182ba116d8b075b2d2c16f53df0fe34ceffc46fc9f421bb7f0619e1e40aa64c074768054cf4168291d39d8be2e24c5871afe1b211645b3c94963f19d26d44f70d7e9a4fbcb415ad5a865d3dc4e19aff1b1bdaf2c84f345e87bf5f086888eaafd6669119a5b3c61dcf5a80025de76ac98be94a51ea0d6807657d2bc491c8d21ab13bcd1eccd8ddd8ca1825dbbe643352dc4c7ded58a0b197da5f0503c388102500d1431966c4df547914ab1b920abfbbbc56d555eaaecfc104ed283538236057ed2c8059549aefa04fe7ab9c075f8052e50ada972bd3fbd441003c1af7e2d0ddec9bece184ad621bf8756aeec2a9d7682fffcca9a0699dbd12454c7f17d651e8652abfe5f16770dbcf8fee5d3463def26cd1dce5b030032e33f140971d654f5790fc715e42bd1a104e53b46bd700509ddfbe0c65da36ccfc868288b704a4c825ef059b238153cf23d387c587c9139d1d27e8322a94ca0f0a3eff25dceebe0db8cbe94c2f8c064c73dcb6051d09a6c8ead8e9ea49f0f72a4be5cba514de6f913831c8f2e7fb3fd5538603b61c26efcf989e1cdac843445fe8450fc69c733a8437ab829b1575cc7c650257ca9608f743006f429943fb3798d00592664262afa29d3f5265917bbcd691f0092a81790f6efc30953046161b8543689a65c89a45ba223b2211ea5a6ff9154f9f9f4a68beba557e77e1be5df0ad6d2556c129d4d7a93545f0c682ae7fb943d448ab16018ad716d7e6b095a79bcf72a3595c49e8ff178c5d7271a892d3c68d54bc06167525275ee592a8a0b3d1801732c8c61c5ac0c3050fff183ec2d6ea26aa6db5e2bfbcfae406623cd17f74859c98c18bfdc66aaeb311fdc776d6d6ecb5cf5129939a790a7e6864a2711960a01f2dc2558b2d91e9740c85b2516f8288580666563f2fdfe4c817cb6ea3a12437a7b9140244731e3eac5250b044ae5be03bd9bf41d7c820e38e40cc5e9e8f4d753b82003e224a4732e43cae5f2943f0656839112731e37228fc393e90623afbd573e0d713fbe09b8d2a3da53e14880a436ac2809179196110f3ac9014945c72494c55a1c2d45c39c723194a5b7f7606ca97ed14cdd4bc43f2808599689df25a6086739a6a6b65f27caeef408839a9a23420f4618fe486ca9a8f2e98a08289679bd407129527d383b1a29c9515f0f5fa10db9170b0181a35646a4340f3f8b07a05faa45b64f82cf17e93dad923c4dcf26ade582101033eb4a72e55db6ad51322e392c82e8903dec7400dde6b9bde92387cb9bf7f749240547dcce6b6f58fa14078f9f6479f4f56e14e7e6a0c306d81c721a23ab6bce3428058771917ebfa9a24fd1993007eb6e12d32bfdd6b409e43a34ed7f5015d85adf2b46f534fe51c3df66e9464a85c9b31ea9d5ac095b99cf308624d1dc1b388c8a8d2d2f8ab3db852fa82f77cba7cbb7cbd4b6918f24e37669263a6e37d6b4d1c0cf6fa9c7a8d7e660505335fa050fbadbf58b1745b437f69c018b0af9275132020020aa29263c65195a3edf715b05a7e66f1428e6f962d71432bfd024549bf1901f48000001bc3d985acc800387792375021268cfee54561d9e0206c46a241ddb54b8743c822d341afbefc6e60aaf80805839498c39f86c43047ba0999d31ad436565d9a7f71c1a3702c9d39e8a7e1806528d09fba385cda7d06e53dedd42cad78f99da4fdcf51913353728ad2f081289584adef36c82239d4de56299e022ab5209c2997cfd9db7301aae6571ec89170330f5caf5ccd5906d6bf4c2b78780fbf143e385b7240c226d89e086298b5f09fa75b8fadeb44880bbd32c860b925aefd7f7e6af424c3c4c9f725d0de48156e08ef583efa945ce8769d35c286a62b4507f24d1a022f39ebb3e76b3be688809b0b8c52ca82bcc2f90933c78db03740c0e842434b8c73b53434e9e24953b93897a34b01d758cabfedf4bc964b748cabce78e6ecade1166c6834472826e940627c3118cbc8d56c61cfa794ebda267e63892ebd54baef8b15ad00a93f63dc128907ca6bb64a1a74ab03e7366fab45d40297b20bfcd6431ebae15d55432b49fcf5f1ad35725a6cd07aa2a334f9c3fa8921a83b6aa4f02e7fb99a647a907c2669dcece7e604a4e38eee936a8fb3d59b015fe753240124b5a6ace7025c418c75a9e7ce7d155c9a5493f2367b5aac9e8f781119e540a892282e6a949bd8ea3a8d0777faa9c3cc30000000000079a12000000000040d900507b059e76e57b8b08749d804855ec56a8cc86538ac148de9dd01d626e49ded59523497d980b00ce6308a7040bafec0c793a9ade75b3cf90e499638ee0ad0100209c2648a6dd13ca21d2a07a9fd1b948b03a15f0e63d29538953cc7e2b600c9a250000052c46d26e56018baa260fbfd5726a97dc35513a406cbc895daf8a91e8c0ec321bf5c5c4f877b3565ff396d9d1ef0416a4c7e4a660374158a5bd6ea8e7db2818e96ee7c5be5187f11114d7f177dd44a7325a83fb29d24f1f0f873df76fae23126435626b34af94a7a314211627f0a2de0cba201555c3370a411570fa030ad8f258d249545ca9187d1081ada0b3236f49ce49b6b4bdeaf1eeb53cb135ca4bc8e828e2e99f8521bfa3ec2ada1d8d3114f24f65b5fcfd9e78865d26dc809ced3683e01ba8995b5692ae93f87354bd49f944f9f227cc5bcd00881880a02edc8766770b3506183456dc29ef610584144b4157c9b5acb476721df4890ad82b85f1c2e75ad30d68ac6bf112dd91029d48911213328d2f05555b9963e83529fa6af5689494a72412407e83778c8551891cae49c30faa98e9b29f43a6efc2b34fbc6c75fb915fe4b061ab16788d3c05e88682fbc387319a8108bd1ac380191af35ba4622cee4848eaedc1b34d0dcc6485b7efe70482cba3550b72c2f64fd390615ae11db4568b13aed7ed4892fdd5a0bde78945238b62c535eed29a19ded451a056b8f3f0bc1b013986bb87406ffd4226ab17bdfdb10ba74dcc2154ee3adcef153e8dc8427a78d09b2376a4a5bf6bad27c648b87d100dfcfa5cbce5b126cf78fc13dd3dc4668813219fab10c5d877bf175cbbae96d7e41534149d19f7f198cd7382b338f44cd21744cf1f6f81044e91c8d634a89435d519bc420c2868c0fb554a4fe9bc7f670635791ac28b399d6a802c1c5a40c5edd691d5a601b4cb4cce4f1568e2d26242f68fb7c9c3ffc64ecef4e315a52f6d31bf9dcb8cc4d65bdd9175ac1b83ee928597c6dee852172de1efde6e11a69ae2495975e79c11bc7b769bda0bd80343f6972aeb62a3f88dd18607db49738afbbec4bbfe59e82fe61a4bcc79a0e91de77c5ce4c8afd319179d16b62487ddd9a44286dfb69f1758ed18bd35046906e3c2fc5cd0e416cee2b3fe6c8d786a27993e360de113126bc8edab709755ed81f8cf5ab73112dd8426d7c583ae3c4e57d148b3934ba1257687aba2d405b18e4c18a1f6324d751b2482a90107d1de043c5152827d2f38b3ba783425603b2c89e16e73d10d3515431402bc0668936cfaa2075e79f85a717170b2ab6d86b88b10f092000d5f843223d3655125bc59948199cf512465afbe8d11f8c80c9d7b1cb8ce07acd32f74df8cbc3b62b57871929e6f946a90a7c9fb39e179d9ac8c7bf77ae1f69753172ebc8bccd396629f9e0c4fb32b542ab6ec7bf04dc19504edb9ac6db67b8851820aa7a701fdc390ea9cb4c319ec75259a2f982fe10614eb3afa0850477a99f2672107de6946232a6609284b20dab48a58d89fea6b7fdcb3d6f8c38f3b764123b4fe1af035ee9d096cdfae3177bde418d57532644df07ef974840342b0c111699c3d64f22d66384906106856cb0c24d15efe703d415969957df2048745fa13d6e1ecb9f05069e4cbea5feb889e32111d0f34ef684b954d246bf5cf4d66ca9cda383c56ef31ef9068f517e6124be99fb100476f9ce69e6c06468b7a2ab2aebb97cff9cd06dc0ea256e6b810a36c38a3557d82fbf63376d65fe42fdf19eb2298dd992f6c1e88e9582bdc62396a318eee8e8e42f788e1168447b4da3de63e997f95829c924f53ce2d591b37c3ce3e06d9e52cb69d885bc4afefb679ef2ace6df0a0859c85e2c8a6df2fcbace4cd0db0c33dbf424f35177ea5b64121f2ae2da6ff762cd941533740766bc3857f36bfd1d3bc96b93587b43dac7e978f15803eca7443f432f82cf0afcfdc6ea9e8ac2b7f9d002302eb39255c3c43e74ef7f1188530b27a754e055584452aad424294e32802002046a8924e43bb927093339df4f65b52665cc90a9a5101bd813b88eed72feb3177000001bc015c6f07445a65d6e96d61e74a401d0f22e11871b79264d05eefbdd13cc0401fa732f5b7429351189d7cb252318620709189176db3a2e6a51da5e2c0e41bbef95a4df8d9a0888c1575325778ecd5b141c3f87c2ed42b4f4f4d3fabf0f3c10a1fb973498cf4325cb497d6a566804c0e34031a0f91c51d70120bab122b10ec3e4a7f60a29288262a6a3022e58ac35cfcf58d88caf923c911c06dbb338e4b8d60e1fa8d70392fd2dffd0c9ffdb6eb18f91bfea593c4c14de0784c5411e5a7fdb0430906c7bdd334dd47622b7244c1f388e9e9b21cd41c311bd679a3777bfc7121488496da1c57727869677872b0771f5dfe08012d5f121a1f00378d04cc5fd2ef7dd6c7f0d6bd98a44b770d8418b93776e89534df8fe9004b4bbd6c0f40c90d42d23fee3b97b0804785060227cafcf6a3942eb3c967261fa8cf7f0c0ecb79515f14bca5a506a14bfbf9c10f4119d807e6334b2d87fd9df4a7aa6968e30346a10d6ee53a6510efce8d719ad04a41906424404eeee7700fce28f9d4e787103b413cf8808ccec84c9ca87b81a0524994e04a427aec0a5f333f8088cc26a09b6198d5e13bfca1ce7f89c52bced43fb0c3212f8a32709906e9370fbecd12bbcf2c51eedf639de31fecaae7df9890cdc70000000000079a12000000000040450f0eaaec5efc71aee125fae5038ffa8b13cf0ae1bccf400f7949ce29e05d52e35427a5de62022513cd41b218e75fc2b9454e92a9f747dc7cd68cdca439e72c0100202e735fc0f95b0bbaae91e7caf9488f44fbffafa68d8c8110910ad0b0d193b73f0000052c6eb6a325ed383aea58d1e23ec99cb64103dafa93f7b57dfc7bcebf5bc43a0726c9c7e742201c2f21ce3ff1d29f62eca030776e69c10a5036f89f70ca0db40c7406eed49781a7c826ee65c441278deb84c6aba8afe1e16da93b9736fa4917078e56c61b9ae7ec9a5dded9c30d271da81f843a98fb916ea4817b5cc5e67d6165e09ba483ec3fe7cdecc7f679eb275b7d712a2232f9740e94b49e69ebe6c10d9032ebce1358255129ac9d0d2f6b2ee88e25f2bd5a42d4403805ffd4e0103ecb670a3d9b9b51f0f5184de76d578e67cdec6bfee68bc595100ce166bb9278f54eca70710a1d46eb842fcf3595642fdbbcff164b8c8c4fabd269a917cb239a5698ad4bbc7b5f642be614c0fcb03243d049f9efa8edba0c4705dd29c018c935e8b99e39a8a0f25a8af7d8fe316755b2d81c0df0d3dcf146b1cd798326b7380c89d336ed637e4cf6bf19e1751a9d23d1c05d3d667f6db93df029ad278e20735fb3eb353af41c5863665845aea34c996e0422ce26fea6f31ab2fab09286aaeff3e75723948d2e3781a1553f5bb5edbfe162bf28799473895b270e408668c146b7177ffec7556b20ce4f99887ab1aa36b86431562924afbf316e933ce7ab02db3e1ddb7c29bbb9439675a41a8e3c07b4bad9be6b22233a458ecbbd85820418f2f980bde8918d19e9aa49183817a21b70079a490d31e4fcc1cc80810e5ed0d992233bd593d864ace8e196cc87ca4f3975349804aee449d8c841a6e55250807d84757c99a613de631f2ad33d5a42bc21a5fc72d236831d7d6993d1f3699274f62aff050a36794f9f5e17f5b29780925ad6b1ea40b68228fa66fcb440091ce0da5e1d94ff73acc81d6f763037d6e6653056d1f05b8a3812f0872310dd92178dbbda1e782183996ab36329810291394f6637956fb0e8a6a418c41c161473c7d40d042e7f128bd73f4d430fad42d7a7a8797feb40cd5cdacdb2ab77fe01182747eea5dce0a9ccc649a89a3c432ee001766f8c9480c61767cd96322112ccb35282a03f0ccfa5956dd7633929dea093a85480a1e10fd9d79365feece54be868b22ef783077261ae10ef1697939b9bbb392a186e07dd8c082ef9f4cb35aa5288fc0d0824968e68965ccc341304915051b01e969e2ca49afcdffe9a2ba2a6a1796e513d476c8b011038357e23be7d9e3a57ad049a6d68f14a780e5f731a809896ea4a9ebf27be54874b26d82d9d213c11670f86dcdc1b618f16db3f99975f2c77da98d305b1356cd6a7c6c2cf278c77e1333cd9d7a1001c518471e5e11cf816a4a782066467e6966511db7c2c843cb2171f0b98f3ac55883dc547a577810b4aa61cbcfb0ad363b608809b53c51fb8bbe98d6e3f703f81832f9340b3591b0814f29d167487598feebbfc21d8a1889707a975757b05b4e15c6a247d50940a206ea52e0ede88a83acddd40fdc6fa7adad5136c393626b4c758e2744a35485fb90522ac311525fb2268de4fb87d7620e1e32b499ffa807a11a9d6c667503942847d6a332fce049ee7c2c5d444097fecd64cac2b5f0cbd511f917118c285fd4c298823891dd9115c52a1009ebacea850bd1191aff37b6c64b24aa460632618b1c69da8c6286857ec640a3700db7514d6a64cf501fcec5bd3ebe736f987d4546e6d2ea6992d6d536c08778f1248374a0cbcad845f02f9fd3cbd415c7015ba4d8d7c8aa77ad07f76beb688e15350452a0086a793b955ab2cc93256a7fc1493322043b9172a408c8846062dee506c5d4c2d1454b899c590f9e7db28e0c00a13ea37abee80e0cc96e0b11da1b5e99f1d33f8e3079c5b21e2e5da8c8bf663a1a7be2218fb67b7fc9dbb64b6aa79e5559a099640a375d263d27d650200207afd6c650e45d3a33b634a1d125ddff015c6c60d5a59a3a754344eeead6ba34e000001bc1afd56c5d80198e5f675a25de717f4aadd9865ec2a3c696e1af55c51fbd5b4ffca0e401f70db921f4bbf8a919633170480b1246aa396f517129c1a63abe1a9e4d22e6b399438c0519eeea94452ea6f55993d3e9b8b73048093e8c8915a929d50627c9a1773fc81dee5504a22f004fc6c3fca0f87d199d51a9a8e28be850611f22185cb608b939e653178270844dcd3ac8c286d2ff4bc401531ab106e0d8d5fc75f5b65781450ded13c7e5a2424dbe4a76cdf42ab7759028e123c96f90a5512742b7a456e372186c440b6205773fad8b1eb1a955a3c6e9d0b34c07eafed870223a050fddf1b38764dad24c20a411d56c9f52db7c3b5d8957694636e30b623e225c6013689a33df05d3619eb4f184eaacb0a17d5a478bb3f116494209da05cb561bec6692c91f49e8314ad71da484835c37ea21dbf07a3282ced00b5a8375b0fe650e1a364570a0dc0e846571041370108f63ca4660bfb359f689ab1db2aa91de911c5006f5bd03203a58454256d29479a3379ea9667a9a831058d39f32f57076cb0d08a24e153e71e129ad2e50416093adbb5fa445763fa2da91ebdd9cf5fc17c507bdc67786dd5f56f70cc93e4e720e204ba566e72ec5da30ee147bf31935f45506e43228ff567f8846379ca0000000000079a1200000000004040456a0df7f1d8319dde6fd4affa53b8d7f8d2cb9874bd9bca7feeca1e270839e07c0285a0f79932af1d2e196b2de21d02b358b0134b26e34ed20b779029e57e0100201ed93011c12ddb296011a8edf83db2a518c88e06d7b04429bea87acd87ba62550000052cb7421f9c1d63e8704f4d56a86550569f9a8e98c55f50c7a14150999df14ec004406bc6054e8a99278aefeef004973279ba5ad81fbcbd2b93892ee8382b83750007cac77130a042836eb27581735559547a36e9100977de73b837efe040f0e8dcd75ffe1a54c1ce50e0ab10a0f382a291d70ffa63440a880a7fefb470b9643665b67bb8003201f1b67c5a1aa7649ea2930141c86ad48b601b80f0755d49cd2b7ebda6c3d1b73cb0ff41a52008dab2ad54c702fef96c038ae734d03f21fde350911b3095ded91641ce477ced88314204bb27c29ea8401d57b0cc134a9ea6a48bbb4700033a26762f64ddb5b6ae0f83a02f59bd1f7f98572fa3cf281a162388bcdb505865c20bb4ede2ca2783022cf002474b5c2edb5387820d0480389b9e60b65066c0e7b74427f2075e2b1febfa13b91a8964aef843ac00539f56e100d56757d71ed35ebae48fe863e822aee48e8523f64192b9b12cfcbe2204c4b8176fedd2c8beee3fa2f2f4628c1b90817725de32bcc860b07d59b8bf51e79e0a7dc830bfc91376b3288f3a2ea08139a279cdeb7e5ad472e65532216bea22814181640b3c5188a65b4bcddd047f7e655e149edfbd5cc3657fca7380d73455c33f09fcbb88deab2109bab7f1fcdaaf824ca2ed4ef3053cd74ae800800d06f92d6a1a6b404d931b6d638365cf277490d7a2e2bf17f7c04114d8e8513f58bc94a316aa1512ee3a839e777379f137ee61c7c7709e095f18a5a6ab809a452f089f7b50dc4599246921564a73d4798f6790ae5b5d18018a4227ba79ca0ad3a40cb37b734f7c940cb586b2c2ffdcbe9ae09bb3a7eaa311a913a8fa3846a9c4ad14e30880fd2f87e57d5817effd2537c5bd9e437d7081f2c245437e3f045674c64910521fcd5700a588f9155996911ff9ba47d010b6ac38a61da6587b65371f93dc84192319bc10a8627c550ae44af7bc3586be895c765d79b421e754b075a0e54bb920ebed851eaa5843672e79d4562285e72e5529c980889d14ce119cee70a0c292b02ad408d41a5bf445ad68e3ea3459355db08f0b8c44a65bb1ca84003764468b61d65d29e74a38244bb8d915c5b931865b9317d39ef504ae76445f62f18a33f03c6736a72f5ced56d64578ec2fe1c01aaece7c19cc6f2eb473d5e3c3e880fca06cf79015202596c18331fe5418bca718f1d1de084bb04c9fdb12ccef1ef0c54425da215c364221c29f74821ce47ea325f36fc9e5c1e9e3b68bbd331c2160b345d4afe563341e84707771be87aab9e38869f56525ee733bee9b5944f3fde3d1269b208a311fa906a5aea8bd055fe52d761a002bd492958fe238d1e20dec4806ac51dc34648fb04c67927841246935fa9086496893ef1088ff790b6d69a468a8a7a1437c81ab9395cc39c73b6f0b897ec520210b508a556c8bc3ab2f51dbff26dd07be96651fd5229191283fc9fe3cf9c21b3ecb9ed2cbcf552856addbe94691bdda9b68f54ba6ac4c5dd0ebc04c2cbe1cc4700b46c909eb93572ad7e8be94f546b635f141777f9ef561332b70087aff4194072bc869030373449828937b2fc97e6e17bd977da0243e0c66e5ae44d4f67186db3ba0a9471c1b6509d11adfe1e4cb3384438794eeca16e258247e263cae02989904efd4d8a26f1cab3f8d43cafb66fd8302eb18e6b3ee31f65207736fb122d7628d81299d53942457b4e0d62867413fcc01b1501b86ad0a3796f331826d6bd0b462de04336dfe8deaf4da967971262721b78529f536f7a494ebef2045a95646155221715da71f7bf1aebe0087be4b120abf3aaab47c861b39a0fe47592fbbd9eab7fa0c72ce2d2fae07ef7d83ba81535481e3e694d6fa5f058602e0fc883c302f83020020299010fb97fa20700c7f9c376c6cad96b566d2f2ccbaabade7580c07acf3f401000001bca0819fcba5ce8a0ff5af2258ca0aebd80aa711a3dcf35229da4af15e7ce6b2c198ba7d01f74384d7b25b7346df9b4fe51f38f8f930edf1c471e01479efad3b23b54774b6d8218721684367465a968d23ffed0ec66ee20c5c072482e11d8fb7969e2cc993bc41d59e2f1decfef55660e6643bac855e38e1cd98896e988285e02d85c7613a620002e189c271b0cee1bc488cc60ed61dda93f01e5918f4c72de17a0bc6f0be884c8334113baba4bceb1fa58e9a9605c0d2c5c90b0ee68e936a4a3e4e91ef1f27e496359b15f10ebec526477d6c09a40d704b7f960d388066f1b50789691301b68b03107886b4d57fa22c2fd283e26d3703161bb7755c134a71153fed161f87435fe70498118576c51074adface0d02a9d5be02ad14b223e5d39777b095f9ad42847f09b8288569eaedc0ecd1592fbead35a5b133ed09c5c38aed17aa358bdacd47cc4916941ab9aa0d4d5fa275b936f4c0e5edc858300c6d482f21affbe5983c5e289aa6921116514ef8d169600e0012023a4906a4fff5a0385663171a6dd5d420e96a0633b7d255c259b1203bbcab4fbcd2188317f4a7a41b5d74292d961506d056d612d7dd282f53d9dc5a60b0d193c601cbb895bfc546e33bd52e70c0cad080aab093dc46cb0000000000079a1200000000004006038828545d8ca3017a555b4291a4b79c7c3a5127a143c67d2ed8660641b9b19a063b3603a346981f2d569b04a93e43b95afbe983cc9941d32413a240c669d8010020d6cf43dc053bd184dea12b3fed454d6714bf2707bc48bfe0a8371691cd2ae84a0000052c8396790d8313e899111f5a7bb07fd5ba562b1bf6a6e003a5c465da78e4eadde398bd5cc9196b943e243dc7d07cc720c945e1b1df5115ada20339f15945adad461c3aac8741a6baccf456322767200de54a04483610a0e25c5eaf1b063bc45d39c21d964bd47be53b2d80d24e1e92a99664ed933ed6e33e1752448edb11e57f67707066d0444cb912b6eea016664836d89ab0f9d78e4e19c659a32cf86f91ac81e0a4b81e7ae93882e5bf729aa0bb4c08d7ed32f8fc5e4ebeee0b8c3361597451531d7c7868f460077b3a68b7e386a92ddee28d0c95ea33bbb76688da994ab256314508c5eabeddb82fa014e51cd46069cd00ca55e8fc055ea79a9a847d1cdb689fc2e5791c722fd178ca70b11a018289ab1dbae702105056552cc31ad5a42566298fd10644be94b99f1e871da7cf03bbb2aba25d04d13b7478281191860e0f1cd44ab3bb7fbfda919c163b0cd4e230b3d8be48d7e70d6d0b27fbeb7553b549f9ec985ec2956cb4efe0bfa429a0e3cb88b86540b2934580f3f92abc855dc61740fe27abfd473382a8db503131786181d364e05bfa7fdaa521116103b8af7bce071c894a735a98e8df4ca73e0e54ebbc34b60725c12471372e248b029705aea38cec1304a072eee5a92420d525c067500405edf07505319dce4d284c63b722bc3f8d9a3a18ae8122e8f8c51996c909665a5730b7f88aae7f9a6e2e49cb1989ac4c28c21ec8ff1897a28b1b64d487bd34f16a9565c81e02e69d5051c119da6034a7738e787c715b15c92dd042ca3d8c20c0c0cfa45346d90a0a7dff8b16557b66d304630c5cc1068e7be6c037a318d045f649101f437f20cc0de10ac41f73bfd36330f11a3c4a526800c6ae26f78e7056650291ed145ff06ac7de6857d6e9482a98682ba877c9b0116625760cacf1f23317bd3ad68a93c0617579cf005a6aa2403ab2d11ed591e1a39a6e9bb6cbd437bb244b116f672191ad86b224fc5fbf5d08445cfb3dff83e438d5b870182a0e8b7f2273011d66407c541285a4b980dc7d8e5a2b4147f3e3e28542d1458244b652f5d0bd4983c1226314cabb54146fb43b003453f52de183ea1edbbd54c59ffdde1b0e8ddacd43b52d1d5abe549ad1fa3190a6c61dca9832594165cbbf2f641caec3b7ceb0eac69f88e271f05eb80c016483194dad09a31d9919045d97dc9e52ee58361ded653f43d53c8edca71161763114d3078aee644c1fb02b2d6e1fa53d7f85cacf6691b62186774d5bdbddaaa08b8f07b20635dbbc016f74c1969d526bbc8607082d5cd42d5ea96decd476a2bb51a97d2605857d653c6016b78ebf3278348348a59bd25e57a2deb839eb6c872a87615b528079f7646878efe24e659a667cc24f82bf601cbba8efece2cc93f9e883326a01c503e77f9280c86481a4f20939698fa49ec0be321a01e45c72c26224c0e023e3a9ffeae97bac3db7a8de2d3cf950411bd5ff06358dfd89bea5a920ffa4eff9b667eed4d5dc91e88538738f60ea1247f3ce66a09a417d4bba1699fa2a7ec3326ce450699fe6b108f960f2e8fcdcb9a3357b1269603b2f4d1b9fe791cc716b0bbcc0454a38fadbfa1009b8994148e41b4da4649eb73e4c041f19fca3dcf7ee4ce07417cbe6e9b669512bf86b6050353b118add969e5bb6b169c566e48b6e9c55fc4e0111ab9f3638feb4b96e6320805d6bf5834a6009cbd9b6bab7c9ce3065bb0e19ef17a587417b37f64428c40e7a19d9dc4a3f2a597be62a92ae35cbf6bd6d45347ca7f758e818362d9d5bb61762d0c600e76b799c04d60392b269d349c9d967f1622a78fe2a3fc772cb41437b09b0bc769bf40533645ac2b1deb2d743ad810e319597ef4fe0c5508d67c0020020ac2142453d98a18740c7443f37a4e31db1c6e4806d89bcca7171ecac0ea7ba4b000001bcfef62abe5ac6148a93968244d54238a1347166541dde9101fddeba25ff17a3c0a07947c1a522fcb418acc648514afee91407cfa170e51a390fa8d6b46ec5cd59a7d06e6e181635542e1e374acbd6544d98299ab62baece2f63454b4fa5ada6504ec4d1e149be2d22c7ba466adf66b72a8790d04ad49675afb54d35ee306a42e7a350a5dfbb87442c5cb71cb832f77296b76fe31c91b910a2dc135027eb312cf9f3c5de305c1ba8ba55fc34bca10844bbbb0d69f38edd7926eb094f45fb232f9e4b0fb8bf75529ab0cb567226ca7c9c809f7f2a6ecadf567708a3ef45812239d6cda8e95dc83f33ba656c71bc6aefd3cca49dedff27b3e0faf2e2e230f92173f321d885b26f4ed5e8f67d319ccccef2c1d53c8bff1b2d88f1fdad414feb7e99092b325d1a4d2b2255a45161deaabe851a1dec212a6d07e1ba4719a6d71bce9ad094de0f92382dd0f941c512c55e0805a35f438b9249f73aed2d57f46023691c0396c56b242167da06e5389f838fa9a8b832134c259eaa96ec557c643d261f1413d4fb66b8b7a5e2d3248b3c82ca7d9cbf7d363cdd06a225265c0e360593fa93082ca08a93b141c894a599cb0eb2659b7cdf1549df39fa6a689d6b230c6ac5f45efc2aebaada41881b5e978eb70000000000079a12000000000040c797d6f920ffab0e0d101703de5a4d44f790df35db1c886416c784485f80fd499398cc5ee2df84f61f880772d0e02c5d9a040f91bba0ed3dc4f7e106b8bcdc350100202a02a96c44ad1e2ab2820018da178a7ca5251bd58a7980e3c9d2c4dcd6d6857b0000052cbf5f9e5e8115d5d81459d9ebd150dce1a52a7f70abd8e51b6c06da3b902cb7fb6f8ef0dc060cc42a3a4734f66c19d3259e32ca5d9648f165ef070671b84099d8ac95e88b7b9cd9f1cc12181d42ec637d3e22624b0e84ba4e8ed6b1f750b1558a962b64dd3efc1452d1d9ac4d0d2af1e8bd3a8c9a8a391ca6d00898768f49f6b7136da72918019046ec830ce748a2ce712047e6e3c0f321166753a9bd9c88410ca72c5d60233b2568699cefbb9865ede53fbafab3dd729298d576e45a5af99a85ff4535f89275a31fdbc58b1d03ffe05ea3b407a7c9b9b75dcbc9cc1f6bd1b1313cf88e8f81d90afb082fed5b927b64df13dde8e4bb84806b6d27faeba0b665b477dc5da20528b7bce00dff3df635ec816c5db8269a1ecfa5a5d4697160b76e7a308c65cfa9bf767fa665df922d7da874acb19f5b5e8caaf1e92d60d85c953179cb68ab0506f7a47a608a53238a1f54fd8b01aa5ded5d5c3c1ba79a01d66393437cd7e64b61e696789ebadb5c05ee81a296f1ab2a335f1e8d52164c110b12052b952a2728521efd7cc42600b1ee82dccc4fc1d5b7fcf7e7105607d25eeab40587eb303a2f194c3341675a9b62d7f7bb62c4ed0d2a8344ac39ef34868f24da80842f26f30b86029919de7c14669baf28e3523a1edc03ea5e2fd112d6a42ab3cceba41887bf62e440e86d7aa3bf57929bbe01a82fee05f29384d08a6f425a23435045d175d54a3b219994de3d831c736f1fbe387b83cf2f705d5e2af563e3b6a2d287dc669d936aefdbc6ccd2eddbc195e31f1fb28e63e18eddc5e92ad9d9c301c83d852ff9a11f68f2527471f92eaabdcb1dc9ab5d2ca54b8c26b3a7276955d98fd1228aeb6ce5bcaae5df980d8cfc813262a84191d2e900141ba3e877cfce7362bbbfe81ce1c7317d6c1b9cb83feeb079c9cc2bda32f87f7e259fbd8afb9e990dd2dd03520904876aff6ee10094493d3348b986065f53d128c15df91e69af40af5bdfbe3939c2ce7573b8419478dde24631b7b8107047c665f05611a8cedde5a27a15974d26bbe4602106ca11048ed426ca90022de7756254340d7a94f5e054d743720fff73ccce2e554fdd801a0a8dc37bab1da51339939cea5fdb634f17a47078107a68cbd1728511b4c51267991e0bedcb5ecbe6dd5e3994937552ddc11ac70297c0fc2ec42163e141f7871c03cfc0b72614f22b515cb2aeff1025f736460791a4bf77654020788fa3bc0734e6186cc08f586e9c4a5be382af597a6b24995d231b70c4059ad68107d5f42dd9b0c8c357293f71067c1a0e8d65b936b4e297ee0edafda5d49cc10849cf70a83ad69b673475e48b6ba323140b3b2a14fa66261829e3f7815cc5271b470cfda2e9824fa311565a4c0810c0c985266e1ebfe970f0dfdce24252c4cfd068c4537128aac6a6043d1bc04c62375cdd78d13a352ef3c3640c12d299bc193ae806f63ba1b3e4c2dec688d9a7c076e37c46e5248ad939f1001f338a6eb27cd92d107f12e79bc73bfe5981a61ad02d10ca71f1ccc159f3c59f38d68c5a3b024d6089411c3753e262737f3ca97bdf827aeefcba2ee9ca15f4238a90b9c6ef5bcc9f785f275c4671896b92dd1e3b8cf78b6250e7be67cdc2b3070b5e9a0ba2211af9782cd755fb95e1aad57412e2bbf75c3998258da728ca1616f46d2ebdcb511d80b626d7f0373cadefa443ee0593a61ab32bf1e5da57ec9bb73792c9df6fc442b33c6d1c2fdf278252a7f09ae89a0ac8b716e2dd8afb378d4b4f22a720f7d5f7caada720776e62debeca76f40ed291de77b9f4f41eb27ebcbdd056c1f619c8341b793e424bcba08e4e88e0a843698ac3d33debd256519defe01c9a75fa354fb22c621f07020020e7a756d864f93a7fa26d26aa475d2c557b74b2e1db3764d060d7c48eb0b77e10000001bce335e37dbb737282308f9750130258bf5ea0f49a7a92a8ea68a3913c5f39b0d8661d4eca1754f8f074d20dc9929ba57d13d8ae59b9f18c4d26cfae8c477d93ac7755c790a22b61b2dc10a84cf74460340795c0cf9fbaa4ad9f8d26a0d5233afb45655f76147b11c863c50b2b3a30e5a606dd8454866a71f8dc3c2a7fae97cb24fba19fc0941fb60fc1de49b584ccef0fd35096278c55f77a16a46212498839194cee1336d3afe20233df5721afab4809b5df007731fcf49ba780aecee8901d0d0fd2b7d8c46b5e936637dcabc596158ad1f25f2087fc31455023cafe6fe62ac83aafe5448e3f948053466389cb87825dedf278c793a3fdaa75f8a7e5d3b6629d5e6415c3712f3ad1d6e0e0cc312044e9b357f3b62bba31c0f5678399b8b159531b630c939687b35f8f968e7a5cfd1a78412b7bbe6b78202b7c684e563cd0f458e8544253bcbe415aaeae36ad5eb622f100d350d1da654c10274b33c6674faf7d30f72b8d42bdd08b8bc74c5e540af1a18f54f650e1b8b40d4b5824156004668d606fd2c2de5c37272971c89069dc2ba78aad9866734f325357e8bee3bcc8e3b6a88670674b35aa2c9b0b1d6b3ea2619b6c9682f0e23e891620d8b0317b26e5f8998d87df4be0063272f9a4b80000000000079a12000000000040c1971c149c261ac2cac57ec8227e37ff3f36ee33d65ac3ac1a3126d9f6c43ac2363b363db5c6e4b85fcf3a60596d5a1144919a7a1422ffed55fd22b46dafbb26010020b6b7c0045e6ffd4be63182c9eaac343b504f58ad44d358add38b29109df807560000052c5b64c0247f98e87acaf0aadb252541e1c6f7b00cc3f5755d41e66f06032e450223daad25acb9285f50f9a83c18eb4d09fec614dcd0aa0a4f03612aadad400050d75c42650f9084f0d5f14160fac6c586ebd445702cf4380cf73f0eb8c76cf06f1f4faac298249c6940e6ef523758fbd459b160a12a2df836a4bbbfb4451e71fc77aa7d6712a2cd791dc7bda82b61fd870f51afa9b3908b1c06e4e11d43c153cfb5f4d97ea5444fb23bdc9c5681abe39810172a87bc06de48850b2bfec0ae97a321ac6a164bb808c4d5a5e37ea86ff5cc32e7a34e033673c9ec97633bc14ef66541e25bbd8585f6379c42981c218f8e95ba131861c65b7a32a3b52b28425f3d43a7638f8b2fe09076cacac7edbad7f832f04078cb17d5e859343756707ef4d7c5a21abe724c7f5a885fc89b7b79d201b4ae9b77d137a44bec26560af8351bbc80eb2c1ff404989644b31e51ee6dc94edb7e786bd866e0cb3c800d4b36712c63d7f032049f8acd8f6315699ded122e23404b1b6d78e170ffbfce91af2486894434eb9fc06e092c6541ff977bd5915a3172bc6a8ee9d2e3644b71e679bcbb8ab57f0ef5376e2755f54a67eaa1e02af219c4088e735bc73b26188b23b5ca0468d030f9abd0c24e0393a5b2cc62b83839f7b0fbb326e8ccfa8f4718381eb2c34276d95a165f3aef2752efc65b28e6723f5d77d8205c27312ff2b900dc4d2bd8146ed57fa61ce77706e5530ce2cb171353e9a95e7909be119fce5d2b0f7525f078a021682dbb26ba06e785b2c7d648d67f2df4d2392772b706be96168c8d8178dbef1352f51c28071804e9292d5c689be60452ebcfbc5d2269baaf7380e191b2b9410040407dd9b61cc636ed3573583e5ade5094d6af6933d58c0d01d80c960d4ca5ccbffb9aceae824feb4005985f742be1d8ff21ef7e3ad814060333930a57fe5c00d864c840b10f5fb8aef8408209bfa992adb181d49f509c7479380145766aa5bfbcdaf32166cd9f1ce6b6bf098339e64d15357b3e259c2c4df88d74d93d5b57b7ea8059303fc84db3b99eb33944bbd071c7839a4b6c06ec9742b66c670941978ae10bddf745e1f3428e8180014f32b7a2c3909a18ab53d67ccb6744c43d3cf4ca3b166365dba65e34b24551f69901474a1048ffd23988a4bd67a9ab9aae485b8bda69787fa393d8604fdd347bf2f03fa6582e951ce791f89598623a1d2d7cd7dcba466ca0524bef37525786987044569708e9bfbcc08ddef02e50eb8c16335bb73e0eb8d153082d8d3172eee5e6a00d15e5cae9b18c3aeca361533c71f28cc66851efed7214af2577a6c9fce2038400517e0135ff611ad8897981d2262589a1216101267373b3f214c3d20b7540aebc5b697c50e05165ea03c00c5c0caf336c803f2c1d529a0d58a4d9f0d4a6f442e66be730a53e7d326b030ac1f084160f870735caff67b77ea420b57e0c5a8807b56fc71d3b2a3bacc3c55b460d4531e71b1ffc1470da572094a48ae5cc40d5f2d76efb8cb9f53afd416e8022ce89981e2dea58f43b929e355f92d6d2e388dd39a0338a21babfc205571be82239ddaa803c4bb302d4d2e5de241cdfd0e87897d571d6a7d2b2816abea97db2740bc8e66638ee36efa8095f7e00ef38dd4a1ef36a55e80b88bb2bef52ac588231b3756137c20b5218346e5b745de7f4c749a53a4d76b00471720fdbb160a688519afb49f80e9e572fe6f56bbe0e2fc36d93ca890f3a0d008c30ca230f1bee9bebae36b2987f7f4e093d33c1656b6f9a127d7df546f75bcb64122603f922e1379053fab3423ce6c4b7d50669b6ba5b7c8946b8ef7917cc561f928c5e3940560496272c3648dded781c3c6fd67d34c23181788a0200204cb1538db9587f04ae49530ab93ebe721982075408fc0f72d38f00202bb2de75000001bc831840864f6be3cb07f7f284d9773d90cdabf1bde0385aafa80da340554ec20df923198409c3314f8c58b4bc2dae9c84af61fa37adf2dbd0206af3038f1289dc177530cca6b72255891b632841915ac8e0549c1dd01d9ba3d8d54aa31fc8a6e1aec460fdba1586afbd67423ba93186cc0dea20cc5010c6fa1f6510723c8d834d5a8baaf7cca00c8cf116b04a434b6cb2b4e6b155f84b9f2372c6e59df63e0792d6b5e3647e44047a55840819fee8b6caf698fdc46d2dbae28907321975b3e52de2201952124cfac43cb44d9717e41ea2dc7c0852797f0c5b5bccf345ee3874bc43864978342f3ed014552793e6b118198aa9d747e3c8ac49b124202199622ce0324801ee3611d29e017a2a81872ab58b6338feec4ba9a2fe23f46c2f393bed820b8cda5cc2f07d7a091d8c29f713719ba5e71384cb8dbd2d4abe8910a8e3802c4730d4637cc69cb8c6e80eb725283290ec2e1017e8d5a09027eff283f13123ec87ef01c52d617d8eda42503c81af5ddc485624568789ef87b316c9f181ba6c1173d51238b10f4f20b7e956109c693711b4c63f32711270af877aacbb0e210a722f264eee4f01782308f4be8096cfd67bd98ad2fab34066b01b2b591d7d9b51b49c6320c54730b8896dbe7f2a0000000000079a1200000000004063f5a3ebd7e4d4defa0f3e50a4fa700d104835d482a03553be449b70a255bc7dd928d6bf4f860f4a235e147a8fd200c02e29d1a79cb6b843325d1a45dbc8ee1b01002003a85749bb63267ef35e0b65b0e362f05fa34439c582bedcf1809036929eb6640000052cf602fd646591d2cf49419d1c9750b16d17f4243858c4274915ae9f17698b47e8e952cef1c079b9d23a59e66c463ca72d8877b9097e7f2cc95df3f75d8f1c1e56ae099de37178956bad4719bf96a6e962368892eff2e1c7b533007ad137c88a0deec9a79add31c82fd9a7e1db6da21e0a44ac45510ef39299ced95b2487986939945e7ac185d8504a9eecdb71988f717758a2d5f91a614cbca6094cdedf43654f28aed19a72ad5ebce901681bed7b4491bac5738aa26b9745bbed9ac1714654e1f10fc7edb24ada40214566c6c5eb69eef662ef330f05bb47317c8b3f9a475fd3b855114eab87bcec3b9f35b816bbfee4451f025bf9187b4a2b977016203a2e50945d7fc1c1fa8b5a442f6fec2cb626ee8cf37a5ea819a85b9b8678b4a22e4ad867b62cba10de538fbb4d610ccdd66564dee634872d7aa0e90a70bb922f0e0a9990599d14047ebdb7c6ecef48a387b4cdd71409191e7a5013f08e4100a91bc9da46597e636d1db8e40dbcf980d2f6f6df9bbf700091f4775f9d8eb6bdfb95ada5af18c068b2386b7068b743ed6cfd5427342aa5bb8b4f0b56b0d04b5dd5cb1aab8b0328d093ca6b777b02049c0e70ab8990663ce5e1fe8e61f79710517abb352cf548ed3d4b43b1f492c4df8133c4df99cdae521ff8cd6f3ff8f42f3aae2c23416ba3f31b09770942584a0373d138f2ebc01e71d27a225a59f9104bdc6de2432fdfc7123c7252f186bf01d11d9c110b972e48ea05e5114937745209cd85980b9daee199643193c58e85d3742acc9eb9a6df26e521b5ea25e84493c582cdf4d37e9acc46e16a00830a8a53376b177443955a4823ffda55e3efad77cf194371df2f82d07e0732c005a9175f7780170f8b60ed7d9925fcbff9e0cad782b93cc7f88c0e2749d43e5783f9b4cdf0dc74f895a944961a811dccf8048c2afb60cc4243ed8204edb9b7d8781493ee7ca8138e27ba0c0af9f134b1858fff5b5be684bd1409dc370fc68c4c08b7a4c4f98bb5cb574b6aaf623ef06527a8f800adbc3d46a69b3be599c5c593382a2f6f6539d7a375596310716c889af888eba19ba024524ee2476c248d2b8d47027f22df29c6990c661d52299c74928405ece787f295e40b2dabc2889a7d0a16db56474bf2704cbb06d034cb1a2258b2060bbf278006b2e4e517f1f0c80fa218868d45e01394f9f42b432537a184b56889f978c469e3d020c22d17e1565cbc1b4b8cdd55b37d5d7d761512f74a3709adf7169a061e5c3a15ad9376876baf3e1ab670bc28f1af353d78b268dbe8113774178bc773440f786f8e8c041ab69f578c60f0ce8ac90cea040e394fcc9f7cfab094ef663603abf9486754e08cd645ba74a873da0f62e87c1e7eb31724984bcb9dbfb69db8b05ce9df257152a3611adf8820234d94964f429582f988bd8a0b0eb40ea42610ced038a231fe9ed2e3e7b29e53cf5eeb4fcd6b56f8d1d0fe01424c1076c0a9c40dc0f88b2d5e573cb243cf52faa2a17c277521669da7cba6c98b76f6405e1ac95b74062b47bac6698d3100d412ed3c5bc457e114dfa51b6b0aa149e6f8a3539d63619fabd3c2066a76966f7ca0f2b7c6085ed6cb77e3b259da3fa90a6a02d67a6de664b4c89373af15e85eed298e0fa734b26ddbe9703ffb734b33736cb4ebe2dc30bb8933dcd8718993f9457749e4d8d272eba934077cd8bb3065bc105d1f3f93cabff19e78da6ba0a246d7347fc8cb8187c0e719e49c0cd2300beec33db7b80fe6bf5835c07baadb753dfbaff6a9edf2c8a475add7219bebd3445c05a345522be7cb0f49570603458519cb101f763e8dd2fcad3afaffe0bfd2ff4cb8b3d18af2dc768616dea6c682cd612b2a71266611020020e6e5b75c670d8ea51a09d2565e790d8a94b99f9ec2a38231d17a31578bf17e6a000001bcb8ae0b93020696f803c3f914798857986206e8a02a2d18ea09edfc03b1a2be4c8357158407b3a13797b9bbc158e1fcdaeb838cac5d8f7cdbc7ece6a2bb6d424e9e6e1f2fde2b1eb07407c483c05c7ef452ed348f73eca402fe04b2e7bc3f5d3ea3b42f860a0c4221738ba13e7d1dee89370341e76b48a98b181b45185af2a14547736e31fc4f4edac450ea36652a222469aa9937d364d9f1be286f7148b79406934e6c8c90aa2a72aa27eeb7de939c7572aaf387b34cd6245678c1299d7d222b3af40d4caa754d648be79708aff50210fb952dde5f22642743220d3dafc4a586122364296f18bd06a44d6497c36df4fb68edfa67f3036d1771646c678ef44080f55c8b894bda2115ee600599ebcd865b72ef747da7b5621eabc9a1fd072d4ea3917c8a3c33fa191fa2cdb54fb18aefe7ab9f701416f34b37ec99e3044ad39c1322dbf0faeec64b8fd76b7c26f7c4f6c0fbdfd58b03be2f4ef093912ac7a6e217b17245be8d3e9d85ab4d0444e6a39708bdcf40771edce9114bd1beac04190754d3a2075ca493a3ea158352daa285cfdf789580c6adf2169dbe8eb90721f93e2a2ecbea7054c7e8eb33b44d6372c1289115f2ef4987f03d9308fd04c48414418d02f95ea3aecb74067a9ed3840000000000079a120000000000400a8520cc8b90a11b07e280b206471270c763ff8340fd422b7f19d390bf68244c5721b9eb75d365a4d5c7189f40d08eeccd37f47b621b19e2b699d250f87ec66e0100208840c744efaa420706bd9e263e9da30fb0edef7ab967e3eb50997b01fbe77e0d0000052c027f7a6f96d8a0099ac479cdff42c8756960b339ec62182030359f279d3bc951abc3e03a7757f737e3c97ce21f29af125a7d33ee73095bd54745337d35f0e531c108652850ae8b1c7cf57b2077e6fcbcecb97742bd2d4e0b0d6de661880537fc5194caff8fc80e3214b9d4f3551a71ae8a18c2a65ec0da45b48c070f9c3f5fcc1ed2de65a602a860ffa03b9b0d1b88599d389590edc573316ac4c4a38d891ca8a49dd5685bb7799e2fa87e572609585c5b7891618549839eae1b68c2777894e09029e2bfa990a1a0a35e8d1cd7087bb37a6946d21d193b3dcd315ceef4e4994e60530652e32f74da66ef6e4841842e35587801dfc5cc72728007e9549a76f3000bd0e0c8b49d64e1fa8bea5904d0f81941217e61a8dd01955381fce528e60107d094b55ad8eca531e0849b9693e4a3f2ae0d4f3330fce19273005062e82cda8059ebf51e8edc46e85fc3cd6c3f41772efc708f684deba2ed426735ff891f7936114b32642be32c12e125bf581b90b16a40e350f9e162710635149bc41fe83e90a5d30e87a5e3e78af1d43958ddc96f6356462c5c02b0bf57290206e46ba07ed8b6fa095f52460472dbb7f4b75d7bac9d02ad05eb9faf99012aa4abb943f8b649def79635291a838679a187c91226aef57f766c294f2a771f1bde0c58c217a1f4a312888fee30963c657912114735b47a9576cd7c92ad96463cee854306e7e1a7928eb78d65fb3672901869e6663b9507bd4a5a2e9f4338cf33b9801d7cd400fededf38f5901c3bcb116a22c2674696fe7224b8ddb0bb2f11aaaebec647afea8fbbfefae3cbc449dc2683990e34cf09ff7e2b4e7b3f31fcb951ebbdace5e2529126d139335b28952652d8f7505d074a5e72fef25cabeb3024c4fc0e5a306b8c2ee941bbedf38b19ac8d7267f170b3af94d5f639f652f44061bf48359c899e0fb2ae8bfb1a9008c8205f11764fb00540d6034a0b5c914b204ea54c1ef20e7863c44632c54b11a44263ee682e628651fc06a2515c8cf7b23e03ba43a2761972fa2d047e896d8ce617b13b3d87b35980ee7d2c33c0ccfe213b8a28b05e1fa676e1610492a87b5999c58f5361ad3a485891de431b4e5ccf499cf7910660fb1525a04aab5f4c0d9c14a08d46aada3b3081cd56232bced0e7240acc44099843b48b03cd9279c30c778cda4e4acfff44b55598a5e02beb445fc57111271c2c6259a0d1ef045e386cf8f66d7de5b0e05dedd773b44781076a72854949e126242089dfb61123f4d78b122b5f856eed8b7afdb44ae96937cd10034acb440cc7a116697eb865117446d25f643dff69483a5f32986b3a9dfc0547edeaa3d0f18aec4c7b544d14fd4f4431b2bf29d8ba81ec96c3c5c3c1885455f69e8d39e2471faf0c32da171e2d0be8de89dea09c5b377b5f43669169e498d567ca2eb093d98316cfc19a391e0743f1d10a60925d148bfcbad70187f83e0922c21a90464df77eee3514baa0b581a241d00e780b66d00653d7f2288e4f7e58a112b47b667a441254fc457c612b0899f996072ce919b7b5924aeac5afd82f8a65e95a371509412a3f8ce0dee8f7726b90da0e5cf2a2ea8705b30f1cf6a93ca5a8eaf9372c8521cb905b84d216c3820bf147cd6ccdb38bd228ecdcb6fadaadc8d05158a203c3a7920ff998d43af53b0a546888ce6bb3f717bb87be2eeee61b7460a3e87b0aece83fd94946fa0a775edcea3062994ee7fa3af64bd75d2b152184a5b64bf682b2be9f0a3fd61f54c7e7d0efd32e007144b700958429739e87dd732dffb2dd4ec710e95ec48ca527696e8692ff68deba2cdb45920c34698d635ea69451544cc03038938a41e28f39a033ebf76753000d286e6b7c5902002072b312e94b9a41608cb07dec7baa370a08b43cc1fdbd3f1ff55705571f17165e000001bc78308b915c4a8a43ca2ff70c3f55e1ef78663bb0a11c61d7474c8c48b2cb24d5f264256d19862dcbed24298aba3dd34fccd2c31d31f6702d5bbbf70812adb57339001987726b6cb79976f291d4366f8b0ca3a005c6c9ba3c5af5de739f02cf71aa04e4f8cf7dbc5f57cd55cd5ee26eb1907376762e316759539e8453aaf72396c7e00fba95d122b2b558f4c3bc1077b2615ae89f1892ab71dcd2df73f6f5f8f881be76af1352bf4100a257be990efff0b505a3d3416fcd8a2736c8636b99a648836161edee9ed3fc5fce064287e38dd5e1cf842118bcea7725163221af6e02e2641fd8e9b5fa5db880e6fb379f2a89c89c2a5ad53e13caff9206946331c2e70132c8a0995ad1163bd19ce664a6682df12aac1db4cfeda2cb41e5cb11283c99a96ea6ddbab4f757e1eb50acdab05ecd070d9078240a98dae70882661d6660951800aa699594e650238ab273e305f967962ba01c1999ae7bc2ef0b48a15792c6c645e01816c7994c3d42cc3ff924e92ee4bd28ab0adedddfa1905c30497228f2913b1242636687dcbbed6cf6b54e8a97fb988da2f48fe0f374ea26aab39f55b3c0f8121dd4727353043ff6e8de462555825d63b5d6a5c07023e38e802c887dddfa841b3e870db8d51a190cf19b0000000000079a12000000000040e7fecf6c488fc656576c94e5e71d2eb64a09d1a958e8999309ff548bce696b82b18904cf847624683672d9b85b10d46dc612fc5414be7698d004ea72a34d70c40100205784102db594a7d7116e365c49cb0d71eb1bdacda163661af4188d4eda41ac4a0000052c0faea34a8d9c6e12fb2b66412909d063cfc3feda442afc6c6f9dc37bbfc615ba4a4c8c73cdcae8768888ba8030454053b22e596094d55c1df9ec681b4e964070359a383c26adcc35df35519341c4d554ab555368b26b2406f65144ff902a12b4d797d090ffb721341e1bcc58abdcb08f27e66d439fd8e688a63a29727bfd3783c5e59c86753ee541d47138629050c9b09e6685244261cc352df44d6e393a62161a227cbdd84bf323dfdaafffbbc408b1ce804cf416d95156b03dafe77d4dfd40a4bc4c8a9b14356317e3079621aec1ccc81b96c76223f8ca1570d748cd944d4cca789c187680ea1b920a26ba06e4e66639229112f41a38b45cd65c72f50da9bbd7db7d16e2c2a68e3136edc1836fb17d1a402d397853e6ce2139fa76d23237dac92c93832391e8f30ea99ffb12b673c40f762d515766c8157e9d014800f068b83b1ee3207765f3176bcd6cbfff49eeea02d1a359ab9d97ca0676f41bb6cf92dc8bf484ed1b65899fd6a395f2e828b36302dd8d43763abb7a214349d2439bc21883d287662350cbc224343b714db5daacd04628a9bfff26b3c58f0a4a95fee9f21894db34093bba96b0078a1ba22b4433fa83c19c7d0073fea4b9c5453016825085570e88d521b74de5190a2ae23dd081e56f62f3b04041679543a14888e085ad4139f68d3f0b6e3df9866aa5e2849dc24f2197a0f43d9f2033e02621b7d0ec6ef2a24e7c3666f3325adc8ae3441fbd20c15a52349bc52ce400cb528e59665041d070617731fe991c2302c134fd0343f182840371b43b57ce70bca81b134aa57af8d624c6db97e5b335adc3bc00f5988f909de959fa075c018c7c9503b9f0a40217fd7129b881910abc13736a03f9be644e0c51df1c48c1434eee707bf856871feff5b29ad2519fab648b5a124d6c384a9a0c6f3995a42ce6ee111dbd9464d31d86d5f0f911dc16ef524ece850eb9424c908ab05e14c1570a26e90037dc0fb71149143173d8df04626b42c98c2740772be3a2e013d8b0d4f8f3fd893ff9428a0b2fc290c40ddec18d120c85812a8a2bb9b4f89f694ba5e348a377b8978e7e4e3f03e2c6616d66f3f14ce0d628313eb798e732fa2d089f7c4a09c3ca9287f24042b0006f164b514adfdd719bcba1566e9efd4c054ab703ca869404f07b6a637b6af9f52c378a9a50494b68455dd71fe63b4307945ee8885967c94f18a4319a6ebd4eab2bf145b1e96b1d9e0ed06a29673e988d882fdc86040234021910efae3e7c9eae4d69630ba6a09ba8224591117ae1428f0f2e2c340b7f0dca3d173cec906ee4301ef70ac58a510629d55ba512cac31275333af18a781149f9fbb6edc9566efddbee76d8ea2a724a15c0ab03d6f941b942ff90a63989725103f4829da11bf49ff1deeac52f526ae47e0d417e8666b3f4c7577216e1e0629cebf922795bcd22c97ba0262e5836b0c81a3f566ec597738693447c4ea71f1d3e711d531cbbd947b5afb152dcaf04d9c8b098abbba0c98af8c11b1f4074a876e0ce48630383b960ae9de8b31d915c73a9871a2fe5cf373463bb8fa5cb2d6b2ece2014c3bc286e2d32f269875ed2dc7087d58688dcc4e30aa35cf66194d3e5d080b2983936f3a9e7c8e1d779fae5c29527c9091460af294b114e7aba55313b1abda5f6cdb089285e1aea2c2e3dbf10aa6769b30476f39752f5ed6a5c7529381f2d6a0e4c9a3bc1522139ffc59f0826da034cce90243ab27ebb98752107f6534efbd3e702d9a40b93c80c69b94029c12277cc01aa7ec4d057917ebb7af32ce9919a311f974ff767f196e38f162b153af3e002ecd3dbd23cf9acdbe0ae295117e43c7f28c0aea1208f9475c0d244d6dac400d061c9020020b4b2e3722f068123c7eb80bfcca21b5fc48ce0f5e5fc34bc8b078d371330007d000001bc64ea5425ce251d222fbd15f9981c0923ecff7265cd92216061989621ba5b03c18dac1cb41c7af543eafe04d7dbef9ee59f3c49175a2fdbdacd7f97aa877f93107638cf00123c67e014616516fa78196a2f9b24885efd2dae3eaf49862d1b1523e0e90e083d73fabaec8a34b9cf486e7c0725b4ec4b58461f7a4ac06884c71c378785901ad95b3c4cfe4f1baabb1dbf0346c82c3f741007460183c2d22d80500925705f9b3391e078f688af008c7308481ae3bc29f4b7f596390bb1a747b07efbe19e6cc28e7f7f88ae92b13a057fb293da594062ee4ed18f0dac2ebc5fe2e99417b6d1782ee20e50c871b84a57413ce81e479d7571d3cb16e03acc2dba2c410f025025c07db4b8c037e5a02ad4ffb3ffa085a6aa32033e472a7805c2b27c057cab08b20862f883f50e4929b919b6c7a5f2d761d93cf4c4d0824885032b922298f7d57f4ebf97f9fd14b91bf2ccddc236117e1e8b6f1ed6e622fec386ea41cfbd04733b8bb1079a8d45d5cb87879ba4f5be30021d8abbec7c1f54d1cc2294e1440b46d480c2e965fa514de0510f3fd829f8ac6581526fd8ce97c9ec6edc4e6cf8cc95c001c387d90d846052281dd41a1aa6cbcbd12c63199bc9a2a40892333fddeeab6da144526bbe30e5d1520000000000079a120000000000409f197ad3779df1f8eb3b033eb20c3c2e97c9690876ac0c5d215d62c02f54a7b3eb74d1f3dbee683708b940f9da0bb42956f0f21c2535d55baec4e3496bd234f50100203c474d64e83261988e911d38b77fde7322e4cc11acde7cd6e52f7e2e362031630000052c4140aaad76e13e4976c91d365495933c89c6d85eab8812fb09d1539c9f0377260c4aeb9af95334038f423063721b07a3c375e82682b47268b2d4aa79fdac31957b22d2410f44c3399bdf840d45b6e9ba78851487b75c914107302427a5eec4c436dff5679ea72fcda7f07084eeb4bd16f0ef4adb4ecd5a20dbf08f5aed773b9810b4dc7182bb013464d9ea2b75a11cee4209e1e3e485a35e0a272f04aa351b8a18afdd7d95a928d5ff25f042550aeefe3d5cee2efa3c215ef07680a79ca76f498743d16eec524e8130824540ada38ab2533a91f35265483c374b4208c9b4cc8d994be95526a9a0b658271e8efccfc9a08e4f85d79d272809ba65977f95195ea29d013fea37bc6df0b1a826931b92ea40203f6c5aee007fef745c649e865ccc6dea6d16921e0c817774e0803ffb49289ddd5a77f0c04c849ff6fc227a6e1f8972bb466eb0a5406da4f4d28453988d0070a4f806b0f84f5ef3c46c01ad6e3fb476866e43dedc32cd73d31f6ca00265a2e48ce76d4fe0c01b331fc3bfee2a50292c04add8add37356080633a3b9ce3738ec28350d43412a326f03ac52352d4ee09db56c0bfc2cabed3d07e02cab610401fdfb44ec00c46a701c7ae6ec006085a51df658ca5c1f44cc452518d2ba83552a6f6ab7fcb32e4ed9c15ee8aa4c8644f30f3208ef8f88e46928731693b777a2d9b5a0054d57e2ee198459dd347530ac8b6f60a53106c45a8f87e360ed2cecdba6edb17b24cdf3785d85df8ae7b2f9d7157e006ec1617930477660f8685cb5b2201c9db3997046eaaa2274355600f6d11736312ff4fae1ef09fe265cab71dead749c04eb1239afbada47b822289821c58e87186deb2f5ac37dd45d3a96bb995dd56c727d8e5f5be77cbf51f370cc51fecc9de418d4acc11071b0964b6d85c06765edbe0a976ac4eedcbf54b8c8f99667175be4f2497b1bc3dc0b8117b101a83d6570a49c3e2f71eaa62ec40e63e499d3261082a22e4eb2b8f1dd812b22938417c0ce1803ef141bf38ef8050df6a603df59feb25fd3573d31af71031381055e96d75497d15f3a4734fcf2e841799fcd33d912ebb870bf870d969aaf24198ddd7796cb30195f8093ebb6bfba19601ebb98ae95a3907ce7c54c71a0c57dd89e2dd6a2e6ff87d982d504cc8cd20d65a3b05f0685d126594bcda8749fe32543ff2ee8739cddb4478af91119624d248e16710be1660e12a256846b620c3e8f0f6613b0b4cba75da055262c81f45c54b12e1a3e798562dee0a238b4e3e1f66236c4d43c4283bc034576e362e28901a85c55cadb3c87f9cb34c9706def02f2020b9996ea44d0016b65e40d84b6d884c1601435f3af0ff163110e49833d8a002e487f664b7eb9c03905a2d8e2720a1627b968c5ef7b4092be41ba0a0512b64c33891f4a6b07463bbeb1395c056c65c8e47a901c98fcb4ae73175195478ead2905a86dfdce191fcce8bd1726829c01b0b604dba72110fcd69b48158b7f4d58b473983bcc4c70c790f37ba909fde21a87d71e094dd362b8e51e5eae3e4f43f8aefeca8b13f90b4307147445455440512ffa9eac185d5e429bf925b627f205134f4222d88adc1b8e67f7041d1763b101239e26b08a83ea1f4b436b72c9f16bfba610969d88c8914560d75bbf24ac4d77d0e6518ffa9efd08588ad3af2fef7f811aca21b8a140582673e4009785975fc2ce0dcdb3ef1491c603ee01fd47e5230cf1f9c3f887d4ff6172c5da0f64d997d84ce769157f01ea51b5f2409185e05dadff8ac59dff46391640e186789bddc79e6cdd0d47c92feba5b4f6497058c6392fd31bd285f73b29b91a529f1635d2b995d53d38e9027bc0e58cd2bb984b0085fa8025efad0200207a0000167e18947ebb85e518a662584378a11bbf4d79a6f383817dc034fcea70000001bc959076e00f11e438b85dc8635a0f7e7797860580774953b58f0c958b03850f589aaf23fe982cac97dcdd0c53ff5790b1933521671d08e3795c983047e08193ef78fbcea76f62c38071f0700cd18527c6f08421587e911c6e7510d3b07fd95fbe3b56471421b3d719b5db9aff7f5ec434c639e98b3966a692930f131b1a6722450b0c15de1af2b9cd527662dda5f2d2784f5bebb679364bf8f8aea325d3df48d88f34bb2a291643a20bb7dcebe75d3933f8ee9386c6b49c418fec2c5d36502cf419d4cf695a8b65c2cc448286f2d5b31d9974644241ab1f5869dd915cb4262e947ef77c7795fc0f77197c2801e5878c4cb272bdb1df8fcfced73e598aba55055e2af3317f825ab7f5252b1bda3e656bb06f532298ece7bb5b1f5750ceb8b7420caec1862ce3c02ce2bc1c631f73167262d900a9cec4fc7923333da237a5d7b71051c60da8a8d23d5109078ca4d675f283dc16c7d0b2234b0e33c93ec956e4f0aa012a101e7aeea8b61c18433579738fda83beda5dad858c85aa1ce2409b0f0800924b8a551c1b2712f0faf4e0807dad6a01d078f9c6008a4f813c29ac4d767885cdfacfd44979a15da219ec7199b041e829b2b1f12e3502b0782356ef97409d8a09b3334f9a836aa28435d9cb0000000000079a12000000000040f004af4e06c9c4cb42054a2fa0d1c3054c5cd20016d64b24b4b11b9244f3256757985ecda7f938fc85f379b97419072c27062048b5d91e38711f56b39b237407010020ed7113a56a237a941bb345a5b70215c81c6b640a4bb0121ebafe97840d620e480000052ccdf4189570c2de3bacd5853aa3a05ca4ecf76f6e04dd4c9eb707ea1bfd1737f1919fdbf1f3d5de6981bf1a0c165ababd3923a885f47b30d92cd4191ee052fed3103ac216f9d8d8a1ce3528584986995e61624a0a817c82c97b2d8d5e6c07274ea4dbdb6406a11001e58392bc31f1067384e85bda255c36e1c9458ff1b97c72570b088685650becfd221fb0e3fbc4538b834b5439b49dc337c3a69ccfd63e9cd8cb945a99e8932c0cffd5208db31c4f65fcc0324e606429466584e0df0f98cd605f252cdc2bb5b8f5b24c21528159af517d2ce1e75f17010d945130aaa6ba871d7ce6ec6b5d54ddbc9400c09d37a2899158b70c192c88704f1979abfa5c248fc3b70b97caf7484f34b3efef01e75dea3fd296e663d97d608788609bd408fd6c2ac5179ee927630e38cfd7c97fab4cc8b64526dfe2b7a81e2da54af454384910784b771f6fdd538e4ace0f24b3504f87e9325141df9f4e79ff9a2471e3a687b0c6a2ad020da3ec1c6a3c3f0d82c9f71c3336467fd42586a795b4b3602ccb8aa8c0f85f2a4f43b130062585ebb3103208b3d73d0801daf63014d93983c97d68ba58fac1c4355d37d48737b1a685ca7b528ff9bd1562ac1758cfd5d22b4bd932a69142380e6d220ae85bc68dcd1346c8a35b675074591da6fed313526a947d58099ddddea0496de0c1f0c2508df0723391a185552d340cb04cd5f53b4b152f6ecff4176d0e6695634c1db0dab6f14cad6a56fbbf519376e297580c2acd15e031ffd6fce7760680f76921c4f06631158bd4d0f59929a55160e388f41b92b86b65007b24d87d522dce6d6df47378b87284fdfb7e0e5a1feee9adb84cbffdca35c8e5656e5da2a44b003c32bb1b8066e0f31a803cbf9d94e0358d48c353472bd2972272e99880e98e8821d41fdd1b9f8c341a293baf74f8fe028004d06647bf569c72627bc79aa27b121f4d62d1f9203b23df2faec223f70c3159d85bc6329be86e964ffed98a1a9109b87b1038a7182e0c7382884a67658d30392c5267896112e7448b7497839d866082b3b8e3792523f9accc921e56866c9cf7b896557ee195d89cc0c759e1a423e8119a5710be57fc687bab31a8e84c97f9cdf6e07c5cd76459acdfdaf12f73aebafd162cace75dba75e73093653d31f6fd6c71343d9568d5c49cefb4b0e08e0a08728e7f218c5e081933372d17ebdf4de714b592f9cefc59d0d1868d54c6456a185b10e4e7fa08ec79f440b19adbf81a55f13cfc460c89f6038894d0891ade2b283d84327e0edae1536048a2701c06c8031b7e750dc58c171dee84ec66029efcd07ccbfe43d9151066085d4563c1296b0c65c27e99a95afbc0175f8d93b6adfb269f9ac52b8388993e26ea94eec8f877624a929ca5382ca18d97d7a76a8301d786635dd4cfa71faea8ab39a02b5b3b0196257c4ab396104766d5c6c9ec1e5306650d5229c261530d27ae5acd76c3ceda4481ed3d9c9dd4d62b2d75871ebac9b9723e1cf98d2fc111c9cca97464b48d79fc9147d89d9492b8181181d453d662b8436921d3ac343d9853a30a64de37e67c4357c5a52044bbd697372ba8aa254d82a8fb1a973d435f96e4503e543dcd2a424e1530cf87db5b1fd52c8e73ab4bfceb0b5d40d8b45f434a31edfd79e547031d69be1454357839e80605fcdd61c360dc1ddbb4f4c7eeb4815153ce15dc83d5293633c3b32a9acec3e21e46d75df65992e2caad1a6fee385ede73d0ed1c18d3ddf38504b6709362b3b690d45cccf0958edc9a402d60b813ced263e284b9e2ed09383eaf1a4c66f0f2b7252c2a52f221a71ed41dcf3460a01eec414ca4327a2c1f913027100e4598f45a42037a29b950d04a73e4960a29ee020020eef4ca0fd49acec9cf1f26d8c18adcd01ec47b4b64b4da7993f29674f731624a000001bcff85c34cbaf243fdbcfba3c89b6b504708ded1fa4caa0a26721bfbda931b11ff945326d47060a9bc709ac458c525f534874fa196138e341ac35ec6442b6dda55fcc899800af8ae3d8cade8ada1778bc2bd7fda57661adf520d284c36a9feaf0f17ac8856773758a88c933916e969ff4f66661661f4a1c7f34ee8c8f0ded5ee07a9aa3d687acea6584d1ce9fa280106f49b8f22e643c222221579779eb6c4540eb4a057f1901234aa1ac3d13905e505aafd441fa84c4515368eac9bbd14ad9dc4432aeffdf045d2faf88f3522e38961bf85d701e83268c33a7e418c6c4ce387b6b4211854020ce233197e71933d2469dc3ec8ea1a2b3ce82031c7ab2baaada57829bde5a602a89ddefc1b0473d2d1eb08bae4694a0b913d67110679173f85bfedc12433a88962c75418d9d2f8887ebafc16aec30590fe3fe0267c01be819850858f580d0939c1a94372e320fdec19438c6b8385e2dfe5b916f943c584496201eb1cedb9f1ea91114ae6f9568ea59171a931d29a3b83fc76e2b38d49b6e9ed8384a627b5601225125fcca3d88205a684c416dd3ea8b7c8b8a2e1f5bcdbc298f612ddd974d87ded80100c2ccd6801dca383ba24861fc0a9ced02e609231a0f799425b823f0182363610d184dfa50000000000079a1200000000004033de1a8c95ce5853d01e540380198e9e75abd6600da1df298e510663a6f9834f87fb4993e4ad16a2d4b696645a88d162f18b683288b56f1395068f484f9c788b010020256eacb99d20ee6fb10312da37c19cc822ea4708cdd7cb096aeb5830cdeeb1090000052cc06a593eab90178a899cbffc01aef176d3491942bf3f30da834d2e944ecbf5cf3254b85904856d760daa1d3abe181207314169a81d83e148e9fbc1f66e5af5668254764bafd20ab99512dacfa9b81b8666238e04139038ab6f33be738ead4304c3aaf2e94a3cbf67608b56442084b5f8f3167b70422fe5379a1b2761f2249a818a3cd0e791c3b483d5f3815b0f7ad1869e0d2e14e3172cff6aeb3193846f2fe6170b45f7634507afcba895c00d9c3524576a3077442f76065efbb5b31b628f8730c27d44dc04224985517f180b2ba4f627ae5faa0e84874031ee59b17702796fe312aada77b42eb76732e5aa457656b28d96b622426fdaa7b2de239648ddd9b13d271060947d26bbb21c2b6d17e008d6a418ea34d279594a9484d3b620668b3426c2a6c38a275d7a2584cc1cb370d5cdea745ebc2ab1749bfda30192d9f17db982b299c6f835575443c28c642262ec7563aa3e143c5c7526c54515c1fb50816b1463678331d958ae980ff9589cb33e8c8c1e9e6ed61c1ad98ff7ffc2db98fb80ab164c018de89da548077d64b89dafe34bb7a82f523a5213cb06aed4f1ca1e948c9372e1029c4ba09ae24b8dbbe6a7469639d9f903fc8b3534097f65047b74c00286c4856d5a77008b83ee7c2ba42e54912ea91287de867eabb8e1bcf2bf43764e868066f03d4a745454f6b8f4ec41a4e02274dcc97fa2d8aeaeda7675b5f2b1cf099d7ff9e98b71bd215dd5b888fb3e7614540d7aa4cc6fcbc799ad9259a4762d12a3da5cbe04a0d2b27ca150cdca2c271e304ebf795bfb1992c8a58a6694f0f90e77676fd195af22d4836000907a19a4f732258acc29541c30c51eeb4a0252b67f46ab7cabf071042f64c2acc6b238f88c6c5e245e5ae4ff9284ab909cbe78696407b50c8f5b3d4b7f445a62388cca0403c3a1921cbec05b18c945a2ecfadc182bf48280a0add1ecc71b4725eeeaef54b712c8121ea12f1f9530002398def52c48e6f4fe88b3c411b21dcb2c52e0a0e4a7d3b0e2a5a9c10e7838447149d805f7e2c7a38b685b46c941d5aa796bc13c6ae6b317f3049dacecc2ca8f17e151683af53d484da1b2ea2a643021a8523131509ffd0c4712be76e56f929c885e2b7201995c43987c9e68d940eda34450efe350e5d8751d7dc3f703c932257e8ae0ed4bdff43f25d7897ab50847c7b3e75895746b746a9556d024c43f71632ff78f1374cd8d85271991aa5b8cc123dedd72c57961e5d9009430f807c072cd53d22bcd1fbc3f8fbb47b9703eeccb1c588fe74ba473350abb7efa99f42fdfae97b19bb38ee6b5fc6df0efdc053b0f43cfa04613efa3b0f1c7a2c7b16b77697d85fbc26c8dd331886fffc6a857682026651b7ef57082f57ea649513522fc0a5c802a98ee223c1372f8910cf3e74bc7ba79efd731801cdb1733882014c03223cc81de9377be68c9075d64618c09f2b536b0b129717599155aeda07c639775ca819e703396b81a228514d820547b4ac7235c38c4e01f508257fb05b70ff961e35ea3107cd4af0fbb5b5f7d0013697cd2f879011cd456ddf86b545600ee328458916971fb23d4aac78d8c685a40ec30a44b4a81dacada3b8fbf80781fecad66b5ac403aadc12a39ea5aa0c1cdc78b52dd5477c9ee0bca3b4772c4395cabed2cab5d2f89ff537d0d5836e48405f6e1837af7b27790b4a86b79352ed7951b6de7a1a1909ce7493fd5fa786968e95f61a995b8c0b7ebc6fea86c370f79325fe66d9210847c476b2213c9aca025bef94c8c2d5eacabba8c70888cabbdcf2ad6216033ca3170d8d1c50b98ea5b17b1361c5427230dc004a8403c3ac47b46a934ac0da13655f8999ce3e16455811cf1bc860009440200205360a361ecc721db6815f993d811d6b47175e103f2693d3c1187bd067b462460000001bc3af53e657b8dd0cb509703d99d1a57288f8eaa48d8dc69bba961b49916017a8fe12cda91d44c87bef923741993c68bcfa8ee4272ae5dd73b6c8acd80b33da26519ded7cf33381b98d45dd0a763ba640f5d23887f7723296d93e44219bcb60e4dcb938864d30b0eefdb9f06585ed331e809a549012c5bfb161c00e48b286d08b4f80082646e1ce551359814ea8aed48988a827f736a13342e4abac65db761974f884f35648dd71c3cf848bda63a24f3e00377099e8ece21971bd87b2a149ae01ec75333c7ace912f11dc268e4fc32f5b323d500ecc7e218629f0f1506a878190c86770150e7dd3a9ca7d21c6d7ab172b025775ff68375165d2a8dbc3b33c1748da3d2674577274faec6824ee83e8d9ed5b1fc68bf470dae7678ecf82fa7808ff7bca6f67ad02939af4bea27e3a8eca1dcfba86db1e9a04dfbd4e9f84183e4202792592a43d23297a359dfd352d47b8e1a2f3ad44ea85a854d919002ff27cd28492cc10ecb9d0921c51e83eee99f1a88a458f6d2c0178f86fc2605daac50218ff3fc5057d7f1a1589a96a56766d93840f36a4c1a2cd77b626993c1309f17733b418d43cee04a3e7b6685b228ecc5ec4f6b676b9b2073503e40ba288e1fae69e512a4476acd5ad2cc7d22fd6a1d0000000000079a12000000000040c633a355bd5541055e51a164fb99b67809f01f768dab502bd26003a9fd1d304f33e53fe4064fde379a3b8286f6635f9266f8da7cf698c79ddd4269de166f6388010020a090034501af2e56e5c7dfa35a3e9d665769b005c02db69e1c8c1f24e3d6cd0f0000052c370d8c18509923962708cbd5a45579a7ebf6d3c626375a67364bd0af8361d946b34f9fbeffabf098cab7572f3b1655a8acd90b096c3dca3565003e02925d42f8218745af82de5aec3906d60b8983993bd4178c02e31cd40bac788bea4d96b91b492d8202e4398a7c2f57488cf0671912b0e52cb20d6d3b33aeb89d40c71728b6637a5971503a5b87ea4e29df821ea77d1db501d05db210c2a753c83e7b443131e8b048f0e320486f6c5e22ee64b7b68b8d7e8bc97d3bbe8b158ddd142bb7fddd46cbe082450cf0b8443f9e3c2251f6407ea607f1c0868cde7767cbe348f0c2434451580f82aec21f595590b8228909dc17bcb19ccf59a5b0570338d19926ff91b734f9177b69ef3ce2dc6ae35d93f64293ed2b58772fe0225a3a1397335f20838af1e32c4945494549929ff5a63210d8f3d5c103da8f8bdb0c7039c8b4dcaf519af71f5a24ec77a6d359457ba2f63ee7e3596cce5750dcb0eb3ac2e237b6f5abd984adafdc13b079ff268995fb6300e457bf462d533044107a6a4482dd11e6713daa0f928d51d06118ebc5275bc05c910da3bcefbad28a8f69472974c606dded9b83a540cc39b5f6765cd62cd5d2b6f1d0fcaa72c024e9700d331a86d2a413c64f8423860626d46eb750eca252c7291ab60ead44c10656be81614af6ba6d2c19c0ca90d420556fcedaf82122576ac11928fd4e73534cffc2a2767f398e38a59e9b6c703fb906a1df769b7dc787d27735c1ac98b6ffd4f5416297ff95eecde0f916cef29a4e3c528df02bb76da5c4c4e45321bc3649e01f75b9454c7aef54a17932af552bc4e88ef32276a2b7405ef529de339d47519db163e4d23627cf622a0d2f70d4b394c68931259dea5d055947f52e74b7d85276e123beb24d0ae7948b6a4016f23f3942ae2a3f20bf34271603d6ef3046f1fac9c803f3070e147038701adaac6e961d730bd0683d70d7b5c52d847a25928c3007e9784ae01cb66f210ca37e145c4eda3b7b2cd7a19cb3fbc409883d1bf3223f41dd8d60ac86cd39ec96e2b673e47c4075ab8552ddd84d2a627ea5d62f3f42d58956ff44cf232af5bdd670d57a06dd935962e9ccaadaa951b7fd8432521826d6ba746038cb0c2f466e1a04376a6243e18b47497fc417a734e993207a66a00df9571bf32632fd94e354e9a15a10945b1340e0a62c9850daa8c8f7ba7acb7547fb44ee9e69793cdb7c736a2f9d2a9a670470792001541aa6ba8c8c85f7a8ac76661561ef1b4c1f3d4929703907f589debcad98225f6db32e19dc05dace998d3ec2d84b786e2faf7046dfcf148d4037ef36ef3db53c5054b91c9b1c8f638454264d0bb8e373061fee68f1e6ecd61edc6ba140b2f21f98b9465f37093fd6f14aa2a3f0fdc0a253b287dac5fb3c9a0382300529fe12f6bd1fbf9c9f8faff85596efe0c60344ab777ec1007c6938ea049de099a350f2a63db8f23ff5838f7ee4b45a2a018d40e2adfcb960d10cc41bc74f7f8608086256dd401f4a8204d385fe848c3fc02d81ab208536db66ffbb0bc1437d1e379a691a03136c9f384bb45025f846598c3b120490016736194a4e914cc0da7f42a1f8f4cad4e61a0b2d1f3b7101de5beccba65a82c7a4b2e720b3f5486b90a5dfb4a74fb691580275d6a3cf7dead74e90208cf8852913729f015f917f79a4c86c2a78f3e1b033f7320ee2e1bb10be33e550018344c573dd5c9b010f7f53aa0fffc89a62c8db013eb728d212e79bc94ffe3195aca41ca7e15b89136636abfd3cfa1db5cba36b4542e0c59ad3a09717b7926d0f0aef1125b0e00bc56f58ea01066399c61c5bc1ee605b6083917e27819f852a42f5188334c7e151d84fa7f3f980bc1b5fb605d41e020020b66f6a0dd01344856951d169006590f0cc7540fc96b49afad63a6da18674d010000001bc289f16a88f4311bf520a93be5fb3555aaf6cd63b2d751fd696a688dad0c609a2ca5cea4493d9be8f042a1f231d7f61d6b8767ca2f570b39b3cc23a51aa1b9539a836459c94f7fc8bdf9feb2d2b168752426e7935e6c66ef35ffb1d7ae317beb002817127ced212c3ab23d33d7113b0aa06451fabff7012b13c02a45b49cbf6bbbc8366565bbffd00c326ceaaa2a2c421dab7a6b64430cb013d6d909ed31ede3ae014310a8803413682e2ea4f66e829ebeda5e7b961950e9a4f9d898baf94c210127bbe2f8458365e75eee88a34046ee75cdb60a1ea1bcab3fbccc74c41bc360ebaeb7fb150a7e7caf4b19ca7953d633cea66f8be4dd5637020687ac3a2675b9b522865836a522bb7abe14903536f6a8a54d220f445db1ee615bc55bf8b3aa72e903977f5a7f1dea8f6eb5dba6314e8fa3ef8c918f855eda63f7798a3c8180a6e12543364c1493158f717fc68a90ba321d36227cba4d8d6b3d08d39dca86c7c9a7463479f6223928b212e0d9b45ecf3249c8806bd03f0c86cf287b199a0d7f3771169ef7b271f543f123ae568afc9ef1eefa8e3cb2e62a9a70d2ef07702ac0c9ad4af5a88ddd94eb943926954a8dd75f29dd47d6b5c327eebf7e8bcfcaf1144365165c6528693e1cef65cd6980000000000079a12000000000040600688d234727feee93956cd2e7e8555e3da4cf0d67c9e3410bc9712416b3463f86cbdead18fe9addeff07af8227cd4796e5a1ca635d8d36e0a579ec06cf3c8f01002025451d88c7f19c5cfb91029473f1ec231af0269b5bb3f39f1e8e94e1f0a8d43e0000052c589e4b4aa20c91b4e859240195ff34c03fa5ea75c9664854d171ad12266bee73ce02bbc95db6f5ddd43dd997a463c4e5f087a5cfc28b5d8fd9fea358b07da493775d1569e7e44c78925fd1aa4361edc2afc4c27f18fc64f3548a891a3d453979881a4d80da6065e49cb72cc4a16cb856287ccf7dc2da8eba46968af85bc3a26296f8208273a7d3c6aeacee38178cb6bd04577374486c20c073da64ed618725cbff037451b3e68faf0824ebeecd2c8c971a56d1b14680f7c0b6bf4ada4aec2409b3bffa67d8dc304139e953a36b46b435d4a6fdcce839475d6b92edce1239317d32273926adcea0776be8edf3041fcac13834cddf836762f3cd5c1e2e4c0ee1f73af289fef0c5c78f22ce0a9e8a84292f94ea715484a2f938bbbb9a3a5b2e78f4ac98ed294c5610b7a2bfa41cac100af693944ee75095d7277de385e3e1e23a41a96415afa9da2ccdfee298e1af4c98d286ca40b2e381e5ce2fa3e75499c7e7ec2bf48a2956571a49783742248cfc11354fa40f89e0f0f732c0d542633ead1241b168142754128c7ba103e31e54216dcf1c4b44f5f8e0deaa30fce21ced53a6413a76ec4e3d653851dcd19bc9f97ea66d82b813307a6535ef4aadda19880fde81ade6b8fbe6553ff8409b216033979486d76efd36b7b7cb07e39c8e86ed0678d6a34ee840dff62f1aa2514acd45da3696e17de6db400b059cfcc560adc7b67ada6a27882662e89b10694995f53c67acf64611d94249cd5569aa23cc74ec16a840f25def57565a7fb0a39785621e7d7bb5c09192c2e7a51ce4896ef3361fd511bc5d14422e824c7e173649c20152a8369106b61f60db3b683c85fe9df714b79ba657d3cc588ebfe96ca013205d2f8bc23b8e0364b9438af9d2c8b1b41365ff13c7bd1082861fad8cd1c4321449a02c251dfe215f215ebdc63efb86d2d57e1fe3c7f2d41fc5f34f81e2b90f7e9249736ceb8ac4112e4f5166c7c723d84c36aaf21b34cdde716e7595643bc1a606b36db12057b628a75a0a78b25d5dbcca11d24445faa5be56f1da401a17b7756db9621ec578dcad3e04a3e28b1ec6f477a1c04a3f35aaad56940dd5bc0dd182910b6340e3057ec610b0bf7ee1be3ff8e27368ff1152e9d15e17863fe58dacdceaf9341b798607f659b46282806be49443c30f90ea3d554d941c64e57c8c665d13ba320b388b8a239c9efc984aec624f5fa4ade9982f20063e37557ff45694ac7776846f7a33bd6e5aa2f1ac0a29f0498db5a8b8b89ab5f3a39a94819deb3597894aef4f006b5809526137584dacec13853c1f27921fe47691a51d47531e9bd5a4f40d6a571a776067a1e08f080705ea73700ecb0d9d838901281ac7ceccb8d8746427bc2a31d716162a885ab641b7c986d8ff68a6db6a9b0551667dcd53b8822d73d6ddd6412e4cb8fda17ac4e20c4e5d68b96da85fa7707ecab9b3d493e32b2568a180d5131caeeeeaecd2e5f6c5c9a8be0fee692a0d3600d9e6a74f6cf65e44b74d197b1a8dd1ccdd30f86337a60d7c20ca360a9da2a25579f5c7ff502378212051395a7870bcd94e1e2c42fe7d3ed79dce461143ea49d5718b95689c1f39282f2af52b6c2b4a34f87c5ccf2bca4c3408ed7b143b7e30ccedf3441087e391e669439834648c283302507556310445b63170011003460adae71d19ee684d9d91548c0c19bd53c8e510b1a70fe1c53512e11783619b2d2d20c6a39a3bbd451d02e9a0d52f1a3905c96d8a42a39b3039703e4acbee7109eb60bd36dfa3a5ebbacfad4099682df5aa20a34ac5f630e423987a13fe17009bc8310b78d2447e9e779e24554391b86ef27a3fe546bdf33ccaba8b707544a2ab851bcad55dd6300ed2fe020020019c96d0e865f3d065391613a17a3507f7bd12e3f664ccafbc817e169e0ba17c000001bc6c12745c81cbb2121c8412bec3f72b5e349fd3139d19ca4d7075157c09d28d832a472ba546b3e03fa52d0cba5608678d24da159601e6679123104aaf5df890948154605a9bd62373038766585625bd86be37e43aaae7d82b5908167a57e128375fdc214825d2c96734141ca5bb184240ceb7450c449e1bba09f19604a0654c0640e77091ed2cb6fbe885a69ba7434a0f95155d57019d6c35eab936bc11b1803be8847e919cc13d4424eab042e92cc95ddfc70875ebc59c8468451af6d7f207c4956319ceea26e4926576332995748891fdae4b6d8e1a6d7e1caee7c6c5a9204453b1e3fd0f34d20a25df58fa7c1748ad856c9771d8e16f32e5b03bdf3498fcf914a9671f7f8a14c454e10d3e808814dd3eaf21440b6310a8f8de116f485c871279f0ed3fd060d13e4805190c004c4d54f855586b4018126ce5c6ea0d4dfeb5354495b270e9e0625ae1fd15838fda960a6fd691eb16684e70c02362c9ca898e4e5f70bed58dbe580146dd4bfc84066dd492fe68f9eb71bc8ae4ed6782fef7efa15f7b9151b0cd41e6695ff11400fb44d38bc4a707e2b3f49375bedfb17c14b8165cc163ba572c8c5a837d4bf02be3bfcdf28bb16a780a8ac9ec596b9ad93709372219ac824454d2ecea1acb9f0000000000079a120000000000402406579a89f583deb8833a5fab3056b32e10fa1fe5b28b1b7c0f1d57367e7816338d3a095a4dd8d5b5b6a69e09b94ad6f6b2c8cd2e1eb346d6d78dad08698e87010020344be1b22f5fc4bccd3e6e675c1944eb37eaa8276b27a67883aeaa8d1b6cf5280000052c9f0dfd58e142fb5ca3e9679cff94bb00b15b9233b9ca81a7318b5ef721aae733a76b9e16ada1142b372842c0d8989f492840dc1b2913a45bbc3893a998926fd96005a88298e3c833940c125c3cdd86207ca327087efdabb68fb90d3e66648a504770bf5f58a4843996290cea2c00bda662c40845c31430732affe1deb979cadacb8ae7f7086926e2d9e24d265d8adf26c3806cbbff544ffe1f9c4503c460a4aad42386f3042206e0e1b7c07fb18a5d40b809efc9884e65ae1779c55ac901eb6de01ec5f55b091d02f2ea2510b5c10cdf02bb43c0943ed42c15c2ca3ca4426d30c41628a91189feaaa5ccd1925ac34b0aebca7aa0a0c32061cf74a0dd4ca8b8553097ce0d6097eeda7974105224472d086e481296cf4a71f79cd00a25e0c60f4c854b99894972a9f3c7159fa0d249296d515ac5b88bbdc7c583e94cb9b566d80e5547752044ef00e488fc329106233f46f09822e41da37d68fb428d185d2bc27e77f3381cacf54e53a24086d54e43d3df6ba8cb38da4aa7f4c7ae763f7e82ae12229e945df5e897c5bd9601582ad832fea2aa4693286e5f54377771a2b5acdee55000b49e940f9e1aaf84803db8d391a6806ea19f52259010e3ef35d42d4a5a465550b4722374cd88295c964af04fda2cdaafcfa98236efa191e02bb29c725de7a4d1a61074f86fb9a9ebb033e053acb50d01e07250e91597955410b2263de9bf7afe552f683778a09320e8b954a54d252ff99633c6123c900714639d1aade5f4e87e32a3ef8edd5f7cb96bad7cf84567eba76991526c70f2054fab1714d76538e8ea7427d7a1689b66a89688ac0c2b2199d54f69ae6148075cf2cdfcefbc14ba98c22d0ee9919e589b1de06b9696673f01b0d6a10948c6d3d806afa8bbad2a374b42716b75a619f3a78887a30cbc19d42b78eca8644626f93a1ff3a157585915a951cf11274504076c1d4c31ff65b1a752ad4c471eed21fabfbbfcd5aa4dcbe847dd3f160e3160ca3459c6b32a539251845e532a53cfc2117d9ebfa2830813ae96734536279c54bf2be9a2110babf32ac800576baf79608e0f118ee647a5c542d6904f666026c7a1574b4f336d715ee6acb640654ac1c2733ab32980de8e244e71b9362de7d13f1bd3cee6ae24da07c8e5cda9bbb30189054b557865763adc25e4a55a4c14bd20ec0223a95f9165df4552a3a1cfe17853457e12d43e7dc807fcab9190c0fef9d4ebe74b21eec58222205c163b33a603617672f38aef335047544ba8874e324748cbcfc70fe236d48f756ea75ef2aad528cee654b4be2753303c0d78465157bcdde0707940cbb52e8de6e57f0c92d98b71a775b77c22e57c0aee0f5663bdd739047470861187ba902834c2d0ebc252f9496e29c0b52edba4c354da994e5317f529ce95e912d1febbfe1d0ec26c0b314a8aae90f598ebdeb9d237fa66cd5afc3e54cda4a8061d6412fa5425655bc7b899757d23e5e220eb27d86043802fa8e673eb2aff98cf259372bbfc6427bd73dc69556393f8b15796fc56cbc7f04eb0fabb310c4ffb1e765e29a33acd77f89f2712658cefac7e9d45eb36ca2b530e60a287b73cf4da00109105a8365badc099075f1a61919470bd91c19fa9f24b649ec20532b8aca7c96fbaec2052a7cde746af152ae96e304dcc781de3b356fcc3a3d0775ed71e421b4f23c4f5b1586b6d17eeaf32be28f4fe658fd7f050224aa717615d0c1dc354b8eacfeed7a0e2ed5a2ef210d157fe36a0837857860b66db0a2e4395096facb924bf8f0c0c7746fbce91566f84ed9ddb68ece9a741747e0d0ae2cae0c98b1161ceaa2c9c379f0c9b18dffb2f4b7b96a80ad2987a4024d99cf8da4cc707667183b5f1020020d14a9a213242e5763172851e1bf9f72e1ed6c6442514309fbcc1759163044879000001bc4a4c261a24fa04b0b2ce2268f4dfe83347da303d1ab62ce1f20d4beca32a7271a32234f0755bf46070c10d8f47d797121516e4a47f1f9423aa30010b9615287b9f5e7d0274ec1657ba16ff541b6179dbad4692060ac8b5fe6f3e8a8bcee5c5e9a69e93a3c53aa7c8ca5090fa5531b35d1a72e1a97e94d696e949f9d9c3fcfa916dbae715a5b47742f5b4d48a98e9093dacac8b5b8185cda7a966ce5b0eed198e6c81af1d94fb69696d59389eb70b7bf871828f7572fc30720b6c15b112e921d5d107b78ab7fbe1b96124344c418f5f9f7286cf60c8bceafd782be14dfe54588746a6c69b64855fa26434fd0120f05ebfbb4bb579b36ed7ac0c5a376d5c27157c2fe86fcac2bd85cac7bc0aa1c790fe05832528309288b9ceb2a2e72548792a57beb69de48b3f24e4dbfa11b7ed11609bdf258730bd05704daaf72799d77d827e8dc7590f9cf2633a8c6b5d6c20c8db773a3f907969523a0372e0d6382406e2ff2322a0c0c48eda3902931aebcefb4bd272dd4f2d62e52eac4362bc3e11f515184e5f2b65722d2e0b2da73d324d0dfdca23807da8a6acc053ec2d998e64104278b6038aaa324a1f101853e967f4e3bc725d597fbfacf4a8cf7fbbe852ee803408598ba0ec98c67ec83d4471c80000000000079a1200000000004013e5a1473206c1158b8fe56ea480af897c75b5f324d54049fead9bab904d63ff9225c98e93ff36606f66bba0de966f19ad1a38ae6862b7d85013add4595ea39d01002044ec9c259ac25785b0261c185fb23c20183c959ee04348e9127b6b924b5b89010000052cda7bd4cf6d224648944acef226545c86c16275f3d6897281debba66380bce11942285405742569216baccbdf477d7292594288f5c78bcad8019824e6d19413bd4345ea5d1bc5cc55bf1d22f7062c4229ab9b7874db14224908f9b04acee173898efd93337e1f4d776dead63a664c745700ff10dae53acd10299105d97b491c3a39cf0c7d8981096aa4141caf3cff7f63dcc9915517bedd77304068e099bf8b34d11ad192d4879787563f2a393a08d9def2b9096793f62b3b0faadab3aa9a6a7644b79ca002a6ee76cd66bf825cba53c3a4cfb589ab0027e11ff0f8df20064db6bf2f7c75b92310cd09924ce8ea88dcdd11a7a49adad11e2488fdafa59823561828720a43ad7a45d043d74c95cc25504ffc7ad5d08ce3f392889a2f2e23adff4db7e229fc53731bc5bcf325f4a65e2e056ddb26901c456de01efe7d26a73333cac3584d3743d90c9c482b9a1aab03acbac2ff2e50b2b7ede233e3397ddf99a716cf7311a39a8a84756b5139958324852a463a016e172bf24cf24ce2c6a145ddd2368490a2c03c40f133d23103c51a9840b0beedee5fcf0e3fcd9a90a6610709d6edce8fc0a679d50adf38709858fc928938435b99fe33af759452ac774f51cd33cc4e349dcad15833ffc212ca1e1af55ff1bece9a85d263616884a03670cca5a17f9b6d013b49ddf8edc35e349ef584012e9cb9bf552725176f8d0261c7d28b4d7c8616f09056de26535c195da6edfcfbe149d7fb10ebced10d2fc332254522a84ba689af0ce8efc20ee1a9b03b598c46ce7aef99c951ea998ce2a3f22825e737b028e5bf58800925210772e4478f42b812a1be3425d3cd94cbaea20dd2fdf5066ac637e835b39a71beaea842cd91d33ed8a51bdb297434e2e0dd3286a618d5d7cbb5c1af1a177b0240bcc4c52da53f3132359fe22d2f5e72bb1d5638372bcc9018606299108519795263bc52e378e22a71e7f4f3b69bc22da2c057eb13c221877116c4464bba6a2937d218c77bee30a2718b03e6bc5beb7572563557edffd7066761175c9ea7164ee2e05ee55d7a66b62818f1ae82959aa83ed9f239582706db41144f2bd533620c45ede6ea3c08e4c6c462604d1cb0e5b9f35f6b1a8a5b9bd0a2a807b06f2910bc78c6e578c215dfdf3f0999fd46022c6ed839db384efcfb23e70cc874695a508929bc1c474a1f72712d1b06f819163c4e9684ccc6ab2005c792eb23ddb2e9f2dd95d2842a92e84f625904900a3cff5c26019946d69cf5f0926a8663b5e08a3470489a3cd8533c069e5770240133848385621801ca7fab1f404de833e2ee2ae4575dfa31b0ce5f32289596904f3c039b23cdb4cc55e1ce1e6e314f3dcb3d42158885133e07bd908065c26fe3a629c3cf80d4a47aad4d3f68189db6d493cfa7c0b4ba3be440502e6dc87e61f97389349580053002a89d38d7935adebf59aa9ecd94cf4ce967005a710194aaf9987415adc1336eb52bf9c61f239ba074939ebc4785312e6094ea78d2be66af4c9856c871ec1b3ea50aafbfaf3a92b6bd6be796c24727444b5bb21edd84a06141587cfbd71328c49e6f7eded422d352cbe83daa69b8ce93d4790304f7a45ab3e568950e8d03124ec65932d213b61b6ac9c10e9686b68cab4e70d508139dbbfa924b0599ae4c7a65aa3cc49b9fc85361e11fba9690767f70ce8628d182e8fe94b1cc2e1a920bd90de200701a63954e5c015bb8363a04dec4c72f1aa3fd1465788e5a1215f6150b627a401bb14046dd54988169fca2e9940aca103110fa76f1d988da18457650c2958efc228fb89643a666aa0590f9efeb3ddfe753f90dcf1cbe62076bdd6e6da4d0e2f4e4a512edcc228a2e0e7d62f3cd02588e0200205ccaeae5284cef8eb7743ae72f2accec036bf469ccf678d4d7460a8a645f6c52000001bcf96404ddcc0dd95874d9672634d9cad2ed6a5e2ad92897c3bf24a55cc5b39c937604ef5afdcb5a5b852f4f54b3055a5ebc3646dfc0584efe21a5c0431f6b96df437a82396373c6080a908ebc332e830b901f14d442cdaa862992d581254ce30974f1342c798389ba5e17a0d5a6f5a2a6dbbe6835f3117178a0512e5b686545b8746415043894efa7a5e8b2871e93ea75c7a1145d32e10401269b884a9d9a40112786962e61737a4c15ee1e616177ecefc84f64ea047574f09a30bfb6ed1e19b3aa2ad4ad86da4af30cec7f59b7d175e3dd9140d7a19048c116d5e1402921c18ed67f52bac0b7b5998b784826318887d2284d19fc1521c89199179b69f14a2d09faa952bff92e17346006e25cc465d0da2ba2477f76efd9c72e4609263e52adaf0f07e032f0274ed870391b3430dc4211c5834465d077059705965795c614e167fbe1f7b679f48a37dda7e432fe111d911c3a727d9295da27f9c4fbb2c2298d9c38006be7c0eff76ff99cadef2ab080d1412591b1a244c7d41fe948995e5288385eb5355aba08061b8b984b9345e349ba4b31c5fca213d80ed9a6f6fb53852eaa3d6a314a6309c3c0859a457cf7be25d7722199963b2252524580f8d5fd5669008eb774b8e610c9c4f8793eec0000000000079a12000000000040f9de13eac2e247e629b0d269fad9b6c9764181de51e73f7ec6d530b0e7c4840bcbb92ede7188888a4c413f3154ad72bece893993eecd7b19fa4117233461cb84010020e680e81785ab96c975e7d5ccfda40fc0146c6890754afb06e45c8e86d1f632550000052c1f30516103e98c2c252e53509048fb405ec3d245e57c2ac126c3ba4914e24beb4bd23b6e9dc6bc39399b1e35636eba09ad0a5cee450655a32d2c8fb219e117bfb052d7017139307ce4c43ec4de1f6195f235e6f1aed9a884531dd57e453724cde91f16880e7ebb4ecd043020a4d1168117dd5c96fe4857146c8fa9a0c97ad7ca842a627de5399add0615e37d6e52f476951bb96cc4ce1b38c181bca7d8e7db1b4af891f1672e92c2d51a3d02c4de8a4508997a7e53d6f38610adfd1ef245640d3ecfbb5791cdceb665b6294b0c4ebab654aaf272e080aaf71e0ea624d1cfdce45b676749b3bc029802c2d7148af0dae29ba4522060de51a256b381447770adb1aba863a55cd44c29e9c95935b77b95b8171f042f45a7909965ac4aa999cc22509831231f73ba8192f54a50112fb04d71756c004f9e5403c47fa9b1b1c667bf9d6be709d24b3ec4ca89bc15fb1fbd9ff9b52ad18dd8b2869b4df16785ef5b952f3682af6dc215c08e9f559e602e8489de3737b08881d121bd2caf5b845d469a09a9fd30e3cd4b5585b948a06f0d4fad466538be98243578eef9833a0a0f1431d5e10646c292414ef32228bfc82b315964189f3cdfecb99e6a218c84ac7cd219d4f9d3cffcdcfd1adcdd027c689579da31146c82620db13a8aaa559686bda8aa988572c21c0b73914be121ec847036f1cf78ec085e53449cc68c09276ad38531e80c5acb7b1ef0240afcae50166232f67385db67b5abc9779200956709f7b6b2125a66fe77dfaa6abf53612cdd04520efe40a994362d304ecf60de883fbd037330d93673a41e17bbc8e37298120bf5bedff3952bfc9e82182a894c29657fbada6ca9a3bc8646578ce40cc7d339a941416daa9593cb1137858debf479eef23e60cbdc3c65f1008f3498a40684d2eebebd68306ef9b63cd68af8db8ba84e8ea0de75c522b56703097aeffd68bad1a105b160fa1b8e98d67e1055a728f512e0162c05595e18ff117537ebdda7942cc017377d5c1c73fa3f78df57489350dff469c9edf9255c924bd5d3f49c53d27a1fcf37a3fd3218f4ecef227b16b6afe5bc11724b9a7dad728db897123f3519881a638bc7bb024a090f558795216d187feb5f7020b092c82cdfc7f6cf7c7046af748fe3596b54538c84b63f9e9c71c92c1be0fbb73e0ea79e6bddefc20586ee7d4456e5a098975f52ebfd934992956260246dffc5e6c122cf9100ae8b0c48bb3eb1efd99fb207cd2ee58c90df97bc11ffae19ed5e3f8e3f088fb3f2b1db327c10716543f0f69e14f90b4e520dc051ddad130eb90634d11911be780db4103e986a26234dca125491c26b0fcb998b63d9eaf11c3aa5397115772fd810c000a24f0aa6b33bbbf92fd6858485eaec43011d929e9f9fa807f8bccd689dbc970130a66dd03de59182d5d1ab51d675cfe91b311816a820b521936752d0e25b2b64540e25665eb8f7a867f5f9b558ea2eadbf2abc58b81062163c42e87359938c644f5dd949aee9b943f85b34e350aef93b2d07c3a7dc585d2aed4c73febca754a86d0ea88d1e9668dc2e437127a140c48bd579a140f8b3ef84410c9d8d058f1e1c6510a1a1d3343d10d9c4b46508aac84a7142564edc4ae85388528cc3dcebe5b50b00526f6dc3b05ec62060dece4823ead3fc65aa2e31e9bcda6a98d3dfaf9f6c1091bd3f60fd95a671335292130da81cac466b6aa33cbc95e0ac2ccbfcb14119529dc2dc2d5e2769144c1033b59a0c4ce10b44484774b8648fedfe535fb6a8b79721eb57dec73118d9f71383c4209c4b82225a676af2220b01e9bba8290507d52a7f0b20cd15ebfa40a15b5fe61b5e11fa41fa24ab9a99e141de5db63df5b88a80a7e5020020b38f872674b6d8865a2efa48c879df94e6355ddb12fbcb80384234663b07b978000001bce26bdcd1f675fbd84712baf10331953b6a8d455e6fafaf81c2d96c25e89635104e3649035df535802fbab0efe850596cd4a605fddb9997127e69ea827d472bdadf1157be8c362f0e2b1cc2f7294a56145a8e92e69d1ad354b384c8755164e7a4c498d5667f5c813fd66ed626106171228cfd20214842d9b8b64aa0c184185c0860f1951d6741de12c1fb53fa36a7e98e8ae1d542c4191d83b6d4f475b9d99c4a29779f8d3163eb45d994165e6d6a5cad8abacee30da17a8e7eb9591518c816ccc3c7879f36ffc3d99d00d600feb5441578f343431fe29570a9e11905ec957be50985fd70dac9c708fd2579769134973d9d40fb49185b7699da6979ac80abe93280bbec4786cb3dc0f2b13a6abdb22e2ec52953ef145bb568c5750768a9558e38b2c14ce602a72d149accba05ceb58d47958d19d484a99f3c73e6c1c8937de0d8da9c4f16aa01325e4f58182a06606610b084b57e12ae01fbe3f2608ed436b88e4b2b24bde00deeb9d515a40d297355845b6973d0ba9be3c41cb8af718313d2bd76cdad9aabe1c6aa8437fdfa3a50fb5ed4bd0d0fcdcde12537dacb1c672eaf4970e76b69f62d0914ff9b8e5a2e510d69d752c0ab2d6a41c1d83840bc" + ], + "shares": [ + "d6cb42f9f8040334b95b4730298de78903", + "" + ] + }, + { + "step": "aggregate", + "init_req": "00000000000000008e049892ccb5ce441c1aa0efd56ec10000000000079a1000000000004092ed1507064fc088d7b0a00c21e94f450e2276d000950917f94691b7fe42db25914b66dfe58123b0a30510d1170fbc077a2bfc4f1046e3788d54f511d400d6d2020020b3d6c5820bb523e0f83bb3e9791213a347f8b59a95066a20ebf3c8beb477ce1b000001bc312af14fc19338fbf5607955eb9759d6db99d977e393ff7dbfe4c9c64fc869ad84a96128ba75c9744fcf3af943cdf54eccb12eb390f83cd66186b29440ba18df9618a68632ebfadf9bebaa239df7d12152db001db2d50d2b91ef0c1b7b220e19482345a0843c8f3b6972e720a4dec9ea4801b74f6f73f77ade45b6e410990cb1961aa0ada1c37c17bc22efc97731eda8c1d2547c9840be4b0bc46a712dbad5f6dbae00d4d3e1338e3fd0033b050666a9c0ec7515db357b7864471443919e1d2342ae54db300c9b84c84342aed5258c2ce003bedd763ca5de88057f16a51b3ef2048bb61c6d31702a3519bbeda09fafa599ccd006d69a5319b6e77ee319826399c9f9a69795ad3be202f4c1ea48d1c6ce87f2b0a85fc3089d50e76690de6ef3a8d3a42cbddebbf3a75ed663f25873f28a1b83e2137201957b5fd7d3ab436916b7f9a6e86ed9effe0d5ec86739c53d8e3344bc6155f1da88a7fa7d60a6f490b2535bf7ce0013d61d827c4e21f59b929e74168f415328fdc7286a01bb9fe48501821101f9ba7da508b628c01870757a50347fa5b94fb977085efe72975dcf59cae1586f0296324f049735bac4d12ca5b85a2b38f40898b77859eb1dd2f4000001050000000100c990f8f38f3cd599af6fd46d10976c956cd74ffaf1c53f9a8b206dcb5d325f2dacf7753e2c8b18b27e4778815ccf26cf1b3af9f30c91afc4ab4723031af9aae26864111a85f1205e7aebccd5fe8f5099a0d3aa483edd5cd581181a48f72bf16d4c200716e92d87fecbd760c4d332d149501f7bf55266e5f9a994f8978d81a80b7d0e3b5fff4a55932a499d137b1491c1eb993da30599d484e78af4087547698ff23159682341723593959ddcd2f9b81ff850a55be587de03de1ee9a5d2e2ce04eac41482fd35011fe9f9e4d972c288c6e2dee54a24bf5bc21d9088c2be108a6a92ed1507064fc088d7b0a00c21e94f450e2276d000950917f94691b7fe42db250475fad4ec8497c8885b23701cb0ba3b0000000000079a1000000000004016d8061c299d2daa8f12037c86aa744677a0ba6926c95bfcd10d47dccb0c0ffd8228d43677f0a91f4ff54e6af8f50716f63e30b3e6c79b23a657e26a82c59e980200204dcda92b9d87f27c22b9f9c6f1cba95f3230cb4033721bf46c05035e9be78040000001bcc91eef13d38dca763fba0389a7833462d27de7249a60c39e7954c9c8b378bb901f8146e74175fe0df8b9047f9afa0a6c45220c3f33b70b9180bd7b8d60ff98bb4507a69caf12e04850d590b4c279c679562ab0d7020f418bd844bfba1936e537391c5abd2d2be3ff86a8d0b606e7d0a494cfa7cbb870d5d466966e8c3f66d60143ec8012f1cbf3e9121ece3f893b4f06ef5f5b1cfa7aa57d6f7de9845ea775bbf368bcb4b2aef7db098617d40c7d9e521611779bc289278211d24002c10ce519afc91d375834e1ba9514fbe0141ff774b8e7a1a2fb030e6790899d7dbade630ca4c93cbebcbd9c62cfd1964cee1eca218881c376b663cf6d6ef3b7627f3ecd363ad578e1229da475f44a677faafff8f057a59286759b0941221c073e894d8650f55c982786b9394ee511237a0ded2548815d37e3f31b30dabc7a88d9b466e093d062dfa96f1b2564afd0b9d47d03ecb9a102a340f8090266be0e38ed2cd1a1921ab218d1d6c2b4ada48619b58767913bf4f51b98269acbfdce8364bbc5c6efe0ae2b887ab0cde1c6fafe0924f455e2a303bb5fa50b8d41514144b406c42ac929a6d47d1ad795e3f83c4fa87ce0d01ede88cf46f40ea2bd2e324ad47d000001050000000100e5487687dd11326700ea07b008056a66e251f79e2b607329fe04cb6d8127a2446e7ac94d38e78e5a96c9a98da98d80ed116c219bce58ac05501e49b8595093601837e224d772bb4d3fd172412fa8d70cdcbb925a6b4b0194b352918fc3c9de1d79cb0b630b90caea4f0243918b63135c9dbd54b3f343c6ac22dc0fd27070cfabfa3b34c4bd343422a1c182707c54f88f65c7e996bf7d5972d4581dbd41b76fe287e2dc48e756f53da89a3b65a8fb7045b91ac230be721e0615b159af24728dc84130855ded6253181e287772535f05fffcca874fdbbdd3e155b0bd8ed69859e716d8061c299d2daa8f12037c86aa744677a0ba6926c95bfcd10d47dccb0c0ffd0602b32ef091d0bff7e2a8b8dbb988a80000000000079a100000000000408b3b796f441fe1049930efdf7df8c4a36d013be225a906483702c72f8e0b2cc29e26d1a852df2e7045441db45b2aacf6b84137f10644598119a6a51f8a455f87020020f060f07fb8d14144a2621f8760a2fa8660395cf16a7c83a014ce7369a5f9b85d000001bc03fac8ae31589117ed2457caa4c7b32986d1f04f915bb3410e9a221efa3c5a11d467a9d7cef320be4d89f482576344bc0226832243d079144249dd22a4b0ad755dd6861b115cfb4583ee05d8fa3f593f7e5f054ce924db23c24a41647f47ce1473f5983c0a6b5133ba0559535bc08063c6e261b0da8b7f736d613cb821c6fdf5b12a29bd953ebf586027430c8e76ae8d2252ad69150d7dfdec31b58f7d5492e9df9dfdc3366cdbf84b13050ac9f31619a252b3d8ed0ff1fc80d07f6697b9c63ec437599946d7935952ed331642e6994cfdf9afa53887b854a89229b02a35bdd91f24991e56fa5692505f42a509a7a361b4e081efdcbb725042a1a64a891b09e760b349115f475344ee3efb614fca1f8a0292c868c4e3adc2235924555b535eaf03ed921855bc8bdc5ac4983fae6507b939b11684333f70825149fc80b9c61e66011e2baeade688c72e8f754f40e47f8f482117d269e55add9dd50175b435c1202133c95d865fe0586046d7f8b5a857f5283f355d1f939dd47f0255df940875188c9451e7dfd798d2d25488fd8050cd432ca1200e8f60f6d98794702ab490188ab9766c79dd0fe2a88848d301d49e97e3a85dfde94dd311cdbb51a0f0000001050000000100354e69ad28dcaaa439c2d67dfd241a61f93d375717ca1d91944b7008bedafadf07efc9b574ec87185710f4d5612957e4b423bc4fbcb738392d41b7a946b7e4ac7b21799a27bae671cc551322e2107d94e44ad6bc1a3445bc5477f485106723f92913b9dcd72b46da8be9ca89a5878e160ddc1c6588c78661426c1609531eab00154d812079f70d488b648b46197dd27e2ff50c9ee466adcdcf83b0a780f3168212264858518766ff7e25ef8ae67f976b11d8e20a6427f9b8373890aa8e193d30276ebbdf5e959b87839ef7fa3639bb80a64cc803bdc9f5aa87031bd15a1d57888b3b796f441fe1049930efdf7df8c4a36d013be225a906483702c72f8e0b2cc20b16b7875d18ed1959b7831e47ed01340000000000079a10000000000040986b6e792ef0e4c23378a3f34533106c63a9e2b06ec69199cd071ea9baeb7bb8f18091cf4e9b90a16f3cc1044952f72f11da80fa796f23f05d580e1a9f3ee5550200202f0f796c0e98248efffa91a5ff6f724392d05b8139730a3530c7c9888565c14a000001bc44eb9bb1440e5d5dd264cdc5bc60ae718d3940ee0a48440b5d5850e30f58642acdaa06c2fc9cd736f67ce8db73190d8d7f636ad0c4ebaee5da92b094c56a4e72fbbd2783e3b2b30003012edb06e27fc51fc5a262a643041599e654cbc475f87ba1b24e1b1c2ee0c7d325ff88eea68e8b3d7fa92ff21f24b7ca2f0549e9b140216e2d1a7e60ae92a8bceb0f6387bcd8d5120a16ce082ff29059b36b366ce92618ebe4dd697870cddb28949579951d2cae9a5b6496555ebc4d64488c5a079c26f71964c9edcb743e3845c55f6fb7a8b06d4ca0074e2a5a72dd40d6d8d8b0e0cc58460716c3b544b90286c852561fdbf50789878e66a052910da7fa06eb12820a8b5eae9644512e36290dcdf5b3c659e5bcda12285f879d1cc0165be6b91cbd9bd62c40d27b260f37d27af6dcf487b82b55213eeb3a5310fe6ad711a4f6d53069ffbafdd708f21ec5427158d5276d30286de373eb7e09e5b29ab4d2e9cefbcff4bb03b3cb2e235fe3494f23006f18e3653ddeaf7decdd0718575d21b071cd78527ab63e09da469e5e2a8a323fb9050e23460bdbb7ae434b4058f3607d684b4448c04a7b8356ce749c058cbd185fcb4103d4b1f8fd01992a79fe7f58dd1f000001050000000100e59dddcde9d47a0e2864c533310900b274c29f175a2af427c14ed3748b5380e25d79a58f5f708f58a339928d8bbe0ae4d12b3a06bcc8bb376ceb462181b9be4d60376e2ea229cce80b3cf82ec087aa40bec25070ff4cf6a7bb214d7d9d48bc545aa6ed4df7f37b2b523d8d47cc071362e7d44ac2ca53f02c1416ba898cfb55159c0e630cb47e082624cc4508c7929ba337b42c1d5c557caae32d8c085d1db22993e455b90ff7f7f968f4b7efae0c26c4e94b1451768e5179e341b655db46262cd7c1ecf9bd3407c641a7385e4d0d9f6c1342feee8e87df02058d9dd260e49181986b6e792ef0e4c23378a3f34533106c63a9e2b06ec69199cd071ea9baeb7bb815be857c0cec192b7ddfbd7390f3a34c0000000000079a100000000000409cdbc5d00d32c6ebca0d1178e65de451b1958d3ae0770a34e52e1c5da6c861f7d0d85a175759ae1107ec395487a79d210385bd83af212ae2dcd456bc0f1e5a530200201b501609dd945a635aae28a651bc93142166c0d0f9efa3c57da26e8cc07ef555000001bcd169ac6cc88016cf2b9eed9e6a2af25590ae06bb1dcbbad7713014ebeac9f7c3c2653a6365d096b41216ab8e0b3ae22ae0f73a5375ca20366e0a2b800190d67ae08528bdcb6baefa77fd874f0129f5660c6b267243a09462254c0105f2a8861d85d1a92e8c52f3c0cf39da363bf6db6b23ea8094a5aac001a7170fddde0bfe65976035b72acb5ed1f1c25741b8c155b5000056ad774cf8fdaea8a1f601215a8bda499d3f6860c0c42587fbeffc59b91d87c3fbea79e63d13ef8b837d256ff805bf10aa54642d5a0e491a03af1574299b2cf272abfbb3645f7d64240bef386e8e236a2bda06f19ed3e22a6521aa3c402d26f42388fe9e1d3c026cfb48a119038545b44cf47b28b91454750abfc77445883998a5c7ab3f31aae3b44019da701a9173a44f5d5c22956edb9b2dee4a5c0cf136c3d3424e68ed6d367ad73c80b9e69ea9b6013e3a1381d16eec73642b97d2f4db1391604ade06fb9f3308aa25fd5c698872a18b36beb76b7c920413239b6bdca0bd7218db2391b7940bfe9144c8e421f8a8de8b8a56c876cf08c5ea38f1ea9253b3407f203beb3fdaaeb00cd468cdf723b582a5dcdc6feeae4d2b5f2f3c1a14131492abaeaca158e532f18d00000105000000010016507705e42a360a45b53ff68df6db3aa77d2cde0c34d5e6d36d7650f43aa50f69fef149b5be94f35b0e4166d08c2e6e0809b24b0b4808df2a8ff58a9a7d959f71a9016d1aaa729d24e94b56b1ee386cb7f3d72f9b454c5fa32b88715060c26556bd7ff3916dfffc69a51a2bf58664173e85426a9092496fe44e04dee5d9a93dd51c3f922c07d15378208c634b2f49b91b39f441be3888a31a036782b7865bda66f74f7bf63c6ba07aebb83abe3206cb75b509b189d4acb644d2e0c644ad3a7769b88ceb0ea5023656140dbe8a4897852eaee9cf096e76bf7a41074d318a52949cdbc5d00d32c6ebca0d1178e65de451b1958d3ae0770a34e52e1c5da6c861f71dd2f10d61e4f087a6903ca1ee3fb4230000000000079a10000000000040cbf7b215d5667de1b4a8603a5cde1a230572943921aa265158553865cc95da647720686a59fa75f1619a2dfbfa86f59b92cdd9eb33f47340ea176af90cbde4830200203e365886319ba67d6b2a86a9b859b9de1c67c9efa303ea155ca415088870cf31000001bcd2b0a04e69e40821aa34e9227454042d67ca2b7cc6ade2853dce503e46c3e2d8a88c7b53d4065759f47b7720f2bcb610d616aacddf9bc41491fd83aa7afba01b24f051ef2c5b32d279c62abb18e0df2b08dc6229b752aa77b868dca937c34f18185960540a1a2a311db07c472cf1fa02619fb7335303e7616040465fcde4e37b921c18f4b9f2cc6ba1a695211fa147d4fbc557b0be7c7372af897cc155ac95f6b2ad2f61fe47467acf4d1e4c5644ea0f99ae8132f7df3456aea6317a093f59e7d4050ff5b7cde46d31c709e77dc569e191296a0a665b96fee785ff63529c31743eef95ee65e32a06e27c20c8441137f39614507e8f552fd2f980f073a0291de062bc7fe73d41648f14013a0a14f4e3f92d2d9885ee4dad68ebfa56d1beb0829d153380239b62f1ce2634e041e2548ca391a084b7218a308687aa6688bc707efb80ff0cdc8f2d6f161da847bd3695504d17962689447e38661fca86584d2decca0cc00ed844d7a0700255784ba17d69952e090de2d4b9232d740af98cbdb2dc7937ff0f88fc6740d2d25b20f4052c1b5316a988d8a41f5dffacf98b95a22653a580bd8554b8a2dea5142330d9a942d146ae951aacd15e823ca809a79000000105000000010002a1af7b08daaecb4b2cb25c6911e4b094a010b012f56011735945a22c53d67fcdf49bbf0f846114ff8e52bcea8d9136aea11720a3613807b1fe86811c0923591f91824924307ef3f21716126bbd6706a9cd48b6fce16ab37b4389750bd5853825908723d30bbd4165519294f879096817dc1ebb36d10ea62d90ad7f8adf7cfa29cb0772f163c2fcf58148448f7935b12dbc294c241d08340d2a7074f2aa97619f3edee6f4df5a25c22babb481987252e7727346aba3e073254655d2cbc5ba96667084bd1c1e2aeec6719aafb48e7a7b036409033788d031e925ad2cb4b2077acbf7b215d5667de1b4a8603a5cde1a230572943921aa265158553865cc95da642285cd738aa103fd0f436bbdb178e0620000000000079a10000000000040775c7eead8a2f823f8d4df859fb2722bd6c7818c5260f09cf28866e92e9f0daa69db356af53d1d4b20e888f7c9a4ef6cc9862ee454225744b97acea051d449f10200203964b6a0a2094233972266b044e07ddbff4b0c93a19238d0a7a08b77c7fcbc38000001bcc091150dd622111dd4536ae6da7f4fdd9c68f6adf5f4df6dadab403bac572e14256b2c398de3fb9d7c2c0299961c914d3ec23f104ac0b5372ffe857dfd2540bbb28da958eeb2370c2d2b62b5ce971d35b949ec23c650b3e2f1a46bc0b50cc66b9bb3de4ff2b5fde5bae5b8ef334cff4c9ec66ea3508586b42f811ba560ae5d6dbfb6de2b44c7cf9988ab8503e79a00ae033e12f4048b71edb0d27e94d5472b3836ed15e112748599b4021c55760579714802720ce2d7423c53d8d9e4b7e3adae585725c72d1049ecb9621e7cd63156856aea3f9891d5c7c23a4f3446914d4934007cc14e92e7665220032cd104d1bf686808aae0702cc5479b4b31b19a8d85cd6efeff5eef22faab907f83567a4ddb1d1383fc939c4d4a9079e118fa49c4abfee216ddf8425d697222bad0caeeeb2ef808b6c7fad9bfebd9a59a9d21f2015bcd288f742b6c2b45803cf7b783a801c63e8849fb36650cf7fbd9bca58d769aea40235c011cb4c3d4672b09bdfa24778528d0eae051a72003187c045dd8912c33bda64404c5a30467a2704e43414eaccd6ea5a7a6598fada136410257d680068240dbc06a0c2053f96633dbb8d0bacfaa0d835ad6fb92f8b4f2dc9bb3bb000001050000000100d2e5d8a1e0b952f1f1ca1c896c980d12e1b23806f10c836b89641550bba2c46097b87d7ec1716ee65bd16904216609fcdbf9509eaef664693f7c25ac958efa364685b9672f96404db8c524af3efb6f663b5dcfd65aecc2a06565f7098a2539018c81d0bd98b6763793ca0e412e5fd00bd5184ab4b631db9513ca2cd8a24ffcf27932d00005f0454d016ed188aa68af304b10e53c30ee2494726ef67fed9511f248759acbd26764e94c8a51d9382f56afca629778fccbc3a9f24c046312b82e2529c68c593020e96f874fd55e905c65634bc52551b5e1e1e87a2ebbc038fdbbb0775c7eead8a2f823f8d4df859fb2722bd6c7818c5260f09cf28866e92e9f0daa2695c7b35982c5f405a0543726c96d110000000000079a10000000000040fc9adaa5c4dff7a6581e7d4bf045cc2cea328d87f942a335f3d2f996f668f6b8b3615d2a7d0fe5cce1cd021c1bf68ded0a00d8a59f268c651e45480c3cba8d3d02002057c5bc6ab3e4f3056b69a10925a0b979e5e7a08dfb756825e13549ca3cf2144b000001bc5a8f51ff13907f78fd0cc4421e0d00046bd4a4da6d5839047132c356e70df7fb4a096086fc5622858044a0d8509525671eec77dc782b514bdd6cce9be1ccb8ded5814268eef5de1bf4e9e4be3988363b27623c91bc0cec4f562d7443fccdcfb8e2b13acb4c206b02b37326cb233890a18ab401b41b48f20344d939f09918e4b080fa4b21e82c166dbe3e453b39c5cf38c401190fed73f3102e763bd4098de384d91f6fae4b6e4c30748c01f97bbf237cd51fc1c79bca03c32465d8d9f770589428b3a9c715713db56bbb9231c47ac44169ee54cc44e33a2871f44c18213e16aecf1d4e1ee9050d31e4cbddcc34a39dc2fddaba376863252af6f91a0c10465756a829567f6617484fc7895995bd612de9c7d841710f859ac698125721573328db422d4989eba0cb3f891abd4f6c59c5463034ec264199479c7df0366310a8aee1c6f733cc7c07e33bed6ba0cce0b0a359facc63bca0da6cbffb5bb6c60f35c6b78d74503cce1dffa63460fc00a56072f12d942abfa74f86e161788621607c5f3e85755a686664f59b837775ea8c816c72fb9ea016a31e6ee229c92f98bbfbcc65a827868e4f6eca255c66ab127c0c3de26a7dd67501ba2746bbe9da0b000001050000000100491da081dcf8381ca0fb645b1a0e566e70ed60d27e420dd6ee446c2575e06b47af5196b209a3c3cad1241756662a9ebfcf667526beee8ec9c4f497adf1e54bc689f2d9f449875e33e93133a1c7a3d2ffcebce1506d1b82909d08cf4072ee66fedafddea5dd0f4a70f6f90d414db704d6d09408b4aec78f087b363d18c252972bb0b4b2f45adcf048205cd861d1008d96b4d802a65ebaa6a01a593133c7491eed35d113d2722cb0d2486317d0974bf4dfe36453d48dc58639d24dc9e958c9fbd056827ba089e82b1b1f33816f2afc44e889db75593902f7abf23777f33903469afc9adaa5c4dff7a6581e7d4bf045cc2cea328d87f942a335f3d2f996f668f6b82a00e325e01718dcfa98c4a32a4d979c0000000000079a100000000000409b2efad2c946b0a2dc98a90f8ac6d464e630dd5de6d5159e5e30cc8f01d95790090d06ce9b07e83086c3d28ac1d4072001fef2d6cd308a96471435224ac87238020020ffd00beca085fb25f4632e2a8c3d6ca3be100ef3334de59454053a6ebad85c04000001bc65dbe4fd467570068100f4b57fdbe7bfb8a7eb601f8ee103f3c94ad45497c86cfdaef5552e855b64be144cb12d2c4362d5c9457b017fb939bde3ac804c44ce00c888a5a4b69549e484ff1e0a36a2ef6b71c63bfe5dc88b32976a2da34dbb22cfd94f061e040993781b37a5783af697a3c509e2bb4a274d51eb0c116bc42ea451375dc51056c7ed35ec1ab3de1aadb1e1738628effb2516f39fbcdd7495732bff676f6df7f88d3ce46600be7b38cbf939907c6f1ca3420000d63aa8ca21c9c9b037800fdaedf0837d4f17b123d71221cc27f1a66cc2f6b14a397b52f2827e5888cf75cde7babb5ff933a8c6a7892c03b838bb7de0c043b92c5d4b2b4d66a1df1228e9d041cbdc7f3e049a1fe13f86a73634bda38970ed91578b40455f85c6f2dd29b62b35eb30f3934e26320cf6b883dcabf77a7b70a3bd20b574c3ea0e7795ec067d6ea2b55676e73377cebc99e83b13d138e9e036a105ce478c41d1fa105bf65202605b509672b04a1b7e52b1312dbc1662f24870dbbb236eba3a402fc7a841adb993249b0f59b58aa192f1a4deda9e0bd12d864c01dc1fe4e0b4cb247a458c85d57296f1e61f98d7d6b3cb8b905989c9b9267381042e001cf0710d00000105000000010051513cfe6d98991d35fcb4c3a75da1ff36059082f86909a5ac447d3ee9ea49cc5f4e2dd090efd3bddf583bb38bc51cfb2a0978d37bd5a94b0790834e85ae3b9018509325b1113154eb848e681c37a0f2e9de8ee931145ae9188e20df63c741ef14741461b15b5657dfb70ce895cffb3adb5a034fb03ef13293858419ba820041e47a1b9e4aa5fb05e239dd2b3fa7f5355b42eaf8256dc6e05b8819a262de803898e8d994f5809cebd3669566224974c2fc81d0fb2276952283e2b8082699af499843de14e8c5f40cb7f49fbd5e116dbdb1604c23acc3f838939085efd5b424da9b2efad2c946b0a2dc98a90f8ac6d464e630dd5de6d5159e5e30cc8f01d957902b02579109bcb8ee310fd7ed4ce4efd70000000000079a10000000000040b6ab0a45d909f212b8a6946edd5717a9f09b3c46e289a257a129ff92c279fb8e8dc3c36a5b78fa0e4e4b74ad4e6e7acf9fb992f698beb9bdc340c9fc760887a8020020c49537d3bb6aa0e95bbb0c2320cab969b586dc352f36fd3347d01ea0f311e82f000001bc6e13ead4a170ba98a5b117351cb245a8d2016b34a60f209f8b7634f5a13d9b68146c4695902c5954923b53ffaf7a3013bb40b77153039760f6a57d506c23e3e8519a609bfdf57339fb4a30db8aa4fa38354806ab6ea0dece0323f52fa9bce34f9c6ab4fec4d2ec7e60c103f07eb5b7db8ea9ead068ef14d0865b80adc571b377be8c4fc295ca3fbf43a7361626c3e3577818a73bd9c1646aa9c0d32e4cf4af689ce93f84a8ea1b1266d8a899b46ae29410b278a190ff4183a0fe09795d015b4d3c65d8567103c1872c5cc3e591b7bebe314bbff1fdeb04a366024725fd63838e6e127ea3cf4f4758296d6efcdf9d10f9cba3972a77bc9d6329e00352e6913ffb0e6ea996283ac2319abb3b34eb65e7a36ba1edf70ecf9ff35e6f0a031b93e635c71723c167932d19ddbe704ed90a94666323256fcfb796b725d6c916a57c5f3c92f8bbfcc6a7296d4832921ebe4943702489f66a903063a162ca4671ed6b41f6f697bccd647304ad94d057939e22787fb38bc1ee3f5750e3c7ddb128d5a847060c3a4ced636554dd6ff54df403d3680c36db74ef003d0010dc0edb0c03e0de23182fd96952eeb21faa00f394ee271d3b8349c2d32eb0f76716e582a90000010500000001008aefcfbbc1f76bc1669476281f79ab67110775c3e43de12ec5a364d5a0b5d273f36b3861ecb4c2f58910d683270c75ae27063b829e900ecf03b668055f7697163571ca277ec10cf4a547b613219334f57494f703e211790aa88307c30d432bcb7f3984245989b664cfacf879acae1a11376a2956579c707e62dd011e824c41d844de09a3a4d168c4cc50449fa6cc4e52f7b52b6dfbf5aa2a918d017004181ba51e1a8c21842010ea922ed00ce2826540e0e0850efcf61182e3ff7e3bd67c48b3aeedfa35f5e5400c863b2cd861b77f09f4c3d3f142debfe5d0a3d9bd8f055685b6ab0a45d909f212b8a6946edd5717a9f09b3c46e289a257a129ff92c279fb8e2e04bc1ee17ec84ab13c51abfc7390530000000000079a10000000000040eb9929fc882b3c560b9ae6f3514cf55a117edb24be420ebbe3c70e1de72ebaa2886b984e8a390dd52a056ff11725fdfd4fcefed3c3dbf8dce12b71451df616ba020020fa271be6b56c9f7074e2fb4d11edf4d9eb33c143e388f43807136ab7a7a74711000001bcd5ce988e47775027b6a880deb2c7b8ef9ee6e216ebef8248b9139cf888262a097193d7ec9e0303fc78a7bb383bbfe61d9464575b1d2e3005d5d85d73e37a4249d26e45e36b1c066860818ceadaf9354f559cf32392bf5df48b3e6eaa909714d0f388a718afa272038a68dc8df4ce4cf628a70a08475b0701e27871b681b1d976365432ab8c44dc775dfecfb00abe1f31f8d226a14fd60824a45ae3ae7bcb468451230e714962145f2af609687605d6aa58f8ab5cfc3b682e7de2e466e8d31a40b08c834e7329ce1fc3250c34c93e5a3c9337e48e59e25a48857378cfa886298060f0dc20c0cc07c6796a8053a4364a02c32cd3f0c692ce4b46f41b33b7e19775b8298d4373a67cb3038c777dc11607c4675e77370187931b7f84ca57fb46690ddfb93a73b6bc8cfb17503e31977269d98d2d4e58aa7549fe3ffcfd6f9a1da6470e218d3f6b42e15786cbc5b6f64dcd21987e7e03d7035e3619e1fc02e4ce0bf79c72be6484817ce616274ffce8d19d71d5ce6cd13c3af3b35969e587c07756c659f7e6ef2f7346bbef61b28907437604f63a490875dc9bfa6190befd377e8d1481fcbedb2fcacf769e4953f4535df8330d7d3641db6d95735961f323000001050000000100fa743f0e2c72c43b8fc611fd1712f4a15dababcd0b9a0c7034918a8b79f5fb7b3e311c9ba110575a9a63203eafdbcd49f862fc08a93e2d723064570e6695d757fdcfd0c6c0f4f88041addf600687aa1062aba6edc3846fe209ea70311ad52500da08f95f2210abd6b0bc4e5f0dc2e2460b722e1f04dcb875e8d75175cd29cf445de3720d6ef8faa73996274a9018dcdd42470a1e5e78f97b66e8723bdca9e5bdfd09e8e306dadc324c8b5b90474e58b114ec2cef32e180aa1a621e81b905734e0d0137d192e26e398ad369454cb3eb926373306206a3bd28e692666724a9b1d9eb9929fc882b3c560b9ae6f3514cf55a117edb24be420ebbe3c70e1de72ebaa241486422bcaaf25371397e18c0228d870000000000079a10000000000040312a2591a678e9a7a5794cbe4fb4869650e59b5cbf2d49d22e7f2dc1108c95dd586e873cff4e7877675d2acac5b9eb9bb562bae2c6ed373f2146b20f691995cc0200203aa2d90526f28ac472cd7da428d9987d47ba24eb94214068d604e3b4c2a99f0b000001bc7b6fc743b3e573517d11d14913672eee29331b8582881e68a2ae52b6066b9bdfa7cfde988c6cabe8f50e3e28a1c672af3fc606982731bc633ffdf757e7e9248c7fa65b078d8b3e83e23868b56abb9409501f8cf6b830ffdafd5ad8e269450e2d6d4bc1506236d5cfc48f8880a6b1b50b8b8baf4206aa2321ffab137e04886b004e403887b1f980e3ecb050272f6dc5d26b3305e0e27156df78b4c95a1d5594242186a739876aff19012eae39ed52c4e33417afb25410cbaf18e3fdaf664ce868068d81432d71c006c580ef70d395c40bfb814b2125ec8e4bb5c48c09f53fb10fe80b16486459d03844ead787b838032a65b5e90068ebca957ec5fc5acb4781c3f925083df52b8c78e3db503ea990c55ce7b952199af860aa917bfed28668e7d979e968413659b61ee1fc64e23f27723f7e64e7b292e9a17ad1aa25fc8b54c6e06bf22dcd4a5b7fa9892962715a5aea4e310d007bcc8eb9991e28dcc6c7c3889c6c74a73bd56c6eac8a627877686960d71eee3cefd7db869c917f8bc196e440f6695fcb55abd8ad6ecbebc16740ca2a05585dfb10888b17ae28cacf0216b7f8023101420b4969ce64f3a179c0b49c869123101dfdefbd0ccd2a7d67ca00000105000000010094622d60b418d35ce2dfb63845934b07f61e796817c25f29a6bbb2846d68d86ddce18d8e66f5d2294347584aae911dd0386cbcf9cddee027c2680727ec958e3263e5b1fabb55c503b0f9a4a0a383ed014849eacedaeb8db4406d7fde910d7886828eee7d35e0367e4739246904a196ab0d621885df646dbcff8a57f1f3a1554679088596435103f72cffefc98925b1b2558d8f368cb9b9bf4505032096f18279839374ea5b15111e6cecaf25a558572cf935e0b2ab52a60188634c8da7b3df69af4ca611441cfe9cbf4a0416f388d9cff24623b83fab5d01963f69427d42523b312a2591a678e9a7a5794cbe4fb4869650e59b5cbf2d49d22e7f2dc1108c95dd442561d17b3345c45b0876bb177599320000000000079a1000000000004039245fb55c79891267daf7e0e4b136002b692cea4aadddf8dc284e831f602f6de64867c4ddf24c36992f358fa116a47cf4823150a9621443b1d33ad997f09bc802002025a6ff4127628d939d64234a8a347aeac7649762213791b3328b4b8030066654000001bcd4f494fbf6cd526a244a8112375136c7272481ca848e90a77f7880b5ce52cb77e35784b00f2ba9f67baff10ecad0fa12d429b4a20ce1f18bf7bb2fefd391cb84df4b47d71edf67c19be246f60f1cc419dce8fa6c7ba9d52f8e30bce0bcf09788eb1603a3f639d41856bbfbab8ebf84a9330f50398c0bd06a3a313c31790f7ce73c1ac8b9835bd4d668f2040ed7007b270ecb3576e5c758ffeecd5b783151628ab726a5983e55f620cca96e8afc95545ca040992ac48faaba5f3863804faa0bf10517672cf9d1c615ba597948ed387554b8ae98f6197ea00f4e8f1453f43e38e9f754efa172d9b7d6080b9f5f0d5b5aef22848efaa38ce201fa7d6c5435385387628df67b8072e2596c45ca3fca467b2c61fd3e615aa88763b77d068f562c475221f629009ddd44e553adb821baa8b5ca4053488c7b6dbc4d0ae91b7a912e7901feeaa4c5231acc97f9bcad44df1eb6a53a0bad38a39cfd66a2964a1d5e0d68728804308265563266e56ebe2fe2eb8fe72f6b3161f611515f38b8f3330f0c3cad787a47ffd38007ce9f4e0c79470100aec7735f3c647bc207151a538d2d74b49f23128ad769461bca80364efe4e8b78cd0ba8e83ef7604cc3e7d799350000010500000001009174e96cea94ba49ae880ff55c88b8d36865005e432f8852526e0c08b49961797dc627cf4816fc76b4e3ac851e1a9dadb2d594c7cf65b83048b4901a79dfc95a1f08795273d682c8fdb703e9e9657623c2348aa1035b0f4766f0124da7c049ce7eaef3dc3b6ff5538e4286214933e175e748ac08ca52ffc817b9b3ae48bcb8f6b869c2fed1e0d969fdbce8e295e4a7d319b584ca3c7bbb2d7551d091cdea515085a23649cfe3938b2b0287a32b69da998f712e20e8973cec68909644817f5a7947b1c0a1502829730b1f1c5483ca2c64097586d04e7d22016cffd3be8fa3088b39245fb55c79891267daf7e0e4b136002b692cea4aadddf8dc284e831f602f6d48eeb17409ca5651b935a41686cb952b0000000000079a1000000000004005eebb1974021396a3778c3ff3221ce4acf320fd25e81b85dd4337c2f0ccbe07c8c06fee4fb0c4e5922f84ff5846dfab430c68d91d41fd4a54e45ff71117ecb80200205fc6f33ba444b185e6a195f4a44f6c07b628407c7f44b72e7333206cd0606744000001bc02ae2ff86333e1586be384cf9adf3fb243878fd0375d71f18bc1e35f4792fb457a5ef4acff648f6e921b70bbe7c5358506e6e32caca2b09e538e85135e36b0821e311afdfed7d25eb18d4bffc48c1f2bbc6a412eb5405cf1f67d7f64f5c976b8217bc7489ca2a8492dc697a52ba0f7518916be7fef1a2b244ea9f448679b37481b55d27e5e5d4c4a6c5d5764775370f0d9fc1705b040f90671c006c02674ee036dde7aaed9e1fc18d9225d50903991b7811dd6bcb3a61db9e5a156541558e76f0a3f98bef82f67c5a61922c0a5d009050bbaadce19c5d141bef5eecce6190fceb550bb33334bd5dcc25048bcfce9810892a7055162e2591a8cb9b3abe1bddabf804565a2abfcf985228e4d65f389ae1f6a5c3062763a60f1e105fb6db1316808f600ff234d816f27ec53e80a33640dafd530a0d570973b9ccd419a0bd5863f89cdfa46eecf74f7af43966b8cdd76d2cf685782a77204ff745fc3737d7f3cf887e39c1b0cecfc2e63f11ec64239c51f93ab40fe4994958988b3456b71de885da4d45f4ae82b30efacccc8a2aa049f48e0a1afb40ee4df475dff9cf1035a95676cf74a32afa79e8c2cc3dcde60b98e8aad3c4267ce7d7a8d6d78d5deac000001050000000100210e21423dd3fa398526a289b2fb2a52c20f70daae0956dd6eeb75bbd954f0eb538ec813c50e8774005683cb7feedc21e9dcdf994b25b253607da16fcab9256ca30ca66d6027ae143ac52b30795d21bfd854d5b17c0b6842501ed9265c4a50821ed2906bd865415123136d589632cc432fb36a8c28b2f14ffaf2ad147ce9f45084446baf85fcdf977e83c48de911ea44eaf2e1267da21ebe0b140a62e57f7fbce36af2bd50f0edf7aa6d7154a7416be5bcb3ce82ae6dcd55673299a3cf7e65260d122caf15f01e112236a74d2e0960fa2714c2ac37535e1b4e9769d9e6f372a705eebb1974021396a3778c3ff3221ce4acf320fd25e81b85dd4337c2f0ccbe0749cefbb8017d08f41a1ac201f58eb7d30000000000079a1000000000004067dde4798fc4a586605a3fd484fdb441dc9eb80ca2e4a803f4de398cf1d1fa922cb0bf8559af28d0566950820680cfae741c3577f98d48a320338f3b2ee299d402002021a57d3e53ae0072cace2ce3d6c289b520c0f8439a328ce9e986b62db421a86a000001bc3879ccd4a294b070d2b14e5d980514d8ac3a85e86d2d6fcef23863b13dad382175526578dc53eff2ab29071089318ee0f74b8b61a9564893b6b7a4c25ebd9fcdfa60bd0ec14c1441118a736b1704c88b5fa416a173b04280e18cc5b239d7592c1667c3e8acc4af8acf0a0f637192b6122f60c9f27de8cabb7f004e668ea1df993c03d6f09e1718eadc27cf30c0a406f5f2eb09f9acfaf6ce859ed5041a4cad21136971fa19416b4506929339726509007eabd0dbd74f459bfd6520b76b7d072704dd6a38c01779ffbae66f39173692d6fd0fe98568bfc8f641fee4449db7013ed0c31f4c2cb3efa100155aef67189b7adc71766b7a192004538aa7c7e46a95fde0bb589f524dc7bc802c5e64adcb9f593ea94a1c4e6ae96120a1e9d574863c37976a93c6db11310af2140f4446381fa2da963ac4b5d921c0ba8c5640a50e70fc45ab124c65604d56e2a0c0bed78b39bb0d05d5d1899cfc13078632cff49e8f0ae37d33975f7adab2ae9099217d08331ea7b17c572a4f1a8b104f530f3bac4b3550a9755724875491e0e224d40229099d24970f719dbdd1e1721330ea60344c4b3e4cf422a194dd2b7c10919c1181ed8626de32dc6e31095a717118a3000001050000000100f16940920048114c7bfa5ffe746df54bf5f91d6d5ba2d2eae0da1ff739c0aa47901a172888ade2b2e6aae79cdc5849ba4fe930f7bd1e738356b26163cc62211966789954d042344c86a585f8cb5730d1d53d7f098f95acbc29201f04dcc27699e27a425bd5b090a62ce87cfd6fe88718d56d244b7fcc650153fbc104f13f8bb2247379ca681d3280cbe302c17692b70370adae58786e8393411c667ef785429401daaad0f7b6d668bfec369b963cd29c2000b1429a549f1d5833c76d0f843d8ce09f85e3baae319e5e3c8b73371a61db0720d71f9bdece9f9154eefd71508d3367dde4798fc4a586605a3fd484fdb441dc9eb80ca2e4a803f4de398cf1d1fa924aeeee3730c210006a507d139627856e0000000000079a10000000000040bb4c87eb95ffcd029428d019b3c53c5d0c773666c1534cee54cb8ff26f1fb754fefaa17a1b3c014186263c1ec03d4a8abe0631e1062e95d8232ba467bac9bd460200205d8c0662456eaca4faea15c7d93e66c131783f3b6a0e34ab26863e35e345d009000001bce4040b34babc79c0d647e01db84f0b40c6cc6059b059f036985e23500170810ae00427d1915f06964f8b4eb4feb49df67bc575407365edad3728c8bb468c1836d0deaad2790646fab0e3859f66be2007dc24c990cb645a28d1d2cbb84910085a68e10e8fa57d756fb1fe119f862af1f487316f2982211e2798d0e1306a90a951cd5d9c36393a77a2da078c2bf8dde790c66de4057e7bb8d9509556f6deffd504cee530a677300dd3bb26db4c616d66fd075df1cc691038121f81c89174f44ba2745863a229db15f79b9dc55311c9514a43b48f3c601c0a21c8f682dd941e4fb2fa4bf97ff1d5d1c20f064d49d63e7365f712ab35df318b72453ebd985e0898bc6ecc847df0b03d92608a072a26956543f399459a5b79a6129884dc9454f1447cee49e9ae551f3582295b6621a901d4632e04bb6052c354c9a32ed01e417d59cfa22c98251867096dba5eef06dcd0e7821bf276824f341ebe225b49e7912ba9c7e73d34caa1956c0bfec05a65419cdbbcf44500b1f9973fbc79f53b365d3e6d74b8b65c9b7428a65f45ceb10958898c860910f1e3b6e17379a0ffefdabda6ed55801c68ea80ddfb3215dfa0b867f6d278286c02ca14ed20f59de3d5fb00000105000000010089d10a26a981cf37ddab65bc815e6b8ecdd361691b887935f1fac25286566aee3584af834a1fa862af98998e8b95769029dc38d104e15ad9b1a3019681f878276c6185d2aecf997cfb19a9fb738786fe534dbb0b24a4d4950939524d593fc015a19a51b52d26f2cdf240e4a0b36a2fb4a094d3529b8fa07a817b94d32b5130b9c8f92a95fbea16d04089b1fd014fe568c9d8ac084a680d97875b800fb4f67f6da19f4a0810046156b269b79328ac1a5de15d9f02be4c358ff8457c70ebf7a3f6e4712380981b07493ca4adb9842575fff7c28514ba2f3ba227f56287e9d413c1bb4c87eb95ffcd029428d019b3c53c5d0c773666c1534cee54cb8ff26f1fb754551aeaa6a1ae7af3a777e22912f9270b0000000000079a1000000000004031dce2f38b7f1ae524f01a22b8e1bafe5833ad680309baaa35abf25e4029c0f1e9d14a3c17b4faf677b8a9a79625780061b5c155260ca091f5bfe352939b45a3020020a4483d975804e4583d9ab475f6376628dd37b49c3822d870f17623b8c748b338000001bcb116ce77ef3c7f804f4c23d925a8b2104b584e036ea2f6d856705cd5fdc78291692849c18714b91b2b4cb9683eeffa882db6e64cb44450b9cd6baf1c1465b250e19fb91b73a6e448a8cfdf233407172d43a756368f645670d8d57b8ed4d6080e9945a3cba21a7284d46c7fefe4693d09f94d2aab56ae183816d71714c9739fe82a58dbe998a6a90cf11c91d8725ec441ee59ae871a9fccd7bb2f838f66250f485b679d97c9905f06aa5fa4f8e5fbcce683fd979638976f3621f322586dfa32d505d09fd558ade9177658db75e264258e2dcd2e5af18dd33e5830f686d610f8be963ee1e4d091d35aaac4a0cb1e4c67594df294ee1541bd3c8132ccc57a16380fb335e9a4a86eb199365d917e2ac02465f34172750fbe0e806b8146037be37e8f2f083ec1cfbd35ffbfb55004be21a65e76a0cc4e2a5f2b05423ec5898c7e7310c60acb52f9b3f5dea9be6dbac2c49fa0ea40fc6c31461127be7fc5cb351abbac1726eb54df6284ebed70538ea71112ebc134c0e3ba9e8d2022b2176981709a8b8d55b74694b48d149ff8f92d80c5dd86eeb0befc18b03a5776daa9cc4e22b0cbb4f3c1dfe7beddb272d788afddc1f4aebc43deb22df5cba26a812e1e0000010500000001002b01e310f971934ec82b1697997447b8c9ead76463ef0fe2b9d475ea25fc145dc992e994e1983d2b3930d5c7a28302d1b9ca503b14d0352fc8d652a51e30e334d1e0f84d6753ef643453884491b21c624327a7ff37d28b9de07cede8a75eff279675352c0f0299fe8fd44345892b0b5d9c395f7aa933ded32686b2e18b75aa310b65df59f632b1aefd65cefb155484cf9e67da4aa00b1703c18ad92a2792749662b97b769f9c52ebfc4efe1ab09e9576eff9ab4a4290a45e00a85996d8a1486f9a62884f2b2b6d318b864985f928df1ef01a672618e57f1825aba6517951fa5531dce2f38b7f1ae524f01a22b8e1bafe5833ad680309baaa35abf25e4029c0f155afcf781030f566fe6a604cf04a2a160000000000079a1000000000004049a8f9d249c088242fcd6aadc6e2b6e28ab2d9aae1dc7e9653340f74f434b95742ba9d9935989039f39a40b98ffe7bfb3af27685e769053030bd2693bb7442a202002058158b9549e03de53e886b4ba6b399a39d77c56feb0a287c8cd77a9048707560000001bc74e13bf54c59477f22da7919fc1b79e692ef004f4cdb31b19f303ffad435d7564c46821e4fc8e538acdc2a56f8751f1d928a616bba217c133d97a497ba8681ac78a2bfae7bdb710bf39b0522b3da3d6e189ebdd2d64b74b9483b454d54170507362c08c9b9c43e0195807a79a68f400c31b91e9e7c226f96570d7ec37e070b4c2cead4bef050226900cd90aa558c20bacd80a3d9d9fdaf113c6396fe08f65b9ceb5ac449e74054b057933c8df561b33302eeba01c7c443321e983b298ce2326a7d6518423d2b4b7a2c5cacb5fd57c73179bada78585ce2a5ab9af8820960ae7b60effeeae4a92f4e70279806065b2c8211d1d151999bddb48d6b35cb5047c378c0efcf028545dcf0541764f8b455359c14d22bd317b41b12981d086e2b5e52f54cbe56f9ffc761e3cac4741a0db4142dd2c2bcaf4046dac0677224247d2ca03a61d72c21dc469df9533d4534bbe1a8bd81c6978b427e39804214e7717d0ba37c86755f1884cf1e5e567e8aa524766258c70489b043fbab20c3d76c04b71a6447cbbf4df822169ba984a4ed228a8572bb2c3119c03d069cd29b5336dc2c3386bc2529496680bef70fba12b9990b14b86f043f4a3a2430611f2b07c93c00000105000000010034a32f0cf726ddf48ba95904dfd3176c0f454bbc8c0b1b47e3eb2b0f1b5c6a912f2ed0cfe89313463a5606919d73d1edb08be26188af2be20749771baf984e06abc47a71f2445e56b5e9134315f59219d8816d007bd3a8ed8fba7500b2b646986a5de6c0bd6e8834f1d3337483630aa2627da268cbcde3a6cb07b566154c79d4b2ca33da2e678cdac9134f92c4d7e71e399ef3de17315a419d4655268c660ed3282e2cbdd36565181876c885337257718c1a746e5850c5fc0a6d35fdccaac88e2508b14e08cf2d55118a4acf0c92e0a24508705504e96a54c09c1fd58059565d49a8f9d249c088242fcd6aadc6e2b6e28ab2d9aae1dc7e9653340f74f434b95758a83dab1f394396f3c00f72e8f5cd670000000000079a100000000000408c40028fa4b1d66db630ea404ebc0720c5f29687f32fd73046587d31bd90e2064a5a38f70cee8113aa06b3e76aa39846f2713bdfe5081ff4c14295ce14f14f120200200ffee81aa1fcff25358a0641efe4a618d27e751ac0cf3babf698acdde46a496a000001bcf3e90175dc2f81c6368b053b4a1f518f2a5ecfbe2aafd56d69af809f8ba0ade441f665f389e6e491c0bca8a9f065ee18604904a676d49f0e16efb25db7a4d465bde948f49c95bfda1a84bc5baacb066e30ee7848b1bc90391c4b3bc630f2e983e2573aabf5fa7c371b69d6ed523939ffcb278ff1006a173ccc54d6ab08eabb966bde88c2c8b3203d734cec779b3a7684a6231ca6880fdf0c2cf3199c5664ef9c4bf9b448f039735f4a6921acebb2b4b2193fdcf310c2fbe112b57a4d346ac20e3c1e6337ddfd77095a21071ca986b5f1dea6ed7ab0d9f86a42bb47a09bccf523172cadf72d7ddc625025e4ef058fe31915ce4b978470d7c40f9e5db35d7c383bf1aa888dd21efe5b1b4ccb30d16842cc8d10f3b2e5c67822c2d894649d4519cb525046383f3bee20f61ff0c0be49229c35a36982c466dd2f8bc9253ea6b48729da0c2f6914b1430e77f1efbca5224071836db63468b22780b9388b77c24e521f274e008c1f479b193c843e1f9759a23bab6dd7568116ec895e3e752942cca5997e002a161f500f973595b102e5e25e015a82ad389aed933ff19eac093f03261e2694cc378db8a96020f424459b5db5bb39328cd7b5a3643ba1d165080000010500000001001781e50fdeffb9ac9807cc9de9d809fbc0e91b54953e4beaa3b698709fe11dbd9ce148f5740172947b91c732e99a245cd80d424a0fdce188a9f016cb5e37986c24ceb0b57cabc91fd55732914fb5d80e7956a9afbe11fa52fc5205ca40f6546f547e0a4360f2630f560185a22b30d0ee8d0b1a380281ddde1435821a1725c27dcfe77374779de62eab7e3f70f3f334528a13e59742562de75741f4572e5a747f96272cee777a14b38d6d06d6acf6e9414d096709d281298b27c8183368cc7b766cab151a29b1da247b14f54a803c17342f2ffd5cf71a9279b55ceb2dcc2e6bb88c40028fa4b1d66db630ea404ebc0720c5f29687f32fd73046587d31bd90e20659e41d3ec7c6e9b7230de8a02b406d680000000000079a1000000000004058b74ab13ed9544261322f04868931c681ca5c1406e1d1640daab0e5f2b7f5ea25aae0de592f8989d10c0f2e9372348da9ca8fe1fed0ff55c7d8775daefd45280200201ef101e9295cc1822301d65040b14ee56ac25fda9f20b4e26d9fed06fbbb6446000001bc7c5e9b34507cc71366259d0d7600577a5097399eded9be3b19661616b2a75e6468fd66fa10d1f3e77fea21aaabd046a62f098eb917a365aed509a17208f99fadfb1300dec64e77a34da9b09dbab6c6c3cb9aa24bd2455d0b93cae49fa608534f8888c13b803db93e60cc81141818dfb1408a31b4d6ff648c44c243f998f661306bb376f1e8d0ef5fe9c2e96de8963244437aeec137d88afb94b8b84cf5f248b5b35ad3ae98d3e6d33a777453a0cbdd83adb7051651b04e1b6e5b602030160cbb4ee6e5eb454f36c4d8baff6d84365618a1f2bbdabca9fc4fdf90d1c272b796b1b9a5c632d668b946ed44062ff1e47333b375c5aca8f10e3927fb9e5f14f81fdf996664a99b17b174eff89608caf78afb5e259c77a60172f6c9b5f1bc26c792848223dbe1038164995f48367ab54db6acc860e31ac54fc4c0853c567ea909ae4aef245bd80fa35fbc9170a3750b5bd7ad5cee84bd8861ddfbbf2b732754421d7e5c2fe1b220168397aca8345dc8ad391ae2a56e5079da231b7a201fbb23e11beb5ed253348c59c4a356368a3cd543fc07d78c66b989ca8db76252f122d444045b0e6ca5e45ba6e451a13d07e8a0a137b5ff76ab99ea3743ad2aec28f6000001050000000100767e3f09e950365ce156f3aea15546d9db87581ae5e7485eda494d7c46e867053eef6d3fb3fe297a766a9fdac5c5ac7e6aebbb9aad5bb435b1e3cbc6cf3a65ae2685d76e98659f6dd86da7b2b8d2cb5746234ead09867bd0e38e2c5ebfaeab5f73656c1113c39ecbcec6b8ecd9433842d3a3bb219fd493727d8cc4d94e77caeefad84a554a737bb80ce6c2cdcbf5a6ada2e5f98af7bd1a04ff55a91ae1f68acbbf7403971bc2ebf0606dd112dcd4e8de1b2324018c6e2496968e305d58c4ab709312d3e32289582246e69bc265683eb7a2aff7f1c9c53389187fd8cc2017d36a58b74ab13ed9544261322f04868931c681ca5c1406e1d1640daab0e5f2b7f5ea5d398c614828073c00a94d0d012aac900000000000079a10000000000040d846fb46ebcd7404b019ffce144f3a54a7e2c7688a1b95b5d83276af90214ebf85180733a03e357cf46be3dc82a17c7875984076195e1d20461d34f4621623bc020020c8607328a81a9d7bb1e5db4a4826e8752061c534c361dba0c31c11785befbd0a000001bc1bccb4aa658ae89f71a4f175c4dd9f1e66aaef2848d986fdf00195983584d0d22a48d6d5156f4e5343a5865f31d38c67c01f6cc9747e391c4287ad23820d660ab2233ba8cdd8909c72f83a76a501f039a0befc0e7a1f6800c36fbc94748e3d07857cc3e82ef5b2178f8da68ee4f5308a453cdaa748ecd6844e9809fadd87e5ebb2a43335669535faaf923abeb6c9eacc76f1f6b3a6bcfe85dba8e0b1c6b171ee6cef75b1f9ec8f3561f803972cfd49d10060e8eab463c16c2e6f9c59205a8fcbbbdb67a107935d4b8221730df7c6d56abd509fb10684987b7139931d7b0f408ef9e447f1a796c5aefe5c038e861b723c88d4ad433865b3718ecbd7058a0c0d0014ea28ab4caa1d847087aceeff5a202898733850efe457f84843bab082e4aa98365b99c9c20ed172d5d9d151e5120780887f113c41839cc7503de3021d7eb38eddcafcce5980be46de2ec6db88f534b36cd156a1054075a26bb4c4acd6a5faf0840ad78c0fe20c61c313445e094016627419e5784533154eeaace4d5fe2fafdc1d066ee5556952efec5a54a2febfebdd6a129b97a35d88efac3c73d7b7502f60dd6c868c1d6933dbf1bfce868afe0bdaadd68d9bab795bcbce363c490000010500000001005cf01b5dbe7759459591dbaa6f32a94f2d7e8d8316b87a4a7a3b25c2a0ebd4a708aaa936c265c01ade3836d4450049e5961b97729b30ce92fd45f5b42c396eb5b65f686c34218036ddb607f9b2696c0d735ea92e24079187100676e5827995908b885963bdf78d95426ca788cf1147a16911cd2d8e898bd70e4ceb79b8baa4266ea53c50b4cdd0f6045a9abc02b53345ba6ff0bae48d694261cc650d842a376d8b9d55cf795f4671f19f55047f85765546c14ec2767512d1eacb654e1356f54e4b38e0f626b698e40773c5c32f08fbec0b8463c3d7510b2feb097d333a2d627cd846fb46ebcd7404b019ffce144f3a54a7e2c7688a1b95b5d83276af90214ebf6c4ab6eb6674f4dca35182b19afe26990000000000079a10000000000040fcaca1a3c1af3cdb3eec162e844b9ce56b5697b8afb06acfcb7efee6eca78c24fb6f93aba6aae32dd81dde087d956c7aa089b54e0acd6c220aaed93246e2d416020020f863ecd6e935224e60d71b6d08a34608e42d200b3f2e0067af134732b7446076000001bc094c2ee26e7883cf20c02d5b74644084a9f2de67d8f1afa255285d7ef246612804dbb1757cd3373a73128a928ed751be9077e7be311d4f4cdcbde0d3b41fc53478b6c35f404f781c46151dcaa3c3f75f9c98f7dd9a203f760629fdb13ebbcb20bcf5c2db7fac985c95d74c01ac913c88d747a136cabfa707bbe8aa0ccb5e60618d4d7f45f74e76f06cb376c2a9fbe36e0c8dd2e193b1da2e0a8fe8467a063e83dbfab28ea1d870ea27f7b6434b889bec6b1dea2e2914639f242f9962fd0ef742bfedf6b3da42ae5e630ed708d3a2b9230caafd9d1c06dae6cc15d23912dd6f697df3806fa6b497ad667dd7db08bd6db7f3beb4268c1d4a321dca65d2a7c249c8c498e3210be12c3be798642fc60dbde95f43646195bc8d79f12ba68c22f23b07db0189c7f8a17cc2d036abbcb433505c7050097a8fadeab511b6c7799debffe0c516d09f309cc9072dc45b688195e6a6ea6b6e965ff3c1633177f90cebf779767a161b567b7883c96cee38b923c06209bda927bbd3d79510bcc8e6382054fbea51d45a65ecb2c731ec330d49bc0a7ce14cbd6528d1a88e06e96b5e25ab6f5637230f93431eaee6b3a7e2c1f4aeebe0b5dd852768c12c41de22daaf8b0000010500000001003c2e5e786d69507bd0c2bda10110800537c7897f6265e89f135a5241831b24460bde1b956e8f5d8bd2e97a9bc39d921146f495c5a74fcd03215bb24794652b8c5b2c27bafa7ba46d81dd1ea26d6437af388472eb45bc8fb36455f272dfc3fad352c26699172bb0e078ce6753179fe113506116a2c3cf52a968dcaa85cd9a548deeff3b5a3400cb23a261f1f6502f31e693a35432507b13e99784682436a16f25954b8b4eee984a71e8825e72b77d11f843d0d890ff181e33c3711225c03304d2e75e9e69db38dd832335cd2c3e96f3590b3c21c6f5d4c8e061509cf5bc38b11afcaca1a3c1af3cdb3eec162e844b9ce56b5697b8afb06acfcb7efee6eca78c24749ed4be3dc6971bbfaed0a8897ce7080000000000079a100000000000401f7a428dfbf3144ccdfda69267ad75716d2b44c02fb9d1676448479a4846140bb0146ea24026bb9473d32d36821c05bf3700232a501c992e73995b462332c8dd020020992125dca72a63037f2616cd70a9badf696d071b2d34dbc0c2f9b936d077bf4e000001bc12e10c10e15179725b0c02720ac5c377b1842ecde1db5c49552ee8f04bec2b46c8a722c80bb500024245e884a5c147e26d9eb89d528996224e3666769174d58e96536e7ea323c02e6037a03cb8b776a97e680d821e1f8efedadc818a60a2fdbbe380d6cda4233fe942af5355cf02c28e50967ead53aa515efec0175a4ed3abd1d05d2678f36065c996bac4b36e8a5e5dfd0ac366a5a4078e4a1934daaef40ed3d5a214b05f56842e569b98da4812ee93403924ee530a347c8f4aeefeef2a165fe80f82f9d94037b0c7f74fb79971e0b85c5cf952f0adcbb6179d37528bbb39526bc84ab2a8fc6722b98d5a85941d6eca6a4bb4034d4f954c8531a9bce49b1708b5d6bfb8d07441d69fbf1d616742d07100e63360e915b61d329e7c36d7f8cb83fbeabe23f57eb806d30b399880e7f61b463a2dcf69ba75f1f596fd99b654337ee1c36371be0ca6375bb135ed962b90c8ee2b58917c398c20f99a3068aa69eebf456d09abb9718938aa9c1a70f2c94d632bdf0519de74cc0184b971d2db0ee13a3f93ff56614112774b532b7a67dfcb06546cf04f70748046f43ff322143d823b5ee454ee7cdd4a0249795c3f3d37a85875c46bb81500870c4da397c600000105000000010081ce57552d9bf81f77f95c5dfd894e34d1ba6f7ead99b8bbb2c339db29fdc54782b134e7ee20652f1eed650d475915a4aeeacf8d0262bde3bfa0328dee0e1e390ed3ffcaf2cb6bc3945758d5f74898b330bf491cbd7a3a9eff8d51c8fa825efa673fefd315180b2a0fce7186264e5cde948118dfb2e444849c53f9f0b8bd5eb67ff7324bf0f7a0f6fcc3db7e5309caf0362b0f2b41064d9cd4f1e7f5a47b8edf5e3dfc5cb36f94b61eadfb02445e9898c10c8eb822ce9b85b0eb443a9b73cbbeadbf68a4aaebdb1472b8904dabc9758aa190600a1c64444ce779d4c7ae7855761f7a428dfbf3144ccdfda69267ad75716d2b44c02fb9d1676448479a4846140b78cee9345bcd8c6fbdb891eeb9a418400000000000079a10000000000040b0dd80aa8c46850993f642b21bc5ce442a8767980d75b81ed5dd4acc649a90677b6bd124c8071ee49b2f11e688bfadffc2583d32e6aaf3f89fba204a006b67f3020020cdd6ed1544dcfd24643302dbec7ce744e1c002f4f59b6b4850310c7b3aeb2c68000001bc928ced6e9b9b84ef2a90f5b3d2478942019c2c17fadb1ed0cc1e2ef2416679dcd662f7c57cbd4c9f82a9897f66218e3e35313630e02fc04da32e667a421f4458e8e08d6c203eb1dd033cdf1d9481b526ca143a822646b8dd0cad34c3e5251e3924f51e1a7cc9ee773c0c56f55cddad8f2b787f326e39324808825d9f9ac25ee1fa1756e13478d849720ee0564ccab9601e312288edacbe8ceae314259c6b27717099ecca230709ae899520eb5c518d25c69e22301320d477c5f59484955b25b0f1fb1ec298bce2a923034a96a1e2691b3dfe3794e01723c71227043381e7f34d4188a2ddeb80b8f97e68e83d4ce92ae631847ab31e5bd22449bb0b2f9f60d20e00d90e1cc4b30364639852278abd2a304d9f08772a62429ed30d5418e1c07937d5240a15945fb584825aa506bb5f4c3946d3893e0ea73ec7db55eba00443ff74011d598ce424c3f429c39f45dbb2797fc4dfb13c4a8e04f6d63d687be51726bbb668aba5e655dcb99ac2b384283fce0fcd3f0481f26a0c680169baf5796725ac6ff253332f82e63aa695632b9f5296f3996297bf5ca4e30751e102f44264653f41ff68137c3cbe9b9cebca20916064f7fa6f5fb47dbe8b71fd000816000001050000000100ea6bc2843d6d29d19fa3aaa676b47caf3bdef0b2ccc3087a82f938a2c916a38c8ae2842f30419c3637059f70ae488cfdee1846ad974f26895eed2b331a559c92927bc0eb9c0303843b06b44bf569b8bb156ed0463fe1ee3912a63abf3692ed9aaf5ec716de35dbc29efa18d3c90e930a35a4afc3af36edbc683407b0c503c6681e9f36fbeb6355cd40ebcb878bbf4971b04330013d29c4aa367a2f221228d735ae469ba30b4c881a2411e9499108920c60fc82d3cce339db12e801151b2bbe0a47cd6c762dbab39a96a54049cbb7e557354d5e0548ecb15d497c2b4db434220fb0dd80aa8c46850993f642b21bc5ce442a8767980d75b81ed5dd4acc649a9067798a380791943b3866b0622f9d6f5c210000000000079a10000000000040eb026d7ef53a438e20b3009f3bdc6062b18300ce61d859eab3a5b7765d449e557f3dca2b33214c798a72fd920a99ff3c235b30146635cea7a9c3d3cd15c281a7020020cfe97d3ccbc962e57c6d0b83e78470c8673cde3383c406f1a7da5283a5ef7d7a000001bcb1604537f22ac3c7840f719aa8f87e52cad7fd1c26af4fdd470e24542b4028fc53c53603b36db1bc094cff3b32f11d5f44c0fe00c6fcfd43892183f3830693c8ee0b07fad06970c2c0cd4c5c87e0b05226aee5dd816c663264378292eefb5fd84142783870a5140b0648b5d7cc0b0a8ef2c0cad3fe51efbc539cda492f329b27d566095bddc7e84d6c32e9bfe0e9e51dbdc1861db4b61e23bd84c69634d011b814a0d00b18e2af9850b1ed19fedee710083bf0a851cc6dc168d01a3dd6a12352559d371abf2d0dd13845ad2d3929b31071a3304e73b7ec73cce56f64fc2ed9978e6fe730f2d345a25abe0c2dcf75386e6fbc2cdb740b08870e6581f800f5e381f10170774891e49d46a3a240098c22ba00d3225ea1fdfd4349b1143b0c3d475e2af4bfe4abfd156d6b80f7d2d98858c5e37d378132fac462f125e422c31e8ed2bd56483f7ce38fde883c0f3d86ae642c5fd8adebb80d4401d7d5621da47984dddc0c807e85b114187a6e5a6d7fda77b91efc8edd332ca1ef7898dd6bf6adfcb39610e1630120cdd159b0a5e2ccc121e43823e7f3c8ff5ab010875120ce38283daf70645e18132d017959591d0e0cd1e4320df138df71c317053435c3000001050000000100bf35f2718dbb688eb16ff985a7c27442459ef54dace48c7558ea96d2930efe6ac55004ce443e37e6c3aca5a740ce65d2f5b0b56a49a459182947d8f179b891fa6583df7ddf4f6e298d742f99d142498f8f0d812dfba51c49446b8982553467230c84ec6ab0271658d65cbe0d9d38848d483f4de8f41f8ab2abc1b0c7f92f1bbfe7d934512425817748c91fd4f6811ab6433761d2e3b3bf5b5de0329ff6fb691933f6adba2b7baebc9d13eeb6a79db3bfa051a18ccfad495b391f1185275512ba48b574feef50c8f9deb10cfd95ed5fd5a41f9af5f593bddd3d1a2c430b622364eb026d7ef53a438e20b3009f3bdc6062b18300ce61d859eab3a5b7765d449e55874ac36121c119209d894e460e86fa160000000000079a100000000000402710149c86d316982018d80043e23f8e1e3f721dfe6313f603c34609bc420029b0971c6d6540f98ab70e980ce7b8180ca7fe54c5e952167a0b3b7a83f6c2704002002031f3de7a0b6cca47e73f60b8b1a26da011986669d959473bf0fb227dda469752000001bcfa4690695abd372e8a10b9090bc1d911ad59987da3cda8dce0feb04914bf21db549e2b1c36e5185618b324fb9c1c843e7900d198eb8924d14169d72075f780a4ef95f1d04495d09967130531fc7cba3afbbd88099abe78a95d8be906b6c9924413c450e147757d4c106eed6a7b50b3fccc7944f0083ae75537fbc6e214020b5b8d096266f20cbd9be4f4f9920cc8965e9709069bab2db3ef21109d7b48dede7e325e216076ae42a91118a81469d7585852158da99f52fe789105b9a98ef731c80133563cc0236d711e05875e9c40a9d09920608cf7846a203222c7e14d91b305beaa8488423ff42e930bfcba4fd96f6e357d359eea281ddcc4f4caffd10edc19015c8cdf6183233b608492c8cdcd227b506a52aa6cd8b37491c522227aa39fbc2bfc3a46e70911d386f4ec7e7bcb7dcf291c46eacdc55e068335a69fe6af36b8214e160046d5489e393651f09801f6f9bfa87ebb83e70f38cc7c2704face4f9478138236f08bf359024fec84d5f4451d2c78a704b38840453ac8029bcb1bcb39f0ba22a99b675108335eb6ec4de86bd7c7752287d3f90405fbe51bb56ac3c5d2de25239e3980c33b8b3f68e299197fda5b4c4130c58cd95e26fb7559000001050000000100c6c0f811b63f8ff8720bc652748d0e5e5a5b1384e398bd8b7dfcc134a3a19ad68b5626d968e3d0aa452921dbc9931f06ded9fc9d98c7d14157457957abb258675af67a3b78576c95c15e42bd82c3f62436e6db53f78b425f679740c68a7501e64983ca9e9f2e2fae6352857ecb1af43f6a7319af8363598760e10b0cf02dca8475ff6d37d0bd52cd9ef7a5d55c91b39202e010cc0da6c0b1bd04a7f762451e6e3ef4a5464641057b07f9fb16ad6fdf1b8749d7fb6267f3c9d482fd108fe9dfb388d22e27ecb61d1d30844b388129da8617be2252767213fd01e222d2ef35777d2710149c86d316982018d80043e23f8e1e3f721dfe6313f603c34609bc4200298b222a0de72fc00f3aed8b6a4f1e66ff0000000000079a10000000000040f9dc522a5a8bb7544da7a4c6d9dcb98c4af41a72657c85b055c607cef1f38039b3218d3cfa8fdafca0d6b0239c8e4f99f6b66d4dea64fa4a39f556924c1846fe020020f256916bd9a45d3e84efbc83244b63e8855066be50a8ad64f04010e1a8c94250000001bcf469750b45390eafbba87db3d40a70ab19543a6260d4d9ebede1bf3d95dd7f42cb25a79fa5da243c32ae7040b4090bcab1fb8557166ea1044f9e3c4083abf1bb583a9b4ca8b6b60fd0ecd1f03159c30a57d835f5d4a1c38c07f9dd9bba4fc84f00732255ff350bdba051b328733344f093090690336d62f84f18f0bfbfbfcbbcfe35f2f29389b9c7c0c4b811bd6c54e19ed66cdae5eb5500aaf35ad11fd3a86920816d221733c8547f94a8ab3239a98d2e4f385fda21c7192d292bcb9b4bfc366bd94d9b4b9c583efb4af6e2f5e10a107f8d2a8ed439a038805d2ff4075e75048eb7085ac04ce4952aac38364406d64fbeef1edde8f2f78151ff0ee065687650f094dcda93ab0ad3abe85a4c6a63c9f38e807a33a01f01d5ff16292dfe0563c1026434b967bb12554e6713584b36eef97a42996098930acef62b9deced35f341b415f4513479972a8bdc234ddb86df9fe6cc446e45252cfc41ee5d2ff3e46eb2d0cbb6efd137704a6c0d5ff2090ce4ce28a86a6e23586089141ee01c4f7441db5a2ac09cd3e0a94bfe440a0c99bf41001d1d56f8e47d478233a18fb4ae4d51cdff5b092d56925328c0cdd9c9c604f2544b5c023a0615b521c2db011f0000010500000001000f5e4f2666d191fea27f124f72129733f803d92f8cc0442dd1734fba1641f985bf2ce2de12755215bab097c10b1e0355e3a7587976d3cd1e9d8258472939813f0de6893c570f98353c4e461022c281afe8c9b36d94d56e7f6449ab8991c4d99d10fa718a27afef42be4ebd567afea2f41660fe5c40d0e226de383c08cee4db8c5ca0d8392470a4b129e9435c442e83f91faaa55385003cb264f78253b738a2ea5a4a3febcce06d1417fe8fbf62d0c7132d0019dd96371adbc924e3d839c3c33f9ae06e170127ef06252b8b054dc87bbefa017a69b0d339e89c7ffd582a39f6faf9dc522a5a8bb7544da7a4c6d9dcb98c4af41a72657c85b055c607cef1f380398b4d71fc18475112d0207815e6a41f550000000000079a100000000000407810c999915a10cb45924cad6fb1260d49ca0a09937d933bba4b70a27a3afca053abaa37c7be5a8de42841a1804ce197c1a134c227c06bb6efccc58e16362ed5020020a4dbe9ad89ae7b29458251d70c5ce4315d243ce568163332832b75a537ee6747000001bcba796f28f6c6a95887ab7cb165388688cfed901152534d80dd5734828d2fbb030410f5e73df089132827fc0521e99477b11743472628364e63ed1a17a88353626705a49c1cf0e7316017562997e8cf2afcacf780810cee224b8bf2104f8d12f578f280f113f07cd970c21a51b3295bb98667d95db3a7c1acff0c2f98e1e1c52941ab880aabdc94e02751866986279ffbd08843e1ebe73018695e8094182e937e989d1093442d15efcef42a85e3ec51724fce29e1e0de64d6a553d60573b38074a443a0b44c9b4fd677794320080a73148929ca79e55b6e394014898e29d75e9160e09300221bfdee61ce5a5f3892976513a0d07719fb22adb2c39c9c592a5dd852e0c77a43f5caf24af87bcb38a74d237ead11a90db2aad407cdddf43f07a7adef0107fa1365e34d36211604b7ef03d150ccdb3e95c8204a2a24395615ad2be857345b6e2534424532d12c26fc2609b011d496ad82b56813e94706c4e9f7dbceed0c2b73984ba7af85e3e96d1be7a58b0d622b1041f45c303fec364e2af672b49566b217c14a3705b9636675dda243bb847ca2f28113f12273a6aaa5712636953e43641628e8e0cdd9dc6927d6e3c6f1c84dca8e6c24cc435fd0a0690000010500000001003df4ef5bc1171e73818977f99ebb6e5d5e1a42565ee82b3a27f531f6ec74daa1d7cbbb6b5be1de2bf1bed516a3bd7a86475fc1ca036ba37c2dd6d6f96c1e51c5924b767160fff3a5504c7e0fc7d58bccb23d847c7e7def851b6775be5504bc757a70bc54f8901a19d6a505fce69ff022652265b730887a5ab172908f9510c2d170e5f08a02d0d2c8a5bbf29ce1078913b58d7aa88c66fca638880c12dd6b4a0c4fa98d5ee3aa4dc9bb667622c3b0231a7082b3fa8d5a9081f7057a1aabb829339b6c70a2cb7d0eaa50ce753b862665c46cb848e364947c0eab68dfe79d5d244b7810c999915a10cb45924cad6fb1260d49ca0a09937d933bba4b70a27a3afca0a7b90e4f3d4447232053a3b6beee084f0000000000079a100000000000406cbc596088791391d1cebcde0e1a0393bc1d4bb26f59b7f89cbf6302a629c07f0edb1d4907acb965d9d0e7df9d9be56acce1d6d7c3cf4eef143edb7d2074ea100200206feb98463d36120e6b7607ace7375d58c2769bb604e5cf23f951c9c9e7be4341000001bcdc097cc8e25056c95d1e0c3737a648b9da7beb35ea4124104aba9266cd7c31920de8e5f11760fdf9949801f3739f766553abdb8e1b6f8d0670a1055bb35649d6dfcf64218857cc08a345e602802676d6464ba533d264ea46ba199089ea5afa59bc02ec41ff389def4c332ee18255f608809b021a8a05db324f48adf8ab9a3ba7272d55ab5e420379dfac142fc62806387b3ff48fc7fc5873523b4e757e41a3ac8c11acc86ad57028044f7952485fd79bbda5d9d477c9a312538063182902b54aa5bc7168cb56b4d8945c3f0dee608c07d5182b199f8d46b5877c12a6ade407e3d90337756dcc71055124b8ff7c433d034860962786ef26f8cc6c8b85b3b3da8127cc8972afe838d11dd7f602e2966379907c2a02556b0da92d30af2b2d4c9a02665851b52ee4eecbb8c935d89ca2e7c37626b26bd216c9a419b5b8f548e17b5db619453a8db842370f8889a01297e03e508727989af74a5d18e3ecfb44d24bad0f6e056f5147e9701d8dc94adae02411c36f194e0a7a01e2dccdcc3b3b8e6ad68f74d0590bc9026559d54ad3c5c8496e644d80a313d33ff1cf76075b02aa8c1a25ec3b47b104244acc8f06db5d0e714ce11589dadc33602c32c11b62000001050000000100d2320483359e789ba87e1f2b490183bbc8d2b68acbd770fc1a0b9e02f22b6a9d55ed3c74af184fc8c4300ae54b02b39e238ad3aeb0368a6241c71c298334ce0b9d5ce4fce4b6508b5d21a38dab767c8a829845aaa352f492bfb5eaa5f5919ae5bf0b2dfc2c198b23a7eda134c0b3eca96a02e7627edec61ce349363d5fb5eb6dbce63e75698f5ad9b3ccfddac8fdb8bc624e68dc1adb69cc6af1bdf2211d962b14bc2abee5ad67ce81ddecea9d77ee1b01827429b99201db59d09e7bf08c76eb1999abe98b6b4f2b54d9521b69c075e3ed18c4a54bdfe465b4c49cf41806aad86cbc596088791391d1cebcde0e1a0393bc1d4bb26f59b7f89cbf6302a629c07fabef3a28f4fecfb1cb5337029c57a51e0000000000079a10000000000040a128c3899a2a2c41b5f3fe8262887cc20d50e7ece4f9e5e9dfcfbffbb63b37aa0b83c2c1a9052ba914005fa2ecbc8823aaa079ddafc127915960d4ab2fed8a6302002059783aa18fd7a80b8e2269ce1d19eeaebb8020adc31e46591e887a7df0f37733000001bcc85785fd487f8ba7ab2b4ca7d4ad8f672e24b3c7e644655a801f46d6aca99aac2e233a0f37b66030b6dffda4eefb246f033178a3547ef6d7a285aa9ad193d751dfbea20ef1e1199a7fdb951ecbaee191d5e411b6d3fe3d83e7b957a09612ae645722d724b9a60887eccdb33641aa83df23d25c6bc7e2a38d3dfc39f006d779974fd3c8ff606d00772fc49e96b749e158ff26f4b29f2924a3e6ac8898c4f1a8ca97347fc598e9c015134dddbb47d9a2b418cc84a895c03cdc7d9284142db303335be2b6a6263deb21882027cfeb4b49722702eff97e775e8798fc40cd772921e8013d72d9926349da270e00ed47aa27095d0b418a9a6d90bf2961fd6cba5fb0d59523d34112729a97542020fe8bb4c08a733a0fd2df76e7fc4c50f66c37bc074d88ed75e8aba48bf633b44d087afa2504661785973df35eea5d9cf5292816e353df0225f182d0418554adda0ce7808d62883fc01896c0b471d07ec3e2d4a62dc85a8fd061c7b52791891e5be4005b980eb71c11493b26e074e073b6b22ceac9a86f01f497661c291aec8f14e935defa523310b0149d59d28f8f66830261497b2e4e3873588ee87f5993376927eaf81b8b2084204e4bf14aeafa7774c100000105000000010021bf0238b7ba9342237d091a2344b813661c9d6ea9c21b6bc5337881d0d1f63cce193c6609e9cd605271758b2b56438e0e0e3bc7082b352f74876d413eb30d7aa5ca372d6fa2d6f65ac8bba4b7ca64499bdb089fc35ced3bd7565365a43e839d49604bda273e2c0ffcdc960186f78c3be0b9c2734dd7ba5bcfc2798e783fcfe7d028a443d67d7ccfc45085e0bc5eaace7aeb804edf9009704f86169a62e1f83d5b6e205525202dba2cc5dc2baa82fb29da3a3850b949879117b32b9654b120ba72aaa041dce01571642b58027f11383ce0ede2a78470f0f8b29a955cfad9b58fa128c3899a2a2c41b5f3fe8262887cc20d50e7ece4f9e5e9dfcfbffbb63b37aabb165e6e2f0d9ed07d6bd2837c00b23d0000000000079a10000000000040b1c09a1f98ee7ccbdd3ad76554200c224beeeb825ecb3d892ab303cb9d5c5e1b9624cd5333b5376db5397ec54f1e8c450214f964c4f20ccf4f6171b9a50d877302002058a8f545748411b3fb56bd92a02b063ee2d647b0e079393e5119a57ac99c506a000001bc2050c5cef13e307d5a63c44f6ca5757b27c80e6d0725c551bd37532a7c3d50a9adf78284652413fed5474a5f3230bc772c598a58a40daef53a088c07e9d1d3159138c5269827fd4a42e67fd2e693c6426e0dc75a93d7c305a052e09cf5f7a6816111f65c9a97ecb4ff281d108dc0608e6437c059c70480d1fd947ded3ff0f18d553b826585298b785b40f5b9e53a50a9d355e36ed891a443363ed2f0a79cf151d2df490f0e8335f36d06c9694ce0e2b99e8a6bedb44522d65fc35abddae0651619959501bc3b9b941c125ce0b97919b53a8b37962abbde56d8794e32ccc0cf101dd7efd88a9b81c46ddd0921f2f8645a98151b140ae32142546e2f4e461259f943bd66a483a1b5bf4718da386b4b7d3731bb0ff937e5bb531ffddbcd6c813e1191c98c529ae190ecab2b541ec49e0add55138d4bbbb84d21329b6c14c3e55204de56879221a94a7ccb8221a8446951869db66144d07f3459c80a561d868b9003e5b3ed99c3d47ccff16d3990c8e9216f0432c6890bf568809dc8ee90beb7bd6dbfcc199785d932a903db0e9a150fbead082834c4aff810ad4c620ba116e2572c3241fe9f5feeccbe3f01065bcce01e6eb08714942576b7e3c04faf7000000105000000010054278a414534c67dd9beb1e42bb3ebcfdf29649bc2829202c71db0c07bbf1dfd6d222967f570932b2bcb6c5c78355c9fbe32e4441834f949d46cbd70dc0c54dc9c86469e44e10ae8002dfac47bc8cbb0c9b56c72e0482772dd21b8f8ea529607b11a7ee088403fed1bb68446c6f297e3a7ec1723438b4ce84ca82ef9bbf80ce1c4cd6029ea8f4734ac29651977aa497586b5281e0d7650b0237a932ce6de11a502da150ad0834fafe54de37c0b15d56553c59c1afb48ca0b748e55d7e0affd0dac68e8fbc43e4d3bba8343fe7966e3d55943617ff8d68299dc4dcee88a31b0abb1c09a1f98ee7ccbdd3ad76554200c224beeeb825ecb3d892ab303cb9d5c5e1bc10b2494e6849c1f87b2e267948eeea50000000000079a1000000000004098c3805a0e34a8c9bd8f6d6c96c12ea8c3f6d38877cc5ceff8c6ce38c2ab10ad9c92c2bfa831c507f42c0d8346f959e97ebd8a1e6f98ac72f22bfc3d15ea9d4c020020bb9f7f88410f5347bbd451ea2a0a38091286f3b7c4a46fcf55fdd0e69a0e435e000001bc408beac0ef74602f1306235e8388814fc09924f7c5e52f9e68fca3462a90df010a3d6c287b61109febe4e9bacf24fe28a6314dffc5a5837a27b3c98a78d15408ec7acaa22dbd86eb3b4c02259a75313a922dc5de263f801452e6cc6c2d4ccbf06e4cf6b0ef1027b7036aaed5bb9e3d40f89cf24e39c4e941003c07fb6bd476c4f7b816745db5bd7cd76327510791b8ab745ad9ed2eae0abb32f00741c6406d8374c7c36d7603a7a40f6bcc4c06182c5e82a13ebe226eeeb5b498ea91be0f2c79e103f56125b844bc81a676d01b8bdae737ca77d2a143447b97f846cdb26bc557f054a80953820d5bdefa266a396faec19aad8232d7c80896ed147cbe8796118f13de9014dbd946e084314fe574e590a3b1d9758f3ab66331b5b8978e067769b530ab325509e1e86e6343460e5b7b5d1643cd3e22c19e09b2cfdf84f2284fe6adb2dfbdecf5b11b384ca04d4382728cc29de4210220c59cca06bfc2358f7c23d4129fae407d30d99cd2b6604e8a98f465f1bef207d033f49c60983f54950729058ed2323d2705cc29b3b23be8c13ed77467d6aba248f7860f70720d54bbf4933f3117ccc5dbdb443cb39e1bc2b5d766413d5963f4473f1cb6571d0cd900000105000000010066a0ea99ac007f695c5221a74c9f2ebd5f6d97d77a386a1a827e78337b1a68f521d19a3e43248364f337427fb4c1e6db39f44ac8673b04da18c6e7beaeec4c1e13749e0164e471ad51a4dfe4a9698d9b297f3457480cf741376585ffbbf44aff3a047bd96fbf677e6a0c7fedd0274bb5a04fa50a5426b66542e3448536fe98c700df050853069a6e43813cf963289766ee161eccdfbc036d27b28ed47256a9cdb3dc7c06fccbf34a14efa4207e70fb94905cfef70b21e5749dae073913e69de4cd22c11e6e13eac848d4136880f27df4eac06e92c46b2360da06f9ea86beb01d98c3805a0e34a8c9bd8f6d6c96c12ea8c3f6d38877cc5ceff8c6ce38c2ab10adc1791260f6cc2befee9bc08645dde02f0000000000079a1000000000004012cc0c52938c39cb9455519e7f87d157e78ddbdfc96b504a6b2bbcc901807396b46364138c5142885198f9868ddf0d3896329c99d92a8540890896b71b92ce160200205e5e5b42a9cd66c3a3c9ed62d6d78bc2f2abfdbf98d2a0cf69c5ddef9f850a1c000001bce19829f0438ffdb26cfc04fdffd090c313e9f5db141eacc5ba9562a1d8577431b4b256507df78ebba6579790266b5149365b6e299bf3f8430ed35dfb9da4848288a807cc6bf966eb496cf9fbb0597bfee79696524389cf6bc2848ddcbd93b67a229bd8f1d90860d03192006411fced6f8dea22d7dfdf7731ddc6f01ed3119db9c3393c23ff556daf5934f7d3d1e3c514c3cd2eacc1b396453ac941286fca2214356c1e68c4ddcdc157d105d65658e71e412f4bc5128d15722124f8cc652af8619e148640a089e9fdf956f5827466314c100334853493db77cdfd2d5edcacf8ccbc5d2a02990b1b30667521b358a32ae0af10d6bf1bf5705190551d0d581aeaf34faff187946c892f88e812b893e5e8ff2ccc8283a34c4ae4b11b27255a098d27d761677e6bfdf529247d0b6d449dffc4fa206ad318aafdb9d06952bab1b406599d7d903205738b1181753b4b727060cbb8c4797bde189a03d537dd1cc90935e1d1e9d94b041d97afd750a492ef85b909501622767dc867b8960340b9eb77154f29d1fe13f57bd677d75a01929cc6ff1d4bbd2825a076f4c7779e56ff88426c453ce826911ef965e7b8fce25e9a61d2bfc6fe672dd3f620bf15fcd61700000105000000010036a1ed931d196fbc2d2e82e90cae0cb3fb9ff6b88ac29b2d0d01416d1f9b18402a294e25c40003cb2821325f9c942897dcbcf0aecde313bb633e575730a49cae085f84e4569cb051b834dbb380b4348cb0151822b6d7b7b2831869770e3df461e0c957390e33e356422f03f14e07d0271a38e89686f3301f5019536ab9771074fd5d40d624c2e535147fa1756ddd02801f83754341054ae017d3d75fbb0f4fe52aebe4aeb87f8361b8cf0ee10f9edcf59a94c0bc5454cebfee611f9295e0884e0d5b53c3ca95fd12d37258b36259369a70c5677427fd6e1f852fbcb084cef80012cc0c52938c39cb9455519e7f87d157e78ddbdfc96b504a6b2bbcc901807396caf9991dc84400e421521f20d9a8abc70000000000079a100000000000400f552a52a832a83697fdfe9f243212720607ab33d8984d305ebc73aff543ff74efd575998b231a8bbe76c4af3e8f1893767721a21d42359ae0913f67cf08396a020020fddcb602e0537d5f75ccb858bc71af559a404e319eb1d702ebd38ef80005292d000001bc26271b6b3c1c1b38ea3ac9e0af37cc94a40d6977cb1b02ed7ecfe8a79d0d39ad5cc98d8af7cc6a1efd9335bccf6571c2763007b50884f6354a09940beb6f9d837d62fb26c31bb588c91166e4908201270136c052eb7ef674e6520da0a83e29308354119e36f90632a11b201f778e1b750cea36edbb01f8aa67466e348175ea46b6aa457ec48af737128c95cab6d8d7a720d094a8eaf0156368267431c607bd20545c17d0ffd4338b5e5c000e53c514b391150b6f5fba4bc8a6bd58275b028ea6378add3bac9136b3280818ab9cd24be7701a84e96e275ebd42136a9cccc3cf1fc7f1813a293b342952de9dcf7a07ef2133543f9f0b39ca7e146ec518f9e9f80ab2c26389eba837f0b86424e63a97137fdd8347b3911e4a5c16f96d3fbfdb3ff07c63994e10cf9f681b4c4b77a6b8db83ee20353f1db20df81de09a8d899afee70a42d4e9028ba1c8033cba524a5424431dfbc87c11b07d1d3d25d073e57493006ac65f1031c010fada9ba5a64315f1d94e81859b7ef301ba96733304612e6c21d667e86dd3d793c980312a0f3557e54b61cc633c16678eebf4a9abb2ef36055e18e39ebdad72c51b238282aaf471d87d7b8cc0e589f6219603689aed0000010500000001004739325c51ff628f1f8b055fcbacf0b9775af14c86f3c2f8b859479217a4894115c0b76161f4fbf8253a066bf931b1bb2a767ac0777bc4b271d7eb84cbe715c40004d8da79af94c7a5a8342ae6b4f5f0266b08192622e9a96b5f57807654b5dce0d7bf2471d75cf2e04d209670d6b381916eb0e16f7ec201e4f0f56a7f72c5c8605a940a135653495c2130c85694f46a77e1ade40e494ae06807c6959a1e49fa066c76dd9022eda1be9c3a61f1d0ef9ead185c22de2925743f9d1507bfc8068e93bf29310e6637417b8f41f46dfa44d45fc963ebc03362d1d871492897f0e0420f552a52a832a83697fdfe9f243212720607ab33d8984d305ebc73aff543ff74d7b689186f6cb707c5da5efd60b7abd70000000000079a10000000000040d136fdba7ae1b986258539ba31c6cca9e47edca4e2582d5cb06730903aa42a4c53e09c0bf5ed18c96aec24484a60267055106186ca77940bf67c89334ce7a8e30200204592995a6a1b526179fa8f13d8a0f9df9ae7fb337934a7581dae51177b7e6a0b000001bca1e5210d265c81eebe0a018d9c7d9a193475a0c470de8ee4d068aef8082876ce41cec1521c6f22b48766b27d668ca12fea155b231a607f1d259b5cb7077e8b8e350d05b8917bd707a100aeefc41f41ad6070f5bd03296ec27ab4d3686ac2c08643045d2bc8bc32066442647b35a4720bb2a65c917906a2672e9fa0c55f595430ccdfe94887af3e8d9a851d844290de9e7eff72ebf691afa2363705fbb5d99ecf75593cff823f23ea65def9bec516b0374d53416dc2304fba55cba181337a65b9934712ec6145a6f4d64fb000e99ea8d1d5ea8908f966559a6fa15d9b60e66f57839bee0ddb21f41388fcc05e19088ed46114bba97a7ed54d745eba8ec220660e972b657e71e60c72cd1696bbd1f35f047058378787d0c7059a8c301c4df2f13cf0052e12272f90b68755d7662ff2cf0dfdfce1d2a96ce33726d4527a9eb3f0fdb3c63295956ff35dd4fb3544c6f6e32cfbd5cbc970d839e6c71b88a0332d070d1abee25859853ce04c02b61ae18003fb194e9981c392ad392aac5793ae04a446ed33625059a0fb3ae0c6aa9ffcf2fc11bbf96dfb8520c0f297672a298a522c86f15f247081a6aafa0ab012e08eaf1dc277fa02c193244a30e245b9270000010500000001008dbcdf3aff789f69b93170a3a0661f6c5b42a8297f0026479f2eb1f88fae8d52b1199613ceeb608145af98b3d2f3216ec0cc789d87aac93813a94e22314e5af26154c01765de86e227365a383e390fa6727b0f0dad00d8e0eaa0d41c702f758bfab014c453eae24362c31a5820609aea7288db88fbaad0a8e32a580bd7b4c77dd74c114f1961177edeb44c389d9c07aa67bd48bc8ccedebf396230eeb2c63c6bc2b022d3ef62e1be0029f797372731799206ab1cffb4e99f84293041d28b020d5dd1bb2a3d24c9fb094f798802ccba78f0cbaea88a18f2af9440fa7ba491c312d136fdba7ae1b986258539ba31c6cca9e47edca4e2582d5cb06730903aa42a4ce1ddf58cc18310c73db68a03bc67eb4c0000000000079a1000000000004055bdf5726d9dd4880b33e0e0e19a30ebc1f5b605c4005ce7199294b5e91365772ab8417ece9e397ad866dc34099d18d4c2065b95d8acc2c66415557054efc4d50200205089bcffa01141dbbf46dd8b6dbf60c9ed30110e0acce0bcff700f059921e609000001bc544b0ebf11710907c160ce522dc7c6aae67e252861371c3358ed780ccb05f5fffc6fe6f0eb131c8a29a7cb0f44dc0bbefb663f082812a13d91c247ee0317a4fc6e6112c2f660665dbdc7bb63e5a85018cd8fb853d31a4a0e96ab5e2b11cb453d5b9eccba1da232b93b3e1929453a17195f74bf12d0b41438c161be107697397bcec7ce4ed14d71b1f82d50f02199c5a8c4d7b41b6eb5433e16cd5fc1d99569b7b03ee230a719eebacc2395db69d12f44fe7521460581b95644ca389b2643d4e1749fc1f0dbaf7be0b1ec6924a1341b549100d4c9b14e8730edf18e18e14d2f36885b4afd3124564dea2b4574a4874dc9aa688fdef7003833254b9d91db7280d1ca76d541db1c4bd2770246cd3d975163d50f7fbca158ab96033afe72f7d80cdb570a440025e03c9002d67dd89025f0ae00ffca072c40c9f203e9b15d7aa4280644c783fb39e943f9c5b5a2b37c2328b29e9d255f6e1bf118f1787266eaf4d4e77c3048e5b2fd18ada214bc417d38ababc3f0143c1530d967997d28655c5f2690eaa88647300fc9fd8677040d8248bca264fc037d8b28dde591293da004140ee3901b8e9d820c388f86a4bafbf15f52cb0a1c2809dcee6a2ff733fefd0000010500000001008e2b74c7707eb49d5937ceffcd2f0c271224591ad81a5261369df57bf30ae4c15407e63d4a815d4512484f9a146c9b666d11c6670541330121a53083d296466a2c0e06e42b759f7a2993d32e63a29224a115259170984526654066eb5db8a8311aa1d81b02cc2f8fca9b153b9bd365b21ec080e17f954b150838393a90ad83634be8640a167b28ec245f3c1fe36a009f8b06a6bda1b32061dde2b7c500e2acfaee3a37729d048a5b0192036b7d1334bc38ddf89c9ee0404d21320e75987739a71c0e5895a3afffb36abcb64a3f365b29ae6a597fb094d2637ea392b1c904a68555bdf5726d9dd4880b33e0e0e19a30ebc1f5b605c4005ce7199294b5e9136577e6a7106f28aef5eaa4509031a6f4610e0000000000079a100000000000408a95042244da9e8389c54cff3c69a6aed03f1e30b3ea6cd8ed50878cd7950142a512f37d4574cbde197c4578ceaa549bb90cade79f7f0172480884f0532db2cf0200200006015c13eeb041da4357e8a0935574b0c3cb9e15e13c613e6d07e67da53942000001bc993d9156d91bb6dec6a955d53b55adc135e9563580400efe36247f3f5c5ed8903790635d069d2eac2c861d20f9c8237bc798e2b75cee3aba2b5cef66b938a88b8798289c5b190d842b77dd29c89861a57ba7d54226e45b7c4db24ab917af105f2157ae420a0b8f017f91818269de715e2e2dab6e851cd9b511a39eb6cf742ef6e3a84a7356b748b5df9b3d2fee45b0b563d621ae67c31e179b530b410d895479fa9fb2f167fdb12add01446873ea0f71f8e42ff80dcd4fd41e1d5a44a9bbc785497cdb38e3a891e779684314fbc09212aabedc9304daea02fab72f21e74e45f38790ab5e71aa6a7ca9c495fdeb40acc5c59065894b9741b19b68e7706187e506ef32d151229c6ff6502438f59bc042a0cc3c3756682b64eb7b4ae4429391e10e0fe18dd8ba3ac98094a8a9acf7dd70256bfcce4b87a895da24d0843f09d140330f440bc9d2897058152118a07706221a129f24b1ff0007327840e42a3bb8654c869a5356250cc87794bd5bb172f43d1a8daa2a6668a014c5ed833e2f5dcb4fd7616d4bd61b53cd7a618f62f8074d9914089bce838564f9716f0cf24441d97c81f8408b8646c6bb2f2ee9f15899a0f31373404b55ad44f51b9b7f9007000001050000000100687f0f636e10cba9fdec43da4824948a20f2b69031530a6aac55df77c0a14772a8ed06e534ed195747b281ea9089b7a2b6920a660abf047dd14a5bd848ba4f5368855dd74b5b911527819e71fcbdd0bec2c4145a82aeac24fec8712842f65a9912489002bad442f3709a3dada241f702f1bc9f8f6667dc3c1323e1871f384e3416e7d78672032918f890f52633e101152b84c6381fa5efe532d8c661caba2087f718e80d07f8b5c965d3f49372f02e344a1c011ebe2ec89e1a30f3cd09b6e9dc01527f643f8f70e027c15e8b750e67827dc940d2a2254b2e1021cf9c968110d18a95042244da9e8389c54cff3c69a6aed03f1e30b3ea6cd8ed50878cd7950142ee0e981b6b2707665b7cdb9060606bff0000000000079a100000000000400da626f0087c23ab7b30e796311740f265e2e73be4cfd69bcf624c2ddace882b8ea19bca16de5816eed3afd19f6d83bac56657eb6c1540f11e85fdaf296ebc830200202e428197b9d7a72d42b62ab76611f598b992662f3fecec0f9560bb344102002e000001bc82114d7da4d5d7b172f732a19375fa59086f6eebf564f85255198436eddcd5d88f642ba77bae2d471de9cc374c1c40e353e681fd1e2a71f62f2923fc86ef59b26747e1004f2e9af5e43fc90e70af12d23c7cb866afca9c1a8a4e300f9b350afaba3eceee1624e04526e1d4d2b64e70017e64124df9faee50a80de3cf759cb27680189d154b495df11e5ae33c9ffe6285cde9adb7b6c90beb6ab637e2f623ecc52b5140db4e19e7c5fa14a7ee841dfb5bd53ba812bccff65592c05e01ec0361f8ec7c3e96ab2f99a11af55bbb2e013302d9011e8223360342ce786d826f32ba1ff3a2f1bf65fd6b61fe2ffa68722c395959d8d77ad50037dd7992b826230a58747782627a82650fc7fb09bf66c12382ef77df8eae6aa4004b180de7b6564d7a6837562e287dfc0a1020479b82a937df0677ac4737cf60fe327db2f0a2dcd553e5062d42d3d48973f8029d69d7c915ad9d2d569841648ff637ed0306e68507f10867b050d6b8b004cc4c5c2a0faaefcf796198aa4a7f42c2272635f8f3cf7dd3a2a9d77fa130e70033479ff4e589ecd2cb50a274e1bf65b2488704d9e9b8f0de43a67e059770990da099e8f1ee17a3c5a9bf86223feec4446ee6ddfc9f000001050000000100a88d2b562c06d31d6c88a767ad8ec69bfd3176df242bb1021290d5c33307d5991f95c21f5aa26bc4fcad05844c8f470f9277988ca6a49d22c5de1ad920596001c2b3b1a7faebe61a0cf940d7c6c565df04ef70b8e37877cf2e6bd106cd3a391500e9de75f3c87d0bd3c8b5fe8f33b3d976d979579687758ce93d64fe4d89a77bcae916f3bb65a7c8104a097d22de2b752e4713fb31bb38e3dad8f3042db18d437919c3d9eca3458f6ddb96c1b7a4cf554d48520a543d8d8f8ce67641755474a4b52b991fe8783ac814a050c5cd0919a04b0f7f99833c0fa786f8fae0447d25c50da626f0087c23ab7b30e796311740f265e2e73be4cfd69bcf624c2ddace882bf752f0fc8a6395e445b8107dcaa288910000000000079a1000000000004025f6473f3b71b8210218c226e71bb094befe0979efd9b1fe7caa1570e83505efbf38a99f148146b10bafe4b35f7da94c818700fba86d1bb217a1d340e5ab291d020020ceeaa8e98ceec3cf0ed29233add1139b324ca278c653791a8eeb857e9935fb70000001bce60b3884eadaad2172e9ee2bd6037b910c42ccecf8f8ea2e8169a96885a27e7ed3946e69641e00595b6744b8dc74c3a4acd08b455829cdad07f3ae554f065e158e2b94ae39ef98b54b245cd98222c1099b39e0c0432f501b4e27872667bedfb24c760c927765139eddd3aef69cb40ba9b0afcf74fe7ca420a59f98787e20cd397a1140c0634553ebf5adffb32f8877db47fd05543e5841341effe14a0dd10daf862667e6ac4b99a88771292a1ac3487c60eacdfa7150ce6883a194a0434aa616b5aa1ad7e9c0751d030515319b7cbb2bcbf2525314a646f6989a61813198fe247b415e25b3f8f2cae4d81fb5693efb9d9c783dda5170548b3f3797d0308b22d522214cbc65d4a4f063aff3f461b1f6236cc7f68e9cec54fe8e42639b272a15f6b6107bb3a1b2ed13287986cec8280f30c309b0360b0bc4d495b34cc7d9b5ff083055c01a92be5d58fd4a7f871d00aff6158633811c5b970eafc22efc787b2eedb566b2c4c0f1de5c39a45bef000e9ccd9f71ed65362d387ebb1cfbf66ccac71a3e5588c0c2f6ca551123ef0322715508a043a1326c6abb4e9586ae3703b40c77863ab535864c968a5747e934ab12672be461c86b4d5025b20dc89dde0000010500000001007bd4a76e85304c1b04af365dfc94f446c9ba59ab940be686c2d6f24ddc0687c938f5d978d63cf4db1fc66556a7edf2f9c04cc914831d862ef90071b03bb8b64ad4c03335d1fc54221019144feb5e80bdcbf8ddf3f7d374f2bdf5f998ded4dfc585ab31ad874045c2fd20ef1cebfb73a26eaed623b66af6417f04bc34f0765766899849c0ff1a26ebf10e3746b966f8f6c634a4fdeb02a8716ab05764748438818ae9af35e59e5d198a13c7e354fbdbc9cc87adb369be757304f1ca4770b132412fd355ccc3785b716972e051270c86f71e12a933712e166bbdbab24b2a19ef0c25f6473f3b71b8210218c226e71bb094befe0979efd9b1fe7caa1570e83505effd771d93e5d58e5f3676c3e132165ca30000000000079a10000000000040c7f92d683f1ec6c9cde3aecaf2839442d285f4d837e1d8ae5dd7a85369a7282867a7477f1864a136788638814f74cb1740a82e7258d62f3c054b9ddafcf2e11502002029dba78aa14b171815ca0bf6ddeb02d072d204d920ed554920df94a2ed7d850f000001bc865336c5ebffe9dd6f3f802cea30c164940c6b9269d756528e22ed22c417476b559eab28a878ddfcf68111748b82b11c5128b94277f2c472d2672194e7d2fc84d05e585e336b3f8f33e3b7d44e11ec9aea68efa2093a657b70c2825d84f933ea216ce012cb9630a4129574af7888809f6b82458e18634be9a2c3d79d1603e834fb0d2fe87b34a55439c98745284eecb0ce40be2a2828989c620de0d98d66068ba09cc616537b1c4cae54f9a8720340f7c1d042fdb8d6f9c2657b8b08e160cf60f15991c527b6ba7a1082dd03c8fc203ecaf2a74dfa0edd3989ad2e234f1e99ab901a6817eef336bca1edf875aa8761ec06508da4e2926a461ed569af19f5a4c501f721ac6fcd25655609a2547bd3c0f93099a0a7a8bbd00b481ff1d657f965faf5ce0587524beabd4d3d3d55fcd61815f7b9be1438776e97a2d31afb0916746c991eae78826ae22d6080d4e62221490e3a2fee7fb94f7bc170ca92f24a5b3154655ac71f1bd1ee4f19b7b8f07e00f5961359b461d3cc73b284248c77a907b3025235971d40dffd13287daa985e0c1bb749b000f14200e5efbeaaa351e8e67b4c739168c7642e71ea4e698efe2da52268a9171bb2ab69d3727ba73b83000001050000000100076a85ad7a9e868d0f684eab226b3196027c9027604a3b95d30adf6f55dace7d880471dffb78b766c5b26c9bf967ae276dbd6b18570efd9a85ebe430117c11f491f3df6e641a7fe401f4098e5cb5e8be8a114f0f073215be29f25cdc150b459c3bb61f6014357c0f211bd7c468efda6ca0325a8c522237e828eae62f76f88b7f9f1a9117aafc056f9972061fbe1729402f5cc222b10edfeb99f48a6c81c7d81fa7dfb082b8fbbd181cfcb1f6181e0db9b22c883cd1e221e0917274d125f346ec5c630c61326863757331471904374ec5e1bd03f0a7a0966e797e5751cba06634c7f92d683f1ec6c9cde3aecaf2839442d285f4d837e1d8ae5dd7a85369a728280cb7c505c54ca02e0531d32a7ebc25a90000000000079a10000000000040772fdc5aec8c3168abbcdb62f105a34df288d1001b2ed36e27b3bc177f01986e7471957cb3f384cac15e1203f23b5c5a346ff5766b1049f6a128b3ece25ed6320200203f3ecf7886ee4edcecb13c4819754e9f9408a8b839acc6d9961c31f16ad7fb67000001bc33fa24734df3fa284c335c2ad2f71a31131869f03348d34902fbf819f461b59fc1552b8f73864a2f23bd787c469c8a6f76920bc2d6f26b6814b4c16fde5e70058da8c7fbb7d7921cd5ea645e4ab74411dc2212a62fc64e29cf18a1cbe3599988c400f3b93386bf99a718ff7e085b9af922cfeee749370d9412fbf06fa75aaea52eef4cbc2991a3a131e3c5213d145708b4339c3b02cf2546eea7fd6375933d77578dbc6a621f6878327519536f7cf0e0e50bcca67f15194e0c8009970a059227e9c1b37d9cdf021b7e17855cb477822d7233c064769f39d98cf821d93409033a2ed5a4cc7eb082f76f6c2a570035122e58e3b5442a5b4ea7feabcde9fda1c31daf1de30eb417ef4a667cb124e5ab6dd902587f38058daf5d5b09bec67013aef0a0749beab4347311bf5dd809384a48e799e9f1c89a4a667598852e52d5668f4a9eb90eb996bfbca79f9b1c76f81fc0da73bb44637e8a6d676ab99b123ce3370ba6bb354f68a231bb23cf0154a46b15be3dfacc9a6b843990cf8f609f25823055a55eef0e780ab0d4e387abe4370614d11568f2b939b6d8c59419cb90896b4a2f7530b5ad8244c05af3707a65378f1cb024252ac578e9f18805a2ac78000001050000000100c28d84d83226a67ffeb1643a9cb271aa7ca9ce97b2ade74591e0b9c7ae1231076d8eb62c815f08dc2255bbc7f431e90e2a309aa39c0f4dfb469454000bdaf4cef9b247e92b3320e57519c27e9f42531ad8bb84e2932b86711022d709774e2a76cdbd027956b41634904188f66eee30cd2fa9f9ab304fd34131778647d6662b20d24d66b38c23d72524ce82bde30173752d079a491524153f1bea24036e7078f934c120a173a549a5539e501a7434e113755f07b778ba6523a944856b20470d9cde886736673985d530a939da3df5ec8853f515075b5e583ff3a73596df6d4c75772fdc5aec8c3168abbcdb62f105a34df288d1001b2ed36e27b3bc177f01986e0e90351d3841ce4b16d9a6fefd5d19ce0000000000079a1000000000004006ca76dd5872cc03d53b77983b80e534b8e2ffb969f836f0388b54e8ffd550b05021f5a69eb607414a97fa80c951369da21528146e845fd7c3bcc3882419e441020020e82cc80f845da50689863ff53e1be83749c30de79b75440d0c544dec581a6406000001bc5da1f69f9c4cbbcf2cf04990973cb7689561f4276e89d4a115750685ce96bcdc4ca34ceaf0db97542fd83e5565fe417cfe18bfb129f284f67d4fed61074e171a8cc490119383b031bc92f846994751f181f38871257c6f8a1ee578beeb85a7719610780906f8528bbed4142e0cfe6ab2bf74f21f8f583b66a3498fca3a39fbb435de5eee06ad16d4ba502128a8bbfb66a5ca0fd1e1bccb13adfb5a53376f69ffaad495d34bcebb9336e11ddabaecc01cc1654b694117513499908fbcf4cb566dee665aaa741b8fd3696400da1b2915ee6f2bd84cf4b0bfb579a6cdd6920b6d70a64d694d08bb3fdb0c733781fdb1ab982e99eeb7cd0db97a9506a1bcd403989f89629f7175efe247dbc21f15d402e228b908367107ee25ff82924111d05cee89c89588339abaaf2ff26723d176191431a248d2203e57d81a5f9bc0a85226e226ffdbbbe041977fa57556ff53966d23141a03b3212074df9198a754a2d4835f5177d70fb16c6bf87c1566775678a8023d3faeffc2f6f3760eb591ea90f3b16427e129f9dd188ea13f6b209a3d25bd0d97778890e777b7aa3d610efee521a93a5ae07aea8b29b8c4ebf26787fe1dda9259abd2d5f883e551726dabd981000001050000000100b4a057e2c15342dde480fff818775af8b2a936b12f83727b165906c8c7b7a3ffc9777efad9d6dca773a116421bdc299b6b51c3266fb9e9005ad447854e27df1b4a60dc556019da53947a51143a6e16544b236881070109c7f207ff10645f6de25f83976c52c6d1653e4bad852f42a89f780856a4ae1d0e6216f496949f242992c2153c2da09d931c4c027f5c13f3fa457d110adfec9fab9bcd3b09985205be713b5b36e59405b66fdd6fcf06f2449826e50db447e8e4a353f993cb79a6f3ca60d46a649cc49b764280eca4b65dcd7ed630d9d2c3f7b0733ddf636821032aaad106ca76dd5872cc03d53b77983b80e534b8e2ffb969f836f0388b54e8ffd550b02c7455ed08dea7ed0bcbe69d40ff58ba0000000000079a1000000000004075e691602d82abff2b5ff18009302a0cb806ab9a3cf9e66e76b2a05d485b4fa0fb6625ae0207e163b8ff3913751fde12f095c4023c5d52ce897c14649ac836010200208cc50fa5384b6720f58104dbc1eb729d9482aa6dffa6822a5682eed9ea982816000001bc2a53b6d9738eaa73c1c6ca353bde3f36375b3917003273fbf3721ba134289cc6dd7df195953f7b0b37c18b6d4843d8a48e3be1dce97ff8dfec8095fea4759cfb63ecf0efeccb640211a701913016dc9c64f4a16d96679e0606ef899b88e307b1680869cd85367eec336940585a940cf032cf990bd44dfd12209ff24cf286cbeb7546ded18b723c6e3661ad6c5b91791f894d09a07a49c4ee4782c61b711270bc12935a580a4466b3254dba3c70b11779ac1cd9f60f2ed5cf904297f124b89a9e0dfd262521c2727c3bc2f0b6a11ee1c724512842e66d609e818151934c429f2d154a666620200ed77704c3a43d3eb3c7eb774e418acc34ad406b25c94461f591b65f1cc137e876e47a0f58d7e72b0265d4b53c403088b0e768f0d596e037b714ddc1b66e24fa4461861f42ecafbb8199db0cf3d530babd95cb533c78e373c705717c78646c2022821d437f0717c46cc866b61a1e32e972c3f8feb556e59244ade25b31943351a7aa4475d4d5e68ea23dc9be35fad7d45b618521eb79f877ca3c23c13793e9893d2727d475b5eeda1a74e69ae0417aebaddb01fdb385742f58c0340c84001779975e80a714376afb9ee9085565c329ab21d15542f0b70000010500000001003f572e6ff57e913f9970543b453b21d41176e5d993f3ddb21317e960b87632436479ef55e173d33f0f31a20fe4e18efd2edaa1e916e29fae1d8731ee2fdc5ab1d850295a3b77d8e3cb8ea73da8e922b1bdce3e4b0b554fab4f2c2829473f1532a061e43271b250dc5fe775a9e48e6306379abb0164545b0f6621115b8fea7d025eba972ee90b6a0e00b381e68269b10f1a41080493a28abcc199acadeb7019867145af68af1dcc397f0d27cc98b525afeb6371c35bc0c6e1f739c87582cf4166d8c2c2fcc51b68b4190b1bdf4e81d11c22d4313f79f02fb64539ea86a6755dfb75e691602d82abff2b5ff18009302a0cb806ab9a3cf9e66e76b2a05d485b4fa05e16de78b3a2747e88cc8bbdb0608abd0000000000079a1000000000004075b5c44d9bdf081303146322cdd7be92661f6817d3de3b3f5d36a8dfba785177b0b4546370e5e0af2be82d685ced62bd3d63c0574db79439dd0ed91b41a1bbaf020020d97c6763a29a4c8ee29da40c80112e73f98e22fd0a7b535ca76d669fb6b55e0c00000056ba72eb4503cb1ff105790119284b44a72b790dcd393a30cf002e811c17fa86a614fb246bfe7b4acf46f60581dd17710b389eaf267ff9c771a9bfd82edd42fb2845cbd40ec5aec35f13b1b35128cbe12e911308f04d430000010500000001009886f3535b413628ad5c13e38fb90eefa2a5cd9043920545c6932cb35120c6ea9c6531e5a5ee32f3c8835ca7924bb934efb6413be6f7870f6d2c9efd689d380bb278ada8d3e573a95c535aa71bb7b4ac0988ae18c5e28245db5494a93868ebc48f462f7874137b8fa4c6d19433a3b2d5b52105d47150a8183f5d09cf7536ae7cc30c3f82e84665b25d2b9c31b21b1136da0d0677cd97032f68dd2e8002ea73be70f646e4b12608328166c5eb381351c2afd36e52346e285a3e667cb72bb4e355a1e374da7a385d2d60c70e0c23e192c521b2b2ada55d0820d075bf3702358ef275b5c44d9bdf081303146322cdd7be92661f6817d3de3b3f5d36a8dfba7851776db86365e3f909abcf7ca02fac9cd7740000000000079a100000000000404ecd2b736dd7baf298917d65ec4ce1b19769dabb54b6820471994d2782cd31ec1a6f52e3283a1a6f59032c8bede33e97406d4e9640687d83df1d6d88e2a8c516020020980a167b5a554ac8ac8005f050904cfaafe789962d17dcb765aec7a5f553c270000001bce0375c04359f98ca600d5797289e6e2f632eb696880a455f0d4a058fb973fe4f2450dc204a0c11e18d77129270fcbdceff969c2ba11fff6f0dbb5aa04b0c7b50c70229a91ff966d3a391c18bbf88af14ea71e5feb75c53ea277b2a35a0727726d0b8ef4068c86cd03ab5b12afa59f9a0162beb4b0151c7172eb734139c63e89e338e92358180b5de3775fb76b8a19ead8041a41ff2252acaf5e99ee09ecacd1246632a3a0888851776d5faf928243bbeab99de023fbb1ab6bcaa333c4fb3cd7f59eb3d4185acdf075e135de35cb66f18db272aa1f1247f099313468655eddcbd0e44e8f1f4c27f9dd3dd94e52c0ca38928764c5b347b264876679667eb8440e4718e4f343be1e7dbf7027b28e5642628574485e23c2a94c677638f1a32b101420043c0cb2e3179624f2e52f0d014515912e6588090de5c2b5024f8b0c7ef3b443f028c8fa275a7179cc1f7c087f40324ce267bec85ca53cccb608679233bd95c7d655e02603c89c4e6fd91dd3d80f9902d0e306e02f591bb387b20cd980c9c54cee823e0e1f0e58a3254084240b88f6ea26fa7d080bead81708c8f4c1784a2b537572c813a14bcbf5b3e84a2d1a6899b8f4e3d1dbe353937ef8ab9a30000010500000001002bbfdb3fd57ff0ff891d6632391f961d7cb46c93cb6476c2fac5544efcb0c23ee3c4df3f5c86fce5cbbd6eeb8c93189f5f1872b86af7992a7dabffdadb3493f004927dcf3dd93098eaa846608f43519b23f2c1ebb5da816afa406da5eae753f3e0c9905de34362d420d48d26032edd9e76e21302a141848dd9c0a5ffd6dd8598a934a3566d7bb8d1e12538c26605620b46114d9ee1e20effd7f15e5de2ceb8bc7c1acc9ca20963b99deda8e7b59bf63696ad7f3cd48a0a5a20f9e051bfb233b5e88d3b725a64ca0580bdf92ed796bc85c8a83a4e2e1e7ef40568115d6910817f4ecd2b736dd7baf298917d65ec4ce1b19769dabb54b6820471994d2782cd31ec8aa7b5077d679105ff798397fcbfddf10000000000079a10000000000040252fe99841f64a7162ba5a68799817236175f74a7f7c2acad7363a2eaf98c22b629ad2058ed273f2fa8f975557b800f9d220842e441ae113eeff68511e666d590200201197fdc9658ca165608098e423e4f933391bc2758ce8fb8751a94d2097fe7368000001bc972db2b31a957e510e443059bd21d6f58fc6ed707f0f5c39f6975608bd55760336ab1fcf8597be064652627f3cfbd135c63c724b16aa5a9ea68a952ac36cff06e58c1dd846b06f532e6e70ade241bfb07cb42c1726d5672c39901c6b3c0f1b89456d34f17770c820a8ead107220f6d75192252af5d895f8aa14aaccd0cf4d8ac83122f642c6e4b03169b77b4da09886450d704e81f3ebcda7f48c176c7bf78851d9a10d3e859c5013fbcdda42f96465f1f6b7064d2b4fc2457df8abe19dff9f9656a51c3b182f2f57bc4d5d6e6248aa82d07de4a6fb4e676f99b19d5035645db494e36ab60c190d0ba10c3016a92517ad009b7985d7d46bee83dab01c7c608e9c4ca4b58b7a7eceae5b65990b2d7b93701612b0a51b6f3332cc01d5d5dc25eaec7ebd6bef4e35ea428213830b677cc74afbd381d0ae2b5cafeb5d3132b00e599c43fd5ff2b9faeb66977be6b872f364c03648ec3d4b30ffb5f1bd9af906c046602b4f524c75b5fae7bb23cc5faa384cdf8f18a966815b7dd972592e3c9db06a190111cc8c84d31d11685340dd56d9c6b63efa3978cbc67bf731c2363f9b7eed877f85d0002074c7264b6734bfd361982ac3140771e52e03340c92dd7000001050000000100e4d93b3b3988562b2a5e55f678cb9e785432c9acaa0dd046cbeb6cd4a41f679be53b3451f0b3717c80ff0d3146e866145ec5123c4a9219bab1e951179f3d53a8ef6e17b4fd14cc7b0e6201ce4905abdb45e901d8dac1de832e044bfa95ad472ba4afeda9ffe821f1f979fa1a1e77f8de79bd7a28db84b3e2c44cc3a3edc1ba0fa0cf38696766b7c1cba8e2347bd66ba031dedfac2783ea80543f3ada04a870bc25ca5cb43299f285058a9971b9f6757b8475622ba47ebac927b0632cd1dd6e93e454bb9f23e2a637044862436b711252d8835fa9213f6d444de0d9cb7395539b252fe99841f64a7162ba5a68799817236175f74a7f7c2acad7363a2eaf98c22b9d4a609c7383de90ec57056cda27c6af0000000000079a100000000000405b3ec32f81b0a4a0737ce70c42c385db7992149d4112e27121a00ab4f8c4514d98064d115ad573f90866662b3c203a8df830ac4d0aeadf19b5e4e050beb83bc402002056786003a63290c433c5514941c67dc6e5b6ff65c174eb704619a63cea8e3011000001bcab88654791b6cfe72b6093d951df189cc0cadc453dc3aeda247f6cfb84d95b015f908d78881a0505acfe1e44136e1ede21f291251d249740a5b836b25c540dbe2ea5d59e4b2df0efc07cd19ab6fa748e0d51873e2d22ef2628c4e8623c184f7b1e3b81cd6c13eb8a306daa32c34f7fcd673d636a00e3fdb2df998e5f81b3438fc5cd51817a2ba603793d0e552e9ae7c41a4455ba63479915b3e987fcb5aeca600cf0cbd41e1d763a052b8e8786dfb3f52e6ab578aee6d69e27fc47c463f5d8a956dd790de6355534a3715d449223552cf4c38c9357f6f49a4389958c991b6ca44fd7044b1a50fd7d3f66f7de7a8337e501ec771cd001da98cd08bad45fbfd1068b58b58656bc5bf267ce30480867a78cb0555f2dd7ec827b59ef340fbe0a91cdf3dbc7ebad98afd8c265de2e2ed5be910407643db265ba9d77f03f9dc3af36aeb84db3a46995103de93da4b91cb98d906ec74934869c0865121979c517b0c367b2aac0aa3df4effb38e91522d89c5967c78dfbf83bff2dfc6b074884330b3e9b20e481dbb5e265d70f8c7d50ec2b8e09c195486caedde45aee50f3d4d9d41edc1c773d762780988289f834e926fd06175a5e9742e6975db8727401a6000001050000000100de7d8a8c0be80cff49a6de5479a0694449ab6f1306dc90fdda0bbeb45fa88f44c0c45303b7b1be00013756babe26046adeeb034e71a2d4378ee829d1775974ee5c3ff96b1990036b591edbce0b8e4ab98dd101a8fe78032cef546741556a74d17203f9a07b1ca30b5516cf365b7b47c3ad9c3e6fc49933b494e84281f9cee33022644be2cf24ca72c388305add6903fca7749daf049eabc78fe0ebd32a2a5ce4d82bc1b0dfe00307227a036a3d01c71090e767e034c6c3c2e2ad6977cc8793fc6d23efad5c8c363bc413c139a19d36de34e45d0da5228db20d6917535f281fad5b3ec32f81b0a4a0737ce70c42c385db7992149d4112e27121a00ab4f8c4514d9ef49e6a99f30a30ea01b76ff2f8f8080000000000079a10000000000040f86b563bd3ebd9f308da0851d521afe2009b63b9b9d6f6fb4da7218b60e9358662a7bbd65c212261eb7e085c3163ca6096a3d1836ae6c4f52f6b38d36f797adf020020dec7c704f526293ec183f37fec4b7cf55bbc885f9bac175e54cb085f9bdb8626000001bcb4bd12385788bec730b224df056b3a8a8f4dd9c9f95a1804d8c088e8f03e8413d264156a30b11e5447268c4433062ecc845cdf38c2942833da4c13a990529ab8e5c49f9ab2c8b47146e36e7abda3f01ecc610cd84d4a5ae4f8dcad9c367df1338f084eb36e47b07ff271ed3c7ad95412b81940edb219a31d43110c4ba1e896b6b4a810d025599b9d4b948b5f9a6c089cab152b87aa4ddfdd6f2a482f2075a8bdd878b3ba329a570a65df54e6a6f90efab017bd8f9bea64a53ee4f78ef3d9d132581fac91b8a16173f7921e5585bf4956c7a28a0bc337cf61cef9656cea468da1f19b9b39bd0490e95030ff38b88cc5aec6ef4235bac85aac7460f056c9bc3ccd75ba01f1bf8216cdcb7d3e45e785894501a7433a85429feb8c9a48c55839f06bbe2c4f4d0da2f8560fe514b0332469ccbde4bbdf04484ff6f428719a703a508ef94875aadd32935313a434fac2847ef76057ac7f0802c568f1b43130177abc4f62edc183acbf686e8df04a71b5a4bbb01c06f6187b022a198849030b90f609d175181fc23023b9dfd2f2f307d17ab465785053455e4367bbf08890126d857f5f53e3a033e14167403801d27ff2b3400b3a00950030bba2aee82a5ff20000010500000001003749fa35be7a468029b36f3d560e5444193363b8e3539e5ea31149966d47399dd1667e299d28ff121bed2530f53e427b7d48be5f58ae76d3778d61afa40e5aface415af269dd318876e674c7604e4a4c78194b5205f96c0d137560f0209f0d8e0cde7f37ef091df4ed4602e58ba8b9fdac64c8a9280e29b14d31afbaba60e723484c118df49cbf801eee666f041b425ce813cd62cc99430145eb65ce2cd2eb0ca0ebc2110adbb49b935e00c3a785936075757c87237630b10ecd4a7a54545c7cff0c1979c98cbeed1a48d4ef8e949b065c384b6ff83f411e6a536fdb5d45f27cf86b563bd3ebd9f308da0851d521afe2009b63b9b9d6f6fb4da7218b60e93586c4020858d90f9eb26cfd79014923b14d0000000000079a10000000000040e4f13b5c73deea74efda02652efc10bb5664dada18735bed732edd969a9a6606b068b8ceed92f51661860d6f2a3e28f0d97b8b787af51a90a54fe0c17dd4a1580200204f98b769e4cf113b80eb4369e5981c31a6ca50d19783820b6cbd92cac95f467c000001bc1d5fbf0049b7e44b078f5d9e47c6235525bb32a025cff85d4c8552423d05bb74566e431908eef0ccf181393da77773bbc169a7c9f5aed8809dcc3764d039fb6d1fdf02817173a0630687a9e34161dce0c1a46e72188ae4aefee1c485b830a8a7c4e44770201ff96db16c7b1921486c5731d332097928d4379720bb93442d88328c15799ddf83313e1a0651581fc523f002e19243fc711666ef98c54c7a5d3cfebdce8e017beb5c895dd94e670ddf89b30e8a2b01f2879728b4fccec27f8e75f4ca420503e774a466e9a8230502bb304183fa807abf926d05ac931606720c2e29288305bff84b1e1639c110d4862e84275e83650d0b6cf3788a0d7209fa9f031271d3d3829546e95b0a35ab6e97282124c76718659b0e63d2eeeab283ca24eec5e5e279ae991fdd7caa77ad7a97db4cca4ac7b3b3d81fce2a20bbde61a04658248a9c4e75495d379a152006ddf6c6d3bd3e32fd091e8bd6a62584741412d4293750d7012cb441f2b724545a46c438bdab4ad0d4fa7018f3e208750d09ba6d8ce12a513a93b315df97803d9f07fe702dd8422fea51e177a20febc6fcb67f0e7d927c66937c2d8faaca31db136c297e02f6f8c40f80a2eb58804f7fb063000001050000000100e981a2ed29e9614fc8932ac0519ef93fc4bf9d3c2ffa417e23d501f7f46d4872e33bdcbd35582a0859b57c53481bcc62320bb89f2d0a1f3cbb9df1eccc23ca38cba82b598b3445a954f536abe022fa070c0e8240a1daf676b134f3d77f5f56f2df654bc4d45b5354ed25fa0be928a62e879297a02b444d30dfb75525be6d481499ebdb09e53084a6817191544a56c725f33066cf55ed98d789878d291982fad8e41cb975d94b256095d267ca1ba48395ce1ceffe6fb3db5468e893e4fb941585eda2aeb19ee6358abe62e24fda88dea49d686d7b4040b2d75cce9636cb5d1d7ae4f13b5c73deea74efda02652efc10bb5664dada18735bed732edd969a9a6606d4b8124946f1a3aa8e9267b19b1bf2f20000000000079a100000000000403304978d8ddb5259eac860b9a143eaa450bfd86cf9f12bfe13006b38a14abfeaaa8d84d69d73303d48d243e3aa43abe956656e9e6c1bc4bfc394be13e84fb0ea020020b71b8e23220d41d82f9b1cd47e2ab9a4468784636c3453fc899b44e87040f96a000001bce58dcde0b40cece8914708c55dd6885c9ab3794f7c73c92ce3a0dbe8e113dea971c90d635a72853900930ddbfd45cd97e3d4f98e2cb5d7b834b2b86b15f9136d3c28e8ef9c5370c52c0e1815a31b6ce29ed65df44d3158d1d45dbe233a647f658c1a5d8309dd29f275c32c3e35284f9e84807b3f33d9de731f1e9a4e13edf6a67be3da283fb730404ba4a26a36ff119bd2b6a3d9c90611fd006f5ce893b161a72dc10e81a6068b7fe003d3ae59192c91457ee862f10650bd222d6e6a9649ab44a7795ccf0afed3b01e127c95587175100309520cfe83aa83a25fb7e45c7199d8225f364781ce92ed1c8f9833ebeb07b53d4ca0f6fa5103f9f627a2245d76e2813b99ef8d271830ccbb03f326f83a757725a35edacc6409cfd9bb591e8db4c2680eda1f70ba231301b016c222fdf393eeae9040db22ceaa0b66c0817f630fdb38c7a68d61581a02fb7ecaf29dec65e51395524cd9252abed0420a303c697bb5c3f5b2f9522e2d8a262c88f49ce1a34ca774cc98903e5e86212b8340d39cfcaed3b40362f0882c06fee6ac7e6bf9c6e24f6380932b985c9bcce7903a3e682a2ce4fa2b3b66bdbfe237f65e894ebcf5cd7431c1420500aa2ea36e84e70e000001050000000100c3dd9d4015b0757218f81ed7689dfd8b61d0f76d88101850cdce765d07559bf789611b33113358354fd5ed968b6d02efed24461a291d6dbc607dd2e7f3388c721cbaf52934cb2cdb4b55ff087835f0f8125d9dd286bb2893543e83550462f3e57682d1098bbad199db19b1ae06883b40e9f5d8e956b61cf9daa8a3a752c1d9da74240387536e9dfb38bb41eb6547fe956de525a2d80b962b1590d3cd77c83dde665f56dcc02bbd09cddac74b9316c3a173bc493867e2769f27f270a4a04eb065a6b269e58f82841b288185c01990b3b5b9078daaecb62b9077937100eeca910f3304978d8ddb5259eac860b9a143eaa450bfd86cf9f12bfe13006b38a14abfeafcf2ec0927962c5be8f5bbea764abf610000000000079a10000000000040ad9777a631c74f7993d1ffc6db33d02149382cf0992a56c865d1500980f7814581c708fadd79a299bc37b763c14c1700e6429dbe3bd0daa032372e4f451cea1702002042d6974d617b2421c63746bd1093de749a02aa1ba4360c38dce720e2dac5d325000001bc351ef28105cdf2d07de790693ec499e880aa9cf8733ada5300b5af2ac529ffafedcdcd43b408655cb21286af145f34e36f867d162ec6deb01f33588a243265489c5dcfa215b1ba19f1319c2e486f8af1cf475a1e0eba448ade7c6896e2376a2c14635bcc499d88893d63786a40d781c81aaaad75673512f120202cd60cd646c1cb11eaba18ee3a350b018abf5df46bed597636173c582fdbc7bfd28ea35f412da230fcead5b79f190a5fab63f8274549c12147ca1b43071f5ee1904d873e3efbc40119199fbc67fe6535ed79e08e3dfab1a0c071cdc001ab72852f025eddd471f1a4d3bcee6b5df18d28395930567a2f35fef6f3073a255ca8cf64ab5d3a6c6bc4a486e3d96c6308985a88642f1f99e25f3d91ba4eeb2a20a94d3985b3188a7667c2aaa8ea95db4bb9a2379a1d2cb5f9f180487f27ed3820f53c66025756748a3380f93e9eb4222b934f9abab0dd3fb92db14f4410d71990c6ca94aa0a2ddcdccc667c63a4bd599ebd89fc6e76c15d424009dd481d1276f17c9e587d38d100907ccfbc2b3be1c1d2125c28ee480f17323625b716ad9711ad3ad469e6ba12eea23d2c7b3cef7439899efcf46a5ced24d2ea9b22fa3e8a6f0deff77cba0000010500000001004a0d423852d397792e11b8bed972ade337f0e95b846c0d8dd673e36a9930e436932750341b6961b8557285cb5787e04266ac4b3bd66baa059b4391ad074875ac62a70691e1a7afc33597e06155a4a7f4e4554c9f26bdbdf9c9b99592b61bf06b224d52db74e6a163064055d2310f1eac49ce8e8dba444ce91a3c3b4bee1026a3809bcaf60133a2cfc80b8504e0d4a34ebc791c8867cfe9252bf5c821f4eec1395a6395f38edb497255f0c86a89ab0ad8c2cb8837cb951ae4a8408a2546b48bb11f7872edc943d1cbb733d8b7904e789f3ab885f876b3f7cbbf9005023205f0daad9777a631c74f7993d1ffc6db33d02149382cf0992a56c865d1500980f78145980a4f2af627fc9a09dae8b57da4c7c30000000000079a10000000000040e6a90e76ce440236334c1a67e92930447050339d6fba828203e82e4ae3e115c98ebb19975a30cca1ee91903ab82fb9d0ed50d69d11e858a131784f237f46898e020020cb900f21911bb5a07dc69cce4f6975f9d83b80228d7f48afaf3b8644d91b9760000001bc6a5319fa4049e7245fb96edf468c7598674acd95f3096431729302b8a4eae0968c55035ee6ec5c0c5a7a04b2ed23dfb13e57dab4e9a52a568aa13e01a583349f820606b0d5815b5f815cef832135a448257a1546693e99961a427843713ba8d671cc492dea426d792bdc9d82776de7422488bc82199c4880a5072fc50f4f0700312e8b7ff51a2dde303c9fdec1bc16dbd8f07ca5e9b7107f815af2fc17234a8b43b930f3564c1a9b434aca2e895180db3268408d37b531582f1d924988db86263d297d35be439219e7e226a7816005b68f313c73c10ebec139f15f8bfbeaa37c4de6fa527aed5a477b5b830882868db2abbef442bb5e7218dc033924016da3dc7fe6083419364e535f6819ea8e60b56b5018849c34c8b50c7276b3b960e7b08380d1b814c1ca9c3ce7be42faa48edf7333ffe33e3f3970f0f7e6e23ef3af263cfdbb62c182765c250c2d5818dc48de42d7290fa88c39df539528437eecbf5f7a0539f455a04668a61b7b7169f4e1184993a80a078ec105c6b517c3715aaeb83b406e1365ab5447f77bc6a51aebf7b6591f55ceae2c635964020ea6a456399e517bdd8730401210dfc960f63d94f4d15762a75725e6e6b6a2be51ddab000001050000000100671cd3a2e05768cea46014e0a4a933e60c79bb5dd3ac17353502691c99e369d991957d642481ea507de2a4238b49ecf03212baea3d4ab9ffc4e5520228fb17b9512498126698069ab94352c475ba1af394364a520c4d34348d354442972bf0650c10185f647b8d0bc93415f0e91eb100c7dd9bc92b02861801f2211b7a291ac8e2e91ab139117e3d47be62c4e75103cd679005f90a7e844a844f229dc18d52d69a6cd6cde2971d67304a44a1cc4e294e3e66803cab9488a723413c66490d9b9b67dc45fe8cc193efd90daae32a08f86931862aa4d81e6c81fac1b566f72f0faee6a90e76ce440236334c1a67e92930447050339d6fba828203e82e4ae3e115c9e8e2b842794101729bdbcea1257d37cc0000000000079a10000000000040d40def7640dea24be034cb2dc5ee79d6e0ea771946c5bd432d8e09c838cf30f399cc3999fb74bff8d5db7e8b25495f9d2670a598913393c9872c3778e126b124020020fe80eb473d90fa8fd925774ac65405cd2c194378deb02de245dcfca8f2e09363000001bc50977e18ec5f2b8898a9f0eaa25e6e71b67d0846c7b44670bc67b3aa7a27f27c4ebf68938251f292a9ce6c88b2bf1d7d6186260c2fc44257b8268d3645d3804aa1aa075ace41b336d6a047a0ef21b60c3695d498c5c29408cb4ed66f0ef765f4aab9236e1bded60fb6d326c15e8ff91cf0769e35d1bcf06159c70e9d14a1afc1130ee073a4cac20efc7d5696ae46cac7e8ae62177a97a8b4f512d513d122dffc9affedeaaa6fada6a374602491d2c1530237a83e086f51392b2866842eecf61d24a0f1ba3be8726a0c14a66c52dca181f1fc178fddc6c1e25b349782130b833f0c9b6e39d64c44b68859ded066a185ba72a9a438e8591a02486a0db12f9485737b437f5c992e8665f04582ce7c60c4ffbc839b73573b2564b3fba41cf76bae65caeb47187e2da324a9c1e3b3c6f6a2348cc5c79c8ab55baf329db7df6b86b732573b1ad39e0a3f9c6be2b83dc892d487d768698f6caf318b965667264d3991e4963b158ab148780a7e7c5fc28e6cffb1eb808f8a0e3760558edaf6c37526dbe7b97e59c7beee99f9c51008a73ed45c9e774c29cda12284437078088d853e2a9adcb02a947ea9e848a23250b38ae549a895da2b34f809e6868bcba7be0000010500000001003f3e59906bf8afbb3a71ba7f8bd5c0f10bb7462a901557037a17b20802360031f4b36f1fb0430dde98106a5c15378afb290dfb7ce0aab9ba5be4cb28e2dba840363b78e72b286a5e644c222f2b1acc14139b042c6a18c44d32f419342831908ec1b20d1eca2e4f3749d59c83e07106c093535764c048c0d7a6c7501b060d17f9488374baefa485cae8550192d08c25adadd7f7c0363e3cc4c7b829eabc1af841dcf7b0426f33c7d7572c3089c8991bf51627fdad43c36dd2b4648114efdf4da978fcaf0f44dc9fcf6b39b37edba5c6e5161a76cba3438d671f80601dd1a54ca4d40def7640dea24be034cb2dc5ee79d6e0ea771946c5bd432d8e09c838cf30f3018ce3d4c29c59501069455f10144e600000000000079a120000000000408443bbd91d4c9eddf7176be0034925aa49219f0b4eb486254265facccfbe03f0a97a7b3c3fbdebb692a95e4f49bd1abc3f97789b3b947252f74d4f1059abf1e902002019932c884da95fa3e8706dd223b359aa2685962cb7f5bb7898dc0ce7dc9abf7e000001bc74985e6c1953352cd8eeb623863492c6fe407788997ac9976f3ee3a9d6e2028b6d64031de568c91ddf3ec7fce3e622ed689812299b0b9d21be64d1ba0b935542903aeba6d812dd695fe9eb29f8142c114a2f0d3ad4a28e56219af5102b5eb2c9a348054ff1a8e690ebe9b84f0987f5856c7175fd7a10685d03b405ebc658e88bbe31ad1a82a77de1cd5b0687b81606fd71472b490e821258ffdf2199805ec87926ad32918de7d02c1ffdb70fa9f75b0d3c6e8895b1ce470aa1d08da4ccb469cc72a4c77c67f09a83a7472fd974bb28789acafa19ecec6d85d0ce24ee151e55ad88c95046b3ebd9e425029683d5b46edd0faa30742073eb7736d038e5f6cfbcd5b229efa853dd4608da3bb472fd713b7c4f68efdddd6970485f44acac579cc43348cae3f25386a2d4a29c0040b29620e35750762f1e7265a88de3e2c48439a3b3a67b58d61a1aaa0784987a302d47e2584b3b27ef74b1b86fcd164a100e3714d413dafde8e00a095f8573f2c891a351a53679e4d0f8b764f89e2dcf40354578b40760bc570ff9888c924052154af0cdb1fdc49a4815ef4f6be82b9b1383994ccdbff0ad84684d20b20c59905f93fec28b56a8c152feebaa066dc68c160000010500000001002d1d75baedc7906d6e00130e9dfdba08088aa3116a7ba4bb295943b1d6c4fc5888039086d6366bc8529841fe26499db544964c066c19a8f5339c3f0c0ef2fcd3499434996192c8817cbdc4dbafd44d5743d9a8e3ae29cb3918f243a6586184dae21ac34e440e1ef769db4a5fef49394d4c40ad66c51637d789a5f43035571ed0f7e7a5315a7faba16288906e152d9ee934e7086e60c63eb8d47f88e35d4adfcdfb52a8178e1edf2315d6d88af641c3282ec613342a77b17286aece192636609de55a20b38f90bcc0cbe1212a402100bb1957dc47bec218648aee4079540489268443bbd91d4c9eddf7176be0034925aa49219f0b4eb486254265facccfbe03f002ac8210891e152d62c2673cb051f3480000000000079a1200000000004093a9ba36135c2ff9bad8c941b39a5316fc2809600e35244358254f3fda5ec6e29fdb79e3f2df66a1155e93020eb454493b195118ce15210224d1e5dece78014f020020d214033ed4a5850ed945d0a6954639c6da60363088620bf514dcb20eab340514000001bc4b71d96bad90032250ece1d60a2d48c9e97444b95b385f7d3e4b40e5f20c74eee01cc961a34a84da63c1dbd5087bef6e2ed210e54a769e1fbab5a539dacdd70d859c94f7e01238990f894eaabb3de840fa4a7f491c77276c4eb19167b85eb5182b818948470350a238bcfa588ba471c6adad4d1be9ff7a854893af45f77d8624200dd8bee61b050317b2b8af447922f7b1e4049918d39eba3e2d83ab4e9e12ba437286bb1e017fc150967cef73bf7e0ebd5fa39bf60a8aa9f6e23dac11930585ee48c407eafd9fd6bd8a36fedd3e38b7811545b3905f12ad362e3756fb23f470a33d85a347f0c84476e000e27f1f0eebd456915d667543c950832242cf278380118c5102251fdbe0e997df73889dcf95ad7b299177d9e0bff4b9aff51494e595893fcf87f9ab048933fcee9ef6876fe31eabf317e0c663398a543a8deddca1e35c905345e57cb8708ed6ae639e93b80aa22a73f21858c02ab08540be1ac104a5eaaae6ee9d593bd46fc6b6f8ee86ed378b36e9c98df1fe18ae866ed836ecca9f74de83d02561fce1787a447122ac5e52b511e6b804bf292b511d4bcb9de9da6d461545a4f3063745cb45bf603995e8bb0bd87474113b95015c912e0d0000010500000001008c9a723a642228fc3a3d5b2cf387d4dd5773f1d8950b982f8d1d4ce3e8d4a10aca8b026bc1b8bfda8f492784e950d4eda1dc50cb46924168d2a3488279c58587346f2188096b88bf9f4d87085e933d4cacec8239e1fa75c5853c3aaaf65de86f326b567de0a745846337f558e9547897120ba13bc0b2bc3139dde6681edb3d14e83ca1b12f6848b4aab106b2b11f04cd178bbcef12ee3ad53353ba4a23d3d653b926bde6812c6b84b80dc10abd2e2673385beb2f7ae2f0ad20687bb97bddc334243f9f23c04e7ae1ff6142de5fd35c301a5291265e00dfd0de04478072f83b9393a9ba36135c2ff9bad8c941b39a5316fc2809600e35244358254f3fda5ec6e20a257ff2431574ab1a615c00d74eadc40000000000079a1200000000004001f61ba8daad40f19f36743907405a56a6acc5a3cf945cfcc4b079265726be05eb8018b138745f3944d515d5907d47eaaa1f934994be3fb77ea562817b08801b020020aa29263c65195a3edf715b05a7e66f1428e6f962d71432bfd024549bf1901f48000001bc3d985acc800387792375021268cfee54561d9e0206c46a241ddb54b8743c822d341afbefc6e60aaf80805839498c39f86c43047ba0999d31ad436565d9a7f71c1a3702c9d39e8a7e1806528d09fba385cda7d06e53dedd42cad78f99da4fdcf51913353728ad2f081289584adef36c82239d4de56299e022ab5209c2997cfd9db7301aae6571ec89170330f5caf5ccd5906d6bf4c2b78780fbf143e385b7240c226d89e086298b5f09fa75b8fadeb44880bbd32c860b925aefd7f7e6af424c3c4c9f725d0de48156e08ef583efa945ce8769d35c286a62b4507f24d1a022f39ebb3e76b3be688809b0b8c52ca82bcc2f90933c78db03740c0e842434b8c73b53434e9e24953b93897a34b01d758cabfedf4bc964b748cabce78e6ecade1166c6834472826e940627c3118cbc8d56c61cfa794ebda267e63892ebd54baef8b15ad00a93f63dc128907ca6bb64a1a74ab03e7366fab45d40297b20bfcd6431ebae15d55432b49fcf5f1ad35725a6cd07aa2a334f9c3fa8921a83b6aa4f02e7fb99a647a907c2669dcece7e604a4e38eee936a8fb3d59b015fe753240124b5a6ace7025c418c75a9e7ce7d155c9a5493f2367b5aac9e8f781119e540a890000010500000001003b34c3129c9c7c238c533fe1122a271f63131168e64a3ff5fdccecf3eed29631eaf4a960b0676d5f4331cb37b322f058702940d8b55926f1174deed3bf034e6a5977f737124d273ad1208e75e7af482dcb5a5fea48957d99cdd64aabf40fc71dd359144c478e2adc64b6a55f3603988ed8da2f16e2f18592f4f47e5c86d1da3d7077e946728cc0f82bb01d648aa246929211daa4c471d5c6caed4cfe7a76cd689b0a54ed6ae36fe48c6378d4c581cdea644103b5ec03a729206739fdb7d5f94af7aaa62c6b225b1301a5edce7fabd5a27e4b6e2560fce29bdd145dfa2f30145701f61ba8daad40f19f36743907405a56a6acc5a3cf945cfcc4b079265726be0511d99c18dd9a0c505f13379e4c1ea37f0000000000079a110000000000405618aba3d11b7063af27d29f19589290e6f8e136c6c8148e039a6aed760f71cac093618b42e3235856daab87f09eb2f51d6d8e03665c25798cce78fe6a1473b7020020c0d6240f8a89dc159e350f7d8ad95d0f52a3b937d2bec2436b16968b5d3da843000001bcfdca579d6925cdc403abc259a3f6d89bbc07a46e3c0c05d6845c4b3f1fbf59e2a56a4c21e1c5d4e0ad5fb05a5d272f3007331e8303ccdfdc2ddb5dfa6f7f1ed302b61245ff478ad1f51c8e81432a79498cee15b4b7aee3de1bf31b17579f55917cc0e6d1752847f4a37d3907e38d4950fe2440e2c6e6bf164f53dc1c55b7118ca44d42f68dd7e3a36de9298103c7082cbe1ff0947a43306ef73e65c4a914f3f430641ce4ad6bc4fd6f605bfa5766b6785f9866a30e9c017651cde15ef1462fe5c73cb0edfd08e795eaa03c89de93a9b070a72181be254997fdf08a48785ba24194edf38a12807039258ea02c73368f029cfd5c8e19f55ff8fb4bccc8e1a772d16b034bcca83a7a8a5ab94bee27b7b07ac4742625835ac9cb9a2e25871e9fbab5b7c39226e8dee77dc7688db944a26b11c13257243452164d59355113f2d27390107cbb59273d58f186bafd820655adbe0afa072cc97200b9f1550ec2bd009c8c10ccb327d70cab5e21564208f15c48727a7f925027c626e2bb59be3b1fe9ad8d0afa7d8548cfccc91f08f9185ee9f334b1f83d3e5a8763bc3ba5b3fb2bf11c7b849bedc082858fd29abd2f923af3c8bfb82260027f77ccca4a664801000001050000000100566124636ed205ba15d46ab9f22e2c6cf2f673df7e24778b9e26bcdf355ba73fede16dc51f936fe5f9140766c9489238fa9b96014063492a33c6929c14212d2de93230a208f0669b77ea1e4e1f1357e7ca593596cb580ad73cfe1363711445dda4bb7baa772520ecfd9835bb102e66000ecbeb7994ccae2685042188f5cf724bfe95b9ae7c59e7fc2310cfe2a4d31e53445bf570a13e3a73ba7d28759169ae490f0656b20fe6f4b75f414de04ae4df13fd37729fba24a123a12dcae1f2f5a7807756a814dce4df1c3483d1a7dbf327c66c434529152b10c52d3abf5966c86cdc5618aba3d11b7063af27d29f19589290e6f8e136c6c8148e039a6aed760f71ca2282e6a949bd8ea3a8d0777faa9c3cc30000000000079a12000000000040d900507b059e76e57b8b08749d804855ec56a8cc86538ac148de9dd01d626e49ded59523497d980b00ce6308a7040bafec0c793a9ade75b3cf90e499638ee0ad02002046a8924e43bb927093339df4f65b52665cc90a9a5101bd813b88eed72feb3177000001bc015c6f07445a65d6e96d61e74a401d0f22e11871b79264d05eefbdd13cc0401fa732f5b7429351189d7cb252318620709189176db3a2e6a51da5e2c0e41bbef95a4df8d9a0888c1575325778ecd5b141c3f87c2ed42b4f4f4d3fabf0f3c10a1fb973498cf4325cb497d6a566804c0e34031a0f91c51d70120bab122b10ec3e4a7f60a29288262a6a3022e58ac35cfcf58d88caf923c911c06dbb338e4b8d60e1fa8d70392fd2dffd0c9ffdb6eb18f91bfea593c4c14de0784c5411e5a7fdb0430906c7bdd334dd47622b7244c1f388e9e9b21cd41c311bd679a3777bfc7121488496da1c57727869677872b0771f5dfe08012d5f121a1f00378d04cc5fd2ef7dd6c7f0d6bd98a44b770d8418b93776e89534df8fe9004b4bbd6c0f40c90d42d23fee3b97b0804785060227cafcf6a3942eb3c967261fa8cf7f0c0ecb79515f14bca5a506a14bfbf9c10f4119d807e6334b2d87fd9df4a7aa6968e30346a10d6ee53a6510efce8d719ad04a41906424404eeee7700fce28f9d4e787103b413cf8808ccec84c9ca87b81a0524994e04a427aec0a5f333f8088cc26a09b6198d5e13bfca1ce7f89c52bced43fb0c3212f8a32709906e9370fbecd12bbcf000001050000000100d1ad729fd396ff252e02929149df476a202e52f4c86ffc80405ad8a7f24eb3d2f479b8f3055677767819956f0c193a53d886c506cc43c7b0ccbc30c48fd2e30d6f29c6103aa577c744bcec8a1a460e2556fd32f2c45ca69a0336cfe954984a0c0f7d969a20eef8f926661e7b63f9fd63c3e1102ea612fd99b86e8bd162f3fc3bdcffb16a8120d883c4ac7b4aa0a80a97cb49774c2dd0c9df70b6369c341fa1cff2c5b320333a1f2c5fe24184069e44cc0e697bb1c4ec716fec2576ff71fd68afa5a2bbfe00bb873f56f646824e0aab7b0b117780f3b655a09ddaf8a781164baad900507b059e76e57b8b08749d804855ec56a8cc86538ac148de9dd01d626e492642b5ef328ccbcb4158e53c9ba201aa0000000000079a110000000000400e9d2505474045412d42def11d453e38ad144c620e1cb59ec4942ac9d2d4fd9c3317c491ef581c5cc1442040ce0c55c494821834c7dbd4123b6cd25c0ab8ed210200204202fe988b93a6667606662882834b4f3a1b11a2c70b4e345877b6b8c0087b39000001bc16c6d5b7081d7f7ee1322fff410e5a0c31e839df121381cdba37f332dafc6b6f2af723109a3c1192f9c36fa236416728db1c978cc1a7688d72da550175a886f54815dc88232535908e98c79158968bfc2a77a4d46164f12980b9b0ce45e4e0dfb7f84bd8fd8afe790f8ad82c6166f46972cdde0a32fa7fb71640a03cc8c729e739cf5764fd697692ddd2a8e5b98a091b654e6f72ec3246886513a8cd7915004cfe831e5d03b20d37724359ecf8d98cf98a1e91b46fedb9a17774985394ecbdaa9b841c2824de9eddb77c4cc303c08ca3278559abd6e69f06777db871e284d8518360a2b0c4768447d674ba72f174a1e0d9caf7c32ddf9ad175cb7663f541ddbea30af3664c5f9f5feed7a4b5b4c680026ec0c18fa22b78d9a8b344d9ec851dcc2c4eb105005537e6dc8d03147f4b24e3a29ef5005ee66efa6321c9afdf2c349fcb38abd59fe9f353b83ccb04e2bd0dd857ec0aed36ff6c0ebb28be9c07d55f84674c4b8d020aa7b8d0d04b148a2fa30c96c4e0816563f871d9db007e9ac28dc2693fd6c47f79e89259d7fd9cde50572717b4f33bc529acb53b5e44cc7877ccc5bf9002d8384afc691c4551a4233e776d5b54ee5372e036f130ab82cb0000010500000001003fd87ce5f7456f2d7d79a2462f8f890bc642831d04b8b43f39b6aab4ce7c665bba20168bf6518318f5424fcc68bdf0fee8e882b22c3a2454b531c3a98f98b115f3bd9fe2c5e1d2e105460ccaac578fec98ddd5f2afe260bc4e9bf82ed930263610a5151d71ad9800600d38e25dd8bf2fb553209b8b066128a55651cafa86e6b50253e9c033f215cf8f8f7884339806422d86c6e7da6fc2d5423fedb457a1491204e635ed9930a3decedbcf9a87b179e1e1e53092a77e0462d87f2f65e672df7314ac07c8cf78e99bc06248b80ddc34b1e75cfa3990e9abf003b54e93a41f7beb0e9d2505474045412d42def11d453e38ad144c620e1cb59ec4942ac9d2d4fd9c291177eefccf35c5fe6ad8ac24d827f80000000000079a11000000000040aa41a457d7eeea055625bb96a1f3de6a167ce888d873eba0f3732541215c9fc06663eb862e1358ed23b03d3d65e85528e0a1d82a4f80d8fa5bb5465e646f40de020020e87c7ebca643873a0624f0b8f9513f5adfc48ed3277720016bb08faacd78957e000001bce340a385d6c39313e8b0c657826d9e83f6b15fa0ce13f0509b724419ac4034eb56b47ab119f59be4874d2c0da89869162a53c95fbafb0312a92d9cf97cd2e3b6008185e1afc982f37bf06c496104dc922629fdf981556ccc852cbab39b4e0648f3e49aa4edfdca22f9d08488bfaafa33a66d7d4ef09cf1360daa8dc8d9b8b5103b18fdcdc86e355b77b240d59838054df1028ad3c5a31e5f7af2868ff2ac175e8c7d37588f4ec5225b477aba056ac1f1082c22629ba8e396dc52fefe4cb8b69a8476db47bda9afbc06c59696cad125919209076c7522027ce018e315af2b73b77ce4b57eb3b35dbbab3152b282bf709a00e85526852d78515d3be04c87cbddd8aee36bd1bdab44d3e349fde402791367fff00cd015dbbba78fb674352f6664fb91dcfaccaad9b1176a325d173e1c47c2b0bf8b71d0157bb91a3a07cd0a391f0949743efae94a47ac5337fb25a31376c88f71aefa1e00f8b1f983b663c66f668e3ce768805c8d7eebdca2598d3e0e01cf5cdce88b896114ba3ed7272df4b25c23419fec44b7edaadbc2c2dce2ef9e7742dcc5bf3f285f7c8cc5418902982d485bd7756cc1990c6a880f6658b8f74b015a8dd73c1c0b8efebd9e7983ef00000105000000010080b445c7d3e200150ff6956b2ceb1df721e5f27a0b875cecda36e11c42400dc8ab3ef79d6ea19c25b6673f70ea61689b1de9a0494c5499cd9ac1e6a66c5b4b5703692b0667b38cf859f4343ce3143ddfa2a7c16d47d3375ade5c0e1f325132c371710e714c6c87aebdda7f45249596824c0f6503a5dadf1e95bb1ef8ac150cacaab3a5f9cbb270a96bec48bbdcb669bd79663838cb84522c45536cb93c42cb17035eeb103275216bd0b3d2c42d50d72ac3025322f8f0893a63bf806f6f0696efce63912f53317cc0bd7c63810f06fa8dcd128807d8df6aed1b137c18a2cc5b50aa41a457d7eeea055625bb96a1f3de6a167ce888d873eba0f3732541215c9fc02c51eedf639de31fecaae7df9890cdc70000000000079a12000000000040450f0eaaec5efc71aee125fae5038ffa8b13cf0ae1bccf400f7949ce29e05d52e35427a5de62022513cd41b218e75fc2b9454e92a9f747dc7cd68cdca439e72c0200207afd6c650e45d3a33b634a1d125ddff015c6c60d5a59a3a754344eeead6ba34e000001bc1afd56c5d80198e5f675a25de717f4aadd9865ec2a3c696e1af55c51fbd5b4ffca0e401f70db921f4bbf8a919633170480b1246aa396f517129c1a63abe1a9e4d22e6b399438c0519eeea94452ea6f55993d3e9b8b73048093e8c8915a929d50627c9a1773fc81dee5504a22f004fc6c3fca0f87d199d51a9a8e28be850611f22185cb608b939e653178270844dcd3ac8c286d2ff4bc401531ab106e0d8d5fc75f5b65781450ded13c7e5a2424dbe4a76cdf42ab7759028e123c96f90a5512742b7a456e372186c440b6205773fad8b1eb1a955a3c6e9d0b34c07eafed870223a050fddf1b38764dad24c20a411d56c9f52db7c3b5d8957694636e30b623e225c6013689a33df05d3619eb4f184eaacb0a17d5a478bb3f116494209da05cb561bec6692c91f49e8314ad71da484835c37ea21dbf07a3282ced00b5a8375b0fe650e1a364570a0dc0e846571041370108f63ca4660bfb359f689ab1db2aa91de911c5006f5bd03203a58454256d29479a3379ea9667a9a831058d39f32f57076cb0d08a24e153e71e129ad2e50416093adbb5fa445763fa2da91ebdd9cf5fc17c507bdc67786dd5f56f70cc93e4e720e204ba566e72ec5da30ee147bf0000010500000001006a38d0a57eb9b0134aadfaa3a9f76c313a3a7193491353ef0376935719da8d129e74f322fbe38cc9d55e5d3c211a018aa4b7204ba4fbcf7f45d3cb5bc5e51326d815d41a7f8347010cf9b8aaab3e418a4bfa143ec9aef5fd9c2abf1be56733114ffc5d76d050ce85e6826e4450ef495ec59ce7a56b638b79aa92d2685a82e9e321d81f5104bb3f9d7eff5e93147bedba148a53add6a8d5b6bf94bbf0cbb52db47c0e8eca2044adcb47a210dae273be08b158c42191ca6dc4d5ce56839a817a0f6c939a538de1bc7c4efbcf23d953eb6b87d8d597fdd3644dc9c4b516a646892f450f0eaaec5efc71aee125fae5038ffa8b13cf0ae1bccf400f7949ce29e05d522cf06ea0858f3b84c2f1b6cef9eb379e0000000000079a11000000000040540427952346c276a4b7c69e3e18306ee35662feb18d7974753c2d4cac8725a3fadf01557f0fd89116b2f7a0e5203ba8bb3cb3b0d9d2e3f58a9e4e4ab1a065c80200201b121d2257cb93c612a71275611f8e30bf6e7dbfd74d046b6b09ef408c6a0152000001bcefb72025f005a90142dec3a11b4ae7549e4bddb108697a02fd2267c392ab97e823c105ebf3a3c917c0033440adca7b399be6211469d1d326510f6b1ef5dc71e1105533814dbfcc9a0c1844ec2476008dfce1265aa7ae77f5ba7fea30c621eb8f8ba028d683fdbfff8ec803dfd5aacb8a954619eee65ec20749f46ae457fb8e43ab97e4083bab9b326deabcd26a9a5ebfe84683e94f368d5e514c8f705650f61981bc9ff034250a4a1e40c20a3ac63f3ac2f49e8bd1b8071c9ce8d8b27701865f28666c88d72b950bb41137b224524bfd1dd7dc02ec561c8275b5e173b8f6bfe0f1f121aa54156e70297191f96449e67932e38020512c94a0f1113b70d7dbe85a55eea0c1f83a67e585eaad132a8e9e4b54d774ef480782298d5f6e043618c54c842edacbe516de3ba433bd03d28c8ca46a24b439805783310692fa56133428b8b482dc4c9b4971831490b4e1e5a85a5f4894174f60f4c58e02c568d5d4b9d79da8b32f8bd1685e8d71c7581b6d1610759c0d03c0340cb62aefb8dfc50019114458a6cbb5ecef3e0c19c53fa4f434b8e1d2b3eb6ad6e36c052d1af747132ec2ddee0525b7361deccb211f5fdf583753afef4b8ed4ddfffd91b8854782000001050000000100b969a03c102549bb17fe3e92068465576d02ec59f48f2df7d36a3631fc63f6ea7be59584b4218a966618915ac81f219d17a68e2ad973f0b364486676967abe8d1743258296e66d5c001c80da705e946f8aad1b179085dd46e654d19ae4283bcc31468e155365e66174401c3a032f91e4d4e2a646f757e3f63a285389c13922f9a96bc3d790e06e5f640ea7de5aca93ffc7b73cac09854d979c16f5873030284159fd533547211da9f42eb8138c56671d766d5e5530b0c140eb39670afbe5846fc7e5e6bb990dbcac85cf0504dfba9f8cd732e10753c2dd00fcddd540a124bcce540427952346c276a4b7c69e3e18306ee35662feb18d7974753c2d4cac8725a32ff25df49a3b6cbe82cec68296d5c3100000000000079a11000000000040b411111b9a73ed732062a3ebb57cc00ca7f1c0581d88437f8b6915372fd8004c4886d15103ae5d499abc422e86262ffcbee10669704811dfa50992326500980102002027553cab9821b94bc0b09892f5df03c3a235249b88f90fc278132171e14d9364000001bcdad171b6fe47a5921f98d73d95a29ff2d706faf42aa62ae9f5ea754cfa9192fcc79b58c0ab3696e201ac100c0662b7d46aa27e1a8ad693e643c40e2bbd262c5c9b4b2c8c283ed4976b1347e2d10bcbcbf4d2867fd19f9a9194396fcc6fed6142c67bbbca8815130176cf15598ebd09523b842f4f937b8866c760aad0e3621ff8dcce477c5e164d0ca1cbfe8cfacf6cd2b606003ca439cefbd4dc396b3b0b51cefcd28ffe868517d886b6e6a1d347b4cc07882187f9a4f51bf02b016b73a38a38502681526925f2fceabdc9e6f8a572d560b520ec450726805332bc2570c80bc40b3244df2f64d020e94cad4e1f82f6bdc243690d08a6afc0c44afc5d3d106feddad275ae1934646f523c3900d1069f70bd1683e3c36023af7ed35a16b5daef0c4bd1ef3dd0bf54ae5fd44864e0d299a168bafc0ec3489ee208a9cadd74ade6d30490f04d8e21aa4aa8837b65b1243ba44062098b2d266ab408ab73004a8a3a1683c09ec66b13b653416147840f717e3bf1074434922e2085dc6a26af4c86035039e3b5e9243357e6a6010da7b05f4c8031e9ed03752d0893e4071cf384dec1dc57e7b3f987f219f26320698c6753bf9383190faa62907980f036092300000105000000010056fc4f3d09f69d7154b126007ec44cc6eda94a97deed22a2f799a4c7be96b99325a6c675f37b6132503a0ee1e0a2f41fb9af86003fbe637c2ecbb3bf7d2bab7dda5b31ac4809878c9d502de904ae3263eb5cfaff2806916d63607fc698eeec675a53630444afddcc449866cd9bc95e8bad6234e98fce8a3991a61fe513a3df9eda4b6c150161c60bc4702ce56f43577a9a5908934d6688a65a4e3aef9b251b5b7c0775f9199ac48c5ea70ffefac499afb861c7276c1e14479798a95312e69512472a7e3010a0368410736c1858e6ca28e5ff682d4d904c3735a6b14a22d30a35b411111b9a73ed732062a3ebb57cc00ca7f1c0581d88437f8b6915372fd8004c31935f45506e43228ff567f8846379ca0000000000079a1200000000004040456a0df7f1d8319dde6fd4affa53b8d7f8d2cb9874bd9bca7feeca1e270839e07c0285a0f79932af1d2e196b2de21d02b358b0134b26e34ed20b779029e57e020020299010fb97fa20700c7f9c376c6cad96b566d2f2ccbaabade7580c07acf3f401000001bca0819fcba5ce8a0ff5af2258ca0aebd80aa711a3dcf35229da4af15e7ce6b2c198ba7d01f74384d7b25b7346df9b4fe51f38f8f930edf1c471e01479efad3b23b54774b6d8218721684367465a968d23ffed0ec66ee20c5c072482e11d8fb7969e2cc993bc41d59e2f1decfef55660e6643bac855e38e1cd98896e988285e02d85c7613a620002e189c271b0cee1bc488cc60ed61dda93f01e5918f4c72de17a0bc6f0be884c8334113baba4bceb1fa58e9a9605c0d2c5c90b0ee68e936a4a3e4e91ef1f27e496359b15f10ebec526477d6c09a40d704b7f960d388066f1b50789691301b68b03107886b4d57fa22c2fd283e26d3703161bb7755c134a71153fed161f87435fe70498118576c51074adface0d02a9d5be02ad14b223e5d39777b095f9ad42847f09b8288569eaedc0ecd1592fbead35a5b133ed09c5c38aed17aa358bdacd47cc4916941ab9aa0d4d5fa275b936f4c0e5edc858300c6d482f21affbe5983c5e289aa6921116514ef8d169600e0012023a4906a4fff5a0385663171a6dd5d420e96a0633b7d255c259b1203bbcab4fbcd2188317f4a7a41b5d74292d961506d056d612d7dd282f53d9dc5a60b0d193c601cbb895bfc50000010500000001007723ac5b7061e2a62a35f8afa6d783c09e3bf0f6289fa0d922362aa25a18e1e0a14cd2c1d5001072cd596dc5407252bece3635c8f0696d2b7bc8d26e169f3404a80c48c58fe31d631fd777240a14460e8ed65e1d36cf945c63af5ff7fe345d247425f878abd52818bfa95601115acdf761f78690b090215ffaeca3ce8e62399681fd8f4ed602f03bc7527a92a4533c462b49dd19961be2b25bd54211be018bf261ad8d419a802f5c65b02af2046b2db74dcdd94ccbd1aeb8971e2e220eec804f4b283f828e252f1bf579d07ec32416ce24c14b0014527e27c717b7c35aa4c92f40456a0df7f1d8319dde6fd4affa53b8d7f8d2cb9874bd9bca7feeca1e2708393276590b43be46973df2da6cfbbd6ad70000000000079a110000000000406be94276d004f9836957800cef15a3427d8d4bae660bfb405bed635a502fcd8335bd0d437b749235bc7d6690c633502dfd1726c67a4895a6d6eb3eb106b297500200203d11a82f16cbcbaa550b9b1d6ab35ba274cde494c8bfa745dcf24395d9041f4b000001bc66c9e81338c11765158d992f21e88bd7538dee84c113d232c70645f85ba003aad34c5079b7b65449cc25e910063305d126a973fe23e3ee86d5dfe3c3fb9033c2e0ecfa73ca7c9c9503f54b6d0e9c9b386b53e472c0abb9df0efa93cc867b469e6a5f2c74db8a8378991bae7b962a2ae943d2a44359f81e6a67f928d2cefa87418496975d191758d33df117f2f0577dd9d1b62d308cbc9302d8bb919eae16c9e3abd8671b91e1fb3d14510e6340ded62b38d2ea1a309be371e7b2ab3d925633a9b7d9eb4250db49f4ef525687faf9f4a39f3df5c0e83d3c689b2cfb980a2931bf29d22a8ec9e9315aaf781c48b95e5699f21f079055f8ea1fb0161fe7997efa626b0bdd4b07597b9f62c2ea236044f5b73385e8b7089f036d450eb91fd049800fe5e4f7bfec5aa7991af90da2669d0bd4eb29623a08af20161b33165e6a2d049e51e9cbe2797b3becc2ae23781bb9500ea88f2b34780e250e51436c67fdd9cb7536fb815af03c532dba1427f40d9551fe95dd8fb2ac3dad84120a0f62ff9410122b72c4c33ffaf402627a6fe4b18512f1a2d9b03d4667e5ec6e6b8db8ba35e2e9a23289333f51e4172e35a762bebc321c177bf06e293b560dc58a946b00000105000000010086c1e85f5e06ebd1d438628c14c15a76f63e451e30a6b9b8cfa586c282f91c3cc3d82788dc10deaeddf6c33272f79cac6ebd02239afa7b9f5cc0ce51886677229b8ffafeec2bff1223a3000aba1a343d78170c1293795827c40ac9019c2971a98742bc6a78defc5a71e5f1d151044a8c914ff63169da1573f2c6c24791f6b449cb36fcb584f64b15b84fc4b53b4db608c70367340452321b495b143a198f75dd715960a31eb0156426877a7c1bb353414a4315bfedb2f84b400da3e5b9ee0e5b3d62a79f08176b8cce35d50fa61b6dad117af6c17741c54840856330c68a079d6be94276d004f9836957800cef15a3427d8d4bae660bfb405bed635a502fcd833d84b8e38ce9861ed97804affba3e1620000000000079a11000000000040a63456431875da31832b2f6007b35edbd091081b0e0dce0b7371132da67a110e6fb0deef15e8e67f261d66cbd23806cc500727e12034717934453a2b8c28b6b4020020a0450186b2334623f438e73ddf98be4541093eef5a736a72b828d7ee63298f5b000001bc343f31ad1f8b00706805ca6b63e5740d693cffa4357d80e9a1c68216c4063129e60a4f186206163f89d1290d1e941a04a14a5b179212b152f3f7bee3d45c3d3853b169fef54598eebe7ab647741007ae94273d0ff7ba09086d1d7c29a3261ab9a299cb6fa2bde466c259e97dd3beda5c7ef3b1d8f2ad3123553e57c83eb77cb7caf7c00b2ebec375b1349e0f1c5025cc6db135ba1d0df3650f7516fd61306aaafada3324d93b2fda8fd8bc38c4e5265aaecf688a152afc70e6f4bfb0dabf593800ff48995d4cf145867d47e47e49952fe60a388df7be9bf2d723fcff65a7eac56705b5169c8c86b5ef15aaaa8dc377926f688926f1db09131edb73e0a94e8b904f8c8d5182a6d49a57f98d3e249fc1fc4c87a7b90eeafdf194ab8f5489a4e736ea87dfc99030bc724890f21485c92ef7c7cd7e8fdf5e54ea7f925c0800605b06bf0abb999d3f74c80b443db7340f61742f78e74420afab25bf865f203f17c758263210b53c1ecdfb6b1bd8acd105cda102f826e2aef90deac2b3c17908cf3cc6fd7c3da417dce05de5a561fce937920c973f7a966bdaa98cb080cc5cbbed4f378e6c8ab95143532b163d171210effdc9cc558c3f796ef48929de8304000001050000000100b70ed159dc80f93b529751defa2f51edf7a86947d4a949fcbe9a10da154fed9d8c0055860c0b876d4a0d607593436e15a1c56f497bc4eed96967d6d9b3f647bb4cdb29f87b4f3bd2104720fed247d2e01fcd95369d20080871c3f9c6003edae52c24eebb9b85506820c31e47c1f696e796ba0c98b938a06e721887ae53c9144d10ce8e03e6eb6e95fb7752fc2b4b35a0bb647a69a7ce6e52f3263ad7c39f679c5a93bd6b9dababf2567b4f9553e67e9400fc25fc134edf4d071454fa43b7701c164530c447721e8767a22a219626c823d7cf0cdbf3181ff6d855432c40703eaba63456431875da31832b2f6007b35edbd091081b0e0dce0b7371132da67a110e3e811398082723e0ecefdf35ba31ffbc0000000000079a11000000000040435d4655961b7e7f662ff0c27f1e2ff97e430f63eeca680d117dd417fdae0eb46dc9500779a459f537cf2e51bfe7d3e045f9c074ba50b3a349edbc0c98a599b90200202aa2e9fb3a2c97df6c265263aac1953ffef6fdb83fb6939184d80a0939cc9c17000001bc1fe519b93176bbb281f463a3572b6ece433457eda4f371324485a71fb3c1287ea908b45be59a21e392a8486733df861a8ca4ff2332b24c5416dfa1f2cdf42fafa06b949f532bbab7c938ce376661665b931dcb0ddb78f7df6a2926be2196938a157985739e50d34cb95e76bd7c004d1a7d8ba4ab100f4a5d751b533d02a00265d98db17e3143387c49ec63080a4663f5b604455a6e9c369f1c09709d35cfd69409debfe20cbb39fb1d86223088662ca79cec8f8840611609049979183c355d1e2e97890d01bdd4e64c9d6e5a2662287d773cf3a5fee8c3003e3bf34bc1e8f17125046d2a2128c2ffb8722b874e2ee9a95947c383d3ca906119d496ce0c822950207c512026dc54ea26ea947f59627958101804191f74b57b4b3cd199a94fa3d8371357d60ddd24362218689027677114d9e20573470cc18f0ef82716f959a0b5bb6e14c5e8e455317955ea2ea12dbf7f6f97507903935f12fc66ba1c35b238689a64aca2d9b85181b2507e2cb0f768ccf8a46f6fafbb77d50447fdcf9d58a25b6ef176cba82f0e8627364c2f6219ab98ef68981a5923bc3dc153a75a0bacf8034f8b53fccb2831d9fa7b8141d5d8a42b4956581067d7a4709b36647c000001050000000100470d61ca3ac1f55c81a4c844fe42bb56d11cf92114f65c734165aef0015716f46341564c900fe0617fd066e291080ffad67083fe84070b1446474f73d5f02c2c438c2ddfb72fd9f8fe0e952a2c841ea768d666a4db45d61958a4bb2c3fb3d7f3e95cee3444acfb8e4ec7818ea3ee622521d4e41d22533b715fa09afa0b61fe149ebd860de4e43129668e2bd208f3a0e870675d634b496a7a6ea69f083efdc4eeaafb15c11c258d29360f1e68a6c80b757db99fa97f2737e3ec1a5734a1faee9db3f987adead730ad27279bc1ddd1c979048c73f1db6c4557ed00c3f3370ae47c435d4655961b7e7f662ff0c27f1e2ff97e430f63eeca680d117dd417fdae0eb44183ab0f65080b969c0cae44e8e313830000000000079a110000000000405030ebb1f0f1af4eaa8529b1cc46445660f3488f71fb68ee86649783777004b7dbe14c6f86c684a8822e025794d919be726a08d4b90dfdf311bb1a11a4e666e30200205d512f1586316ace9a464b5076ac9a80d9274c569e8ac7239dd18ce2d61c8316000001bc295cdb759a4e6116c48f056b65ad4decf4467844d2ff568ebe01febdc7b801cdbd127d7828e121b75cd65dbde5ed15cb23c84488fb4b0bcc6d103250dd81c18044412a8471dca446d82ca309d316fbe23b66e4879520ef248bad3b0d63af0d42188b7404aaf817b2ea852cae5f6b549d0f4231c186ab57ec7dc504f172290c3f73553aa5a2f290824c76d2757fd5d5474671458e08aedb4818bf7b9ac291f5d339c4c693434c1a5ce5cfb288944c5660e877175830dc2f0321bfee93cca83c071d2868eb0594656bf920fd6aa0861b20a674303cf533c1a12e513c40adc2aa9661a007e86d68b6887c2aa4756b5f7a30bb6d519520eea769c03e1cade04286c6c74553431dfb79162b00f9b3998f1b30d25acebef9afce864b3df8d4809b6718b9977863517de1cd9fdd8f2471413bda9f0644d9682603929069796d4a7a09fae9da162d1873fc61a4a79cb34f7b4143091ca9793d66af1b5d607c797ed209496c9367087e7bc688abcec1724781ceb030604f46f1ef30c00b0d7bccf1fcd7f1ea844c3fa2a5dac2e7bc8164aba4f3f0e6c3bed142d4b523363d76942f4839dfa74c99393438f171044239e6cd4ee5fcc00e8263dd732ab208eee2570000010500000001007abf9bc9397f957b360ea92348b346796473193e91a227d61286ced1b767d5ce4a63d976d9efef715a47ab05c9ce40ca153008b9849d116418db8fed8e5201a7ec3fbcd1a387e13f0eee65b4d98c7a62b2b53faa5ab45b957dc9932f1bd41687b0c6882a00e2f8b5a93de68c4499308c6d744df76fa91f57980029a3a4aa4048e177ae0dd959d4fc0f6ac0157b1d0217a65dd82275b4c6a91f6637d727204ba2d561f9d97c0a013c81fa7d1cceb225b8cc1299edf52f1e65994f7dd1b264d9b4dc3d3f979c1b5a714a0c689d32d897ea3455d8431b87c8f7839b9352cc6192265030ebb1f0f1af4eaa8529b1cc46445660f3488f71fb68ee86649783777004b746e33bd52e70c0cad080aab093dc46cb0000000000079a1200000000004006038828545d8ca3017a555b4291a4b79c7c3a5127a143c67d2ed8660641b9b19a063b3603a346981f2d569b04a93e43b95afbe983cc9941d32413a240c669d8020020ac2142453d98a18740c7443f37a4e31db1c6e4806d89bcca7171ecac0ea7ba4b000001bcfef62abe5ac6148a93968244d54238a1347166541dde9101fddeba25ff17a3c0a07947c1a522fcb418acc648514afee91407cfa170e51a390fa8d6b46ec5cd59a7d06e6e181635542e1e374acbd6544d98299ab62baece2f63454b4fa5ada6504ec4d1e149be2d22c7ba466adf66b72a8790d04ad49675afb54d35ee306a42e7a350a5dfbb87442c5cb71cb832f77296b76fe31c91b910a2dc135027eb312cf9f3c5de305c1ba8ba55fc34bca10844bbbb0d69f38edd7926eb094f45fb232f9e4b0fb8bf75529ab0cb567226ca7c9c809f7f2a6ecadf567708a3ef45812239d6cda8e95dc83f33ba656c71bc6aefd3cca49dedff27b3e0faf2e2e230f92173f321d885b26f4ed5e8f67d319ccccef2c1d53c8bff1b2d88f1fdad414feb7e99092b325d1a4d2b2255a45161deaabe851a1dec212a6d07e1ba4719a6d71bce9ad094de0f92382dd0f941c512c55e0805a35f438b9249f73aed2d57f46023691c0396c56b242167da06e5389f838fa9a8b832134c259eaa96ec557c643d261f1413d4fb66b8b7a5e2d3248b3c82ca7d9cbf7d363cdd06a225265c0e360593fa93082ca08a93b141c894a599cb0eb2659b7cdf1549df39fa6a689d6b230c0000010500000001001b2df79aa5500c43eef496569d4dd4bc364060cbabb305040c01e3b0511d7793f0f4b6f3c28f90da867ea4307711e3e7a8abccc7757af4c820ea9647a46b1d1cb3103dbc07b3f163cbdd87c31a5863031c93db3c2979f1dd200a7d8bf725cea5c1e478e69b54e38b41a4c8adc52e22719b4b82221d415bc7c9765f52a3e9297799c1824b3f888b17701ccbe680fe3ecaaab131bc578284458085bf244547f523049e01dc6222f2f555f2394eac9196e004f7bef968d803708b2d8b75d49e76d26bac3562a120d61482b6fb4a26247f9d6fc61f224ea7fa16d35efb2d250995f206038828545d8ca3017a555b4291a4b79c7c3a5127a143c67d2ed8660641b9b1494c017f6572a53d13a069c32179bb7d0000000000079a110000000000405595e53e6ddfd32e092aa5c8c8c87ad80b64ae13bfc1ae9f2f3157a703f7ed04346d2f6c5de951a9e21e9868ed127d29362ff9c47cf57e4f4938948cb51b69870200200acca95a6c00766754216c4af77c52ee84625c89364a0a0342f25647f022615d000001bcb1d597ed2aba87d6a7a90c8c833ed2e9fbb4e2827ec6813ec64bff2e30ef6d67cce88d1f7369ea99203a6786ab0f04165a9056e647d74af7473de5d744a52128d0e3505253e4655ca92125b140925d19245d5b1e07508b7d25c52abc2af48a613ce7abab9771294d10a7d88a4142de11b3cbe568bf58abaac00f30844ab18c2ebb140011817fe4565fb37ba310760f5e77480d72297e17f729b7b3f031181e81c51b0bb843f3a118e9987664a106e8b8e762b762b2eee8d05b4406fa0eaa80e544d684407ad4e73122f7d5208b924dfd9ed304d1cad85124f57ca0cbd400155ea3c115b275577e4881a3d313780081aac5c7ec817d90eb3a251f763d09e35c0b1c3a26fdb1ab08b6c4e70fe3fa5d63e9b5d1d1d843364ff13b107ef46b7a59885c1bfeef17e9fedff7ead1ca789ae7bb69a02c40ed56064138a9e7df95e36940d2846fbd1e174dc29f474530164bf0dd9e0ef8b9818de93789d172d2eecdb478b01e8accf374421ec872f96f26750a4b793bffa8defbb4cfd5cd7853e13672f2a77988816ebf987f3aa73b69bc82422e1dff97b15a72b264bab4c6a105218be18d12116f59c7b2dabbb457aaac9a9a8286747ad6be18719d0bd86411000001050000000100cb115649dbd0916ff0029fffbdd605936dee4b75a52c00f5fc34d11e9a1aecfaac05eef1868d8b2326186a843397f8d067b038a70507f56d1bcc7c5ebc813114d65bde3a1ae0c597169fa80ba81ba177b0f8703c1cdb7ff5e4711bbd33f391319a7f60d83104757b96023106d7c7070795af5ad5c3078a49f26cc59e328711fb62a29bcdaab8f280e85b34d84e2eb8d8b9af90c986a6cbfc23aef0de5afffc040e2c5c60ba7a5eafbb7cbaf8dd891f7c2213fb432557e9574a739f138fc8448244b24a4859cdc5fa75a2b73665f6f4ee8cc6c40ac666dd13c4c113d96da12d925595e53e6ddfd32e092aa5c8c8c87ad80b64ae13bfc1ae9f2f3157a703f7ed045fb48f992ada397f2acac6a2cd587f5f0000000000079a11000000000040513af8ecdef971d1ab471ad0d981c39ae81d547a65ea48da82d55365898454fe3a2852821a7066e15b3fd4b3a8f7267f37f31c5f4eb07182114ab86f2d14d4390200205db5e51c31d994d20e9273b78bb23f4b5c9008bfa4d2fa8d7ddd6a00bc7c4902000001bca7aed06c8308d30bbb008cc65d4e89a44bfde0b481fc4d46d9cf97fec1ecc79e66ef369667d87ab01e6af232e74aa7e4ff941867b0570ef65270893b3dc7d432325e4afe67d70c9785f64b941ca720b73299bd42721c8e4d0beb6a6f2957ab840a0b4157125cac5cf2dc84fe684579fd3c7191787d6485115d23ed334af57ce1d310784afe328f789ff001d652de000dcca1f1d1a8356ee5f72151f38481783e5429b6b80deb29dac144cf38d224429b6c073ff0eac9acfaf524d24667208d8b159e3468e9c7b37233b13fdc6e6d0a6e3458127e4cb1dbf2f7f9400390fc4b7568010c468392c3f2f16f3759d64de56bc1c438cd5766625c2b7c64299934bc336a2a81167c3990e245a9c3621683226c1bb8b0e5639321012184c202af2676dfb121eec2e4f2b64f189e13f3cb512e88af4bd8987f12547a493de08f90474c9db039baef67aa203e81bb424eb648c5dcae10fb76a79835ce8de3ce99aeb4ab10b9a3d83d3fc8f89953da518baead2a63251cb8c409af3df43dd99f88e8ca958c8b97dcf2f188047b5937e8fd947204ebb44cdeb5d0542b658e0a726f0d2b1a7f4faa41447d250cd551e33d7863af583ecfb3abebc484c2f9d7ee3eab000001050000000100d62c25e9313142571e3c0bd3ba43f937710ffc492a37d75cb305569698246218e9e05ba39542df17a2e145995fef0df088323ec8069780c462b082cc6696da8e9b5c382d2f0c0295965be6e7d4a12d6e92f4ae7957febccfeebaa53dd5fde1df016ecfcd97dd5420df729dcc7a4439679778aa0280fed65cabc7cbf5425644633fbb783ae4d9c25a541d253d73834d87c3c5871d38f93bd77d4a083c60e4d84c1e70250276892751e384a5ae41e8b28c593e54d5b5d0ab7b33ac3df6087a963e08fb4f15826f6c1db9e4d24a1ab9798b12579476c127f9e771ac90a105fd6433513af8ecdef971d1ab471ad0d981c39ae81d547a65ea48da82d55365898454fe6138a2d1720bf553cc215cbc2f153d560000000000079a11000000000040d0180e49ed15ebfb6ca120dc1a136db9a96de0c0b76d2d355def6df1cc3cb0605fb5d35f9c2b870c71246b27c12fc2c1df8ca47f69ca24df34b6a49d0bee3bd50200209170d9c6c11daaa3493f4458dac9f641ce923f5eee8b9302fc4b1fc46ebd3106000001bc651f249e9336c9f833d965fa0cba22337baa4697ab5d03ef74846bff47926c807a52b5072671204287ffdeb0de8200bdb11f9997350568acc8632fba3422c85902a3302edeaa7903f72ce0b5febde74d12e28fef69567a5316e2764e7191bfc0c04414f170f6d47acdae5b229493b5576a4655f65a82a34d5c56071991a32bbb83b03a4f2a2d8202e08a73cbf1b16896a2fd71123e103d95b4cccd1742a4b24c9404551eb6b530a3619f295d0c922602936f91b8d248ebe6700f6d1c70f2e127a37b8cf3414d0fa94773bae8589fae05474f096e1df7e6e2535a81dcf63902d99a3e50c3ec165b9629862f62ea70c4a6dc3064acb86d047290c4a6d6dff061bc50c6dc292412878a2b823d19d6485de406fcc8962685e57228a85a6549864676487bfbee0320bde76bfaaa9ee18a7b38a5998bdaedc2174a910f0722cf91dcb92a16049e6573d999ce0b08584e42d5c84a9da6415a86a85002ba1fc30fab5bbfd752b0809baa44846fcf8fdbf3bf9d75bb4a8f5d00ecce1177538793a8d8e0b03d4bdb809eaf1302018311c4661e40fc2b2eb831b8cc4d9e279d1fbc173b711b54fd25fa7c7e44c2d7faacc3a47b26de41bc79891658827197b8639600000105000000010078c68b5324ad273ef69fd0f3b88419dcbd4600a0a7c7923ab6d9c9e2db6a5416d5b6d71124415e97aa0fd8ff4f869a8d87a8d3eb6b45df810a60943463ada81272a11b9750ee6f92493e96eb9baa75f4c97aa7deb0e6ff6ef52f6e940aaf464a2b462484ee5637a493de38f994e9158993e88fb0a8a9682090561694bc9b8ce5b9a474d066727e99380cd969b7fb82be5a47d724be184fc3cf61f97d413e90599a2f3892d17995cfa3cd8270dd547bdf2eaf7d8817d485dc5d37b64b322aa81ce37310425e980cbd7e43ea956c1b762b2271aa4a16d3ae37c7c0fe0c5660aee9d0180e49ed15ebfb6ca120dc1a136db9a96de0c0b76d2d355def6df1cc3cb0606ac5f45efc2aebaada41881b5e978eb70000000000079a12000000000040c797d6f920ffab0e0d101703de5a4d44f790df35db1c886416c784485f80fd499398cc5ee2df84f61f880772d0e02c5d9a040f91bba0ed3dc4f7e106b8bcdc35020020e7a756d864f93a7fa26d26aa475d2c557b74b2e1db3764d060d7c48eb0b77e10000001bce335e37dbb737282308f9750130258bf5ea0f49a7a92a8ea68a3913c5f39b0d8661d4eca1754f8f074d20dc9929ba57d13d8ae59b9f18c4d26cfae8c477d93ac7755c790a22b61b2dc10a84cf74460340795c0cf9fbaa4ad9f8d26a0d5233afb45655f76147b11c863c50b2b3a30e5a606dd8454866a71f8dc3c2a7fae97cb24fba19fc0941fb60fc1de49b584ccef0fd35096278c55f77a16a46212498839194cee1336d3afe20233df5721afab4809b5df007731fcf49ba780aecee8901d0d0fd2b7d8c46b5e936637dcabc596158ad1f25f2087fc31455023cafe6fe62ac83aafe5448e3f948053466389cb87825dedf278c793a3fdaa75f8a7e5d3b6629d5e6415c3712f3ad1d6e0e0cc312044e9b357f3b62bba31c0f5678399b8b159531b630c939687b35f8f968e7a5cfd1a78412b7bbe6b78202b7c684e563cd0f458e8544253bcbe415aaeae36ad5eb622f100d350d1da654c10274b33c6674faf7d30f72b8d42bdd08b8bc74c5e540af1a18f54f650e1b8b40d4b5824156004668d606fd2c2de5c37272971c89069dc2ba78aad9866734f325357e8bee3bcc8e3b6a88670674b35aa2c9b0b1d6b3ea2619b6c9682f0e23e891620d8b03100000105000000010031e9968f7c8ee38168b0173dd449c0da7f85e15f33adb5c5554fc081966ccc75e893530c77a091d68e161796602a5354f5ed3681b75f53d32e9f2f7e63218e56d2612c8e05ed3d84f1f2368427847ae8b3f38563e00819c9c86fee2b72d80727c1eb33db642744b51e604b115e51279284c25a6e4aff7f57d3798471fc4b3690ebb0606a05d3dc39962b19f14a949824edb76603652190f81d92dc5b8f02c08ca493664a9258600bb7a7d0e947c458cb0ad77cb0003c166f2925eb49bb038ea6c7680bf30718b9d8ed1025582d428f8aa92ddbc27fbde51cfa6b0d55111d67a5c797d6f920ffab0e0d101703de5a4d44f790df35db1c886416c784485f80fd496fce5d51df9eddb1ad0c5c81ebd03de60000000000079a1100000000004083930bfa0dcc453773b7d788b142589d946e01d86d02392e1b4ec006336e1923643b6a5ae1ce1f2397e023caa95cc0449b8b9f7c65c83770a112ccfc912c1197020020acbd5e4e3e8e0e530f8d995e21677e1fd44323709e59ba13a39f8558ff2ffd11000001bc3e9fdd10a8a628c37ca61a01378387ed33ef0d1e11b09cae0bb9e41ccbe3b88306e3cb9719ceb98adf844ff723ddf3e54b83b0c6bb9c6090a08012c193bcf94ccd36d39db8778cfc602978aa61dd1b7e1a6a7ceaa3881c9596d9b961181b324317a6655ac4ad4b65e747b57a00fe371ad9f07766ba7f7b7d6901b148bcc6859c397c41f4e09c69f96affe4d077dcdf0406c736b26214eb304cd7324fb4d75c6f4676015e0cad178c4529ec29a731dee10aab729d6db98351a990be9e2765f888bf92fb5a73127ad8f44c35b48035c456bbd27b40cafc9be6984ad248cbff24c8c4f7d358d0ed3d00c650fc79cb6dbff92e79b10eec3090760db7654843acfa26966a56c75ef02dcc9b130bbd1a3477f9047c98b6699244be8ec164692d800d40f84a456e7ba21b404fa4122d41b0cb12c95a16e308bcb1034c9c7f64b417b1b1e261f5ef218fa3a46563b6628a468bb58c822a0ada4dd953b8c0dc875780c6a0a13fec8d45487b1d588115c34c122cacba0d3ad4cf940aacebe6458d0d6bf4bb9da3705dd2d729c4e8d84f3f29c6ad4c6e73f2080d1e4d82e1ad663f04b9411dffca75b0f4eedefc907c4117daa5b01301c76d5837c39a88a3343a3b000001050000000100576aae7392e115bb38f94e1d4e46d2f0ad59cadf0238f6e32ea73e95e00fba40cabfc4380b50eca0c30ef7495181e32faeae5a750cfc91001ab32d5b74d3a31f190c762792cbd728b9d1504d0d03d79bd75cd97a2ad0331f89d682646e59014edd659383f577e5f081e60c306c25403d4eb62e541f8a76bdc055e56f9bca9b43bf9d2beb6cf484cd1db480cafe0bbb59358739d327b8f4bf56230b5f87bb007b68768e3ce1a0ec2707a299cce8be9822e1236a81ceb175d5c5a47864783367e1e63c2e5e43378f39b750c09af510f9a7bbe6dd72810b3ad4edd81c4d15197d3783930bfa0dcc453773b7d788b142589d946e01d86d02392e1b4ec006336e19237526b0f91818006ae914e27ef5a279830000000000079a11000000000040f6b55c76054ccca440bb8d290f79a7ce4cbbd969fd54d3e82df783f2c6284b8bc12231f02c6384f53fc07b3a663076088b48d50b749db3e15f539514bc98760d020020e5ea6f7e91aa66c6e43c1f95284e88bcfaa931f881815040c2947e52e93fbc25000001bcc88245040b73d348c07f8f952ce069660fa86944557ec1b06b845f48cf345ca029e118a319d2411a596e19fbfc4f92d73850e421623ebb6d04eb64cecb91ae6f2fdb15e61735c582699449ac6c0b7325b531b6fcc1b59e60450ea8d0449b11914c30c8f1e59eb54528bd9ad6f10c3a2a88fe72d846fcd35f7482a2ec356b0a28ad7b11748e6eec628c494f016d8c34bc9d6125b8379b1082b65c0679a7a821acbaf415ac06647ad24fab7813cfa348c1f267392902720d91665a12a0e179aff3816eb8d5c87cd44d3a8c7f3b7f36816a403baa058ba24f5d9fe22ad2a0cf3df33070ebbfbe997fefb6b3bc58b8a8881486c368ab8a5d8b557e4b9a3231f0f76c60c8004b6a7d5376f2a580aaf18e705e9892e80890e5601a2a3b076bdf43b0c0cd04384e5a80c4fa418e5912a9cf31562bc1b5f839febc4bcddc170a883fec4c33aedd33bac4a404df113a821b35f933e1adbed60cd02d3ff80f8242e9c8d6aeafa248a857b59828e602829b620fa878f2526e254dcc9e37808cc9c5c437dd16936065849debf030477ad588914d6be2013debebc0ee52ab6a28a5c80b70d35298e23a730faa5abd75a3ea63768ff27a32494c5918e154958b4cd2080000010500000001001a8e597e4cb411aac3a9938e2407eb1edb722ec6084e52d9084cf9de1a15fca2f5667322a5048fd779fbd36595842c3e2be0f8b992dffe23a3c92577f7234f7a5360c85a98fb528f90429cf5f213382987d3282d23cb72c84694fd593c6f0be712a5c1df666a603a30f8c980abbd5f1309c946abca3cbee2f16eee93953dbf63da95adc6c9004280e5d41782304ea0c022083518e84c9e7c2bee791d395c066196ebd3469154a680d48925e904a9d533ce9beb6c8af41f8d340163d4f599e2917ebd55e1d6a0e21ad900b7e58a634b25e5aca7678f5df2d76c162d8d2602d2d1f6b55c76054ccca440bb8d290f79a7ce4cbbd969fd54d3e82df783f2c6284b8b7b26e5f8998d87df4be0063272f9a4b80000000000079a12000000000040c1971c149c261ac2cac57ec8227e37ff3f36ee33d65ac3ac1a3126d9f6c43ac2363b363db5c6e4b85fcf3a60596d5a1144919a7a1422ffed55fd22b46dafbb260200204cb1538db9587f04ae49530ab93ebe721982075408fc0f72d38f00202bb2de75000001bc831840864f6be3cb07f7f284d9773d90cdabf1bde0385aafa80da340554ec20df923198409c3314f8c58b4bc2dae9c84af61fa37adf2dbd0206af3038f1289dc177530cca6b72255891b632841915ac8e0549c1dd01d9ba3d8d54aa31fc8a6e1aec460fdba1586afbd67423ba93186cc0dea20cc5010c6fa1f6510723c8d834d5a8baaf7cca00c8cf116b04a434b6cb2b4e6b155f84b9f2372c6e59df63e0792d6b5e3647e44047a55840819fee8b6caf698fdc46d2dbae28907321975b3e52de2201952124cfac43cb44d9717e41ea2dc7c0852797f0c5b5bccf345ee3874bc43864978342f3ed014552793e6b118198aa9d747e3c8ac49b124202199622ce0324801ee3611d29e017a2a81872ab58b6338feec4ba9a2fe23f46c2f393bed820b8cda5cc2f07d7a091d8c29f713719ba5e71384cb8dbd2d4abe8910a8e3802c4730d4637cc69cb8c6e80eb725283290ec2e1017e8d5a09027eff283f13123ec87ef01c52d617d8eda42503c81af5ddc485624568789ef87b316c9f181ba6c1173d51238b10f4f20b7e956109c693711b4c63f32711270af877aacbb0e210a722f264eee4f01782308f4be8096cfd67bd98ad2fab34066b01b2b591d00000105000000010066e936d9bd346403d0823b20879eefa2c38fdbf5db78fa5ef79ecf3b0efd284bcb8b820633eb8e7e5c5673a7cc3d5e53314ec94933acc1069f9044ee8b76ebb837cb21bdef1e36305557c7fdd13ca47fd06e0ca66135e66c4ce338ccf45649be457b298d0eb0af0e72d741a0dca87d9833229824f4ce57abdc54d61756373c831d8eff759ac1d42adf1ba72fb66265b849e95d438eb345ac8e2a063c4d33d7738e118e204a3d923cf2b590afc9fed4e55c3664dda4c689c67f2aaba1e480160b3b8b27c204cae77709afdadb56f6d9805e895abf1534eea17b19aba8386a2743c1971c149c261ac2cac57ec8227e37ff3f36ee33d65ac3ac1a3126d9f6c43ac27d9b51b49c6320c54730b8896dbe7f2a0000000000079a1200000000004063f5a3ebd7e4d4defa0f3e50a4fa700d104835d482a03553be449b70a255bc7dd928d6bf4f860f4a235e147a8fd200c02e29d1a79cb6b843325d1a45dbc8ee1b020020e6e5b75c670d8ea51a09d2565e790d8a94b99f9ec2a38231d17a31578bf17e6a000001bcb8ae0b93020696f803c3f914798857986206e8a02a2d18ea09edfc03b1a2be4c8357158407b3a13797b9bbc158e1fcdaeb838cac5d8f7cdbc7ece6a2bb6d424e9e6e1f2fde2b1eb07407c483c05c7ef452ed348f73eca402fe04b2e7bc3f5d3ea3b42f860a0c4221738ba13e7d1dee89370341e76b48a98b181b45185af2a14547736e31fc4f4edac450ea36652a222469aa9937d364d9f1be286f7148b79406934e6c8c90aa2a72aa27eeb7de939c7572aaf387b34cd6245678c1299d7d222b3af40d4caa754d648be79708aff50210fb952dde5f22642743220d3dafc4a586122364296f18bd06a44d6497c36df4fb68edfa67f3036d1771646c678ef44080f55c8b894bda2115ee600599ebcd865b72ef747da7b5621eabc9a1fd072d4ea3917c8a3c33fa191fa2cdb54fb18aefe7ab9f701416f34b37ec99e3044ad39c1322dbf0faeec64b8fd76b7c26f7c4f6c0fbdfd58b03be2f4ef093912ac7a6e217b17245be8d3e9d85ab4d0444e6a39708bdcf40771edce9114bd1beac04190754d3a2075ca493a3ea158352daa285cfdf789580c6adf2169dbe8eb90721f93e2a2ecbea7054c7e8eb33b44d6372c1289115f2ef4987f03d9308fd04c40000010500000001004a146e09cc8c8e7d1abc3fc2b8e90b39ad80884d3849e93aa4d97f631d5ba52cf339e615c6431698783598f792b6c3a5cbf099ae37fa0dbf1122783a7c566be0cf2686006f1790a9041af93cb3279f90770889b999f8ae69941b604cefcf40e487a54dd2239f2f35b97065f4a96991a214554997c46eccf763d1198ae1968fd2260a92f24e19a027bb87c417dea69c78fa035cc8f09f452b52fc78c0fead4e609ad0a6678e1dc3d3529b01d8f20e110f706d99ca41941d2e3326fdfe022708008d029749110247331b0320087a3bd49d79cfc752ec0dddeed405c59d089add4963f5a3ebd7e4d4defa0f3e50a4fa700d104835d482a03553be449b70a255bc7d8414418d02f95ea3aecb74067a9ed3840000000000079a120000000000400a8520cc8b90a11b07e280b206471270c763ff8340fd422b7f19d390bf68244c5721b9eb75d365a4d5c7189f40d08eeccd37f47b621b19e2b699d250f87ec66e02002072b312e94b9a41608cb07dec7baa370a08b43cc1fdbd3f1ff55705571f17165e000001bc78308b915c4a8a43ca2ff70c3f55e1ef78663bb0a11c61d7474c8c48b2cb24d5f264256d19862dcbed24298aba3dd34fccd2c31d31f6702d5bbbf70812adb57339001987726b6cb79976f291d4366f8b0ca3a005c6c9ba3c5af5de739f02cf71aa04e4f8cf7dbc5f57cd55cd5ee26eb1907376762e316759539e8453aaf72396c7e00fba95d122b2b558f4c3bc1077b2615ae89f1892ab71dcd2df73f6f5f8f881be76af1352bf4100a257be990efff0b505a3d3416fcd8a2736c8636b99a648836161edee9ed3fc5fce064287e38dd5e1cf842118bcea7725163221af6e02e2641fd8e9b5fa5db880e6fb379f2a89c89c2a5ad53e13caff9206946331c2e70132c8a0995ad1163bd19ce664a6682df12aac1db4cfeda2cb41e5cb11283c99a96ea6ddbab4f757e1eb50acdab05ecd070d9078240a98dae70882661d6660951800aa699594e650238ab273e305f967962ba01c1999ae7bc2ef0b48a15792c6c645e01816c7994c3d42cc3ff924e92ee4bd28ab0adedddfa1905c30497228f2913b1242636687dcbbed6cf6b54e8a97fb988da2f48fe0f374ea26aab39f55b3c0f8121dd4727353043ff6e8de462555825d63b5d6a5c07023e38e802c000001050000000100d7daf3002d90a71436d834dbb82f47fc9828de79ff3d3c154234d896a1daf842a4c491adc06be444ecd8d621b89435b37bef54c91813402a09e1674348ffb68d1330e0f4343fb9a46a460f6fbc981642da800c673a899939cc43d7d93808caf202d34fc2240afe06aa0b3d09959b895ea3624ce5601921552ae17e64d48d36d6ef6881b0dabffa3472437612e7b31658afd097ec2e0649c78ade40e9f8a7ffc31c854226ad16d5312e3275e0569045eb0965a36698efeebb0f9415555c87d4c40772c75cb8962130b72e9538eb8b3609149e727c8f31890f4eb1e90afa657e280a8520cc8b90a11b07e280b206471270c763ff8340fd422b7f19d390bf68244c857be43a3b7c03d72eb3b735cd3ef7af0000000000079a110000000000401f000e80e809c13ab136d91167f6a76cbd2b74575e2fd1cb991d551e57785ca38c68c65f0fc4eeae413d5ccb43184ef71aa8bf5d07fde3bc5e0cff5d2d5eb2680200209afc9922816a8b86050a5f3d94a4cadbff7cbdb4da7a8a6b1574082e77d88f17000001bcf92cb87815ae1fd1b11ad18a434fe1e7fd504d35b7acb0b2ed60558ff17172e2ca5c3ff5aa61c96f98d182cfbcdc7692ee9195201930e6947fb8cf0cc8c753d08044a79189f9ae608d3c71664f004f4614489fb0a4f054fa130b04d1021591420d3c944e8f1751a76fd877cbe0b34e48ff2f81c12026942928030546790051ecb9655804ca35b2ba6e32c596bb6c165d9f042a644136cbb0bb7e6400340ab7891992845acd566bf071ea8ad48642f2b0adc6e0c72a9431a8185d0dcdf7221e28a80ee0b1dd4f6dcaaba3ce820f893040f5189ae4754c91632fe3c9539431fa2e7a77e4562430991a84eb3bddb33ed7f90d55a34857c5850093396a5cd81fecc5869fe195fbdcc86456f930430177fc07a5d3c8f4536490704d61205fcce51aceaacba3145ff943f8c6618f68f27601419cbe4eb2347a26797b64114af6f5b3156fc17b313e98ed901307f0a1d8be24b191e67fb28056330d8bc39f2c74ea7f2597c2473ba30c61114dfc323c38504dbe56883e33d16f445c2e997901f89b815c1d1e2dc0641a9fe0c21b5911794857d94f225b9125a0fc126ed09a42d5225a650faf65735dc328a5941c7d73f0f7cc1846b29d3a3c8f1be7b91a8f99000001050000000100e580fe2fa83d0fe803bb40e17dcfb28e5f85382fe52831a5687cb08701f78f45fa447cde595079aff2f75d1ef79b764f071506fb222eb1b79fe084e3d2628df5f4a403abad3a805893c71c697a14294fdb1078e7a665421c15b3663740ef55fa55f3cd0dd6da373a3377e8e6ebd73e86c22fc692d30dd591d1f4e7258e8b17d5c62b11fb53da972f2d5494cf6ebd4d4cf93ff92a6723e295830ee98fc81ab0790f78eb46484a65d5ceb70ef4dcae9b06dab700681ff916eecde6cfc241fd1703d5611e2ba6449097d624df6bd21295041a59f6e69dbaf011ae99e33ee8c8503b1f000e80e809c13ab136d91167f6a76cbd2b74575e2fd1cb991d551e57785ca3887dddfa841b3e870db8d51a190cf19b0000000000079a12000000000040e7fecf6c488fc656576c94e5e71d2eb64a09d1a958e8999309ff548bce696b82b18904cf847624683672d9b85b10d46dc612fc5414be7698d004ea72a34d70c4020020b4b2e3722f068123c7eb80bfcca21b5fc48ce0f5e5fc34bc8b078d371330007d000001bc64ea5425ce251d222fbd15f9981c0923ecff7265cd92216061989621ba5b03c18dac1cb41c7af543eafe04d7dbef9ee59f3c49175a2fdbdacd7f97aa877f93107638cf00123c67e014616516fa78196a2f9b24885efd2dae3eaf49862d1b1523e0e90e083d73fabaec8a34b9cf486e7c0725b4ec4b58461f7a4ac06884c71c378785901ad95b3c4cfe4f1baabb1dbf0346c82c3f741007460183c2d22d80500925705f9b3391e078f688af008c7308481ae3bc29f4b7f596390bb1a747b07efbe19e6cc28e7f7f88ae92b13a057fb293da594062ee4ed18f0dac2ebc5fe2e99417b6d1782ee20e50c871b84a57413ce81e479d7571d3cb16e03acc2dba2c410f025025c07db4b8c037e5a02ad4ffb3ffa085a6aa32033e472a7805c2b27c057cab08b20862f883f50e4929b919b6c7a5f2d761d93cf4c4d0824885032b922298f7d57f4ebf97f9fd14b91bf2ccddc236117e1e8b6f1ed6e622fec386ea41cfbd04733b8bb1079a8d45d5cb87879ba4f5be30021d8abbec7c1f54d1cc2294e1440b46d480c2e965fa514de0510f3fd829f8ac6581526fd8ce97c9ec6edc4e6cf8cc95c001c387d90d846052281dd41a1aa6cbcbd12c63199bc9a2a40800000105000000010073590c54ce25f5bbadfb32fce13651cba634626f688dc380cd3af92d6305f3015d74c76506ae709a3b4edb589d3c3def4f5276b888c9e0feeb0c341f7a92ba6885c6fc56f4e8d12848e4a292fc76c9ec0db1b690493dd174bf3c7973a2aa936a661bf5f8c30be1db06ce67aca3f678c3e31e1d3f24e585c656582f883df23eef3617dbaebb225420a0ed5716e43b25425a80cf438e972f378063b0bd901011abd856ce60470368b99448460ba6beed4d36db67f793a7ac1e9a3fa5ee24932056c6824c299b74badfc6862b8dc6335c247868b9f9f82b40fb06daf4899307f7d0e7fecf6c488fc656576c94e5e71d2eb64a09d1a958e8999309ff548bce696b8292333fddeeab6da144526bbe30e5d1520000000000079a120000000000409f197ad3779df1f8eb3b033eb20c3c2e97c9690876ac0c5d215d62c02f54a7b3eb74d1f3dbee683708b940f9da0bb42956f0f21c2535d55baec4e3496bd234f50200207a0000167e18947ebb85e518a662584378a11bbf4d79a6f383817dc034fcea70000001bc959076e00f11e438b85dc8635a0f7e7797860580774953b58f0c958b03850f589aaf23fe982cac97dcdd0c53ff5790b1933521671d08e3795c983047e08193ef78fbcea76f62c38071f0700cd18527c6f08421587e911c6e7510d3b07fd95fbe3b56471421b3d719b5db9aff7f5ec434c639e98b3966a692930f131b1a6722450b0c15de1af2b9cd527662dda5f2d2784f5bebb679364bf8f8aea325d3df48d88f34bb2a291643a20bb7dcebe75d3933f8ee9386c6b49c418fec2c5d36502cf419d4cf695a8b65c2cc448286f2d5b31d9974644241ab1f5869dd915cb4262e947ef77c7795fc0f77197c2801e5878c4cb272bdb1df8fcfced73e598aba55055e2af3317f825ab7f5252b1bda3e656bb06f532298ece7bb5b1f5750ceb8b7420caec1862ce3c02ce2bc1c631f73167262d900a9cec4fc7923333da237a5d7b71051c60da8a8d23d5109078ca4d675f283dc16c7d0b2234b0e33c93ec956e4f0aa012a101e7aeea8b61c18433579738fda83beda5dad858c85aa1ce2409b0f0800924b8a551c1b2712f0faf4e0807dad6a01d078f9c6008a4f813c29ac4d767885cdfacfd44979a15da219ec7199b041e829b2b1f12e3502b0782356ef000001050000000100c87527d746b525290a4c136564eff98d1f8adc818f666b9f553c7cc3a3c670195856f0ba4c0e0ab20625f7bf37ece2af7d5523e7bc470fc7cb012d3d7a6c50cd63c287d52840b8903706ba65ea97a7c813dd5eab6adfd22b19680ba025bc443a7a1c8c450611b4813cfe2290dc003cc07419880eed26d4f6c1a9972f4838bc4e37e89c9578a2b03c4339a3dca41c2e5f48ae58b944b71f3189b4cf7af34c9263ed85494267499842930881e756ea52ac5fbaa7e34851ebb663440e4bd153e99220918fb6f578064f4aecd8db598bee5ac207f82086c39205a4be1f731919ab479f197ad3779df1f8eb3b033eb20c3c2e97c9690876ac0c5d215d62c02f54a7b397409d8a09b3334f9a836aa28435d9cb0000000000079a12000000000040f004af4e06c9c4cb42054a2fa0d1c3054c5cd20016d64b24b4b11b9244f3256757985ecda7f938fc85f379b97419072c27062048b5d91e38711f56b39b237407020020eef4ca0fd49acec9cf1f26d8c18adcd01ec47b4b64b4da7993f29674f731624a000001bcff85c34cbaf243fdbcfba3c89b6b504708ded1fa4caa0a26721bfbda931b11ff945326d47060a9bc709ac458c525f534874fa196138e341ac35ec6442b6dda55fcc899800af8ae3d8cade8ada1778bc2bd7fda57661adf520d284c36a9feaf0f17ac8856773758a88c933916e969ff4f66661661f4a1c7f34ee8c8f0ded5ee07a9aa3d687acea6584d1ce9fa280106f49b8f22e643c222221579779eb6c4540eb4a057f1901234aa1ac3d13905e505aafd441fa84c4515368eac9bbd14ad9dc4432aeffdf045d2faf88f3522e38961bf85d701e83268c33a7e418c6c4ce387b6b4211854020ce233197e71933d2469dc3ec8ea1a2b3ce82031c7ab2baaada57829bde5a602a89ddefc1b0473d2d1eb08bae4694a0b913d67110679173f85bfedc12433a88962c75418d9d2f8887ebafc16aec30590fe3fe0267c01be819850858f580d0939c1a94372e320fdec19438c6b8385e2dfe5b916f943c584496201eb1cedb9f1ea91114ae6f9568ea59171a931d29a3b83fc76e2b38d49b6e9ed8384a627b5601225125fcca3d88205a684c416dd3ea8b7c8b8a2e1f5bcdbc298f612ddd974d87ded80100c2ccd6801dca383ba24861fc0a9ced02e6092310000010500000001004718ee2e43cd3c0b625432b6b53d015a6b9b01574e44deabe92c21edd71be1f7f09285b82062a38e453976bbead1ec15e027b4125f968207079a8dbc81dc92dc83aef91568b24d9c4cd4d9f38ec54d669d21bbd711047240d34260b5a8e081eb0b10108fa136b3d334bd77a6e93781feff42849c0589e8f442ce750dfe1d4b3edc464b90e10a9bfb83ccaf1e6470327e37c19a5f2c75c99d74e0070e34eadd67501133c8a8d2d931376cc5f1fdfaa0706a77e7ac2f64dcdc29e5c8776d12ce2ccbd83110c1fc7e26400e61e5ea284e565eadd9b700bbf229c3a21a9b59ad6e33f004af4e06c9c4cb42054a2fa0d1c3054c5cd20016d64b24b4b11b9244f325679d8925750bb5300d2fde50e6eb86c4300000000000079a110000000000409e03b994fdbc547b18404580d50105a6a3d633d62834e7aca5314c6c3ec1f598d23bfc7b995bac9e8fce35b576dec1e4da24d6760a1fc5488e81ec323b390f3c020020c68d72db92549ca8a19bf22b4823a6bfb706508b7c713341e0793126f3d7bf35000001bcc26c5ea8795bc3217613fa8f0d971fdab0e82980e2d918fbecc13e4c747207412dd2ee5adc6e3a370d6287bead2f2e5683a5b8c3633725b45d3ab85ee18325850a06e083191a4c2771343cbf38b9e51df5e1995920a3229e4aad5ada146576afc61671922451e30a610e70fad8c392447e4ac2f48194d99af3837f7c884619e9d603df66b76a5890ed7a1e3476a57bf7f96b6572d285df625736fa04e5616747336e83e14efb8e487e9010add97257456683f7095762ed3e2411276ff9d65256fdcd4a607e7224cbad0aff037f63493b7f8e11b3a608bacc20551eb9ecbb6c563faa17bbb13e398b23531b366a3a1890e75ef895a63d3bf40c1eff14940eb1563bbeaf884181ac6f5b1bdc5b3a75267c27199ba583524b4c7ae143392dc26f41255d43e744c12cf80626e9b3346e10293ffa7e5b1b8a8f5620e0282fa223822d3e8ddfb5957f85a038afcf0ff4716650c8f0a06e6382862b36d05e62cec5019874f31a523d37582aae9b4428170fe93122be83423ff46fb3fbe1ed75b4701512f43e52875325838f67e1adbca85b6f20ae94b8afe67cff0afef350c82e11a5c6c39a1f355543bde8adbcfdfb49e6d60aa9417a8e17c4d995048704690000010500000001008aa29aee4c7d069bdff62b02b88879d64115aa553ae2b1188cb07d9b261ae8c804be40fcdfb6d7a24dc9cdb11a3fbd0df4e206e05e5c14c6dd727acf465a6330c58f612e8eefb6ad2268da7f65cd76ccc7e9acef0ef77bb4ddb6377050a2bc30df0d3d129d886b557ed7df5e6a045abf47a0a6d534e612b69dce817de71946a7f54c68708c6ac1a0e6a38aac246465c77e380f50265c933a00c581742a415ca722023cb1abfdd84f742cc6eb8a7d66545b1e19d2962e991609ef18a01514ec0cfab97926cb240d584d31b43fe3f281da5273cb36324664820d28775c214ebf439e03b994fdbc547b18404580d50105a6a3d633d62834e7aca5314c6c3ec1f598a0f799425b823f0182363610d184dfa50000000000079a1200000000004033de1a8c95ce5853d01e540380198e9e75abd6600da1df298e510663a6f9834f87fb4993e4ad16a2d4b696645a88d162f18b683288b56f1395068f484f9c788b0200205360a361ecc721db6815f993d811d6b47175e103f2693d3c1187bd067b462460000001bc3af53e657b8dd0cb509703d99d1a57288f8eaa48d8dc69bba961b49916017a8fe12cda91d44c87bef923741993c68bcfa8ee4272ae5dd73b6c8acd80b33da26519ded7cf33381b98d45dd0a763ba640f5d23887f7723296d93e44219bcb60e4dcb938864d30b0eefdb9f06585ed331e809a549012c5bfb161c00e48b286d08b4f80082646e1ce551359814ea8aed48988a827f736a13342e4abac65db761974f884f35648dd71c3cf848bda63a24f3e00377099e8ece21971bd87b2a149ae01ec75333c7ace912f11dc268e4fc32f5b323d500ecc7e218629f0f1506a878190c86770150e7dd3a9ca7d21c6d7ab172b025775ff68375165d2a8dbc3b33c1748da3d2674577274faec6824ee83e8d9ed5b1fc68bf470dae7678ecf82fa7808ff7bca6f67ad02939af4bea27e3a8eca1dcfba86db1e9a04dfbd4e9f84183e4202792592a43d23297a359dfd352d47b8e1a2f3ad44ea85a854d919002ff27cd28492cc10ecb9d0921c51e83eee99f1a88a458f6d2c0178f86fc2605daac50218ff3fc5057d7f1a1589a96a56766d93840f36a4c1a2cd77b626993c1309f17733b418d43cee04a3e7b6685b228ecc5ec4f6b676b9b2073503e40ba288e1f0000010500000001007cf9b2cfb77b0bd54f1236748a162d6bf1a6299fe25ef297c134dd86189a26b32a172c0cea2a7042666ea35c1e29724d7ae23ebd0e7a1d4fd5f9fb5ee8c3a4cd03ea3f5e2760afaa4d984f1f6bb0a6829c51104369e589f26fc6322b37bee655a807c63478037cbb0a0b339d00ad732bd714b4fe2cc2d7064b2bfaff5b93f7c20556fb49bf27aaa537ea4588e6c3b9291fe9e56e353ab9667d50aba1c9c16848d30fbaf2440fc2cc2c87fcacc9700c61fad12385b86303860925829cd757898027a0ec3754de88657e6fa30140e42b9d93c4a7e677e23421fe56b91b3ff7634033de1a8c95ce5853d01e540380198e9e75abd6600da1df298e510663a6f9834fa9344064cb5aa16a380e784b3e99a3e30000000000079a11000000000040a980b14b45f7f63637f1d77561643eda57a352e770d642bc34b89c4b522dfb4bf4154b0ac308af929e1a4c1b9319e90f3525108fcaa29fc9f0622fe65dfdd9e60200200751278680f71c6339d408d2a7252fe96f0af4ffc65fbe4bdd78506260927c16000001bcd8f9ab7a3cb7d2551b4ca1d7611a61db429820b67253042c8a410e6637a224025edccf1ea7b8f223655c15cd30370e3080fc88c36733360a7a06d7ca9687920d92883144b12bb23e7c1bf8b27aa2257ab8a200780c15552e4caa9b18cc46230e0c23657fe231d32c295636ab4f086b6671e3f554160989052e5c2c430314ef1202ffeb02b5f08a1bc6771851c8a67195796067544a9ca1c8c3d751ae9145df6dd250aab641849ffd72fe95de56b3181df31e1a5450a89b15cb24da37e6aa9a224bae3bf3f3a4e23c1ec285870ae6258b57f460f98932bc8faa9c34f2bba1e72c3274f517c4552200ee7aac65b968a14f27596b15d16ad2fe4a7172c4a4ffde7dac0d966d6a8519ae29bef71820694395775e39e2ce28efc2fdff49ad833182765af199ae22cb85ec8e2a86853cf7536ad612f5ae65f1fe4acb8f869337374e2d14196f6cefa635518b1c01bd104140eadb2ba81441f39a3b016cde3606d67d4d65fcbb7b9c5ff2274242d3fb3323d0875dd24e1a575dee51b3158f975efd13cebca1847d048286d0145dbc85af99d715355e9ff4d7c8d5b852862bc0190b4a0cb37d5400eef3e350c4f79a4a6fbb6c2dd84ffbea007544b66d830460000001050000000100f82573ce5e1428ea3aafbb18fc60b7b99a901fa7b73f8ad38b186ad2f3441534a2b60a155587dfae98b92a1727b65dd1da957bd59140ada69bb14bae9b025871c8e07d6bd3978d65990b88a7957fa84f4bb83f7226adf4f25181cd78330158c88e0d54ba21016e4634fd5a903525c2410e1bc30e92d36d6ee968e98c82398a1ff94163d1fe86d9f02ce18d7c1c419d11a94104468c6cacff4858235bc4118124f74befae45bfe6a49a7133d454fb219757dabf55708c760019a476147d91a46a63e88aa4dc3e854affa9f92b56d0de9fa2315aefe2d83dd41c712ff4de10f7d6a980b14b45f7f63637f1d77561643eda57a352e770d642bc34b89c4b522dfb4bac1ae1a720716eca8212f0286087ca6f0000000000079a110000000000405e673ac588f73ccc693212bca42f9e1f7714113ba2a8201baade4fb1f9ef18cb12596cf76c153a53e48a934246d24c48a50e363d5d45755edc270b95a4d0b732020020bfbcce09ae0c3dec2e8755984f03ae5872ff2eb0398822dd87023712523b1856000001bc3ad6cf2a1477f4c1846d64d0cf8117e5ea5c79b7f9207fc39f6c4917f97b9c3bf71a6849ebad494c4076602bfeb3f9776a53f544e8cd7c0397c6fd712a20025662dae1441887a081f771e86c0514eaf0a65368f78e52db8f212274451e52bbcab97e6cab4a668d4f1a5f62f077ef068f6804078e2f5b072bda5936631dd4f935a72157495c4db052327264768bb5eeaa05d70d37e61c826b76dc45da5df0dc7dd30be7c523f597b7686a7e09282e162510a890447c16cf0a8ecb07067c113f3634da9dc326a3814b81a5547fbebf5d46f4378cdb93f53ad8eb368b4b77ac81ed7bfd9d25b8f0e4bbd38e834b22711b32de97b2ad18fb0cabf7ea750f49ef40dd1c6d104fa929b19626995463692a8589e3400cfe20577f488e329a5ce3644ef797479c281bfb35e590932cd108ce15290f43a3cdda96c972a3e13ca3a0a30dc87dbf78182b6f00ec77bea006f4457373ab6a67959f37174334c4d7cb649798295e78bea5a38c83620bd9c8b3c5d5f2867095840e290f36afd257f9c92910910fe22a4c90200cb8ddf648af16b624d1c33f73a3b54aaf3470001305913eac6b6ba257c6d96123699faab34391af3b30345c1030a3de0f207bfa768f5b000001050000000100b09e6b333db5b65832f61c8c1d1cca28f534859a50a4d08a921a816c8c0fa9084c1fc54da68703371f0a0f1817e2d1cfee980d8b1625743858ce094d6ef033da2785f32136475a91a64aec8b6fa45289f57821bb22267f7c8f985f388dcc618f4a9da4e1b7e6e6cc70716d609153970a779b5b0f33b422d7029602d8c95fe8dba6833d082a0376bf17567c099787c46162830ff9027c9713a19d7074fead0e7d8527202b9fea14c5dccaafb673a2750a9257c426a480c2b88e04056890fe2f9ba5332edc0b7bfedb8f8d308c1c5f112acbc28f548ae2fa40221b82caf04940245e673ac588f73ccc693212bca42f9e1f7714113ba2a8201baade4fb1f9ef18cbae69e512a4476acd5ad2cc7d22fd6a1d0000000000079a12000000000040c633a355bd5541055e51a164fb99b67809f01f768dab502bd26003a9fd1d304f33e53fe4064fde379a3b8286f6635f9266f8da7cf698c79ddd4269de166f6388020020b66f6a0dd01344856951d169006590f0cc7540fc96b49afad63a6da18674d010000001bc289f16a88f4311bf520a93be5fb3555aaf6cd63b2d751fd696a688dad0c609a2ca5cea4493d9be8f042a1f231d7f61d6b8767ca2f570b39b3cc23a51aa1b9539a836459c94f7fc8bdf9feb2d2b168752426e7935e6c66ef35ffb1d7ae317beb002817127ced212c3ab23d33d7113b0aa06451fabff7012b13c02a45b49cbf6bbbc8366565bbffd00c326ceaaa2a2c421dab7a6b64430cb013d6d909ed31ede3ae014310a8803413682e2ea4f66e829ebeda5e7b961950e9a4f9d898baf94c210127bbe2f8458365e75eee88a34046ee75cdb60a1ea1bcab3fbccc74c41bc360ebaeb7fb150a7e7caf4b19ca7953d633cea66f8be4dd5637020687ac3a2675b9b522865836a522bb7abe14903536f6a8a54d220f445db1ee615bc55bf8b3aa72e903977f5a7f1dea8f6eb5dba6314e8fa3ef8c918f855eda63f7798a3c8180a6e12543364c1493158f717fc68a90ba321d36227cba4d8d6b3d08d39dca86c7c9a7463479f6223928b212e0d9b45ecf3249c8806bd03f0c86cf287b199a0d7f3771169ef7b271f543f123ae568afc9ef1eefa8e3cb2e62a9a70d2ef07702ac0c9ad4af5a88ddd94eb943926954a8dd75f29dd47d6b5c327eebf7e8bcfc0000010500000001000ebf4be02c256879873c43cafdbe3ff48de3c1bbfce637e51a74512da216077d567c033769edd08d06009524efaca78d6a5fb5a2e7603bb2de9ad03b66cbf715cf0f940ec420f808692335f9c7b01b2dc6378616d8c4bd9460d00d015bd14a0a7e345e6e4a34a16b37560ec351e4929d3cf5e0a38ae05758c351933d242126650a3058efa1f9704286f01e3c4b2cf9bdd5b6f18f6a39f1c6dc7da541cdd3f847e3713b0cf8aaf894899b3bc262a3a10d251023fa63e2baac1bfa4b89cae0be50a3e33de9a54fef7d7b93c1a3856974f3ab09da1fcdd235d02957bd78b551a349c633a355bd5541055e51a164fb99b67809f01f768dab502bd26003a9fd1d304faf1144365165c6528693e1cef65cd6980000000000079a12000000000040600688d234727feee93956cd2e7e8555e3da4cf0d67c9e3410bc9712416b3463f86cbdead18fe9addeff07af8227cd4796e5a1ca635d8d36e0a579ec06cf3c8f020020019c96d0e865f3d065391613a17a3507f7bd12e3f664ccafbc817e169e0ba17c000001bc6c12745c81cbb2121c8412bec3f72b5e349fd3139d19ca4d7075157c09d28d832a472ba546b3e03fa52d0cba5608678d24da159601e6679123104aaf5df890948154605a9bd62373038766585625bd86be37e43aaae7d82b5908167a57e128375fdc214825d2c96734141ca5bb184240ceb7450c449e1bba09f19604a0654c0640e77091ed2cb6fbe885a69ba7434a0f95155d57019d6c35eab936bc11b1803be8847e919cc13d4424eab042e92cc95ddfc70875ebc59c8468451af6d7f207c4956319ceea26e4926576332995748891fdae4b6d8e1a6d7e1caee7c6c5a9204453b1e3fd0f34d20a25df58fa7c1748ad856c9771d8e16f32e5b03bdf3498fcf914a9671f7f8a14c454e10d3e808814dd3eaf21440b6310a8f8de116f485c871279f0ed3fd060d13e4805190c004c4d54f855586b4018126ce5c6ea0d4dfeb5354495b270e9e0625ae1fd15838fda960a6fd691eb16684e70c02362c9ca898e4e5f70bed58dbe580146dd4bfc84066dd492fe68f9eb71bc8ae4ed6782fef7efa15f7b9151b0cd41e6695ff11400fb44d38bc4a707e2b3f49375bedfb17c14b8165cc163ba572c8c5a837d4bf02be3bfcdf28bb16a780a8ac9ec596b9a00000105000000010029df4f740381b5745541018f8a50e2207a0b67d07ee420e6a5849eadf59f934b012bc8dee0cc7a87ea32e62019c768f22c814634d45c6174549e2eb0f77f8fcb5aa611a4cd2f98a7d01069e3ae9df25dea78f310cdfe6046484d4085cc399fbb5bf16ee055dbc4987e6696af0524446a3ee7c88b08fb148d13bb98f6506dbe314e8c63c2879f735326b61ea5647260ae0fe10d20795fe8626ac3c72734c503e1c40a4bef6e82fce7e0fdd1121089f9bcbd8526d6b0bbf362db415f015685cb5c93c69e7f706a681cfc37e333435d4c80e1589ac1a0cb1ac9dae96299e92a3c33600688d234727feee93956cd2e7e8555e3da4cf0d67c9e3410bc9712416b3463b40d934aa97390015d10cede33459c0d0000000000079a11000000000040018e308a6c83dc0d54f31336582f398d201df948940af5b54272b5d786109728bf34bde4a362c3beccebf30f83224a3eb9bbd5f0256e01beff2ee80f2f07624a02002071139a6b6a3a5f24b7f2e979b159759bc96f8fc9e406775b07a64e80738ed446000001bc9711ec6b979e6abce4922a958e771a4496ff4374b6336c05e19b75ec274bf7a0fca14a73332f2c35a1c33487c34fed70f901624f17981a86ee848a7a9a8bbe66059f70f13226449f6d0f576d46e817a4b891de00b23d07aea77f0a62b0b38687929b619d13d163f180e42fdbae00f2d7e1c60682cbe37200511922bd751ebc5625bbc7cb843b569b268856900bbe8b1e7cfe66d1ab2463ef26ff1cdf7062ed378b5094424d94510e28f6d7fd29009bd4875bf3be97fd9378a09d14907b9d1841a400836cc2c1e52d3d3598a50fbcbca61b1d5b7ad500202a553db300a14fd3cf20e07194a22d329c3654274c13221610d89240a8dcda37dae485c34a50fb1bf4ca7c5ba7210ba28ec457770cb533231c8d21f193df051071c6e957c1e51aebdbdb732c29a436ae830e486b558e47caa61a27430459ab8e27e5d3dddf481d7a66c53171733750f36049daf2b899ebeb902304530afa679b8fc1029abad102acefa6afec7860d5bd9ec3e401d0cbe7505238d7fa84367709e8442bdf9623e0a4045f20e0e6dceebc208580ef94328fee692e4d8e97db4916f0cdb983e206d9dd466579d17d1c5fe3715c1b676f2247f613871501091776e3c552aa3a820000010500000001009ebc61717720e81bb769eccddf6b4737b8097bd0730fd9b544e74a093e6ea9dcf111d6dbe6b65331e860f539f2dd59ec75afb5d2f0f0c750b6828073493709ced31878dcdaca84230589fac79a7d2cd21071c49d1f91040c9e9020ce69cf1896c550abfe8be76e4ea509e853e6b55c55f83b6a839cdc72caa36e0b420a3ed76be946c308173d3a86ea5c4969c4038d509d5d03fce5c623c915373b4154ba6bdfc50b81c2a827f6ea7b7627df3cdcf8a490e0ab64a981ccca08c4e7355a6a17c0005d43d1c4fbb9c6c9b0a03160b54b43e7b42419a3f9e6b4f9277bf56133268d018e308a6c83dc0d54f31336582f398d201df948940af5b54272b5d786109728b4dacf5d81f57d9c8e34bdbcd78f946e0000000000079a110000000000403dfadc783156aaf238415de59c390d1aa16e372fef61a0eafffefe718d19fadd38f16f0d98337f8342d18975912c67382eb36d1df606ec1288a92a0f05e08f2b020020e779d18915cd210d04d0b2fb0a9bf11d9ca878d580afaad2d90225c12ece4f75000001bcaa587d62a4599556eff8c3348c20061d94c85b1f0ff94b1db5b21f01a48c587badd7e789fb9f87ca8daea2173ed0e42eb19a72f60a88a78ab8e6944f2a35774a75103498d3714d429afd8c0100c16662e96f6da9cfb3e4ecb2e134d446640b8c1495ff92698170fa00915eab2c307dcb5a4eacd58f998a808b47894692e191694eabb556dea89d1787059560d496dfe76e8cb53b7004d03f078f6299685c1deef059dd5e94def5df3223388bc7a3db6b8e8f788d26934dfa26b38ffa2f63736188498a713152fc502ef3070021f03402be318759b729ea68cd2a051761b3f48a66d94c61dd4415f254e0e6e3a8ea90e5b43d2c780b72c13d619a22f9d827b016eafe85c6948df5f3961fd9b12fc3f3593bd368a0c852cb145cc8c1acea65ca2e26ed6177c7496661e1b2c615fd47c4fbc8493fdc74879acc7637ea52051651dfc12a9dd6282f2a73d303a758f59fed2570a34f8418a7381ac149c27b60bd922179092384d9da1b6ac9ea3fc739cca99e0283ff31acb9f35b882a42f1539168216485ce327ce5a11a59f8de8bf1d89e747e528aa2319be22c9dd518ac77b0308cc4535eec87e8043ae1061e93be1c6d584816ce31e19a20726309430400000105000000010003716bc47ddcc154bff2ddd850f6f0225d2998c1f8147347c4056b2afb6f61321c7dc6c1059c45669fc32a79a1a6ffcf6b10b4540a28e76011069126ccc28f1cab2ee8f3cc799b56faa5fbfa6a0445bf2faf96f1308b5fc311ccf9a85cd14324649c087fb4b786967cfeba37503b56994c4bdd94413b0b0a1b57ec5b147f1e190b76f8be1fb0e8537e55ebffdd34fe997d182bea8afc1de65fe09a5c8a7b3239eb52b194a6966b73f3f391a5c2f56602eb3f1959c7051fd9b58864bc0e556be7b9c0ea3f729adab9e189ad6ad70c90802483340f1e8c287170eea14b30bf841f3dfadc783156aaf238415de59c390d1aa16e372fef61a0eafffefe718d19faddbecf6beeb5cca1f27c2c231f9210d9860000000000079a1100000000004054c8c42bb4acec364debf64472f7c5426bd361afdc3e4071751b328107242994a399a8233c911cc58a65100758fcd71d9a65b1d89d61e2184e8cae69e547c22802002003a2fa88f2121d5c1a1cd21fd5651df44d55cbe5c73240d57ea178ce67fd2e56000001bc8586da6d8dd2c71dee54a298208abae4a4f7ae6aed81eecfe39901a51d08b8af12257eff91a810d162fb97e5a16cab1962cd9b0e736d438043afcbc0bd4d8096bac5890905d4897b51895a2a8b587f5604ac194c8c4cbafa3b0ccc595e92f8db2570b20ec88aa737e5b682a3497f1728b762c3ab39c8d209410cf71f1064bd3c6cab233b9bee3ec00ebd96eb7eeedd194e00a8f427e023d60ce98dd135cdc190040f0a61111a1d2a929926a591bd5133f328f15a9a59f05dd11fcf00e55d787ff3023f0f53bbfe0815ff7b5ae08e32eeac7199304699183db60a35f62f999b8c8625bdd07ef53d0eb1edd1f1d0b4a074f06236a81279f73bdecde1c7f96ecd0308128f8cdd79eac30280be19cb58ac5c6e487f069d7e959409ece03b579a49970f1add8f579c0c8d12545a95fddbfc6486ecafd92fbeca95ba70c0d791a393a585e0d0f1212bd6215813b4ad12939674ac82f3e19adb2365d1da800d6942bcfe22066bf2c3851cc2a38ada48eaeba66745659f2ae9908ff31de01814725b0954987613dae689f26987e2968912d1326ba6526b6c80380ddc867efde7beba46f63f37d3fed85fed6050a34f016005dcb93d921e82341fdf7b59bb1b86000001050000000100619a012f830af368f8ad081a5ce33ed6aab4b2dc565bd69bb4b44277a4ede3f2835514217123b129bf08aae7df75248ef83b573fd0f2eb11256f7765ff5c13c34b4f6b50b76e6c0dab1324b4652d2442e7f7b167e4785072ffb6bb00bef2509417e40056598b1c343f3a2771d08f671f2cc4d92b11caebced1143110fdf17c15c5ac11d8ce4f8ccd6c5bd3be70f9b07a090aa669914312ee580f9f1d466223070fb5509f421a1c22f8cec6d64131b6be0bff06e64ac4cc164972f9d7ee1bc6f81c6487742cac0a2e9af0f81f0d542c0bea7409b3e1c3a7bd7b0cdb9c86d96a3e54c8c42bb4acec364debf64472f7c5426bd361afdc3e4071751b328107242994c26fa81954b496e01eb8b2b6d82cd34e0000000000079a110000000000406522b0e7f769819d55ca74be9c70f067ca46eb42ed6f4f7fa6a652f39a02a7b45a55176da2bd1cb0d4ef08b1511b3a4c778bc2e9a8fcf5939871dc853e628b22020020b1cc8db8ce310857f2f1c25f8cf38b32a6617c8c089b4e664da1332e50e5977f000001bcd0f5eb3f86f7400963fb1eca13f069eacee1345bb6ec1498586e510b6b3d61e2efb56783467379ed8b5c526894b5d0c09143fecd9aa014b159af7e83d0eb55cc5aa8526a0fcdf195bf321dc99844cc38f384da06d7641f5ea85b218fde5261791fdb67749aadd79661f1a80eacab405d9df05f8205202c0c0362e8155f30782a3f0247a9e3f95156c2e8aa69a5702b1b74853752b999140c36285189136b7981ba744555bc639375f36f83c3729ea9df82032dc6adf3c85d1db8982e1792d5833e77bd744ccb0daa08f6acd971434897561665f8485aecc61cdf102a8676ae9b31ee55ce1620a42ec507ba331c0d422b8203bf2f6fbe55ac110780181b4f1242645fc20abe72eabee2ab4c036019e7e9ed26788d921c2828ca52e0d2d454cf1fe3e5d0206e0bd4f4f87ee81aba75cf64b96e49ed4ed65789b2416bda94dce30c1510b0696d9fdfd72533f6dca3dde292e3d91e87c0e1de62120a83f6c687997feb1550a8de390fe5764de3945d81be0906c99c298f5df008e3a090b9e74d1f782f4ee96c786979359b30de8ddff86447238cc3c69a0f97fe7f4b373cd5ec8d904cce1cd94ee2a50db80ec88c21a9bcad9a981aabc6e2ce88a6c538c00000010500000001004dc31a3fb5c8716261788eb1958f58716a5025a74a11cb8b0c4f24065ed470c764e5ff8264e789c3f6a7b90419c526e78f296277abca4e0d0a84af96d3df1372f18db31432fa98d33d007c592b4b40fe53200010cff6b6696313d5c7bc34eb597e3e0f34cee13ed9a1cf23ddc93ebd188b89f22ef2db8d69cfb28c2ce813fbf19e72b45a605221a356cf9a6cb20fdea31fa64ae4aa89665ca17aedcc077a000f6cd4249213b484caffc97d01e78b5722285287fd97b7403e2145b521c03197fda3c714736fa1d8b285140f7617327cde8aecf1ad5b1549dfbb074a498a857c646522b0e7f769819d55ca74be9c70f067ca46eb42ed6f4f7fa6a652f39a02a7b4c365d985dac103650b1b2f4e65d5409c0000000000079a1100000000004050c57e2cc913208866cfecfc7f8dfbbff0063a6de4ab38b5d86c25f3faa64105802545b6c709723ceb176bf95ff5d8c949d9af994bb6c051ec73e73f671e0366020020e9abcf3957cd6d3969b29ef17876a940453705a1f580bda944f2357d184d3130000001bce29a8d977815a4e2b93f4b2237396500cee6414f7914e6472eb761b347175dd6033f8d6e8ea56c0394bc8c5e2cc9d86f2b966b2ef3bac5faadadbf7aba44f2eb38d7ed2c823b562593c0a1345a3fe78d575b9e84049735d0d8d60f34bcaa0d861cc4b5888eac5d5975f21ac09cf2d0bc28977d64983d7802cf5054996133815f362d54d9c0233de283422b265362959c13a249b2c70026554e868dc1e1a5de852c93b37550231d044c6b4faff80a75bf54aa34cc6dffa4665affe37817df2adce8a604375c84893de5b84a57ac016583e7fd016da4808510cf207cb95b6b43bf9b8ce21101cf3429aabaeb688aa4d3b594826e5992c0f75611276d8cbe402dff5591d854fdddebf9e6b3d6e74e1875a5b284849a56625a954945d2e3236b2b713fbcf815ab5c6b79ae09a5deeafafd93824c2b24182d04c82376e4abf10a27bedef4f9cdbcb800a19dde4c119550ceffe5af7c91f83b2268b8095571e2219645614a75b017914e407b1b4b8f53ce144f06d7d145c08e8de56d9d4807d1c32b45505ddf3d72774c40de9a6cd0dc4b154eece13b6677bba13cfce52698b5f5867e363aebf755467730fb75b12c479c828863ff05d27b3d35a5e568c3da000001050000000100c766e28c35e88fc892d627e388d837a1cb1cfe6343458b82d54b7a68802c26280a4244850b486519c7aeb785f45eb13757d904fd43644ea21d97bfd8e9a1ac54fa7e15c3fddb3895ad2522622457e293cac45bc7ccadecf49b623da0754f9950c0b16f9d9cd3646d8cfac1129b371eccd2ded8fa265d9bfd0d14e4e7046ba024c306a32b6d438ec9df7d2df23516b2b3cdb7c33168282d2a9d0fcf2abf3db07522cd1156ba4cefe4dc3fde84a61d61936add8724703ef2dd70c3448ce5671e41a14f7af0ab32406971d2061a76e75087bfdcfa1a3c3d2e56fc958cdcc58d5b2850c57e2cc913208866cfecfc7f8dfbbff0063a6de4ab38b5d86c25f3faa64105d93709372219ac824454d2ecea1acb9f0000000000079a120000000000402406579a89f583deb8833a5fab3056b32e10fa1fe5b28b1b7c0f1d57367e7816338d3a095a4dd8d5b5b6a69e09b94ad6f6b2c8cd2e1eb346d6d78dad08698e87020020d14a9a213242e5763172851e1bf9f72e1ed6c6442514309fbcc1759163044879000001bc4a4c261a24fa04b0b2ce2268f4dfe83347da303d1ab62ce1f20d4beca32a7271a32234f0755bf46070c10d8f47d797121516e4a47f1f9423aa30010b9615287b9f5e7d0274ec1657ba16ff541b6179dbad4692060ac8b5fe6f3e8a8bcee5c5e9a69e93a3c53aa7c8ca5090fa5531b35d1a72e1a97e94d696e949f9d9c3fcfa916dbae715a5b47742f5b4d48a98e9093dacac8b5b8185cda7a966ce5b0eed198e6c81af1d94fb69696d59389eb70b7bf871828f7572fc30720b6c15b112e921d5d107b78ab7fbe1b96124344c418f5f9f7286cf60c8bceafd782be14dfe54588746a6c69b64855fa26434fd0120f05ebfbb4bb579b36ed7ac0c5a376d5c27157c2fe86fcac2bd85cac7bc0aa1c790fe05832528309288b9ceb2a2e72548792a57beb69de48b3f24e4dbfa11b7ed11609bdf258730bd05704daaf72799d77d827e8dc7590f9cf2633a8c6b5d6c20c8db773a3f907969523a0372e0d6382406e2ff2322a0c0c48eda3902931aebcefb4bd272dd4f2d62e52eac4362bc3e11f515184e5f2b65722d2e0b2da73d324d0dfdca23807da8a6acc053ec2d998e64104278b6038aaa324a1f101853e967f4e3bc725d597fbfacf4a8cf7fbbe852000001050000000100faf3ab9add1138448e4ec3129cb52f7e6fe20d1c76ad9cd276e2f57b6a75432c1300c39a353439365db3a7fc79012e7761b624c4e5c6bf1b438b04fb6cc4fd74893a391145cc9d5f74eda5ce89c2d96cf6be441797a0758105fde0714001447147ff00a71ccfcb1bae25afec0ba2d1d8175c7a57320deca9f5103556922a1e3b33c9c928b220c89c48d1e5d57cbb5c99d17e54c0346be602a078b3b97e6c58f5d03ac54439acf34cd7d1dd5fe9ff74cc024c1c2e95ca4790abd8c89287498e8d1bb71a6553f54b990a0c1eef9ba1d84b53b17d08c95a215ef2861e7cc0e2fa312406579a89f583deb8833a5fab3056b32e10fa1fe5b28b1b7c0f1d57367e7816db7d28664da14468e2707a2cd402dd910000000000079a11000000000040540459e2c62727a3f1aa3267ddb216a544a2064535be5ebd0a062d409669f44deb69f8ff02800d8973f2e31c00326dc252c272438ad1e96e2215023085995eee020020e688853924e818c4617d4da320dc9c863b229b2ce0c0cec9a02308e4488b1e61000001bc196eb8d0b638e3812bbc720a9ef0d5eaf1bd06ed9364007a43acf15c65d76fade30c3d227e276cc7018b1e85422bc96bb35a87213d7cab8b595fa3eb7da18b3f124a929f8f4d053b1a402a24169ff380ceb04db6c53d028cee0d04f1e0428da7678b3f279645d481815418dd191b1ba00a3850664fbd3bc984fc2aab479bc09dd48c29eaf97dbbf312d39a7dff669a4ffd89074d370751f693d803cd2303cef020508c44662a83531c73eca28d8aa46a637bd0670b5e7265636ae4a02f97db446d1bad273fce1084076876afce40795ca5933c8ce43af5d618a6c41e73c9d5e0df15e92a84029cdff6a168d7cd590e97182033c48fb54205a598fa28b4a6d0205099bd7521fd36eb201cee1c684c2c3ad7a7add76db59c67f6f8bcfa11b9f7b6fe8e25d696b91726fea10552cd6dcbe91f34eaa7a96c55760ec503b7176e23feb4b82ebcab7e4165028ba610896552f7d86aa62710bcecfe22cc57dbd8e3e7175be8c1d4a2444b2b4a5b8ec4dcf3a9c60a02fc2488d81dc171aef65b80c0be42679618264c95e463308127ddafdb020793716be3ede58ed2073ae98d25a4bcda0f138b5c6e60e37cb1f650dc71b351a88b50bfe73ec1cd9c738f252b0000010500000001007c0d103ef31655fcf39b8d7e829410d078aea3c11f100a1b4df62bf50c07103863a394a6bc77d4a50b8e980e042d9d293ee31056392dbf7d13e6fdad5b79b6b75500c14d0934af178d61fa3b0132cfd41854ab69d7505a95de257a801e6e5f6deb6013cbe3115531d22fe93f2bc7870d2918462022fdd62f2fa6fb7f1113a3d3193eaeb3f66bf2fa91fc8c45d29320cc3afd5010b99db55dce61301ff2a506764d6f1f160afa198338567e33ba8eeed6e227b401c8ea70b312bd7fbf89249606dd8dc6ef0e6452ebbc925531c276689a74d956bc786693806d604dece9c8edc9540459e2c62727a3f1aa3267ddb216a544a2064535be5ebd0a062d409669f44ddc9b54ea1cb5110ada54ed9bb9d32ef90000000000079a11000000000040436f73faa7ea753d6a197a5b05fb03071ead243b1e9c9240d56af7a6be2c9e17516969201cba173bf057618436fae03e5d67f7b857bf4019c69a16e4f39d4a29020020be41399b492f26811308ac20b39ebc9d7f22489c0b37eda1f06139f6235a184c000001bcdad30bc7be2d27ec9542ee2a1ae52d93ed34f02aa3e545c92127a3463590cedadd4e5154a7a9a1f024837fe5a41562303c44929ee39af86c9a5cd09982cf7ad24dd96ae0775a3ffd1ff63a78ce3df5af1254a9242792bafcfd1fba6e0ab90bfd416f9e850c0c7ae246f508437d399400fec6da90e38676763406af3c54ec2040b7059277cbb559f93082be56b778c6d9c29233be0229cf1c5f47158487801562dfef389298a812946a7d52309aa38504aff5a4d424af38132cec753450274b3b305f62a816562a3b739db60c4ce239f3abccd90c20d4d6765850250deb3249fd78b945e8e798308ae1314e5ac53c4f8d2868f34728ecddd4f06a45fec99c9975e33cfdb9ed9f965b4cdc5fab74cc09190ff53d918598d29e7b6e637ff1f80eb9e3017744b0404bbbfc8b0145174a02fc889bb153486a192f924aa6187a710b9111cf324205b1d53d167099d7d3e9408de199f38dee62c547c4a9a4d1516c9d1a06f4e54b5d8538fb85cd1b92599023e1c0600fdc5b16530fe1e36926bd12454f96616e2274d62017454c227f53d54847aa4b3121433ff8690f719ef134664e77a37ad57e3526391824c19fc3377fe924d8d72806e15cb44b097a15f7000001050000000100659e0750d6dbb868d146816f1adf36d287f85cac5826a32eecc3eb2aecab751df83d70e4b9494b99ae887cc600a6017869544a741937c27a6a67289c73b3172a61c75022708e9e004c082f87a4d0137fe1c765d8aa042d23401da7d55c381dc8045783c72cc244f2f60f69ee385953df4dfb52a38a52453c8407ec1c0a26eb1dcf68ce77e66f286d98e1811a4dc5493c3ef407a3cfc06ba34bf78b188993debff8323c70cf8c0d8636973c4ece1f1ab5dfca2820e1b18bba252ec4fea34b2579c7f7397248bf98cc2624d98167478021bb6d1ee10cc02ecb9b4f045066a86161436f73faa7ea753d6a197a5b05fb03071ead243b1e9c9240d56af7a6be2c9e17e04165ab3dfb9c521f9b579af5f90c2d0000000000079a11000000000040607aedb9541de6403764fba41cab5f5a179bd76da20d7048b368d834290dd749aaa37221cabec0a032f2322f54095d96c952baa43855aba51c3b5457f1b5a21f020020ba2fc2c6c6479fc61b2df6e049edfc1bac11b73c942236b86a34c085f4b60d0e000001bc9fbdbeb31005e11f64b9340fcb94af29b026e9cc8444c76a8c8a1df10b493886ce7e7582522faf0ecc9447c766ff76cf5f2f3eb6ca315ce7fdff44b74a16cad91479dc66915c6e732412c07563a0c01a65dedac976bc4007d690a442db771cabdb286cf047f63a974c6f978c805c4c1076de51ee2bcbed21a5316b44e6783d750d080a5d56465b690cd498de5ac49beb3576daa6a2b6e08eb5f18633a3760f764dde625954a6f0454b3e0706a34e0f92cb497eb3829d7683c41d4a2dd8768a4bdfd646bf59af280682e80b4a451a4ed63c889f44b4020ab012f1d57435746e0ffd3d9f210370cf6822761e6e773ba0a620710ef4aa61f1a12184ff7905b4f78074ae9fab55893facab1e655c989f663d6d03f20ea17913a5b5e6322408622c46633bac7c41669073676711a87ec79492ec0d2639c99c9c2a524fee3ac322ac5cd0bda65de6d095f9c72f43b54e3df652f86c881e6eaa3ad095ea47081747b4542990cfef2971f201b09f050482d80263bee4349e21c4982e40da17f1ca9389a4d526e29e59fe15581d2e62949069e4c9a6d56841891d099cd62c4445822bc3de3980b79164642e41268521dd922e7837cc71a6a2d540b52f233892a9000001050000000100016614028ead39d171fab785b7c3d574849d40cfe637259b5f51eee954a36756be84db080e0fd5e4aae0f12b9b82c771676881adeeb38664a722dc9821b0d52a357dffbaabfc02b160585a399d6a9521d0c6b166b769274ae5c9c89d489e6cf445561523f3a362e86f360b528b49c6beacd98796dfd6cfa943d95a7412a8625fd9fd642541ab3e9972fca69c655dbb91fdf876ebe309c3f08ac6ef5083d506978a23e7f7226d3243b0d2cdc68f08e97abd2e27d47b23f509795847e8b67ebecb11bd517ace81d1abc02e1796fea15a4087ad4fa4e9fe72f21c79a31109f1d02d607aedb9541de6403764fba41cab5f5a179bd76da20d7048b368d834290dd749ee803408598ba0ec98c67ec83d4471c80000000000079a1200000000004013e5a1473206c1158b8fe56ea480af897c75b5f324d54049fead9bab904d63ff9225c98e93ff36606f66bba0de966f19ad1a38ae6862b7d85013add4595ea39d0200205ccaeae5284cef8eb7743ae72f2accec036bf469ccf678d4d7460a8a645f6c52000001bcf96404ddcc0dd95874d9672634d9cad2ed6a5e2ad92897c3bf24a55cc5b39c937604ef5afdcb5a5b852f4f54b3055a5ebc3646dfc0584efe21a5c0431f6b96df437a82396373c6080a908ebc332e830b901f14d442cdaa862992d581254ce30974f1342c798389ba5e17a0d5a6f5a2a6dbbe6835f3117178a0512e5b686545b8746415043894efa7a5e8b2871e93ea75c7a1145d32e10401269b884a9d9a40112786962e61737a4c15ee1e616177ecefc84f64ea047574f09a30bfb6ed1e19b3aa2ad4ad86da4af30cec7f59b7d175e3dd9140d7a19048c116d5e1402921c18ed67f52bac0b7b5998b784826318887d2284d19fc1521c89199179b69f14a2d09faa952bff92e17346006e25cc465d0da2ba2477f76efd9c72e4609263e52adaf0f07e032f0274ed870391b3430dc4211c5834465d077059705965795c614e167fbe1f7b679f48a37dda7e432fe111d911c3a727d9295da27f9c4fbb2c2298d9c38006be7c0eff76ff99cadef2ab080d1412591b1a244c7d41fe948995e5288385eb5355aba08061b8b984b9345e349ba4b31c5fca213d80ed9a6f6fb53852eaa3d6a314a6309c3c0859a457cf7be25d7722199963b2252524580f8d5000001050000000100e2104d25631e138d210535d1e6cc68e111fed1b1bc8436c663a1ce35eafb0c2c6a8daa619952b83e90a22e64b08a528cd76816f003578a933dd33a2f45fbfd76566090b61bed85c276d802aaf189bc84c68b90e72c8d8e0dcf73ec081b7cf1671cbbd151cf13fd16595f831f1b006b630d62099fd8bf3d3cf399bad28e8f7e3474d984b50c74fe4cbd9b9323c23b1f9a87d0e0b75582a34347d83dfe0783be84158953ebf27879b667f15bbccf467948e1c01c73c965a5be0949ea73283d8e0952e0f5e6404b590e658c88164b44cc6190cbf9807beea0f3ed763de2b1e9299a13e5a1473206c1158b8fe56ea480af897c75b5f324d54049fead9bab904d63fff48dcaf73ddb58091658bd37f941ad640000000000079a1100000000004047fdb0b6635b4c81cdd25d0bfd64c18fbac81a7c0ed63e8f18a2707e570ff2967f5a907d47ea6df50afadc9103fed9643f79393b0015cdd4c46e0770a34abbe60200206143a0d4eb6b47f7ae0dd1bcb0fb4aad54c576b2b5aa26a287208150d004fb22000001bcd4c6e1414de8595837af94e889052876a129f81fd8ef29f5ee7a2bf75527df454c61fc837f413e10e08216f39a997d73a8d0b0598a4c4c253ad72445e2349659628d08be52da578fa726629fc79467c345c65a882d5d4db0db9ef985364b9fb76bb9f3b2e233edb1a6483d736c2613f7ec0418e3f0f92cc90985646467c865bc664408623b4a09264c981502c5a86dee94d84f538072d5ef6b1ba6986698fef7bd314b8761e4ce0cc10ec6929fdf6658701259375eae282a41fa0d0c8c9b6e243f5543e1cb0a3191af375392f9d259091b963b4795ada8c5ac6b1434144e1d79db3d4c7090ca2babf4b08c0a3255ffbfd0d4ffeaaf41d0b98b131ab19057ea503a597937800d23ef8680a4ca87f3b129fcd061d49cc351e686b59c7c46da6411619c46e63d79995efb4810bb15294759bb19603c68d5d06ec58bce961b5aa3f9e056a13f1df586aac0c5ca5b68d38038c9b46c0c1b01fa1ccd6f383b43c99fa52044ae7bfe9adc8259506e53832c3cdbcea2aaa6922a1b1ab403082fdcdf385587cfdfdec3e64eaaf2a2fbbda2984d51253852a714a4235b957552a6996298d7c6715a0605a10f9b1dc7d20b642d1726f2047b5cf46605d57d8941c4000001050000000100b51ed8bc8b8d3bda1252da50806e0c219dcca6ad4fc5e814098ff20c3c267ee98e5601c0d3fc6ec1acdf6cbd9941db286e5fe34b17b7880adb415a02f8dc3e0a20bab1d12c8306e0377e77cbea4d22c0c04a5d8292cc37e0b3e2026d653c5a46296828dc61d2b6705bb99331da7b7fd40ac338238c176e8268797a9846891c3d89b6503d2566ade20e649478caa567968ba9c33217717e6cda8170737e15e6ec28dc7cf3720873458aa303d98147aa05e161dfaf6a7bb3a98938d68fd5b33dd008efb0c9a6dcc972979ede66be763804a31ef011175c7059d8161ab13a537a2847fdb0b6635b4c81cdd25d0bfd64c18fbac81a7c0ed63e8f18a2707e570ff296fb1d846a5a82d98e127655f9833a9e580000000000079a110000000000401c446f4a7af49cd9aab724ca3d0ff48a94fb243380021a4b7edfa6cb75f2f936eff61542e3e93540936c918f78e74cd32e92ec83d718574794ce2c7fe359dafd020020391acef6079a8c0ce3fa1052d4bf923964b1fdb27a021f512cc5d4255da7b048000001bc5247e7d5f47a27a6f476e8d16da649745d50d31bfcac5b537db5e2c20ba5d6475638c6a1b2fafcdd21e483ca63d1c2d53da56c4e8ab4ffec66730e15c012b92a5c441b050604ee02565028fed8c76d73e8b8d4ccbccbb86c8dfe0ea9e4b17abf95c110bb93799eff110732fb0555d2b75ea44a1b10e6521f1d394a6d0231259d3af235111f8de073b706d195a8150d27b6997f1f75e11c8949f23164249bad6c18b503e1f72060aecf374cfe0e41b3aa26979e2e3ae9c817c15bc40368ccff7144cffb0cc7fc30a42de05e5b67e790702a00ef3576331487b8d791847bd010c9eea522d32192ab55971ad5aaff3a8e02ea8de698f6a06b27d9b8fa1b2517af492c6df768a62115426ce6e54bebd4b2cbbf963e5348871efa820be0e297d14bf8c5942f899023c45282c8fa11837c87a8e7a68c92fe58c7f6f9985ea00932ce95c1101179e77efbe5bff2ddfb18fbfaa7189c6662cb81a98f509daec26e34f25cdc8fec194270cc6654488d8f5d3bf6f3f6a17479c7e369c9eff25b581fbd37cf1cb22c47895d205bf2efe72177f522b22345c36e5304028a35dd896731bfbfd332b9f68aaa544a8500e319fc3fada34ad9d7138cb3e489f1a75e0faa0000010500000001009eeef8b4aa3e5b262dca0ea4cfbd73171b8afeefe56756e1918054a23a90bf517f4be3d77056305b9930f51d3433e95ab8127670b35537d85085cb7962e0988dc6ac925338f8a647766470cf1bcd8f1ae3cc76b222f52e90dc329b7af45f05497ad11324d970d750930c01d7d3d4314df535c0abb182f8cca8f512fdb1e418c85e65c1a5b6a2785f9f4fb4299ce411ed2ef7a4e05b597e9d0495e4f565acd4df311874ff4fc978e2591311623b8557ba941c34ceb31f319463b56fe84d016c22a42e6fa1b54dde176cab951d90737c1e417569eba86438cd0f2cd640fcea1e821c446f4a7af49cd9aab724ca3d0ff48a94fb243380021a4b7edfa6cb75f2f936fd5669008eb774b8e610c9c4f8793eec0000000000079a12000000000040f9de13eac2e247e629b0d269fad9b6c9764181de51e73f7ec6d530b0e7c4840bcbb92ede7188888a4c413f3154ad72bece893993eecd7b19fa4117233461cb84020020b38f872674b6d8865a2efa48c879df94e6355ddb12fbcb80384234663b07b978000001bce26bdcd1f675fbd84712baf10331953b6a8d455e6fafaf81c2d96c25e89635104e3649035df535802fbab0efe850596cd4a605fddb9997127e69ea827d472bdadf1157be8c362f0e2b1cc2f7294a56145a8e92e69d1ad354b384c8755164e7a4c498d5667f5c813fd66ed626106171228cfd20214842d9b8b64aa0c184185c0860f1951d6741de12c1fb53fa36a7e98e8ae1d542c4191d83b6d4f475b9d99c4a29779f8d3163eb45d994165e6d6a5cad8abacee30da17a8e7eb9591518c816ccc3c7879f36ffc3d99d00d600feb5441578f343431fe29570a9e11905ec957be50985fd70dac9c708fd2579769134973d9d40fb49185b7699da6979ac80abe93280bbec4786cb3dc0f2b13a6abdb22e2ec52953ef145bb568c5750768a9558e38b2c14ce602a72d149accba05ceb58d47958d19d484a99f3c73e6c1c8937de0d8da9c4f16aa01325e4f58182a06606610b084b57e12ae01fbe3f2608ed436b88e4b2b24bde00deeb9d515a40d297355845b6973d0ba9be3c41cb8af718313d2bd76cdad9aabe1c6aa8437fdfa3a50fb5ed4bd0d0fcdcde12537dacb1c672eaf4970e76b69f62d0914ff9b8e5a2e510d69d752c0ab2d6a41c1d83840bc000001050000000100d9e76fbbd06ba6e507699552334677d7effdba62741a483a6c8c5337e428514a5cbc9a26da9e966b2f93a3872dfa1f1140c2eb0b0f6f1b020c96e80a0d4aa80cd7c87a37c0768c77349479d218ff52c8b05fbf84c5e79e3265e85568fbdba914e95b3d27b17526a64952ac3f569a5d727b1a5a470edd68130dae27d5779dede87ed9a2fcd7deda68e02da8354b25631f3813f05e43fcd7c3783a4884cd9de0a51598afc67eb6a8551882892155a78404df114e1430e4982c0e81d5e62f8ac601753469363882b83ce3b028c5454f3beed8d152c70e1fbca2a63720e633f18bcef9de13eac2e247e629b0d269fad9b6c9764181de51e73f7ec6d530b0e7c4840bfd9d683db6b837482ef5280a47c740090000000000079a1100000000004036098df74d316899430072716cde261d995e78d986b39689b39e765a5b0ff64ce8e56034bd7bbaf7667595b3f770365c98d8e94ba0488a3d9db9374db747c70302002086c9034ed1122c4249e00d59dbc3a24fff0e4ca217cfd83e75c0e12ed40ccd31000001bc0699ccc64cc86f9e03b3ba41e32ba98205a70072e3dc90704d722ec87883badfe6078fe081345f51dc486038552abd538fddd1c14c016dd8f4a1a301ebb9ee232bca18bb2f6706ada83d3b9e493029a2b0ff3b72d6b74a92290b1420041a4c55754ebcb13be131c40889ba19f332c81be136537a0ab56f911f1ea1687f80e5dfb33299d41a3f8797bddf91d251c58f942f53e856ce75262763b3726cb6104af6c398366f586e52534010ffffbff16a37c2635bfc162d32d9a28f85ce90ce9edbc391f35d503d3cfdb0e9ba59ac0cb2b303f98a93b4feffc2995eafea99d8bb7e6f4bf6c2d3cfb6becb9d7c88300a203c86f5133ea5642ada7959c946660dbb6c1ea2600a6eea7690382b7a6ec5cc36840f005ae746de9e2d844bfd761851bdffa3ae88202684422d2e044bb1e499b6de6bacfe6157c239d1c0f7ec55d0fcac7c6aebf6f7f3aaada148a5705db6fe12059bd85a9b3b1ca4901bd56078873886bd6cdd39baf37ef74b130ee1620f792c9d1c36d7249368dbf3dd72fc35e36a57ca4cd4e16e84192a9d773c1cf4e3b9ca4892f0233bb6be8b692698376ad8c5d02a998af06fb59b2b299cea68492b6de8c4c63b83a0ab221e6664fbcb1c0000010500000001005775c2a43aa77d16833ab5fc0fa3b3daafbd99f5e9eb084a6cbeae55c1e53fc67901caedfd3d1880a78728bdda6f0c5d7fadffd17d9eb30eb74f054a80731a4f0a1255581e142c6d2dbb1f91862fb3bc053c5d32c6a57f74ed0879fac51730331c99df86770845c3b46769877ad1d155d5d808341b0c1f246cff644627b3a8072486563c7b29feef3136716aaace376540eddd93df7edb5de1affca9b889d2657f12e0fde5e9761b64e81eba104909b8236bb7568110e73e50dc88362be19a760904d933843e49c846df61c2a0b74f50e8752dd6c7c80e5760fd66b2470e2f5536098df74d316899430072716cde261d995e78d986b39689b39e765a5b0ff64cffeab86a552eca45633c8c36834c5fa40000000000079a11000000000040cae7511037cac89085f731e795835d15f42d5ab1bd281fc233770d6360ea23f62a4796c27dfcf0947ade09910bc0fa90d9b6e2f84d2b5118516f8c0b97d5d01f0200209c77ebdaea95858e14bf157e4be5630ad8189413d253923340f02541c543bf01000001bc5edbc57344427d65dca806461fe882b45b8cef9fe203a2abf5f79ea4ae2217e9da35aff196f0454258ff0826312947beb005c7df373d70787106d988264b7a7dab06285dda1d226b788f0254b3b347a9bbb961062fdf8ef876220a20082e55b04442b6ead8f9475659911f1127bbbd47f4d2929d76f27bff4a363a03ef47d313d5ac9c40b7f189d8c81a7d56869c4ccee5c88bb0ae9f463fdfd0745ea81b610b93a8fe41331da1b1b7eb4ecb54c5985e2f13f1a9a1d7387f5ef57be65eef644ee44654489e9b1b8caf4b7396dbfb129849bfce26c2f4fa9ffe658262ff2cafbcfc64073cbded158544ed771a09ffc115c503b3cd7fb18ed7c8bb3322b24970aca7f04f9062772be54c52a359a4b5254953e6b3d122e7a4dea45ebecc0582db3bca0348bc5573c686d25e34a54e0b0e66dbb36eb5820aa62b1b0903014b3b5b5ce1a4d66f39295344b5a8616e6ae6bd8f076c699b12ac154d559971d44e9b647b9b4400470195db35e3b501491d222089c1d3f0804b4cc7b0f7e0855060d4d33b931850be666c348c5501b500f565180d38365206c425c049922e91b771074142650cd748e95155ab4f1eb55b9baf3511cb35acdc0c78b52997a662580000010500000001003b062f0ac599f738508ff029c4a7e757e5bb4c5e0f603968d5411a2eb030d516b17a032fa597b3c72d1aa7b5aa4907ab3d105794617dda709f5749ac01c826d992b0f72e93eb79ae7a6758f352a025d2337dd403013e8f672838fd679e585e390046601177ff4cdb8f15c3662731343ac3b2c07e0b53e54b0ad48bb86f04890372739158d4a7ffbca82ac4517907dc72af4b4d7872b2cf26a99311b2cf214af97d0b7c3e07c8d483e4438cf5a826e8303507354a396b0038a995560e0cda1597f805158dbc2c0282dbf232252e820168b8c1cace1114df81f977a4b703655dcccae7511037cac89085f731e795835d15f42d5ab1bd281fc233770d6360ea23f6", + "resp": "008e049892ccb5ce441c1aa0efd56ec1000000002502000000207914dd89ac03b15f48c81018ccfae63ce540f54e838343351e945411f2d0f8330475fad4ec8497c8885b23701cb0ba3b0000000025020000002095913fedfe7307c080616ddfeda05778264c6af92f82e4df4574c8fe38a618500602b32ef091d0bff7e2a8b8dbb988a800000000250200000020595b5f6223bcd9341973af18a2b38b6af88e1c66cb6217e14dd7d0c8b35178630b16b7875d18ed1959b7831e47ed013400000000250200000020724274e1aabac69e307a83022722a7da76f1b178d0bc46d69e1c80f0d0b840af15be857c0cec192b7ddfbd7390f3a34c00000000250200000020d10152e09ca56528ce1e8b6b1e8b3e7252499f7f33a670cea8962ca147ed75e41dd2f10d61e4f087a6903ca1ee3fb42300000000250200000020d146535b8fb958ce20dbaad4bfc805ec8c420f250744779d1fc2f3004f98e17a2285cd738aa103fd0f436bbdb178e06200000000250200000020d64765d5b8b6d0b520204ae4e8d89c801b2a61a13ea4b40e48bbd3dfb63a37142695c7b35982c5f405a0543726c96d110000000025020000002085e88d498bc87c6d39097ea78859362b0e147bb367dfd253d0c345ebc1acc95e2a00e325e01718dcfa98c4a32a4d979c00000000250200000020af49a08b9e4aca19129892811e0e7bd37667b0c944df6a10497e3482d66941a42b02579109bcb8ee310fd7ed4ce4efd7000000002502000000202da9fd0f03c65c6436e8317c9f903941f701e15d81d098a6a5957a697c3e518d2e04bc1ee17ec84ab13c51abfc73905300000000250200000020a754666439be56b8df677a121602ca03ee1a038d5a4061cd0ff8726a859d807041486422bcaaf25371397e18c0228d87000000002502000000206a5e3f5bc59d224c5497bed82805b614efeb5168b9c7aa0b7bd3f95633ecc05b442561d17b3345c45b0876bb177599320000000025020000002015a57a93c780d06d316180661120a6d0f65e82520e633b4039f8dea134d9e3f548eeb17409ca5651b935a41686cb952b000000002502000000203a853eba397d886433436de1f0d14809f6ae81bd2774eded4ac05eeccda0946f49cefbb8017d08f41a1ac201f58eb7d300000000250200000020d34b01bb2141068a0db7450f6afb02ce2af43890c1b550d49c4ad4d648d150e14aeeee3730c210006a507d139627856e00000000250200000020e34799db09027cb127d53bfeabcd344a67fceb02205750e8a17217a570c3dd2d551aeaa6a1ae7af3a777e22912f9270b00000000250200000020da28d606ffc9de502d0dda3ddb8cd466f0608fe00cc5171e0a0885c6eaca964055afcf781030f566fe6a604cf04a2a160000000025020000002021c07684dd2a6838f58b0aaf3793e51ac77348cb119472853c634d428c01226a58a83dab1f394396f3c00f72e8f5cd670000000025020000002030fc0f7324ffa654b8b45fd35b40d4dc4dad0f5b4837f08172a367772fd5077259e41d3ec7c6e9b7230de8a02b406d6800000000250200000020b27d7b5be831fce3f878fcc4838dc4b0ffb5f795b919fbce937427b7f829dca45d398c614828073c00a94d0d012aac9000000000250200000020e083eec8703a61b47b9ec25b6c29425a11e82db5b507c83292064efa86f1a2336c4ab6eb6674f4dca35182b19afe269900000000250200000020ac3176dc984a9382b3ea55ebf380763b3475d75b84b2a2c67a312ff3bed6a3d4749ed4be3dc6971bbfaed0a8897ce70800000000250200000020a136dc9ebacd1045b61fd9d3c23139a1cc81bde788ffde9110251a98f57d5b6578cee9345bcd8c6fbdb891eeb9a4184000000000250200000020e3936cc24ff441b52eab8408e5af25740f4f16e9876ccf4c51d0139e8c9c1c4f798a380791943b3866b0622f9d6f5c2100000000250200000020bd84dc01d7bc8afdde46571e878aa85938790fa8dde956ff6c9455ae5cc4629f874ac36121c119209d894e460e86fa16000000002502000000202efe8865e37fc1445e59c428a276d317e7bc9aba415d533caa715e4d7bd8ebb38b222a0de72fc00f3aed8b6a4f1e66ff00000000250200000020917dd4a321e1d654c8715aafadd46b9df5e6d76cc78cc3abee7e0ff54f3ce43c8b4d71fc18475112d0207815e6a41f550000000025020000002038a5ad8f6d22f3fe3bb2c860159950bfb22a0c8acf6cabf04c9eb89919abdb29a7b90e4f3d4447232053a3b6beee084f000000002502000000209b18fa2071d78c6cc6ecb7bfb1eebe93cf7cf2e6b3ecbb0111cdc066c512c4dcabef3a28f4fecfb1cb5337029c57a51e0000000025020000002045a3b2b58470f14d50cc2d92dea21f0ac678d5d5ebc7de3fa3fa68eaea37fa20bb165e6e2f0d9ed07d6bd2837c00b23d0000000025020000002011b1fff991ed1551b457858ee7d54e563786c2fbdfc02945319e48a08a075ae2c10b2494e6849c1f87b2e267948eeea500000000250200000020da8e8999b405d6614f5ab5d77d6b2ea9003fa6abe6b0c6723baf012f33b9f771c1791260f6cc2befee9bc08645dde02f000000002502000000205ef9057e9c76bc173be54d4205baa44c7ef6f823aa52d05d6ec128f99e57754ecaf9991dc84400e421521f20d9a8abc70000000025020000002082aab30112180d1a6990dc378276dbcbc50c936043c98ea6678202b162387decd7b689186f6cb707c5da5efd60b7abd7000000002502000000207ba3c06e79812efa8012578f53823288ce19d7c76468a3f92e9e8b2b3ab2a625e1ddf58cc18310c73db68a03bc67eb4c00000000250200000020dd5b8bfb05183b2e6beee1176cd69c0a4c737b40e0cbe3d5079ea2494772f039e6a7106f28aef5eaa4509031a6f4610e00000000250200000020769987694fe05ff10b1eb59ce8c8eebfa2a178179b0e53bf4cd41f67306595feee0e981b6b2707665b7cdb9060606bff000000002502000000201ef7203955ff0fc614dd8354af27b05a9d52e9f412a1c0b0aeb719c49e1d5e5df752f0fc8a6395e445b8107dcaa28891000000002502000000206ffb051d63180adf3e32b5c3bc97c9e06c3a589e0910dc9791560c540c9ad2e6fd771d93e5d58e5f3676c3e132165ca300000000250200000020a463b6f901f16eb4268ec2e36e57dd7a3c05bee140559efd82acc29a59e5df990cb7c505c54ca02e0531d32a7ebc25a900000000250200000020b089f21799a104f7e0aa463040f84811b60b10b97b02f2f39c5a87d04984bb0c0e90351d3841ce4b16d9a6fefd5d19ce000000002502000000206516a36b3106db6b3f37e2b1d699c7a89faf286f4b0c64e7afdadb160aa3f0de2c7455ed08dea7ed0bcbe69d40ff58ba0000000025020000002092e4ba7f89126bad0852670bbd4d83e50b5fb57ef289db6092b7fab03c78ab195e16de78b3a2747e88cc8bbdb0608abd02076db86365e3f909abcf7ca02fac9cd77400000000250200000020566c87af5efd82212396fec1bfe3bab850fd8b06d92ddcfc3c7236b7c767904b8aa7b5077d679105ff798397fcbfddf100000000250200000020e75cebacf91079307d6c6b7188a2eff44710967098507ce69c7f65c76a7a23589d4a609c7383de90ec57056cda27c6af00000000250200000020c0e1348b0bad6e14e5c7c76e8306f43634c9ae3ce9f51a1527082d00a4f6bd899ef49e6a99f30a30ea01b76ff2f8f8080000000025020000002054c9284e41009bb6958cb2e373a6e62be3d7a8074632d4fe125074cd779d4377c4020858d90f9eb26cfd79014923b14d00000000250200000020a066f4a8a087ae667ed02ac35cd91ad22e6fb90131362c3411d7f02d03b14639d4b8124946f1a3aa8e9267b19b1bf2f2000000002502000000203e8b35639d7a17b75b6ac820d2ed5adb95b33669aff27b8a7af42dc0d710f8cdfcf2ec0927962c5be8f5bbea764abf6100000000250200000020e94f3c011983b62ad55b78d78cc34c22a15b843f8d719430b87e0aba678135e5980a4f2af627fc9a09dae8b57da4c7c30205e8e2b842794101729bdbcea1257d37cc0206018ce3d4c29c59501069455f10144e6000000000250200000020096dfb7593ec1c0a1c9da34ca17abec2905087f48449060f8817e81a789b4ce202ac8210891e152d62c2673cb051f348000000002502000000202bc9e71afb602f7bcac6fdf467ade4194843f6daf2d55165064e9107f3db7c050a257ff2431574ab1a615c00d74eadc4000000002502000000206025a433167c169e4784e73af332f5eedacaf8bbe8737b41abdd6f7f6447e76f11d99c18dd9a0c505f13379e4c1ea37f000000002502000000201409735f340c4cb469f49ee94836f0d526647c5c08b83c97d18727993c78b7482282e6a949bd8ea3a8d0777faa9c3cc300000000250200000020030530dc4343f202ff11b2002607d70de518db3c1f34db0f1da11109665532912642b5ef328ccbcb4158e53c9ba201aa000000002502000000203c3b6c6fd7d0cb30f488408f4574da378d659f6ddc3412698a45c724052f5f6f291177eefccf35c5fe6ad8ac24d827f800000000250200000020ead4f45266ba19e96a028f5a4feb062f19719522cc21a2d53f3eabda6464f2762c51eedf639de31fecaae7df9890cdc70000000025020000002066c747506ec9fc83d47ff0188ea0559777538648424f1193ff54b9d1bc2dc17d2cf06ea0858f3b84c2f1b6cef9eb379e00000000250200000020c9eab8857a4f43304f88e7cea66e707d6aade7b9153de89ea16a655d8819e1cd2ff25df49a3b6cbe82cec68296d5c310000000002502000000203ef2944cbe2a93ca0009e561213a78603720cad340d23f9c1b4d220f84aba04631935f45506e43228ff567f8846379ca00000000250200000020306252386e6c730b8094cd4eb50617cfdba7b37a61fb981b3477644a573e30293276590b43be46973df2da6cfbbd6ad7000000002502000000207dc647d2dc7fe5cd250db3a545a0e9a252a90cd3c504507e66e6932805dd96b73d84b8e38ce9861ed97804affba3e1620000000025020000002099354f710c6abb0d8f18d8094aca053cb6a30db269ac509a57d5376a9825c1ad3e811398082723e0ecefdf35ba31ffbc000000002502000000206e752a9761f7bf878b18c89eb2b8665ee35ebf22e7a3de3da17a1f0dab8bac304183ab0f65080b969c0cae44e8e31383000000002502000000208028fdfaa64b106ca55aca256846ed755395a4f3aed5875f2453377c6c45819646e33bd52e70c0cad080aab093dc46cb00000000250200000020762b8bbf42a8bb401a55cab00128e7458f8a30755ac9100270e350b61bd8ca4a494c017f6572a53d13a069c32179bb7d000000002502000000209e328fce01feeba2a08abaf199936429bef41a1fe029611d6c76e477ff9a9af95fb48f992ada397f2acac6a2cd587f5f00000000250200000020d526046ed0c2a2d8e9ad39a9822a73060130e989da1f0330c848467dfc4e26996138a2d1720bf553cc215cbc2f153d56000000002502000000204b012fdf34b9fc6102d48c7097074f7436e6fdb0114e98ad36332bbe2403ce3c6ac5f45efc2aebaada41881b5e978eb700000000250200000020d3e25ac80f05829f4800ed9fd82086da6d3b8bc27c3063c8c09acb127e97ab586fce5d51df9eddb1ad0c5c81ebd03de600000000250200000020c3a42f8efd3aaf6144f6a112e005c8a2d172bad43d0de61f7fb1218bf837272b7526b0f91818006ae914e27ef5a2798300000000250200000020ad667c19ca21682fc175f7958490b17ad4120c49e4f7b934b8743ac43289f0a47b26e5f8998d87df4be0063272f9a4b80000000025020000002091ec6ddf174416303b8a8578de11d579f1d085bf986e2b8886f9d1e5e96d26fa7d9b51b49c6320c54730b8896dbe7f2a00000000250200000020f611249ac93484f9fd700b5e614e4604fa0044397913c4967eb17ce0666f26f48414418d02f95ea3aecb74067a9ed3840000000025020000002088fdb360a391fc111311372a9820143b76117ab1a3b3d32f2a806f3e6b052f42857be43a3b7c03d72eb3b735cd3ef7af0000000025020000002044c9e84c54bd6ce5812d69a6463524a34da640f589963bc60fde1280a0aad689887dddfa841b3e870db8d51a190cf19b00000000250200000020a78d09c35021b155c3affc98cef4a60b4a54aa76a9a2d63697bc06b488976cfd92333fddeeab6da144526bbe30e5d15200000000250200000020399e101610c90d27ca4c4452b129f9c685347fba4e0b8c2254ce1a86ff5c7b8697409d8a09b3334f9a836aa28435d9cb000000002502000000200fe2f19e0275c42030e76301bc8ca4e670120a2014ce42c9f18ed92b4c46f90b9d8925750bb5300d2fde50e6eb86c43000000000250200000020423c4a474498ae97330c8cffecfd574ad121c998726b97f7f8ea57091f0230aaa0f799425b823f0182363610d184dfa5000000002502000000201f1de1efe9ac815fed97ae5d8d319395d81a5a18f2078670a172b8dbc049ba9ea9344064cb5aa16a380e784b3e99a3e3000000002502000000201b9e14261c9b79d2c105b192517825ab5c9f823096b6e8eec60c466387c422c4ac1ae1a720716eca8212f0286087ca6f0000000025020000002039b9248b7ca9d3305e36f5207cc8d62597b290ccd0733651806768c2f1c03011ae69e512a4476acd5ad2cc7d22fd6a1d00000000250200000020af196ca75a2c3e95f63b7c2717ce0dcd53e8da11e6eb3f875b1f5580abe23220af1144365165c6528693e1cef65cd698000000002502000000209870b8d3ba6d9c70ac25ea5d5410903f81ebb107c6993cb43a89543b06387185b40d934aa97390015d10cede33459c0d0000000025020000002058951ac0e958a0a75c554545c27ed91d44d520c44bc10d6b1713fabfb31ee221b4dacf5d81f57d9c8e34bdbcd78f946e00000000250200000020bfdf154ad16c146c0de11e4283befe03f90ef964786d72352f237de89929c26dbecf6beeb5cca1f27c2c231f9210d98600000000250200000020758eee309e6a1dbdbf2b3474fb12a1f6a5f4966c6e6ce7939063a17e899336d0c26fa81954b496e01eb8b2b6d82cd34e00000000250200000020107ab6fb1e2b31d1bcbdb8cc212b0614fc56f25251afb446a5fee927cc780b3dc365d985dac103650b1b2f4e65d5409c0000000025020000002098eb193d36e7b9b2f1a69faed1ff551d594ad95c6addc9f25edc41d483a0cab2d93709372219ac824454d2ecea1acb9f0000000025020000002026c26f0e8a1332fcb2a517326cd2f5586280c02dd55c92a43a6063255629acd4db7d28664da14468e2707a2cd402dd9100000000250200000020fe745e15a8f5165aa4783384f0873b5cd76015d4ee5f1df43bc5ef05c828a11ddc9b54ea1cb5110ada54ed9bb9d32ef900000000250200000020e4afd5de5a08885daa8a675c4ab94814fe65e65520e552088782cee0eea7e26be04165ab3dfb9c521f9b579af5f90c2d00000000250200000020d1dcef106aa7f47d42409194d2adfb6e7189169e8bb1dc058d667aadea3f09adee803408598ba0ec98c67ec83d4471c80000000025020000002011c897d81ce2256b7afd0b02b9b9893bbb2689feeec55ecb7e7d45b11223d736f48dcaf73ddb58091658bd37f941ad64000000002502000000202c208e6736eef4e57ed25fef0311e656886a1086c9263791694f52fb953c1f3cfb1d846a5a82d98e127655f9833a9e580000000025020000002084fe332fc0bfc28b3915da6371ba1691a92175641c067a0bcccb0e2cf5a47d6afd5669008eb774b8e610c9c4f8793eec0000000025020000002066041dd0595748c773d762691d6113578a10ef2fcd671414a1ac83b0761a9e6bfd9d683db6b837482ef5280a47c74009000000002502000000201385b3f72cfa71646f1db6182fa6871f5e5fedefdb8e9f1d76e9be6e16655b53ffeab86a552eca45633c8c36834c5fa400000000250200000020e987f7b7d03f3d33627d7fa673c296ecb67a2a5343df8b5f19a8da6c8182c63a", + "outcomes": [ + { + "id": "178aae3f16346559e1a42e2186dd4960", + "outcome": "invalid_message", + "reason": "attestation_invalid" + }, + { + "id": "4995adfa713d664f13eee0023d5dfe3d", + "outcome": "invalid_message", + "reason": null + }, + { + "id": "ce88dea09bfef87302777082c72f060b", + "outcome": "invalid_message", + "reason": "attestation_invalid" + }, + { + "id": "d79e4c37ce0f50651bff1a48bdd6f3f2", + "outcome": "invalid_message", + "reason": "attestation_absent" + }, + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "outcome": "committed", + "reason": null + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "outcome": "committed", + "reason": null + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "outcome": "committed", + "reason": null + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "outcome": "committed", + "reason": null + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "outcome": "committed", + "reason": null + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "outcome": "committed", + "reason": null + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "outcome": "committed", + "reason": null + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "outcome": "committed", + "reason": null + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "outcome": "committed", + "reason": null + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "outcome": "committed", + "reason": null + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "outcome": "committed", + "reason": null + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "outcome": "committed", + "reason": null + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "outcome": "committed", + "reason": null + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "outcome": "committed", + "reason": null + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "outcome": "committed", + "reason": null + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "outcome": "committed", + "reason": null + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "outcome": "committed", + "reason": null + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "outcome": "committed", + "reason": null + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "outcome": "committed", + "reason": null + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "outcome": "committed", + "reason": null + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "outcome": "committed", + "reason": null + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "outcome": "committed", + "reason": null + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "outcome": "committed", + "reason": null + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "outcome": "committed", + "reason": null + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "outcome": "committed", + "reason": null + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "outcome": "committed", + "reason": null + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "outcome": "committed", + "reason": null + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "outcome": "committed", + "reason": null + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "outcome": "committed", + "reason": null + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "outcome": "committed", + "reason": null + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "outcome": "committed", + "reason": null + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "outcome": "committed", + "reason": null + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "outcome": "committed", + "reason": null + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "outcome": "committed", + "reason": null + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "outcome": "committed", + "reason": null + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "outcome": "committed", + "reason": null + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "outcome": "committed", + "reason": null + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "outcome": "committed", + "reason": null + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "outcome": "committed", + "reason": null + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "outcome": "committed", + "reason": null + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "outcome": "committed", + "reason": null + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "outcome": "committed", + "reason": null + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "outcome": "committed", + "reason": null + }, + { + "id": "5e16de78b3a2747e88cc8bbdb0608abd", + "outcome": "invalid_message", + "reason": "attestation_absent" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "outcome": "committed", + "reason": null + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "outcome": "committed", + "reason": null + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "outcome": "committed", + "reason": null + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "outcome": "committed", + "reason": null + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "outcome": "committed", + "reason": null + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "outcome": "committed", + "reason": null + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "outcome": "committed", + "reason": null + }, + { + "id": "980a4f2af627fc9a09dae8b57da4c7c3", + "outcome": "hpke_decrypt_error", + "reason": null + }, + { + "id": "e8e2b842794101729bdbcea1257d37cc", + "outcome": "vdaf_verify_error", + "reason": null + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "outcome": "committed", + "reason": null + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "outcome": "committed", + "reason": null + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "outcome": "committed", + "reason": null + }, + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "outcome": "committed", + "reason": null + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "outcome": "committed", + "reason": null + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "outcome": "committed", + "reason": null + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "outcome": "committed", + "reason": null + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "outcome": "committed", + "reason": null + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "outcome": "committed", + "reason": null + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "outcome": "committed", + "reason": null + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "outcome": "committed", + "reason": null + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "outcome": "committed", + "reason": null + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "outcome": "committed", + "reason": null + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "outcome": "committed", + "reason": null + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "outcome": "committed", + "reason": null + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "outcome": "committed", + "reason": null + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "outcome": "committed", + "reason": null + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "outcome": "committed", + "reason": null + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "outcome": "committed", + "reason": null + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "outcome": "committed", + "reason": null + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "outcome": "committed", + "reason": null + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "outcome": "committed", + "reason": null + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "outcome": "committed", + "reason": null + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "outcome": "committed", + "reason": null + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "outcome": "committed", + "reason": null + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "outcome": "committed", + "reason": null + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "outcome": "committed", + "reason": null + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "outcome": "committed", + "reason": null + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "outcome": "committed", + "reason": null + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "outcome": "committed", + "reason": null + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "outcome": "committed", + "reason": null + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "outcome": "committed", + "reason": null + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "outcome": "committed", + "reason": null + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "outcome": "committed", + "reason": null + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "outcome": "committed", + "reason": null + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "outcome": "committed", + "reason": null + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "outcome": "committed", + "reason": null + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "outcome": "committed", + "reason": null + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "outcome": "committed", + "reason": null + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "outcome": "committed", + "reason": null + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "outcome": "committed", + "reason": null + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "outcome": "committed", + "reason": null + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "outcome": "committed", + "reason": null + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "outcome": "committed", + "reason": null + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "outcome": "committed", + "reason": null + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "outcome": "committed", + "reason": null + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "outcome": "committed", + "reason": null + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "outcome": "committed", + "reason": null + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "outcome": "committed", + "reason": null + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "outcome": "committed", + "reason": null + } + ] + }, + { + "step": "collect", + "name": "collect_b0_held", + "request": "0100100000000000079a100000000000000001000000000000", + "batch": { + "start": 498192, + "duration": 1 + }, + "now_s": 1793516399, + "outcome": "processing" + }, + { + "step": "collect", + "name": "collect_b0", + "request": "0100100000000000079a100000000000000001000000000000", + "batch": { + "start": 498192, + "duration": 1 + }, + "now_s": 1793516400, + "outcome": "completed", + "share_req": "0100100000000000079a1000000000000000010000000000000100100000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3", + "helper_share": "0300203322a9f6cefd0f0ba84107f4eb27fcbc01610437c0c8a29ae09fd2f7ade62b7f000001f003bc09a8ae7b2bb7fb0ca65e6bf22fba242ce89decbacb8af87ffaf9036101278ca0a6c0c0716c18b677b7107bba83c3d0a0e737301b11eadb767f67c0758d51854ca7d36f0f1c54d900e750db18c80fe399af8450c1cc6f75a65892a9e3986f1f932ce39e96c55795b3394e1e60e57e2509ae3313afe8b9b251c80176cd20a3856350b10cb8effb72fe092f6abcb208851845a53efbf9bd8f0c3c77553753d70bce3ae1f9d831cede9aeb1380c293e496279fecbb12da02fa625bd81cb937c8291d9f6832dabfe0d3a7f9b71c680301304216a4f27decfa25c84eb03a5b50c1fbd407a266d1585117edb6c1de501530ff08ca44b6734db6730eb2f83bc22687b849849c91f2c7fec94110e348eaa5596774d09014f53e0decd211663d1194ddd10c9094c0c8148db7975e0ab72db0ad3300d3b54ab1b30c4652416d31cb1b360879008177e484da9233c069385785c7d68b13d417d170642cdcfa1c1cd0a61f94e53bd9d9208d9db6675a98d3ca88f7b8c590817ea9d8f6d89d2e9635042c5143ec2cb56073f18a162f3ce36557dc562c39d8c353dc1eb3936422b1e568b96cd337d01ce3097cb99f55e6f6ad08493dd7ad7a49c5227b7229513d1f68192cd4621c3961497fb1a3fc166a43007fe4ef8c3f2246892c7b90e1a24ba2175b002dde802a44aa8cff0f746d6d67b7e835e9", + "resp": "00000000000000320000000000079a100000000000000001030020a8d96f784a8c149cb81dee8f3d2f17646dd9276e45ac961ac0806df743307175000001f08c3ff89dbb9419ae70d086007be1774e6f7939f37bf27b3ffe31df3129f175f2160eb736b52879c4561f03f2696a946c8dc38af7d343b97112e751ffaeca9864116b0059f160103856cf08de042e997eae3a78e362e8a155da342cf1c59692eebec80f93ebb7855b2e93b8335c9452a6187d8c3667151b1ab7fc8d834c35e9e373889f4f9364c18c3e8322fcfa427b15894cee2641403ce726318cd815d499f05bc193cce23d3ca86b7cefca9688c294f292c3c173a7b018b6993f01968180aa890f238ac67846770dd5f80773f4b0798de7bd5566ed654785c058fd111a12fb80c15f42dba3dddcfaa077650e577908d117379a65a38e4f1e578236816cf8009c21e4b6601ad3ac93faa32f505f3cc69c985f6f298ba1b7eaa1de5ef8aee952d50a2456c183b25846ece4ce71b5123af70358d09a8c20f86001f5e93645e3aada4b61c9c3d6ad9795b505d1f8c212429cb87c780703e1963f15be5f53dd5aff0b80a44cd4ff8ff0254b584b8e835f911ae95b9a1de7b5729c3e1e5de73b9b0c92a6b02de1654c2e195cba37e551bc3284ffda36374ce5b90836ec7c09d336b8626b63d83d0a2155430a1b84f9f70430833ac78049cb5b12a1fa1a279fc57bcd9359464a77648462ec29466cfb7edcdbb75197d026029f764d7afa218afed96362854c13f720398bbd385a12d399f2f70300203322a9f6cefd0f0ba84107f4eb27fcbc01610437c0c8a29ae09fd2f7ade62b7f000001f003bc09a8ae7b2bb7fb0ca65e6bf22fba242ce89decbacb8af87ffaf9036101278ca0a6c0c0716c18b677b7107bba83c3d0a0e737301b11eadb767f67c0758d51854ca7d36f0f1c54d900e750db18c80fe399af8450c1cc6f75a65892a9e3986f1f932ce39e96c55795b3394e1e60e57e2509ae3313afe8b9b251c80176cd20a3856350b10cb8effb72fe092f6abcb208851845a53efbf9bd8f0c3c77553753d70bce3ae1f9d831cede9aeb1380c293e496279fecbb12da02fa625bd81cb937c8291d9f6832dabfe0d3a7f9b71c680301304216a4f27decfa25c84eb03a5b50c1fbd407a266d1585117edb6c1de501530ff08ca44b6734db6730eb2f83bc22687b849849c91f2c7fec94110e348eaa5596774d09014f53e0decd211663d1194ddd10c9094c0c8148db7975e0ab72db0ad3300d3b54ab1b30c4652416d31cb1b360879008177e484da9233c069385785c7d68b13d417d170642cdcfa1c1cd0a61f94e53bd9d9208d9db6675a98d3ca88f7b8c590817ea9d8f6d89d2e9635042c5143ec2cb56073f18a162f3ce36557dc562c39d8c353dc1eb3936422b1e568b96cd337d01ce3097cb99f55e6f6ad08493dd7ad7a49c5227b7229513d1f68192cd4621c3961497fb1a3fc166a43007fe4ef8c3f2246892c7b90e1a24ba2175b002dde802a44aa8cff0f746d6d67b7e835e9", + "leader_statement": "030020601014c9889fcb055abc131c4386f93bfbc4c3e4e87aff2707f42374192d1f71000002d26f4dee3ca02883c308e3fd862fd9ade8411aa35f680e276290ca97f26955c9e48be11b5f2de207f5cbfad0550eef87aa5f0082db8c5022f6895f258c8fc32b069323e1dc86db64d6a78da1eabac2d0ab779862b4f53c191bd160090608fa7e7b6054dbf6ce28f03e1678ee009e30b80775cba3e1d7f2458e628e5b33c1230f6e182dbef841f784b8276de84ee8e2817ddb73cc7d2e7c88f4798d2b1d4793bb5ca397a4c489bf091ad1931137a892d0310f090554e9d89698b2b27093b0a9067fe745d97eeeac7e568adc50cdfa9a58eec4c98fb1056376c306fa561383607896e24cb469aeb8a171e8abda1f8456bbf8ef34b8cef35b9d65516a556747b04168648c78b8d2de230484408b163a7b23659307b32ac52e62ab7713579f8b73c42b7cf14cf382ffcf23868766a3fceb97d6681c70fc44432195cc98a42e3c74e903876e34dff7d642bce336e6dabbcaf34f7ead3dbd34479cedc297708a0966396cb11a1ea63891d46cacf7b74e127cc728b5908303c1cafd70c3d6d6b650483e6e9b587059e6c017c1e06eed21539dc3795dd532e44756caba9482d18fd23fadc05dff4dcac973902846a0371dfb256cde6e628cc2ba4ae924a9bae0632921cb9956da1eee04d657477381a1015bfe25706398d2875496a3fb3bcb744e8974a820bd97f7afe19ef99a2b9f29ffe3ccd9bc9e6ddae35389ef2ea885bc9098395f6e6a4417d0b5bd7ef6b4507d0cc5875e5a364c371ab480d1d6ed402a8f830f0750dffcda718dedc8f4b4aec476d54c0e014980bbfbfd9cbcdc28d09a82771759c924f5e42efd947c50b0f1c2f745da959e770650088a8cdf66b859fed34155c01740b8c54d28cb35912bd262f822b2ae29dc11b981a4998b9c942b8dd2dcadc13ae2d47fe0439ddff4c0de0bd620081549e100e18b70c6f99d40b32b3597f043221408c49a1f2fea0b8ceb0b56bcad8da7e0fbcfe82186fbd4ba6b86961d1a05afb4bfa1600dce7926862041c2114901181250", + "helper_statement": "03002026d3d1ccaa39e7f07dec1768f7c6e2ebdd02f35bda4af8a8c74b5e0411102c65000002d2948dd2460a0f5197459de9bf3482f7f5f874846e5b53b1954e45aaad49069fd1629f8e6ca3d9b3304dd99b662efa9ccfa232115ad924deb58b9d19c24ebb375f24b85c4f1f9ecdcaa4a7681a79f58f15050cf307ee170b223e9dd319b59947246d08a1aa2d7eb1cc4a47cf6fbeab845c4f0b99a4e89ab2ea256e1068b2b4453933581ce5bffe113c48699b052178dddce1b7fae11f1a662148c45e065b444a03860ca283edcbdd3688ff28c0b4f1ba11e2c3069698ac92dd8787a10ce59f160df0e717423ed912887618a0eeb1575bd358cec0fd75daea1ddeb36d4a5415c69fdfa8bc51e43a7340580f394ae8f146cd1d45ef3add43e5f3789d11085db8cdb3433f6ee73248e999937cdb1ce52b9602d144606087f5a6562bf1f40754611ac2a5842fc6dd6055bb8c1d9b927c3738d5de2da897ae51369cff23ed1355e10359dbd919d775e81d4d8466a055546560281d924c61a9e2ce934b976c523d8881c4857e79a0245e75a6bded8e0fcb46a2507c406bf79351111c2baee6d60563cc20b132adc48846b18b05d7ff0634bb7ed77af2cd7c5839627a91bf2b7055415f809254f479fff2a542626ed2cba3a4d33920846f6d586f33c7bb8e745b80cc51bef9a54bc932a23b429118aa83dea58d0a1dab3b15b7f0b7ba35e83b374e13a1ba468880eaa9a351d911c70b39f7d73751482ede77a38391d5887bb77ae789bcbf19516ecd40a5cb6db34474612d2bf5916f702782cdb514542b2de644298ffc3a590cce39af9035508dbbc08f59a62a1900e6c9514e09eed2bdcf406eea7d52cdb1f09158342ae05dc35b426d6b94d5ce2de2cf31b63231c6ec96fa79c9824709bd51acd0c8b16932166004d548700f7b268efe1ab8185418e85c722ec66a8d25dff02b0584b439c41dc74b0ec4443d3159f15ab5de39935f473f738192a5f321ff07789ca95ce80528c779a831de889a9d2162bbd2eaed0e116423425d05dcf28a27b9822320808dc4ad9b76e677ca97c67c", + "result": [ + 10, + 10, + 10, + 10, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902" + }, + { + "step": "upload", + "name": "late_b0", + "file": "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b500000794e186b1a19a18d2dc8ec89afd3972a1f00000000000079a10000000000040800d1cdb2360bede5707cb0f9dfd7336b0e61a8206ca67d387a9523fe963b32798bf0c04ce7dd7ebedaf03d80a254c2e99eaa7bc5cf41274d3d3fadb4c839af6010020a4bbed2182d5289cc9b91812bef6e8550cc4f69ad2d5ec35143505175d34214d0000052ca40a4710ac4e26c4ff0c9f0d3bfa225bb928702ec2f2af902a66427756bfafb80c3c09b8cc77d7653563623166e0402b8e67fa581c1767d286d63654f07cf18673324cb3764f0b74bcc0a85070d17c282843068e495edf88862804b95c437c2f291ae774081c3488ec22d814b018386969c1f37484d853490fb07cd6298f55acc22b0875b04751e3cce1c67f8ec5a6061457c81873e0e906a80a92a734efaeb79a48b4fc761a55952ce50bdb940ded65ea89924a02818f53e959a6d041d681b33f918ff04ce5a64bb748843de924119e54852c554ddf7b872c3d2278a930864d57fe2f3746c29e38f5214c3f4dc900a6fe115e71804f5977c7ba2779caad4bf9b93c69d1986b427c2fb1a2a3ee045ec26e4daa0be2a222ccc87c872c1f15d40bbd1e5c9b6c64d0e792fd9718972928593918c7ede64c04f96757157852db5e841e81436e315fb107a901c399dbf46f01cc47ff30a9751896205554016af65e58a284c9fc03198bd99320291f49f133c94c549454d972c5740db808c52fc21b4619d6aad2f9ecbf9baaa1af6cb8e916593430c2de36a9877ee7ea88c7c2cd2935a4c7f883a06fb4bdf51416210677b22e5950994e4fde157cbcb4bbc4caafed3d46f8ee102054b01c6007858432515ec87516bdd3c7404cbaa2ba5811f9331b1c90bd00320236bb7324b9e02dbf9e82c918d3d4e868e664d64c080f6d60eb37c4a18417b079d1af82fd30a5545fbb11befc88f1517ff5c35ad9b559abe21c10f73ae185b6f909b38dda26b19c29774a80cded551710939d52c3b9022cfc27c075788e31b6dcb8818caedde995f87d3194ba276b3bf4de3f1362767f89a5bbc5df295057465fb43865534c5e40ec914e263e9760282b273864fd1ac76125dd59ecd730da9836195c1aece80bd9056a2c0113dae16126852b4ca16d57d5c65eee31a8bf393cb71f94fa734acdad8f3cbd12c6bbe4966e883361c90d6cf5c3bbfd09f5f40ef6156e754d82b8f225f78b3fb0772257aeb9544dc01073ba272a291730a69c38355bfaae5529290bf90a43915be93fce97cb69c81c325f64963448ab53d52d8bb55519db43bbf35eddc06573df76099848964f6202036fb2b88bf509ce3f1be831ed185ddd01504a9f5d1c98b321fcc25854880292bb64d353444349b81d52bb067bb8a11d2962cf78695e25db2da6f971c97e1ca5ddc88f18061b261dac89f7c60e93f5afe78f4936af0e5cc1ae1a9eb5b2227844ef31204445fdfd48b43cfdcb10eceb1945467754c627b6dca498fd0857505579a008224ad00ead903a1eacce0b8b4458f4ee32a33a3e34126f8c703a686d2b4d3e4d4f33ebbcfe68d595612fc4ea0f407c360bc792277446a53056b547467d438db170edacbe29bc5ee2d4f5af2c73737ec4dde863bd74844f88d69c8c2d3f432e8ddc29d32e1d5b414e1b3af1b00c35bc7e0d1c70f7ec2539fa9ab23f0cff37596742a509edb5b5f2e2665573b02768bef1b74a026a6b671dbef8e6b3299fb307e0c5568ec42365ed98a800f0048fe04ec2b6b84d1261e383172b47e79302a8a9928558847d0aca984bc9959935f727169746d356b8a0f9eb09cee185355faa739ed49dfa749ffff369eaeaff032a518cf655465392229e9deb2fabc345aeda052e537caaaa0b567393b874f89588136f7aec9d677e1f1db120ec3d27ca1ca0c9e840f6325be0754f502c3642313be3c8f916230ea85e4b0cdad3ed4c1c432da5a87127f89f9198b0ffbe21d9e5f18bd7655c04ffbd08a9b7fbb436d30303ca961e26f56ede6ff485821cb9dcdce3c336471379d649c70a4dd7b3566b45a66fa2c6b1daf932ab6f70638c6110848e4e421a8456020020a7346ff35c7ed5432e8a56a5eb7fd2d98cf0885b84f2858b86bb3cfeb19a0d01000001bc2e34b7d4857783115486a55510fa26a21ae81057b0ea93216f720cf253130206e6efcbbf5d761ecf241fcd8b8362e67b7b69f2336a901d931bd052301258be27fd9a076703da0c219c812612f5c50d5a43adcdfdd54f4216df73976a776d0ea32fe456367242e557f3babe26aab48479d47f000aee9d4a86f504e89fdabd49b07c3ac16944abae2108e1ebb13d3394cad0616df0681afc7b285722103c13d0ca791e0a9672dc52ca5cd503766b135d17a12c43487972773f5dc0d3fcf2bdfea6dec13b4e6fae9b465528094606f62389688a36ce922dd76b5bc359cb8e3f7853a557991438992d986f6273c5b41ffa474a57186af80ea2b29baa9ab48830fd8c712599afb375d04fb29bfaa84f6921684b224ea6b9e02cee8e821b865a289ecc38013d61f58c6971330f05f0bd0ddada20cfe006adc98e46a96cb12138d06a40c6e371e7273b4061b033f09aa41ce3ecda1b58f08c3319d7bcc530e3d3db2fee7084fd027aca6dd82cf7b868bea3f4d276f8967ba8b8872c2c5cd5eb3feaa9d84050a4f1d0ee41e4aefe42a492221a8d49c883d80ab48d9b8817c285f64d9b26581ef8c99a320f9796f576c96f36f36f5e0b6f3b923d2f491f60471d", + "response": "e186b1a19a18d2dc8ec89afd3972a1f002", + "errors": [ + { + "id": "e186b1a19a18d2dc8ec89afd3972a1f0", + "error": "report_replayed" + } + ] + }, + { + "step": "collect", + "name": "collect_b1_alone", + "request": "0100100000000000079a110000000000000001000000000000", + "batch": { + "start": 498193, + "duration": 1 + }, + "now_s": 1793520000, + "outcome": "invalidBatchSize", + "helper_request": "0100100000000000079a1100000000000000010000000000000100100000000000079a110000000000000001000000000000001e1eeffdb74f7d8155f8b44917e1b2bb4e77745b656f844e622e6675edc1350e59", + "helper_outcome": "invalidBatchSize" + }, + { + "step": "collect", + "name": "collect_b1_b2", + "request": "0100100000000000079a110000000000000002000000000000", + "batch": { + "start": 498193, + "duration": 2 + }, + "now_s": 1793523600, + "outcome": "completed", + "share_req": "0100100000000000079a1100000000000000020000000000000100100000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9", + "helper_share": "030020aa8122638054752c586753b85401406e7cabf8cea6b01e45b28890b47ea2a735000001f09b7a2eca939745f0266e15770a3ccdb7cbc584ad8afa1e0d97690ac01c2750aa106ee83f4d748eca74707f29add75a84833498adfa0d9308a4af58b5fdc91620ab8cce292c26dc70af03ef21b1e3dab2332a59c7fce8373a047195f9c5210d14e73e9a0edf006b3334b2a14a3ab4eb2d5170bcc558ff0e3ef594f8740b47a14e2e0fdbd12d81e7cc1662338c263323d593c7e3fd00a15d4833244119f85ad959c7df8be0835fd3cfb82e8a5207e4b61bc2125efa38258dfe50e1608be0d05ec3036226ed39bd1400df084f26176eef5fc6fca9376406d478fe6e1608c53ea9120a3e95b7a477d8d6649a2650e944b5b5628705063542a0f38ed91ba5998d1690361443c1251ddb098e351d6fccbcd2239accc2c8c1edd0153041db2d9555d1fc85345f5de9fa9d08c646d87a043732ac4d87caed6424d4d34294962b4f0403764ae266386fecad7fc3aae87d1c7d5474aaa80e46fd737bab6adb3df30922a5c7fca864d4588ae19ba9b4749eeac78f539be54011fb551bcbf95f0bb50987a05cea0265cb30d445b342bd66d7881480c24f5d053a7f51e479b5810f342258b2c3e7a1ef2b1ead5c5f809e00a8d833041a29895869b6ddf8d7322fb4725de8d2e3b03c1acc1c2cfd5f8080098b00516aafa4aecb6850eae05f2fe2b2ca4c67e4bdbfe0092b2a088c7a9f5018468fa81061", + "resp": "00000000000000320000000000079a110000000000000002030020f46ec2408812c0f39ed02fe8bf63da31a7619721af1fa8527de3a69726c09612000001f04a1b654d835a447f9697d336386f0e2836ecc5ee2bc9ee5a6a3ecd027331dcf03a7949bb9dbc26af49562bf0bab0e94ec5ce57d8446b2aedb19c35f5b2eddf30cb87f13f26ef16418625145b36637a68cf7a0bc80c9972e6c3bc6542c30bff8eba8fec418a206a234900944ab9e5816a98dfac4f1f0fe2955cd451fab6c40f7372f803a8b8bc5cc499e4cedfc948d879d4146a468fa6b741d7b84ddd858f48ca42a88c12f001a11719636f484c4c3427d8deaaed67f332d3d017beab015d69e23035aa074321d343a80645329c09665aca60c7eb399e27b5aa55647a8bfcb090bba0ffdaa09afa96ffd9e478b7416be14d8fa7ec1319090dbacae0cad3015d3e82f2c44c2961052d1cc9f2719d994f26813ec452bc33c37511d688491c0ec42538dcb49401acb5b379191f166476a288bdf0e2bb4eeba97784d175745fc5153bb87fe8c137b680e9d20023e2bd4a88748993ed40d85b61b745371fcdac3844a693a54b13f20e72bc7d6b2a8b81903d868788cad71db495243fcec552c931bd0398fce36adf9230ce5583a40d603890b9f17f56b4b431ef42d988fc3209753c34f0dbcfa3041cafb56e9d9e9e7db5b17ca47546eb70379fb1eb389c0481b5abf19be3e555e4eea65e3ce901e193a06cafe8037adecbb331c840c8c26671e5da2b487d4c619606e1fd67fb0e59e4c18881030020aa8122638054752c586753b85401406e7cabf8cea6b01e45b28890b47ea2a735000001f09b7a2eca939745f0266e15770a3ccdb7cbc584ad8afa1e0d97690ac01c2750aa106ee83f4d748eca74707f29add75a84833498adfa0d9308a4af58b5fdc91620ab8cce292c26dc70af03ef21b1e3dab2332a59c7fce8373a047195f9c5210d14e73e9a0edf006b3334b2a14a3ab4eb2d5170bcc558ff0e3ef594f8740b47a14e2e0fdbd12d81e7cc1662338c263323d593c7e3fd00a15d4833244119f85ad959c7df8be0835fd3cfb82e8a5207e4b61bc2125efa38258dfe50e1608be0d05ec3036226ed39bd1400df084f26176eef5fc6fca9376406d478fe6e1608c53ea9120a3e95b7a477d8d6649a2650e944b5b5628705063542a0f38ed91ba5998d1690361443c1251ddb098e351d6fccbcd2239accc2c8c1edd0153041db2d9555d1fc85345f5de9fa9d08c646d87a043732ac4d87caed6424d4d34294962b4f0403764ae266386fecad7fc3aae87d1c7d5474aaa80e46fd737bab6adb3df30922a5c7fca864d4588ae19ba9b4749eeac78f539be54011fb551bcbf95f0bb50987a05cea0265cb30d445b342bd66d7881480c24f5d053a7f51e479b5810f342258b2c3e7a1ef2b1ead5c5f809e00a8d833041a29895869b6ddf8d7322fb4725de8d2e3b03c1acc1c2cfd5f8080098b00516aafa4aecb6850eae05f2fe2b2ca4c67e4bdbfe0092b2a088c7a9f5018468fa81061", + "leader_statement": "03002053ed98ada4c132f08f6d029d08603709bf94d43e37daa90df782de51c1a4b830000002d28a171c1ff1e85337bc76d405714e2e9018189b06d2b9361aa832ceea0ce23f34915ff5d8b1fe94b715724749d3362a6e723447aa9bd036c0f9701cb040bfecc2555236536d2f78cbb57f9a9a03e8be026fd80f689e18ac4e3e7d6e0abc5099bc568867af9c24eeb1960ebf3acc6b0abc185829b8f3be0ec8758917043f322c52059e6d6c158a8d10d0d72b6207db4ed3924071f230126c15d021b141ae6da6df3570299668f41128e604ef3cb2c42b7351913822c0bc923398ad2b689bb1671d9547b3adb847f802d0e60347f3f244b9c136a793288dab79ee36a3f3c5b63d43505c11465c05ec2825dad6c41eab2ed36657d21f425bd79afee8294353bf24506699d9a489d3f8bccea0909099e88aa6c86646b68052088f84bfa3e2f099d757815a9c5d2e2416b13a3bbaa50f3192da4deb3c04c2229c6b2d93f8d340d1e32b3f66dbccd9858bfe0493cbdcb71f35bfa1ecc4db950e0c1b510dad12b94433c1977a8dd215197d9de7ab0cc6ac552ab4ad2a776a5290c27a6780fd49fd85d7ab879233a24af7520053a7c89318059d9615b7c0dfedf1b409715d22c35105ce7d27e07a81b575f96595df706142ac4112cea5affefab96d488f40ac31adfca43341d9254f19cbc36dd8bf9bb833e7899173f36aac6f930db26ea71e67c08d567a5fe33a0aa0fd9379703312115d9d5e1963b8393824656524649e79c14ad182f289de41743b47b868d65508a29aee0e6a9aff3067f23966cee09e326d6c11a1b60cb73c1ef1f44430b3bb06178295d9febf4649a0df5cc8a50081bb1296b2b99691c31b1d869b8cdddd30f32ff053b3d1dac1d35bb36ec1ca088f93be11673ac87c3f580503e52e036ccaf6002415ecb529414693d829ba0ad4508b44bd7ad8f6bfd643a313fadc0c59a0cfcee6e60ac6fc7f97c211fd45d238cc7728cdc71edc313b76d89633d254f1170ea9d1ad2dc36bc85e3794b3d9fee4bad456d8c8978bb12d78ff01f029000c8bc1c29012e4b947f5", + "helper_statement": "0300202e521f13281704cc6acebd13a68abbffae089025b0f5776cbd71ad9ff9eb227c000002d2a196665651137a614e28d7664f8b1c6966d7c1028d3e9eefb5b45efdaa28df96706d6fd058692d0f23c6ab24621493218aa6e8e10d241592c51132da3cb3321f67b6caa3287c5199926b3e8cf5f01e029705df787abf40369c858e9240063a6a93875e976ab556841f7dd5de6ccee6f484da1bf2d92ef694063e1000bc4a694836eba5824b49fe113bc8ffa81d3bc77f90f399290d3c8f3da4caecbf8c51a15d69eab77a47d27410ea0b6f039316ef2fae56be125f17ace454638f1df6585f9b0c7053dfbdea42f32319ccb22f333864994c20e462ca2c820a0bb2700ae35c821e53de8cd633017ed441ac89811929bbdc8e3c5115df73eee2f1672a56cd081749e96344af4540f307f481e4c8a9b13160418bde104b6418f8d16d9d7eea274cab3bcba08bfce1d1b09fd7877fa3ba9cdc87a6d40c443c91511f9ac6183d80b61d33a6586af8a042830099d6aea11b1ded7db47390768cb9f7f31e9ec0f8ef5a7e7e732c541188f983d728b48adec550d13564b67e7100d148a736e006f6223f860aa6362c355bc33cc67f3fb0163499da0723d382c50cf255b971d4eb95864a01ff76711e202737db6dacdcab0a428f0a1d0d4dc87b1909e685a8f9d63675b1428a1681dde36a92b98ec61f328c22a834c02cdd640edde81a736ebd3dd7b9449b29897576338975c8870fd55514b30cca510da291315a9e3d5408450e36469fee6888a5648ddbbc189e2668c5479da88c2ac643aa1e7f5f2c7da60117550bbbb264800f591eb8f611ddacab435676f953ca3ca1775646fa33f8c0f0c0fdf19c6dc7dd7ad4b875e80c619b319dc9071dec91973e595a8a1d450935016d98a2ef39298b6eebcee15a34add7940bae66cfc0c7951cb0f47c110b0ef15ee9ebd42c04060716555e1ba7ac001c5c4537b8b1418848f7fcbffdb93027ac24e833cf94809add0286bc82957d6338c683217589da6871f9d6cc75b327676d65f78bb62e46e55b9fd207a0d40e2a5a614d53a76d275e", + "result": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 10, + 10, + 10, + 9 + ], + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206" + } + ] + }, + { + "name": "open", + "task_file": "open", + "task_id": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e", + "verify_key": "48a905b59238be165b8e27a8bb2048defdf472bd2a477e289e94ce4b494fa37a", + "reports": [ + { + "id": "a69cbed7f0df01023fffc42c30548336", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda2e5233b9de1981f72da05da933414f76ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502893fb923715c554dd996866f1c96430de781a57ac21dabf767aadd435d8e3ed0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000175b0755527c2932ee6a1b02d3d89e7c48ae2018960ba920b4e2dd79c26aeb4daf2bfde21cc64e409e8bb3634d85f25fc63d734af898bb7d204c06314a25b207", + "region": null, + "at_ms": 1793491210000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "0509a8adfb2ae1ba0039b9c496452893", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda0da5dea4b92b838d60757fce3ef0edf6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c0ba2bb521c721bc7b57ebd864f6ae4f057d033641b34f948c266b0cc3e02c11011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000ce3c9c526d5109e0f96f174d3b746d4732884b86ed838b662b32884661fdd1c263922d877d7f987104c72ed12bcf95f3956a2f5a86fefcbe1608bc002939d300", + "region": null, + "at_ms": 1793491270000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "111bfa7066716d42db6963cea2fb9511", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd323c361b2192df9fb649ac35f6415c786ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502a30c459884a7cc992629dda50fb588b5a589a8f018408fcffb2a9321927c34a7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000944dcf631b5b0089d5939e8d10d94179b8f4c12aa44dca6d5548c47b1c851873747a103bf7b3fb22546e594934df8dd9c68cbfb866bfa9f6d5148a195af0da07", + "region": null, + "at_ms": 1793491330000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "acf35012a2ed23aaaaf6ad5030320c0f", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6e4316a66b993235856f327010b499bc6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502cc69260427c62c13d951b632d34e9cbcdc09ca2e8bd0f13ebe9c234376c009c6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100003936fdbb9129c45a49865e414a80e36b6a8029563e437232d6b52866e055ac6961f2c1c8bd59999c73b259e81008bf93d1ada8c4611bcfc8b91661f6f2e38408", + "region": null, + "at_ms": 1793491390000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "8cb0a9b3ee0ef418065bbc02fbd0904a", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbefd82b3ade467564bbdb979101f9c486ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5029b4e94b10207dc89ddef6ef2bef02ca19daa95221aaddceb84aa3485263b3dfe011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000010eb8b25fd969256d73d37b5c1d074b7e439b017900fe732d8e8205af88fd6eaaa5153fb30a47815712b1d93543a02f85e0406738d6810f012bec965a4b90109", + "region": null, + "at_ms": 1793491450000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "11f3e5b3feb409823f48daefaa726daa", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde825677caa67b8b5c1fd04917975e32a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020dc4474130edc4ebc9c86561eaf33c4153a5c42fe5571462f890b14322795a97011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100006106eabe048bcdc27e6d6b2b5d03d324f936855c502b7e985cb5440ea1e3a96074e9ca64e73d5a728c951fbe9c33b2c5e021149bf70479b4a2dc28aa845ce30f", + "region": null, + "at_ms": 1793491510000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "adf7b36018c013855bb91b533fb9e3ee", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd80e4fc80c3c9e46941abc82a1f39ff1b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023d1d8ee8ae517fa509bf59ec779008ac866ebe2d7ef41871707201f843a6499a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100006463fc446366072af1806f34ef99fc9b6e34dfb85684d513310243762d2f946b48612f49992966a3d440d47064ed467a09a6e6eef091fd0674a99ba139220b0c", + "region": null, + "at_ms": 1793491570000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "e220ce927106ca7cc5ad37c8a4436e1a", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf0159c2b7425bac30179b4bfbcc38d766ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d4aca2526558c96cb66599dd3b72a88f042dd623b1eeaa6edc54f6d97c4a69ef011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100008723596a2e660e61752a47432ddaf3ef2c9a2e14b7c0b6da0b9147a1386b2dc1b1f6a68f5c2ce8a629f90d70ee4ae2e27919d36c8175afe5d72eb5605af15304", + "region": null, + "at_ms": 1793491630000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "0a6be3e2be908e89522d1beaf56b0ef4", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd5ecee514e8b78c1140532ade16bb40486ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50271f327a885d47eeb1456b74824593ac008ee5b985cf9fc101f4bf635a402faef011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000190bebf7608eb7df8ac3b1e4027e7c3f7e9138e8c9027fbd1c9d9da91558962467a69c2ed7181f83f3ff899814cb1cc48847983ec8529eb2688c5cf47b593207", + "region": null, + "at_ms": 1793491690000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "1e2cc57da25e021dcfba481c36592509", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdeca00411619fc5e3334273b8ee8dcd096ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b548dc40ecfb223f43f052322e54f5ee70d3bb4a76a2148d40575053419257a5011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000652d110328b79a8095d83b9b78ca811c3b79eccb7e8955d584ca08b757fe4efb374c38b5051b6c0f7d45892b3fc78a2f2da1ce3e1c4a48110fdb5fc074e09108", + "region": null, + "at_ms": 1793491750000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "1069a899d70e1cb334ca074ed7953886", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6e73e3bf6e83ddba159f5b1d8b9912336ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5024e3d6b1426772d4f0c3e21ad8ea9772fa7f75a120390d72d18f0380c5bdb95b6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000978f3d6ed16d4b2350023d54b718b14400b86144a31088b2b4b456ccf8da98a544a1c1a7b0bd4aad92e177ebbe9b8c2422f44cbd95178a0b92e05868ad19900d", + "region": null, + "at_ms": 1793491810000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "227b44efd291cbac7529ce4ae0db7c49", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd5cc50b754b7960c59764ad1370bcfc516ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502615c7b3096ab24568f619246a15791cbee8b1371244490179ffd16d81f6baf41011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100000f4d4701510a124e197401456696ec5673f947844f3af64408b26b901e43da4c33880b6169462605fb7b3b66d2c7822e7349a19ad1aecfecf32aec2b9c3a3605", + "region": null, + "at_ms": 1793491870000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "4d90ea560ebdec051d92a183237e8f0a", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc2bcd201312511eba6fb68a98118ef116ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50203b4ac0727d99bb4f4ab17bc42bd7a02d852191e48a7c748dfa29e574100e8a0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000074c8e0e7765afd67a211176cb6bc99b6aab34443bf2464c6f2303b44996d0a2a829ca85446bc940a66a0cff0887c06be6be9264a725467108d5a5fc582cfd0b", + "region": null, + "at_ms": 1793491930000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "105d8ef8683d29f1d7ed994bd4f8e6a3", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdaaeb03e4a01a9c99084685106e7357d56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026edbf2f44492f117f143d22cef2fd61d5a9511433958a645c1b3ef0e1c132edd011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000111638b1eac0ae110b22f6d73e697a4c1e54560542426a05ef1110f6218a2503136d540baa5c6d8e986ed56fbfbf5b2ebbaee0e68009588546899255302ea008", + "region": null, + "at_ms": 1793491990000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "7d1526984513c531ef0a2bf80d9692a1", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4d5d7a3eb8180cfa06c3fcb6556ebed66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026a288a1c7d268304b2865e0df40de3af5040383f77de30b3c9b8a3e44b54079e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000059cb6ac5c16854dfec14f74853abd813c1ea8487752393d85a27e487833352d0432e73d8ee37a6c7b52fd23871b22d430dd2f739d259aa3886d5bb6819d84204", + "region": null, + "at_ms": 1793492050000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "286ebbd1cf43fdbacb173942afa028c3", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdac2b7d3f33121a9fd73b0a02123afc8c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e774d7c620cc232349aee19bf5f4c3d0cb929c14eb314b404062bb13fd963f56011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100008964239bd3a656326ff26ad10a45e9d9bb7b529e1cd3f803f7cbfb129cb4709eee13d17064246b81813b6d875a7d257f0db8bbdeb78253167c8e26b7ac75220a", + "region": null, + "at_ms": 1793492110000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "bc0bb4195fd8b01ac940e234e6d8b53f", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6a778cce95e9ef1df0c3439ee51d969d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020fadabbe8a2e4a9f323f72449c8f02e0d909037ca550ad223855efeee28d02c4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000497809fddf08c2d169cdca0236af5bf890329372d0b387c9196affd75e992acae92b5ae409c1a9783bcf3b339cae0712c8baaa3a4c470d253ee1cc6841186403", + "region": null, + "at_ms": 1793492170000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "476d34e5d689e984fd002c4924ca676e", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6e6ed9db59fbd3d13a715799819d8f826ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502474693f7ff458f7c135a28c42a8046463ac6dc73277d3da28b8b405eddfee49a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000e87d4fb6c416d9d3374017ef03bd6c7bcece95c6587c3636c5bb985913fa43c7dfc56001d9203ceb74c1292b8d7924ebf524eb449544ed96bfceb9043d367f0d", + "region": null, + "at_ms": 1793492230000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "f436b99a597997d80cef2a9459d82cbc", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd216a09c295b9f26a476173021334be36ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502737f14bd43c07397be4ea2fe4bc45afcc2e4f2806e44e0d50bf9b47c365cbbe6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000712447fe8a866f07623fd96bb3d9db727d941421660b35d4bc786f20567b223da68f9661fed14cc2879697e5b445b008944f74c2105a097ddf987f07f431e403", + "region": null, + "at_ms": 1793492290000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "f00583b60d103e1f58781bae7130ad5b", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd845d5ba4c0e08961eca506eb5510bc626ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50278b471cfa41d8b7f89fb8cbb9889316567a7b1f22c829dc56945ecee60a93d20011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100009f3081650b1705fe8204a27bc8a9ad173d2f268f008aa676f8a24c733c837e35338fa9f9dba23ae2cfea384b65d60b2f0761687e67e698add2b5c8a840a4d90f", + "region": null, + "at_ms": 1793492350000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "77238d008cf09d153910a35921c390fe", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdad496ed599dfea1a73e51f0b4c0444406ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025ed66383447408b2bfce0c32b50a91e9378acbaec49d1c9846e7acccbdeaecce011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b0000102701000001227a559b2799e5f7ab05349114f513eb57acbad2bdc0aae816df057998ef216fc466ef30e3ae8be8b14571e1f63e3235d2a5ff4dd8beb859ca0fa716a29d0b", + "region": null, + "at_ms": 1793492410000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "daff52cbacd6f8aaac74b16c0ffc61a4", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1014e9e3863ab6550271e6229051b8c46ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f1ffe27cd3111d20afe1ffbaa2ea6f3dd4f2da3d4911d52cece821578b018bc3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000898c23b23beee6ab34a15f7730313fd3d248304ef12bb9400146f99af508551901501d153c406602486b77f7e7310e5ef8ad7879398d3d73cb09e9069ac50103", + "region": null, + "at_ms": 1793492470000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "1fb184bd29f8c9b893f479f38d573ef2", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd31c70b08e26b58636b2c14b6dab79f986ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502992c3c0ede35807d9b62035d4ad7187faed5a68acf953920de5c055948f52e0e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000b200ec7f336c9f40148e372eb4fcb52ecbe5eb599bb37b147715ca1da5d9a7031668e81ea8305ce93cbf28d81b0affae6208a745158ac5587782a9c5c2462f04", + "region": null, + "at_ms": 1793492530000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "6ae99658c3db67a6f105da1f42689130", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9323668d33247fe3edb16ecc3940c5426ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5029f1009998a6ca43ac714687e1f310ee1a8cb21282bea8d61858a8ff037811209011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b0000102701000083d8c04569bbfb2ebcfc06420918f870bf34af02b909e999127e8b9ef902a0d31f399e796cc1e1d963224f4c25e688aa39f30870daacd3dc6313b7a53cb0ce0c", + "region": null, + "at_ms": 1793492590000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "362f26f8bc8c16b5b3cf93a29830a17b", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd16aef8b0e0edb5304e05b91590d3998b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026a865ae16b0fd0462e11f12c1cfdf9679701cb3c2ff3885e3bbd3bd74db6348a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100001646758518426bc5bc12206dc4475e0e6b9c3ad7d7bd7c0df3831357f85c9996f20d20ede998a7e138978fc7650664d640441c1b733bb610b54135e623d24806", + "region": null, + "at_ms": 1793492650000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "0450c98206bd4a9d2485ae82f6e9cbcc", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd63d06fe31828bc83c9c386d25e445f756ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c2f110ef33f199b7589586435afdba9bceda00bcb17d8654c31e75999a9b5987011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b0000102701000022aaf48f2681431a0a8131bd24b406312d6761bcad7829dd3c45ec023079706a652f9a1d067bc6e2c0bad8a81a374f5f0598ff02ad7dd9603bb333853ace6d09", + "region": null, + "at_ms": 1793492710000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "31543af0c481d4cdc66708411c59e0a6", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd60cf9d640fc87fbb132696ce42cb8b1f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d6c7c66bbc3631efd5a7908b122f3a7a8c9df19c912348ba31ae8885a5fbae57011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100000e12ec969c5503da0df6b1208a0367b9a6dcaccbc36f25f6f15aac2475d164dff88fbdbdc804ee6463f05626222f83d9b4d0a2a46014c042830b1cc8b7467d06", + "region": null, + "at_ms": 1793492770000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "433031122766c44947461d165bf91707", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb447a5f272f505c8b27440120c6388e46ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e3c8955d000e5521975cf6237429cb6ce3485d2504ed08ee8965997b2441c8ae011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000486926e7cc844f26ef37b37cd51ba787babad86ba8fc82d667e198fb35de14ff5b82985788844cdc729ad2057c1a31d40c1cc11495923696af50862a5ac58508", + "region": null, + "at_ms": 1793492830000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "02ff0c1419e1600308bbbf51099c2b93", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6b4a1172bb2d046f5ff74d5b4a9cfe356ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50212e48cf90eda49970c6fdd6b91d6aac9c4e3c79d01f40721a647ce69452136b6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000718daaf23e614f01d8b4c1015da132654836d399294b1a47eaac0d7212af633393e119235d109288a9892ed53ec4715c8be1fb18f6418fa18f231d16064c4501", + "region": null, + "at_ms": 1793492890000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "70c23bfd9c06ffa92b33fc16cdb057bb", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9db1a380bd99463fb0e56678d2d0c2596ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502a975cd1093e171fb8a28f6b8642083a7f4ab223076e999b6521d1d0e8d67fc31011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000051f8661380174d43d75519401a4f29983b6fa3fae8c8a4c27d5bcaaccecd9ef85e7aab38beba6a43f601f5a1401418e35079810384a4cedabe0ec53ec6e37d06", + "region": null, + "at_ms": 1793492950000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "55044fb7356c4fa85f82c0048af09dc3", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdded7e009044fc4fe16cba85c8ecd09e66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025a4347d8d5aa6f7a7e6b5aad7147a16e4eb19a7a246b02ec89adb9f7707c10f1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000c8aa95de8b0870c0bcb95db605f5940367bae654ce2e9f04e46c95cfd9774b4d5ce016b1c98d89540802baf31c8e41c49306b7687aa8eeb52c51d844afd93d00", + "region": null, + "at_ms": 1793493010000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "c337f9417169b5c995a57a2f152fb760", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd675afbb9e1bd60bb70bc506c165d80b96ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502127d05c453f76f34d0752cc8124c113573daca0a32bde66bca0db16ebc7bd5b6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000f69519201146f350e3244bfdfb139b3dd00b3e1eaee955425380c09ff777385da7d89cb31fade5908d6490ba1e5104a19c88621e78354f793147c852fbf49206", + "region": null, + "at_ms": 1793493070000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "6f78f1e6ab909855055639a30ee49f99", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdccfdbd48c9c1d01cd3ed6db9893e18986ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5024dd627ea466b882e5edc04811a15bcdfc0787c3c0aed559814b17428b8dee2f7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100005016216be4f1659a717e9c19e59cc8cee672a00cf595d2917ca1236b63020c4febb213b9247fe971613b7de707f02f1abd19002a0b760a2d2e2f5e44bc0a750d", + "region": null, + "at_ms": 1793493130000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "f36e6ddbcb7ac26123bd8c9bb92d3bd2", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc4a593d059fc2aa8373d2dff166067f66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502725618cae6fd37e95446b2ba989a857fb61eff3624a5958f726b714b55a65edd011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000f70a7320936c5dd9b28f0a9914de2fb85f643898514957a1e7320115f05ae5d13e1072622cfd5a232c603dd7269e90345176cdc0f2d977c1a463b2996a872f02", + "region": null, + "at_ms": 1793493190000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "ebe1bf3899786f4f9c0cf15f8eecd199", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd63c10ebcfc42d0e1eb6f1fab1b0d9e8e6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502a48a4581500eaee52c32f2af53806e11b4e36410b750b42a796a68b718ce49ba011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100002096058c5db86bd9ef63799c6edfb29add35fd9c7b5f810395d06d6e802789b23087d7022fb652e972bb7ba40f9598621e494854352747138acff88e5de1ec0f", + "region": null, + "at_ms": 1793493250000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "ca4dadbd05ff93a329eb4e48ba6a8e91", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd20f2cce47bdbc3b042d658fde081472e6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021c6552dda8965e337f3f5fae032cc19e9a195b8040b50eb8acb9f8f4a76e7c36011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000a1fa6934b575dc028e9d21158a0b96eb36aeecd8aaab02609a7745c4ac61ca8f7a3dd0badfde47f7d0c91ecc1c9cf4d4ae26ca78439be6feccdf238538a55e0e", + "region": null, + "at_ms": 1793493310000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "fade2d1b528b8af4b7c74394f130eb33", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9ea2baa9123cab28e91935bc043cae976ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502bb041f8aec0631410a4a5d0298148dadb991002e6ec19b6154675aea78a89cce011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000edae4c77c6bc40dcebfa15a71e94c4553fd40d1a2d04e5602b805718e4ebd94a5b72f77803b9a0479b2653ba5b7c67973b2527bba2a0457d266c939e57c08603", + "region": null, + "at_ms": 1793493370000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "cdf01f54c0a9876d7eec81ff0d69c572", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfcf85e6c00d9c98acc1151cd11aad80d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025e866451fc1119e001739126effe88b1892054dd3b5b0a774c6a7573288ca0ce011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d0000102701000090584b0a83ac57996409fad6f5f2f1207b5230ee28c82fda136047ae9b6afd4f0ba51f96817b1aa533e245463b008216b426bbdf2b839aedea78a4dc1cca5706", + "region": null, + "at_ms": 1793493430000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "b953cc3d35339d48da5c52727933c17d", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4df1a83b5c7caa8e7618cf22ee2b275f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f2d6f9b397fe651c4021c064d28a2e81c27ad9c9d0c66bc4e22c41f271a5b11d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100007574f04116e4645e18ab305cfd7f2925b9404460322f3c87d6e6fb943ab78678b8f59754163d9dcbc5df804df247da9f2f939e2748536944431c68e56cc5c709", + "region": null, + "at_ms": 1793493490000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "c7d3c6a187fe04d2a23254d6f98c5c85", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf38379ec8d6a0e9cde360923a4e5ec7a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027cfa5ae544e994835cbce0c6e3e5a24aef4328c7006f340d82685dc844673e6a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100006568d0810f1caaffd78e115172a629cf5223dc2d7d70a190fa2ab6d929315c8036747bb44058069484df75877931c9e5ee19ef02e4807395a717af77f530fb04", + "region": null, + "at_ms": 1793493550000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "eaa03128009c88ad52e07344d5ac08b3", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd97c9cbc8739963e907390d8d9d47c01d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020660006424ab0fbe94389d962c1405a80d39bedb4329c4ba45d227f7190e9c09011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100007bc266af713578bb840555db4a39ccc2d6c3aab068ec888b4bc88b6b09d3b23d4689f35acf4955afaed15846d698bc0fd298bcdd9790919e6a96f889bcbea802", + "region": null, + "at_ms": 1793493610000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "4a568385097e5286eb158ab7d9b734ab", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2b26137224828f65b2b9e037b5be3d916ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d6abd5dff0dad9cc82a0b2aff902165729184d4ef7c32eb3a49dede97461021b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e0000102701000064fc74d1df1fac7c2bcb599c081b85e0387e3a3efe2322c618f8789dd30b8b4e0bd7fdac961ba6f82496d92dcd86ee6dafbda08e253dba289b2c516dd106cd0c", + "region": null, + "at_ms": 1793493670000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "42d99cb135ee8df3127e7384c1232614", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8da126ceefffa822c5022c9bf9b684196ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e17aebaff675321e16b751ab847d5e28a7c70caa6e565ea19623887b711b3944011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d0000102701000091f48c5c1da72eb75ea392fc0da867dfa1b65375bf905d8de5884bc517473112d71dc5eb06d9076f931eaa63aa6ca263772ad5e2184b3b23ed860f53bd35850b", + "region": null, + "at_ms": 1793493730000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "0cf3a002b88570579bfce19b2f767fcd", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde9ec948bee4dadb89d8d4e7b41face7a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50230f5909c5a95c052cbfe52f03bd0c16e8024170a178e122901e66e4f65b37ca0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100000744e8f43a1f66ccb3f5debd2ad608114223565815b1f95ee59eb172cc8d6ebcc9b6be2a00848aa79db5e58bcf59402888ce6533b7e401f818a5d370675e1d09", + "region": null, + "at_ms": 1793493790000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "8cae5f27c35cad8bacfd55a201a03f08", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd23c55139dd5b65d35bd68ab8d6b3a8cf6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502158e0a4093194377a1b829d5764f9807994a50c4b98f94bb0a9aedf6d100983b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000039a7babbdceb94ad11cf064e19a7a24a587b9eef4892ec32456c8a6f6a60d663fcd6b085905f4c6017a1c25ee97283c4420f4f6e281a7fa50a2513cca62f8001", + "region": null, + "at_ms": 1793493850000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "ba964cd33f00f7f43cf0a7819b0e090a", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd884350226b40ad66d854646aa1732e776ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025f4e32234e8b6114376bece850a87d6836553881d6b366240bf5fe6795f0c808011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100007a5fd159e1a274cb28f0db76965488b3889332faa3055b39adc4dd9f60b6cbfa102ca7a5edd163b80b5d3f4d1bc9316080a98bae235071cc7f79fd0c96d3100d", + "region": null, + "at_ms": 1793493910000, + "cell": 0, + "creative": 0, + "column": "other", + "quartile": 1 + }, + { + "id": "fadca38ba9b2f554e963340bd5c4283f", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2c2496167c570fdb12f136815797b66b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502269a4d7dd3c3be54d5e4cd4ad7e9e5fd36388402b93f7db7ae5b96ee8c82365a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100002438af8a409e52afedd0ce7ce55512317f4e66085e8db81ad7f54ecf3c83301490842f48d2466996fa6d2f834536ae931819a0c3cc687dc12709cfc2d325db01", + "region": null, + "at_ms": 1793493970000, + "cell": 1, + "creative": 0, + "column": "other", + "quartile": 2 + }, + { + "id": "c0e696f14f9f0a950e46c802c3979d0f", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4595a65becc001a55886db3a474dccb16ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502861b99e0eb48505b182aaeaeeec29c6eb700f2ede0aba664608e13a929ddeb79011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000fc9e104a965a9bf32cc0f09f0e1b958d3cb02f53f030a3645fd96fa29890f01becad495374ba1a772e8c6af684e98579dd9aa80a915f2470de75609d15501801", + "region": null, + "at_ms": 1793494030000, + "cell": 2, + "creative": 0, + "column": "other", + "quartile": 3 + }, + { + "id": "dfffa5745dd283d3839506a3d9bdb164", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdaeb0e4afaaee9aaf6aa866962456a9876ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5024865401e01197c878863499d804191fa87385bd3eaf52bf6bf7c657d72ff72db011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100007b20725d946ddccc7cce3c6f355a003917470a4db3b065699dd387a0fd29cd37fd96c3b6f498e9a45d9229a36fe7dcc5843f881da44a64b6897fd1015e964300", + "region": null, + "at_ms": 1793494090000, + "cell": 3, + "creative": 0, + "column": "other", + "quartile": 4 + }, + { + "id": "50f7072754d8ffdd90fcc1a6c13518b4", + "time": 498192, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde872c5422a481c999ede0440fc3614396ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023e64e4a77f53363f61ae7bc680142f913a811c619bd0420f267cf2e694bae4de011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000095f16ac58d51f95344bf11781189bc222321a813f1a2b6747efff86efabb9682196536b80672adba74bd99fa7b1854049862d5b4c2d4d3e17f1025940fb6860c", + "region": null, + "at_ms": 1793494150000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "da411bfadc90589cbedaff5958a4ce2c", + "time": 498192, + "kind": "token_extension", + "about": "a report token in a task whose catalogue does not attest", + "error": "invalid_message", + "reason": null + } + ], + "steps": [ + { + "step": "upload", + "name": "direct", + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e00007a5402ff0c1419e1600308bbbf51099c2b930000000000079a10000000000040f15a1d865b0d77ac7be8a335a590b6bef7d62bae7bf402912e61f82b6a1883a6943d6a24b1674282100bbdca1a22337133f236b709684584541eae33c5b1261401002067ce4b94d9bad6c8d43d49b36e38e53cfc08c098cf38f38745c8b9089e8120660000015660b06ec2dfad3bd6714d10f71dbf1b08e2097277ce34fd512bdb293392f63e0c12463c285256e71bc19bc78905f7a1829b3a15a3b44cb763d0b5c6c9e101c300768ee2b88726906c25bbf43b4134e7c3385224654ac7d6928642a256866bf92401c81d1586419d8f255aed731a433ccc09c69f7c020e70d2c2eb65fa75c717d6bb5fc17956b120fd9b46fca2198ce405eb04fe08e6177beb3297d9b7adefc665d113f4eef0f469e00225c3d8782c8ad893244ec9b73371f04dc396c11037d456b1237d85bcbd637a3f1f23750a015d3a4339c26312d71bf6172fe6d8055aa3a24dd5a78aca2661cd90d6ddf9990fd879ea6e7ba58c31c9d4c5c338f3d18dc8d9fcf5a7fbf46c4aded7d41ce944bc7e02c217b6439977793dd95fd341288691896d99082ddc7c50dbad7871238c96151ec9844f85e59ece861c6fcf9eb546ddf836e537f42f7c85a97c5a5aea8fd48dbbdb2bc6893083020020309367adeff8ce5a1c79b50f3e850549a9b76b3645118539ce1fbfd03c7a5e7d000000561c47ff8effd7ca0ccf38e0a483aef9f43623f087dba19ca9dd65ef0875fced0b557c6e82ceef9fc6b4c6c916aa863d35fda243943c0e8de2a79639e14bacd587ebf1409b60b3b765eb263ab0e6fc4155a6916a376ac60450c98206bd4a9d2485ae82f6e9cbcc0000000000079a100000000000403fa4df80e4cb778102ae253050c17885e26c5ccba69eca03c0f8060bbacd817e046a52feb5dfcfc2b4fd926858cb1b0c3e40416a916167f5a8941ead6d6a1b440100207eefa96d79d08403a4ed82962aca0fe30f722dc694e465ed13301fa3ffffa06d0000015657ed3c63b8bc396acb1c6fe993b29da2e55f595cf3000a0fdae5f4b45b78d8297b78b9772707226dafa4fa05db931c433dec2a66e01d19a6024d797bdbc637efda0ca0393b4cf40d87c5decbf6e4ac6edc895218d61fd5c1334f5e86de879238e583248626affebed13624998aa2783bad427236621640cd1b9420d3d880f567e03a6e7fb47229cf96d8a9be47c11a66613b32616a3cd3ec9bde0ac806f42eeb649b3f7c35f646622459835e9dca5e32f49259bea189959bdd364cde15ef133fef9146fa2b0c998ac5cb0049ad1acfb0447a25bc22f74cc5e1d5a67d79d6a9ff8d0d5e91a2518b9f179599174ca2d7ce50761bf4c4bf7af7712b3dd8b190069b57825786ae2fd3e7669474b49c1799a9890e0bb1324cc054be96f83dee1c47a46468acd5e0c151bd7acfe172d5d7076954c682be0aaca841a52c81774d5ebc82ecb986a637de2a7e90db334a54eee80cb6ba15613c47020020221a0ec115376ab0fbc18e7b045f5ee7ad0257b7273dccb4e359efd180c1b8120000005612d12a4eb3f139f02fa70cbc4360a5d8e70dbeb5c9505e1089341f9f095601a9537afd3c56c5ef98163aaf02e4d54efe5097877af7073a94eb8dafcbd419199756b5b4ce915fbc0cfaae5e43b97187f2e53e14cf16710509a8adfb2ae1ba0039b9c4964528930000000000079a1000000000004021c5592aa95cf4ec8843cae85f26f687ec02cad44a01bd4d371e702052f285bc50d134f03edef89eedfe50a3dd16a46fb611e01050e5fbcf47be36f0f547942801002043a3e09c062942995d59cc5ddb15321fabab2e2d507f0ac9f2914cd8ad962b7d00000156da25d7ee20d82e7cd9e382251af5bc9f1223ac0ee38161966c1dd54ddddcfd43d33b008b9642868ec26018bd87ba4b5b0afa3a73a0b32042db59907135821a6dd8c7e4526ae8f32ec2060dfb828b1bfcdf6efaf634940f6886e806c3f3fce9e21839ee60d63fe9654655d9c0d94cc45f0fe03bf875a53f72e24edd85d66797eca86b475fa20c25f6e2d2e17993437c5968d9457a2ae331a55da3ead052be6826f54fba339a2ba6efdd8f31df6e0ff608dfc97597a3381253ffb670f1a75275383e852a940b1825126111e99512a1dc43fef071a3dd9db5072093fa1e4f37d99832aa1c28e2407d353d13a94eca4f43c71678c7bfd36f9eb44949f85611e74fd6866878405b26232ecd9cef5e0d48aa93427073e32650c01599324b196badda46d43f8d8cb05162b2bfce463b0d1a9122bbf6f9daae1cca54d4ef85bdcb6422b340ee9c55dc0d26d3e04d2e4a577ff1754b600a05afa90200201b9b7d77f782868efc76d7401151d13d34104c62134cd5a37ae0676e89ef3228000000563b1921bd2dbefc9df808e34d7b75bf430445ec4d8069ecb0132a53052742c3f72d230b148448d47f09459bb087711d9bf4c95febacb47afed3e0d4283d437fb46878f6b43477e1f6617d07510063f844db011e8acd7c0a6be3e2be908e89522d1beaf56b0ef40000000000079a10000000000040721955bb6eedbb3ccc62fd3651707ce6e75df91d8c8974ea8c089f016e0706ad62ad3836d99ca8d50516e857ca7f9e725d9a73df5ea70d2d355617f532f7ce9a0100201686cd939c564a3159f3ff3ffa7160d66aa4f935d2a44a683cc95cb9876dda4e00000156523d87216ae9c69a82c82b488ac3aef06dfd0c662025e5c2bc155eafee7e74376c7ebca30046f627062473b464df8ec60eca6b193851ee1e0252ec1ce37423ff4cf4cb601cf249a5276648c4752becc7f4e9c260077861151975ac3a85b44da0ff6be4edb85325ea621c6bf19c38e16301553cf4c6fc1799d2644379ecba3d2058aebf3759f981a5aabd85e56c989a5058c74b24e9a75ac7d6ae98aebbadf483536f3b0f1ead93de5c6d5ccc8b6805858ede61f93bc40e73d987b66b1348aa9cf362d2099eb3e8f3327f789bec19287b59dfd4427acf2259d71d00279f893c9ae9c40aefbe203f5096381af663bab4f09b4ece016fe2ec4f7f3fe7b7fc6e031d948dd4e008073c700a334747e6c9758c36a69a00a985c641f1a5ee52c85dc9aa18f3ed0848945011305b0d841a2407e30bb7e107a50a26b2a1cbfed395fcbaab218ba5c75e803422fd6f570e3adea5fd2df7c4cd9a8c020020ca1032acbea63c3f6b34d4dfceca12118dd627a3cfbb28c85e322b6e1b02831400000056930d7bad0f21a5575cfceae04f6197553159bd8496fd4a85eb66ed035ef24104f4d73f9d7a5fbaf84ea328b956264bd35947424daa5df45b35bd2847b7ba854e011f4229dd5be1e46386753647a245759854d5e91c060cf3a002b88570579bfce19b2f767fcd0000000000079a10000000000040435b1a04dc1381a67ee54871d8bb2cd150fd3d22f96749981606e9a43697e7e9986b1cd24a3fa565df2fecd06cd4a5ae06e517cb584a74033556a33450b0c282010020287f6ff2c6e74865b3361711195f5aa0014e5037f3fe57d63bebecc4db8acf11000001561023611176f926a070450562fb9d0d23b617f86001f3ab5516334693be8ee92beca6e8eb89bb15bc57f93519fb478f8caf08f788a48526bceb99c893a4abfdaa1f9b3e8d0473f1e919288fa0d172982086b6cfdcd0e8d5c9ae98762b089bbe56af73530b172dc0a7ef2f088e126875635c7eebc0a87ac4efe39a7a17d4e738f73b6eb2c9672ec371076e96e5233a606ab7551944142d2c02d51d298944074a6e9250ddc5611d81b011fc1b26f783a4afdb9eb477d378a6b4ad298fa153499f54fbbf893d138de9072b1e0dfad2365370b8cd693d4ea8458b4ae333f38013491fc3e7401e29f2b41ec10ff2b34bf147a2d577031307478f849c11f6b7a4674b40d08cbf5cf321b706b21979c979bfbd02ea1cffa658dc511d450e6f2454fd2987d1831a8ea3eaed4ea1971519b9cb065b2d3d0727b6f8516d5db662f914748e5952b096b3525db44c5c431e973f53b0698f5eeba882dd020020d04216c7e55d07909b2dc955dc69d3ae602dc7729dbd66cb877aeb29f1d09d2500000056d49c9a32c9a77fcb059b28e16869fa2e58cc462c04dd09d7a6c490a7b2ccfa4fc9579edbecbfc8beb54c4ab8b0b9f5d71ee337a0a4d9fb35e249b2b6570470ea4168889c59fed78a49650f66db14805721d85577dc4a105d8ef8683d29f1d7ed994bd4f8e6a30000000000079a10000000000040b828169030bdedef99a0282d38471bd601674f77ab0ea7f385beb5e49f544e4c986e6ade378d0038bc5030d72ea8186253181e5fbcd09e782a192613bc949cd20100204371d464cc74d47d6d3f119597f78ebe651d0ce7ea5d920f4663a58be79d723c00000156112bb1ccbacc8c2372f82e97a4d586599b4b58da96c66764f56773383f290afda7c8c88f75b484cb3ffc474fb7479a59d053eb8f2d2da09f700eb880041caa4a420f4f4f69940bd9b2610b6598440ba269010ab1a76ebef2b9c2233dbd3c21ca9b432018a8817d20b15f483300923a1f485114230641bef3c08a4426ac4bc79af2169a3dabd750114aa6a9d1c1fde8bf1b60d37797349617cedd23f2648e3cdd23558f44b4a8b0cb6c3e6ced651a62cdddbc63d767897cd3dc9eae6deca6e6038386589402ddbf874379c41428d00271bee1cb2a302eab051cc2ee0dff2b0745ea55f207f8ae1eeff7969ae370947dd478bc3ac17d6fa5420f53d10356466991d24f364e1c0d83dd3547e67bccf4c1eea49e0831a29c8e605ccc14c2d8778f0491158a2a81cb3fd681516c6db62eb06b210903f267b13f2691aa8ec6e8999b1f4802c7b58973afe399389aa9080f6b1f7f424a03f5380200209ef5c562e065f9e4e923217c514628f2a6574b6af20e41c10c3296a9c25230320000005644fe1d49f25a9549b1e34d59ab1910a9a269ff0a84855e8b866f44000637a7a8facfe16b8dd839717963ec6b0cecaf60e2f5cdeabbf5ed871bc89390e95f15bc28160f81fb26198460fbfcc54959f054276cdc048e8c1069a899d70e1cb334ca074ed79538860000000000079a10000000000040b017da999f641b31b7661a1aa6750dc7278b655af094511f6daa9adb5c0554bd8a95eb5a7afe46d0e9c96f41d8b8f5a519247daabcdeef73ae6b072190abd5b8010020b5b73021a3dcbb3fdc9016838e6910f7083e6830c9ee5756b3178e32b9a5483400000156c5b381af524f86f030354d404afa0f84a0e1c7cb8f308797bfc9c53a59ea22d72a6e2629b68e4367b1105bf24fbbdfae40208e5f234975c47c8a842eb8f894dd38b525dbecd911a6332d2f55702b16a8f4feaba62d8d3dc182278d7d87383c2cf57393d93c89a72ea96238a46b9c534070826ac32e52890eb48d85cbb96b7946110c2d2077176c0f48f173de438eeae495595fdcdb6705e6d31b33c06707d82bb379c5e6e0776cc37a73a844cdf75d41ce5b4f690b45f3192dff386a673bcd82bbde0b1ab12c25a986713faa4666c85f2b6bc44e595b7c6d219100a32ab4945564c6189391968b4f433837a5b1d4682b486b98d8c820bce5058b12ef3d6326ea665e265ab4d7daf0b5153ea78623af42e7999719cf00b553051419b6d2b21a8df196b2342bf4b1dadbee3b2d94e2a1eb3a829da8c33fceee3c6d37b662fefc5d8c6f8a13d8c4c8986a3003d1942c39c51713afe53081020020735b86ea07a39326679e24f13bc21fafe4becf1fa473b93224df2bfcf9b99439000000562b368071cb55428f53cbdebbc1525b6b8e5ded2dcc4c29cab2385d8eeb6a3075cbcf7dd072233d0d6ea806e68b33f0021df28c98fc3eab60b143306f7eb0bb44a40b571e0199160dc4d399abf739ca7b34d19363e00e111bfa7066716d42db6963cea2fb95110000000000079a100000000000405be037a2e0356f53ff7c79e5bfad34649bbf8ce3a9f567b0c99940ac7d5edbbfd2aac3573bcb888a2bf13d4833133c5f727a8299a0fb256bd6eab5a530a5b2e801002004179d00ec590aea51ac712b2e34499f06845cbded613c439868cd324935522700000156678595ea9aeab52272e71c78759b09adfd97dd8b329777fb13ae7d8c2f8f37124521b2f63e50516b5829068910f524bb8816daaeeefb3ba87f5c53558451fad323570384e91957db45cdeab676b7daad83a78b28424b2587b28f460ecb7cfa070b15b3e02fff862dc0ed814518e0690b0f82154a06d4e1861175867f9dcb51515ebce8f55ddd599c816d6386ee246b83ed7763c6b9ff978409e11951805ec2563a5b9558596238799377c7b10f592bace473000f67c12e5c26a9bccfa1c5e14c5adada941ec9705bf73961a94b6c23d6f656e2d1c112b56cc2512fce6ccbba597514176461f1b3c9e7c1dd0bb62d50c59ecd5f36aac413587ab49c5ef38a534150e047843da079478acf7da2418538b333803d2f9e0da0363e096e77473a7f525330f69925e3b738f9e5ce9d370072aa4f8c2a563813f4c66eb70a37b9bb3d0ff197faef48a6be5baf9780b7b4f7c8b450e2038a08c1020020b6b6578c6d5bff17c01aa79065d49f4ab30202c75ac11bc664be3e18abbebb1600000056171b3479203414f4abef8590508a331acc033a2c739933ba903869fd0d5bec7b799084a517afe454ad37417f77aab8c0d3835814676ea12014448dbdbe756dcb9f639e96751b4ec2f10480f5e2df41c40ec59652f43611f3e5b3feb409823f48daefaa726daa0000000000079a10000000000040087e65f469322ee2cd9c3d2f10741fdd51afa9fca9ea54df90da6e5e1868cf6d7460f90de0c37311de8a79babecd051c1b8ad72c2f1d9671dbcaaecc0aafe980010020c7483b76333d27230b00fc8288348ebb63e0e9b84bb323d4638aac0e5fbed15300000156d85b0344edad5ac448e7f50d5e3a712559aecef8a5d957673618ea37f8b453072a916c8deb61f890d3ac4fb35b19a64f32258c2e072cc45bfe604b1e69f926f79a1e5132944417b05796b0b82685e40a2b6cf27b40c0506122641dbacc67d8f27e0a322d832ce441b1054b6f70ad8f4d54a2366b820b461f1391cb873dba2c22671f4ae0fa3440ec4a4428c3a3262af699b29aa6471db1f5e22611830252e7ae464a65d4858ec47ed561a2ce915dd0affc49d6e1ad4711cbeb880595b029eec96fb63fd507c427887e38a6819328929a22a0d380810841ce811e6eaf00da530bb4d4ca289e22c707355293f337b493e83ca85770f46181541015ab68fa72204089aecb85689c4ed07ffcc11525b003b11ccf7bffc65391ecf662b251c1e984247eb817f8515c3b1eba69f0d7ec0730cd61ab2b5c010ae6b448bbf183a1ac6f8253572ad4302dbab74aadb052fbfa92079ddf6fd741ce0200203bb1acc0c8633f65a4672375b2775591086a5c5b2fc64d9c2faedae1a4ed355600000056bad6a08c896be7e9203f56f4b1d03b62331099de7574aa60258ee6e6d6952de6ebb8df7362537368ff34cc3d25c42f58ab571f5c9051a14f1f3836ae9703953c7dbc98ae83d8d3426058702129022b5c559dae922e4c1e2cc57da25e021dcfba481c365925090000000000079a10000000000040c90c515dce672378b7b9ccfd34ea5132d660ad302b593a93f259acf6bbd718d85f38780838d334424bfcb00f7bd94efe316376182e841ed140412b28aeb3d0980100209896125dc1e0ea2f09e2260d723a646c4d19c53c312e9575f07d36e0cfb62805000001567162526bc20d6b29d406ba496d56df6e3b2f9265c62054202cd7c783f8d4a3a84bd7d07fb69ebb17df0b65070c14a517c3d51a7ddb1a728181e0adba0eceb778e1f4a3d89966a7bd0ce49da2da6f617b0fb6e47eb5c54159d4c973edc23ea1ee395417c7a1359d558bd3505c83e23b7a2bbbda1f37e954675a33572a1a7340c14615fceb52a3736bafe617c29ee82b4ce3e44670cfad6e51a4021efcff60f2851571f360e9cebd5d0bdee924191de316a57c473c93f268d4571cc958a693c96af1d72058a6f876b41a868602f43b0c7cc3a5721e283764bae8ef5f3f1cc3704b03a92a9a2f4b5ec4781237772228a6b4e7487a9c5b46592ec4e9e6394c21ac1e1351b548e0532309f7912cc4ad0fec7b7118c61dfb7510cb643e0dbb90e4fe55d178252decd74f14c5f7a410526744aea87152b23ea6ae429db2a8d8d4a7f8c5b62c3d33178e2cf10aa20c265b47583f3372783c3c3c020020f0204c2dca73d1b23c85e34977ffb5663214400cbd0a75e5958bfdc8ead5213000000056ec12b0215bf1f9581bb16656f728342385b65dd120d9d416f8ee434fe4f0b47cb8b9d51a6c748ecc27028df9af9ebba653b3c48852c25b25ac7c29a45fb79d493e29d35958cda6295bc5f5d9d8bc55ac2df1cd26c98c1fb184bd29f8c9b893f479f38d573ef20000000000079a10000000000040ca2ba7b082aff3b191c652a8732b436c87c5dfaa22b07dd1f1ea4e5a6cbc35bb20b7d3c34fa5e2c1ffc9794778fcb3837a1b6621714e373afa9d453baff61c8b010020029fb9a463f31ced1d37f18bd0ad552e61537cae6d89aedd0616d7ba3a56326f00000156e8cb1675ff2b39c3ca3a6be9b5083480472e5ec79d2848ab2041f213d3126432ee468fa91e9af92c6e81584e9a2e41a7c4d1a9d80678ecb1e838718b4ad1ff6cc66fbe4cf3bf6f588c5bd385768b07fece5ad54781e72d84740644c0647ebe6aabeb4e1e9387378230824538f7089bf750d25967c5cb64c5cb3607cd080a1bd59bba1386b916ec2e8a4bde1fd3709320e3766d7de244b5f734d6acdc0c9666079868fb74cff910db86b8240d896a785d6862c01a6cc0d7ea455046b235e58ab16ba64f285b9b9c0906114201dee7c394ba349507fe800ea920397e2ede0accb0d60c1b9cb5156d1ec47b83ef67d1f10fd41ee6c3d9293f1fa19220bff18c6d267decb6d6f8bd3c2209f710280cee8f92a125b185fbc1cd991cc71abf0063f9ca261c7efa01bc51790d3ac42e6f572db6d92d7118301096af94d6909e9793f253b4a08c48108988f14f729468e50f061f2d0bfb5ce010020020bf509271981b25908b6409900cdb84dae0ae434007103987ff0b5715c2e4bb56000000566192764d386fca422deecb411aa733d4777850da46349705dbb33964df7b19e24a2be32f8a49880ddd31d2661e44de32cba8ce6dce069da157c7983da7172f5cd40e1b66efe3c0af32c637cdbf83d4f083fffe85c24c227b44efd291cbac7529ce4ae0db7c490000000000079a1000000000004017218e1e3e0612a327ee1e2db28e3cec81a29a7427864793c7da8bfe991a70623096dc46de445fe9f4749b4a9501b34a8733ee52d7756b3a22e3b222a28b477e0100202f193de29c8eb9f12db27d0e382da84f56f3465cd345130c01294f55e9ca7b1700000156d63c6fa0f987bb130c894034d5f4dad7e3c32b2350b0816fe267da8bf75c76773021740bf5eb2e4fe9d3612725fd5b1a9a3b880c6b08fa02b3a1102b58d1c618c8817501a7be2c3bf22ee4148c59f5084f7b5da9558ee7c3fb6d78b27bf8501521642f85cd0f8d9c4db92334572d4dcaf8f3f83b407103646d721dbc91f379b98ef38dd88023e6e0a5365256cfbf926a3a16fd6adce5eaf20e97a8f9f456f1953c2670e05b68c3438b8048a9c3353dcc5d23d979c090fb8e7a54195ca14c43dec08f18c47554d2b5b9f32022759f1c2e00025b62a28b73aef51bafca736560d73cc68af3fea5d4a177b7ec9e8af7aa8c2a99e2fba6f6bd4189e62157dc8046884a3f8ae47f390cfdce924363c4a84e2fcf21d3bc67c98f8d04b5ed0bb8bfc31c841b804a98472ba5d3e9dcfa3458bbcf37e95dbcb8b5a9ab5d481b581693574ee0a13304cea79b60e47cae5c7322173e9f2fd81f09050200201b9e13775fee047b83b114589f30788cfd2322fe96b1136110c32eed9e4da47d00000056a35e7a710db33b0c5ea053eadc9c84277672be5b2931dbc5595a8ec6db7cbf977cb84cdd3233d618ac3415630b1bbef83bd5394bec3cd49cbc59d34e7e1e261172f3f6ad69d96aab4faa50e73a828d85f54085b97053286ebbd1cf43fdbacb173942afa028c30000000000079a10000000000040469287af7255ff74385445a19b22526dade3466ebf3c22a4a0ff6db8fc0eb6df49d2f01ac79090278f143bab94d5ef007f9130f371f9207b8b36532f87e3bec0010020c01bae40925f98106f45f8006ba91fe68a5cf710a45e05cd3295d03d1467f34100000156ac4e5ea35be066b43e1648bdfdb99dfb2987280671ea5f845d0b4183776ee8a8c2eff9143f2239654d5ed8dc6a54b7d29770f379768a4f0276a88f842e33640cdee988920cf380de6acf8d71eac36c26aa21821074099eca32e2f246349cce7a6406604490275af80bc2d3b53b63fdc01bf013a042f54052188c1df7dbc63eab856d8d8e56383a337601d2de0138a2a4aebc00b857c5ca4015694b108c3587811f71501ad5c3c76fdf0c43967fba4e3bf738dfee4b7de459c1d1bdd973e694ddf0eac68427567753589dd96b353c5508d325980b8f9dc069ff60b90f3562214273a3346cc52a0730dd1adf0bd4e157d5f534f4f62fa7df50833d3ddc76cbbacd2b43fc244c119ea3fecb20ce8aa55e1e1fd48db20df17da021eb6130251efb47dbf0bb3eb35d602afd1dd7e96bd70eb06894006503d09be5d7a0c37ca7e04a749b2d72d2ea3293f03d346e8adc20f2b66aa1c4cd0dca020020f31ded76701596c25e6fe6fff882e015028c552826cc73e3f825a457efd9d35000000056ca6df0f369d9f81355b0f9105da53c8be86bf7c1abe199c55129282185fef1859b87b6030ce436b4a052847e9abe4bb51c9bd12a4a7a69cbf7cc93ef7bfd19466b95cd29e8974840daf318e84533282df80d16c5a9a031543af0c481d4cdc66708411c59e0a60000000000079a1000000000004073d23d279c72bb9e6888ba6601750434f272aec343381500a368aafa09dd732cc8cd5d7c83ef36e2827ea284a73d0fb54330790909a82c6a969862eeb881dd530100202f1f8c535915c6f1c444988c5539265e026185607a9866ff566c6b1537beac6200000156eab77346c942f73e2acb9b584bf390828e4d94f6f34d9d57fb84f38219582951088bd426b2ae94fe91208452e8735e2593d2296990a8e2c6f50a1b0f6595240bb7647f6adf0eff025917ae35ffa0ae7a888fa4d383bcf13ca931063696ffb203fa25153c1ab390ecaa6279c6c37be260922f871371cb18a5d3d552757084d65da15bbe5e8ff24f38d3051159d119eace18e9d39cdf1f7040b682dec79df84b2621d86ba9ee4e1c7ff19f76d65e8d618628fbe7c0dff6e2a0f3453178cb7296fcdb0df91ec643761ea51f0eb7ba75f39ddc39d09fd23838aacf08c397b7ee56b073f5dd5b6fb36c08d1e4d77dc2d2ec587ce890d925f00c0e8881fc791461641463fecaba08c094c1e1306994d9efc9a0232c8fa9430f65526bdb655075f7182e271d2993630ab31a6e60b0c1f5fadac2385de984711f884aecbe26d279a2c17b36e338f83a623fafc9bfb4f7ccefcbfa8045fba5ba5d0200209054ed80939cc505bec0d2f3d45911553b4de5ee2a3a14e88ed0cfa82d457e5600000056cbb0959842a4f87e560417053856e44bcff811ce0e2c17626e99043cab47f2d461ac6000a7b70acaaf6135f9176d2faaaf235d73fb15c507f8cc8b106c293031bee86ebd1fd3cf38f94f21322a9680b8a6241ef1d80a362f26f8bc8c16b5b3cf93a29830a17b0000000000079a10000000000040ee9431901a4c3398a2c6e7da5ce5aa7e79e693f032d48a736b380400baa31683da1c863a35abba44f916b2d9e63ea8dad4e312992af6af5b67453e7bd650bad40100208ba0e03353fb158bc1eb4db2933d98016b8b810d260a4d56a892cc534a81bd34000001567815a4b6c7b89afee1ef77cc36c36af3b84b5ffc0bcd6dcebe8fb5036dd601a21e809d7aadd267c4d2e0c829115195fe8f8eb916f1938cad8bee5b9a542a1b8e4fb9b13dc9796c7cb97414eb8e3558a7b94418ce606253664ce4a066320baaa783da56aa274ef987cff2aa16c052adc40e6a239119d5178e9819282992c975ad04f2e58feb3a78e2101a4e1de9894d1758b59d9f1950376a0d5a760dd4668b1f074e76b32e6cb89943077b5d9394adfc6f5bccdebb04c8ba940cd9c5f1e7a530e9b88eeb22006db053841d63175adf2687dc6c559e196d761853d97c911c9fd88ddbe007a7db41bb2602be4dd0a640729ba8f5930161791a605ba5d857833bf9f04a9d8659af3cab4f1cfe3284fd13b16554fb26649fa52a133035e6ea0d4fd51ba0ee80bc17794e36789492ed9cd8c468a66e2e9ac74e1b3b13c55d68aa99cc1c96052927216933cf8e5953280cd40f3fe1a1622cc3020020902ef540fa90bffd1636407869a02c4fe04bda64e999318cb12a08ebc9e5fd5e000000567bb9ecbc32210d1e16b360b57e7a8148dd1e7267cc6a9be5716689a644f72112fc9435314d604aa58a3c0e2cf4be6bf70619cfec61b0be9b52b40acf09e9a23c0b425bf23440bdd2bc02178fb5a5a07c0de0dc82fdf942d99cb135ee8df3127e7384c12326140000000000079a100000000000404ccd12957877fe172dcbe2ffa1d79c614a624e081c23b77309d228f895f6474f67edf52c33415dc69407596d121af655eafebe3c16817528687ad9866ee033c10100200ed491353fe329a4d3d69e4f9723ecbfc409391d0505dfd2fd1fce44a655a54300000156aed77cc355a839aa9a29751237f59a3ba39e328dad5ee875e8930694d77bae62d204bbbeca2a3200c070534303fcdb7d207dc385eff43f249aff676609fa2ae8bc5cd2ea23d489f6d00d505c361661c7cf25ad9452ccf4e01a8ea79239ad35c8544c50db0c49c60d4e8ba20dd7b1100ac0ca74c067666e8a95264c4bb9351d0e9f269018d257ffa76e97db4678d5bf2282018e0876d5ac6d085f372e347d6eeba3199b967758c7b9ebcb2741f01125c47603717b46f51f83d98be9d4383c7102c0e964f26ed69225a8376760523240da584ae2d41380e26f585947a7ba8138e26a2eaa8d72388e19373e32351cd3892b8791749d8ed6afcdd70ec95276621e5f5158ab2ca7f4138cdb8ace5ee11564a4b5c1ff85be9bffeb9392cb03fba5eba067e6aa630ec965166f37166b8ccf9666b20a0854c4b77178046081b08524bda5063bfb6d63b9fc9df10a897f8065945197120930eb920200204f481f58bf08e86275ef9251cbb83cc80d1a0ed6e1530fc84f1b76f7a6d51f6200000056f1506242c39f4ba63f39ac9ca76ddd6aff16bb92f83fe577b8a0a2f6911c548e8d50c3dc1d41c15a1dd3134586154bcb3d1500ce8c0bd215944fa542227dc898538754092997adf0eb2bbb64bacbebf5c63ac71bca29433031122766c44947461d165bf917070000000000079a1000000000004056f02ac64cb994be3f46e52ddc4539655923c23034ca743edcf8988df7180874669e58c54056351ea15f9d54270c451301ba5fb61bb77ed3aa00473683e6ba1c010020fc6ba16b5bffde48813a519c8c2f99da3940bcb949969a70b42114be0c33fc1200000156d448f3870058d80db003ffe3d2e648152f26bc363e81567f334c3056d49b4d599db8ceaaa01350b9bbb575a18187354fcd170b0b1589a5cf1bf2627dffd88139101ea4fcfc2ff45ae25f79fdde5277d9b50bd2e298a4a18d0a8cbaa98c9c6d52519a075f1494d2b0bc864d2d6826f242744ca2a78e358963d2041857b3b1d9a818f3c721c32ec20b47639fbc4cd58d98d3d43d556c41782d8ba30365356385ecb22ced97d36cd46174c220c6fcf9a0459faafc5e3c0af52f8086c7a89a363c26605a4ff0398b7e06f776e262b2e02d5b01a6bc27e4cb6e22e4e3c8a00f07be5f72ace908a3db0680879a7ef17f58585da579e10f5a295659dabeb7776498dab4b362df9ad288db1989f402df1519ef78240323b0ce871ef912e32250ad9513da3d858c773b384c821df5ef30b56c24736c07e520f119cee71c861b451e6b9809457ffa7af041b311e4654bb3815288c5cdbb7f15eac70200201716d6f259066f7636d6e2dff32dc538361d5da959167e75ad9ddd2e04102256000000567aa99503a7d4e0a454c06b7e6d4b45d544f79246e8378ac83c87091a6eb59196fb36bf26d6135490235e030537ec83831df72df4ed3b8dced39caa928079d08fa2811bbbd9ad05be8c3d08835b888a0149033f6cd0c2476d34e5d689e984fd002c4924ca676e0000000000079a100000000000409c111fd35e6ae5648ccbb64d23932192779c5f34b63083d0ebe374bf28ac9e46b9902a868a9d1c997a6a9317d4c8db493d01af3fe0e7ff83948b2ba5edaf142e01002091e9a17520eae4d7f54769f36bdce37630e233ff92ac7ce3c26ac13df0a4174300000156136cac8ade2769f400cea4c6315b995b676bac1bb604de50b55f09cf379d49253ab10fb494688f2976056cde2c1ce8300daa7927c1488c9ca34a5f96c3b84902c5fbfaa25eb88264b283af455d03450b8631749c3c11824fe7b645a2ac681221a935445a65c18b0e877209c1395d1ed3ed6504495fcce72e6e5e18a8b070aeb7bbe0292cda73fc97712d9c99187cd9c4e66afe0b954521105d9da9bdabdbd65147a727e12be3dede1f9ac14975cf51c4445596cae42c0cc48fe522a368f845e7f9f15f93ec16af31ee3752fe64fe92ff4f5e9713b291d1a75c8087b020865c58dd8d48f5e3c3d72f7d7695dc95d775abffe9b4e0361f95bd3d6bc3460154adaf586d029ab194178addc93934015f81e72a8ae5507ab8673e268b9b78c8c2214ba379203be04323548ea928bb66f7d45f54565594ed2670b0f81aadbf2a001b3c3854c4be71f92794719fafc2f2a72b5ca1a585c1cc3b02002009995a0f5bed3c6abf71c07b39744210f54a37f62f8813961a93c6ba7476a87400000056b8db20147cb393010c3503265b9a1efdf3c9b47f4197314458d426f60b26d218cb2e6413f1a140023d8ebfa2a7f9799212344430bd41b5744e1e12d04f6b7e8144cc41c626a83396d355f02295d6915b01e0db42c0ed4a568385097e5286eb158ab7d9b734ab0000000000079a100000000000407b2cef5e68ad1b3fa9b4306efceb7f4fe6db0e5d67cd62a1c687c3385115a117e8b6c74cbc39b144c0b7478872cf534479d54b02053331667d20a9b36286141401002015bc370f9b572f1370a1f95dcebe793d88965ce34532ae044168c04bb116236c00000156185b7297c77cc1160309866086b4fd8c896bfaefd8912ef70b06a710d350b5842ccf35d97f52c7f0fa53f412c1c4f8d8e9cd8a555614169eabea0de25c17694322afe210b84449e73c0a745c90af2a19b61aa34c66cfe50b09bbbcb76f5198d5a6b095e34973cb7e10db451a615b187c6bc89a9c380ce5dd52e6d72200bfbfdb87e55efe0820eb9640e6e4bce428a4e3a7a16bc563a97ffa62e64fa10b0f15c55f3ddd28738333b3867b1876e19be598324e1a2a7a3ecdfc3342bf84127a5869cc2b6187dbb4f05a261fbb7b7cb466be8bcb022df286dba6a4409a9e5a06efcad6fe424a8df27860fcce6e59eb90dec32bc97da74dfb8ee957cad250b2a0ee4eceb83730bcda52177f568d1cad676dc2f94794a8a58c74a77d1cb640d87b42f532affa49d4e23e8f9b9275c9157d5fc0d95690632345ddd066ac843a937a614d5427103179ac5e0a0e644e776c594010a0b0356a4d7d020020ad7e8f8810aaf262fc7e9e32da8c02b31f051326f9aa45d8765e906130314f210000005674f3fc1f1abdbf0660765f36ee2e034730ce98892fdf996cbf667724ee40d44773b72cf121376f94c0bd8afc40fcab451842bd626343e6d0d40b3c8f25b0a73a6f3c8aeda8d1a188ee9bfef6cee969eca16d957b7e034d90ea560ebdec051d92a183237e8f0a0000000000079a100000000000405dcdaf3c8d6bed0317630e6b86fd3df5fa5de7d4d55cfe48f23911ba207836761efcbdead2794ff67f231e8baed626ba6592e949c9bd8998c46cdb888fc70ed60100206feb676e9f111875626a2c016c21e098d3819dc05463aa26a4cd92048c4800310000015604992ec2fcbfcb42588a77b2a4b5576f41ae3100cc022d922f67a51ec1ed0929ba3012e7fdf8ffe67a7f0d6a2f03358306d0fbc6b0cee5c750af544df4b0b6d4a634ce553d48be81fbf41fc0ec8dbfbe6e5fb034f41cac5ea37b37e511a3fc4a622933aa807faa1aa178fab6ff998b795a30f585dc37ed05b4681b8538b9970f5f8abdb1de5665cf9ebe1f2b5f6f28bf2db7eaff6bff7dfccb492923bc55338f8c06990cbc2c1b0fb4e9b9e24fd081b03bbca233c8098043304a69192f0c6a2c42b9598b5d803d6071fecc48b914f133d8e506750246337a1c8a0c372c91d8e8f8abb4dc6f1d74aa48310711fad8f0af6ec52b4ff4d002351a20a6bcc15210f6e8a5b42e478513436b5193ddda2cd51362f6b5abf00c5eb676f6d0dbd9d5d379a1bf45ab9ba08e6dc1676371faa80bcc267401f9bac06457ad316ef0d070fb0a57cfc55a0ebc68eb36b72968871f2da41bba1a452098020020456c341b6d537471e616f90bfe4dff66bfb75fa2dd3e9c3d759e1c3f1c43c86d000000564d1d71cb4b1e477006f76dbd4d76fe64d65d33ae4418714862fba8ff9378a36672e5fddbcd7c7f976c1dfbc1cac4b850d933349ddc70e0bacc3af87f723b43c507c74886232b7069a8e1370ec065dd30f17b47fa9b0950f7072754d8ffdd90fcc1a6c13518b40000000000079a1000000000004047e2b93aa9c26d71123629cc1feabac5181feddaf543e794086f85a97e81c7cba9677824d11e84668b88db49e8399c225ea7ac4b0c51bd9938e68e0a2b167387010020eaf2f3ea05c5ca43ad88bdb78d568ad7e033e5a1746de599918bfe33ef92505200000156b562c8f7fb782a5923130284a6eb06a3ee5c838188b880c6c2b628f010919474c2c0c56d2ddb35e9ba72151955dbf4d942b7c1418eda2d5d997a85786609267dc9f72a2012a27dd8f0e8ba16cc16b9a5261f6d5c1584d57063acc9cb08a7e246566f290e50fe08acf68c43cc85c6741cb4842541abd8d880d7ccdaa1c781337e966f3c61c1f31f9ec71156ffaca82ee5933425e5658dfee482661f68daaf47ea00d32ffe26d37009ebc419a3e9851370d192929a0ae3756341d153cff8e3501d5182055604c06b32f3bf281055f3116145bdf95ea2c53327c5629951c82c3bdbcc85d126d9c442e3eb5f82a08db69297b22aa414cb35fedebdbb592621660a8357d80520a35a486dda258a0e28af0db4dc8c411f925a797b80efa64662d0912711ad1258bbf69ea0963c20acf2b93216306f9850e6e7bbbdc98ddd43088348f4ffd386a18380404379ddac1c68ae38820c2098f13b70020020b0990936d4c2a3d84730ca86d4efa5ac12836ee2bff39aa2fab85961e1c435020000005656be32c1a84a893fea22ac64f22220179c772a5ef913fe34a2fde3c7acfc88e46ccff1ed992502f69a4f52bee268aa1aba291449245e280b3784156b5f7bde216725756c7c4ea284254ca5e04e8ef8bd8b8438ec736755044fb7356c4fa85f82c0048af09dc30000000000079a100000000000403da55796ffcd461da799cd8e2e62f0876c296e26205793c3e55b85d7e24c8a3291b6832cd9ee233e4f879a9d2f1263be8129613a497c313f0778a6f28590877b010020dcf61eab3b7ee5e4ecf1ede8176ac7662abace2aacd39c918c7c3d663a0ffe2300000156f9c9692f914eb0817b9c295d945476f83461f30f7e1119b908faeb2e5aa56edf14dc4fae5335605da9373b6926e6093781f75c353205de5bf2c764bbb00eeb8bfc8b303b738c28eae30879c7b363336fb02516dec44c7a0484dc0291d83b9ed515ebd2e66738bdc2676cdb57e9de638d4f7edba3ede942d50ee3a944d1bd5a0812d02db93e0f0db2bcda0ac690e3cb8838773f1d5d34f166dba4266bd5ccc0fe93f72e051904b2b03e83079cadb8b25548500d831ad405a093e532619bde396c7bb0bf5bc09478cc37b27f3eab73937aad176818c20bd75304e50d5df20dc7536269fd795bb6ba7217a1a01cf52b09fd0c09fa240818bb426c23b0458c09fdd07f916584e49c85662c3218dde89c2b17aa9ffebd18b2119a6e7960f4dee1272a1ddf314f739ea6334b0621042c143ef8b3853c2ef4daad4cbf4a01d779acf705097ac4ff1e25bc001a53967e10a24fbfdbe1de9e0d9202002072d20b2ac7a2325fa3aba2cf23088d6572ddcdcbfe0076c20e01c87f6ba86336000000568db9abb91dc07c29019b21855e5549a6b6c5225dfe44384a213cd9511ce5db741c57e8d0c765be0e824e5a591e8940ecccb8326298014ce69c4dd2e56c3603e0840abaa36fc3fd4883488a0139752a7f90f800a2489c6ae99658c3db67a6f105da1f426891300000000000079a10000000000040c21b844781fea0deca224379e79d605a65f1a7bebdf5c3fde074b33b8035b4974ea5b92715f21cf88b77fc971a200ce86618e610f5a21e86e9eb0d91328838e0010020a00ecd6590414bc7e9c0b5a14113265eae135bf84bc53a6a938e0c32787f427d00000156346fa7579ed25dab8471a6ade8cce870830a48743e0a89669ee970f561e64cf65387d9be8526441035e421d410f1a212506db28ae465759f2f3a0d64f031196fb7fb63a23c4e8d5a24bb9f6301cf54b1280ae072541dcbf2c83b2211abb31a30fae2b2d5122ddc6c3a8e217623f33d62cd784c5c7e2bb60d00c4bc68684fb0bc550c95282a3b6e71a75da6c9e217b006075cea5f744594652d863d1564a3a061f3bb42fcb3d08d817e75ea02b33c5e149539117d888a20a02b29557cc8a2a59a80c3ea92d5bf1e723b4236c6049d929cdd63402b3640abcefa8adcf5e527d094851513a8ae01a2a8ccbd9c32bf6711c99814e1a79a08ea83abb8a7cf70270e6e4e8fa7ee48711e5b2df54db3580e0c3dbd9af129322e0cd3788c09134bf15434b9cc69577637bebc47340679adef4a23d4ee953523f87937dba738bae2e5079cb7a411d9f14d038baa844d05c38b4554da44c1239c5902002071a0e647146e9f419aaf3d5a6b0dfb18dbbf4eb9fbc326caee28b2e76810ae2b0000005693314770c8d7cb7fb8263a243cca94e1296976a7d2cfd98eeb3188bae6f27ca5ea8f848a8889da756ba90e3c8530074d1d737aef0f72ca4961f94a4a057a5cd60e6bc7702b026e21f8b4d3a2ee1a0895d981984a5ad56f78f1e6ab909855055639a30ee49f990000000000079a10000000000040420ab3b9fc4ed81699d0aba391a87d311888d7f6b1959b021770978ac9b94dcdf1763a26280d8d98c3fe73ba0cce7cc0254956168a018d1be78135ea9580a7af010020959dbd441d0fe52f6d530c1e7f8cdea2c20ba5156d928c3b52bbbb59cda7267a000001562cc783038bda76a3df322fddd5380f3eb33d7feb7c2b5cfb4a2d228b0a5391d222f4f1ec9e16990a8a93d4f94880c9a648b45827f1ab015312ab1ca50dfa13b191489acf626979792c5166bf517f9131bc72abe5bdc3f8c0e05e008616fd5f0781117dc1fe3823b58cc1a414ff5fb97b8031e81fabd3a30d7f5ecbade45fcb6ae257493904d52fb762a6073753cab366b9b3c3db3739d84feddd93f8494a81fc53404df69d1ec739cf3baa9b3c0120907b4a721118a805a8ea8831cd86f1fdcbbdaec193057b0dcdf4c850e8113311fceff8ea0a9c83d93989f14623238da787df6aff0342d853ab9ef41e3c782d91dea8509b087a6e4dbd9ac1545de70f53611de7dc1083abcba84712b9ee38a63dee57b3be0af7735a6e0b1abc1ceb85f07418c9ee384dab36b122acd4720d4719b2c778720725a98cf14410a5cb34e0158386677b37f1946d47c2286201534da20a52cb210dcddb020020a73895ba8ee90130809f8f32ee99293da4dc48ed0753df8a66906dab96216249000000567b22079a9b432f0d9402294a18be650e1c45e43bc6d89e260fceaefaac54fa43b16ea7e63ff54f4f5a5cecd3e56f52839e32633f6b16f8f791efb1b3fc3054e9eb725e44269e5e88faaca274557af566c2905671f29970c23bfd9c06ffa92b33fc16cdb057bb0000000000079a100000000000406fe87416cf05bee13c09473c522c6d60c6cf16d10b7a90f6d4056f44bf7f8e333db181a050dab652037d664bd871ddcead6d09c0692f9cc09590d1938a77beee010020477b62b24f54f3335103711556095625ae30f07f1c08c7336b68e483ed16451700000156324aad584dc8526a9d20999b4cc13b82983872995528ba2cf655c6da48f10e0689e8849f124103f1ba64feb691ab92f6fa639a9aa201296a7072c51e4f9f4c5187098a815b90aa2497decc5d2c8d60157c37d7ecd25e83675fcd14eb145a69c173b5df22696afb623614f17dceda39930803f37433a012eb7659491650ab96bec83aa2296296964535abbb5c534d371ded72686eff4dc60fca15122c77618f4da7c3bb318a841f128feb1ead3ad1b8fa358acdeead4d5dff7930f637ef905f33309712c392d8a4a183cf683f54d56c8fcd3ed23ad7cde42cb3ee41c18d287c91768a45306c1f8a5553316f0941a4e24ef14302c49821c68629ecf6585e6f3f773a47a813b3b9a0e51c5d3d7341faaae882d4e5609b9a619832542f11f39d69b7b5ee0b048f33f73ebdb12f2098f9320a05e4c0e8eac638eb6ee5da7b7cdf4d15b3e19ae8079f7501b14765e1274c0d470a226b33f07b0200200ac6bd20325b36542fb79c0d4520df86f3981df703e36b7c2f0084fbc900f44600000056a86ca1ac84ba010a90fb9e1ad8dbe38bc54ed766fe0f8c6f5b8532668320d9edde7f4608652b16c812853224ea707a6fdd7610d3997c06a91f7b49caed48baa8b0c0b5ebaac07e7251efeec9eae837876b88eb6e49f077238d008cf09d153910a35921c390fe0000000000079a10000000000040e38969cd4c7aa746bd3c1d382cc3084770c44770b66dccd442827962461a2c72864cb8ea03591036fc2a90a5e1575eb5f5362d4ea16915d2f2d1b704811238e8010020b48bf4fee6c0c5d02618761e700664e8803d7321ddef4718d549bf224382e74200000156e6e37def4566e49e3ab7c1ad8c25c238c77ef4dd5410b616ee83be6c8ccd6c42b0b5ba8a01f6a07d347e7b85ccc7e708fd1a67b7769734098a845d8095d203c4f80dc7e3700d6c95b7b2b886b6d399810f0346c1bf00f2fa81edf1dad033397ec71984ce3608e259df533a36d551b65e7253027dcdd248051bc17d06053fbb532fce88449fa750847b01251e4fdcea253a92ea3846070b0d9530fa46e08100e7bf1c1c56685f63605427c3753ee028c9b58fadcb921ca6df97448ff22ccfd587267a12dea7e36ce569733ccee295caed223c1ecbdee4d0b631bdd570dc1633b4bc3c18695d667b39eb652964875fafa6c9efc90cec9fb8614588084d14f2708504978dfc5a781aeccd6a17f9c7e88c1adbd0584e19a3d97835a4244b7c3f88410c4a4593b5eaabeb5e2c8ed3a51f50f2727f158c5a76da3802a70d16982023e26fc24a19e6c695064b7b1cabe3c49f64eb4179ed068d020020f9a12dadb4bf3f80ee47de099cda7471e461f2cc4484340da9ad0f896c8c783a0000005603e6ac8508fe720c672fb7b695945c7529fc574f1dc0abf771a72bf2620968928929c27fc03433a2b915e5e6eb4cf9cfcb34d5b84021e26d28d748627f1a5d09f1e2d84f5355938b578b56a80c3b8d6b00959b33f8887d1526984513c531ef0a2bf80d9692a10000000000079a100000000000404b00a02c29afea1b6902a98d41e6f0df5896b22c7ef7ee08e76d8dc9fac5e0732429eb3245f1387996db9e61c3fec66a44965d0145d510f154eb89c014f6e5a3010020d30fb6eaf42f0d5904000174999e4db2144ba91b022e7c9bcfd1c37c0b2b966f00000156846381a1b0d2c1078a0820fe137c60492f0e466961c5bb87baad7b36dfafe6aa364a3d9caa4391af76d274073403a8177171a7757092d73a949d875a281b00db9f0b5372d4050ef8b810fe5a7e4a2e3508dffdf9183f6fb3159f2c5bdb5b24c92ba99646d77e57cd5089701b9cb7e11dba1b2d71927d9676a0e9ef43039d616e4eb9ed0164b2ec080015ce1e337b6dfe89330f42bc1fd0cfb7b76f8261605e5443ea5375039abbb26f875f5302ef1cc7ac4ef6f28c277532007b002e7baf757cef3f158ddbc55857ebe0af89491c86379e303e0d939e6eb8ce315c5e70b045c1c72f535022fcde2313e2bc24fcb83e1afc9ac0a758a64f8de35506d9ec91587b64ac8078fac604901b56da44c6597c6d8737936da2302ab5fd653a3dd1ca4ff7f6ba20876da0bf7b1274c779ca4d08046835ddd8ae97ae1d22c4631856b0ac205b793bf4aa3127b9e1a59dc4b09f7108e96fd8a399fe0200208e5150bea94c128f1db486d38629a505aa167e035f0a5a9da6f1f33c203e9b0000000056c1e18d97368d9f3388dde996efe809cd0d1e5b9fc2021d540c346522ae5ded69a876534f13841bc4cb4c920523ef58a31e1f82655a684473749e7af9bd8d62c0b723fa798a555e82d98cde27dc4a3eed91b2b366a0768cae5f27c35cad8bacfd55a201a03f080000000000079a10000000000040d77d14da755347c7895d8e171b1dcae2027b67de1343968b1f0cf0c9f63c89ec9d5b875153ce70961a0cc1bf9818b9b269f2f474588dd3e1add6a98637de6f6d010020c442a0e2d4c98f9f3bb6c7bdea6b15e162f8e4ba98015dc4741d40b54c597521000001565084128d492dfd55e65f13768cd767db499e7e1cf5baa85c22d0c7d2741783c4dd0c84518744c3837764e9601a07f4f6a840e1e4b7ce90064c96f976d611ef06fa3d02d0b141a8ed3fe3082ae5fce0542bc917e3d2fe95cb5805622af9ace2b7a33e201c59b9669f4e622200051d2dc19132d75d319266acb0149b1706bda4d797e52ef9041cfedd367b1ad7ef012f90cc6dde7911f37b7cc0b0b2adfa0139f3575e4e78800b8b1ff32e6906c197be6110b41040f2b21af323b59e4725c9958ebcade317fd79343aefffa2aa3fbe19b763df2f88a287e4cb7f56092c11f9cb7cb0668d188d2575b24429c784f42a49bede1ca879b3494ffd1edbef8f27274a640f64a2005c321decad4c9756557f73ff53f6f8e9f2b775fb28b33bd44914ae8d7a1f7a77bdbbd48d68c8b07a60f56d0bcadca951cbd0d660c8732e8338700218c360bf164827d4ab0f95b9e01d5b6b3b62f9374388d5020020850aab16e19c0e8bd1ba2d75c11f4e7299e874d4cb296c4a6e52049a2987010000000056e46ff4c9a23ac723c66d2dacafdfdda1695f96afc7e044d455df1bf79bb58717bd1f129b34abe8e5f9667881c3a8bfa444258fd3f43a169cbbbb060b4ceca267242222d4e0ff5642732470eab92233f4b49c60cad4878cb0a9b3ee0ef418065bbc02fbd0904a0000000000079a10000000000040bc5279606e28bf3e5ee48288a3282f1ccdfaf2af87032b9cd301b95ae6507031ac9b702d15d1c0bf9cd32055e458cfa710a1f77c95929ff6f23dd503040ba21601002012aed840cbb08ee5523bd40cbbb4fd2ad8c67ea8e8fff98b7e718afeeb2a373500000156e57cfa28a0f291111613c085068b0bf846c3fd314b7e1b98e93070f3a91e2d4e13c60f3104ba9959f9b0d68e471a26e055211c5a93d1bc4df215b707734aa7aad0acf494d303aa047a69732981bae14120a9d1d7a600778e341cdf29f569e4d93059ebf71122f5a11916bce1bef1cc41a39f35b5a380f8ce4c40e30304577f2e89a55fff2455faa249502f417fc7018091bbb42f8c6b2ccf971a3d92ca31be779be58325bfd15505800be3b3bd30a872a23f5a57795b28ad5b5ec6cf98245939c22f13144c9626aedc437c0f82f3d2a9120c7d727e6a78355e55665bffc14950ee8826748bdd4ad15e28a278cca97d80e272d8c9141137bf8e8b8c6d3d3788cdacbee8dee2cd4f693c1e69a4c644287205423684b812beec2c026c882035b8a5b28faa446fbfa8636d0cb0679d40e95debda20a7fd00a03a4c8fbb58df338a3026eca076f2b207f47649176ece90518624f0d7752e1f020020496dfde7fd123a5515f8613e19e58dd86b1efc6169348228138d54141b1f262800000056e03fa4673634a6076af20b64927ca9f9a702d21ecbec522619b1d77b061ad1ee1e173d684f0d8e02549511e64cc56186b9ab05074b42dd1c57d7f05fed0f3703cc1b226a0d0ae53c186eb2533bb60711090d4e882489a69cbed7f0df01023fffc42c305483360000000000079a100000000000409a4d195046e3af49b1f1ed3ed40fdbc17db67dbbf4b99fca8ff68cab357b42ec6cccf449597b398d72c3870ca8098ff2d49113dbb24049e556e93442deec4b110100202bdc7e2923e37ffde0ac5d5b939f95af68926cf0f2ebdc3dbc9def653d6ceb0800000156663c8be1c2d8fb3b5e37489ec7ac48f65f747efbcb4f3dc26e51b60cde5f0acf1c9036610dc2fb76c11831a5165d14e141eea4aace51b83e98e3ec16db9c520f29ea5189aeedd8f265d91fc9560efdf08d56c8e44a3d98fc69d7cccc022a1edf0d2a6f0b38b653f9573cefab850d46bd89d8f590ea0172f8b36caf5261cb47a23bc8ff499dd8f29f7ee1ddf3f4d03a37235e50bc7b4f53418380c0dc2de25e3f3f5ab25d3016f059de928b6d5cff620ef95419671909c22c255fc7d5cc73095e12b4b0bda62f67f18d29fccb16153bc392aec7254604a16a99b68a6bbc42537bea6e256e32b232224bdf860b36584237303c739bcf3def34f81e891b324a5a15729b3e1cf18a22bb75afeeb41788497750ff5f9aa4e6ff0002bac1b9ec24013b929dad69a9a94dccf1d80d1fc702919a1f0cadbded621b75590c68205e56fbdcc05c3ca4c822b72884d95d48e77cdd0c79d1fd5be836020020662daafe563f2e0601b809bdc520a765b0735a2e1d23e48f36f9433068d65d6300000056a7c923bb1a996dcb9fae0cfdec8c0d48eb750a6ee52226ecb25b869b242e4d5401c3bc2bb641588b8dbec418f5e78190b1ef8c85de3749d791a3b868abc7190ff79738dde36c2d87a35a1d3026fa9961fbe5a63d89a9acf35012a2ed23aaaaf6ad5030320c0f0000000000079a100000000000404807a1cf226644b57c68e50f6cc94e229e123bd2a22eba6730bf16de1559a5eb9d155202bce5b24dbbc38fb19c647075fe9b81bede928204c0ca0cd237006d520100201a831505b35ca549903e2f516e041433dcb82d86957485d6e42ead0975a4480d00000156aa93b738297324c5fa2698683c7b562d3e0b5a34998dbe15ecac472c9f013d118095d5ef977554594a06f7869622079d5dea2e45bcd22bc94436611cbed0e10a64a749c58c2093221cf7342ea70c73887b3a86ea4dac3e955d3a816944ce3a43ec50f99966a0b68116cdc1cde5caac909d4617f9d8db641748fbca8c9056813b308c574e36644540999fd551230a8cd676b4f6c10c53a696399dd7bcfbb27915cb7058505cbb38ba5dee4e07fb7949070684a745b9d10348f14586d56bdcbc67145f484f8e392fbc186b7de6747aeb93d1a5c7a3df83a232b4e64d0c90dc2542e9b5dfc3b4f3c71a53667d27b8b5996b8277ff9b12bd44cf96c20ac5931999b79fd20bb462c59f9690bc2f33eb26841805b6ef35cf0ec3678a521e68c63712f222961795c0cd68900ed997632a55e50895857c7632813b943b10d1412ac9e5d35c2b18df73ed3c1ae3e6e2309e26e2191b7a54e2ea82020020507877ddfe10002ff0bf4b6eda9ae1c633a2f6d7cefb995aa6b2718155953a530000005678718c1543d12a31a3b36c582fec3e29a20b70c05549db4561c4e5f1aeb1781e6e122ef3b349fdcff5dd19e286d7ed0e46d909f8f9b292de3bd318db92af9b8b3fa593f40afd1a22b5d70096de699ad40d0ed7177d0dadf7b36018c013855bb91b533fb9e3ee0000000000079a10000000000040e80ea44f0af7b80607c7aecab01e439fc5b75329f76b928f5753a55a7fe02599a1804737f590d08d7d041890eeaf7dd50328a7f79cef922986971f881f205bf6010020946c3fd9b632981726d864254da0853a6139ca13e06b3eefda5be80d70efbd6b0000015637f9d1df090a5facc37221febc9f2053191e73f0ea1785f8d050253129d10d32e808854b1c74c177af8a63d1b1529ab0b82ea15dad1cb6e89b78bf59ee16ae9bb2f233a24f731cda7c37004ae966593fec27536b2d068e7a41242471dcfad711a972928039254586450e15a5181b576f959e3523ecb1f415a4225311cf60ccc70e5de8535f094b1eae1764972486f525289895f663f97a5318d3110448501071d6f867ea72e6af7061f885197703cbfbd75e6d1ceb6c477fbdb2c00f33c03eb29d86d3992e5b1c64706e5cf5eab789194da8feb45b63fa746c0e88cd978087217290152ecc488eaba0882af6b46cf1dc610968961d3576b98bad6922da493b4c806a09ca1f4e63529780dbbb693c8cb71c00691ee88fe7780c98a65046032ff853571b018a6d08b8ae40b65aa5dfa3e28e8a99dc03e1211217958fee248530f6a1fc395d67de67a90bee27c1878a6df9d99cd758df3602002076b301d8208b1e99cbae8fe8a6df8ab6cf0a1c7ebff24174399aaf8a18a56160000000565258f6bf6871f63c595ec8bcdbdaf652db6ad92e7c79598ec932fd1e8e1605c650bc322a7fc791c31642290d458dfb4e7110f583be5b371fc00a1934d65c3c0732258a4de23f65b510f367c0afa06acff5da9094caa8b953cc3d35339d48da5c52727933c17d0000000000079a1000000000004029a5b3841fa8d549618fa65b7eaa04b69a7ad8b91b6969af9fc62273a39e048e1feabc4bbf593b0574b003fa4af80df17cb451f8bc57db55e7033248c1515b0d010020d5e3cdbc0312a078da5a503f386280e101fa076bb7789a6523fa519469d43725000001565c06b84e2e358ca6e4e02c0a941b4b360da65d9081057da5c6a50e9b172486f80959015b2b56e4e40c27156538db1c43dce4a6548e578f74ce082d68ee29b35102879a8a63641736f2e6732a2be6363038e81dca8b2d01b2d3370099b881a6087cb1d2bef6a4c98f070c73b428cfaa43c4af661aa80ff79f0790acd2756204ce4cb7d1c5edf4f1059438d4639aadea87e564f83f9867cd7520c8ab31910feb2f7094be161c1434b307b352b67d6a48846a0f9ba12cc3a418968b3ded4433a40ef5ed958d6810c794552dc2097ca3888369b28b0bb4e1ffae329f14d26a63d60289e549b2edb51a66908f2c4dbdecef2cd5a5bf667d809cccc25964e5c0eade3b7e2dc1768b64264f7302d7956f0e0fbb0e228695a42637f5e524ee91aaced6b01d211f360ddc8f158992b8b3dc8ac7cfc91a82cb0a95d885a0a411e769c5d7a8cef1f6be876acb1a69b8276d1adf779df8cd30364b530200201358a8cfd8fe2a4176f8b5ad42c708560bac5b6de012736678c9e63a8f1e4a740000005649b3b35e086aba6cf742feac7736cb8bc1b857a21701da414d2df962dc0c6e0d258ef44d8f9516416b727468971092419a99d759d27691769511df30b31bbe5499f676d3fcf28a2da9d88ce146dfbe9ac456e20051ccba964cd33f00f7f43cf0a7819b0e090a0000000000079a10000000000040b2216057c1c7572dfeb998db0be30d5d493758c66d54115915f361fcd54d35138411afac14222a29077ed8901281ee743f03c22d65c238cda1fd352d638987e8010020fa1e6e8bb0c5fef01f9ddf12b0216af15b87cd3e1e317fa6bdbadb858fa3e30700000156ab69b5dfd8a752c1a95c34894f3730216bcf0448aea235882785d53ff88a5270cd55afd74158b271dc89ed7ed1d1c3178f6b89a6d20c4afce48142a0e22936731fc56a6b19304538d4c8b2b3d7fb2f1eb74b300343b89a2c9212c139c54941c32ac8ed26299ba8f2e5f25945be685f3d27f1594defcc8ea34e6a0167f49da76ef89932c068e9e05cc94e4a0421df0991fa6e578c743b65c8bbe63c15b7238b1b9fe38838af3846363175675cc3be42d758b1b6c428c2181b18ae33b83ef71ce208f6d29320dd66ed4fa487237b8f2479d615202503b6c2178f0b90fee085bbf2aca386a3675dae91692f33fc519bfe3d86892bee84ebd21cedfbb516b2e9786dffbbbf48a370e40529ae66fda315bb7ed1796f5877e527b771d9de2da1b3211c3684ae29d7bd85451d7ee7a55fb84ca814a1572ce41f97f26dfdf4a40a7c464e606a6683bbfc55d94fc215221de64f4fa06f313630ec020020407db73f6192e8c913878746b87ac64aee512a80a556f25813edbd76c587216f000000563b0ce426214244324a63c3c5a6277a7981d0906d1e3da0d257b27cd113f2a6958e693b0c25e4a625d70b6f43d3c4901389bf53bba02705ed8b924806ae485927fa41dfdefb90812086275650af5cf9d4cb9a5df26ccabc0bb4195fd8b01ac940e234e6d8b53f0000000000079a1000000000004014460b9550656e0a7d8390874d8e17872d6c428da0855867e8362ae2c5405e85283eff3c5910411d923d0f65fc938aafc122bde1fa30a4222ec9f9421c6fe82d01002058ab8716e0939009d5fc563e333e85a5fc7b626df5c0e0f0c3373129f82b234f00000156b98fc32fb6e863319f1eaaab213ace40730fcedfaf60cbf8321ad765dba2eefdb802df873c0d2d58db5283a656af80342fcec774c346d8b4730209a35eeef48ef0fc3175b91595e07d367cb12f9b24c963b6597190c64e4258d4d6eeefce3588c9340a7db170766fe9b0779f991e9ca258bcdbb7214b5a39ddeb0d8003553209fc84f6a38720c9eff913b52db53b5c1ae102828f2717c824b14df72f9f12957ff376100360b7be7a85cc8517218514b222bd6532f84d94f80f129361c48dc3e8dfa32cd19dd5b25e3723769242f1cc43cd9175cae97b39e0b66197793aec27bc2fb01025f205498256c4e1ea2111512b604f7bf0498129b5efea9ce5b5e43abe03ce4b5b46cd4ee995f060c56189fa6daeb3b4536aa4e1ec8e5ca3ed5d367eb3a84f0b3cde1b90d319e29600abfee963c0eed225f2a584fb0bcef597692e646702e1456c1e5a0d758a93ae69f2aefcd73c91d48eadfd020020872e6dac0f979cb7355c3a175201f0f75cc67994bcd49ddd30bff4660a434262000000568717d82bf7a609c31920f6851b06b9c11a69812c61c0fe55e6d35df2e54bd7c59e832fda9ae0a0566cdd82c67c371d6a295adce364dd4f0948b76e513beed1da8f0b34cf9867bdfbbbe77f9069a187f793b7ec7b2f66c0e696f14f9f0a950e46c802c3979d0f0000000000079a10000000000040e4d19e0a8f7fca0f38a0a41fd2c6e26c141ba1d60fdb957ee4fecf10e60f7098e5cd304cbc9e22d6f686638cd899096a0074a4b0e19244407c27f8d7aa488597010020715c48ab2c7be44ef74cfbaebcfcbd1bb4fbbe251a59ac9054c84a64b4975c7c00000156e5d10119dd02d5d19f8fb2c2a94f74d11d8cdd27bebc204b8fab0ffb18234d952e5c3c89e1b467a60a9347232c477407f2eda09d0f42745a9feda3d2b0fc9f4f58f5a0f987fb4e7b45120447a8fa6be5fdb0135567806433a03fd83c0b03161d8430e3c3aefbfd468534b4b9d9d48abeddf7ffe83409842617260dd9b9d18e4b242048107ecc57ca280abe2e0df994a6c8597ddc6576d9b1e0968f600131a6c644bc862630956c18e35e03a86dbdb8fb0822ef583e9eecddcf7f4b9bbf2a15cd726831df5f844c2cd6165f0afbc2436a852ff752fb6ad73fe1bcf70145711afa1d12a4a47668ffe4435ba00fbedd497d7fd35db1d97e70f65a63937932b1615f70fdfe29b01595cc99212b4026c6dd58011b646f48c34c39251e0770cb94e4bb060eef60e7c5ca020618e7b3e393c1c26c69970a6e4b6ac0b92db45519cc5cc1274ed705db2039c06c2c3f21c8e0b7a8dea9a0e972030200203f25532e8e8d619edce0a1ddfcdaf0a59732f326920ff5f060fcdf2eb7a5327c000000569803311b003151441192e4f950384346b7f1361f5012254c96e5e4d3a2306e364ffe13cacbbf1269682b2ae877770d1e183fa882bb298341f4c57bd77320c4d2b8ace315b6ef23fadbf25ed42909ed1d9556f64d547cc337f9417169b5c995a57a2f152fb7600000000000079a10000000000040d2d0b4605a4b8a491fbc12e60ab19e6cd8dd2f611c8b5fd0cef52e55a2c15d9f3e74d67d87bd939f3ff6eca99395532f7d6f0fae07e254cb36738fd1530add46010020f7bdfcd9b03e5fff68392e6941b3775162e596314802ce88180a06b0610e187700000156aae29a71f82a5dcfa32578f88a50965a9faf6bec1edad414ee6bef4b2591be5a0df27a28a251eb987cbe7889308d5b9d4d94c79e61027b76745c106f03e5544de22acd5a9684a32c4a31db20632eca8c59c074005cc5bddd4cf70fae3a951b3efdd3b00c1fdcbc369f386a7a17a266c6104452c758d3a16767e4a4a782f21f4a746791814a12a397e6c13bfc3767834b023443887c472a3c00d72ac292e8dad768b06194af70720e0dca8c568695cd6f3babd1fa673e23d11e01d0e46a7325588c1a01c21dfca77cd772aab7f6bf698c3de79db3133154df4d436261f941ccd7d198ad8157a12490f7095ca582aaeaced2935d3a7d4069ba89b0eb0ab047357aab3e6ff8f4d10fd124cfc6863c305ad7ba5e6f7e05e9524894b9fb65bd018e49b8fe7a24baa8aa05aefe546d0ebe17fe60b02d8acd493495b6fbdbea7bc5a2b40b2df72b1ea400226a81aefe21233c96e3c23501fb5302002023a5c4faecd51d7548ab20f3b4828d799736f8a5c331213d1d99a57ce61e277000000056a3b3f2ad02aa8865293685512bb9d9f334f82f0b199fae1c333cf833da9cb5d273df2eb8bfb006574c8c53e20c9a267f511743cc10cb2f0e140cac0339a6f09ba8aec064a88974ed4ed40ece261e3e508a1253f33930c7d3c6a187fe04d2a23254d6f98c5c850000000000079a1000000000004026c3cf6a98aae29beefb9f07becfeae18f5de8181d1e269cb84300cd7082dac72a40b27c3d8df12114c9f8924f661055e18cb87a7f3b357b4b4813b7f148ed810100203eb37e19cac86dbaa4b3f34753cc77b308215bf8b47616506c79dbc9db582755000001567dec5d01b31dd88df17c1e6695568d680a31dcfdc82f2b72c3fbd2f2d0ee5f47ceaa561d98a2b1bfe95f1acddcfa1d7e13745bc26a77ce3b23a42d4b0fccfc098b2b18318f9a0a92a58b56c8df152ce7244db447db140268091e67821d55ec4eea9587b497c520570d0b8c358245a2e6a6f39938f91dc38f1f8208eddbbbd3527ab8c1f636244945c95b32b75a52ba471059ec86e7ccd43474a8980c8ddf29928cf2d0aa41f6f17aea25c8b307cfdc0b8aabe57cd0379f11545e48c68da2cbdffa10011897cd133f0f974dcf0a0b729012ba3e287fcc473f5ec3f31215035ed56f6e69162d0cce207540afb038b8f5e53fcda9df920e946eb442ff7e1f0f4dccbc17b43b83df319d5219ac1355fc9ba065024e8b0b7322ee0210048443fe8797af9afc0633976bc14c3e653aec5febce1aa91605998404306cce5e8ae6f96725579b5fa7ad85ac5e42890c585d5db4709073153604c70200206c92c82e613d8805fdd3d9681ffc579332889d81d43b71722a06c75d3e39020700000056e1ddd638dde67aebc3d8e4b07c13d761a6e3c8b26491d42f17fd3c4a97534b91fb5151e8ad123504080076d2df652680fbcef38fe0204b630c364123bd73ddf29d70de8a464d21cae06fc842c5f1a44da5decd6f037fca4dadbd05ff93a329eb4e48ba6a8e910000000000079a100000000000401ffe8feff6f1c2f6836c3d4bf4613cef12f548551305ecef06ba2ff9994a0c0847265139b5b980f2ec79d295ce37650050a1694662c50577988e0c74e0d1fb73010020aee915074260c23737ee4e9f10ca33393cfd9f7e5551868dac781332d322823800000156c852445e4974f6faccda63abe7628902e599ce8ac5041e9e5e756d6bb4c48bd02d307eb72a71c99f6d5750d2a3f626099750eded2dd41cf744bd039a2c44a09591f4d28fdaed9bd0d14c8263254f5244f4c7660b526a9b30c0d47cd1efdf50c661df807dfacf51eb36fe78f24237c7e3f0d4118f102d622cd14f4dfd30d7686e4dd11af754a47f769b4eb10d72ae6d99e48ff6e714376c960352b9f25f09906e4f623d86f609093a7e30c6524d2d1002db07dbee8faf784fdd99cf506f47018df6b57cb415d608230ab351794e1ac1a7f602f99d58fe03d0a8e6279f688b03c3323bde937848deb62ac132d2289831d268a72c039c8c4deca4ad8a56192f236a1ebdc2682e90b158f19e788427e8dc86642d563c96d14308345ba78910f9dc69f56caee69473e89c684e82341acd469f29533394ef84d1a96362b2b4e14e247fa2b4e7b81bd1f35411a5fb01e32a8be6277f02b56439020020821ae04a7d9e152249225bb88b451e77ce33c8004df643bbf4da0d4cedc7ea6e0000005643d7265a0283ffb2e2a86edde084e5fe11354155c5238327232acdfb0dff5dc06b846c7846002b1e6c8ec5fa6bb36254cf5f685d56c72cf84241c31061b67f08d2f4b15e069294726325df57ab844bd939047a14202acdf01f54c0a9876d7eec81ff0d69c5720000000000079a100000000000402e9528967cbb198140f06267e45f554bbd2597f8d8df544ffa6223bb310d32e0a9f7a157b6abd31e2c1e17b85937b8ec3427333db09d140075808470e508386a0100207ab8102f0d88843891324b1cc4dcda5f493fc3411cf038acf71a60388cc2ea010000015671a382810ffbcd484e021ced983ced652cff4cf87e8073409c71fdf7abbdad29053521e7cd7ef78af570c337d1daba64358bf29c68bebed0810df2b3c1f6ae9045c7dc53cf19a4ed62b088551a2d8aa3d1b321e71485a5edebfc01285c946a8ffb3c0523e15e86d84c9204c278f8b2d98926793174d6e92b587585e6b1851d10b9f46b12eb7f0fb7670f217aac96d95141de85f78ae39f4489f8950545b1d416be76577a1354251d692132487e8538a809779dee8c3d0f6527814fb6a4e14467a3c51837665eba209f8471f21db7dc082a76b77a8cd9dd8fc1ec0d91cf5172ef1851c98e29d82e9f52c385ef61cb69704d54cdc4e3731b58e1bdeab54398e6ac596aed5ecb7662bb64172ae3f318831e7cc93af6c2346ccc0a10173d2f641b9d54dde320f65b3ce2bbf0f03ee9e9f93afa1be1a83c901cf9c15eb3edd0eea91dd86b92ae9b654c0b5608bc170982892f4141a520aa530200205772b15f9da321ba90348bb609658ae4c21e164a6c1834de47d5a2f64b6b4f4a0000005673897cee4e9edf384a228b9bfb447566d700bccc044385f3ffa32d76f0d7bff411e763580304324f437a15bcac024bfef4bc2a521d68b003d05396d8ce936790edbb60f62ca2ded1a340d1d0a0ec999311a6a00a85acda411bfadc90589cbedaff5958a4ce2c0000000000079a10000000000040aaa1ab11a76c5dfaade3b7ca5c0d1af02e2546f7cc9b86b07d43beb2382dc9c87f31a550405b60583f33d3b8b0c2af97134d6e41f4b3cf27fe5e35f916756df7010020ea63ad00ea124e316c993f662cc94f792f725064fabb8e22ac551f807073cb57000002bc514928e049927f48f7ad56cae14c376b80f1d0185cb8fd9954ebe210eab792af453a2f5d7f6ee366478b31fc387d6eafa8c9cfbb571ebceb9e9a440239c181c2203ad7968313d00130cb4277a94b94c63a4e1f218f348e954d7b7b4fe4cd50ef001014c660b6e797da181e639651f9527358f941e2b04ea3ca8cdcc3c08d06d3c515ac50fae0b1381ee5a17a4b7792da35e2d9b403526251bf8459dd260325b6cee3b72b685d6d18e019cc672516d352e2dae9cb4df68bf4c04dd9cd5a7da8ce885fabda072faa3ee9fca98d3c6ce4ebeedc4616f418f2dcd35f728f135dca452faeec51ceffb4e078806559b3314dea9332b1d4d6df2109598b62504bd8e6b18b7cfae8fccef3db19a24b13a7fbebe24131674b079f58583f19c243158d77baa73778770eade039f7c88d0a5ebbb33529b40d9db939aad34a131484b87fdc5370a3803150608c2d8c44af707da56d2ae9b79248c37fdd2aff5c472ecf9dbabf4df042f3d92fd7e7214b655af7d40fdcac7bfc1c67443584e5f07ba560781a3e1c95eb049b73910585d560c20ba390de7c878d0c3a2e4b679c26f8db345912943e19abc8583e0697afefa2e6f8e2744dc029a8a23416559a1913180f315125b8fe28e62c654539957c8773824ee3337412227574adc25c48244a2a4992e6ab213f8bc2bae18b84a564a48bc2f193e71a8edeceae21f6a06254ac0fe395b7011a9bb89b8650082fbc33f947d1d3eb3065b7d6d710e3fa5c666e0dc7c3dd899b0d5055e31997d418b5152d09a42619f046f357207cea2bb0aed4d9aeed74075323bf41df9de77eff0ad1e04b0a9ba93a76e580602044c9603a1fd763a237af8a5acda551a1a65acc20d24c14821ad4a89f3bee13862b4a87ebbf21ab5f15df854381fee9032e795695f34a1e25dff4ddffb5d507bfdb38b12736bc7812f7f5e0b3e65fc3d5bc1b616a277c6f4eec9ad601c40d293df1c1f739e6efeb4302002038af55498123369e06971bad2839427ef65a937f3f54ab3e041991462cba0c46000001bc033d56f25c835a57f19132bf10352b4db40a4883cb577780fc3837277d3fd69410d7e74fb3d741cb53d829772107196802d83b51928a017b114838b5cef84e96b2eecc28be50c223470819d2b0a60332b36d09d2e3740787e501ee15acafd3f69fad4c5845d98223ba9a6dfcae0f50bc5acc3829297864a278cfbe9664b384ca3ffb16db3aaeb87171356cb3626892c1e7661edfc38d0ad7076ba91234bdd35c4cfa73f173b6c38d6398ff20d1f36e6ae6e70500fa12389fb7fe551b0b01cdec226269ce31b7e7760e07648c31b216b91fc2f51b1e784b51c858139060228ddfd2c67ca4a637018524964bbf4b3710303b1016f398aa04bb145ab1e55278e538f8abaa7860641b7e1ad9ff3da9763dfec30040b32efb53f7abea07a3f6bfce6f9798382db80482864af5d2462ab819268fd1f8e6aff7804cb7024a0fffb3eccce477386395f564e4e0a51066bd83ba43410b2baa32c9a9bcc100f2e2dd9c82e171a511fa024bf4b4d6afa7606b5ed4ec2600964d623433579f0ceb4b9fa2d06bc426245adadbb4eb473b43dadf4e081cd43325f4f88918e72348ddb8594579ea3a5e289629407f3069dc3b87c3f44fb7a419bc18a83f037c9eed11ccdaff52cbacd6f8aaac74b16c0ffc61a40000000000079a1000000000004000de6415364a0adfced2eaaa83b3e0f06c3ac14946666848607a5fa708261c3e0c4c3075c395a132d1856db73c1f053e91216a7974fbec02c698db159dc70759010020b9fc50b7f579eb4ccc7fc8454816ceefe6fa4414731cd76fc823e44fb7167a050000015686a9228b7d120e9bd14268c64d99a907e8d5ae0d53b1a4ddefa5d5bccd4f6ab16d8541f732811405b8646ad61735d9903441a6534aa4c2d6423955ebed8353b5731aa0929a7008123c6a906bd29d25eb860b53e9b44795790e2100daee0fc80727418dbff3d9167a92fe0fe1c11ec594a7b112ec0f23512fc81ba5d5101fa2fab6f0165556e1cbaf7cd45e46311cf3b27be046b25b8cff23c0f0704261352a7fa8b542d6bead7ec3df20a1fb5dd503fe58758d5a482e77acbaffc285fedb20b287754859d81d9c8e8aad9a57b1535931ffb0954092271154d43ffa04ccf5e54d63d1551625a28a96d7e33c72b1357bbae0f084c8b9936a265f46369623c83cde59b9945dfa36fbc10ac4dd610b2480607cb14b282968fdc8afdb97517d56e70d21b1a48497c57358115d45559d3d154720856b0f7ac9819779f4907bfbdaf0b1fe9008a7f145f3b2bda4b05f2ef3b4cd8aed8855905b0200201b6de608f640ee8c9bbc08452029b43a0daf1e1d8d1e3c121a5537da2daee8450000005669304cde906061352c689704e45d51097098649008e3bf3ac7335ddd20b6f2fc130d5660bc3293bd5dddef34142d5152b09c79fd8d969214495ac6df4a7fb7a83b90c378747a28c9235a6145dc79fc71b459714c7fcadfffa5745dd283d3839506a3d9bdb1640000000000079a10000000000040650bdfa7bae8496e605f7451cee9f3f67178e4dba93dd46830c630aad720b73ecbcbe94c9e7727c1354317d87f2e6a9085096e03c8968fac4c715d44ebf1e50a010020ce1c83660b3f1d3c76722115760acb62f88fbfed9930f275d5462d30e758783900000156480fdcd6cb4d1b44657339f8ec9e9628886014a35b8e11e4f1ea29f0bb0fa0c728ccda0175afa3b6dd157eef7a32330ab98bfc437dfc8d20751e9fbc1c8aa569ab44885f51c7146c6eb05ed67a5be4c5e565e8808aef5e3d002aa86417899c7db77c2d704aaf7597dda7dc0021abfb8267b049b6c57b09a71bd3f0c81981771099d733b31953d3638aa5754e28b7dd26c33c81896daacf584a4a6de60ffdb66819d2ac416d7347ff03ac4d56b64a8e19efa34f852f4a7da1dcbfca062d48ca871ed9065dac7fdba1a89821b11aac92deac62bfc0608b12e06c156efd68247dd2690be70d9260af82dee397d4c0a9c6880a9563559a5aa0497f5fc77378ce8418a09de9ec291a040ca24434a1c8cb0ae3fc3809efa749a4d8c4e09dad8f6808704dbd4abf0423ccd037199a7ce86f24e9543c70bb0af4ef77364d9e1f55ab08c85432d104602a2ac4974af1273ec3016cdb837f6e3ea2020020000c37a907273943555649cdb8c2679a57527ddbee7663faf1dcfb93d5b5c30f000000567b000caa308ea3b27344a80ffb3b2216528e2b9e8c24f5f668d82a41fad2b38452cdf18776100ce08ca9bcd493811c56a4e15ad626866658dbaa9738f5c17e8f4b660fd0dcb104c31ac0c06d8d94a82454f42d302667e220ce927106ca7cc5ad37c8a4436e1a0000000000079a100000000000402b86eb1897085bc00f82dfad5080f782333b3d049605583ea4dea92e220e2e9e0621b01786edb01d9b9ddc1c34bc454e8b2a1b5f77547da9b0d0dc665c9523fb010020cdb558ae12e875e5962f2e18be1e00e8e799198cea9713490e1ad8acb310f85e000001562f7a180a9de54fe9fc3c1adf2967d0e04b33e4ba039c4287e5346dda6b050c4e2b021c849093edc3c9955d1d21ac54f20da0e8478e1ad8939b14e950252fdc0bc16902492d1cd35e0a2e4e85f29c8c2cdc631e18363f2c8751caf45ccc6532a194f6f431f80878ace0513768e3259b2df3f5f635f05d7a5f97eb57b5862c2486c312836b83847dcb363f5fcab3a4b4e16b36392cc4e4b278970a177414490a625943b79c85f777dd10775a66a20c5c8bc0ea2dcc351fcbe9c8d8ea0feba8dbb6c40e3d4ab0ceaeffb6d880aeb7ac59744bbe50ebc871dd5b8244cd8b523616beec3979aca64c3181410e9a999779a2eb8cb645ba1e0054cb3a3e228902840a3ef0fb6c2d2bcce8ab0cb29ff248876e37bf7b6ff5e0812d2d90c012824d5e6f47866753cb8edb297c874516438460ca0abe28c14b78a9ed9d6c6d15bbc1779214bb463547980450eeb5c5010cdab3e8fa874c2e30b7e802002031f8e846da4092468ef0a7e4e2009a6d61b785fa6d3c502dcbe8e6b16f729a3500000056704c5ab2cdc462ae3582f7c88c88c1cb196b9b4019124c5e16f5fbfbbbf800f970d87276a98ada07292a5c164399f15d24d20467a2ceae0843930c3ca9446bbb30dea12f5e474df23a84c238fd7f261529aee0a916baeaa03128009c88ad52e07344d5ac08b30000000000079a10000000000040b8ca62ce5e97e026e734e73672a610f89c0be0f014a13834975ae676d76b0b48974c4d3aa3b86fc221056fa4d90dd6ab5dc61fee57ff6a60f10ca4561580f1ee0100201f93dae146c8426b2c79a61fecf5d8e8bfe51500b6f69a70ab98ae969cd81238000001569b0af849df3bcd1ee13698164d84d2e85ebbe73564545b0dfe24296d4ae19d45291ce9d76ca027127a2aea5b876b574296c28600da858f8d10b72625e1acb6f50f714e60f576007b0ea6465119fb0acee43c6b76d7ff7e84a72eaa8a76319412e2a8556b052f7925c20912f43fdfadfc94946bb1a8534e25a7bc493328049082e8d4d790919befa31e2c9bef58d35b3387b0d6f08b0b1478934481d60b77a116e66d09a38ddfa0a2844ea1f94b68dd5ee913b8d3048ba5413affb800e3b862f70aadf0083c9403291f41b74c7f162c18e8032cf81af5b087ebcd40df57a4a0812b049f00a5a2cd12cbfbc8ced2cbc59325fda7b6f5f2eaa7b9910285b8a9afd47497a07a1952c39210ca402739185981cf764b4a3b37ccc566ac484f9bc9aeb4a7fd9f02d618032ca7a5b26a389c925cffa428fbe8f1f02f22ab821873d437d713a1202b719e4a3e7eba9eb06b3dce45071b3df1cbdc02002016454dc7073c856aa68315102b5f75c662faf9139b888d6cc845e883aaddf14a00000056e6835be4c25bedce744ae0cd44635660daccf5972c3e75593fef4d3a91c2d9172e3da58490acfb371309849027f1584123c48888571fb7d863c3b2725bfcc75f4f9ce5c72a024c1349e26eccb263b636ae9de6d8162febe1bf3899786f4f9c0cf15f8eecd1990000000000079a1000000000004072f2c9d097627df152416133a8bdc986e6458cead47b07e6b512eef9359697aa09ea1d6702554678ccc99a29f75c79275b3e3dbdd3ecb73475680f6b3cf7cbf6010020c2907cee9d2cbcdf5cd5b41ba0fa5cc9800c058a8edbff23652f8a0f968f6c6b0000015666597b6df23ca4ce3a799fd421dd4a587cf1fa7ea096ccdc8439ca2e0f6711d5be566778093b351a60009542ab574cf4901fbe41dd2e54d434896a3631721c74242fc227036be8fb722b5a649483be4af9c1367c2757dea127b4191031e3eb2f33546ab14240094158dd23c77fa43c1c8af2b229726de5be6703d10c0893eb6e1a343976ba3abd18a0afcb36dba62d0fb04f3975b46075475d4ecd23dc3a6e8c773f6b5ec684b8cbf46b4b86e58b26a3de9a73e473c74cbc7165a537dbb19d05aacbf1012f6e9f1bc51022231857d33bb88a67feefbd8a19207beec48557118834c812ff1436e06a53a3f6413b4f534f73e527f376664a3ba2d28978a62d0705c3211f5d1b9b2155f7b91443476fcb81f473a982d9944b41a9c91c83935ee5b25f52485e3381d9a76e582c65468cb39309803e4159dabca9bc30978bd16a8b22311da02c75c87cba62e4a82b5fb5e4c825a7d058a568020020ceb824af55e871211be039d3445b94c06c1228a066d2e9700c8bf16fc87d0a4e00000056a9965ce109a3e91339156bb2967e86b6cb6c96e5b784313181c46bb1ef9f16a5cb92eb00821ec612ae77856b58d1e1cbd03117717594ef2c5391a38971a5ca8f292988da71fb3da52a3503d00c0d38a4e35bd466e46df00583b60d103e1f58781bae7130ad5b0000000000079a100000000000409f1a419d36a30490025c06fd149fdab6514a76c788fdc2e0a06111d80126ad2aace550ba81bcf7ff785ecf7ae49e85acfa25a03ff55756ffc72a5ae59f2702d9010020055d72a771b3c4ef9daaab5c479328c4313150ab19145379b97bc99721636c6e000001569acb63041d9ffb05c71ae4c9217b7657b6bb4efe111eec1e2a4eb640c19e6efa6adcccbf3320b333edaf2590d587d88d8fdd4c75a9eefb0f249cd93b3addf960710286b35549eff4e3cad5828a4ebbd2f0a5d457fafdb338f0882b233d8e40115331de7fa5bab4c64c041b31129a8047083959ca253b4c303f46398b5d1348bef7c8e7a2fe2ec91d96e3422c6050ddd0eefe689a5ee9a2e06a1efe6dad75f8c26cb8c3ca54d2e8cf4ff44fdd08e9038999f979b640cfb1837ef9bccbb65b54a65b6d1f3b33580e26768e88ab8390baf4fe91464a662cf1937c90e33129f3788f6283aed70c769e292a1d5c77a078e734c3fb1b6241901b38d2a24101db6807b9be512a230960df2952eb02cd4f29d1d1dd471f51fa7626cda07342ee44c7c3d58b5816d011a0a9c4c576d5865d3bca82d2ee9e9efcac9c67cfa075eb5a048ff66a4534e568a010a6dfa3c376b4ed78c214a0af5499e5020020970fddf4677407b33c87a36578b0b956f3bb313ba0369aa27b90d3941d709e0d000000565954191d3de4af856b6c79980b0c8945fa647e6ef54952c2f81cbc0f3915c0304ae9e7286255f8b30552587850f4ca80b775cfc7b3d299e3271458d7cc7b558259d3174e63a83596d2e5047f11a75083ef30d4d977ecf36e6ddbcb7ac26123bd8c9bb92d3bd20000000000079a1000000000004065ce3b677fd9b5bc54c3c0e22081967466edac67d53feb8153ecb2c5b09190e5d77733c501e8ab0f1169493e3b26defc70c207006e4023259475937aa2b2ddaa010020c3685522c3b7ab6a6bf3c137cf52e32ccaf00212fb67e4fb641b2c72718968110000015623c27bcefcda989c7923a48b121469a89dd55d5cf1420211393e79f44c0515623e2c465c7c87c3bae5dae8cf25f27a537ebe1e362d1a10b44bd246f30dbbb4757b62cb4bdc3781e8bdc7c5b72dfbbe639fa827bfdec7977ca474057a1bebb492bf2de614bc5a33c1fddc97f16ed852052b17f45d007479cf13816df664a5149dddbbe1b9234f61452db65337820ecc1937445750e42b7ee82dbb2d258576bc45226a98d27b22286997ff8e31791fd26180a9f8fe9a99f9cff753c7b14fc70181e701a0d308801edbaa03bf55cd0c8613c3bc069e7ec23a897b25d7909b6f46b69181c9cc09b4710b52e2a56cbc203372d94432d35f45e14291ba81acd0e8e31d074da7b93babfe8a45f1f50fe8df6f524a0a1d83ae55a29b79902ad5cdf449b30be3a4ef3105b2e2739fe05cf1ca789fbd134ee15764169ab3409d994a887864b3c9d2634b5d58d80c89ed998eccb3a2fba4283ffb7c02002035738aafc78066ed5e3f41fec6c018173be216a773a0f4c64e73155d3b4ceb4f00000056a4f017a96a01f4f4fdb798ba3218b4a30488aa4eb5b246332459a8780bd5b685c4bab3456fb6cb3b4783b8482c8de144fab05bb2ca874884cb7306172ee653f568eb300584fec5e4cb87b6c7e0d42dd6e05179cfff02f436b99a597997d80cef2a9459d82cbc0000000000079a100000000000403d3a47ef190644f6e02c41eba8db08acf33a7f0969f4a3684acc0a99ac8e82e4d4e9f9fbca7258fa9ae9d8b463f458065e222f660b5d76c1b3b53f7fa1b14dbf01002046a1b0fdf84ef04db9e37cfa3a28110eed277936dad312b965a3366999c2fd5900000156026cd6270fe2c520b2c59a0bd3b9cf42e02464608c82fb4bd1892d77683039eab00417d9d700c9f587707f077c7baf4fbded4476118aa0d759d42e4b07636de6c1c79cf8e70c4923d41d4e86b8aba3c876ceec00a5b5abb8bb56d7da4afd734a0ed052e481d31ada2f4ab8dc21f80a157c9a555b2b3bc9ff3ab6a48950fbfcbb3825c4067c9c300d6db477b67bcc9cf4cb0cc5e8fe1348f58af06d29221cd3cd575dbb94003d4b35396d09ee9f9ffcbfb4e44712a2571c59101f29568d2db22a7e6e975fd415a9ffc41d776a45bb6f67f9dbfbc3065274cc196d6e5a0fb5123d34c03b375afdaa580027b2094b4564b09a9e6d5f80f694ca0ff4994c804062e55e159b20e46c2c6affd08bc8c00229b28ca3468ea1e35739a79fad10875d0e87642821d6234e0cb84c9cd5ac4a70ac31e5dc661c204c920d633823d816147ef7ba6532a5ab6d618f5174d67c2e41d154190df50dd3f2020020828acbbe1126761349bc3b12a72daa03c1fb608f623b0f026f9ed232d28e900900000056f65df920af391d7991756dde5163bc20796e6e5b915523dcff681416ef34e529c79c65b8e35ae88924fb6b5bac6b8d2e71455cb751c0dcef4776f3437ab2c5e8e55d2f8ee7b72d1ddeecd602f7f8eeaa1c7f7790d9dbfadca38ba9b2f554e963340bd5c4283f0000000000079a10000000000040c555deb10080c35d492881953e6e42f1b672e890d73ca86e9f3c59591d99a412db07bb8736267408374aabb6ae83a16022920d1fe195135f3af6dd007e286bae010020216e7bc037b2351a9c8d110d1f59b148dfbfd5ffaf83de5a494ffd70e0f5607c00000156de27121b127fde0beeda2fb7d59b844f5235fd5fb28eb83482c0a07ee354b4c368101fae6f09310becaa4f7dca46301db6facce935e0fb3ced24c4adbd6aac453963168d74112f0b4d932e2751e632f4dc0f60523f8ebdb73151c1ac4ba5f0a05cd15d50582a9a308222c3ccdb64d9dd92dbed282e4ed039c761a10f53a3e1da6eb1d725ee9b15ae1ec033a020af6a7b0357bbb8194e553cfc44d62f7c3b90c85aa03a85b4c158efbc6ec7560ef9d76041de0051e57f1ad12e952192142c0c72c5e62fb7fbd3e7119fb688ef76a87a07fd3a3b727879861b4d879e2f96942b7c6b910d935f62fd4513add9cc39c706232012a0687d98d7e6e1d237ca12bf2fb330537440a672c0509237b258c9647d4d6cd0a83ab9afcbadf205c4652b02a5d8e5ea00e2b22cf8109fa813de33eac29c5852a56320242ef52a25a9d9c8df2e5e5f00fb4705cd12e4f8471447536d42e29700f8ca14a30200205f1ac40c92742a87a229950a5cbfecc48c89aae3dc5d012802f44308a916ab7f00000056ab00722783a18028f984919e0fe2dbb3005c06339009745ad1f4ba775d7aea1c6e1e1298a0a6efb8dd2e0afad686892ccdbe705d5decf6eb8148390022cfed40dae2264a13845da65ed9f0f028d1abaf6f480a4a6e59fade2d1b528b8af4b7c74394f130eb330000000000079a100000000000402823922d7093ac4613a6087d6f50c211c960c867ad925a280606b9be460a380fcface8645d82c99fbb68ee99519969423e87d8e874e638dc3814fbf50870509601002092f962c33f100c209a6bd89a49291f001eef67ea7c7710fa7faba74da04e075a00000156d0c4bd11a64fb88e3da460d8e336a4a575c2e4e2c54466fb84bb0bae783cdbf1e8a649cc3095c0e61305a2b130cff83d5b1e63ad50f542f09521842a56b422770015e7b31bc6b012a9558cda46f74f2eb00a48a41358efe7221d26ca95a865423709f8e62f313fae2790c2b354e8b13584d6142b35f0fec09869e2d055eaaa9f628c41f26d3357276c37de3408d43d442dec5d112bf23c9f4bf80e457277ef206593b9920c6cb74da90c6b0454edb8acf650758a4d0da74572aa25a5149866d9f20e6d1fb8d41c6648baf36e2145150620881039df890bde98fa6959936d76774d99555c4be3a0c6696e45ccfad09dde3e394b855964c803c290c760b17702febe09c88fb44f2241c8af15217c03abcfb4171778359170056d1e8893a770853ae92900bcf02e9971391d86e7e72cc7b9b4cbceace28088b765160c40ba54c14e86505a04e57025e55baba628241536925b5b2e67e7ab020020ce0fef89414085ddd5a4303a74fc7b5a451f1768689afe0a9a6760b5e18ade470000005669801c9a44683a313ecd80b009d3677aacc154466c901846b393e1c210369fb826bbbfe70ffbca81c05e7a6df57dbd7082d012ccec13fa5c76e05fc50ce63494e147413e2b3bad292822ba7a8c67ac89c9951642d308", + "response": "", + "errors": [] + }, + { + "step": "aggregate", + "init_req": "0000000000000002ff0c1419e1600308bbbf51099c2b930000000000079a10000000000040f15a1d865b0d77ac7be8a335a590b6bef7d62bae7bf402912e61f82b6a1883a6943d6a24b1674282100bbdca1a22337133f236b709684584541eae33c5b12614020020309367adeff8ce5a1c79b50f3e850549a9b76b3645118539ce1fbfd03c7a5e7d000000561c47ff8effd7ca0ccf38e0a483aef9f43623f087dba19ca9dd65ef0875fced0b557c6e82ceef9fc6b4c6c916aa863d35fda243943c0e8de2a79639e14bacd587ebf1409b60b3b765eb263ab0e6fc4155a6916a376ac6000000a500000000a01c6d48282d4c1bde4d66b44ae7dfe8158bb3b3f329a8ee2fc54f160d0136e7b584da1642f4469d154c6a4f5a6769a22b0cced45847b6d75c1925119b28b5616f96d70672b82dbd7de04655349760644c222a9bff17584b69855b1a0c3f191fde1cb544a1621c2b00234f42af22ba06c569d03e145b59332de27acea7031696f1f15a1d865b0d77ac7be8a335a590b6bef7d62bae7bf402912e61f82b6a1883a60450c98206bd4a9d2485ae82f6e9cbcc0000000000079a100000000000403fa4df80e4cb778102ae253050c17885e26c5ccba69eca03c0f8060bbacd817e046a52feb5dfcfc2b4fd926858cb1b0c3e40416a916167f5a8941ead6d6a1b44020020221a0ec115376ab0fbc18e7b045f5ee7ad0257b7273dccb4e359efd180c1b8120000005612d12a4eb3f139f02fa70cbc4360a5d8e70dbeb5c9505e1089341f9f095601a9537afd3c56c5ef98163aaf02e4d54efe5097877af7073a94eb8dafcbd419199756b5b4ce915fbc0cfaae5e43b97187f2e53e14cf1671000000a500000000a00a26cb6b319a2d7ec00f31d56d79de9b77ba20086951c0f07810435be5ff6cedfece8d0ec54fe7486575c2136b793eb997abc4697dcb1788bb6565bf49777258a05021292961d0e941cd6b5c1a658d98cb3752742b48c08f633385040be7fd832e69cd44f58cdd65d2453d5cd1ce33bd3fb1658f37525e872d488c262fd074993fa4df80e4cb778102ae253050c17885e26c5ccba69eca03c0f8060bbacd817e0509a8adfb2ae1ba0039b9c4964528930000000000079a1000000000004021c5592aa95cf4ec8843cae85f26f687ec02cad44a01bd4d371e702052f285bc50d134f03edef89eedfe50a3dd16a46fb611e01050e5fbcf47be36f0f54794280200201b9b7d77f782868efc76d7401151d13d34104c62134cd5a37ae0676e89ef3228000000563b1921bd2dbefc9df808e34d7b75bf430445ec4d8069ecb0132a53052742c3f72d230b148448d47f09459bb087711d9bf4c95febacb47afed3e0d4283d437fb46878f6b43477e1f6617d07510063f844db011e8acd7c000000a500000000a01c95a979bfe1d5c59660c25da743b1093497e5ae9b7d60618e93eb13b22ef963981864283f534513f2026ba913ca1314438a99c5c71a856e343d2c706d784fcc987a6b9bda4fe7f6bbe32fc18cdb38b8e87d53648baedc52e2ef5a1f05428b11eaebd4ef32bf6fc9c448775e688803b91fca3dd4fd4c8fbf06a7a0a42a451d0221c5592aa95cf4ec8843cae85f26f687ec02cad44a01bd4d371e702052f285bc0a6be3e2be908e89522d1beaf56b0ef40000000000079a10000000000040721955bb6eedbb3ccc62fd3651707ce6e75df91d8c8974ea8c089f016e0706ad62ad3836d99ca8d50516e857ca7f9e725d9a73df5ea70d2d355617f532f7ce9a020020ca1032acbea63c3f6b34d4dfceca12118dd627a3cfbb28c85e322b6e1b02831400000056930d7bad0f21a5575cfceae04f6197553159bd8496fd4a85eb66ed035ef24104f4d73f9d7a5fbaf84ea328b956264bd35947424daa5df45b35bd2847b7ba854e011f4229dd5be1e46386753647a245759854d5e91c06000000a500000000a0771ce0b2f9f1f16f761df4398cd09a748dfd82ffe6e5263743e2572e7370e545388bf80c14cb641bf8649ccee05ee472927cb8c6de10213bc11f1e09d7b650065b679663e0270e02f77df942958e38f45711be21c443e3d51bca9c47faa0410d918a6246af59db72ee9f409fe5509ccd16f30204a4cbcc522b234cc8e4dca006721955bb6eedbb3ccc62fd3651707ce6e75df91d8c8974ea8c089f016e0706ad0cf3a002b88570579bfce19b2f767fcd0000000000079a10000000000040435b1a04dc1381a67ee54871d8bb2cd150fd3d22f96749981606e9a43697e7e9986b1cd24a3fa565df2fecd06cd4a5ae06e517cb584a74033556a33450b0c282020020d04216c7e55d07909b2dc955dc69d3ae602dc7729dbd66cb877aeb29f1d09d2500000056d49c9a32c9a77fcb059b28e16869fa2e58cc462c04dd09d7a6c490a7b2ccfa4fc9579edbecbfc8beb54c4ab8b0b9f5d71ee337a0a4d9fb35e249b2b6570470ea4168889c59fed78a49650f66db14805721d85577dc4a000000a500000000a0ae5d4606ea3651034fe1b2d65c31a66a00295e9ef8dd60f470f0dff9674483f4f71ce4b3b73aef06a63b851f994348b3cc297e9653ae35bf681fb60e14b55322e91dcc0daa1eefde6a4f9c89e62b6418f6724fa54cbf126234fd0b9f131ef914141ca42ee1e7b504901a66a5f1642acc118fb12861234a4e2134423a48705b47435b1a04dc1381a67ee54871d8bb2cd150fd3d22f96749981606e9a43697e7e9105d8ef8683d29f1d7ed994bd4f8e6a30000000000079a10000000000040b828169030bdedef99a0282d38471bd601674f77ab0ea7f385beb5e49f544e4c986e6ade378d0038bc5030d72ea8186253181e5fbcd09e782a192613bc949cd20200209ef5c562e065f9e4e923217c514628f2a6574b6af20e41c10c3296a9c25230320000005644fe1d49f25a9549b1e34d59ab1910a9a269ff0a84855e8b866f44000637a7a8facfe16b8dd839717963ec6b0cecaf60e2f5cdeabbf5ed871bc89390e95f15bc28160f81fb26198460fbfcc54959f054276cdc048e8c000000a500000000a055722184cb628ba54e7b0d9283763e91009150d0fe2d0655e5b79dde9ab774584c95c423313d8bbf3d84758586539ee1455150ff2e5fc66ffeb6f3f7387cb845472f8cb922ef72b1ed621ac27e0833e81b7b16d2ab6ac0fc7266e94132d1f354c83c29ff5abf270cf70b5c01437a8a9216b0f8236c6b0f99f54856fd2989fad8b828169030bdedef99a0282d38471bd601674f77ab0ea7f385beb5e49f544e4c1069a899d70e1cb334ca074ed79538860000000000079a10000000000040b017da999f641b31b7661a1aa6750dc7278b655af094511f6daa9adb5c0554bd8a95eb5a7afe46d0e9c96f41d8b8f5a519247daabcdeef73ae6b072190abd5b8020020735b86ea07a39326679e24f13bc21fafe4becf1fa473b93224df2bfcf9b99439000000562b368071cb55428f53cbdebbc1525b6b8e5ded2dcc4c29cab2385d8eeb6a3075cbcf7dd072233d0d6ea806e68b33f0021df28c98fc3eab60b143306f7eb0bb44a40b571e0199160dc4d399abf739ca7b34d19363e00e000000a500000000a09bf8ee90d2981bc365721bc4b638dd5b42ddbdcde7856747d3160cc18a4874a7087b54bdc99e2d3d670dbe8e9d6aafc67f948d4bf9a90407359120617759180df9868006e15d1a0f7544d41c4fc95a20ea516d719c4ec556ba646500229f9d702472ab29e46c4388050bca167c9d8bc849c6936274e074d72cf86b9ba32d61e2b017da999f641b31b7661a1aa6750dc7278b655af094511f6daa9adb5c0554bd111bfa7066716d42db6963cea2fb95110000000000079a100000000000405be037a2e0356f53ff7c79e5bfad34649bbf8ce3a9f567b0c99940ac7d5edbbfd2aac3573bcb888a2bf13d4833133c5f727a8299a0fb256bd6eab5a530a5b2e8020020b6b6578c6d5bff17c01aa79065d49f4ab30202c75ac11bc664be3e18abbebb1600000056171b3479203414f4abef8590508a331acc033a2c739933ba903869fd0d5bec7b799084a517afe454ad37417f77aab8c0d3835814676ea12014448dbdbe756dcb9f639e96751b4ec2f10480f5e2df41c40ec59652f436000000a500000000a05b238692c5381acf7f5a7ebcea15b4241c9447bbcc4a4e81fa143cfb5dd6f8cd171f49b5761e018417593a40dc09a915a9839e7b94576a378a817e6fbf87a9b8352d870e056a98cc703847c99ef4a9d66af85d12d36d85f5bfe0b9a5b744cdc3e85fa778ba686a658ace3c314a86334c8fb3480fc73b6af3d0cba6d700dccef85be037a2e0356f53ff7c79e5bfad34649bbf8ce3a9f567b0c99940ac7d5edbbf11f3e5b3feb409823f48daefaa726daa0000000000079a10000000000040087e65f469322ee2cd9c3d2f10741fdd51afa9fca9ea54df90da6e5e1868cf6d7460f90de0c37311de8a79babecd051c1b8ad72c2f1d9671dbcaaecc0aafe9800200203bb1acc0c8633f65a4672375b2775591086a5c5b2fc64d9c2faedae1a4ed355600000056bad6a08c896be7e9203f56f4b1d03b62331099de7574aa60258ee6e6d6952de6ebb8df7362537368ff34cc3d25c42f58ab571f5c9051a14f1f3836ae9703953c7dbc98ae83d8d3426058702129022b5c559dae922e4c000000a500000000a00195884a2b3bf85465ff6c13ac5f5b0baf3454670a83c9994d22d0139ff5fd065987b37f68e40ab6db01d092da519325b48bd439c9aed7ed0991150c2c446863a883638d41c313c51209abea1dabf5a218b1c9bc7043cde0b05700284935c3ed61bf3fa3766fded43f4b80a8d0922275d70ed86453f822b386f7db88c011024b087e65f469322ee2cd9c3d2f10741fdd51afa9fca9ea54df90da6e5e1868cf6d1e2cc57da25e021dcfba481c365925090000000000079a10000000000040c90c515dce672378b7b9ccfd34ea5132d660ad302b593a93f259acf6bbd718d85f38780838d334424bfcb00f7bd94efe316376182e841ed140412b28aeb3d098020020f0204c2dca73d1b23c85e34977ffb5663214400cbd0a75e5958bfdc8ead5213000000056ec12b0215bf1f9581bb16656f728342385b65dd120d9d416f8ee434fe4f0b47cb8b9d51a6c748ecc27028df9af9ebba653b3c48852c25b25ac7c29a45fb79d493e29d35958cda6295bc5f5d9d8bc55ac2df1cd26c98c000000a500000000a0308e9882858259f246fe388333603567a321a8b693ec180d61cab944f2efe6ca0b1f498da4619ce99b34bf87ad495e1458be9eedc983eb83c57ecf5ff08551cea45b1fe48f6549532ed7129fd425005bd343d17d01991252cb0cb3eb71c486a12fb9e39d0e332f90c698e27d51ee4a588332f595e6f6eae8199e230a11e6010cc90c515dce672378b7b9ccfd34ea5132d660ad302b593a93f259acf6bbd718d81fb184bd29f8c9b893f479f38d573ef20000000000079a10000000000040ca2ba7b082aff3b191c652a8732b436c87c5dfaa22b07dd1f1ea4e5a6cbc35bb20b7d3c34fa5e2c1ffc9794778fcb3837a1b6621714e373afa9d453baff61c8b020020bf509271981b25908b6409900cdb84dae0ae434007103987ff0b5715c2e4bb56000000566192764d386fca422deecb411aa733d4777850da46349705dbb33964df7b19e24a2be32f8a49880ddd31d2661e44de32cba8ce6dce069da157c7983da7172f5cd40e1b66efe3c0af32c637cdbf83d4f083fffe85c24c000000a500000000a0bf00e43304205cefd21f368eebbd7bb0fa28952047d2fac6aaa8d6840f0f2e6ff45eafe863bb7a053542f4fe0fd7e9c2ded8bc93cddf64315b100e6f11a32b591da2ce59400b201ec550784078c5dfca6d64d7b390a3ea46f340f5a8e94d511ca13ed390847609d2e8eea5ed29632bce285f2f0b3b8dfeb4bcc43c5d0a683716ca2ba7b082aff3b191c652a8732b436c87c5dfaa22b07dd1f1ea4e5a6cbc35bb227b44efd291cbac7529ce4ae0db7c490000000000079a1000000000004017218e1e3e0612a327ee1e2db28e3cec81a29a7427864793c7da8bfe991a70623096dc46de445fe9f4749b4a9501b34a8733ee52d7756b3a22e3b222a28b477e0200201b9e13775fee047b83b114589f30788cfd2322fe96b1136110c32eed9e4da47d00000056a35e7a710db33b0c5ea053eadc9c84277672be5b2931dbc5595a8ec6db7cbf977cb84cdd3233d618ac3415630b1bbef83bd5394bec3cd49cbc59d34e7e1e261172f3f6ad69d96aab4faa50e73a828d85f54085b97053000000a500000000a02fc306a69edac0e1455b6711b1cdb2bba1f07a857a56c5e1eb9b80052dd05f890a45364591f0b3abd41bdd7adba5e5c1c4bd08f316bb991e1090b1a890b4bc4fcde793391984085da91f8734b09e561101120c033e58f1a2b697950cf751b4cd417ab084cd5a3c267c5a563bc53c9139bb877851fa8f8f1b4d2a9ee70fce3fc117218e1e3e0612a327ee1e2db28e3cec81a29a7427864793c7da8bfe991a7062286ebbd1cf43fdbacb173942afa028c30000000000079a10000000000040469287af7255ff74385445a19b22526dade3466ebf3c22a4a0ff6db8fc0eb6df49d2f01ac79090278f143bab94d5ef007f9130f371f9207b8b36532f87e3bec0020020f31ded76701596c25e6fe6fff882e015028c552826cc73e3f825a457efd9d35000000056ca6df0f369d9f81355b0f9105da53c8be86bf7c1abe199c55129282185fef1859b87b6030ce436b4a052847e9abe4bb51c9bd12a4a7a69cbf7cc93ef7bfd19466b95cd29e8974840daf318e84533282df80d16c5a9a0000000a500000000a0e933a67c6081d9a695533a70a751062a8e05d9bfa9a2f0ba65475a67a1a9657fc0621fca332f88f99f72fc7947149c579e0033129804ec512e5a0252e584bffcee62c16f7bffca0344beda2b739d3ff3b4e577dbb90ee9744f6dec2f02de7130d6939211f8551aedc26d12893474f5eeee28da8a6055244821c597091d39b728469287af7255ff74385445a19b22526dade3466ebf3c22a4a0ff6db8fc0eb6df31543af0c481d4cdc66708411c59e0a60000000000079a1000000000004073d23d279c72bb9e6888ba6601750434f272aec343381500a368aafa09dd732cc8cd5d7c83ef36e2827ea284a73d0fb54330790909a82c6a969862eeb881dd530200209054ed80939cc505bec0d2f3d45911553b4de5ee2a3a14e88ed0cfa82d457e5600000056cbb0959842a4f87e560417053856e44bcff811ce0e2c17626e99043cab47f2d461ac6000a7b70acaaf6135f9176d2faaaf235d73fb15c507f8cc8b106c293031bee86ebd1fd3cf38f94f21322a9680b8a6241ef1d80a000000a500000000a081afeb0759fa52fc136dc0a8fa886da1b4d996696d853b64c8fbd071704a4fa41510a203818be2f4b2222c6fb110c84cb12d583f49941726e5f87cb6f15be6dfd952879fed126960510e3d107c28eb84c4d114c077b0a31324a216719e1d2c23b30e08d9e42da4875ddd4a66cf56faf5a4767fd6bdb1fb9e292cf268df316a9573d23d279c72bb9e6888ba6601750434f272aec343381500a368aafa09dd732c362f26f8bc8c16b5b3cf93a29830a17b0000000000079a10000000000040ee9431901a4c3398a2c6e7da5ce5aa7e79e693f032d48a736b380400baa31683da1c863a35abba44f916b2d9e63ea8dad4e312992af6af5b67453e7bd650bad4020020902ef540fa90bffd1636407869a02c4fe04bda64e999318cb12a08ebc9e5fd5e000000567bb9ecbc32210d1e16b360b57e7a8148dd1e7267cc6a9be5716689a644f72112fc9435314d604aa58a3c0e2cf4be6bf70619cfec61b0be9b52b40acf09e9a23c0b425bf23440bdd2bc02178fb5a5a07c0de0dc82fdf9000000a500000000a08bd1a56c001fbd04a138547b72f3240a56ce0fce8c8e5581d6aadc155410eb04a13024a5a66266ab5a9735be2e8ce8d73a81a1fd8e2917ec8637578f56b2dd76fe19433b0afefeefa2df5ff48a21b449e2b81f183b50fba5f1dfee4e41c2a8b790a68ae670cbcca64e3b291c535a7fc8aed326c8e810924d2d3ab82087348d49ee9431901a4c3398a2c6e7da5ce5aa7e79e693f032d48a736b380400baa3168342d99cb135ee8df3127e7384c12326140000000000079a100000000000404ccd12957877fe172dcbe2ffa1d79c614a624e081c23b77309d228f895f6474f67edf52c33415dc69407596d121af655eafebe3c16817528687ad9866ee033c10200204f481f58bf08e86275ef9251cbb83cc80d1a0ed6e1530fc84f1b76f7a6d51f6200000056f1506242c39f4ba63f39ac9ca76ddd6aff16bb92f83fe577b8a0a2f6911c548e8d50c3dc1d41c15a1dd3134586154bcb3d1500ce8c0bd215944fa542227dc898538754092997adf0eb2bbb64bacbebf5c63ac71bca29000000a500000000a0d710407e34e8670d326f0ee32822293aaf71090706a99f6293c29b9363d8e2ed0b37ba6b244fe4214fcc78fffd9b3bd3449be087da6d1e64b91db9563e2139a4540f1fa5f82b6fc263c789e69ec9460cb3626f1bef7dbceda9b48f8f1105986319f7b9470b0bac49c7a82ffef76f33f4d978769ca981355d327cdaaba6dd15aa4ccd12957877fe172dcbe2ffa1d79c614a624e081c23b77309d228f895f6474f433031122766c44947461d165bf917070000000000079a1000000000004056f02ac64cb994be3f46e52ddc4539655923c23034ca743edcf8988df7180874669e58c54056351ea15f9d54270c451301ba5fb61bb77ed3aa00473683e6ba1c0200201716d6f259066f7636d6e2dff32dc538361d5da959167e75ad9ddd2e04102256000000567aa99503a7d4e0a454c06b7e6d4b45d544f79246e8378ac83c87091a6eb59196fb36bf26d6135490235e030537ec83831df72df4ed3b8dced39caa928079d08fa2811bbbd9ad05be8c3d08835b888a0149033f6cd0c2000000a500000000a0bc0d130a965d7aeac01c91d954be42de37f8d14a9cb8b61b476074a591cd1c8c994d80e2d1b6efe14434f42dc3128f7ae2151bddf4fc073519f068bb05ad816935bab47f4000f87738861fe92021638b56a03d0822f21df4a2eaec44907c171e19716be212fd3989ff93bd127fd766c4d7defc579f4e31a06b2b1fead42dbc9656f02ac64cb994be3f46e52ddc4539655923c23034ca743edcf8988df7180874476d34e5d689e984fd002c4924ca676e0000000000079a100000000000409c111fd35e6ae5648ccbb64d23932192779c5f34b63083d0ebe374bf28ac9e46b9902a868a9d1c997a6a9317d4c8db493d01af3fe0e7ff83948b2ba5edaf142e02002009995a0f5bed3c6abf71c07b39744210f54a37f62f8813961a93c6ba7476a87400000056b8db20147cb393010c3503265b9a1efdf3c9b47f4197314458d426f60b26d218cb2e6413f1a140023d8ebfa2a7f9799212344430bd41b5744e1e12d04f6b7e8144cc41c626a83396d355f02295d6915b01e0db42c0ed000000a500000000a0e149f1fe2ba8fee26152d4bab5b52990d806767945a7c4faf28568f43b9de7da64b86a8600e721ff0fe3502fee24250fa9e73124c808c4faa778f78540e9c9a17cce2ba269367b47d45873101694bab92555c5cadf9c7a1d8003db30980684bcecaf028133a44f3b9fb379f5924125e8758d0d99e81d44498a25020e8c9c32e09c111fd35e6ae5648ccbb64d23932192779c5f34b63083d0ebe374bf28ac9e464a568385097e5286eb158ab7d9b734ab0000000000079a100000000000407b2cef5e68ad1b3fa9b4306efceb7f4fe6db0e5d67cd62a1c687c3385115a117e8b6c74cbc39b144c0b7478872cf534479d54b02053331667d20a9b362861414020020ad7e8f8810aaf262fc7e9e32da8c02b31f051326f9aa45d8765e906130314f210000005674f3fc1f1abdbf0660765f36ee2e034730ce98892fdf996cbf667724ee40d44773b72cf121376f94c0bd8afc40fcab451842bd626343e6d0d40b3c8f25b0a73a6f3c8aeda8d1a188ee9bfef6cee969eca16d957b7e03000000a500000000a0b639918aeefe69aeeb491c7d5f8466e535fe44e98d043c324c009879a9df5dc1817cd49983c2115d8f7b9b2e92d39e173210e07107e91519e08ab1d83266ad769e6fc412a26058cd60048ded428ed011995a4556313195266534b213f4c081d756f6c3f3b270cd1041454e45e2664c8d56913dd41f57bae06531a32dff8efc5a7b2cef5e68ad1b3fa9b4306efceb7f4fe6db0e5d67cd62a1c687c3385115a1174d90ea560ebdec051d92a183237e8f0a0000000000079a100000000000405dcdaf3c8d6bed0317630e6b86fd3df5fa5de7d4d55cfe48f23911ba207836761efcbdead2794ff67f231e8baed626ba6592e949c9bd8998c46cdb888fc70ed6020020456c341b6d537471e616f90bfe4dff66bfb75fa2dd3e9c3d759e1c3f1c43c86d000000564d1d71cb4b1e477006f76dbd4d76fe64d65d33ae4418714862fba8ff9378a36672e5fddbcd7c7f976c1dfbc1cac4b850d933349ddc70e0bacc3af87f723b43c507c74886232b7069a8e1370ec065dd30f17b47fa9b09000000a500000000a0c3d29e0a45d76f7265442a43e8b53499b4374e3462c3244664d961a196cc83b2751e1b3f742db0b2cadb79d9b1b69e174955f3e538acae86cabd802bcece7bdb7ed0ba0f910d1abfca2b180a06bd82733a942410d2abd137dc9ed88919b4bdce285b0e1f9436204b5c4ce84ae953abe8a28dc960e1aeb9c96620694a5162a5ae5dcdaf3c8d6bed0317630e6b86fd3df5fa5de7d4d55cfe48f23911ba2078367650f7072754d8ffdd90fcc1a6c13518b40000000000079a1000000000004047e2b93aa9c26d71123629cc1feabac5181feddaf543e794086f85a97e81c7cba9677824d11e84668b88db49e8399c225ea7ac4b0c51bd9938e68e0a2b167387020020b0990936d4c2a3d84730ca86d4efa5ac12836ee2bff39aa2fab85961e1c435020000005656be32c1a84a893fea22ac64f22220179c772a5ef913fe34a2fde3c7acfc88e46ccff1ed992502f69a4f52bee268aa1aba291449245e280b3784156b5f7bde216725756c7c4ea284254ca5e04e8ef8bd8b8438ec7367000000a500000000a0674ca4f6195f7d1e80a7b80b7591461ce0a7733d2d8ad729ef8ca3257197f729ea53d74998a7d6bd7107762803a89e69db4fcb8d1af0cbca61651cabb3b4b8caf41a0276c0ec35974240d70f61f1fa498722572fe326e4f5fa87a95686204c06132ddc5111c1a351b3094189f4448c253a66b0a318e9acbe3af364f5886116ac47e2b93aa9c26d71123629cc1feabac5181feddaf543e794086f85a97e81c7cb55044fb7356c4fa85f82c0048af09dc30000000000079a100000000000403da55796ffcd461da799cd8e2e62f0876c296e26205793c3e55b85d7e24c8a3291b6832cd9ee233e4f879a9d2f1263be8129613a497c313f0778a6f28590877b02002072d20b2ac7a2325fa3aba2cf23088d6572ddcdcbfe0076c20e01c87f6ba86336000000568db9abb91dc07c29019b21855e5549a6b6c5225dfe44384a213cd9511ce5db741c57e8d0c765be0e824e5a591e8940ecccb8326298014ce69c4dd2e56c3603e0840abaa36fc3fd4883488a0139752a7f90f800a2489c000000a500000000a0024ba7ffd578ce44d190f8e8ea4532d0a9444509697a42eab74705591a611c1cc996206053764cbdc7fc6bbb950677f71119443dd02dc19d2434bc89371802d97bd9fe4e01fddfcd3b7edb831b0abb2e6d2261a60dc08fed64dd74a142332811bf08714c37568b9bc02fe170fdee438e561bd334fd26a191c660c77935312c553da55796ffcd461da799cd8e2e62f0876c296e26205793c3e55b85d7e24c8a326ae99658c3db67a6f105da1f426891300000000000079a10000000000040c21b844781fea0deca224379e79d605a65f1a7bebdf5c3fde074b33b8035b4974ea5b92715f21cf88b77fc971a200ce86618e610f5a21e86e9eb0d91328838e002002071a0e647146e9f419aaf3d5a6b0dfb18dbbf4eb9fbc326caee28b2e76810ae2b0000005693314770c8d7cb7fb8263a243cca94e1296976a7d2cfd98eeb3188bae6f27ca5ea8f848a8889da756ba90e3c8530074d1d737aef0f72ca4961f94a4a057a5cd60e6bc7702b026e21f8b4d3a2ee1a0895d981984a5ad5000000a500000000a00901f25b7a7095e780642d57d0b638d66e57babaa8b5a315200750bcde4f72536c299a01707acae5ed1264f3a56474b5b2e17d11b12d222b75bc5a263c8ac5815c35c44cb5567596306a7c24045f653a3154483d7e2296f9878504a1a711fbb65a4574da9f58050d75adf388e5049d48761ed993fa0930f73726644ff5e9e41ac21b844781fea0deca224379e79d605a65f1a7bebdf5c3fde074b33b8035b4976f78f1e6ab909855055639a30ee49f990000000000079a10000000000040420ab3b9fc4ed81699d0aba391a87d311888d7f6b1959b021770978ac9b94dcdf1763a26280d8d98c3fe73ba0cce7cc0254956168a018d1be78135ea9580a7af020020a73895ba8ee90130809f8f32ee99293da4dc48ed0753df8a66906dab96216249000000567b22079a9b432f0d9402294a18be650e1c45e43bc6d89e260fceaefaac54fa43b16ea7e63ff54f4f5a5cecd3e56f52839e32633f6b16f8f791efb1b3fc3054e9eb725e44269e5e88faaca274557af566c2905671f299000000a500000000a0bd924142a2ae811a767ddfb633e55c1dc0cad3df8105269e779eca16e78d2f6b04f29bb168df6d7546da31af5febbf8d4310d5bbcf65bcbeed5f8606f3ca2e104b061232e7c15ce1cb3e1d4c7b6483c42f04b874015ebd76ef3c34696222f43c68c36ca0ec8eb2797ed5603eb56cb6f83996e92a1154d3c16b6539fae6cce106420ab3b9fc4ed81699d0aba391a87d311888d7f6b1959b021770978ac9b94dcd70c23bfd9c06ffa92b33fc16cdb057bb0000000000079a100000000000406fe87416cf05bee13c09473c522c6d60c6cf16d10b7a90f6d4056f44bf7f8e333db181a050dab652037d664bd871ddcead6d09c0692f9cc09590d1938a77beee0200200ac6bd20325b36542fb79c0d4520df86f3981df703e36b7c2f0084fbc900f44600000056a86ca1ac84ba010a90fb9e1ad8dbe38bc54ed766fe0f8c6f5b8532668320d9edde7f4608652b16c812853224ea707a6fdd7610d3997c06a91f7b49caed48baa8b0c0b5ebaac07e7251efeec9eae837876b88eb6e49f0000000a500000000a0fdbd0a4cce045c322ef0767e3018a15edb191a1c855150d3b7a08022f701fafea2a62a0f6d21fdb9ab600336e16571bc0cdde08028eb1b1443acd5e195231786be36ad0643175ac4361fd5bb2754324a54d58f998932cec3abd56cf94867e0cada3cfce140fc83a28a4707ddb57a8933c8f015813e4252bb690001c8bed4e52c6fe87416cf05bee13c09473c522c6d60c6cf16d10b7a90f6d4056f44bf7f8e3377238d008cf09d153910a35921c390fe0000000000079a10000000000040e38969cd4c7aa746bd3c1d382cc3084770c44770b66dccd442827962461a2c72864cb8ea03591036fc2a90a5e1575eb5f5362d4ea16915d2f2d1b704811238e8020020f9a12dadb4bf3f80ee47de099cda7471e461f2cc4484340da9ad0f896c8c783a0000005603e6ac8508fe720c672fb7b695945c7529fc574f1dc0abf771a72bf2620968928929c27fc03433a2b915e5e6eb4cf9cfcb34d5b84021e26d28d748627f1a5d09f1e2d84f5355938b578b56a80c3b8d6b00959b33f888000000a500000000a0ffd441b65ec3dfa2c3dc181dc9735b1c55ce189fe9928d6783009a68623b7a5619fc7dd38025fe36ac942da4bbb5d3d2bff6be2a042b504d22f55224860fb9fa6aae37c2be95961c3b88a78f93ec1d3672e5ce8aba36de5e63953268547beb1c273a2b1f984ac367f513c8ccac987332bffc5d1f6cfba3fd8d53ccabf24efc70e38969cd4c7aa746bd3c1d382cc3084770c44770b66dccd442827962461a2c727d1526984513c531ef0a2bf80d9692a10000000000079a100000000000404b00a02c29afea1b6902a98d41e6f0df5896b22c7ef7ee08e76d8dc9fac5e0732429eb3245f1387996db9e61c3fec66a44965d0145d510f154eb89c014f6e5a30200208e5150bea94c128f1db486d38629a505aa167e035f0a5a9da6f1f33c203e9b0000000056c1e18d97368d9f3388dde996efe809cd0d1e5b9fc2021d540c346522ae5ded69a876534f13841bc4cb4c920523ef58a31e1f82655a684473749e7af9bd8d62c0b723fa798a555e82d98cde27dc4a3eed91b2b366a076000000a500000000a05eee3228a651193d2269b0e974d3ad49b88dc1742887d5ad1e9d8269e971ff40e69d2af18c316c5b5335d4b77b00d4a17209e8443cbe2e03816d9186df4799e50f252001891b84c0d4db728a036b011f0a4cbcdad6443e776d8dc4af0b7097cdc82097e8ddf6352a6d9fea87209498c32cd91bf83d6e395e9d24efe9e967a0c94b00a02c29afea1b6902a98d41e6f0df5896b22c7ef7ee08e76d8dc9fac5e0738cae5f27c35cad8bacfd55a201a03f080000000000079a10000000000040d77d14da755347c7895d8e171b1dcae2027b67de1343968b1f0cf0c9f63c89ec9d5b875153ce70961a0cc1bf9818b9b269f2f474588dd3e1add6a98637de6f6d020020850aab16e19c0e8bd1ba2d75c11f4e7299e874d4cb296c4a6e52049a2987010000000056e46ff4c9a23ac723c66d2dacafdfdda1695f96afc7e044d455df1bf79bb58717bd1f129b34abe8e5f9667881c3a8bfa444258fd3f43a169cbbbb060b4ceca267242222d4e0ff5642732470eab92233f4b49c60cad487000000a500000000a0ea3dd72a631892e46973e1db2ec8a87c9665d905c4e077ab81836ec63d34d41151f6fa9d7253314b42c350ed21f378b5787900ac090e6afdf184e062c4e5a25648a3f345c711bf823c962bb8b38f2a6e3c445d567cdf25354932a874e9986cd7097137c48298a8c38a399b49b20466b247322f26e7c516d84ae7535f1cf3a780d77d14da755347c7895d8e171b1dcae2027b67de1343968b1f0cf0c9f63c89ec8cb0a9b3ee0ef418065bbc02fbd0904a0000000000079a10000000000040bc5279606e28bf3e5ee48288a3282f1ccdfaf2af87032b9cd301b95ae6507031ac9b702d15d1c0bf9cd32055e458cfa710a1f77c95929ff6f23dd503040ba216020020496dfde7fd123a5515f8613e19e58dd86b1efc6169348228138d54141b1f262800000056e03fa4673634a6076af20b64927ca9f9a702d21ecbec522619b1d77b061ad1ee1e173d684f0d8e02549511e64cc56186b9ab05074b42dd1c57d7f05fed0f3703cc1b226a0d0ae53c186eb2533bb60711090d4e882489000000a500000000a0cbcb7ea1233efa7944c3a2ecee499bc8891b9b684c763ff58af989a105a0242d202765a48417c09696982f8fd970c0111e2a1a3702044b00332c4ce71378dce95d07c35f73a5043a5d6b09564187d13845c397fb52e209885a2e04edf4fdc4dfda19d80fea93dbfb857deb0cbd68d2d292083cdaf70cdcd8977776cc230e0327bc5279606e28bf3e5ee48288a3282f1ccdfaf2af87032b9cd301b95ae6507031a69cbed7f0df01023fffc42c305483360000000000079a100000000000409a4d195046e3af49b1f1ed3ed40fdbc17db67dbbf4b99fca8ff68cab357b42ec6cccf449597b398d72c3870ca8098ff2d49113dbb24049e556e93442deec4b11020020662daafe563f2e0601b809bdc520a765b0735a2e1d23e48f36f9433068d65d6300000056a7c923bb1a996dcb9fae0cfdec8c0d48eb750a6ee52226ecb25b869b242e4d5401c3bc2bb641588b8dbec418f5e78190b1ef8c85de3749d791a3b868abc7190ff79738dde36c2d87a35a1d3026fa9961fbe5a63d89a9000000a500000000a070316fb2d59819d4be70ad10684f8f22ecfbc8e8927fc8408bda9109613d472f34ec7746a68c43a46ba2a9880a6888fc6f5f6a8c594a8cae33d70a8a93dd726a664d4d4199e48d4335a933544794358be39b5f6f23be84ac18c229765f028afbb83663a3b23fe799ea704112a312d541eab2ab7754a3f973f9443f0b2cba09da9a4d195046e3af49b1f1ed3ed40fdbc17db67dbbf4b99fca8ff68cab357b42ecacf35012a2ed23aaaaf6ad5030320c0f0000000000079a100000000000404807a1cf226644b57c68e50f6cc94e229e123bd2a22eba6730bf16de1559a5eb9d155202bce5b24dbbc38fb19c647075fe9b81bede928204c0ca0cd237006d52020020507877ddfe10002ff0bf4b6eda9ae1c633a2f6d7cefb995aa6b2718155953a530000005678718c1543d12a31a3b36c582fec3e29a20b70c05549db4561c4e5f1aeb1781e6e122ef3b349fdcff5dd19e286d7ed0e46d909f8f9b292de3bd318db92af9b8b3fa593f40afd1a22b5d70096de699ad40d0ed7177d0d000000a500000000a0ab1f700d126fc8b5c4e0fcb03511cb11103c9dcdc496b124a961c1eb30f2d541d0cb9fbf48317c4d69bd125f23c3d8fd9a9368105422fec28768a8b3cdb4ccc0d7a2ef189edbcc87e28f1503e9dcfe4ed2b9aea5ac5e7883ff96593550b1baf3ba070cba4c9e32b88782a97b6fc339556b4aac18d0a34b49017c4e5476d15a284807a1cf226644b57c68e50f6cc94e229e123bd2a22eba6730bf16de1559a5ebadf7b36018c013855bb91b533fb9e3ee0000000000079a10000000000040e80ea44f0af7b80607c7aecab01e439fc5b75329f76b928f5753a55a7fe02599a1804737f590d08d7d041890eeaf7dd50328a7f79cef922986971f881f205bf602002076b301d8208b1e99cbae8fe8a6df8ab6cf0a1c7ebff24174399aaf8a18a56160000000565258f6bf6871f63c595ec8bcdbdaf652db6ad92e7c79598ec932fd1e8e1605c650bc322a7fc791c31642290d458dfb4e7110f583be5b371fc00a1934d65c3c0732258a4de23f65b510f367c0afa06acff5da9094caa8000000a500000000a092e1ad7ae5af12aa450d218d331d0aec1dfa88e2cc19d83ea6f1f34968a0b18f5c6b707842fbe7d54f01e61c678e78684ea4634d998b162017ab96f2273a5350fc4d1290add61bb8a038e7229d88426e72b88eb730ecf14d38e4e743930e8013084bc90ba78f509ce5d187fea51413b6281c015d79ca3276be9fea0f6e29c2ebe80ea44f0af7b80607c7aecab01e439fc5b75329f76b928f5753a55a7fe02599b953cc3d35339d48da5c52727933c17d0000000000079a1000000000004029a5b3841fa8d549618fa65b7eaa04b69a7ad8b91b6969af9fc62273a39e048e1feabc4bbf593b0574b003fa4af80df17cb451f8bc57db55e7033248c1515b0d0200201358a8cfd8fe2a4176f8b5ad42c708560bac5b6de012736678c9e63a8f1e4a740000005649b3b35e086aba6cf742feac7736cb8bc1b857a21701da414d2df962dc0c6e0d258ef44d8f9516416b727468971092419a99d759d27691769511df30b31bbe5499f676d3fcf28a2da9d88ce146dfbe9ac456e20051cc000000a500000000a0619d0a670f6db05ac2e5f6d43b266f808fb80eedd144e94a857520bbc3c08d28df0f7ab11a9caf8a7f2c2c8a8389b493d478545c9bd059823a182d95258cde50eae34ccd353cd0a1b939c7db734468bccb313636b2c184933dd57b63b6ca6863b4e882587d99b1203f6b13318d4cd2ab7e309ab6deb526ad6496ef1d52a31d5329a5b3841fa8d549618fa65b7eaa04b69a7ad8b91b6969af9fc62273a39e048eba964cd33f00f7f43cf0a7819b0e090a0000000000079a10000000000040b2216057c1c7572dfeb998db0be30d5d493758c66d54115915f361fcd54d35138411afac14222a29077ed8901281ee743f03c22d65c238cda1fd352d638987e8020020407db73f6192e8c913878746b87ac64aee512a80a556f25813edbd76c587216f000000563b0ce426214244324a63c3c5a6277a7981d0906d1e3da0d257b27cd113f2a6958e693b0c25e4a625d70b6f43d3c4901389bf53bba02705ed8b924806ae485927fa41dfdefb90812086275650af5cf9d4cb9a5df26cca000000a500000000a03f2c3d14fa980925201d8476f6942053a2fe39157c9015c9de65f330bc8720fd19b2de64b9be908aba1bbb0c0e372e1811979b5621616826a0866a81a207456c07c2a0b71faaa80b677fff042761075ec072e5f64afd7cb5028998734bb2c25a8926e5a00fd2626ec6153e716ba9bca319a2b93987fa373963bc34aa23210413b2216057c1c7572dfeb998db0be30d5d493758c66d54115915f361fcd54d3513bc0bb4195fd8b01ac940e234e6d8b53f0000000000079a1000000000004014460b9550656e0a7d8390874d8e17872d6c428da0855867e8362ae2c5405e85283eff3c5910411d923d0f65fc938aafc122bde1fa30a4222ec9f9421c6fe82d020020872e6dac0f979cb7355c3a175201f0f75cc67994bcd49ddd30bff4660a434262000000568717d82bf7a609c31920f6851b06b9c11a69812c61c0fe55e6d35df2e54bd7c59e832fda9ae0a0566cdd82c67c371d6a295adce364dd4f0948b76e513beed1da8f0b34cf9867bdfbbbe77f9069a187f793b7ec7b2f66000000a500000000a03e07e27ce4c4013bd331ea6129ddbc58ab831487fd9936bd23c00dc69f28cdc85e1d175d2faab9717f1f62788a77914ec8578745c59290d86758096483797b7db42270767fa18ff0d84d3d6f6cc662f5b4873263462e8ea4ad0884aa8dce819ac69d022fb16d2113e2476faff6f050941b8dcc7b81ca7cb85c9202036566b06a14460b9550656e0a7d8390874d8e17872d6c428da0855867e8362ae2c5405e85c0e696f14f9f0a950e46c802c3979d0f0000000000079a10000000000040e4d19e0a8f7fca0f38a0a41fd2c6e26c141ba1d60fdb957ee4fecf10e60f7098e5cd304cbc9e22d6f686638cd899096a0074a4b0e19244407c27f8d7aa4885970200203f25532e8e8d619edce0a1ddfcdaf0a59732f326920ff5f060fcdf2eb7a5327c000000569803311b003151441192e4f950384346b7f1361f5012254c96e5e4d3a2306e364ffe13cacbbf1269682b2ae877770d1e183fa882bb298341f4c57bd77320c4d2b8ace315b6ef23fadbf25ed42909ed1d9556f64d547c000000a500000000a0c1971498378ae94acff0f369ca07e41ab33486699805c0fb2ef16c83eca7ae9378402f655f47b400fca6ac224046e618b850df17bfa54c83c806badbb0852326d5f0a6b72c8931bc1fcc711ee53024ba08133b88c0ba5dc9737112fcba6c9846db86faaad80232850bd18eca52d759a9b3108529fe255f8ba93115e8ec2872a8e4d19e0a8f7fca0f38a0a41fd2c6e26c141ba1d60fdb957ee4fecf10e60f7098c337f9417169b5c995a57a2f152fb7600000000000079a10000000000040d2d0b4605a4b8a491fbc12e60ab19e6cd8dd2f611c8b5fd0cef52e55a2c15d9f3e74d67d87bd939f3ff6eca99395532f7d6f0fae07e254cb36738fd1530add4602002023a5c4faecd51d7548ab20f3b4828d799736f8a5c331213d1d99a57ce61e277000000056a3b3f2ad02aa8865293685512bb9d9f334f82f0b199fae1c333cf833da9cb5d273df2eb8bfb006574c8c53e20c9a267f511743cc10cb2f0e140cac0339a6f09ba8aec064a88974ed4ed40ece261e3e508a1253f33930000000a500000000a0b11267bfc3e2ae6c043ba497bf73b2a314a9b2ab6b48f1ced8134a82ec902163137ee2a8901d221a08519f6c6cc3f354e126c932713ee3a2ca46d2ca7ef5a928fd76bf36866ef0200bed0bc1ef1b69686fc616abb86f4fc5c17f30b4f5ffa211f7d4859aa3e5221173523323f8a908f0ce70be8aef91f3322688d0c235fb02e2d2d0b4605a4b8a491fbc12e60ab19e6cd8dd2f611c8b5fd0cef52e55a2c15d9fc7d3c6a187fe04d2a23254d6f98c5c850000000000079a1000000000004026c3cf6a98aae29beefb9f07becfeae18f5de8181d1e269cb84300cd7082dac72a40b27c3d8df12114c9f8924f661055e18cb87a7f3b357b4b4813b7f148ed810200206c92c82e613d8805fdd3d9681ffc579332889d81d43b71722a06c75d3e39020700000056e1ddd638dde67aebc3d8e4b07c13d761a6e3c8b26491d42f17fd3c4a97534b91fb5151e8ad123504080076d2df652680fbcef38fe0204b630c364123bd73ddf29d70de8a464d21cae06fc842c5f1a44da5decd6f037f000000a500000000a06f2ad4ad90cce58ae94d98340ac6062255052b4d7f51c39406e9d04a355d2413b446e27157b1aec88051ad149b4faa37d9549e0d6ad0455fe71dc4f075414801d8785c3cab68fdf27f23b3a0bd38bed615f3fdb276831a901ca14aeb95f69ce34dd62908591702e216ee86aeb4d2d192bd5f8cd982d7ec415fa1b4b9acb3099326c3cf6a98aae29beefb9f07becfeae18f5de8181d1e269cb84300cd7082dac7ca4dadbd05ff93a329eb4e48ba6a8e910000000000079a100000000000401ffe8feff6f1c2f6836c3d4bf4613cef12f548551305ecef06ba2ff9994a0c0847265139b5b980f2ec79d295ce37650050a1694662c50577988e0c74e0d1fb73020020821ae04a7d9e152249225bb88b451e77ce33c8004df643bbf4da0d4cedc7ea6e0000005643d7265a0283ffb2e2a86edde084e5fe11354155c5238327232acdfb0dff5dc06b846c7846002b1e6c8ec5fa6bb36254cf5f685d56c72cf84241c31061b67f08d2f4b15e069294726325df57ab844bd939047a14202a000000a500000000a0063cafb8d84149bfb6edb436ea1969009bfb9dc5e2c091b327b3dbe081c2d9afa4ff1619cfeb611fc4d8e049d733aa6c869b2192883a55fc9588e89c11ffe748a28c702d1e0ca4a008fbed3c6e07743e4230d72341c9ab57ea3ab9c684b5c7f7a67ea321b5808b4c95218b50518e44c9c19a39f54affb3ad39b17f2e1c808bd71ffe8feff6f1c2f6836c3d4bf4613cef12f548551305ecef06ba2ff9994a0c08cdf01f54c0a9876d7eec81ff0d69c5720000000000079a100000000000402e9528967cbb198140f06267e45f554bbd2597f8d8df544ffa6223bb310d32e0a9f7a157b6abd31e2c1e17b85937b8ec3427333db09d140075808470e508386a0200205772b15f9da321ba90348bb609658ae4c21e164a6c1834de47d5a2f64b6b4f4a0000005673897cee4e9edf384a228b9bfb447566d700bccc044385f3ffa32d76f0d7bff411e763580304324f437a15bcac024bfef4bc2a521d68b003d05396d8ce936790edbb60f62ca2ded1a340d1d0a0ec999311a6a00a85ac000000a500000000a0f168d318fe2b315d7acb14cf6830ea6e4ce6dbc1d26c3ae1840c95ae93ef7ebd9b9c7ca653bbcb9496fbaecd641b772ea67c96b9a82c189a9d2174fcb88d4354c2de70c8a8af73c60deaca1edb6debd994a9bcbb4d6633a39e5b17de69ae83479214b44676b5a55115e832298ec917562b2b1599e5db8260537ef10f49fd46752e9528967cbb198140f06267e45f554bbd2597f8d8df544ffa6223bb310d32e0daff52cbacd6f8aaac74b16c0ffc61a40000000000079a1000000000004000de6415364a0adfced2eaaa83b3e0f06c3ac14946666848607a5fa708261c3e0c4c3075c395a132d1856db73c1f053e91216a7974fbec02c698db159dc707590200201b6de608f640ee8c9bbc08452029b43a0daf1e1d8d1e3c121a5537da2daee8450000005669304cde906061352c689704e45d51097098649008e3bf3ac7335ddd20b6f2fc130d5660bc3293bd5dddef34142d5152b09c79fd8d969214495ac6df4a7fb7a83b90c378747a28c9235a6145dc79fc71b459714c7fca000000a500000000a0a932e0a729937983cf7468f4dca5feb9fd981babc9a990aeba196dd8aced7015d80294a60ce7c6d2440514223c4c625f9dcf1a2c25a1079f18efc085a8dea1c685721831a1726102910ec2a69dc105dc8c48b2a290c699c190911967f0a1de1af5eefade7493ebbb55e2f85e0ade0099067fcf92e198a2398c1941b82877003a00de6415364a0adfced2eaaa83b3e0f06c3ac14946666848607a5fa708261c3edfffa5745dd283d3839506a3d9bdb1640000000000079a10000000000040650bdfa7bae8496e605f7451cee9f3f67178e4dba93dd46830c630aad720b73ecbcbe94c9e7727c1354317d87f2e6a9085096e03c8968fac4c715d44ebf1e50a020020000c37a907273943555649cdb8c2679a57527ddbee7663faf1dcfb93d5b5c30f000000567b000caa308ea3b27344a80ffb3b2216528e2b9e8c24f5f668d82a41fad2b38452cdf18776100ce08ca9bcd493811c56a4e15ad626866658dbaa9738f5c17e8f4b660fd0dcb104c31ac0c06d8d94a82454f42d302667000000a500000000a0a210c45e879c33cfff8e4a8a4448ff912e8ea5a3f5a5edbc87f9c31dcaffa4957c5b9224ae71a447801cd518fbd4cdfdba87ff4706644a6f2f1ddb640d997d68a7a35f18ece271123a14f7dfe3cd3caa62e18dc01e9437084993121c019daec008dbb03bea2fe4d8fb814efc03bb59118565bba5241d848b5413f47668ea2077650bdfa7bae8496e605f7451cee9f3f67178e4dba93dd46830c630aad720b73ee220ce927106ca7cc5ad37c8a4436e1a0000000000079a100000000000402b86eb1897085bc00f82dfad5080f782333b3d049605583ea4dea92e220e2e9e0621b01786edb01d9b9ddc1c34bc454e8b2a1b5f77547da9b0d0dc665c9523fb02002031f8e846da4092468ef0a7e4e2009a6d61b785fa6d3c502dcbe8e6b16f729a3500000056704c5ab2cdc462ae3582f7c88c88c1cb196b9b4019124c5e16f5fbfbbbf800f970d87276a98ada07292a5c164399f15d24d20467a2ceae0843930c3ca9446bbb30dea12f5e474df23a84c238fd7f261529aee0a916ba000000a500000000a0932d33fc5c9a2a0e905c15328b0b378b1421cb3a3cae885bf9a051a179d058a53516ccafbac212ce8e5ae8f2ad36afd8855b7af6c24c30dabc3b772bc226042f806f5e89d0cc7a69b0cc38cb4d0e19be48339a73f738ca0e3410a0ae98c9d97a9bf008e27f2a6221bbc2c2ec2153336b6b31bcbec6bdef05bf1e3bc4aebd91cf2b86eb1897085bc00f82dfad5080f782333b3d049605583ea4dea92e220e2e9eeaa03128009c88ad52e07344d5ac08b30000000000079a10000000000040b8ca62ce5e97e026e734e73672a610f89c0be0f014a13834975ae676d76b0b48974c4d3aa3b86fc221056fa4d90dd6ab5dc61fee57ff6a60f10ca4561580f1ee02002016454dc7073c856aa68315102b5f75c662faf9139b888d6cc845e883aaddf14a00000056e6835be4c25bedce744ae0cd44635660daccf5972c3e75593fef4d3a91c2d9172e3da58490acfb371309849027f1584123c48888571fb7d863c3b2725bfcc75f4f9ce5c72a024c1349e26eccb263b636ae9de6d8162f000000a500000000a0fd5e16b058ec588e9ddbf09e696ebe8d83d3090515efeef20a9b22d92c9d53d9bb878b69f30d87174e4581a7e2a540ed2ab304f9da91e65ea55b7324576fc889b3daf2f78c235d3c00bcc0f45bd192332fd383899c2a48743ed76cdc6d9572c3ad4cfb550f5e48396f774c4922c8b744f7e4b0bbc2373659799d4f1a43aee393b8ca62ce5e97e026e734e73672a610f89c0be0f014a13834975ae676d76b0b48ebe1bf3899786f4f9c0cf15f8eecd1990000000000079a1000000000004072f2c9d097627df152416133a8bdc986e6458cead47b07e6b512eef9359697aa09ea1d6702554678ccc99a29f75c79275b3e3dbdd3ecb73475680f6b3cf7cbf6020020ceb824af55e871211be039d3445b94c06c1228a066d2e9700c8bf16fc87d0a4e00000056a9965ce109a3e91339156bb2967e86b6cb6c96e5b784313181c46bb1ef9f16a5cb92eb00821ec612ae77856b58d1e1cbd03117717594ef2c5391a38971a5ca8f292988da71fb3da52a3503d00c0d38a4e35bd466e46d000000a500000000a0ccd3588d9cd66c35e39c163f7396f02ed9286829e34dced0ca1b79eee9a06bca51e5183256306e30624ed0ce29371a36b143c1cdc6bd59374f2c3d20197f2d7d0806aeb35fa738233dd901e169ae55e04c5f848e1c0e8ba8ff93ee999b0cbfa67137b1472767bc992013b924448d788d58a627acaed0e4f55dc911f62d739e0872f2c9d097627df152416133a8bdc986e6458cead47b07e6b512eef9359697aaf00583b60d103e1f58781bae7130ad5b0000000000079a100000000000409f1a419d36a30490025c06fd149fdab6514a76c788fdc2e0a06111d80126ad2aace550ba81bcf7ff785ecf7ae49e85acfa25a03ff55756ffc72a5ae59f2702d9020020970fddf4677407b33c87a36578b0b956f3bb313ba0369aa27b90d3941d709e0d000000565954191d3de4af856b6c79980b0c8945fa647e6ef54952c2f81cbc0f3915c0304ae9e7286255f8b30552587850f4ca80b775cfc7b3d299e3271458d7cc7b558259d3174e63a83596d2e5047f11a75083ef30d4d977ec000000a500000000a0fb710db88b4f765000abc027a4649a68e21bef90766d3a425bcbc0ee2c1385a67a5f5292329bf22eb93f6441260ab49183cff2f38a3818f13e08082e780046a4efe8be59f0d1aacedeb047d047606668f8c8d0893ab1765dc38e3d9c2bfc9c9220f9cb2161c3035e77b6e367a3cb56541b9287f9c8fe0ddaaccad9c81dda75cc9f1a419d36a30490025c06fd149fdab6514a76c788fdc2e0a06111d80126ad2af36e6ddbcb7ac26123bd8c9bb92d3bd20000000000079a1000000000004065ce3b677fd9b5bc54c3c0e22081967466edac67d53feb8153ecb2c5b09190e5d77733c501e8ab0f1169493e3b26defc70c207006e4023259475937aa2b2ddaa02002035738aafc78066ed5e3f41fec6c018173be216a773a0f4c64e73155d3b4ceb4f00000056a4f017a96a01f4f4fdb798ba3218b4a30488aa4eb5b246332459a8780bd5b685c4bab3456fb6cb3b4783b8482c8de144fab05bb2ca874884cb7306172ee653f568eb300584fec5e4cb87b6c7e0d42dd6e05179cfff02000000a500000000a0ce1795486aa36a5a6c93a86610946c3dd4873e5c36b0e47952f84b3efd7ab6f317d43d35cd49504027c0646188321f3dd00928bf6cae9af5b305f7024f5bcfce8711d7569a589463358c8b4b2e760399a6b44b9a6df59ff7b82e7b8036c8220aa8bf0502a5b2366bfe79d5a3cca926f4f03981178b9c575d762df054c12ea89065ce3b677fd9b5bc54c3c0e22081967466edac67d53feb8153ecb2c5b09190e5f436b99a597997d80cef2a9459d82cbc0000000000079a100000000000403d3a47ef190644f6e02c41eba8db08acf33a7f0969f4a3684acc0a99ac8e82e4d4e9f9fbca7258fa9ae9d8b463f458065e222f660b5d76c1b3b53f7fa1b14dbf020020828acbbe1126761349bc3b12a72daa03c1fb608f623b0f026f9ed232d28e900900000056f65df920af391d7991756dde5163bc20796e6e5b915523dcff681416ef34e529c79c65b8e35ae88924fb6b5bac6b8d2e71455cb751c0dcef4776f3437ab2c5e8e55d2f8ee7b72d1ddeecd602f7f8eeaa1c7f7790d9db000000a500000000a06ebe929a43312aebc7345d8a8fbb83058e299b05f6ea87e6b1f8d1c2daff32819b476580882f216f7c94dbb12ca9d8181ab37ab698ad2096f204a172942ca930df5123eff4e8e9bb9fcc316062dfc44e3778e499c184dbf61e9b227778718f2f8fd7b9faa4a51139d51b2d8df3ed24eac6411bd75aa9b7336941825b3a656b1b3d3a47ef190644f6e02c41eba8db08acf33a7f0969f4a3684acc0a99ac8e82e4fadca38ba9b2f554e963340bd5c4283f0000000000079a10000000000040c555deb10080c35d492881953e6e42f1b672e890d73ca86e9f3c59591d99a412db07bb8736267408374aabb6ae83a16022920d1fe195135f3af6dd007e286bae0200205f1ac40c92742a87a229950a5cbfecc48c89aae3dc5d012802f44308a916ab7f00000056ab00722783a18028f984919e0fe2dbb3005c06339009745ad1f4ba775d7aea1c6e1e1298a0a6efb8dd2e0afad686892ccdbe705d5decf6eb8148390022cfed40dae2264a13845da65ed9f0f028d1abaf6f480a4a6e59000000a500000000a05a5884045547e6184b384d8ab67848bff761d263ffee2c059fb7ada3837d64530faa119c00c63720dbb0fa54cc15cedae3394d30c99dcbcd77e28bdbf6ab73146f7d5678f0e1b84b136d1db4e766bb13a3c3c25bdf17751eee060611801915ffd85632bc53ee0e3746fd96d5774cb15a36933b4f0668ed18272ed385e4226261c555deb10080c35d492881953e6e42f1b672e890d73ca86e9f3c59591d99a412fade2d1b528b8af4b7c74394f130eb330000000000079a100000000000402823922d7093ac4613a6087d6f50c211c960c867ad925a280606b9be460a380fcface8645d82c99fbb68ee99519969423e87d8e874e638dc3814fbf508705096020020ce0fef89414085ddd5a4303a74fc7b5a451f1768689afe0a9a6760b5e18ade470000005669801c9a44683a313ecd80b009d3677aacc154466c901846b393e1c210369fb826bbbfe70ffbca81c05e7a6df57dbd7082d012ccec13fa5c76e05fc50ce63494e147413e2b3bad292822ba7a8c67ac89c9951642d308000000a500000000a05da5c27c4f3b4c47b7ae618c02e6c4981cd8bf81732f44cf534affef8eecfc28ccce0cf11a61d2f7ee8732586df222339d183088537d0ed3045ffdc104bc156e220b344b1217953a71375abff24202a936af233dcf826658e194a4ad73370e8a55f12c9d5a3c248a322382df9a42b2118987964608893eb89b7d019bfb35fa692823922d7093ac4613a6087d6f50c211c960c867ad925a280606b9be460a380f", + "resp": "02ff0c1419e1600308bbbf51099c2b93000000002502000000200beb165dc0399159cb7286ccb5c10aee54bac6243c1c4968dbeef9e6392835020450c98206bd4a9d2485ae82f6e9cbcc00000000250200000020c33f49739a11a052e1e4d09549e8c6aa5555e91af6c288dd705a00346e9f28880509a8adfb2ae1ba0039b9c4964528930000000025020000002079c542183ead5cfb8636c5a613b568be4e3b9adc9b2035e8ddc969675dba82b60a6be3e2be908e89522d1beaf56b0ef400000000250200000020657cc785733c0a0301f8bbe04b6c87fa1ed360721dd8a8380f9b46d04e3b413f0cf3a002b88570579bfce19b2f767fcd00000000250200000020fc3e05b2d9bbc3521b4898d981ccaee2cf6e9ffc8b4f6cddb335fed2a0c4f903105d8ef8683d29f1d7ed994bd4f8e6a300000000250200000020033ebc5c9c4dcadcb60b89221d161e24e3ce46696c10062e63bda04fd5a21bf61069a899d70e1cb334ca074ed7953886000000002502000000208b667058e9586f6b0fcfcb1b8029de534863f31adf8debce53146f6b03f20720111bfa7066716d42db6963cea2fb9511000000002502000000207335e76ec220471d17348868baeb8a95f42125055934f1856afca8b65500c2d411f3e5b3feb409823f48daefaa726daa0000000025020000002087fdfa36a702f598812072b0a5b00adc83d995d0d0bd1038fa1bbe05bb9be9dc1e2cc57da25e021dcfba481c3659250900000000250200000020d0dd149bae6feb2d04fe5b55e3ee1ff4ab01229fda23e9fff7298529a62697d81fb184bd29f8c9b893f479f38d573ef2000000002502000000209acb08e48966d93ff377613b6ac1a0e865fdfe9f51912acd92ddd8c8d304ddb2227b44efd291cbac7529ce4ae0db7c490000000025020000002023cadfb7a378a57cc3fdcb66ef25113a22f09fe61ed1ea8c94150cb53f63e417286ebbd1cf43fdbacb173942afa028c300000000250200000020a57dfd43b472400122d24ed72a6e1d33bf702e69367d6a42e439569077ee846b31543af0c481d4cdc66708411c59e0a600000000250200000020cecca608cfa91288f628d5df33c343136694f1d4c7712aad0cea433b20b4cd30362f26f8bc8c16b5b3cf93a29830a17b0000000025020000002073f4cf22eb03615dbcb00e91d546fb08428428ae01c598c1e216feab12f5ce0942d99cb135ee8df3127e7384c123261400000000250200000020d176ce1e75e9f1ec16402daa67a3840534910b93bfacacaceecd318e3ad83413433031122766c44947461d165bf917070000000025020000002059b778af4dff993a98ba8d9b3ee087284a5f784efea955a0c092c6c93c71d6f1476d34e5d689e984fd002c4924ca676e00000000250200000020a874e88fb74885b5cb2ef5a97a58c223fca49f6cc1e61fa5bff535ccf5a93e6a4a568385097e5286eb158ab7d9b734ab000000002502000000202fe27cd40a8c24c6b32c2280835e6a6b6079f68d47f7c7fbf02325c7d75eb2654d90ea560ebdec051d92a183237e8f0a000000002502000000209c30dd28daab40f883f7f42e21d4ef66bbd36d96e650d5313750e0f37a1a1ad850f7072754d8ffdd90fcc1a6c13518b40000000025020000002043a218cb0a5551993e1222dcc4c71679a2dc5036cb3a28c6fc17877642eaeb6d55044fb7356c4fa85f82c0048af09dc300000000250200000020b92d7b1101508cd75d4c99d1f16a25de210078d274cb6bae389263e598c92fea6ae99658c3db67a6f105da1f42689130000000002502000000204c1814595ff64345dc35f060ff44d67192f435d03be07176e137d89f9bcfe6ac6f78f1e6ab909855055639a30ee49f9900000000250200000020c07f788134302e4c90a36bdd4bdf80b4a231ae1ecb52ac7f283cb133b79bfcd170c23bfd9c06ffa92b33fc16cdb057bb000000002502000000209c7a6266f9112ce7ff88589ee4a69d8c4e178022f563edb215aefecaf95c98b277238d008cf09d153910a35921c390fe0000000025020000002077f35ed5a6eae63717c0b5a81fc983f80f4b6d06c9f4a5103ea7e352b6c4c5dd7d1526984513c531ef0a2bf80d9692a1000000002502000000200572a394273df18b424e24c016fe09ffea921f6f6d11e96971aae5ebbc8af6b28cae5f27c35cad8bacfd55a201a03f08000000002502000000202b81a63a939b7d37ddc7e63500ef2165a9c35dec31c50b54103d92c991640ff78cb0a9b3ee0ef418065bbc02fbd0904a0000000025020000002015ab0ada04d50b55a9c02dbb9f79bfb132b2219fdda100ed0f3d4d49c807fb40a69cbed7f0df01023fffc42c3054833600000000250200000020e66c0d412fc37eefed7eb494d75bbadb43660a9d8baf9a081d74d1bb64de877facf35012a2ed23aaaaf6ad5030320c0f000000002502000000209b5e395481c4a86eed0805648a1b56e193e082c4e6805c6b9dfec4c296b16691adf7b36018c013855bb91b533fb9e3ee00000000250200000020cb7cd50a4eb0ef4fb55898d69bf7c528535de80b152c685aefa834717500411fb953cc3d35339d48da5c52727933c17d00000000250200000020fc235113ff47e7080df11fa29b331c22f3396ea16aa977798f9f2cd8224d1594ba964cd33f00f7f43cf0a7819b0e090a00000000250200000020e52b938773d6ed4024ab724a0de509856de5ab95c1969b121fb1e1171d1f2199bc0bb4195fd8b01ac940e234e6d8b53f00000000250200000020abb1c3b023c58fac300f4fb618ca6fcaefd01db2d64822fb44ddebcd521aaad7c0e696f14f9f0a950e46c802c3979d0f000000002502000000200542b78c13b1462ef898f03a78f8ce5a62c98aa70eba0c3b7481148fe473c6b3c337f9417169b5c995a57a2f152fb760000000002502000000200d77533223df7fea70b09172985f2053f6f5970a4fc213fba61b94acbc3d78b4c7d3c6a187fe04d2a23254d6f98c5c8500000000250200000020e20ff6bc231f758f6ad38d7a379bb74f5909ea98a41ea09d9e3c1810bd9068f9ca4dadbd05ff93a329eb4e48ba6a8e9100000000250200000020b0a42490e4f27f47ae5381217cfb07551dac00f8ce28be83fbf21cb15e00ae8ecdf01f54c0a9876d7eec81ff0d69c57200000000250200000020562685730548f054891ed8d66e1fde2bad66960f7d43298aa456b0f9a5bc2ce8daff52cbacd6f8aaac74b16c0ffc61a400000000250200000020e91b88d0178336cdd5c0960ba900a14d25632ce025056dd5e3cdc4d39a05f861dfffa5745dd283d3839506a3d9bdb16400000000250200000020104873665287e1b3e2ab04b7b63d8b7326bc0686a947968e33b83b5b24de3669e220ce927106ca7cc5ad37c8a4436e1a00000000250200000020e7d105285247247a6e29fdd0782ec1418915408bb8ffb61eaadf2e83378aa334eaa03128009c88ad52e07344d5ac08b300000000250200000020d73a97c388ab67e0e0fcfeda4c10f21b7d35f884b2e7c0056ba9a232f1941454ebe1bf3899786f4f9c0cf15f8eecd199000000002502000000205b928409c2edfc6cc1eb0208852c32a56f306bd5796eb1e145f3e3c905dac3e4f00583b60d103e1f58781bae7130ad5b000000002502000000208bee0f28b097bf5730aa8fa5c16a3115e0544e4a57347db5c0cf4cd88a78def4f36e6ddbcb7ac26123bd8c9bb92d3bd20000000025020000002016e6725d12ab8fbacfd49c22a55732e170a949d744a83649ef703acc32195130f436b99a597997d80cef2a9459d82cbc00000000250200000020fa60642d9de7a85781a73b409ecf4bedc961aeec772549ed3b2d85779d633970fadca38ba9b2f554e963340bd5c4283f0000000025020000002047b04aa3ba052bea242e3fb80b45792c90e3e5a2cf24eba084455057b2962ccbfade2d1b528b8af4b7c74394f130eb3300000000250200000020dcd17b534f511e2499281073df433f5cfc822dc1c1184260fbd9cd0f7bfce08b", + "outcomes": [ + { + "id": "da411bfadc90589cbedaff5958a4ce2c", + "outcome": "invalid_message", + "reason": null + }, + { + "id": "02ff0c1419e1600308bbbf51099c2b93", + "outcome": "committed", + "reason": null + }, + { + "id": "0450c98206bd4a9d2485ae82f6e9cbcc", + "outcome": "committed", + "reason": null + }, + { + "id": "0509a8adfb2ae1ba0039b9c496452893", + "outcome": "committed", + "reason": null + }, + { + "id": "0a6be3e2be908e89522d1beaf56b0ef4", + "outcome": "committed", + "reason": null + }, + { + "id": "0cf3a002b88570579bfce19b2f767fcd", + "outcome": "committed", + "reason": null + }, + { + "id": "105d8ef8683d29f1d7ed994bd4f8e6a3", + "outcome": "committed", + "reason": null + }, + { + "id": "1069a899d70e1cb334ca074ed7953886", + "outcome": "committed", + "reason": null + }, + { + "id": "111bfa7066716d42db6963cea2fb9511", + "outcome": "committed", + "reason": null + }, + { + "id": "11f3e5b3feb409823f48daefaa726daa", + "outcome": "committed", + "reason": null + }, + { + "id": "1e2cc57da25e021dcfba481c36592509", + "outcome": "committed", + "reason": null + }, + { + "id": "1fb184bd29f8c9b893f479f38d573ef2", + "outcome": "committed", + "reason": null + }, + { + "id": "227b44efd291cbac7529ce4ae0db7c49", + "outcome": "committed", + "reason": null + }, + { + "id": "286ebbd1cf43fdbacb173942afa028c3", + "outcome": "committed", + "reason": null + }, + { + "id": "31543af0c481d4cdc66708411c59e0a6", + "outcome": "committed", + "reason": null + }, + { + "id": "362f26f8bc8c16b5b3cf93a29830a17b", + "outcome": "committed", + "reason": null + }, + { + "id": "42d99cb135ee8df3127e7384c1232614", + "outcome": "committed", + "reason": null + }, + { + "id": "433031122766c44947461d165bf91707", + "outcome": "committed", + "reason": null + }, + { + "id": "476d34e5d689e984fd002c4924ca676e", + "outcome": "committed", + "reason": null + }, + { + "id": "4a568385097e5286eb158ab7d9b734ab", + "outcome": "committed", + "reason": null + }, + { + "id": "4d90ea560ebdec051d92a183237e8f0a", + "outcome": "committed", + "reason": null + }, + { + "id": "50f7072754d8ffdd90fcc1a6c13518b4", + "outcome": "committed", + "reason": null + }, + { + "id": "55044fb7356c4fa85f82c0048af09dc3", + "outcome": "committed", + "reason": null + }, + { + "id": "6ae99658c3db67a6f105da1f42689130", + "outcome": "committed", + "reason": null + }, + { + "id": "6f78f1e6ab909855055639a30ee49f99", + "outcome": "committed", + "reason": null + }, + { + "id": "70c23bfd9c06ffa92b33fc16cdb057bb", + "outcome": "committed", + "reason": null + }, + { + "id": "77238d008cf09d153910a35921c390fe", + "outcome": "committed", + "reason": null + }, + { + "id": "7d1526984513c531ef0a2bf80d9692a1", + "outcome": "committed", + "reason": null + }, + { + "id": "8cae5f27c35cad8bacfd55a201a03f08", + "outcome": "committed", + "reason": null + }, + { + "id": "8cb0a9b3ee0ef418065bbc02fbd0904a", + "outcome": "committed", + "reason": null + }, + { + "id": "a69cbed7f0df01023fffc42c30548336", + "outcome": "committed", + "reason": null + }, + { + "id": "acf35012a2ed23aaaaf6ad5030320c0f", + "outcome": "committed", + "reason": null + }, + { + "id": "adf7b36018c013855bb91b533fb9e3ee", + "outcome": "committed", + "reason": null + }, + { + "id": "b953cc3d35339d48da5c52727933c17d", + "outcome": "committed", + "reason": null + }, + { + "id": "ba964cd33f00f7f43cf0a7819b0e090a", + "outcome": "committed", + "reason": null + }, + { + "id": "bc0bb4195fd8b01ac940e234e6d8b53f", + "outcome": "committed", + "reason": null + }, + { + "id": "c0e696f14f9f0a950e46c802c3979d0f", + "outcome": "committed", + "reason": null + }, + { + "id": "c337f9417169b5c995a57a2f152fb760", + "outcome": "committed", + "reason": null + }, + { + "id": "c7d3c6a187fe04d2a23254d6f98c5c85", + "outcome": "committed", + "reason": null + }, + { + "id": "ca4dadbd05ff93a329eb4e48ba6a8e91", + "outcome": "committed", + "reason": null + }, + { + "id": "cdf01f54c0a9876d7eec81ff0d69c572", + "outcome": "committed", + "reason": null + }, + { + "id": "daff52cbacd6f8aaac74b16c0ffc61a4", + "outcome": "committed", + "reason": null + }, + { + "id": "dfffa5745dd283d3839506a3d9bdb164", + "outcome": "committed", + "reason": null + }, + { + "id": "e220ce927106ca7cc5ad37c8a4436e1a", + "outcome": "committed", + "reason": null + }, + { + "id": "eaa03128009c88ad52e07344d5ac08b3", + "outcome": "committed", + "reason": null + }, + { + "id": "ebe1bf3899786f4f9c0cf15f8eecd199", + "outcome": "committed", + "reason": null + }, + { + "id": "f00583b60d103e1f58781bae7130ad5b", + "outcome": "committed", + "reason": null + }, + { + "id": "f36e6ddbcb7ac26123bd8c9bb92d3bd2", + "outcome": "committed", + "reason": null + }, + { + "id": "f436b99a597997d80cef2a9459d82cbc", + "outcome": "committed", + "reason": null + }, + { + "id": "fadca38ba9b2f554e963340bd5c4283f", + "outcome": "committed", + "reason": null + }, + { + "id": "fade2d1b528b8af4b7c74394f130eb33", + "outcome": "committed", + "reason": null + } + ] + }, + { + "step": "collect", + "name": "collect", + "request": "0100100000000000079a100000000000000001000000000000", + "batch": { + "start": 498192, + "duration": 1 + }, + "now_s": 1793498400, + "outcome": "completed", + "share_req": "0100100000000000079a1000000000000000010000000000000100100000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d", + "helper_share": "0300204b54adc0f433373186f11813f5e4b5233aaae17b730e799f7c6c55a226a3d25b000000605cc814b473b2ed1821bbf83a89849d38dc8682505650e446a4ffac79ae1beb47765f3b1017fd9508aa8bfc66de0b9d6a308a52b0a488d37aad55bbaa69bb6411c1db9b90ebb9b002fa7cec3dfefe0f21dbfe5a5f196c23087614f9137da7ad0c", + "resp": "00000000000000320000000000079a1000000000000000010300208eb031dff4441eb95583f793652fdd9fe0b9a76d738d994a4af1d5b56492fe09000000601829e95d3bf96afb806e9f63f17cb1f0dcdfd1847633b4a3e96eab7e6aabdb7b86a1285ec2cd5faa9bda17627bea1ef07d7467cdb740931456b178e6150c2161e554a249e159e65dca668867ffe26532342f1d7e62889866c56626303c1dd9b10300204b54adc0f433373186f11813f5e4b5233aaae17b730e799f7c6c55a226a3d25b000000605cc814b473b2ed1821bbf83a89849d38dc8682505650e446a4ffac79ae1beb47765f3b1017fd9508aa8bfc66de0b9d6a308a52b0a488d37aad55bbaa69bb6411c1db9b90ebb9b002fa7cec3dfefe0f21dbfe5a5f196c23087614f9137da7ad0c", + "leader_statement": "030020af56f0f698ef1d751707ae626d2d166754e342bd1672285da4f126a56f27342e000001428787e68def794b842537ad98adbecd2f1e75feaddc7b5cfe7dbbbf6828bddfff56b8441302ad6273f0bedce2482da2b78ddc43477494c4020f735e88b3891901162c491ddda9e8af888681bc5b8cad85318bcb0f8f8f570fd155ec4189bb5ffab66027c052647badc4e053650353fec32bf8c0b8ce164d34877e9ce12fa0990def6818fdbd13f9afd95c7a709d986b74f60e94bd62b642e4e007a9966436ec7428ee13bc82c97e4a31f6c36383199201cbc438f33719e06d74da852fad0c04024ebdb510ede5f7a0b55f5b5492aba577aea1f710b25aaa2e04ea90209d5c15ed91424670d1e55d3e6d7a49acc63111030fd91ffdef10930198082247871ae201004f36ec28fa57e1385979c16e67e0e6db5722e3549666de95fcf0c4523ead46c39420da46e7c5d231ffaea9f302b82fc76ddeb592dfb78db0ea50162e81dbadd787", + "helper_statement": "030020ca14cda047df5f493d290b12f5e53376993a4a0a62c8ebe0083162365f370d1200000142cb40718748981538c01ab7ab96113a006658e68a007d1d5747b7019ff2821eabd571dbf7faf27b953a2e615fdb0bb7b422d8d717247d920d06f902391ebd8041c6a48ff77ea4cb4ea3d37f62de02111031081b6001be154758e7813276a70438e42bf954de907050e2fee1dce41a2cdaddf057c606b0998b073418d1589fe539ce9a58a9b8272c197c623c8136c4813dbb81ee6842d168efdf79a4b42a457d92f76c4daf832fae19e8b61368f27e0c511f5222990ffb1e6087fe3c7bcaff832cda1c32fdc4326a9cc8ff28d31801201f634a7a5be17fb505bc8e245643924218375690f5a36e4b5c0f1c8a13fff0983f08a847f70cce9191f0bffdc9036b3cb2859bb50f70d5cfabf4c0bdec1be9be07f2aaccd9ce05b6252f03ad546b1616825c72f4d37d37df8c74026bf8351c4dac0e243745819e8b4749a029d8133c4987228a", + "result": [ + 10, + 10, + 10, + 10, + 10 + ], + "receipt": "5751413101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a10000000000000000100000132575153310102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d000000500377d51ea65b8049fd14b449b9152460aea8e9f38a9603c27a0ee75e4c71b15715f578722de78be2e4f6e19378bb291b18a6a005fa8f03db4b469421c64481c0831cb938f26e24d2020a260e757895d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe67530ad7d77032ca9d0f7f350ce7157e122bd0d1b4d2257988da8609c29624ffcbb198ae5a72b29d22a99f6340b2fa8778974722add10d8fdf16825b9034efd0900000132575153310103f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d0000005008892ae159a47fb6e6ea4bb646eadb9f5d57160c7569fc3d69f118a1b38e4ea8f60a878dd218741dff081e6c8744d6e4f3595ffa0570fc2498b96bde39bb7e3f88e346c70d91db2de1f5d9f18a876a2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2f9db4277d756cd023d67b3d7e54b39f3cc3d4a433b3e68e3869826cdb4de5e63b0e58241d3b20077663749eed49ea3edeeb56ef5d4c0cddc92b6a6664738b0c00050000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1c5cdf6b392c59a4ab0db740441fb012e6d2ef51786b75765fa2bad6fabedfeec35a348e88e1d6da95bfdc9b14f86910b3ee39c26e1aa3ab01b57c947279d2e04" + } + ] + }, + { + "name": "twin", + "task_file": "twin", + "task_id": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15", + "verify_key": "d95fc43f4f1d3ae24a49e88c402c82eec35aa97b6c1cf69d2fca0d7e6ba48078", + "reports": [ + { + "id": "bdda4f0a119ee5df361a082102e2ce54", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd9a405170c9d26136ff45a730701627a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50246ee5715cf35adfc590660ea26e3be7ef9b2d5cd7d123119f31e0489f29e6792011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000751dcdbbf4b741975f80e3deee0e71e0d7708a4f55425f81bba16b2752365b1dd551221c0a36f4680e9618b83d8512c4a7935ff61b0bf2334cef98da5f28b00b", + "region": "XA", + "at_ms": 1793491220000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "d32676d2e8b8e7bab8540e1321bc971a", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7df5e85ef7b0bedb88ed39e503202a10b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4ab551aef9a37ce55b63b50ef1ad0971eaa78f6c74d2ff35bedc2c783012f0173011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b000010270100005189b892bae79071c9a79049428d1327be7b025123b39a42faf2f797f426970fdbf12ffbb68a7993dd064135e00e2d907134b4d7939ab0c1a4c6074b4a615d0c", + "region": "XB-1", + "at_ms": 1793491280000, + "cell": 20, + "creative": 1, + "column": "XB-1", + "quartile": 1 + }, + { + "id": "5e758cadb33ec498325a8d819bbd11b1", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd0ea7f3abc449128f96ff2ed674875693b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4a2618bd96551255ee0c48c538f3a4b667faf41b68e41ff00226cd60f06f4f3a1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b000010270100008aee7cd3614c69706cabff5ef2cb96864a99887b7380f9bf037239fd0b2487b350d9e7f1ee3a4a5b307807c586ffef585f2630475297a3356be1740a517da204", + "region": null, + "at_ms": 1793491340000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "f9e66a05135292fd12355561fa770dbf", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2d01d1179aa36bfeab6becf101141f936ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50277755647193c46f8a77231d6be41ad5c686d1fbbdb1fc3d01f5830aae986bceb011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b00001027010000567575d9cb6ec0e9a78189f1862f67843eb028f5c49cc5b5cbd519a3f23c3b0c410e62f38100ce31c4d2f651714e08d0eab15d5695434ca4633cfb9febb67b0f", + "region": "XA-7", + "at_ms": 1793491400000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "1feb5ec3feea92ac3278491c59fbfa74", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1afcc3ed058f45dc948072c6628cb183b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4dcd3c8d09937f64dc833b6bce37c54c63c28f251f954d84b10bbd947c1fef6a7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b000010270100008af5469e907e0b659efcf0f75c2acd56322c21601d79152e97aa861b3d761fcde71f878325789e53329d2c9e6e6e71d642310ca51e29438f6cac6bfcf026fe03", + "region": "XA", + "at_ms": 1793491460000, + "cell": 15, + "creative": 1, + "column": "XA", + "quartile": 1 + }, + { + "id": "b503a949f6705f5c2d0ca9660d197485", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2156aeb6af9d1e66c038740c60d604d56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023560532b3348e2a1f5668655424216e9a26352ae41d58350f96e2219820b8600011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000888f219dd1e69472de3619f4a9c052f5bd86533205b289096ceceb8250b7a6a0b44b3cbea45aeed534557d136acd487c716b8d021cb041e51fda444cf96a5c04", + "region": "XA", + "at_ms": 1793491520000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "ae35eeb8b55e508af82145a27e3153e2", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdefb9319caae8cb74723717493df62927b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47669202b76f3ee5362dde48f51b86775857c51616b36ccd85b8b8b5903ddde09011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000ac83f7b3e89622313e95341ef74571323ef5a6db18371123c9e64d9de0642cdb059702073ca780b94d5e0f58d04e36093edfabaae9d151b01493185689982102", + "region": "XB-1", + "at_ms": 1793491580000, + "cell": 21, + "creative": 1, + "column": "XB-1", + "quartile": 2 + }, + { + "id": "046d5c529705d964598221f09de507f8", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd375036e4271c6c49df985d4154e2d8d7b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b40814816c2fa19c1dfbb263b3c0121142685b22c1730aaccf558db3592c7ea766011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e0000102701000022b14cfbaef76484b70a88d61706c7d63c6f90e0d860c83cb575630c2943e48b06cde0dfa898ce88476804faf6f9254b093310acacd3c8cef30edc1ed46d4501", + "region": null, + "at_ms": 1793491640000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "2155b4cee0b59de4b44ecb8d177effef", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde94c01068c8347d45c0029c57e68644d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502056bc7d3d85ff260e17f0f090f67a16f91bf9db1eb5d17ea1851997fcd231e05011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e0000102701000018566623def321e6bb5de972a5c7e4ea7e2f1d9a8a322127e903b1bd7c6d132cec9ce09401afdc21ab16f02ed54070345bd9868ff7b9283e84bde327811bd506", + "region": "XA-7", + "at_ms": 1793491700000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "659216e80380457455ff2cf16f9c05ae", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3db04b2f655aeee554636ad01f9e14beb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47343b70c1f678f1321b019383140db37a299d7a5bde89ab34b5190aa1c760e1b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e0000102701000049482114b95283d5fa34938bae6132f652778727d4bc6f0a4082deadeaf451f6bd357c4b8d6da6bf6ab2164c6f16e5688bee8ef2eb05d7da3c547414a35cca0f", + "region": "XA", + "at_ms": 1793491760000, + "cell": 16, + "creative": 1, + "column": "XA", + "quartile": 2 + }, + { + "id": "64f54a1b93d82bbc89a38352a741f1db", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd319f1df1a75986920bac9d62f97bb9d56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502a64d941ee2e19c76e872e99a06e039319fea295bb775003e42e2589e6927b95c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000682e88b87a33d3f0c5e320168790cd9c347f045a113136223b034032d729321c84f8c86a69f8a764f82795feb6d038c8723d7c40d99a8278c0d92819884f2906", + "region": "XA", + "at_ms": 1793491820000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "2492411023c0a390e1c83c632421b383", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd5acc7ecd3fb69f4bd763c4cff36ecbbfb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4276cc596bfd640c054791d7a0af622eee1d4195478615207efd5d2c1e2185e4f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000539711c7792fe242dbfbbda7f3214aaaea91ec60d7c2990574aa8762fdf3b582d77c0d1df02f419600ff8b5b79cafd09c677553dd56bdb4ad9b9edb9d294b90a", + "region": "XB-1", + "at_ms": 1793491880000, + "cell": 22, + "creative": 1, + "column": "XB-1", + "quartile": 3 + }, + { + "id": "7cdd42aab29de0794766b632662b953c", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9c0cfe4a20e02bd224d80ee9a8ff1813b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b45b780d5f8089b11423a86a82b33a2d7bcb865060816f407cb2f985aaf83ab0ab011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000a9c5a947336b7ea26a5b267461cbb4c8cf96e722520ec483807b9841c0f7afa70329dde910eab45b2f6516d47c7cf12fcf0fc4415f016bf48c966e79d9b70506", + "region": null, + "at_ms": 1793491940000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "85797c59ddbd1748bfa930291a55dea6", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd05a1aeb29a5423790e8fc43973c4a6296ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502ff0510b81b96d92a5b74a722616b47a7abae9aae91b36af12a04f3ab7b66fc98011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000ec190e49a33e64d17220f9b40ede3903b63fbe5871a1a58085f1fa350e2b8ace7abf38fd2d3243bfade1fa947f42af2db2355112004b9989a48b3bc4d943460f", + "region": "XA-7", + "at_ms": 1793492000000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "344914e2c22b25c74930c376047ada9f", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdac626f75c3351878a05a28def64326abb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4c60fe580596f2535a28168e46190bb92b0eca5e99a2bed4b1280da4e3802557f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000980e7e4371e654d90dd7b949ed6e3d2efeb94931b6e9693d64051ad1cf1d3643aa26edb2bde0c08f27390caf6ed11f6f1e502b7852bdcb71fee2fa09cd8a3e0f", + "region": "XA", + "at_ms": 1793492060000, + "cell": 17, + "creative": 1, + "column": "XA", + "quartile": 3 + }, + { + "id": "699df3ddd594e1cd896a068020e9dd9a", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfdc677b59f5e77cc5237bbc1e29b2ef56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5026aa200beada06a48cacae6f0b4487b4f9e8861b0e137db41ab263b9fda84ae52011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000f2e779ac4386acd0f8bca02fbee127055da0d12a12ab7c1ca6da6ca91f9c1a032278e5206f61a0c880a0bb8b3cb346a62e78ef60b8f2d9114a899d32974d100e", + "region": "XA", + "at_ms": 1793492120000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "d8c772925aa2fe8828ee6e4308bc34ce", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd41f58571e1918e4a7d4b00e2844a72f2b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47c59391db548e64d7c969f4654fcb49d53634d4af4e1d19fd3dd6678a7f6c614011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000f7930ae860a8f499d1aa46d4f576c63f1806ec694063b36d75e7d9fd358ab973199fa5a7120883b2fc3124464ad0434a3de48ce2b87ddc557b646a5ad6fdcd07", + "region": "XB-1", + "at_ms": 1793492180000, + "cell": 23, + "creative": 1, + "column": "XB-1", + "quartile": 4 + }, + { + "id": "434d86eecea35da37fdee336cb88c13a", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6bbc80c338c63b338978e6f7c4e4dd54b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f0852119f1feea653d4875f3d4bc24e92242b4956a264a0535768edacc739fe7011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000c736d659b4b1f6fdf447fd4dc2ea2f221256ecc7f5b75ec3c0b3a85fa3dcfe5fb32b4be679a2120efc4adf44a9ce5a7dc540ff009bbaff98ae0f25ba38c67102", + "region": null, + "at_ms": 1793492240000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "0846bb0ec4ec76df3067162b3e6eca3d", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8791f4f2730f3097a7b8e383ffecfb736ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f73a6f4dcbc2c5a39695a715b0e9953e6cce7e6a144cc0984d34df2cb6da30d8011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b0000102701000042c921517cd2bc806171dbf46ca2d832edd3f2841123f7cf7e52ff609bf19a0df6b9f76510a04b45da2c078235e6d156d8cefb9b0398499f43f79e89bfd65704", + "region": "XA-7", + "at_ms": 1793492300000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "9d2ed5f712ceb2e31fd7b8ecfaea088d", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd6442de5520efb8ed96747c6a1c36c21b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b438f7ecbe46ca45823e9d39be21f5b9e6aa81dae11e1e9e20c088785ed1b4bd60011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000fe3124cbbbbb8bc2cd8e00b8c0b186f04d906029710eff81f90b6f9a184c405edc679145b85868b44fa7da55a84a7168564fb68d84f3b632872be6a9e807bf0a", + "region": "XA", + "at_ms": 1793492360000, + "cell": 18, + "creative": 1, + "column": "XA", + "quartile": 4 + }, + { + "id": "df7f4ebe0c8e983e6d60a5b39f4f46fc", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd102f3d5ccdbe621b0b98248d8138b09e6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502ac1b53d3d2437ae9f735fcb2dcb56f9077fa0db5d6bac5d56151671e233309f6011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100005a2b5d7c8acdaff11c9c8a48a458cfa6bef3a7bc608fbed7692e87a9bf8d0dea9e0ad401370d25de0464f74820860a65266732e7f49a2cd69dc52f8e1c6cb401", + "region": "XA", + "at_ms": 1793492420000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "7306756ce495d7b23372c69fad1ef728", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda472cad5f1ab0f037ed71d08a293cdcab52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4523bfe6eb2e6c8c304031bc63409e0806d9dfca117fe92b8bacefb96515a9644011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000fb526d56a502aae2781a491fabbe7c35e09880c10d8482344a43d6c05e19600b9f2137521a0ca328ec99de931a053cbfb93c88fcce7e23766a5fd1dd416cd90d", + "region": "XB-1", + "at_ms": 1793492480000, + "cell": 24, + "creative": 1, + "column": "XB-1", + "quartile": 5 + }, + { + "id": "8c3e4ab49d35387d95f5ab6e77b456b2", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd70a325de9d439815f1f100c3c082c7ddb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b48e4009d25dbc652428cf0f88f9aee4a096b5a5f6f9c7c31384db3ba5febe9f61011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a000010270100008b6e46d6ff9b179c08e9e3362c9892ad67f816b0b97e2266298c63e796907e393a55cfc547dca8644f7d9047151ecab1bce54685bc381dcbda21f044df67b604", + "region": null, + "at_ms": 1793492540000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "fd9cb80676853e163cf831b8b558eb26", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde57c062e12b275f0e00a4830afbb3bc66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e4f23669af61da410f9b1951316ccc2be128d12bd9db0d9e9c3b282dbc8cc411011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000063266dfea9bdeb5dcc31f91f7d947cebb34b4eda1b8e34abc3a35d78e0697c43025e7429556b94885666a0fe3c59f3b5a54ab7fcf2cf81d97a7ae3ad83ca520e", + "region": "XA-7", + "at_ms": 1793492600000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "41305663bd11be9f6805d8ae1600fe57", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8f7a9c01a08b9d95d5a6b804b939ec99b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b449f96f55a4eeea996f6a2a8311a9079825a097e8de01e55d96ed81aa90372c1f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000da6d88f7942a7cf81518ac4319d074d12adeaa5c28096fe81c74ef3ad971a80d9c9e5d9d3f9fbb2a3f0f52256f06a6fea35abed657a7582400a40771bbef230c", + "region": "XA", + "at_ms": 1793492660000, + "cell": 19, + "creative": 1, + "column": "XA", + "quartile": 5 + }, + { + "id": "e4fd06724cddfda947ce75b572f54154", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbf6ef1af914dafa454cd09e35efcb1f86ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d65d264440bfe5de0020575f3b6c9bea136620f6a600614f1a7cea13f61e2f18011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100008c4da05b73ab70c500fb0793cacb424b6f5c611c6952da04f84635406c92a49b9bed0abdf42169d5e4f0aa179c5ee251ee9383812842da8ebf11a5964b66cc02", + "region": "XA", + "at_ms": 1793492720000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "aa08129ab5b2be4f591979e2e7977f62", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd24ff20bf25b53931225e2f6743b36be7b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b43a526731420b9ed79cd795ce61c56e37f193856906118e1c106a172e585217e1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000495d3eae3f85d8c5b1c75b0890b5c3923236a5e694e5b50c37f1e62e837033d14f66b33581293593ffa979f861f6b5735c3ebca40664a4aaa12fa6360d51060b", + "region": "XB-1", + "at_ms": 1793492780000, + "cell": 20, + "creative": 1, + "column": "XB-1", + "quartile": 1 + }, + { + "id": "1d733e148f9acdcab5c2cf2a39afeeaf", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3423a12d68b1fb6041ed5c796aed72b3b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4d11c85e318aa3dde937c2126e927328bb67427417be02a14cd210a416ab59617011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000c5144bae228affa4db462b007a8c05eba0e19b8ea19ba17a17735f891d4e69d50bc0f50e8b3c170c42d3fb55a466448de856246dfe1a4b8bc85b65d43b21d90d", + "region": null, + "at_ms": 1793492840000, + "cell": 25, + "creative": 1, + "column": "other", + "quartile": 1 + }, + { + "id": "a9ff43053345d577e7e90dd0983d50fe", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd0c1652ee5049bdf4af08d10042623a36ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502535e8380b14026d99a16d795c322a70318d6fffa595b80c133e78fdae505c878011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000b80b000010270100003c7bc55fa7109e5714524416ef967ba87ef44e8aa50a4cd765267e249d3bd3bd00a1226ba0cb110dd16e574aa9f6cac137b00f30077854710cb04ff062966405", + "region": "XA-7", + "at_ms": 1793492900000, + "cell": 0, + "creative": 0, + "column": "XA", + "quartile": 1 + }, + { + "id": "ceb8ac1145d3f422dbf2357907973f2d", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde936dbfb7bb986ffddd1c093230669cbb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4f087dd91a563034f723e908ad874bd596dfa5d8a28716885ccd5038a97d0ed3f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000b80b00001027010000f3b363a15b099acdc2aea52ab09def9b666ea844e456b270161430c7d0b926a572141cca0be708dc9a6415d7448d17c7dd05f37798a448de44adff1facfa8309", + "region": "XA", + "at_ms": 1793492960000, + "cell": 15, + "creative": 1, + "column": "XA", + "quartile": 1 + }, + { + "id": "42e6d8385d1e35dfd946ddaa1fc432cb", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdbe84abe57cde5a35e38f5da4c2e274d26ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5024fd576597a6f29cd5170bc5fb839ea222c3a0e6d7a5cc8b5f419bde2bf33de77011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e000010270100007ab5b4c3371fd4728caa6e32de3b72868fa2e2bb21fd67c7032cf5a55541a33abcb83b9ec5b8b45114a2faa038a8851c76b8c1ac7c8bed2ad38c32fe58ed7906", + "region": "XA", + "at_ms": 1793493020000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "1ddc744b7bb720ac472fae590cffa8cc", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd21eafe97f05eef09d55ceb2ca36c12c6b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4198ba31ecf3d9166e4d604a57df696e341620c3624c99db591f6d78eeced13e9011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e000010270100005ecc8075d6774c58b7ea899fb308c4ad2e9927a361b6874090b202bdfe2b08bf55a300a014ca079630f30c5a221e699085907b999510d996b53531dfa4cc050c", + "region": "XB-1", + "at_ms": 1793493080000, + "cell": 21, + "creative": 1, + "column": "XB-1", + "quartile": 2 + }, + { + "id": "8a3021658a05df3b461e648a96e31195", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd4c938d920eebffd8a180815d1fe7af3b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b49f7c01c3a94c91a1a0b08d46a5329d94fb4535a9f901fbbd1bb624c5112bc791011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000f23dfe1708d091c62b7092d78414005b26af32985813e85658fec3f26d4818f7f0e514050537bc6083a49a46b6f83fd5036779eac35db081981e8cb97288e20c", + "region": null, + "at_ms": 1793493140000, + "cell": 26, + "creative": 1, + "column": "other", + "quartile": 2 + }, + { + "id": "533c031b6cdfd9c4c70ee6c16a64674f", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8bd3ffa5399104ae3dab983104e6eb6b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502aa771c70eba5afec4975671a84b6aa51bfe7e75a0db56020e5064f11c2cc2b97011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610100f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85d010000000000a60e00001027010000a0b07b4a0b6a47ca829129971b0645651adf21cf7ba5bef8fc9eb78c9a9952836b70f3b8a7610845f4e78674590393edc400740cf541678376a4fab836904001", + "region": "XA-7", + "at_ms": 1793493200000, + "cell": 1, + "creative": 0, + "column": "XA", + "quartile": 2 + }, + { + "id": "5d403cc974a429a96d94f3799adfec46", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd0d606422a0e4b4092598f8466b5b970b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4b03bf4e88543ff545ec16962b57b59e58a3bd0f22d28e15e318d9bba2cd5f274011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620100090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cf010000000000a60e00001027010000d7b2dbdc594c7d1a1b862d41daadae412f9c4cee5f67ddff4aa1b3a2b7cf9bbec190857358e383f0ded720fff4eecd3077f8b99303317fa09391bb34fb84ad04", + "region": "XA", + "at_ms": 1793493260000, + "cell": 16, + "creative": 1, + "column": "XA", + "quartile": 2 + }, + { + "id": "07a89174d08148935ca9c245e9087bc8", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd45685716ee567358453cc7ff0430a9a56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f8cec59335739271b67561da41995a1e9f3fd5004920695b0c61ad80f14b268f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d00001027010000f1c65d8a80cf628691ca8dbab745b45e42c1c8255e8606b84168b329314a293e434bc811f8babe3de39da1402f6dd5cd61d7d3d4fddea859ce1ee924dbb0c10c", + "region": "XA", + "at_ms": 1793493320000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "5688746a7c46bac6ca1be21d794e162a", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8725a3c51346fcf8584285c787560beab52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4452b9a2154bb3fa9ca3d37007258806b9fb9dcfee30c98105dcf885ea60cd5c3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d00001027010000332b40b5ba23fbf283627ca61f32bd11051a07cdb99383fbd9127b13b889f4e62ef40364c850c216bf77b22d9557bcbd297a5dc14ea83e55281ea3d9cfce440b", + "region": "XB-1", + "at_ms": 1793493380000, + "cell": 22, + "creative": 1, + "column": "XB-1", + "quartile": 3 + }, + { + "id": "37056833df41cc4e8d593de681689b37", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd950ec2420c553711c3cf39e46e9d9e4fb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b43acd69a5b0b5084864815f72cebc667eac4a18ad328adaa9e78a6eaed65629ec011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d000010270100002ec4e28f385a2ddd04d250551bf6390a20548c003642e4d9cd66daaff9158365b2c4d9cdd562b2a3fc290350544cabb0ae61cf1acbb7b4119f92337852c31306", + "region": null, + "at_ms": 1793493440000, + "cell": 27, + "creative": 1, + "column": "other", + "quartile": 3 + }, + { + "id": "3e9f6013eaa594f8c9e63d860c59e55d", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1f681d56af0d128dc8273d652fbeb4ec6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5021cab47ac943aef7ed3ddbd9bd6a9188e5385f030732d1c638ce3af88cc5d7961011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610200f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d0100000000004c1d000010270100007b0639234c1f7b6666ac9cfdb1b5f607e027c8abd2297f611a0dbe07283267fb0af8cb7a32b16ba3105c3fe4c3a09e02db1b6abd3b657b306f8ffaf342d06b06", + "region": "XA-7", + "at_ms": 1793493500000, + "cell": 2, + "creative": 0, + "column": "XA", + "quartile": 3 + }, + { + "id": "52fdbbc0c2f3cf9a8dabdca031573bf0", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd94a88206379f290c47522ee07b74a2dcb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b40382f7ddcf4562e6a787311d626b1f306f63e38301700266e854c8a067645ae4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620200090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76220100000000004c1d000010270100003827160ee5c9d9aafa83990213497d45bc892896ee2814a83abcc047bb1753b10c47e302f0ac699f15f0d738b43ed049b312007d42ae30787aa4c1d2d4288d0e", + "region": "XA", + "at_ms": 1793493560000, + "cell": 17, + "creative": 1, + "column": "XA", + "quartile": 3 + }, + { + "id": "253c3c4c3a332d728e5dc933e8cd4450", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd0c41255094ba6a67c8ab476ca7ce85ad6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e9a77756bce1888e8863cb7c19f95842b00674d53b71f74378675f96fd95db6e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b00001027010000f40f0142611e0fa4f78b2c7f7f93b4f6d6740cdd7dd2943f44183adf7a90dea9e578e633ba404e4f2beae0cccb7c7c18fa4e113d207e011bb7cdd49f61926c06", + "region": "XA", + "at_ms": 1793493620000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "10feaab8acd5537e003d724bc15a5f25", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd49360e34ca1ab739a47016bc12f00879b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b45ba592aa53260fc03b7e4e42af072b748f780e33dab5c51899ae1645b607b2e1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b000010270100000efe8cb189a9b0cd9cd88079dc9b7f7fba3f07b43b9cabbd4940ff4f9a2a4a5f2f037f4d86ea75d5dc36642581e6c4deef7485c7d7c2b3b542ad3471d66f680e", + "region": "XB-1", + "at_ms": 1793493680000, + "cell": 23, + "creative": 1, + "column": "XB-1", + "quartile": 4 + }, + { + "id": "03ccedac589182bf551a38f2c6dcb722", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdaad9b17b9aa1f70a1c0919a0f107ea28b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4c3b1d427539bf6baff654940e226e6a0dd362896f19c99bd2f150587a3498b78011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000e33a186d88d49228c0f0c539cf26c8a0998704ab7f6a42615097f7d7edc755d5a3ef590a32822cb44b2d726580e94b0c31f79b11ac51ac53c2442435ff155303", + "region": null, + "at_ms": 1793493740000, + "cell": 28, + "creative": 1, + "column": "other", + "quartile": 4 + }, + { + "id": "01442484f0addb0891204182b3519d64", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3025f9630c74a2b6ead360586a2ae9ff6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f316bae348f44d0246544394f16dff07b9e5da09249c85c8afa10c0d8f167d10011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610300f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6b010000000000f22b000010270100008c59cc1ce0bf16e9b715a2a7df08bf67f0f27d979ef92f58eefa5bdc68c074237e6aee0b2061d0f126cc71aa0b1cadbdb30679465ee43710dc50abf9b4742a07", + "region": "XA-7", + "at_ms": 1793493800000, + "cell": 3, + "creative": 0, + "column": "XA", + "quartile": 4 + }, + { + "id": "cd7cbf40e24056d376ad73d5cca4c1cd", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd10c4e526fa1f52f6d8768cbf5a91cde8b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b43d858e379a9831da2361aaf53d5883bcd4acd0d8fb125a5a8f145b082f312922011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620300090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba5010000000000f22b00001027010000161a9d6e6b425345030d58638e23a30e3e7027026076add0b88d87353d414edde2dbe0d8adc39d81f9b4420e70494865c7f1b978b3d51b2491023f2c657e040b", + "region": "XA", + "at_ms": 1793493860000, + "cell": 18, + "creative": 1, + "column": "XA", + "quartile": 4 + }, + { + "id": "f87b6fe4cba5c60bdd8a8d70207c3f04", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2f2e23c08d65d0e7d66e9d16f9bd78aa6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502703d2b21165182952abf9fec4175dfc38dbe0983efc5a003361b202d92843105011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000092c115e68a75f906dfc7b077b0b9707a6d3173dc3f59ebfe926a210afd75ebda686f335c21b46c9c1b6eebd9599c04d376d85f9b5397c35298068b9440a9ce0e", + "region": "XA", + "at_ms": 1793493920000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "c3240cd8132c1e6c543c255d09400b27", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd7d1fd128f8f3c3478557adb10571872b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b49f73a3d8939fdd4df0b3982386ef90c6ace3461b1172c8138e871215aba1ab2e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a000010270100006acf6a68f77413d15a27c632e280b14abf45e9a229d08b21d44bbd7eefc4e268a8bb0240aabb17721ee435293355f784db09f374a44e74c05fb1c30aa72fec02", + "region": "XB-1", + "at_ms": 1793493980000, + "cell": 24, + "creative": 1, + "column": "XB-1", + "quartile": 5 + }, + { + "id": "76776a7c5a4ab50431267be8b2094f26", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfbe64fab8dfd484cbf8d0d897e99ac7bb52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b47ee07c4e71bc5556e6e07f7a349f047225ba24bfe75cd274a4a1e8969916eb31011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000e144c397b201d75dbe868b44fe14eb3d7a08e949a1b1d465e6c3e83df295c96e28f298aa14e33a94005520e827a765910b4d749caa18522e1c51f8d57e022400", + "region": null, + "at_ms": 1793494040000, + "cell": 29, + "creative": 1, + "column": "other", + "quartile": 5 + }, + { + "id": "9e2e051d7a4693ee2ff148677d92b336", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd454e52e961bbda378a9afede2c1a11496ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502810692ff0a4177b0c99f9866a6b9d7f4535bec725b39d51fad7cf6a460d65aba011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003731057372762d610400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000826dbff41f20fa39993335bc198f60c78cf299b55e226388edb6d0ebf703708f82ade3c4f096a54e4406834ae350f0cc24f7e8ce6bd0b7a6ab1656a7644a1504", + "region": "XA-7", + "at_ms": 1793494100000, + "cell": 4, + "creative": 0, + "column": "XA", + "quartile": 5 + }, + { + "id": "468d52de4193cfd6a958a320adcfea64", + "time": 498192, + "kind": "presentation", + "record": "rec_dash", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4fa35441f149b06c9e6033aabcee5226b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4041f0e8fedb637a7caa8c385c1d65dfe4e8c182e5de921bcb8447151f05e6874011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a3230323601003102003732057372762d620400090249b31f3ca78913cbdc30ddb43de1eafa49e1d63cc4b20a80ceb2788660cfa20a82543b3761386f26820ca3348697bb2a03f7b1fc9e640995a1c9e48a76229f2b8a67985ff8719be805022fc294fc8077daaf6c2fdf507bdcef2f77aa0ba52f62f458e9e8df4a62441523c29435876b109a7d42c3b7035d9d034ca104c0a6010000000000983a00001027010000051fac1392fac253e595074f92aef1d8131f44d30b6b7c34421e6e4e9766a0b96007efb537f7e5fe047ebe63eb0c7774713b2d7131b291da575c5258aafa6f0b", + "region": "XA", + "at_ms": 1793494160000, + "cell": 19, + "creative": 1, + "column": "XA", + "quartile": 5 + } + ], + "steps": [ + { + "step": "upload", + "name": "direct", + "file": "5749553101e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b1500017ae801442484f0addb0891204182b3519d640000000000079a10000000000040c6f748dd09175e332838eb984c92b66e30056d4c4cdf8995b4b04b5fbbddf785f2922bb21be3e5af43b6f45f3b47bb8dbb0a935d28cd3f83ba7edb09a754c425010020896eda715defbaffc4e1ecb3d0098be03a5eafa15b5c70eb0b2425e652924e790000052c22bfc3e438eb04401f33ae10973d64142e10f424341cb7a17766597358048ab70cbc3ced4f2ad637987b8203fd0b06a2ddc3552ead898f09bc0d670caa36fcbcd4128901746cbec5a07360769327bfa27dc122c3530ce9205e8a6b919e4fe5152c0457ffc77ccc7103676dcb58c325ee0df09f434048344abe202a7b96562662c9b940cd324f17c9b392f302a6f18f616318a71304de55c1eb41d710569260b22446f3e297b78630216c3e9853883cb452dfe7aff3665b93522c92480233b39a62f8fb64da7fb908cc92b853e99f115311ef30602c727a2d61c73f357b2334e1c21a1e927e562a705c1fc1411c9d061370c9a4d5030ff790ba31c850a6a5e2ec047d0a6d6c621c59d9091492c24901df938bbfa7ae99d6c021f845808935dbfbcc33e4c07570aa4ca879456e87fb6c326640a9c3bdc3f27d1e8454f0d12f6578f978e056767f701f66fbe700a8652a35ae3d1b93a59787e7c8c307f058cec4f91ae1b6121fdfe980685ab4994235e2fb669dbdef6d27347a4244eb4a256a9acfba934a9111ef6b071efd9ac63b82d29e6227a59364ce55d7da49a1aa195e15644d9dcff5a3f81d6358f2dc80f32f250ffbbd247606159155ce753aaf1d67818d1712d2cc70a2be9c47460cc3e8dfcd277e95419a663e981c155a56624e70ef121aa283d84bd4a7683bb788021afd77b42cc2eae0ed24b3cd99981d9917daf6827af5c8f255a881b61571a02d1834559a52fb00b0febf097e73f5830afae3d99a31a6f0ca02d228560e7d9f7bf8d6d83a16edb22f2d47a2157a4e83b326fc33d4f18b33bad17d58f6bf7d3399a8784b7ba2dcafc8f106baa480bbdaa81a4462237164f5b48b47543c5b3ff288718fbd4e8b35e4ee575f4cd4852e5787222b1136d3f788cd796f6008c41d93e08c5e81e84b4e55229f47c0195ac4528d73bf7e3e7878d4b2095d0beda87858f585ed049f21fbf320a538024d4a5c8800564db339a8687572a33b89cd0626c0437c2d417f64d46385e11f02db5847de10a56e4510434e6ad03e9def34cace043510f847f5a30b6029184a0485898955b791d37bc003d5f293ee29177bf2d0a2c49b67cb8ced70dbb37e519a5983bdb495860c693871d6035a39aa561f03e6f1d1084c7146d236e25d71db62b903e496911bfc3fb1ea61ba85abf06e50707ac0ebea9bcdb78c03cdd46134f59f5b98f0b782924da4d66859e18775ac44382634f897d361b5ec12deb73ce2a87dde23a9eba25028040a9f0f45d66d8968d0da8b19668ea353a9d852c7216fc2cbbf1e9d61aa7abadc3da5e2112ec57ac35db3a99596add2ab682f34943088031cb3295657cf7f5b78fb593f8973849a8a5df9873a5908316d6a27be6fd601bb9a131b1b9ac113bbff6da8e84efe688eb0792ffeb6c7a6b2b824ec8f894f439b62e950bbac88e7622cf7941b6b6fbd89ae48f88625bd80050935baa09dbba05286d3dd52bda3300fe0709d6c167882e05230d95618bf91e2b9f26c81528a467ff2b08a572e45c1c71fba65cdd5e5018ecd415ec7480078be55c74ed2f1dfaee0e95759a4ed93841c1ed32a55ec440a950e0606445934cd361d40aef1eeecd1d8eeb16d8bdf247f7166aead017adf93dbd6da3b89c672a74f5606c92f7f402ea2bdbb2e3da8c8fb5097390e6c976e914f9ebb2904630b30fe66426e11857c2a1a0ed8abbb8e541c54464433511a486880c53f5ecb47887ab67f0a0e21e9d3236944106ac7bb1454962d4062c6379c6ef725fe90c815d0ef7c1d4f669e2629a4067d19781c9155c7715db58f05406afc7b12e177680873ae71721421d4d6842422a5a3aec8454af5d2c99af2d5c3600be875c9a7a7410200202170dd8f86367bbfea81fa2368d0a5ca8cb9e2cb6e413885023f27b5afd92e3d000001bca376cd186f1841b33eeaeb9744b77d43e1f02dbda704dd9290656328801033988ea43e9ddd09ef1997bb646d6efc737d052051a61a538efcf460cd9ea514f7acaf12fae795fd492576c47120706aabbf6ca8a1067f73aca72e692bbbc7078483595418b84ae02f621ce8ad81fa95b986e3d0c4d5865a141cfcc874a16577651801d0893d7b3a2da812ebcd2bd91eb531803a96179e05dc9c5ad04d9b2571e5967d7885136dfa863de5b83187a0bf3e88fb928c364d29aa22afba7be34ca48719be31756bdf28f60f32062c23b4ecd02b0fccdf06220459dc9d81a39fce145c739e927e217daa233264bd1f09ca283259711891bc48bbce474f5c46eaffdbe2158effd17c291a81b2c850efd47619f8e4b03af41a812bb8e86d7500bb1fbb5199864ef1ff0f469bc182ca1a1bfaa4cfc11d08c35738959d1c5d265e05a5301dfec90eb0ee19cd63e095a7682a18126bd1cd47fa068b7f40eb748ef3b9f88e9c13f24ea64b37b8f1e7c636f3407e5768fdc5917970eb3a1404f2e612d02e5eb6b353827384f38bd450f85fe54c33e14a76d96193c4242f44cfdf7e96226a3a139b1989661561a4ac8dfe6d34c0e4a502adda9f099894671635b382013703ccedac589182bf551a38f2c6dcb7220000000000079a10000000000040449e48f0cfe3067afab1aa063c34ce5cdd73dca56b1370cf3600a88a8b7a95aebdbf2efdcf40d28d5b6dafdb6bb06a76ec31216752873858313bb58d86493c62010020c4fb0ca263727f818a31fb375cc38ca8e4a111e566915e7ca19b726d2e53264e0000052ce27f5f4f8d0f5e16dd26b4c2a5f1ebaf86272f6d8589c299c7fa590e423bb97378f9d9af818fd6136e29bc277b7da1c89ffa3d431d114d65e3a536691ae5ec1b3f594c8a2ffacb5f34cb502f89514556bbac4d251e1f85475f042fa0745b283cec1bc588c5c52290e08d9f5d480f81d79c7cd5099c0eebf286a1634e8bd2fcba3feca2798430481b52969c5381b7da66ba0eabee4a0c1e31b0ea32241e857120d5358bf3cf674b9fbed3ff8760622ac1f5ed09af117d31e8562b227dd39e33caa5e7ffb27b3c76dd63623a85fe5722d85e8621fe19ea454f4df5f66d41b50237ea6667dd71f7aa7ef5cbfd9590dba0e119b217484498d22efd8c2ab8e223c9b06adfc24e388db49f9b98efdcba4a79facc1d8ddd4e3eab047ed8166c3c2e6c57ff6e609f8023337880e4decf3f706c5692f00d13e07b9330720e4d1606c2c1dbededaee93df4f11b38ee4bc1c864efbf40da2ad6c8a90be41f855f4a74be0cf16acbc16f63706b1cc7148b75b10266bcd74e95d68c807da6f619f303d2163c9aed12107edc2a73d74421ec254c940f7d9f912a3680f5f122e415fa845a280117dce9db759800376edc7dc53e21ac5c703c3ac09ee34547f4b6614211ab5be2694697915569db44baeaddf227ea51b3db75d04c07ac95c11b45ae91cf23f08b7b2cebbe51009db6712c87ccba73f4f7de353ba5b547e2898a900dcbb78f6db0768bc2cfd77f0e3629e3ff85e8e1442730254882563743c0e03b297ce5190ba29376d53e768760373d2f8ea3cdd3aba17714cce0cd29a162481e099c1d69f53abd5a7795f1c2248fd96722ada6ec7e0f22576e7e23d3eabf8949ee391b3a3325aa4caa28a03ee100a5b2ece9bb3e675ac898ef43e9eccac3240e2a4c45f344c782cdf3ffe6ea13b7c2b54e26b364461b062450a82ec2f6fefb7d38b649afb9b78bf5566f54718bc80fcf48a80423983eb045cb885335beda0fe7466c9cc18c2aa1b55bd2383b728ba23554a97f793c85f9e94d8cad985f0a561a97f8337c5575c533f6c4f250862ea06aba5cf465d710205a541811dbdcc112bd594903dc7f65838b208c21eda20f0a4bf9a001cfa3d7b057bb7cfdb5422db57511f8d29fae6de05e1d01da419a68f1a2ec13789ae8493a7e31c3877be13ea0fe1b1a31aa8533a30b1bb4458ba72e97f54fd905a7a568d0c14adbb334dc7e91cafaadc25f57e7a0c0e240ddd16c967e98102731e65494cb155f130cd10670fab9ccebd850d16b9dd72aa38a538f5cad9dd87e33cd0c5df39786748dd0b2cd55d4dc6f488d4ab914518145ed1237b3c99166e66d17d2ddd85a34a2abb9e139aa6791192a7868f61eab44bbf8fc513f9eb74ec7b2f5eaf138e510607b17c8e721a7eae99495df7b27590972874b4138558d0808ea7c69eca1d8b4d3974b9f96a2d35069a0ee7b3c0aac7a7bdd82f22423d2f72d2cbe5191212e0e983cc804f28f1ab7996ae81c9dba353046cc1c3504ef057cd7565d19d8647c6343cdd23df1427bd7539ef6892dc789ee27aa50abbefc163b8dc5f586d1971a1141032812a78bf0fb0b213e09f54db504230f40ab41364b7ee9e1b8d87bf5785aaf922398f4c6f7f0bbcbabc4fd0b4c546b3f9616d3e8267ea468b473b507adb1e5e631c7c1263d173ecfb25aaf46b73e8ee06fcfb9ed960ccd8a3152fa57138933b9edf0ad04ce972367e5ef6f82b017252f2989aadf78794e36a751c3ab582421e3590f37d9a6c07d95058121ec682d3dda10e7f8299a0580076eedbed3571428bcef2cce926df070a70991f681d8523baa61c81e40107a37c2a5279008a7121d5ad6b6853672927a65445dce16de316cc983f4953fc752e97e0200200a2ce422dc19aa437bf358d6c0bd27e65959da0522f4b55a4413831c0266e95d000001bca95c7693e10ce804f8fe4750f52c07442f7d1ecb9f94204136cfead24751724a3ff3ac0690a3dc75cc6b35fd40e426383638f194ad0ed0910f22dff871bc4561496e23820ec9bf0f479e866e96ab699dfc63e84ce76d9f018014ce576b14fe7a49acfde493dd7f7d95a0d9d36d8afa4d9651475fbe977f10653e9c788931290ffc2fa4dca6fa67455a2013e0b93dddcfd7822c76acf3728c391a606cf49e56c79bdee84d52ce343a1ebe675b6ca17fe5e436ca7f2975b4f3a75c333a3bd4b2c70ee491fa9cc6f4ff52e17a31a41ff7aa2c1207300747a31be05bf1bcd807bb40f01b96b1e54f79080b6b36ab9b9a0ca81e79853121eb862ba52fc7ca89968860b343bba8044b01f3cab364fc457326d5331bf39eb22cb8e49874f3e0cd857ab57bc7d7a68727565f4c5973eff3ee6844a0055b7311a88e5444727c1e9f94c89da878404faaabc32f6758127aa13f95de59a8cb01da6cd4875109d33b7883be5359453f94f8c1fc0ce5ea734c08dd7cf3749bc82f0ad8a488b23ebf473077833d55c0afb2b71307ccb5c4c96049f3d9492a0e98ad600808149890d142c3cf42aaf83977fcc89ea730016eeb7d78e921dfdf399c29f90950c9d7b61190046d5c529705d964598221f09de507f80000000000079a1000000000004031eaf76bc7320b87f6450178d7822d3ea62aebc1f0c7462a5915a9914c835ecdaec6a609d0ee89cad06c0db5bc1f917f30cb3c0924643c45f9b64409ca05c00b010020620f291e2490a104d41c65416e653887e6f5802ffe02fb0890356f01927659760000052c9116bb7373e296248739c03aac7002eaeaaa31d4f37bcf508b08d9ec1e57a1222c338df04abbf674305dbaf74287df4b7cc20a899900231231286e3ba74c82d28c8aa70dbb29929cedb38dd2e1a38c6f88f66929f79d9c62454750eca606a8ef345d54f4ebd2a09c6c9da56e3a6fac723412bcb49d1b4cea2379894fb944c9d04d9d0af04bb65c9d46198a4a58f9ffe4c5c04b557a59414ddfc4eecffc64c1c47a9ca27d9638418a193e5733a5f06fb2ef566b98b556e11aecc2e9c27f8a5fa95559f3746d54b45697878fd2321690504689991944086a731b718da9bd406bedaa9cf09d7bd77c6388d2ca40b010ebcfc6995399cbbbc5b487a99c997522aea0fd9b896505abc006689ce80572ce4201d41fd6fd8e1ec566198e7003e371f88c3ed5929c6e350197eadc4fcb0ae9f7363d9057cf4eb8b9cb0805489b5b0cfac75a783797dbea1846993ffc0566d803f2bcb8a1aa1ec17672e80631effcc8def9c8a97094eb712a69e7956e208cce9ae8a6ba1878abf28482fb48493780bf4d4d8fd3116eb657f3975875cd2d26d7e301e9e228f823d5b65eb1319da85e2695e358aa713ad9f837dcfafab594d9e2c8cac209dc2c8c5e42dae34768516a129ae3c85b2fd02a5a36d5da1d2facb2cedb5a5a1292db5f75a35b29a05807f48ba3eec7a485257ce77180515823619175591b19db5dcdb3c08524015cf52a47244919748a98c0a70097cbc8bf410d8e8a08089c39e40cfd6685396d4e0875575a9509061d57f4504d830eac7e4f6faea9ac55295b2cade0f56879e7c9125b3317008baaaff40088879b866556e5171353b7d29da546c70a815e1a8f7010343b3e740ba3af5614f2fcee20f09ecc298f9fa611fae30fbd2654959c2b332e038687b2eb6b4ca1d7ca877eaaaece7d79a969acb01df4101d90233dca60b4144d0b8e1b57efe7f481ee3b5f3013705e353de5c58c43c28739f564ac3281494b07994d5bf551e4529067ca7511e76e3efc0857808430c011f824ab6cd42fed18c93cfa34b6ad9b333c597b78f6583fec576c2cb8bc6e40af96b9107b3c62a4ef2e1feb1e76ec8c362548a70e672f9cd93284008cf5c138d01094a016fd92c224de8ff785dfeb2f43457749ea7c853041ed9c4683a5ff4f8699b64cc942f480403f4886e5722086c81186ac8d6ace93ad661928d92d5f7821784d22f369ba379008fff5ca7bc47d6146552709f80a15bab3cbf81e3bc5a4b519d234036e26a818bcc986d365435a4fda0917b10017748c3b8cfb44b9c39b31d984abbf28a2613202aa850b6385144ff2b0a732da6be73c2bf9434917bed5c459d8054b4614a8aafabbf94282c3c0f3e81c85747630bc08ed8a7672d105a66472a166cdbe7f39c7dab4b8f8f74f9dcb2478033fccaa9957b648e84e8555f691cab21c5babbaa2dec9f7ac2ffaf45c2b6dbcfd7181e4797d4f0f08dd7fa8096a353108bf6ba48d4c3c45c02eeeb6f152366a9412cf54f8b18e1ecb0c2e76ee075313eee05ec9a88ec321c6b59183ac7b81d281e8ea2bde14e38b4021d1a473e3b463c6270cc7af99c01b1193febb88c49e47f1e0a035028e80066d74965630df6f3357bf175eb63cad0848c121619dfe1eaa74fd8a5e2c71e9c65a2e2f659eef6b79f38a220eac3821c8a7c93b2fd4cc204a3b0c0a215655f99111829967ded4c4fd1d456484889300d927d6a659f439625e2da1c2e5b78579e19fe0da7b131612c629a29203f32b2b9894cbaf5d8ae1afffa03a1b1b98e18fffc69704d8a794e2acf42d7208aed567268a4cd380d87526ab5fe5d4d9a721366adae3f67489ef61853e6addb0ed376259a32fa2429f4cd858431b46a8e0c321020020318aff58fb8a95c5e09c3a919e56c763f215963b5a9f879aeb36f5f5a04e7a01000001bcf47e548d9fff387814ad548c9db72c629ba388f700e903c47f4f14537b2b10c7b161cd3eb23535db54c1b14c7c3e319a6630449d47d26b5daa36a7cdd8c40edee17c4788499ff6a883fc75a8069e3c81168e9df432336fab3adb8cd347dff19446b952e5aed5683f2e3d4670aaebaad80a8741c639488d49eaace3cc4c8c33e43286b3d9b520a8e8158777c20a521e6b9868a03cf363a3ab8dafd27446d5fbe395845fbcb658b35a5c43a192eab21fc37f3cc73efaa0ee50fba7f5cee605e5eb9c58ee1967b9cbef7c9c2ffcb64c8b67ebce4494e4cd3d539722b8d87f06448ce8ab37504d7dd32abd84168940f27f53e673fdd4b64d3378a7680b7c2834f0f966cd405eb13320a00040b186b2f41075d5078cf29b8dfa30cd65eea2ff8dd80d15dbf19eff3f6c8b3921878fde7f10f742dbcf21b06ff5c2ab20dca291a159376edaa9e1e9dfbe86e6d27a115fe03021cd5ea8aec300d13b0612139d396edd623ee03b3966cbbc803e0b8b6ea077c508de0f555055a208998a1982e450ff6d17d1cea4bd537e6942c5a908d49f2a82734933420120b045fbefc1e6487341806e1583a3208982c3a299f54293cfb7d1981b271ecfb32901850163de5907a89174d08148935ca9c245e9087bc80000000000079a10000000000040e5c81ad39794ce846b56d50ca96b2678e6f2a9edc43a3ae70674c259a6b5976cd1f3bcbc4416c2c3b73301d9ae7adc3169251d6b66dfdb1dc690f045983d781a01002029a6cfad65bf389f594579af799840e703cd8ecb5c54508645d51289974473070000052c9892410e10552ac5f277d96a4af9da09f41066c453fbb83923aef1a34565747e1ca8e5186108c0e965cac6d4e29ba3333cdfb6adea9ec3c9dcf3d08a0d6450e4128f0c3449570727786e03b1023c88fc068d134fdfad0e936a177c7a647b0fe4c5936332caad58f168cc716a039b10ee5096a0e0d030cbc8358a88e02168209390611a25486f0f59764c9f50b8a4cd26593f37f319d3dbef052b2d425a078b4ba9b104a0fdfbf14c60a3952a73c936f47e2817c20a351546bf67ef69fa189da11ac264e49c7fbf92511de0cc1546f322c3aecaa454943022177471b520d5b7e57a7f466eb81cf7d3223d8b247b22b375902b4a4fa0582a2d44da0d36b8ee1bacdb02aca43291bac943351ff1d3eb20571d7b01fa9a6aae757d3364b9135b5eec4d09658a91f988d8d6fa1434a40a935f912fee6632e601d921a6192596c77463152597dc60ebceeb027ea158da7be92646b37cc643ba22dbab331f562116f06ca51aa63c27cee29089ec2a32a6e31f65953de5ed5ac13be66a1a09759eb8609998c49b1adeb9f8b88a4a38f6c249865af88d60b064467bbd35536e15410ccf72b285866a1c5f4259d7a6d11d19843f24fbcd9519a046dc1dfad18e27efc9ef172893f9b66444914969e74f1a4edd44ecfe136faed445b2d66dce3fb17e2025394c0664ec66997e3b731fcaa58b32122fcd8ca27c0ce8052785960f35235a4fc7ee05cd4ac27c988f7dbbc584c50f90409ea1f780b0afe7c153f6a090f1e9b85ca64685b0804981e673f08371295582bacf5d7dfe13117dfe117fb195578736946499a070d14947f04bd09375b6651aa10a9787c876a4ab94f475741733ae5d1391aae13ff8dbcf54da27b9907a38fb21059992345ad90bd16e35c7702e6a46506b91e4dbe1e6e62bd608ecd43926bfb4fc30089956ce4d586a716253d8e6a11d624672b025b6ef0306645113c4646ed98d09596ed611ce8930bc1e2d87febf214e6799b4ac591c26e585a92363f9769f5f53d392587292b8db615b2fb90a7742bbf4fe3342acca72da24b8f34218fb53de50d342b2f481adb26d3512bcff5e34f1be974f35074fa6218c418c6f53f1457cb8abab505bc37897378a3755f1a9f73352b46c2d9b09e16b9fb72e179d09e1ee621806c2bd725af45faf9c260e6628e82de56f139f208bd986ec2f3128b247a13ec4f962ca78ba181cb0ce05b4dbeb729db79f961cac00c4ac5c724780cc1a432ed8cc9da1167136a0087e186ff95cbcf3de1e22c09a69df454abb530ccf56c45ebac2eb9d7972d8bcf287022e31c93c130f21c1f80683147845e435b66d176f48d11ecb900764793f47d56e2ecbf3b390eaf77ea67c3c282e781c00815fd4eb2c17ade9975ccc2ee92164c580a0c81486b9a9efb94bfe043561f48917ee639aa81d1ae9fc43eeb1808358cf1b1e0ff07a2a3c474d995ae4637f58839c37b60c337549ebf63f4da1b686aa425d11c38689b940eb785ba39ade638c0c0470b316ded2020640e8ce39183283abfa27cea60a7fe323a51684fa247e0e5e9dc8e619209f06de6f03cff70633d3866a3bb8da3ac086ad276d5fb8a2618120416587141e4663d815dc9f84686e311a96a4b211976f785a58ad878d219c60c9c99f1ba1025ce45543ccfacfa03f2d2dac35e6dab5ed5caf259d4f9526c11a3b0f4a37cdd6ba43b19f8a0da5f8324b6815df0a4f075e07dee99999fd9994d4aec1993bc6b3ba042177ee619a825068e38d51d4018303f565ba36ec483048afb5c35a79b2e7eb2c94853f54324f74782c0812236a7fd78185fcc4cc1aac805f7f7fea5360dde9dd3ae623caccf66944f0d04b720e561331276e42c262fc4b2702002095a5437e1c26f8d52052ae54f8a75c981d072482829c2d175953b7e3c829791f000001bc5bec2e14eac3bf14c0367931b49a8c3f1d119aa36494dbd1bcb26ad73d2bb2c3a67f23cf8a8337eecf02b63dd96af7913753cb6a57b00c092241412a5e597f1ee56c2be6057c591421fb3a8c4079146c1274abe05c8f7b2e5de5a71311afa3db8804511fc9974c9d2d497ee061a6c9fa950cbd38a0c2d3b8993a90a95158d79002e1cec7d6c1c3e9b78bed5fa04495ef728380fd1f75354fb5692c1ea0e4391dc94840b523172004cf4d6df4d927cc07a726ca99002b0d50aa2f8cfe20ba240c97ba9b5d3d5e88394028dc0d206142bdc3b208da3dbae7a89c15a19b5046a04d2d1fb951c5bc265e84972c953e292e950670b959b92a2af54f76096ba570022a01176766735ba3b771e5152d1ce73ebc247fc2853daad67b755ef11324d8175fe9729e02341c5eb2fe783f943a96fda7eeea6117d935f715930b93637d17a09fe639812df07fec9b3b4ffc4614df061cf183f245f4511bb8e819d5fd173b67ee0b9ec45feb84f85585eccc7d18903ebe18bf06665914a4ad876d2ab8db7d09dbc3da14b484706fe17f6c9e6403876c302594c723e5bfaea24b0947dc34c32add31a38826853681769021e0aab8538fa04b32e80b0040f9aada0244e80846bb0ec4ec76df3067162b3e6eca3d0000000000079a100000000000404a45df553e22a6995e8bbe8fb152ca00e6032eccc5315f63359f120504f2fc5b30a66bbde981f1ad7d13a092302c3ba347d045134fd681ca0ab2a01cfefd888401002094998623a0a0127557f10d088d6e3af39db3f4b7c29b87f310adfb76591fdd650000052cd5c29cf8abe3a2c21d8c1fba853db238034a151ef008a42e0eecdab2836794d61e74a4be2b277f6a6988b9a64a6d8bfcfd8575490ffa83c855cca05849028b43732c5fb03f75509bccbe78e28e43cabbc57078953fcae1fbc84a2d53a2b09905dafbe6eab34f5d6038be8f686ede01076fc4de8a3b8e9d04984456e76471210fe1e8a52fa52b8acc096b5071c8960cf96343771d46a80a19eb0b45e8f8e67cb52fde9359da8d4f8fb0202819e5a9c4c89c5642a9afb8068d44d1ae7ad337f4b06362facf31e0fca6a8d65a896c693720e5ed616e888a89b834da99253dfc4eb118177345c1d21997cf127986a8db39cdbb61b657558acba255b5561c1b8989c46058c016d279ff0346ac81e1bc19ddf61d788469abb8c4fcf49bb7ef91d49a7c35d7334d133a10951011c0cc672ecc476cf9c868e869a9c51372cfc553297c1ed83ca9ff2bc437524ffc58ab358a9037ed3671ad4e8af478760cada589d55d1027d7544d3f483f2a826d0171627058b731072e640935f3ffc25683a39c2969f507558c4f2f158362bb20f03d9f527bb85dcc4dbf35880e0a1dc0c645cf6b656a155b7d8067fd28610e2152b0a25cb922c8a2828a56dca46d2e3de662907b4acf47a7f2b7af535d9589680644a6198fbf9d1ff66fc0b09bac1bc7a6cc5b4fe03eb2dfa8e2a842c9909bff3671de9469ce10121720a2f53e0290540454282545ca5d5b579662708227346cfa1f5e05b069cc8696a70faf636cdd8ba680e1fdf50bfc999d4ef1ab5d5252194973620193d6336aab4de6da0b49e3be76b729a5b872a752c9b85ba4928098150f9b7ff4e7f6e7a1c244c2e47dc06543bbd724027afccf7ffb1f2257fd9885e22533dac020608bd27a6286ab79adf21c75aaee460325e85db262a83f734a7ffb781ad399a81e1ad6dd2a447dba5229321c6231d539866d063e6a5fda5624aee4468fcc6fc1cfd0c90da216ef5b2cf0074d70b7b4a67e5c73c581cdcbf9f5701cca6b86a2a5d42297e19264a833474385f8282b8384917be4f29735d0688527ea39f97182a39a9be6df303cf768dd4343d99eb50e9808beb234c8180c501a077f2babe64e939086064bfe32bed37cee0e2e08cc794e4912009577b67060023e79e272b7c999b43586e5a3c191105e38f9d0fcf6946b25de6a99080576962f2bd302c35f66d5b1f0a8ad027ff56f2d56e9fc3dd9cf5a1ff2a3a87d34a8b67a4a6ec53fbbe72145a6073ec529d47cb2a4d5d5acfacdd90a4d2122ea0ed0861f1259ae4f5d35b98f23acea0e9c24c99b0537468016311502a6351d3a214255e47290f3573f38dd446be8b7c94da3908faf6fdc5af09d1100b07199d293f6b260458afda876df493ba12d9fed0a2180ed75177362f40f502ddb7e11cc46f48c756a84ef23dba060735ae1d1a187be226fb4ebe770fddba8185ced911fe11e4b030b3dc1a94c941a91188dde8e521e1a8713828fb8e1d5c9742c94df698b0fa44d10c0b828957df558e4fc4d8febff98b0bb77cb5f3279833440300d9490017aa26c23e55ec3df1e971ca49fd10b44e663dcbd89d1dcb80ba2f65a0be33f749ab6e8af15549ff50ea963688f6e6be88d1641d69d562b8a6288c23c5805765a16f0942b2485b5fe8eb7b49a01ff6708d4c41e527b435beb97cb7a6cd219da4ba2e54aab81b7509c5da1164c73bb30930837dcc28028ac8007738bc9e86d9e5ee45c1e2f7aa2360b284f71dd0a51d8e359df0808fdedba14a3f52688811b0890a6b8292145751c7868903a4bb9501fbb6b2df9be8a8f9629e82fb09dd4afcd10f981b782f4871d48ea509a99a6a84d2a99d1185407b858fff071977fadca5925ddcfaa8759bf020020872da097fafc0ef9ce295ca65ec0cec987347739bc91dee0d98497684973fe44000001bc3a210881fbf6f8ba9666ff3b161a939e81049f3ab48ab19629e49607253d89678a747db9f7d7a6123ab8f4dc7f62e1289f207811ce577c0cbb2052af47728bb6562e064e1c2d1b016ea4b439f00ee19085630806a0ef0f0943f373b247bfc6f1abde391632018a55fb6e81ead2fece59b3c430da3cd047ec4076f0a37849be078ff005353f7bc9650428d29b37fa7146a21b226b32ae09dd0cefadb728b02131cc50329f4c6a65a9fd8f960995625ff2580872d74e0279389b77ae3fd353229e22cd10f0ae8bbaef41a26a1f1439fa932e913efdef39490f1f244832f75ae16237e40c83355b0fd0833a823a926b4fd00c4b3f93bfedafa276d5d9d496b74dfc3953ff126ff2812ea063503ffb0735050c9303f3f650dd90d9fd1cfd0d9fcfd252d982b2df182c3411ad3f673b296d8ad69fc6878fb6b2f9ed5ea615da71851c9365f6e33fd8dbf267e5869add381a54e08839b3a4b1b6e4d17ee6137d4b00b53cf4b00d803522832e738f3f58abda4d0082dfda448d422ab656d6c548c8755c2c6071380c87b73f3c31c32e66f4d49592903b08ed616476294df9b138eec7d96d20300448e0a82c3456b0aa5782a820324395b88f898bd33ed7cfda10feaab8acd5537e003d724bc15a5f250000000000079a10000000000040a1371bb6b1465a93b188eeafd21581a095ff063b206b0c271697b27e79b4c9bc2a9fea7903dcbc69045fa25a5c14014f1a959062fd69f0eaa4cdd31191acf8e40100209f42356cf6f26d59508e27f33910208c33322b098d48d4506998a323612028370000052c7a74db20e50077cff57f100a6464e281330e3d60486976381a83517e759b30ed74083db2f5d710633b7d681e9313eaaf65fa5c083fd995b9d4409ce93090b03b5e52baa2241048e5aaeace01a9ae7cf5a62935b8906e697466be358cb6c1018b16e247ac8dedf27a162767d13cc68ea65dacaf872e2beab9e2b6987559d78005ebb8b5f93ceacacfc177377a8d76f5f59d8a243ac3f4cc0e1cc0f46be22f3b288c1cdde85fc64326b6d976b0ccd0f942fc8716aa44de526f67db8927de86a218b3fb113a3137bb5060b6a54cb259ffecfb558cb0f288d581082f3aa7850e5fbc56abf0d4c2ad93894cda40f2232bb2e37746db141de2bbe2677b3d57f52d861d286a55925b966eb493d0a3f46e2f92da3a389d65b1949230189de59a33bcb4b31130d14244ddfe0072a047b9b4d8ca2d73b074a935f427063a8d162cc9aa82cbeefe0debb4b9ab1b3b54ed9f9f6c8ec81b35de5cddbdf5750778da23ed01929f5ad92e5eed374fc30f52cdd71f056907344afb1b45723a380b984bb5f739af1206afd790cff8b8416728530aacee26e94a5461f21ea7939a202b6ac806cc2dfeca6f2336c5b5ebd94d3c6be7cdb6d5550754b79e6c983df6d42588d71a52c9edd7f9a2a5ab16cea85ca0310495ed48ebdf7098879d1fc6960b846e72aab0bd1a7147ca7e60955caef0620f43d2e3bd40c02c2892c5b3e4c1b47299efd4c07f2454e04ff293d7c97604fa0edc09461f3e76316c8a8870656d652c92750bed127a5bcfb780f7c17cb7c34de66ea9ff8e8fc09d888c7c9d2c203fa40e816167565379adb000e09b747c21c1598bf004db5a08fa5724a7a28a2108748ada121e8fd851624baed2f2a3409d4a1b160791cc7e3d825ecfbcb010f0e6e8355fdf2355eb33aaa1de0e198e4def3a466f89948483f6307f9ab569a51e1b0a55145692e07dfa3fde5e4024c1a24b58ac11bf6bc9231d9add48d58141d5e7e0c89d9baf4ce11d35fb4810dddc9fafe7268d0fa3a8fdeb7d943f75eaed5e5d4bd068939283459f70f5806941ab750657ea0589f22571e9f8a65d4886db578f12c910311fbe3f2200117c65a05a1b66cd312d8f71c84d9aa5eaf870e3e23668da3527037ad3b4ca9f58985a4f62f9f0440a684b529742c9992eecf618825954e9adc01b3a7002f9fe379ada76ebb4ac3682c5f7d4d9ef4aa782c31f7419702ff1f7578c3fc04d47a0f2363911ce400d51bc9c8875fd8064724bdb027a38ae14e0c00c6ae9cf799bcba1d5dd50ca473ae5338f4423d2ec86590f31db403efed5234861b44a88b41479d1c16ac0d705cb7e7ec04010c3f9660c54b91c945e471323eafb465bfe55c975c050716825364154ab507d505c0742c9e9907b039e1cf819d17ceef77d48c6aa12eb57d3dab862d30d18d00ae4b5daf8fe892e0697ca2c310b67ed754d0de9b8cd6f232a925eb81d42811741c0202eaf4d44527de67b5d0710fbada4e85f033b67432b5a2cf82a0d3217f2a79840de5a0a1af98365e8df8be4f1dfdd9a20130e06a64c632afa5abe48303a866187dbe2495228334f1073e7ca010838f9d225d9dc4421a5206d5acb2629c8b70d976461b57eca8b5347895e52a1b728f2dccd8bb1d44f1857515f54e244cecbc01c9d9cfc259fe5103116d643886301be98ec3cc1f5fbdd6e2f64e665fa6ffd38d019060cf6743ac93f89e79f070fa287222bcd7e4bf11720d0f3dae95306c29c4af451ca7c628cc009986c743a9e97e4a605f04fa58a02bbedd82cfb1680a836234477b1ca7a21e6642bb50f0f8eddab6f780be6694268256319b34f05303bfdb6a4682380a2ae330b191b7fe1428edd84342f812ad1b2f9ccd22cc741020020c3c2d132abfb710ff2bc5f475eca030001dcdc4817280aad6cb17ae149738e1e000001bcfd32218cba4d2740e4e900784a496767995d001151d038b3c47e5e93ecd77793899d57dd945ba8e6d8e6736ad521e4581dc5109fe98d2307a7d8551609704f3ffdb151b46b238bf7d6e215b99c8195b1a9563ce63861736a6f71849f0e7e99a47f2de6d1f43873f2bb55e964cb338bfded3c59f6ecec9c460ceb8229a1859e001f7cb2a8d817cce49318b29e3055773070d1fdb4971ae1e54ee6b1875f79ae0475718216f57077846fce1659a4e433dc95c17b8b7612ae1bc5993cd152ba6aef4d38a60f11d0be84c67e3cfddb54f8ad9ff892a81cc9e6e6141d2a45bbdfdae32e4957009bbea2ab33b45c759da63fa678ecbb8ec637d62ab944403bd8db86bd86073bec0222cd6e0a6f866fc5de9a83dc7eec224585db4acdf3d65af876eb0d1f884b2ab476d2dad85f8b326698929b9b8640d87f44c62d3f34ffa39f84824203cbf233ea8bea52dad2b6b752002eecd633a3189d3f00d78b19176333bd62f56acbb991dedcd9b4870cde27b70d885abc5105d12cf9ada6c10900203fb3fb68e04717e53d40204f7b169be032edccb5782c12f8d5a0b34736a592c753b5a7797985132ca224a024a355f72d4c1d1a28fb62cc8bd3a962ec893e71101d733e148f9acdcab5c2cf2a39afeeaf0000000000079a100000000000401210f492147a69cb6d93359188b822e0c8305992108fb57fce4786a59542c4210acf06a6672c8b2fc4cc34cbba46aaef7bcff6a4a1a990d6ee07015652b4d9b6010020f14a35c82f41acc9744eb56af1388a87a80532207f3a0458e2f5bbb5c78671740000052c7c5efd45e7bed2574a05dc90a5cf22419acb003dae2ccbbb973288525bd62dbe1cf913f7dcc27321f54b6ef9349e57ec23c5c7ed0d51bbd056c8e4faf31d1bbed6f769e64816aff26cbcc9f2932a376f8444a908bf33e298da6a706d871a466b0a1e706ba65686ff8eefb257937b1361a7e4e34d45ceccde0cfa9bffeb67e12e8716846df804860399b27c44ad3d4f9c98add5e692a19c79a5974dca4d5a9958b8ebc5a78ecc2acaaf83886838ba5daacee9d654d0d95899dca0e6f01adf15d5813cd090baeb6ce1bcf064155a0f5cda290ce488898a5ccb8fe9ea0968314e793a6643711e840f6f5e5a91c8a6d61959c4cc465ddcc7d0101df8981ae3219131365f0293b7214622458ee72270ab8c8751f48828f167ad11c9aa1a07fe695b561ca510691b94d78fcc5843b9188dbe0162d50ca78fe75b34d5ddd3777a485141e130244cd7e89d404599a6dedc461a68e83e0d8362537d3975b3bbebde992917514384638c160d4ed56b1430b9642ac238849bdac8ce2346fab2508aa594b6f5b93b087ac19ae31495838f0bccf92e97c4637457a7d6b519b973d0c13c3d13ac362494d4984b5d53b75c6b2d6330f726a94719a5e2e4020317f8ee3dd28ce4fa292d2f8b9e9b91b6896775554aa76a29a9728a64ff298720e478e8a423a63203f54acbd2bd5695ccee7fe3f93f866f2411a0774fd8b0eb56f5d9d2cc35ddb101452af3335beec1b2f6391d45653d97332d41c2b48020551e9b43ec097b05f43c51b9737cca4756a3e026cdb355d4a9d4c209ec8d96a6b4125abbc0fc8015540cd41ea3ea46cdec96975f435ecccf845d3c1735b707f97709f8c161a0a31c0f997f57f1e7d51be99c2352f3ddbbbfed50acb6a0e080ade60cf3bf525bd14f72ad107281e790eae812eb51de7ab31d414ef0daa3bfd270801a21b37fd2edfeadb95c32406038281122e4ff558c940a660a0a5d5ada92b71f6c1aaa52ebc634593db0d6ccbf1db50589864d0b658b8e1e71d08017638b85f2df9639c806d604b1951878a184b47818cc3e02fb36e84d183ad171d89236d5059fb2190b52dd24895513a22f58bde926ac595b1e82119bac9b48f88ca534c2b28c25b1ed47e80616dfa0d60fd812e301e3735af896446f012dd853fe1dc9dec2c1516f653442aa62df14dab11a17548be324aef753ecd07649fc8dce5b248622d48ff21a89e945db5180f89956faf510fbd96c0a4461afac3e756cdb1c40274840305e38faba1f7dd7e6c68629c88a836db7c5a43876da83091f24cc90245695f377ccf3666e5c41c567ebfab2e4db0c5abd496fb6d4ca075d2dc5f890641d62260b303bd1b7f151a2a9effe3274aa9738128e7fae7cc32ef6f40feb6b0cff4eecbe623e66fdb3d5adf011610315bd03472d1c2890a56f7ba6d83225e9f83d4631f696d736db9517ab3433d2f2ff8d499f65ff88fec43cb364854f54dd1f2343499a5e68bfdf946d34d4f21c31eaea26df5b3f81370e2c758d675a77cc087270c2da58e8aab2a44c9f0b15e202c5e205128514f5947d986a725295b13dea577a332359d5e0dd8f23aa3f98e1cdd1783256fcee3a6528d013d0134dd891f37c4d9ad9e16b0050ba4e4df381757168c472306d9c007a2756c320ff101f881033a09bb4824c8360873b51f0799e67b1b4f534cee0c9d2123c0f0fce408254cb82d4a14454072629a5a8fe443c172c7c98b74a3e5d064da2e3608218bf0d80964fe4b31b440e662aad756e6096b279a5b078bfad0082b35a53e9ff5690834bc01678cded38ba460d60f3fdb1041b66e7dc13051ee56618ad65a05e98b01b54656b5b89ca73e1d5a487d68a456b6323baffbdd71b2f0328020020eace0b2e6ef92390d3728c8d0e80a7e42c7f1790d5dea5a5bf64ce45c2248574000001bcd552e50314e3e56ec88b06c562ec56fbc6e7399975f8da1ae149b8d61cfaad451c36c76a495d39d62a21b4c7f2fdee3848c3a28602120ee7f816c855cc9bfdfb3cdb86225a2a8c9deb56b04162b571bc17a1f976e8f4852263fa44866919a66c647f09790784370f39d7632cdf6dad368d846d2d10b1785ef1f9eda48c73563b884fe575708c08659d0a960195167dbcd22198c0a958c86d338219ba2856e51148caac143cab67a5e9c9e1e5e090bd2136a2edddc5c1c246e5d96a4851a787930b619e3b0a8d452c6fb68e547d2197d801b78aaa1b5ae27a5fafc3a0ae63087996cc1eb181447a6a311634e781a21d0b485c13432ad1a0c6ac3efc7f624ba12d80e2cf82e6c8adedc153977b58176f47df1cdcfea6010cb59ff18e15283041af0ce28b48a385f14228086ae5e45d5c5f09a7fa3061db6f2d5b6423a97e954b84ddf8187cb9c86402c4b3e43552db1a99696974fc040347daf7b49926b5e25959a21a5210b08fd6603a5994a7c6b4506a563c9ddfcd4a07905f4f21771180485bf117a636eec1784ab1cd544483ce591dff0d594a92688df23a08c114e6b3a9a48a063758e8eb5dc00f1a23b571f72c039a5f899319a127bc3ca739d21ddc744b7bb720ac472fae590cffa8cc0000000000079a10000000000040c1b43b67f6cd3ccf4ffebfb4996d40dc268e87106293908a053396525ef1b179126cdb9c1404f1e371623a70f3b29d7dfb223377a818a1ef69129a63696cdbea010020d9048e74d868545109c659657c6c18b4483ab2a6c6bd6dacce971512496f0f750000052c67cde6cd48f30aafad9e55d64f562c748915cf74055f53d22297638689411ec8814c8fb3e021e07f645a42512b62e9e5a19c419e7463f2af46e0dc1758a5b5ec1e48e642329507725136cef86381bcf64d2b928be6d17d04d47b4eb153fa091aa45b1863ec7f6b10feab4fbecc479e20fc8fcd931e70b647d0c29fca97ad4a8327bbe74765113947959385f7ad9ec4eda36d5c41e2bb02b16763bd8dcb814cca581a3449e80370c49062622aeb0ff034611c23917abf54ff1df77dbe87ee1ed5f63ba15ae90f06e63a9578ff7a7c47e685a31de4c72cadd6fe6059896ca325bf47406569e9725792436ed2a505aa108b141dfacd79e92a8212b4ab620f4cf57e777f26a7ac186e56fd4d9eaa8c6f37271254ac13a1585e9943bd834a03c5b25220ca9fcebe5b9dc2afa57d951ed94b7b211b3fc09339c3204bc5e1445ea504009f438761a119f3165b8a43fa9a695b2ee71bb1b9403886b6820ed8eb42f728ae7f0c0f13394ddefab560c0acc3b331b5def72053a789d9e0edb5d1df3852144938f4e3129ded726648bbafc7bee2641235754ff5da900538be34ef2f5311f6e29d89d341ed8b9fcc04254d929913e3c851f3c581944383b5527235611fac2a2cc6b9ea092821126d81d48b36a7415f55e9fab2edb2eb199dde9cc351414cb17aca8873b4746303adabbf0dc3d1370f5732cf7148745f07da6c723fc3069d927d199433f701fa158c4ed927f5c61fc683e4c90e4d8ccc8333e6f6873018f1b2669bc3a440f6abfafa6b671cd21066917ffcec0eb636c9fbb379ef4792ec1661712ccb4257c8fc3c5626c308be1faffeca3ce9095a3df277a0916a9221c113745ec822d71b580dba3e637efe9aa92c787fa2a11d8ef6725e9038497ac395cd82c813aedf8c82ef9e29c97da6a9b8225f5541265978c36f4c808026ae5028ff64d68d002278eab21684d4da227c3939fc9d251158ee64ef1cd6b21aa72b847bb4f5c17387ab7cbd556a63547c7c5c46096e06be3dcdf0c3382a304ac7994f6e33b592325771658ceae8c83dcdef1a5bfee7e1eb9a42e90fe6aa4bd82d170833561989e4040795d8c0393c6a60dbeec44aa046571df8c18943c4cbfb741fceb94c136d6ee32fdfedf7d63e3c1be96033de4530d024cfc07d7bc8baafa54296eccf3b6bc2c28fec295a3444f81bd7c81ec53fc1d94cc71f8336a571d914f1402b0090dca7f4946c12e0f4fa92d6623bffb69b70bcc21d00771982f1fc5e720f75c9352534e10aa3b74cf887817727acb125466b72f548892ffdf98115a817a89239c5dbd5392015be7f89bcc89dcfacbf9c156866e7ad5d3492e799baca9970efec116528034f5e4a3f72c55c242de3d2a502cc128b2d776a9704677c854b4ea2c48d96d7226f3173c0f1e797de569288188559f9cf3cc511f52c139d10d84e796b1779759301ef42c72d30230b2773854db56eeb9ec7d2505c26a19dfa8c0d40909dee79f454e080c7000218d77823ae36182c9304e0f07c71a7bed2c4bdd0dd7602b106b538c77351619cb8f1fd8ac7a0a885ca2ac8687dea73ac3cbd37ccc0ed1d098809634dd48a639a6b085cd48f354e88c2eed426fc6e07c030b2a5e782693273d99c249660053fe74ec6967493aff0c1dddd618d65e5e588880c5627037765c94a2bffb03262bbe75ad43fa5810f8da046d1476e0d4a8677cc7e2ee8c2ba32abd736e1ac743f42e7bf986f1a71199783d682d261c43ae840d019d76ee8000eab2061a280ab14602200e4c614f2ac31f14a199fd92316e9539267cdbb3d619c7c33e6d902d83bfd8221ecfddca7cc324a652254f44b9e28a75f0cb2b93baf145fc199b650ab4766fbe151d30200201b15ff21e42c3c1c4f96b2e33c5d07f98ae35674780a29820f096ff4e289e857000001bc82be21ac8c74c220cae62e266ba30fd96048162555cea4683acb6b9dda071860d56e79c544eb15f98617c77295134fb56eba0651c7119f022e1f13ee375a8253e7319902957a94857b44cf62149c752984d07ae659105d64900840668bbcd1cb6ab2621a29b8638aed8408d473d6dc58413d5d1d4191e44dc92af0bf7e287aed6f1793cfb2b221aedcfa3e7ff482d07a826d09a5edff75e72c3e330bbcc3fc1d806d8009e9d6f2df9d93c8198faec4ea50c6d383a656d3734f350d4d959d5c21931c327c2d8db199095153959cc9c2e38d1d2da01271150632fdaf231d5b82cd792af736db3e1c484ba25fc6d42424b508ddd20910ddbb1339c75f30c4724752b4b811a46cb7a17ac55d004e31c7da870b0b82709c3e8dde4347f8cf3c84045f7ef2cc7358640a0c16f8394063e74cfb02fee8cceec3a19ef25488e1a968f5cbb816aee20847ca5aef37d45e1e9ef62ea978aba3123f9fc5df99c1891107a4dbc1389daa10b5aa175e1558b2556119a37f8446f0a18b425da0204d4eab401644e0c3d8229dfa637d0055f9484d36130fd96aacd538d9ff1f63805f9b494bee1e3ef3ce83ce3153e4a87f2dd6f774df6e52b4004b753ccd984729b8201feb5ec3feea92ac3278491c59fbfa740000000000079a1000000000004002e49d0cb3236066de79301bfe6a837d126ab409491457b7a13c54188b1b9bb13167135cedbdafc1e8a8dc9d1d7b182cd6c88b3969e8367e1b659e3941927973010020f5252ed25f7ab37fefc878c7becb2f4404e7e6260e4c9f54c826a0cd102cb4620000052c8ad443a0110797838e745b4aa65399f412dd1adb292fa7e1aa981e082f7b4dc7d382c4372e5c59caaf0a101fe50ea4520cc4a78516013372bf57c5b76b4615f78736641de4b1e201fbdabf835849f96cbb21daaddc652f005d35116786483edd2939dacc7c91763f9748e7f593c78eafb5b4feda20893d7177ccbf0e2e76dcb3f204afae5f173d72b01a369064da640b116ced5eff58b442c5951bf2144bc42d304abc18f91eee9a569cfaa991533066fc5dae9c7bb48de1260ff6698760c444887edbd3f460d3f13ff27c5c92c6640ab715e8986e15a2bc3847d35cca2f950485c8182db89fb916db602ec0f63a383a4d0eeb5e8ca0e62ed2817b04196027826d8b0f7dd8558a4b2f2b4ff7169dcf2be37ccb7de5130080d3517e370ba306738a453e734c8d813597d3ff85e7ee7dfdf7647cee718c3e33ac69efe4605589d555b21c57dcb1587c6102dd18608081793f92c6b23cebe98922ad15ceb4a9d32b2028f68216f16a046e66b22767e45aab174f30d7c13dd42ef34a21a7fc5d469699d841bba59ab48f7639670666981ecb7b0f18a3b901baeff8d8645660ef68af0f4640525babb8a402e16f49130cc22389f6865b5fe5b5e2f3989a76cc24feedc67138cfabcb7e872175f41d6e262bb45024f67f38c4fba9be219d9655a3d1d34d731e41905ffbc996ba84a5f434646a878d438c98efe0fbdeb3f9d83d9e6edbea5f1ee83c34ce8e36e66cf9452cf2f28a9de923c241d9560a514024ab7675a6bb220ff8129b373d766b1d62b60ba4be28ddc35f9e6b10487c9efb46b83940973f040c4142dcc6784e5c8479ff741b2d67ba443f2a80271326d6eed636a29aceb2ac92c779ed26dec6165ddf11d285a829a9e82bdcf6b04e15515a87d59766d270bfdbbb75c91c8d44f7a8946eeb8ef134c715f475ad5c193d1b908a27d45cf8b365f8ebebead50847ad7f7351c3804b77d7732f0c5e6efa3bed66182e0d727d1b23ad8bedc8a7af6f7138f7ac9bffc3893f8c62aca21458ffacf9c3a0635fad9c9c02d09d3736c0e58446b91b87d53f5f9049e7a97fd0a4cb17b088e2c1304c50dad817507e6b0f43dee5b5da569dd603b1f7271af2e5c7eeee8f6d69a3b86f8bfa64a3172b1d738ed493346d6eb21e948e7b2d6f5e8bec977a306ccd04e6a8caf2649f34c8b0dad98022e2ec0621a9478e3cf40569af4b2a52748de4fe75b9a30bb0476ecb8f975db6cc765e35b110d1f4ccb5c5dd73ebad9c1ac821de2962c4dec0727c9d927da46392b131d73797311fdc4006d93a5f123f085260d7cce1624568c6be8ccbc4285d70fbb3eb7c2bf96eaecc4013c8afb0f160b49d6bc45ce1ee140579ec0f78ec9966b6803c9dda9b34a586c5e2aee9fd48f68511d4c6f2464d5f86db9eb09937217f8735eb5af579b08cd86075b7c8ad0b2e65cee003f8aaec8c5eb3136890983759bac6b2ba6c53bec8aff420a4146e0e083f9334e864cc4e80cf6c7d9d49d88f9e1036b111c601e6ad208443600a946c5b1d6c6380bde557d3034f5b7a4b855b9e84fe8602633471d89a55bfe73ac3f69713313f2da421ae3a99dc8ed09ae6f2d21cfad67de5f0a2c596219852dd77e30ca54af0db11a870903e6fbc32e98af32f3878de98d9dd05a23bba3467766f24ea66742339a093cf7b3cb58a33d3249371448e4c8597c34db018413a9f1557d4735c081dc62a0a95f306e2b996db0e49b5ec9f3d5bb1ac0014aafb8d8b3c4ef0a4f416c1516b8fd03bd860362b0997fcee097afcc15e8e3891acf8d3833a11823011b8140a8e63515ad19e5847abaeea560a0a53a045970b69319f42b74fa0c8f04390091316d6164af2232b499fab2903f4020020d42b8b36308400e4b6b9fc467d8d87b5c49f53e29d1031672a45b6d0ecf2880c000001bc227c649ad5f13a54beb4cfdc87143025b90efc21ad8da88fa457cee32aa82c55109a5476545005f7a610256dff3a8f4127125eac3ff5abeb3cd8bd1bf98b71996238deb8986cbf0e2449b0c06cff45becd09660b9ba59cfe7df917f2012ccadb3dc2f346f8d5cc273adcfb2f5be712350982cc1edf139b7fe9ec58cbb253d0344a8cd03f0255014d261d61afef89a2bdf6cac3aa28fe834e52d07a5d9efdea25f67c086442df24bbf32fcba2348df4b7c6f91f16ede6ac60db5b7003e9ce24f4857c8ce9efb4bd3dd5f070f0f0c8995391cb1e18263c459fa5475dc85040485b33a290cba9e101f5152dac5415aba4ab427bae57c3053b53ebbb5f6e6b18061a0cd74c81f12e9d97931f043ef8590e21104bd4a34231e44a1edd2c25ffbf2a4c718c0170547c4c2a48db7a13bb372bb643dcdaa21677eb4c8521cdc9e4fc568c45ccb4fd1f8fc5294430b3a552f5d79a4269359f140e40ccbde8c5ea64ee5b450b9f371bd70a0aee56400ccbc354d4bd9b57428b282c15b0756649223a4c5154060913abe0db0bc5050a8f6852b8b83fb95385518302161167bba03aa06ae82f19140252dcf720def2eb7ade8384bbe44cb1ff2e8b584eb6f500d65d2155b4cee0b59de4b44ecb8d177effef0000000000079a10000000000040933286373fe389babbc433acaa62c041cf71dfbaae3b600ed6a7770b0ad32cc88233c20cb6945476dfca05a64ad0a8d685a210559c79074919fe1502d2c5a97201002006cb7d406c2a029a938dd71dacbcfdc5a31c0472ee9a6116383300781f69ea690000052c5e9a19e428faafeeabb425cf821cf5bbac33d97dd85697255ba47ce4ca35595b8cac63661c938cf022a39a48e24868b3d1d9773cb36235316e7f59c8b879f1bc4d8f5a5a0009ad77ad4235b462f0e6534dbda1cd522c5ee0aa430cc7e58d66525bd5ed67484ae51fdc5516e6cdcd421b7c875f325a441641ae682aa38baab0168603371355c9d27b77e3750ba13c9ef1f53f840856014b66592fc471743de83ff393f3bf4bc938f307a5f97885d7a895740a419716d70269f0d19b45d9b5f681ce7b71f8e9e2e12051e3294241f5f7b9818f1606d781d19ffe1503398ba69f4a9d54a0e6b5a00105bac252bd511bd8f15e04eea1d1a1d110bb9b44b7a19741d168729cadec547beec3b7120efd3a72649c979f504c9a54ec39dcedda3bc1a624d4636b73d4ec2dbfbc493598399c39ab99ab94b873fd9f80f8a59d56fb82e39a0cd329cb4c4ef4cd2c3b0ef065a1d2f06550b3692446650e8bf293bec361e0b5a7f23f0c1850fe31540f75a34c689bf047ae9789c3428f6b2926fc5b7329c64384c74d5356f9cbdb9a74da33939102512f92fd8eef1146a69a2d9194ef509b76b788b52f3c6678821227f9fd497a3bb311a405884d5c1f28ca1bb365282225690cfd282c9da912fd836109e27b49fe5a23a66531665340c5a7d3a60e9b9bd4695df4f1333f707e1f104451526dc42b583b7c15060f7b3923b7921e51e2bddc96217e2f7c2111254b83b5a421a9a0bba93392186a11ada617881bc0a900bb5bfa5bae420c902c991f8f6b323e1a847b3e50d9e291592262cae9efb017fb0322ada9749fae163e908486e8441c08214ef14702bb024846fade2b8c313d13a2c2a5890183207bb31d6de986d0b0f323ff1e591e8e8db7bef1d5f71bc1b615ba3fded7feceacd1e608092c01d77d4821e327f8f95d7930a328b7c878a54a19c1624062c2f14b6007865839ecd2e95f020b41e60af4144bd725d7e58784d328ad1f28f3f7814d3af43daf07eefb1424ebdccf62c2b0b0e036b8c61a048f0490c44b35a666d90305c890236a6d58c0007cebc4040a1cefec03e3a98442b77954921ae2104e9d7f157d1872c0c0ced0593abb859ebee76460d77cd6bc7cfcfb207588d6694385af4865a78751a83a3f06f688f6fe7fb998ce0d8901dde08d226d5c6e64e1d14564393b44402a0fb07c46073c1fef85b7624aae8db9b335e8384b9843b9790bbbf0dc3bfe36dd5a2a1f48b4a8d40826502a0e3935be0b51a4c750d3ae1c6f99ea84ccc18a557407f5ca695f3c53289bcf29599d12b166acdca8a141c326cd1ee08e5a9ee7b3b8b2e50fb0376d621219fcbfdb0a15e375ab79c0bfd6f0f2e82df2bd4231b9b4d677f527e93bcff1bfebcc3131e5c4ccf9eb6884bf0f53f7ddf572d1ee9710e53fddca01f359563dbe021a8e76617bd91dfece110df276a982bc6b7bb1824a5c6d5136fbd9f496955d417581af7c93109cff686226344e8388c84a0f1b1c3b5bc7da8377ea177dcb1cac335cb3eb4cc73de872d5705d1de49b68bf5c7c01c7c3bdc62fbb1408b91c336e19467c59dd797b2a4793806ff8a4037262d287c4442c619277649ce3e9f8f498180a88d6f62d78f5067a9bf240c3aa25d2d19c0f0271689f3d1721d3da9e2fd05247fa5baaf8d30bb3e7a4c72a365a18b3d39641550862f5395d2b86dfc9733fc353ca70812c27b257d4844014b718a4ef00aa37df5c4432fae8b1c4f687f4f64de5e1c2098b87bc4f75f444b41ed1cc067498071d73b21dc53b5e9427d8f109088208af5d874b3f522b4a36e0ee8526a72a2da3aab5ad102068145fb9becaed0be3c978e99f5499841dcb5ad193a7a35732cbb293dfdfcd6ef1020020f1d87b6735e2bb924b5631ea63ac290e9bab009325ae2be2ae2548ccccbd3f26000001bc8f36b0c005f86f2617256b8c0280f1e68b405735d04d0a954f7c922a3b4a63adc3b545f4a4c2cdecc1f0754fccd00998a5fceead6a7c843d2d19b6c0eda6abaed86bb067419f17f8494f6d1759f0f3a2a66330436ab042482cda55a8aef82833512367d97c02001062b4f95e3961a2d5c245d59f59dd44b7fe0cdabed5e6ea80bbff32bbff9173a8935bae6c7fb961d47c17e9f5da8ba4803b2cb8b5671354a685e56c6fc9c45fb728a87d00ab8e61c1a544a65c2496b13c79d75f44e9b0962e5a7e174d5ce4a2fe7757a65e0334acd6d1b3daa830ffcbed00e5343edf2148a693914c015c216e446c3aae888b6c95738799130c49795e3277347a06b9e594f6dfcc166c86ff8cdffad83ec7649cae4b63bcb4c15557cc74a0941dc2cb8bf9cd4df50ffdc9b5a393e9e7f9379344482432ebd37c7becce1494d36c649033364de1aef90c1f92b7e431245cccfd9dbf959cca9810bd7f8ac32b32573b57d1ed1720162d7995093d0dc92b64cf89f5ed28205c82bb0a4433c0a33c7e453a14590ab8a988c379fb7b2178b5533779a6e14381c165aec10a86994cb5e2d31c9780ff67774f83308c482587a636c54c050aaf8cfd03ddb20d56e6cfea181e2492411023c0a390e1c83c632421b3830000000000079a100000000000401016fff6dbf5a2cc8969f5aeeacb66beb693916d282342f4ae890b39e17c7ad0e6829b2a7064e495c038bad7cbd4fcda5a1ec1ac2447e993add1ea4dfe996c36010020135a54a982222a495d438790f11684cf2b99560b5b6c688f7d4f2962d488445f0000052c104b78d69ce4502f2bf045bb9e1bbc47160a35401aefd491dc78ff39e73431d49e96e6eea3909ee5be2638ffc569cd636a4cb2b8814f8f51eeca09052d43bac9fb327e56b0d4f250eb770519741bf13ad60b66e5ab7b5b6953f03cd25e49904d7eb2d3386ef0cbaf1667a86ac9ac5c90ef43b7bca840bf6ccbac94b7d1a45c560068930fe0f7f8c7fad64a235f6588c0b846fc4cdc04d1d570f12baeb67284df41bc3aeb117562317e2d641171aeaddef0dcf243175794976bd5493be03a9eca27f39366b5e30383107c141d3cbdc04c69246b24370823974c7cc972c8f0b756f9291df05c57b52c6017f6d925c72111f096dd2fc7060569bdbb5ec13c4b386de918f2a31aa2e2354f0fc57d217111f4a94250c071a992b37fbce278eb866289318d634b61814d201ce38367b98c720aff7b62701ac2e64e0011932e0b24a08d9d4b63d829b526ad23ce627b706e13d19fee30fdb5d699d19ca449ab9bc6be4fe7ea8b30ef1372ab4b49f473d4045c481575f7259e0b38fd7dae139280a3a4437e441a8cfeebf75ea2a7da91065d39a73a212d049daced9ee1c3f783ecfba8052fbc122e93a3bbbf1a0837a1c1934d8910ff2769bb646e98908cf70992f88f8c8a933c00d3653361e76b941f8c159a3f8634785d66b4cd48e272ab8e1ec42a6ad652166a6769a37c8c1b28a30658792ba64e33d8b59c3f5cbeaf4d0ea6bb41b0f3569d5735992780ba2712047b3d7d01770691e8a0ae175aba3372ca7d7f0a8f96cc85ad12ad6c9e4110e2ce0f0c9b4cc6fb5245a1339ee699ba56d29f9e5879c5861dcc25ad687770fa10c4225c12090053325fcb6de05032dfab5163c0aa785fccb03ad4611eb36b68da401eed7a3b63fb55be193b3c7b047b4e40dbd0bea264ebe05aa95628dac51c705cac03eefaeed5a8a17ed791b98d9867b0d660b4f4c27afdc3acf313018cab184250ac1c5ee85e2bd4cf5ddd5e1df298830f1f75bcc47338d79b59dc815e8ce97c91374fe08ef1e25a9eccf739e84b1ba6feda8cf6d23bb07f1218bd0b9487714820f35c973afa4c93755889c50457e6dde2529445bd03b0ce7f58869099160dcbb4603287f071c9077ebc4c66a42895b040af2873ab2f6a74d03429f97c060e4e44ec7509510334eb470b9d6ded4c66e5f6d6863ff513162142672e25fa489d10a9250becb070507d563a036d591b8b36578d60f1fdd4e890e0028c09f612930e3fa2b50c32d13e1a10b1911f451a3923b52f7810063f55b3280d0ac12edc9243cdb9e5739bd8bdc92d38defd708b7575fd308fd1b3bf18f373b4da5e1d0a5d43d12f95e12504606bb1cdb12ce22037f9e7a53948b2c6622edfbb69b1e48bbf22eb0c81cf4629e5e52c4483dc02abd6b1f56cec02a532868ab923073016fca0cdef264fd947745e36ddb208df5077398eb4148eab3fce53045bd7465b958583a108fe44d55f1160453a2d05deec35dd2801642b0524fe2cda42665ce8cb1c0edb4113af2e08590bb75c667b5040678c6d89608d2b9b47d89dfcc63ea0e75fb555809c8050762ec2b18cbc92cef9bb23537850defa1df5f1c369cde38a34ac15db0adcd73ba4184ed8a6d94e93861359abc7c85824449e8332964878d82c8a680e66f9036c2509caf27515868155e424ebf279d1fb9e926013b6568b56480e618e547b7d7b1b7c72e861e7dca1e37e64ebe73f5f4d09688075cdeb560df14a98bda4a0b6cc34fac45fc58e64d0c0958073c854532e79997d8ac3d7c4e45efa0d1df7d425983c5339b72f3a701ec2c1cb4c06b4388ff2f64939dcdaa2718eb6ecca31364fe9fe31502634f9e7c33c08bdd80f6b4d74ff8a19c72def7169aae43ae902002022565ab13b1f3bbd4333b10473fab9efc0b143ed608ccaf6a920d10b6472a727000001bcbf081ea12432b78c915dccd9f20bc85c11081e52e60d73d9fb95148b3c97f2251d2b9de8afff5ca57aea80cde9b5185ccf8732a9bba8448f4ea986c04d174fdd5e3655458f308b7859274a2b0b54b0997d28d0385bf1409f893b70ccc88df8f5ba527cf9a212a65b668f312a1448b3e038328cee6bd8625c8270fbe90a29ca374c2ffcdf392715ccc0cbc227169301c71d3678ce5583a4ad4fe47f15484996af246cd2f1fef3119752859fc26ae9c1770aaebe77cdb3734d6c7359bdc47df99334c06f5991a36a5e7b03bc123fd0919e229a109ed92ebf1d16fbe92cb7dd3b3bee3d0eb2aba59f0a4cfafc11d82c5cfd1fb904439fead42d1ce681917f0147fcef0c10c45b59d5421e26c75bea9e0176dfad738509634ead33ec2c3d209aab263c810f1f5556d15ee60cd74a7f3a618c36be74c488476d1a908118bb6c533fd8edcd8c0d95ee91a766bb5957e3f818f71dedc06cf4a9d2f6c2a145a968ed78690770f110e9fe2dcf1bb6d3acd22cd1dc423fc41a7091fc083d90a638dde498bacd2ef2189911e8f4254d5a363338c4013dce2632aaf1c9c5f7c9623e642dfc3454e7dbed84dc27e2b7946994b5efc18b791a8ced686944aaeb7c2814253c3c4c3a332d728e5dc933e8cd44500000000000079a100000000000407426d2487c557e11495372286112b6a6a12e722caac0d1baf88a8b12b728a7f82daaaf9eaf456d294a102808442da1d8267f96da1d461e9f19a16ddca6850bae010020b8ed780e035bb82a539282bd3edfecc6675243025fb62348857d76ccac97ea1f0000052cf1fec1629cf0f864070ffbf1736e6940c4820614820aae7632d772bb34989b5f94ea04ef319db74e7ec4188115e53761188af5f7769ee8c0f07f6573892f74450c1650711f6dcadef5fb01297bbed38877480c9cbbd44f48fdece63cce357192892529b25ab9a38d283381351385aee38f0727cb0d0535ccb44f93b784d8b2e370755e7e03a6b2f8b0416648d98f23012567886e639689d5426307b271c07a5e351762730b914c2b46525e18535dc446d5b564309d9be3903483fc82a826a24314619048b882a744f086b129574961492993d41e2324e986f66fd5ad7b673e8bb70ee8d3e0f4996f8ec3660a6a6c55a7df8bf79ea14d045a5d98adc8ce5dbe9ef63086b5e3ae5fcf5f6069ce59427db76cd2045878b6822fceee68909be6bf005b2c3b7eb41f753d6f7a5454754bd53e23cae92cde686ec69b407c4181d6c22d47a7fb23e129a8d13b0cdc92b21bab155ad934207574bb722dfdd68eb3c453d34e44fbcb86d975a31cbe936825e81d3c12fca4932d0b9dbed9573c7763d7018ae8a0238e26c40062e67f1a0436e99a39fc679cfb04d68851e4f347c63063727d804c0e6cf470cedd88a5fa942030d7ffbef2e7074239a98247aefdea13eec6bdef850589b4623afd633a6e969e145a5abd83baed55ec29e55e905d611d6abe3b51d47c9674a5b951206f0b32b6f26550a8a08f36775a9dc00b725c76069e588da1e2acd8d22c2d6078f18671ddf0afcd0b48d1015df121050678f5a913a56dbb074f971066ed776098e1c688207b14444a946c384c40ee9e288f70362211c0bd7bd1e415d2071c577501384a951718c8b718d4539606408482b5410a79327f83430b4d151e44abd3d737eb3aed775d70fd7b3e279ae65068d02b95fdaeeb34579de717d526dfe9537bd7bd5207cf7214e8a2a996bb502c66f6e638abfc290172674da2f5d8cf5439ebe0e2aea865ae6ff0d603092b1b451107175a19d8106ff98897984ab08a88db604beab7e7ff5c6c1a0b8ba27717af5ae14f2966b41c03f256efe756ad0f27bd457469f1a43ad32d07ee96ddd34655026e4b3ec8a38f0b7ecdc825469ece2894d7fee37787a9278b68b6f6ae703deeed3ec6dc4220a2b3a73495f695545615415857c00daa057cdff71f6b047637ac52e00368555530aeb9efbd23a986faf82e3ec583a74338cfa1eb71a6fb99ba133f33f832023fe9fce7e7eb304654dc74b63c4a48adf8712d23bbc34474ca1051b8b2a86e13940a5d4eac1e38b3b00f5f4c0a43ccb4e0b838696e1c45e9cb5d12a469d921bcee979a051b32fd7412e2f5015cae3206cef727538b3a8713e2a1991debca50fce81a7030c9ddbd1ee5b92b2763eb4771c1437a66a85217da08c2e131fd42619d69ffe49d60152b6a5b766b9d85a54285df1b387a70462e4d9f68d2b35dd251d8091395ae67a019e2bfc8b53c4c1cba79222bfc81a76cb6126367fed583af345f9255091cc99cb9b50ca6f3849fd429c0f61198d21091750af9771d70e078f9483eeae6d09268c052801e25cefef04bb7c98ff138360550b19240b554d240760d0a6237b4e00b1bfeee8130c8f0b33677133ea11124c7aea312fb25257ea390a2454990e88d8002074a0a5626898d8d96c99b90e6f6befdeab4ba99abf48ef332f6dad13ea4ca23074b4074493781e89e3ed792da9696986cb7fc079e2a28710cd61c76067efd92c396d5a482966186829e88f6478ba4df5b20056982e45c146fde3751ebdf5190eed3d9e2cecf6e2868f248487acc21785a4049d6b3d4bb9de35d3f43ffd1f6fa1377dd912668ef09911fe2228bf004e54b0a7ee4c56a75e1fc363a0488fa829c9045aa69107569589a0200200c180550e5c49dd17cb992b37e20361a5bf331c10e05857e1434209f11ab6b02000001bc3f0bee1c50d0e6f22a48b6c48e888e1e71e30a649bcb03d05a10fde6a305b9bc42a096a635c524b718efc750d6053c41e28f06a60ad7ff08dcef97c809a1d1cfaf9e44bf1a5039d69a3bdd80e66f9cbd2705e3f58ec7fbaa80ea27cf9fea8e5fe6db516ded192028e10a8c1c0da32b4535d11c1bfed3a4ae1ac1f1234befa208a55e5bac899ec36d41dfb6b2cbe6ae15a5410096537469dbf641ff61f6cd46197e242eea1cf2beacefab4aa84b651e9741a6d753598b45a45a60b6388e5a11de48ed6c4938216634dec5fe1d7146a29e9295573fdadc69a0e29529478de882db15a49bb65bfd2fb7cc61f531ee8d170f603aae3f729aef65d8186539f051b46669f6d8b4f5c7e17f4735b026b4834eaee08e3e23bab26790c0b6bead3beb987e17b3acb0b5514a211371c18df51cba74cb8565885284b1e8fb82f0e43265c34fde5055ed82346d55c16588dc1bf2fbd01706b399518e823a0d833eac21c6758de289216de211035c077665b2ea03c3ce4e5ea157c66990ae41d8901a1b21229401bfc2063931645a8ac5b3e65b3e4efc866d5f93d239a35329881d9e0243569c8c8d18fa81d5e64722e3cb103926b78eb62df253a59010f816fc8265344914e2c22b25c74930c376047ada9f0000000000079a10000000000040afb78eab3f7c297e03ddfe1cf13b40e83667f1be46d11cd4168896024bd01e9b1c358303579cee4855af66358c9c852a048bf60543ca9be004fd28484715e2e90100200dff0207a59726c9726f9cc47505b4e8d704220dd7ada81993dd5a1916886e1f0000052c486cc60221af2599fc4cdf28b8da5fb477fd90155c549373a6021210b304df0f2c76ef0929b03b153da0af4c611a91da1df4cfbc316981ceebe1059aa98bb1eb333a4257ab27a63b01013d446a4023b6bf4c05858cbbaace4d20b5e2bd14c004d737503a44510e0a418a92a765859475364c50e493a8e0f56c75ce325edef519286a8cfec0498e8684a317f3817a9f154c05cb25c106449f854028d8b9f172ad1482c1cb4d2c7dd12e9dbf6a301260448a6f1539144a0318a5a01f0303f3253d9a4c44f310a3f0607151276d043f78d083ff74b277010ae0fe91393096912e20b839c6333867e08b3363a222c73b534ba1387fde8416eac5f3bdaa4fafd1a79a6c4ce86552c0cb67b2a99963eb80896347889173f3e8a04762f128d514aaa812c31a2924068cb82b92380beca435e6b0c17c3f9bc700b61cfe5916923cced8aeed7b77dd6a4f05d5210b31dc968ecf810e52857d41ee1b1c21b695bc3a53b93c7a4e7474fa6f5e6326a4f3672d7dba89dfc5d843dea4c2ceb8b410b4fa924b813b9291976c20a972c17119adcdf40fcf7c323b26d97a5cfceea374ef40073bbbe8510326cfe6662eb4b4f971f35a57e4d11af34a759364d258a54166b2057aeccb280f1275074982b3e41781fbf240d8dde6432e50c5c014c3366ff9843f6f9f2bf74b24670f68cdd3fd3406f27ef23bd715c68a1498cb7cb1c4513516822c98d10d7ef3a78775a58f97489f8c2408fc6ceb987eb291f5bfff5e3f972dfed2fde74d286733d358b41352ef62b4baa82e5a941bf60fa60af56050a9c7add3f892e9c751e9303444a42b02f7e0785783a45ed223522dae1754cc4af1b354e2275a64ac59eab6f9c76b9b5f7fff04592e95d94e691c7caedf07f39790c2ccb799e301a29ef02d0969c393a913f5fc45a9067ee810d1d25e833fda3c607092de387674ae7b294efda6ce8c54eaddc4fb516fb4bd76c6e5792d07dee109ba78808975b85c956ca0dab304a6f5a74d3061f3b7124c19bc39908af0158b1e13764617f0a9ca151336fcd3ebbbe933573f209a16ed3af6cd13a95f8f88c57fa2761f4c5f27ada1498d992c6c5d808d748babec25f40fa6b1bf956d8c9db261c4d480803eef9973dcc18eaf0ade258012b05cd877f24597bf1ef17a45f5f6c5e258f22d543731a336ae85940ba8b7ad1a827864cd10b631a41f68c2647302bb2daddc38bb381781a3b92e1963af9c3a773508da8c09797f300d6f11289e3b9cf9feb27ffb86343eea36e2111b8e72d862e6b1a3f2d84596b1e75c6af1390764c114d92e89bbe9cc3b772d1aa262154aa9f44acf849943d140a9b1ee7e3b7585edcb5302eb2be4e4f2c0817cf5042cb9a152ff37315fd81ec9ae245d5bac343dd1a37fd9e9ad7a3b46d3a1902494bf838d8df0077729ecd6fc2738d8c5a8f1d8462b38a41a52a691b35ac3ad7b3fe8da5313bc9337714e8bc2333691425e7b454c0edb7767283b0ecf04cab85671ee305c2f4ae870bbf3c22a1fa2ea3b1b70fa755fc7919b899b2d83bf48e2dd118eaa81f84de39008b5e7f2ff9ef61b024541d21bc3ba19669d1b30a5225ac938f458a564876a2d3d6376a644213019784156e6a4db064b8a87747199729ecd2df00658675d3822dd66de540961180ec5ae04a50212d7727be1eac405d98de23db86f1171e4d57cf6dc1c0b4d1b9679aca7d08e5aab786d07115fa5432bb5189e346dd996c4b81dcc20c03f697f6f10c442adb8a127546aafc54e170dbd36fa0cb19b452be45951f24d2e7dd72be7d7082adad57e8a7da93e0c5e64326e739e666a18e6f6c06ea78bd32a061748d9f1323a22e9373ecaf11c54407d77c378bf93548d48020020c85c35e7fe23b888eeb5a9ccb459b4decb66989841ef26b7b44671c9a6fc2b78000001bc57ec1ddf5d01bbf8a5a405a8354ef2dcf0556e54e296adabc75fefe75fedc11218529dbc69c1a005821eddf942c70e46c274143abaf382cf20f0b7f8e93aee4c79ace33848a7d1995ee7b08a24e1eb8ded0a5b8ed4ec86c8925d4a53c8f6b0896ace49cecd969795335d828587192ba6bca7149261e4d5a99d78087167d0301dd7936b326b216caa18972b01b9f9b7d06e1762c2ec722e3149341e57e2c3dc5bf90dc9fe9b84f6ff637480eef10d1a89e3b9bf6e33bb5839be218885e598565200b9757119d62a9ddd6a2af42e7634798a3c6567da4bc6e56fe7e2247a501018170681a7ad5dd2dd6a64f0b9dde8d1cb43276b41f7f92c9ea3833be9451f48ef9e0aa702a2b5443537a9f8fc699efb0514c8ff3bf8f6fbfb8abc2239abb1a89194b2a27c97e421613df2fd25ff6c6d6a7c78f3104cbb719ac2354604a90b2c29960abf39b04ebdcf43b2142ee245bd4bf51ad328f98a1ccb70ecaee3cf7e233bbf85231091fe8b01de4202fc9579c893e370a57c9f32a5c6a16587cdd473d4fc994c38979e9cc4887fa99a887a4e777d2e02cf2148d34101b8f1a9a679fafed3d632708e5ffb542df935daf3ae3ae41476dfef1eaca2eeea5ec1e64237056833df41cc4e8d593de681689b370000000000079a100000000000409a46e0092069fec0d21bc620296e79d01c90cb7f8fe5a0bc8a101b8e354e2895da0a384af0e36e974555f17ef80b89cb51383ae854a7cbfe84833b4acac5709f01002016e0fc7e0fe72eea3e68b3a03b89e4fbd2eb4f09ba107663ef6373198d3bda2a0000052ce5b88893173f1ad8d3cf4ced3d669a06ee913b5d69308f4f8c09188f8eef893adafac8e36139e3239be26dfd279c12532b90018df86f0f10604179591e574acc5d00b3912ed46e985e1f9aa9370beed2cbc1a251f87bf3afbd24f263f1daffb8280a62c835f2d045a4dea5b1a6c76091f813e140df7b9da1a8b169e826cadf55f925c57da266acdde9aee440c9da55a5bc5dda870740e3faaa44345541be722cd5ffe0dba390f753d7d7e7a4840be259977ccfafb431537e6b2d65d4fc9efec484a58bb94cb13b294f1cfabe3e15952afa81d39d66974251d0d75cdaab0b402d988642c066fb40d602668476da5a22dc1dd423b2e96d5e541a877e1ee99654b9dcdd4e0bdf14bbd5ec460e7d0a8554e0a628f2ff977eaa8ff0bebe640f64869fdf6dbda23ec6004ebccf86bc101ebe9afebf1ce287acb35dc40bb7d2e2dc9289ce2b09eafbd35b38d480140a526c4594bf13ac53283233b9b6319c78c61cf015d98a1def0970afe36f0bcc95cf83c6bed80926086e26dc26c548705210e4007f6cdfa0485069459477e9959d4bf11c97d5735ddf02f4212be692fd7793fcdbc6b9a8519dcf94c10d39d9bae80735e34100234cf3488e0557659f07f609f6667bb33330d2d0114cbcd1dcd4bb3a76191387578cbe87440fae05e5f65d5edf640e4976b2a7c457cf4e8c5eb19b2606a777041cd1f3c269fe8af53797dfd608f91d02dc4052fc97880e5fdba92487df6f75b4dfadf42952c762f02aa3ba3b1fe85293d1892e33ba493c73788d0609a3a3690cc49b3a249d364086e87a54578501f78253f10679bd3367b11f4793eb60069f611db9f8499b9bb49a80eb85f1d1087f10017c52a1455e979767c12fe4773a409607df2023447bde1038173160f2669d1d764600aa449ad474e20fa1c518b7135abecd37cea7ace198e457bc23ef480fcfe02bc46f8dc90a21cfad38e8eb1f2549b9a425878e2bbafc356696d103e78928ea5092b163051379876d3152769003578b4c8a4dfbecf5e913f469e5f9f7aa3f55bae824b2371d94d923ba9922db0a854dbbfa8862724254bc12471da10eafb435cdf2e50a58fca1ba5e6cdc95399ba5299040c33b90b05957db3e15c548ce0dc6f9a763d39cabc735e45074bfb4ee8e1e80b0b7251b07193a056fd34397347c258019c12776b41b7e255a50d6344ce5a8db8c47b0281c63b92895f904e43132fa5d5d3b2524a3e796df5f0ed8987006fdc2908e7afbed0cd6247c785defb4cebbb1a839ce03ddd7f1c3e38f0ad12673f022e33cc6c45d45394c57622f462d895460949705508f2c0db6dd23dbccaa496ca9bdb8a53b80d906a36443a1993f3fccb8b62c9a8779e2b5f07d9403c753bdc86d55ce2b12f754762a3eef9abd801ae4a97018b92368f6207663791ebaa6700cdb7e96bce4249af0efad88570ba3ff68a3f01101423e56a98e2e363d7f7e5218f215d4dde877dd6e1dfdf14d1209f90c893f64f5b3e8e91123544fa97a410248fc17cf0096f58f23073c9ea3a22be6c7f395137219bbdc35facded8580198dd578022500fe20a96709b12d270ec0a4257653cd48d8445dd17c7026de801894c00c31c148b8ecaefc891697acd32857bcab5e97d34ba586e52d0fdb8eece755243c00b9f09d2c16378c3f3031d6cd8619516ca0e0854bfb98e174fd9f94e33825e0798becb557dace99710a87f7cf1595e5bb6fba746c9c0655bdee15d168683fe1b6ecae46dec52ba66bb80727805992d9533789d25633c557c8839448c93d1c6d4ddff24af6b8eb96b289a421a60a599e0edfa65f1bbd836c1c2550fd49abcfb4d9315d45ab559f5233d7377b97dd71778ad6d646e5e32d5c360200208b9b755a892fbe669907ea0b4981253c5c98884d6c7c8f73113b50d8e7863000000001bcc5c78e974def4f5ae98dd3e37a1f962ee888088f4b7d86c8ca6fc9ab1f3848d5e92a5634c3f2099bfdee8cf5aa85f789ee3f44c853715ae38b8f55a3289bab95fc1aeb99454699db7c2bbbd049efa9d351c4aa1786f0136785051e3258d4c461a02195d66c268e46464c50af7af8bb6ff1a144d96d47790d4a03f05278a5df39999e75305a23582703c15b9a0a1d9810da39b9e630e4695702480db06c78147c56d69142b58e34a7470ad5c2f41a78be80b65c4344b08591021fe953c01025b439f77837a6f3ad4b38c25cfcd76782898df0471e6f11e543c910fe9c77e7c88eb57cd357b42bc4541530bea1b8546745643f702887929a5acf3735865dccea19f6cbee6042869ea93334c98f3b8f75e59b15550ccb5f955ae2bb1adc6a5c612201f19b4fb99cd662c44aced6b8f543efe0211a41bb8da6a96faf984c77bddcb4e288d47706b1be1d72ed85a0181cdd96b6dce347001eda51243043fe2905d7e81720c19a6ec8afe06806a785ac8cea2aa9a812abce280086f480e6e2bb6b785b6fc95f5d953811d7c58104a5bdb9459dec78434f501322cf6c1aa5124740e209ba756a6d80b9a19543df65a17ccca59df94c2b85e4ec234153da627d3e9f6013eaa594f8c9e63d860c59e55d0000000000079a1000000000004007bacd75ea7f4d05d0598739ed973c0b593b8e55adab372474c5a2390c3f7e9d8e209fef2549d330145ed844d5152e44d31a9793ae9a1b25977c97bc595ece48010020fa7b6ab492f5ce248678b36849acd8c44b3fdcfee33aba8847d3dfd4a761314d0000052ccb33767f0635d0c88a9d760b06f79f4fae590429c69c271e8a89ee79aab6c50c0953d630b87556e209ba4e96ba37896cea2fe802f4538dcc6a7f4e04efe11f414c167789eeac7d09413af9430a9bbc5b7a94f8df88b78cab82f949ed5e8301dd05bff0cdea455285e064be94235590515c0299fd1bca61f78fc6c6e967d80275354f5a39c0938cec562406fe5f40a050734f3299fef65642c5a5ecc56b8b61a6730ca44bc8aca8db91ae04920d8d2b4ca5ad5a48421cf49fbe5076aa509f7e79b6ccad79ad67a0a77f8c06f6e99c657fd66eb0a684061ca3d002c756aa4bd168aa4b1edf27e84c5af676d43f3b667bede593034741ad0390cc456bffa9dc1be370c125fd4d24c2270ab06a7e84385d86a32f9d9ca35cfe7f0bc138a8c1d236715fa39f8695993446f338a11d49adbacf8254ea7a63a99b960325776c72350840eda26d765305b4bd963dcf384cd6a6d8b3e107067b8a6996a7050fb1200fc9c2e792f23f089769a67f4321d383ea150a444f9cba07c9a37d8c2e4bc2dc1e357ccdc002e02639a609bea78f26a94e5077ff324ac4b460e89d56cd02050905640ae8ca1e2723e0a37fcd335998573657a2503f960216358f456878ff6d29628b7380e316226904dbcf784fba5b6c78011fcfa14666e609bf177a6b57cb163f7b7e487d424e79b99b1844490bd66b1f887a5a127006d370695c70999f6caeae69659e498b28d31e2f04b229b1a3856e40e88cd974b7ee00d3cd728107619fd8cd2fea20b8ab85ad265d5aa3f814d0290bb6b4538266b5e6e8de16883baad7f8dbd971220715d3fa10ce6a0993485a833900af7a62c0353ac6f82dca7f16abc41f7b09cdc6c7696cf01e3252d3551b932d6aaaf5af1c12d7491c575cf5fe86d48cba9c3ed8d917a00089a817041c649c076b68d044020d601f5aa322ae56fb6ce2dc2579e65e268e590ed237f00e5f066feb1b86f1f660366c4aa1b8953d3f1d1484f30aa1a1ce4d69c0dc2c4ac79e495eb830b0a680217c9f1a09dbdfda64c0c7f4b75ffa1df5c72176f08aaf9b02e60104aacc7a84acd2b3e6ef4704f712ff53b42281ff9b988b823be745ea20a19ffa5ea4e3b949389101f4e73155975d6fbd01e37a8956962eed849e5fb65b8c0f6e9e60678ad101c8f084129d1d2a71b3198c8eabd2d2fc9a3def11acde7ee598a4f2fd247527ae9c739b08b848748c681b937728fa75033b2df42718b312f85a9aa329e35855a1ffde929456e581130b5a17ab4938719053cc0ec26ef2cf92f43169f0ed88fec557690b24af1d4b9e5a8d800b126075228d52d873f0c8887bdfaf8b269c34acf5f81ae8fb96e23ba1d4e29631156937bb2b3d8dedb3bd191d02ce5a456161f24bce4374b9b61ad6971654386e608b090088ca03a87cbd41756cf3e5a8436ea578e7915f027d6ccb5102242c41c1e337ae69fee509f16dec9d2964d477164711b488d2d424f3f6220915a886bcdf86f77e940d7bad540d1f60fd44e4f26bf3439118e0a7a5258ca75f9121f58303483bb80029068ba5ce82d052ecce1a9f86860d4a57b311d2a6bc5a3b4b6080ca8893c3caa4ea303e64b71500be79a88f6cefa1b82598e65deebfe3cfac7e80a000960b26175f61353944181c7ca0de11b9ac4949c5b924de3752d77383b714e75a62991404fdd9cf64d15ac90ea6ef64cc908131c56bb2b7a2154ceda5c72bdf878b0da17294798c204d7ed5ee1040fc8080142aea0369786bfd593f33bfd51f0290567dde73d2b8943e79d833005b6bdf395fa8815eccc7a5ea49368ebe918315e6a40555009d633dd44c32f1aa2467b28212d9d51d7c14346d29ef62e82702a687d20ec7ee2a0264a60200204d02c40d111a5aa02dddfbe525871ec53fb78447edf49cec40656e15ea720e09000001bc9c300ddf385b54e3ba5842152e4a3d6abaae17f176f91556bb50dc6295bb016e8207bdff3f9ba42a92fc770ed4101c5a7a7b97c14cd577eebda36c101867a6f1e3e18fcde72e490a21ebecefb40a89d12bcc9895680af56bb5e0eaefabe0fdb06dc57795a22c5cf43a61f4f6aa7ba2012fa0c486675b11cc1e067e1864a2212b3c569ab306f78a3487d26c6c72031ed951257fd57ca3e11e4a011035322f51ad1b10044c519c37de0165da546461916b7db65a8494952eb21f1feced4e76c61022af5c4f3d495bab44a40789b295b1049550dafffd13bd170a08fffbc1e3fc13775c74db954d9e0c2ddb0eaf148fe4ab6079c1316cae5796ee4004bb2b9d1964cea91efa7ac4719eb9ea2186c0291b947edc7bd379d419ae47d55aab6be1efbdc2168bdc4a1ac4f256de428e203486abcdbd6b35fe17918c7a1425722cc57f4bdbb0b9e6edb59370821da57f9021283bacafc3a5b1a314e6b39f7c7719f250a7294c83c540563074b247d622cd87446eefdba9cbeffe1abe47325af9a1af849caa0851de2dd7ea69420b303e3b88efbd840aac054637e05bc4e605fde756e9a709211db616b33551ac14fbe4cf4ddb5d9c1023475f44019ac624aa9841305663bd11be9f6805d8ae1600fe570000000000079a10000000000040d4199b6437c82fa53ca39456aed1135884690c9d5bf63ee375934b7a2ac0fa58c3fadb1d1c5d24055f07b74c9aa232716027781690631538367891d17c8d36be0100205d89a7617adcafbfadaa1b134bdf19fe54e19b7fae4dbbcd627db79cdd44eb580000052caca9a3d22d5dcdb4849d017b19a17f3e2b0c4c8e5069f5f53c2ad8ac77b284eb82aa7ed3dca15ec3d5bbdeca1c94191f82108eeac8ee2005f83958918ee7b29386bf4a8002d1fec2b081bd8d774384d5a6b6b4a4eac7ea13a78bfcc65389a018c0e85858f8980783e4cb84f954c359ac89f0b2fe5d6027c359ba4b7a532e9ef8ccf0613b9d3e0e020b179bba31b7c969681e97d84b29a97bc6df4183e85dc1e0bd73d39ce705f5e3e97c08e0ea15d32ed07a158469aa9c859e48857de1c8e0b41290deaf05e92273ba0d8855a5ee7c100fe37e0793c16a5a460cee0fc42188e57f8bebfcbab1ac51364690963982ce19dbb04e5d35423c52c86da93065f2f8187f9aa4ceea225701a8cfbb36574b12b9ad2ca4f8dbc6d74628653fd66ab1b3eef73b841e9f2f4946ae64572c5b8524727e57b05941e193dce2fcebbbbc0e01bad3bb42ba799ec58d854110ae24970327882cf291f776e95965d7f94c7dc15a2f8110963ef1fa1e6e775da2871f6045143ad499b7d2f372666749ddf09f50af85827794837ad17b789991d9b199913a96e61f816a6eb6caf14cf28cc7e936425be53c2260cbf8d06746e0766585d2b00facf8e74c30b2c0faed8279edc999fb0cf2eb94d91380d58e973e452e34b8675f3aec9bfe6819897d1056d46cf58eaba91470e2f2e2e84b521860c7bb665fa14a33eb3b8823bf6be854fd5de628b15dcc439195c0d4e34aa31db1f67f63c504a2e5899e573940aef02870373ee69ab49ab5d9c6d36d939f78edefa9ac04028481110c1b38e8c401dd8e49cbdb0fda9e6043027e5946f1414a3f19856c27a55117ab9b8cd4ed47171b2609f27f6ac4cc0bbb55d473ca2c14b426bbd22ec43335b021a50e6a179c20a7ecbbcd9ea56117b821deda15612f757ad4b7515574efe95d050136857dcd9154845b44b19c6f95691e0c6c9c91e43510ea79508b4ca61e5a56b5673a21c72602d218d0afe9a86dd39ba00419dcf68efeb8ea941aff279a5a96973c4e24d9767935c6d13f25a4f198291114f6e85b0583617864a6a6f804e1a9bf477cbd52e6b8fa354a764648ee0b7ba766da74958a73182c3b6d5bd8c34c8a03e85fb6ae470c121db3973ea368295991b44a129de189ae493af769e317fa121d2751df60628c1fc136ecb5354e9046f255da23a6e5a3b8bcc7645b47e6de87b6a471353b3b276b22bfa13004dc7011d57db799a661899432e0bc55d9ae5e00620024ed95bffcb4b2475d446f3d58416d91460dca5396dd88e0d901da8efb27232de84676ed13f08cdfa698021e0e99caadce5a339e4ab75c8d6a1e4cd0a9a12ab7000ff04e2ad916f963302307673561dc728bc89ed955f5153387b1cabe467bdf23621a5cefb4e3c292cb842e9b0b6f4300765daa513aca66b1c0626996eabd4e10d197954d94bc5103494e4fa2567d5b7afec26e1ef059bd73b5b67c9ff1f245c3307f45366a14d456f5a9301cd8f195267a1fe791f3ddd16a1696cb73ae2163d806296b73bf4563d23fe53db11169d91afafd390ee188ac87b12fa42f4cb21ec6fb8d8a5b9574b634bb4b421b890f576d6e1628c6608dfad12ef68b1ae191f5d45dc42aebeab9b1d6d94a51bf94b033aae08cfd64e2c40a975b221b15431067a4af6b6569021ac6f20b41beec750dd1fc4637df32230328910450ba45eae15033ebc1c5897bcb8dd7a2c055927bad654c4dca0bd447be83fcd158afedfa0a7ad93567dede370ab81291a92afdbd1f5f90aa36cd50727da091e9a68918ed4c7890e220e836c362f3c90f5356492261a6a8dac07d29b6767e14e9d2ea325e9b766e30953a460bec9d3031a4d023165d150fa46d55bc7e498432020020707172fa76de5923f02c3adefb5dc12c06a754b74f8178df45786d820514255d000001bc67a15531c4aafb54491c27cdaba2073b22aecefa15d44cac877a20a699d0258dcc889ae25a99c629f0569ffb39581699d01cfc2bad53ce755eb122ca547806c248fd0926e5c370576b71662bc9a878917041ab0896f1ed99f1b9fddf08e9df1d6a8faa3f761776ab7f08755fc5b35e4057ac55ef8f0a897dd26a6d9863bb7dded687ad84225abd5cd9fd6b75997afa0dce7c17cd7812bfe9248bb78760bf3fd1bb484f0ff223cee7e5846491ff880da65b3f81561c327a599e116c5754cb29c8a2911fb7182b81430f5d14c5d57676d9e0781e2ff4a8fdd89e6d4cc471e9fa890b992e45fdaff015e22485b5cd93b0a71f0f6e78ecbee6f162d58f7717e563da8b5cecd9a6c47de39778152965179f0c618d02753aa0401fa8373e48105885bd8879c213ad17fa2919236018f1c2add38376d4ca181ed663ad72d3af3e1912a80f2f59e78c436e6bc7553abeed5332caf5af8c8b9eedfdffc6e212e88f64b257976898052da2a6cbccc147d151b44e1b1c7a3ffb8adf58350ec8d065c0212fd6dd2cf16070ef4a230c192ff08ec40ae805480b4e9bbffc69398319e3fae3ca7a7a9ebf77eab9bcfcf747e8c29dbdda980579e84c7c174cc15c98c52242e6d8385d1e35dfd946ddaa1fc432cb0000000000079a100000000000400b4491bd2ba42e8dcee2609b88a135664920440f8cc7d0a73ff3b989bca5ed14c3620408ae70c2f9a6f709f7cd30e5f49d349bdeb046bea734d5bd1ecf7254c50100203a07b2339c172835147245eb9e4521854be2fdd48c39acb3e26938cb860412690000052c5e12d954b44c473094a9ae65039776082c4cc18a1379abf0a22f4adda3e698a6b1f9bccdbe60060860b81edce636cbfb4391981a27a5ff14184e8c2cf36a795e62a59ecf64f2d824f15e78e277d1053aff34ee4d61e65e0ac22d4aedaa132a8042aa5785808291202673691ca82bd1fd302a068b8355f2c019072a753a6f45b672bb3a3baff5546f5dd59419c7d7f800fde4f2e46990a406449da25703bae5ac0a3e8575f5d52fc499f7953b2ca62fb725e48c974e36571eb5b13181a93124b7890112f9c7f042f01313ed7f81033052ebd686aae2a7733631c0f15171d3d49b9ae8c840733c724dfb887d122247d42452371f8a50cae8a3024db0add275d46afa14243d237d39c8497d9793df0d66e3f6342e4bdef37f2a42197b78b579775b889cc72a84ab1cd29545c8f833034a023477609a51c1791177c47d0772c16e6247e8430df3b150a8c6b7ecf0caf3ed9689fae4b5cd0a4f2401194c32fb6836ae90226169e5d32f7e0e941c878489643181e489b66ea61e0a724ddb5cb4c707bd74bb6ba0f6c72b05fc1904a87c5aa1588b3c67a2b125c1db152bbd54a3018a9bb05c27128efdddaad7cd77273872156cf9b59225e632a4944af66d63164e54e909a907a8f5863eca98d815251244bc340ec94c4f9c74a558d9c719abfa165d35644f0956eb31954e03e08914a823155ed4f66e2b865877881aba4ae26c80ee0680de3c8ee7bbc2ccd04e705a6d2739f9542cf7e8ecc48b233ef502de5ca5acc2a7fc5dc82e279b0b963369d6c43c137eb723d95a5fd79995c569e1c171feaa0e29f2099decd881b860046094bae463d14c16781c0592146ea14891cd2fc683b3ab7ae7c7d641040fc9c86390a646a088616825931df171df7291eeffd707eaff534785c0dbf3dba6dedad57c1678ccf9542230e1e962b50ad7e1b14dcecda8df3576759a8b00e0452922804a8eeb2803f6c7cbfcd94b87965b8727f8b1362722a8da55b58b28a12197f303dc86f3a57b2e41689d5a2a947e4d2ac904311e640857b85078b0c7bf555e033fe78c89b881ad4c5ea06908a62277180b55cacd1f2827c718861e9784115349f4c72ea8ac5d038e22a7bc40a630e94f01077bc3ff47af9c23697f059f88ebdcc4bafbb40da5044cd3e68e0ee407f1d7330f8c4530f9f05d33eb4e4bea66aeb6f9df3b7dad47d4337ef6f4bb80b8f23e1bbd7bb92d9c06c69d15870c9c46cf8a14144a3e52bc23a36fcf28caaa3a9269483e125024fdd4369e436f3cf100afb78acae2b2a46891ae03938f1690dfe1469abfdb566a1ddb14b0d2f97fa938fe4129d788cb4f68515fb4b196511e272182bfa5f69df1d855748ff08c3fb7daf0308b6250d3cf3fe8ec42dc8ee1c68841164534748f911146d2cb0eeac9041872242baf469cdae4edfab69fe093eb7cd479d175a180b9747398ba1dd8a216769c7b80eb0a850cbd394a32c423df62a942107d345752271663ea60b711665ac94dc96b1cebe8f223a87933c4ae69a8704751d2f79ef62efa750831115c7f008a9a16d3c2f4db1e4d7286a10148ade4a5d3f08dd9bfb5ded46b1f12b008f3e165ff9c67598abf3a5be737ad515705413d125dac79ae67169f445e1ce2bac5f44c255342e69d7712527d969aa926df9d1e19cf6a9ad7427829a34d54ff918fcfed5c424a300e014485ca8d181f20eeb5dfc775bb9918c010f4fda4cb5b885f92fda3a4be7d007bacd3aeaffd50d37442b47597968c124d92ced4478c4028c13a403f6ab600e939571dd835d76b703224046ae8ff26325ab7b29bdfac61f019b3b54f7dd9ff2b8e0c38de0b07be2ab8730b5fc2245c49828bbe9f5444870e98363007539754020020a79e6c9fadf7fb28aeee0c71d078299585abcd3176ca51eaffb9e38cf9bb735b000001bc987b69c8c9b9dcf2174a5273b0b5a6b691d77f918078563217bb90e074732f104f2b727f3b4fd2b9b55a84b670002387ab0438638df133052b5698a6d29a9670891b4f60387a1ccf55e3e6b4e450bcb7e26b638776923c662d67f988b55ecad5e3e3ac21397d9e700abe6fbcdf936e2239bd1e9f4a76b088e8e7c6873665310eefb3395de264ac6ea4536e15c0472dec41a9b8a84ef68987287fd51b8f86975fc7c229a9d0b0f515a25c92a9643ff610dcfd12115a1c99212f1f5ac0bca429388cf0309c55adb3297fda8129562ea275790a411ad227bc68107be7e25c235994125bacee1f3551280cf2cce07eb59dfa177f9794809323687265c7f5b8d0c54bd9a3705ae1d4344e6e699cbb51de3be2753150590ae42e2c4d6fb2822b71c020af1cf4285c9526f2fb874603c3687e1efeda9a40c8f3406a1b4e4355eccc6b5d759c8063b12ecdf16640bb68b9e2200f2810543cbe011431fa2234b515258a67e08f05698ad21be68b5acacbf19153c4c75525d1d685f24c50dc499ad662703578b68e87a5f2fea22a8c902f0b56aca977e2e70674f362e3be8d17bbab93d18af76db1491bdf57ebda71eb3bd18e520799393fdf3d82c6013de963f2434d86eecea35da37fdee336cb88c13a0000000000079a10000000000040a6ee9d7a738dbd628118f8a4eb66ff4540e729e20404809772e744e22d05908f3810381bd49e4c1118e0341ac03c97569f93ed08714310bd7be5e2de94027b530100206141f15dbcce1a9ae5103b99ae29292ab614b61760590034c169773b03f2c5610000052caabe23f04735c43495165877a73bb538bacfe0591b8bead2d50d8b73475d254584ee8e7032fc01e75a7800374943002a8a920b7203685c3a2cf5919cbb92418fbfb0a6f0c7e9146219f8a83845519a36ba6b929e3970e110807d8c7d6f385531360c15511834d4dfb0a14354b53066276bd3d17bc67bf52c8f055e87f23b7102a198c0ef22b6611e18b45e9c52047b5a7f3c22cafd0f315eb3caee337e9d4e7899057f6deeda418439dfd3357669a6c1ec82258a8a6f841fea88cb2b58d6fe13e1df5fb3e4c86382279d32158bacae919eaf049ba133502228027d60bc770ad86b08b5102112bbe421d120d3a856aae788307964cfb0822cf6d3649c6edcffa74d92fd5f409983cf68a959a678364df1fb79389c1d4a86fef993ae473a2bf70b47fa47b26ea1fa029cf0544d890e5698f8b79a962c49bc2789a031d56d6cd453080651d52524ac953113ee0761125ae2f2063fab90c6efc74cfa443793a1176fabb38959366ba3d93b4690671576b0fab58e22ee669d06b8b1b4c56636e763a139166d84cdea2d36bb0187976bc940ff83df776a5a07ceedfcf355e3572fb6476f975cd03f3dc1a20464248c67d59cd2405feece675e49ece2a35cd3a669be3f57487a1b89c8985d607a64c5228c92f4da4846ddaf33f48a2cd4d7db9258dd5fc811a5ad0b591cebef8e87d1230d0020062f90fdcb5445666a5b192db9fdc8b2f4ff53b55323ab5cc761b7540c2448e770a49d49f6168abba44c5c04e4f09d4b4497241108ef28f2c412ba7034a1065ac6cf25dca2a62582d1e2aa4b6c75c99dafe99a33400e9f7d0e72f0e87aeb528bf9e60fb7b646f9080b058b01e53ce59f90f34a424fe395f14ef625770e8da3bb6a62dca4151df0102bd7db2c654d90a9bd738fecf60e64c5ad443886e8fcfe0da5ff724e3d86b24f747374b686b56010686cc3065f6876e06bcce9eb9251e30ab1bed117a2f7f5d2b5da0c539f0bb8900f6ca9587e9d703bd2a88f0e6d1b6ed5ff210a6492bf7a1ed1fafc2777fa86cea3f740d76b93cab4bec850d78f2db9be9b7715b700fe0be23c33324922814fe84715adf74973254cafc4d15e9d3dfbf1a1f43da610998517ab2a3358373654b64482c5fdb4c979b648d0ffffc30667f96a5d587a70f0e195e8c320c217109b21df58115757f836060bdd40e3a1cfbe01fdec6abf33226e73922f32d35d1a6d214e6e184da522188032ccd6b7172ef6d9b7097c18dde090a465defbcfa3a34a6b771b16098356266753af39069de133b6ccc5d16ae841148874f907adee51305d78ca05761b219925e1d870c76ad140a25730e3f46240fe2968e356ba84f402a572c8cfe401280cc25e6660f6edc5a30ead31b9bc4cb3dfdf00b46fd61c3f019aa4514f5b54f1da8f432d590b78cf8603fd4dedb6912021b45450e3a3871e1ed75f0f706efddd73ddf7698f0411826fd2dac2ea3323dc2f6507855e71e9301370c13bb4b16bad2d9c720b7ba01bcf7b0f6bb1c5a2c88f1e2475f47f0ca624870c1a14640765744fb14f194159e461c9a4a07e4a42a03f4aa7904563127ab00b7c7ee01b922f7be2d8f3836334f0c02c92e88198fcae2b60f43eb91afed9a6676130acee0a1f4be115bc499ec0c77ec2fc7b600f31d3e58c8276745998105171aceeb0ce05aed663d16178576895546fd26c3f7528b1646c7e8e7b711e5254a13d3d4b827af7f3a99bf282c2e7479faefbb5d84d44de8eed9338baed7d0c56c79db7db26012ec9ae9bb8f0238fefba4bd71cfeba2ba73c2775f7cc420e838031dafd25e5a56f28da4e092a3cc90cf379213bb55bf7e9359977f1a3dd43a2c627f492f2546ad4b78a1e36b866900200205560a6bb7b62d7a13eb3779e34f654e1a4638dfc0db54e89e6ed9f426305f70f000001bc9aad48a76571f60fdff093ff2c2fd52e463c43f8a2e7615135b7abfefc31824c4d8200b25723f4fe81601f74560326638487f96a0836479b358b91d2f4f912614ca41516f9f40b0ad9c16f614fd0ce5c2cbb95dcd3b69d8771acb8481be35fb160b8a59aa84795aebf3e6586ba5755728e565bf817aa04eb551b459052f02f2a44b97ef11fe355bbb8d4d4392fc24594215b646a568ed1718495d3b117a64f2e622dd541212556dd0858231a938e2527cfb35a5b15f56fabc08ab2d3f577088c83eac5ad202ca5610e96aec7d32324e3e2ca0894976f8b313dce84ee46a9078d9e66fa3d6010437c143e05c7cd6a3af366dcfb157eac4686f2d6d23f1df67494479389d54c939537b19e74019a108ad2b57d0a8e381a7cd3e7c4a7af1e0818864e013fa7dd8f07f26a2d54acfc5e2c6df29bc6a9693ea95d6308a0c87678c7129675c9f3f95fdcc600e466fa590a48806affdadc1039692bc0b66afc868f199ecf51c42f1c33a38bca1b75fb2bae54180a9f74bdc51ae99ba1495676d78dfb30d24b70cf833b1eceafec96ca5fb00bef1338b6f7c31ff0c7dd7c5f2c93d95998b6e4f45b3f9606a2122398fdf57c8ebabcc148e752461104032dfeef468d52de4193cfd6a958a320adcfea640000000000079a10000000000040dbd8e7d8817d25d8aef401a5cf8726aefef298712058500e7eaea4e37cccf8cd2fbc3559b8da7f7d65afef385d3efff60e2d2d1fc90d864c22d9704399a4b90c0100200a85863045e93c0b1c660bbd1d4b9e1768c94d36b6c68bdb2dc79c7f7d719a5a0000052cb8ca758cd1afcd83c7fa8d07e9a38b9083c75ad9b8debbf1ee9849cb8f6e3063be8e34ac30a072f0cb4b21af10f5c9914020f3aa852b5849b04d4c2648272d6cd1d3cc2f6f42c9f2b1d0d6f7ba902b86e70cc704170a6b710b504610cdd27415c1eec89bda5897291a468d2bcc6e1798ada4901041aae2901bf34a58f508df2c24611352744368639545110bff49898fb73a959c5677887e27b12fa6aca571a444d8e95e288d24c26b2857fa1e64820137bc078cf735203079b4c6843a708a45c7588ab8863d5e0980e2188e987157cc868532480bbf410c7444ee3dd1b3c6cd7176b896495707132cceb428a6419ae4652d3a941279562bfe98e1bed7fc602724014590fceb4e20b66cfeefddf0c50c1d2c757f9ab9ba89daf321714b6dec24e346dd34e6041d41d819fa659228669f396502618e19866e478573357a22d7ca12f54d8d5a46675102e38606333769e6d8720687c59774d95d4c66d040777ce2b51fb5ab127a88d5138bfedbcf21f961fcb28f708b249b5483227a473b518973e5ca75b1ef4e5860376b29da0c2b0932e0fcc5c06e96edaa177d13d33ac2bd68a6061613918059151ab1728696db3bb770af6d95dc7ed3c01e2161ec2e99661d4284e801a65ce295929d6af1a412364a212c6e757fe2656fc19d96abdd33dcc3cb832183ac6646377f93bcfc84cb16beaf7ba7a745a005ec4e237ff653a1a1a053669fef7c3bbefc101ed00a125819d23c027386abdd6ee24475062ad5c96b9ac886ffaf7afc9427c5cd40379dd54668ff35d0136c61d21b2f5f69a86bc61c5d3af846a102ea01e8dd60d7fdd50fd00aa16ca7ea824b22e994953f5e2f4252ae40c7e0475332381da679c01404287077264e54f12e7c19c1be1f4f845dfe69f10babcddffdf0ac1eb3b07b69cc7c3bf5cd922809540d8162bb71d4b5f817fef47996a8f2893f78bd72d2a7c024f1b908c82479b69996388504c23968b33ee9015611adfcd4bbc532cb79a70377f00e8136ff4e300c38c55f051aed9acd8a1dc39ffb5bf5042db25e0b67058a1f5716106069e02d04fb473562c4944d04a708f89372fa4a2f966b6f76399f0ea47917ba038435fce624278e23bf4bc4fe2fe4bab738719f7027f2fbdfdee7506dd9a9895548bde1e4b11c3408103160e5d0d9561ad723835d6ca9206af37002cda8c3b17cac69e61fd61acf3406cab9efae069203aba9d880b7ec83c69fffe9cc90cd98a82c40dff8b09d56db0d5585b3a9da01de055b004e3108661be6ae34fe3baf1e1a0ef5987a9821452aa0233deff1a007e9f3aab7506b87b7480f9d84ab06cb158b13aebeefa1a6aa4cab9fd4115b5e8550d1255ce2c121a3d1516b97fdfa983efce1c173b8bf13998fe654cbdaa1fe74156fe86102ce8e86a93994ba1c18dc7bd448635ecdfe210e3b03ed4b02343ede685ffa8e27833ec95ab51dde57e87dec93a7baabe416ef8cf66a76771b1a5cb33c14a6b4293b9132bc65d7ac81cc5294d2c2c1b5a705f7668b5d8a16edb32aa3e435b19c392dec1125b3cce6b6e7b5568c95a340f68bd268245251f5a1c98efe24599f0765cd871483bd3698ff4281a61fc6905eaa2ad5fa99690a01d532e27888905dd070d90c5d8a3716bf489161e429f4c8f145edd211b36dd39ff2fbff2339ff44593fb232a6c7a8de7f0a34ddfd6671bb425ec187f4603172b23f5b6517aac543fb056c646a6535275dd3fd9fd82dafa80261084aaa6dbe05fe964236261d6a715b17df30e3e1a619b34a69e767c2b51caacc4ed2eff0df2c945c6a31b040a6946b6f57aaa627afaafb14b724f8f711c6c93a5e43d1c413f9e6e40ffcc65d06fae06be64ee628dc76330200201688af2fb6681c7cd616798ab0674bd7d8030e08188654717db27c9abb27e953000001bc568c4a3716f21e24d7c301e2b7413dd138f20fc28c2d914dc2335249d87a0a6222cc7d5754394159312000416d4e85a25ca2c390999b21719c9248f551d5d3d9ba8138ee7dd87c9903c39c382fe6704b2d582f73a3325a96fc90ba754842badbde0514eccaa1f36f21e2117994d0656f4491a114e86ac4f74217ae7f0e7e1896b0dbe1ef3633d3187a302cf3c6a2d647929c9cf341b2622882abb4596b13158057c00452be57de440ae8b39013db5f2e53cca387d2d0d63bcb410befb6fee6da696d500e45870dd88b409099f1024a45e6ae62b21d754ed9606eddf05a1af0552d7e7b41a9b5f59e7f1756bf94218891d197699aaea70d0227df8b0fcf209fe8ae3646c8bedf9406127e6e7b0d5784e64a9b953bc577f59cbcfc29244bdc41929f2c9cd753741b578c6fec3bdf2f22d9d7c5c2fb0c1888c14c063326e90cdcdb0b11bf75fab973ca2e02a4dad738ce00676668bc56f4a43d9d2b0bd769c80ff113a4336121ded3a4c3236d3c4e8ca2cabb60ac5be493fda5d371b0a055befb442f9346271adfce3c2ac5e12d3fbd92433b4a35c55ea4398901ffde6858bd949ca603fb99f56058130c5d15d645a8df537c58a520debd56829ab714c452fdbbc0c2f3cf9a8dabdca031573bf00000000000079a10000000000040782cbd799e304c9d416f0980baddf7398284fadabcc80059d52257c639d6781aeb4155d9f124c64d61766cc3b00dc77445bd7868548ffda0ea3744ae08ab666e010020752ec068afa76c6a261660e36f4e54513d9153ae4f31d6f52ebff3c9e9800e020000052cada9bbc4dd451b735b9f824e198adfab937a9413886535f1695aa3c8b68a62410ead5f3c1f50a68f41753fe9fe196d429d307073b202b3979408b737c2fcdbb549038967482e16c8f68db934f12c6bcf3acf830bc3f76964472e0393edde0d44012fc255c3f4084fb61f701ad01e17cabfa12e1f64ef46ce48e40161a0c90d5f9ffa83b178e9700cc0b3421eabb036ec1fe0f90d9e1892ffae34c1203f17349ef0aa002256c980d448e9646bfcf8438a7d07caf8573bb71e07ff59ef28b3b609dc30c99aff987e87be5d9a1e0e51b22a750c040db92dceb82fe42d929afc439b267a359658406f45e117d32fcc4f424cf470041022ecb3f06d25655ea9e0835e2c5c4f9b018ccd6421ea2ff82c679b83ab3de5d28add2f305ff91eb945550fad8688cb30c86980c82c7a5c36930bfafc2142a0c5b6bac29e78298a1d24421602fe5022797f71afe20bfe3fed153f93b39a5f5b6fad664c43a5f9ff7bea9d966409741bf69316b2477a8715910468cec9b2ffc943b9429bd32c73f7f2e327ac49a42009551182d1d901671418dc9f9bfb5dbc7d32f88f26e64f05a9a18b0ec844136c237e55712a69ae0e713105963ccebca80c9544d51fbed4d3fd7c2f399eeaca8a2ba4eb11c30aea285a3b08222bc4f30fc4bd882f500fc5cfbd7fed7c6112e35cb89224e7daa0b27eb81f1c22badd15471ef37872c300aa7a5dbea206b10d401b0299f680fbed8312ffa3d11fe54773a9b3c6988b93bef5689637df1be66c0dbac7ec84744415a53980293ef368479a7939941af3f889f5d390981068c29aa9e4f55bca9c481895cd4d07f26e2231f6d562c62f033f64fb44d09d2417ead266568c75c7c9e3780a55629055fbf54816fb08146e3d64997276149d4b6a545986f1716b57f79d71c7584b0d471fe63fe8977cb2c60671cc038f2e3db27f5f943d7dbaf2ddcddc590b5f29b8ccf95c61da4a6a59a943ea00ba328f3c3cc4926304e6958b6418f0497fe29bb6015f90d37f63777152164cf5277068b70c56aa54fff8e1724e4979fe05ae080ab9928367cfdd624ad02c78798c5c8b5281cd9cc5c7f37d654b52edd2f59d34fdcaae4bdc01208da2097545cecec7487edab0ccfc9c86784e63a3033f3c9d2989aade2bb2bcfdebbe8defd4f1f90a27526672dee96a76aa30fc683a7f7cf3ab4022e2a53fd41344253bf4dc7af3960643698a04bf471640da3b201541972a075dfee479211b7d3615d2181dce6bfd851a08d5fd11cff2e08d7359b6d93adc0a891cc4de690aa5ccc40b99f721c49635c5a4d1f52b441cf889d281e937255c46fbd3089f8be98ba29b49f032a0f155a58af37085d4c231cfbcbf0fc45fca94dd4d8a87d2ddad4ff31011f3d9470a2e01839dcc0496bb3aa8327719c2ab47d1219d56307ccaf34425af68ce4ca9e803982e1e81255b383a37bc2139dd012462c13e5f7b1209f3604a755f214221bece5489f2f9dabd0ce3ee4b7f3f6fbbbebbc7ecb9be0581e38e82bf88b43f7d92eada07cd54fd04aeac5d028a39810ad837b4031e9a2db9e0c6c0bf009b826bda4f506d44e23a84bff5785b0e009b89d21eec8224cc1e51c3babd20e0b6a99efeee511c3ab427efc48ba76ba539bb3ddbdb19543739009e12058e1c04781b9f2edc08f06fd16f70486e565a59907979e17d5dc4817e51e473ebe48ecd26c26e1d5eca1ba822ba17e358eebaf7d8f93cf329e638535c93c8dc04e27c7bfc0b3af55bef218a6b7c479fe75912dd922b02a4f4b300ef02353b5a18d4d3ee1fc338c477a9fe1ac0e377321a47d9e15821aa83def2fbfa20525efdeff478f8020c4eb55d244c075998a0b70f109ee370e1cfd18afc7c0200204ef635c7181878e477cf9018a6a9de9b6af0e63b3042e3e5f354bd55c892cb4d000001bcea4de3791248357456136735099df1af197def5ed49e20fe348d1111ce2967ee17a89379508ee35ff273439526b5dbb0826ebe2393941f56655fb72e4cc8e841e6e566d5c49319a2c819b21d13412577f52439a9cf84086fec608c2d8542605d3996104185700592dcd0bf84966a9603614fada999670c7f69099836db24ff4c972cfac79213b0d3dc1717dd4c452a651fe23a3b813ca47bd114f5eae9d091f7f19bd6fc8640540f8863e86b92d6bb3c3fb1aad2c1bfe5df203fa3c129490847282b48c86a2c0dead5167ba14a2aa2b2b7c042cb5eff29624fc4b0eca2a44406c5401ffb0be9b7066346e726c61c1b13ed6b574bc9a024a0f09beee12abcbd05dddf25fe36ca893bade7f0cf7f73b914efe3569bea25453af0b3698e4c91ca12eb21b184bdd67cbd162a6ae1085a48d611767a453fa3899b65a0b0dc2f5da20cfeaecff7b90c96f44d133b15e8269e438c4a8de0f25b5f92a89228eb3352bb01e702eebed11fb503e0c3c2d86c60dc8aa25cd4c89998f52b36dca8c5404c0ca1aa8111906c3dda2a3b3db99801b513120b35a131b2c1657db605efc5c89f617bf07dfe8d770ca7f13fe0c756920571bf2f39ef87434431ced625f2b6533c031b6cdfd9c4c70ee6c16a64674f0000000000079a10000000000040a41d13766b299b0aaf4a8bfe5f9a175dc5123cb509f1f9cf2bfec9fada31879c65c1b083d4ba16f7cf4f2700af698e742db3fd93a8ec7a232daed8258914830701002002327045be995d71dcf981fbc391b221e11cb94649823fea9c7e32768e4a68100000052cf87462f04d8414db598a5fc49300614aea85684ad9bd3e2a758fa43acfac39a7aec4f0ae6aa21b360b593307d904aa8b248a1db97a5027c29b067fdaa1488d3b08a5808183d4d9408fc810d78228ce9dd118925263108502dbf0c4906b30331c27a8e01afb213abf0c04ab76e4a396a8cb3622ea9720285f3b3ab3d43c71a7095734f0153266ae6209aafa03efbaa09d9acc2846053f2b6c66c9c784f529f10d7d1b94470a6c179a26c19e722452fd203e637aef5e4eb7cdbf8fb62b2faf0226f30829c00807c8d918600972b0c2bc356b80aeb9356630fdb52f95b3280badd88893a2c6beaffca090ca825797cd98d4ccbd8701678131a4b0f8907a2860380f060e16703434e9abe082f9ae60dc67324911b1aa0288faaf93ed4a57d73a7d486f3e9fd5388e138b0bf1bb279af91d4c37a92c8a316f7ed8939fff998b1e8c1aa6ab009c3aa64f2805c2b6c895d4ecf0588a80b59b5d69f3ddfcceb32ee1c0e8ee2805213cb4c20bea919abc02a3011669bb9945153a5dc90251bdbcf26bc6835e27ffa094d5aa9f3d6f041b270fced27aaa258dd07f6207eeb21488885b4d5cdfab9468ea14d7be219e4af3957b87fa554483c92b7ce2d3737b3e0b56d0fbff09af4eeea016eb5ec0d0928e12ea4b7696845080213d01f1cc05ed411d300e138700880edda6bca12f4c56d284bea9cce9f51893cb5d18c1b77f3eaba2d02069837e8dddc84af802e63437ef9629ef1a3a90b1421a20eb87f241923c8b4dc4b1a298c7611746c52ca7a1122413c715c99869e1271f72ba551396a601548d52b1fd5c49ca21c973b882f387c6980b4f532e04864a433d671f97c6eaed6c746aaa34006da490a096478b575b612cc33504fc9d6737b309423a21cc4b66deeb9e4405abe15145748cb54208165ddf1ea150f62705055ff46094ca1bcf856b79bd1896055674536b946b6b0589f7dae394b561c182673a7185ecdebf24bfbf15aa594752b7b8135b9cabbb82bb1ec93fdcf4ef44d601e167ad60f10013c79f2f4ba10e155acd9cee26f2c651c2f80434616739d70ff29dc0ab6951b8bcb63c30bc6710c67c219d05d47e5c3698d202a8ce73665a7493222a85fe110de34edbb4330d19eaafe3d1312a4976ef20180a81ba07002b85c6c9e39025ef22fcd4f32d224c7704ff75311d5115d39fd4de4b3f9d48a3ae64e5a4f4173a9d38877c55890a2db2fb40869e0e9621f090344cfc153315aa7baf84828541e1e1f2c0e95564945057a22a2c7489a69a93b71509c7b17c300deafbb94ac1e01a11575c88564ca260d60fce7fd70fa1eb847b0aa556d9640f5acb01ed32e2a91e908479edc705bef62e5521afeccbe286949ada0eb1f2e423b72e76dc85271ce965f952c2a4ff8bea2abbcb305ef70280c4a193fd70cfeac87b605930c9cee38a1b0c99f9e2801ed2d00ce944b8bbedcba98d1529fa49bc43305fd737272bfa702187e33d59f0ae27a8ba9fa740475f591716180396de2e7205f2c7b2ad46fd1374cb1900c8e1c390bf0ab7918dd27a32dbdaea7b71290ce4e507398fa1e8d537a6e01fc17b68d46503f4dfe745c81097aa69615f467fb37a5c23d559c06b796fdba77b6c630518620a2ecb4fe0c9e99d593ffe408b9e7221ecd3c0f1bcaba426a49f1b866f815408fd967672b948d4d3b27c38000a13e166df2e30f7be14ecb6b3a885a6bae8cbcac5d19a1b3fc2d303137d97a85f957a54209ebeb4de1fb15c2ea8ea3e5b4da1f3946a0d95fcda15fd83754ccb975b00e40fe240ce58308eac4e39721dfa2706c6881fcd22c0f641b73cdb1dd97a2b6e3c684a953b690932f0eae8394f3b2575f151f7b0bb1d371fc2bcb696160200207ec914562b62bda8d32b19e6dab8d67f7b24a4651504ff39ac72129a343bf420000001bc92c3beca39adc3892d31723a1d5e64cd973d51578c8996d2f6665af2e4461e3b03527af2b2d7c2ac9d151506e8627827ba3413a8f438838211a34b55bf7bc31b060a017c3d7a6128fe6b97f982e0c2d8eea5e519ac1a13fd8d93ddb5f40b581d442a8c47b33837ccbc9adfc7e34f527ad708db6d4b89da9a194ef41b9efa26fd959b2ff26960d6c04eac93d07ac01e688194a6588faab1bd02b4211865a4c989daf36010e8f57ab9eeeb2a90c688ec76466db6799307b75fbf14b04fde0b430c538032c850decdc52ac5fb90fd826e1ade0f8132a9c59a72eb0db92232899fb04a73d950a7edf3ae67ffccc6bf9ac0dbfe6a0bf04a32d802d640e94a9700c0fa611aff8a63f3965722c6ea5754e3f970298657dda3249fdd9ba83a173442400cc2ea952d550b76a1f673beda3562d0491aab8304986c7a29db982e2e8edca120f9ee290a994f8e63400bc474285f38e563c4c02cae252d4d5d8c704d2f05a4525a70564ee11d9eb9f7bcc653d9ea04df520b96cafe63b6e1f123902d0ef9cec7d59b5e05e7acb8510417bac686eedc11f6e3f80aa7c677ed4646f2bad483044a2e95d2cc2ce4b18820be1061c84ab3637f64878d7a46d8daa4266d105688746a7c46bac6ca1be21d794e162a0000000000079a1000000000004022e8b6f0bf658168429060b2fcaa13f86fa4a5a6ef0e71f16e655099cd3487738d027bb214dcb8d212dedc2707a60feaa931252da1f6a19d126c79bd5628e4a7010020c6fc904fa9fdc5c67fc482b9e00e5dfaec0ae7d40d7272c8c5e1375d8a23bd3e0000052c8de9315410d4fe614abf35defed4a50deabfdd8b40dcc6d599d703618d8d6d95d65ad90189271e6c7b6212ce3d4a1c9011fa2af4cb9c4143b3ac07cd9f707f8da049068cd1f47e9cf48a9af948e73d68e12d2165925e6c0ad4bd74eaee328568014d54f7059986aeda5b3827678d45c544a3b8863bdd41072965866aceb87c6df3a4ceb3b6257c4e906a936fe6a55ef45f929cc9efe410080d9192563bbcfe8cdc37b8e9e30413ab8467b46ccf5020cc1f60b9c91567cc1cd0b1588dcdc744484c6b782559f879410949c480c4be69643d1e5106dc4befb7e1bd4e0c907fddbad5540e51c01082bd7c75cc41a653452aaafab85da6c7e8e6f3da6b36e6490b04b186c3e031eaf933e679e9708bdcb9a47353cb3621cf12eba5a669f0c8f2d2024b0d11cead7118010f9fd1e8e34e94233af694e351ddbed2172e19164a6c988e320f1ca1b21ac950cdc96b46e99016203ca13154c47a2284c3cd04fe677ec8d280f21ff644a8eae5cb97e6f4a0b4a485f4f1134ba2a4c5d44ce1e71130bf4631ab44f1c2dfe10c9e39c3fbfb621e21489ea2f05cc8437a2a2504e2fb00123630f61d98da1cadbc8a28427ec6f2dbb1ce7427efb4d0a20c0a0034783c27d86ac20fc042caad1373225293d5d19a2663ac0edc86ccc1124d58630d7683490c30155d3a818c04e33eb6da3fc4e59ab39817edb21b476b951afb177710e47080a7bb1e2cc75816c4f38bebed38417892fff4ecaa66bcf9946058f59b7e99dada7c6380575a85baa75f6dd49b9be1aa4261c8ea15a6183ff07b3989f5a9899d33fe1d213cb3cb2b0d87efca67317022ffea527d6e692747fd03e9c77c7727c6b0ef8eda14991a42dca55e92b687fbf6350f2fda951f986f683a975547a6c1ed92966b4d3dc1b4fba6fc45de9b895730d7f73423f0589f861a257eeee37f948b06e2c0d224ea98e79a363ff5fc6975a1018fc1582df29e34235121234659b1bce7024f902a783cff4ff333c16b5ba9349c061302be31d66908fbaeb98f7dbc4c8cdc4e1ba1a278671744ef471f20d591ee0effea6a99f289002c4967503710572d594a8442506be743eeee8cbbf81a625fb9b9bee660a10b3b4e983db1fe9e1b362f2f6da543aed523c259ee5ccb318094ae826a4c9c86e30d4ff8fcbca678d48f5d9be65df3b5d15d681cb5465142962f117e43d1f8584bd5fe2256a95cf7b970f174cbfceffd2026a72030f36ac53dc9b4ef3933460c50f5f8e3ccb8b4d0404999bb98f3847733bdfe89777aa61da3eace495b8ed7bb12e78cfd9f434caafa21de0e6eb04d8b228e44390940af8d46c36a1327c2914c62835c04af97177da98e38c2dbd2b0753b47630017d85cc9e32fd8b3fea96d67e43a907c1224069239cd9cb7aa70f79aa1b49c0bb3389ebada735ba3c6dce84c5310589a49915574cc7de7b6c1e7572f152624bacd20ff9cbb0817d3cbacc5fc8eaa5295bcf625ef9f7a8e68c97b6f7898ae064ae951dc848d6e6475de815a60df4b69c23f189a33a0ff02e85fa1fa827327cc1227fc9845f83019b9c133be55248c80bef0f119f0aae57b17e52b1ecaddf5c0dbd3ad9f1fdd2741a41478de28d6288d93a11d03617fe076709b3d5e33aaadf391d2ac953be40cebf237c0282515b668ebc14851bdcbadfa74a98c11a126f2a5d663c80331346d9fcc9effdc4a4f9792a1b0cd019a5029dcfba97578b9b09740606ab9ed90140abed51af578fb07154614df53ae9c83bba7823ae20c0d4b8fe5d3f6c2d3ab309626bdcebf53d32e5c70caf3a0d84065d96928821432c480a80896d174401354f57129560793b8880c70f6e4d37584d49dab8e8f04f5e3256126adc8c966b3020020825d5b23fdad6172312d36cfb157e72f807293f4c4f29efca4df79ac772aee33000001bc88156aeee17b91ba0034d6ce35d3f70c4fa82a392d69e056a2b4193cc4d102a20cefd5fa1be9a885675d3affc676b887248871591f70697585ff75adb8058605ab8625950bb8b4e0bc638b5ef9b387ffe46e7c4b33d763d829285c7fb05dcb25892543313e626cac0226608c91eced99b76d73d4ec5c0c9cefc5df5fefcf3035e1c9d003fe6524502c6c753b8afb97f2d97d92cbfcc7f0e5f27d018ec0be197c06bbff13167519d1099c4771c893ad2f5f29bd3d55152e4fc9ec96bbface93588710343756715fae4a85a7d9c540de19f38d7349aa39c8ba471e099b3ce448b0a0ac4063c8c2df95af2c83c67a4d0da9d46e17a036db645d47744ca75bf0b4fef4798ef54cf82e2a9597ca7db7ac39c7a7e236c94f8a5c14409f97d771a0c078db03514d198f744f162f612f280ce02c913f82ac1ea816b276f16f649ed3299a5cfbf6f98d11ccc3b4f247b012a7d1214a77c893ae3f63a6650832044a6a2c51b4d865055b285fb6d045f8f94a18ed6c941541082e60bf396a57c8d6808ca1202033ca4fd6e3fdb8b7739511bdd9468e05b3bf8c1b612111d7d60b4d8f38658fd0cd3ed9842442890eb1125b3b371f428e84f8309b6a26e989eee43e5d403cc974a429a96d94f3799adfec460000000000079a100000000000403fcc117e6f95949630a858744d95dc2eae095f2c7c4a5d74b2575cf5909dbff0d540ec2c8ec8582394cec6233dfe39c9184be3e9dadc6f8748ecf597ecdfabce010020768f823c25e27a1d6fe81987ccd12c80b13d532b505b27b7fa489b67f16759310000052c2e99d9a25fbce12c6a58a5bd83253971b54a9338dcd15a8561dbb34fbf0711c48c6ffba3a4df78aa232cfb9c46fc032427d2d694f078de781f89646ca60c2091f350f6e7b3ca5d52899d71f19ac356a9e3f0111eb11aaa07b25c623020fe99c6c0f3760124bee945a200d09430136f13003a1fac7a0253ec53942aef7cf34eb2a7d43e84b3660a148ca286dccba723ee1a0d8f1502acdb93211267d6a7c25103fc19a6bfb41782af818bf3f4c2d0bc2dd237c48e0911c760b5ed65f5909647b2fd5f7242a45c987e443069cde542f4c1eae14f3238a0c3b0c2804138f375bd6720a4b8b6cdc2a7fd9eb388c13d232110e515ba5dd009047dd79780dee30f80d42d5bf3fea84d4170ff28deb898cf4228c17d3c9dab96a70e24703bb584512160b1fe60a57b2d80614a7c7710930ab795401f3112ce9c7d1c1c0ff9b1ecf5502bb7d83a3f1a6ed0502ae2388bf6be4f32641dbf38ea88fefa75190e43187b3228bfa1e3f52ad4ec3f5a738e0998886c2c870acea35d0cb2d28e7b2b23cd7aa41fe35af4304f9a4bdcb66b31b1a5fa1019a16102b6a4c104506cc49be74922b2caee32d367cb585ea42a883df8c6cad3daf0bedf7a472a39973d98337164015b6fef166e91dc2dd733a6abc0605b84b48daf2d4995df28108ffcbbd552b6c1599f5a8ecda42ed8e633e132789dc06f355f68e0df5441c1fbb22a1b05078681d170d9572a565c6624b85b4c6b26f0a9b732d8a2b440a2c5f609ecca7543753d4805b947effd762233f76344ad90284691fe5793edb1f0d19fff0231371d00c2413913c0cd434f0e287d9dec7ac5a6c1211efbfd7713c197f640d9fb71ff29850298ff7b6c2cc2ca72e9a15459c31eb468b5c11b04f8772c32266606e670e5d3e844cb4a2cb1a172bf3ee2e84a456651fd20b84620107a28b7a2e5b1e55996044d56804ea88780acf9a3e6a149f83676cb8957cceac0a062244432516e3500c0621b8c1b70f66d4e6a16504e3b8634e752dbfc143e29fe76fc318160f6d20f90f32335e268302e78d4ab261fc2084cc7313eb6419a705bfb941d83914058c9eeb93278029c8a1366b7695a93677738c0916d130f9a28fb95965b3f4a3a336e352d35e1e922702e78556e15ad349649b1438abf0b818f75a1b609ce4317cda8d65712dcb43dad0bd303d52984aa52df7788ed29fc6b7cda360e95d172639d0604a84486b988bfac538a1cd8b51437884cee756d7e002c7d99ee4993afe5f8b94679f9b6b5983b01a2b49c96421b3b684367b4f2b31d9a410677d205c5a490a08abdb91a5fa9879b2df5ca7ade87b335f5314c7d1e9770503002954c6ba5e5cb7e79894dc1140cc8042412d47660ae7a2a52672fa7db06c3119aa02c4aa7f5458b72cd9ef540dd5b34e12da44acbbfc4c0ec5d8605edaf7f73068a7b6a3e60672714e0b3b53b799f54368e465035a431bd99cfe6e89d40bce0dcfe388dcd12d5002a2f818fc12ce34b7e4c39dd43ed449e324ca3022e258a3707628d5db13fd79c4653da3c859daa8b19318c360cbbc2583f1a55339fc66ec91b052a9480467af09991cfaefd0ebadb2abe70ed6fef7f67fd174a1ede284de438805880f6055db0e1b430289953483e93ae09069b1712de3a1d415b7e5cfdce0b9b85f170911d1629d5aac44e21d7ad0b74761bcb1ae4ecdf47d45dc8a56d797767a5550943054ae3bb36fc8511c9cfb707e51b83ab1bf9a485a2e884fcfb197e289df34dbd36b7f4d8f6b2c666ff84488a4c5fc10e580255d06fef0ed3cc87169632716d9a746ba73313d11f3dd7fec8b4f823154169e517c3b4b7537789662a3e63939fbd84602ae4b7e65507871e48f1f7ea2a7b02002087aeaa9574581325aee73b0d289b2a8c667fe24f6706bb2df07c62d2b02e9d1c000001bc59af44d2b6493047b6a57bd557e6702abdae49bd4fba0f052d705f144b2fd546506a375a3d6542cc6a69ca118fb9ca6ae679a4eec1f86dd61f8704af7f10bd5d701d4e678fdb9d176fe41a5e81396cdc8eed1f36c44ef1aeef23471d4123c786ee912384c9455a9dbc10b3cb3302402f9058e708734e02f4777283245eb167519beb98ddbece653ac4f7bfb48989a802e08003155b54d66c5de0571c06411b63f2773a6d6e7b2344c871fb7411757308f8d4c1670532aac034ec5e70a8b7c01e7550d94e4627a0bb1f7fd671ea045dde4a26497dd91d458cfd2bf2beeb08a10587d1da08697f3195947454c6ed725d9a241019ecef75c0b6994acfda2254bdd331b0e87f19dd690a9ca5d417f9a27e40d1522e09230188021785f26bb47231bf663dc2f9e4600a160f81451fb1a1302dc3c9076da7e74f474bd995665f1eff26f459a6c9bc6d6d33ace7f95c3e329283b0f14c4dbd059aa9f9017f3bdd756e9e41f5c05e997e0307109e6e142bff044b055301a7719b5f984689b5783045e52acf85935473521b6cc9809047d72d13a42c1000ff3a1e0b99efe3f7d2176b39fcdd0f2cb9198084c28a86748330b2197f0289792ac4ae22daf6a5b8ca5e758cadb33ec498325a8d819bbd11b10000000000079a100000000000409da542441fa636b1e7ed16ffa0150753d41cb1bbca7c354d8cc77a348426ee6c98a9a1ef5e4caca85736e9130dc4cff83b36c3a9184315033d7cd0dfee09f432010020a46174273f399524b7bb5630c70b39843d460bf042a0a2b861aa5e7e2c8de7750000052cc7fed8d0de519e10c61d5d42ece41682d48a740ce69fb7b34b1ee91406c147cfa1b33044d46df5c0e24570eebfba1442600c9d66f3a1f6e662a1d4eea9578cfd5499a5bafceb6a630924e544f636dbc96684741a3392783421de0b8d190d1336ba257495e7012927d9df026623f6f690600ec2abef6bf66ccf559efadb1c212f4cdd42a7c2ee4e676e8e0c528d3806ac517edcae8088dae62aeb22f91993433e58a86534aff5af3226f9bc23f804be04675bd798cdf2240c424fd582beacfcdfbfdb0ef539ece33c7a100ae011c7082b69b47f9d04addceffc13399402e10e29748125497cb364de45e40aa535527c28c722c783394e7c75b8448bc04e4d98413f3ea8f73146c3b26ba506be9ce591f386d8ba28e8d76e7ff4457b575d026a7bcbee74e161c373fab8d8db17e1eed2b768252515137cb73b206585c1e71fa07385b43b502f39111115da22f93b258a941038ce4e598598447cbd2c2e207b34c4ae9077752d0087c772ac6b2f9741ce22d0c7a2ff86d53b7d92fc568af422eb8af26811f1754829e6b617e154b1ce9ee1e41740fe3beb2f3094bcd53975e1a7c03104e3b146ed634a79a6d5af504d5c8995c8e00169a12f3e45c8087afdce9dae347959e5d6f44e3e508b7c8056cadee8b034251cd69c6a2cc9f02f8d7b8114d838aeacdd8d4e6e4063914125a03ed8ec63eaabd9cca1d8438b39337e842ba3f621eee00c87340a696d0716c90888392e599942df8a42cc9190d9a8e497711984fb5aaa180522478bdcb727f5de35af6b8ebf555453c8949f386c5e9367cab0edee8b53eb37fab221ad59e50cc02f5c552460fc37352da9f1012728221733c8f008245894ebfa47f77be4e1c49e638989e1d2c361ef2da0df904c41ca0ae93d79e5127eaa0bbe395a4fb0c521a69ad83de24fcccb877105c628c56089ebd10c831f8dadedd1833be9d435bee666558a2c36ddf5b34b0b5f1cf156b737409eb94142dc115da66b314ad5c969d7f1f778e3f9e168314b4b77aaa2e5908e61134b62f009a70c9c19ababffe96a49c3a048e8815b35d8710afc93d7717dcf5c58f3989267ee3bff2a45d7acf9b46ffbcb9f0db2aa4197183b65d28ec2e3d8912a25ee54ae7cb44e89c04f32aa79eac19997e019479c92ba6ee042dfabb782895b89146749485500546cfbc60a9f7543d8b47bda9f26be59ab0717b900bebbe5b3a9d7a60dc64a37cb0aecd656f5e28cc9bf3644a6028fdd05651170e2af62a29fa7a4778f110a3cb6ce98a98e6d5c85146e156aa867a1b4c58bd35929642129d715291d9926443978ecae14529e066de31d09aa8de043ed65033fda6b3eb92262ae5c03c4fe2eb2fc1ef1121e9eab2d62f08c4c0126ef046d5596973c4e0153db6c4a728a88e3eb39a5482b76067dd902c55c8cd58e06686d655d7af654e58075d0cba91034cbd693da33a2c37c40689df70c98438a2b48af34effc634b473624a4e01a4fb742d9b931528d1c4a6c6dc8677cbd0c5fe7b6a776e408bbb2ca43832f448e83d251797c317f9baa98ed368daf475f18a230ebc889b1ac5f6d42ff4e23907d99fa1f9a2a75633c89e3f8b9aeef44fee97a5820b4cb830f3eeaee760b8ebd74e936cda5d8d16056ee8aa96744f8878e049bf131b70ffdcec1bb9765cbb953721d3d63a00782b6e6fc4dbd5c1ff902f633d68f16f9890a459d09addc3ebedda889b2bb378ddd9d084452fc72da19fad12d7a7b8380c01860d37367c8c21f4d77684347844e75f6e7f7f88831d0dda59ac8ca249f74f09cd5ca5361b198f6b63d7dff5fe659ee3ca910ac64cbfd08671af191597b854a859444be2651cb3d1fe66733c23110b9484ee1a790020020a76d5f858c106a74b6e768b8a3c697975a5f4fdb8ae02e8d3dbf065f21f3a663000001bc9f5ea89ea39e5e2d219a48a50ba27d1d907318054eeb4244b115b4e686253e65b7a647aa604c595d2d2a59cbfe26630b84f9fca52f0eb9de7a2c0f43d5633772d50eab8d0d62970271423a20ed430018f88387aed867771a2047d30ce33090d124d889e75cee226121bf8633e44da8d635ca2cb0c87e7948d85be67041f73b2624999109438f3e7ee778333b40485f2483ab51ada9828088fa1618b873c6a243c26eb3302700c86f8c37617a5f3744e79bf0da85dc9a6a06bb919b681d8846bc7831a459acbfac3b1857f99562c370321e9c2e258164c59125f7ad42186cadd39bef09893201701cda35f6361314519de9467c4ff4e27a819f5808e8c7074f96cd038e5aa385823e972d65dfed0a11f4b98b0ebd224d5bc42bd017a6cc29e80c07bf2e36024cf76afe12ca99dc149ff05fb5f3693910c14021d15edc07e92f93ddf9dd82a7d2a7f6e985faedf1e37361f4fc77fc508c3c0830e5082b99855d27e24a371b103b8f806e467945376808e0ddc68360f20b9b4d0f29ae432f399e5738e56c437ec5ee009550801be108fd8b3961892a56598777eec722de4b522000a023259d03df3f1c7ed264a9e06100d8eef56a5bed68621d6e2371e064f54a1b93d82bbc89a38352a741f1db0000000000079a10000000000040bd1c2a6f992d2a4b26b725456544720809d033daa34952b9d91066c52557e6baf64a76fdeb1a7c213758cb1ff941937f6531fa18b98351573a6fea05fe5761de0100200de0a172ce88abf2057d9897a3049de76369631e593c5bf5293608ce2a3ff1330000052c756a58e1782efc5d0679fc204e8045e8689d8129b7cbac2b15f778c323298867b7d73de22bfcc683db50c19bfafdb468af29dfbcf842c383c865ce7b21fde565938a6ee252af4c3ce8b0e434f97d22ffd9992c0940ae35b94aa23c6b6b80bd14bb9ed2d9e1b1b6133b3426179762607128d7518c2e350b254221ea6fb6a7ca4e5cec1859365a91c3b76476153526a1380f746bc9ee1985040d0f0608f7bff0fe3208d638be784dc9bae97eac739e41c8a8afb469f92843f4cfd17a3708171d0287ed212e3e3f63bcc052c418726caf62706e897cf3826ece9827cd6894031679c45b7ede1f90c205537530e3f55392f99f6969c99bb56098f5e1446b523bb2694db901ad4ad2db53ceca34f028f712a34a586b4671b258517b7272a03028eec2f35aa2a92863d813aafa07e44450ae5dcb7e6f02ed4cc3c37d90cd5d850553ea54e1b9b7cc33e943f5950f11d105e71d21fd9773f0d3537dd3e5121dc73b2616d4e5b2f7ea24d9bdf52f070d94b322d3395c1088757c1f4e863100d1272f6ce4d466f1f879b03bfee09fcc065c53a72463eb6ab652396fad27fe93ddfbf6cd4f70a3f672ed59035b54a3b7f79a09b403fe4960c029da8ab5df78331e6ec05378682ffdd96e7a11a144194cce0816afc8cc9cb5e97d78fb3a6801117aa679c50c199f841348315c52e6e71bcf9f46c74de2769aee54324951727c46549af14973f0798ab87050688a541dd0571fac33fb52bd46c5188094339fedf53201f842e30f889e83a5847d0768b4930a61af89e719431dcc6a69375697280b0d84124c4e1c929be36ee85d1163056004224fdb483207372284329ef4794aaaa3371e0b047f195121b9e2369b8f081ed09fbf4d2dc6b7a8ae71ba39fc0676d8f44d899f8f7830a0ea8266e0430135be211b08058adbb15d02208b49393830ae9657ca482a2eb6172e9fd417ef042ff66c41dd920fbba2d2537e47ba624c8320a5c9f549551fe06c8e742702ac9f540ad854f4511303864b025c5405a974ac66ada1f15e5d27297ca9c53d8e4d946751ef328c9997419fe830e60c28402a209ba87749f0bf05be591ebb83db997caadded829489d2925f3db5181a2ef19a15e99b295b62a792739fd4bb18efe6cb2febb63002fa796ba4be22078ba0f8fbc4bf09a5b0307880cf702b42a20daa35f6d96f71b9f1c33f830d67cc1534ececc546afdffe7cd3b6e77be2036f85588d03797a337d2af066cbc872459c011b93c0bc706a90b75df80fdc74776d9af556c0efa85cda3deda20dfa52336ce5ddfe1b3db1517fbb9c9118d0fe18375a01804ed95c6a90159068747461c37763e564b6f53f951cca7d91571fbca6443e66e8abca52fd85e23ecfbda5d210fa334c748bab89bac6befbb3d657e064497e0540aae4a52397a978c078d29e13434bbc8d3deb66511329b2d0587b1a2aa3f66bda625cfb738b7d759db651660cdf93ec23f87e1547045a071d93cfeb36f241480e9f5070ff3435800fd9d33f5fe8f9d8391948601c65f9cb1c216f8e68798127a47291e98a7bb11dc82538676bdb6e655bdb7a09dd44aa4a1cbacbf2fdc2243811a30c4036df98f2b7cd8eb2cd50f7d5d817be15cb8e41de576b75ba2735c506fbbb754b6c9825bf24b52dc22b4c9d1044c02d0e145674c991a5fcfe8bcec82e546409c8999739d6ca1f5b7ed94302d423b8b0030a1cc93bf5431080f4b6d098af70cb49adaf41c5b498c4c82315f40648be776424b8ab5f02aef3b428f0a354e1e4a02d2f9fc3a6c001b6e5196f21b822d083efa15f0d59b000021bf90ca227163004348133473054015927773b143db0da311636c9a85c9716d8c5af86b70b9a845fce0200201f7c6b0d9f921fed461db971067cdf05c035d3def04347d21f17752434c3ca2e000001bc453808bc6ca1a35c4c6736530f325d432d7df02a85729a79a98560c2a3b0de11af4a161cad449bd1ccd0aa219b92c76d8916e9508ffdbca83bf61c2ace2a65bb14750c9d3218e34a70399b3ae17a93d707d27dbd9e61ddd3f550fa6ea1bad3547f7a09e4ff4dd4f86d7dc06250a6332a3953e5d65430a2b4a9537c71c7d41df506014c8a6d5730a16dc2de2804df0e5f7a809ef2628fa512785333e0ba35e15bc0d180978413b6934be446b3321763efbd34b1af7c24ea5a4f3e2152fcd3c5a4ff124c88990fe2938a85db8c605cd6737960b9f8f0e7ae0de40ded2c543dd36f42b287a2dac2b826f412b781a2b65354ca3c1a87c2de535f970a40b6cd7124607a87479c0ad2efb8e8205bf7d08f2825f15152cc1dd410f41ec0d56e9f7c1c685780294d286ca21f337a53fc72a4128b099a7af11289b038ec1229aa407d129e89e1bfa4998af00db921dc498825b4259a2c5638df2d733d8b3b15abb99e4b9a0396aea4d7adf7f37129e8548ed03a017d0642b96371bad90cc0ba4332ce49425043af444f1e75e0b5504b68934db47d5792d918179bcfebf666ed091d91f73c610633daa2f010aad0aba8ed57c159d3a198bc852398f75657f52b94659216e80380457455ff2cf16f9c05ae0000000000079a100000000000400990a884a125e9811c528f6a8169b6032f91be01cdc0612bfba7c43e8e3da029db858521d4d0e161a10acc3399b80db08f3fd018b13b2edaaa0c62e93f2d3bee010020a18ac44f7089843c6247860c68d713a37c387bb6f243c8d355953e5a43dd7b4d0000052cfaf613281a10b97a054e5da19c077004d6f4edc5a75ca15ec1bd73cb3e56571c9f4853565d91c0e82d582e3339c8e852386ea95cbe9c92de810b2ab34670705b57ea98b748709c9f6d19674ea26e1a863ce88a6b95261df0b9498e48a22b391c4c83dfdbe63cfcb98ef3b29e49ae2d7f3c9b0950d21346821d13bd0a14a7ba4c8b7dfa87e092542cd662149d2bbe0ca4aeedd64b842a3ee2a14c7fcc42b040627ca7eacd7eebb7312bb7bbf9858d7a0e312dfba7f3e5aac226a032fc9086533f945ce6e0287552fcddd0fab4c79742eb677e12bd3c91db69b4335819dd7390591f48d268bd306d6e7a955871f63a53324f478ae8c4bc408297073b54ad1b89ff369c99848a988e30d5d2cb4e909642d52a9231a7a2405d479fac5ad28e42cdf4c5c9b5ed4b87e9007d52b09d28481200bef57fc5bfeecd11d5109d6b53fa242603ade220af46dcd07ef476bce89cfab68feedd89b21aab56a3f46fb01910b15cf5b103775b242813639cafee991ac5a2270b392e6b991efe92c53ccd3003fbde24919aa2b91d9bea681f221b1d4ef7dc2284c761d9df8070769c5fc88640035a2f745ba51f1b503386a3942558b446a2f69bac2fa3127233b6f7de9151c9aecffce9a9740be647d3465b479a37819355f24ed27278a1a852aa570428b0f05a8597e8685f33a0d87da96266efb11615d7b189eeb678921758f9150caf0d74489fea1639d7fefaa5781046a1e416bdcdef0e9384cf57fc83e4dee8fe3af12f02c6ecfb3fe9044905a85816fbd652e656f539af9df897818e195827763bd9c3d585e57d8b7cca39b36cc2dc54acaa39569aba3a9e7ed473e4a96c9d2bd62297bdc513db5c16551167d98ecd64ac808aa8ad124b5e30a7cefa40fef7662da531884ded38bc42d9c2c2dc24825e0f4451580f2ad71d4467c0bc7ccee06bb144b755e57d9dbb62f292889064a73d383914436c9179c05b2a5a6ce7fe45bd3b79767cfc0991b7330567a8aedb580caea8f5fb320607d09ba998a49896f5b9c5e5b2df58e1fab4942e3f38eaac7e857e4e344c7cf750910feb4e036353175abc1f7a612354522e8664f776d838419169fa2deca48151fb381feb61a63a64d28f691642fca32fe5367a3645200f87c550b8557f35aa5ec298e8b23a663ffb42e23a9a78d0f2a41db8b3db508a4321ef26cb38080db43bd531f900889f3014e328c99b186ae56ba40295fc788e7520efb819b7f1ba7d7b7562c3c03fce59ca12fc6b45691137b2b09bbea9561b8c0e9a485fa3942b11b64404b19c28e9c67d165f2dd5e8fdd622b13b3a6a80010705e952a333e4cddab0b716e62ecff1e210241798bbe987d71d05477a60a9d925a07911efc719b798f60b524f464b8c4d0f916c4968fc4e9f70ae18395ea2c9d9ea65126420b0f62e2fed439bb2108a4725840ccab87eab2a788a94b719203f9706a996a18d7b0fc4a48f796316a3108bfc5d48fc3fb1152c6b58d817b10732ecb201fb7f57c198ab9fe08c4c3474b23464061c6657905c3667637e8be94a9551214b36fe832886a34876c38c2db0292cb9fb40423fb958e581fcf69930129de0f7f8bb1ef4e7606b252ea52fd5d88835717ac24b72f9f360a2150af36b7fa9841b1d9a42a821be7a930afa1a96894d9a51c1d09a14c957e9b39f70cb79b193372e74084857809e1cdb654143547d7f4f2524ccff4934b4ae5f60dde858cc89defbd0790e673343b4f5bd2bfc910cba38e8810a18c72ae19d65ce3ec5c56f7d3a48573155190a155d1c3e637732ec76bbe4fbe84e10a7b48b63d826cdaac29dcaf26bbee1a375023f6efa813e8e0dd49c68f00b23ecfb0bc2519cbf8b6709e8640836e90200201539ef7a3f9f68e397f009182250ac8d36f259a0cafdb0d7d98fcf4daa864342000001bcaa2874951aa6692d4a8a036662f2bb7e181a8a93de50eedcf39be5ac1408ea5f305539eb48c0427c0b5f1f99c0a6d726f1a4f2968025a0d45652265a86ae55f0bd64f17cc7ea3a8f12379905bb50549dafbe3e98451c5e91172420f04bbd6ee2ed81bf1c9e8398540e184c984d7c7f79e98d3df1398a61f035669baf098b5c084bb562bc30e5da6bf4651ed78f63db05574f70094f81cf3d99d92862e741b7fa54f67c0b3eff6b1a59b6b088f5b84bb7edaf71b2b35d41cd52b4269feafe96e141cf92acc357ea74341ec1142ff95ce16c831bc654397386592fae7f21dcfb7abe7687bc3be2bfb4764a6edc87845a520bf873a05b95aa19524d2a8350dda068c77ee9768c6d8d5039e233b67fdcdcb4d95a40935c648389238c1b87efa8f6a7891d2bab33a06b816ee5d65969996b74944c81864d711aae5bb817d158cf55f5f15be44a354cb3624b22434f627cb4d506a4f53c58b437d533fed923726fe6d76b32d2ec884d8aa8aa932ca5f7ae1c37b0e80c92e3fbdb3b1e962df8c3ffca511da3b6b94d2812c03743f71c075680394cd88471b2b6525b833a124d320d21da3b27120d9584a88f8a2f195c71c122ec89d10b6df273dacc13909906699df3ddd594e1cd896a068020e9dd9a0000000000079a100000000000406959d5b236e2a8b92574c55396f13921e709a680a6b649237ae941c227e0f259b11c5a1502e0d612d26c56b5eeea7fffdd1c789e723368856829f8fa26a1c4e20100207b7eb32b69a3f7bc36b6696c462213cf3109f46605dab1a7df9db5cc462ea5180000052c90e63c464e3db0f9026a6812f5c11dd4e6d9a15f557f41c2dcba5265c0637684a7777dbf275222d91a77a67d839354806f850e6022552f882ffd69971b087eae92665ed1105449b30bc4e5ff5c6f58c9e4eebe07595d541b805403d0e2d7608f063a6ba7b8c2965c3706bb4ca9e7f93c8675296f2b66fcd36f4bd3e21a9f0c775917530697eddd177b33bdff049e8c1fc25180edc783d04afac6ad432cc0946c46af7ed107527d29c2e64107d11a5dbada1b3202877aefa1208a7e9e02cf27bdee76d5c44ed520c083da9dff0110049ae0cd94d20093e4e585539d7668799e5c86fa4aa8dbf14f29a8497eaab4fe0a9a11ca384ae6e3e5745fd3894ec9308514f93ea8d9babad5da8260605937e4c9b4c68092061cc381defbcc9b5532be9113a1e05f3f779c512a0c9085b509b708200a2a8f73c96dd76ed6cce6d18b6b7d4642caf8d5de5ba7ea03ffa425e127efc2fe946d44f3273529abce2276ac02bd0054d10870848298f83fc47e9cf1f7541a81ade3dff49f6f28a093fc3d26d428cb6ddb1c0e1368c4518a888fb0dcb13b9cf16c76e57f99afd65aabb40e29dc6dc21f8ab109cf25ffa95081df40594c19466cf00b790073113d63d2b7a95d9e4401f75dbe09574e31747369b718806394a3822641fd7466d1e3c4f4f41c645cebd2f34cb183b62d46f2b607fb26593bb3280c4e1f6e23086e8d8ca9b7dffa0e5659c62cbcce8a462b6a938ab20ee93b29cf475be74a724d87cff3300585b65ac4b3ee7bdf6d69bcf302d268797b3d14ce4ac146f430981ed6113a534e206674c22373c9fddbacac6a462ee67e001da95885288f521108774ff9fba05bf5bc8e143ee06008bf033618e50fc11e9984a3205a67cce1f8fb01ae5f1207d2107e9d18bfce99b481ed077ed06be33de9a0b0d5838bfc5af39a9710bb6b8a50aefda143af5aafe57bba1277da299d12805f6215f7f59740ad75e0dae62e4bf310ce3396ac7b51e0241809da0de4eb32b7d327862ae1eba840b5691200716975135a63a7a5d8f9be4ac6d042c0fa79d2bda3f3a6a4de7adbfec945991aaaa0066575ac391dc9e9ac8fa28282578ac13d510c7e7e68a23eee6d15e18265f707c2a110b317b12cb92875c7bf4a00e8d57dc4648d6061be4e42a1087ce88fa0529ca0c5717a5b87414b6ec922dd36046fc42308eebf8d4f9d5b8581f2dc68dfb3385e1b525d009668c6de8dece8b2d8221dfc0f678930144b7869ac7325d3863fb3ae24ebef90824f9cb8fa7441acb65673e16f0930862d7cd89f432e567f24382bbbcefbd2920e6f715e2363fb657e3efc807c7c1a3452db67d801a7e9512a3201a950ab76d3966cc9c587eb681262146d5bf3d4fa2cd178df16e698c63df1d241bdeb1c72a0f1a9cfe3b0bef1f53370020b25b182e37b6d67631aaf2e968b13d99fcddf9eb287b3f0a0a1707f80c97ac7f776def9cd236bdd29e436b6154e5819ff2605233b2605be1cf6b0f4b5c92072e661b1997fc5c9ae3b1c5c598437a3c88118038e4d11f82c376640a38328d4d387dacaaf53c4ab96cbc5b4e732bb5caff66d06a08e3fd781ebe70ce785bf92d9779c864b03055ba3dd692970e59eb4d861b6bbca7cab9f00d971472466e31a953e5d6d2dc9c49338ba8f9603f5930ee862184923589c211845ceb26d80179ce77b68c8258a2dfb58bfcc16fa4f49ebd95bcb779784bec533d364f551e2e562d6ace28b96dff75f2bb73ad9eef075f73bf0a2f192148cd56022d29e98d0431cb4aee09e120f0bb0e89fb404415c9882cfdd83b42d92a62e82e9cc8445942a8cba5a92586e95fb4548c587b2091367783e1f47badbc84cd8018fdd19a3c3a431336502002076c8be27595e9e45c94059dd4e59d71c5c7fab550a87287cb31b82842ee3ec56000001bccb8c35d0da135b0727cbc9ce218e8e8dcbe151717ffdf6b4432204d80651d0e58a2ce1aac847d87f3bfc8bae0bce0f46d6145d0e792b03e3080bb66fc4ee9844e8b19b31fe68474ed3e95ae11a43e9a85e853275ffa97eb81d24332f06f647059a9a13f216305a38e4cede8161d60fd9049fb6faf0bd57d994c0ff4a69a450c797457597217e16cd23ab21f66d1f2da2797dfc6f28358b1887ccd82d4092be2987b0e5d7155580de654b6742ecd1cf6bf693dbb47ea7946b4e4c14113c43bf9d43f7d8863e6d130bea0dc47f1d410648ad0a69594e5b4af017ac202f58591bf0d22d56aa9f56012c1aea61bb69e21730c82cb4e9e5a219accbd3bb3568cd7f61b3f51e211f50255e26bc9f4460da7563ad4c0732880ee8af0dd0c4d3fbac1c60fbb0c2ed067d992856d883d7cd9f315815a1cd83b958fc9883c6a202b6f62fc421688e1a8346580e1f1769e0df8b12d9a4272ff9a8d8e0c0e43d169db06912cb53494802cebd8a892aa10b693058e2320cba3c4327afa274561fbef4d12e7b9d0bb7a8bb8653d43915933ae3cb9344bcf8358fae984d03e409abc34e5a3c06271d37e3278e93a01b61dccda9f8af92471ecaf850ec23d5afc2ec356c7306756ce495d7b23372c69fad1ef7280000000000079a10000000000040fbd3aeb811e5be740912d880810122504aaab687b73cfececfc456601dd58969d1c4d26cd6f95a41a06298b433de8d50220f9af7c30b67e9b89ce6935d4e9eb501002056eaad6d730178df580f92bcf71b759f61d6ccaafe90d0c1d0e2cea4198e625c0000052c46cb4b7c8d5609558a214376a62a005c2cb2328e42d944ae69c69258c700aed5bf770494b09c7bef5412f87565e9bf9e17dd44b02867ed9717c6a167dd23d317bad5f50d020091e9100ab78a3747f2801dc932e2d7d2316bca81c2ab83b8e1113eb819eb7f4ddb5a4583c0aa0d8ca594e5490fa9d098e8accc3b2fc840eb4141f6944ec72cba58b84d0332d778a5f8ae3525bdc2659fb94a47ddf982e8b5e0469ff5e65d6bc58b8867443d55b90d03fda6d382400c8d9abef07d7cbeb6ec2eb39866137b5c91ba4e5b13c062bd05f699f61bcbbc4f838cec77d0683ae42212b75d7801804baee542eb69a8754f964ca846f82705553172c2e00eb98143bc331e7cdf65bbf9b2ff5c64068e5b399cc1750fa99ee9a6ea9eafbeae8a8f5f6364057c7b55d52f2d477a1c67a5992e30f9069407c11c60e5728d784e759d9b3c538ac7481b3252d3f2cc89138f1b174e7300e2b491e00318a8f5c5c1db6c868b6b3d8bac9675a7698214398b4521e26dbaabe2d48da47241989eb06d881753eccecbecf7085d565bddcf12585b7c6fe86d44a12171fc0130fe7bff3b3fa674a6448b3807d06ff21d36029898506bf9631e990878510e4548636696e98609109b484dd6b99a306eb1958edbf41b5ae7acf674d76acd03f7a3514e9532c1a0f6d91322d752595a9268be065db871df51decab0d3ac4f51c33c7b3e6361a18ee57515310b7a880cfd85276a6844ebcced5c6784e6ce631e22b6979a14a094080978c954ff13e2ac9fe71993159921b25b458f9199f987b38f09a1ae1d98f0a89116eed84b69a9d2ccbbde5c4e82ffa045dd6d5721685f808dca5b6ed51e30626d81a5a402b6b6ceaf01da8045e8688771ccc38dc8d05ce59147fe0dea4fa31887f4634371c94a8c4efc0635af926f5b78cfde13484d7894969bfdb558de2aa82ce5c6476d5ef7ccf15cd1a432bb48a96e3dd68e1cf87d99ecafe5ff0b28bfff9736d063f999d37f9c69cf8f5ed3046ed171b7765bbf28477cf403e2fc6ea7c968009240040847b5ec812eaec6244f3c90f242da0cbc49e7c66dbfc62d8b426add66ec9cadabc1d74656673ff09049fb5b2acb55db368d7b3451d9791c1b954a780e207546e2fe9578575da3e50b0a746e978487dcb514be16e177fe76df17fcc4ff8cf16f2c717c4da9fbc031f86e87132ec4a6fa96e6da5817f581f5e28a0ba03bb9216e4a8c4701c0f3f0c92d1af3b60ce0b0442ca20e63d16a3269d87ac27643258f88b5724c464bf4e0b36e03ea3089c931ad6eaeb10c3aa303552c415c94d34e2e82873d2bc24995686c4456a4cd421fd73bbcbdc2488b27e858cce72464e88ea43375df1f2f343fef15473d0c8a3b882f29de52706500ca491ef026d469ba73a517d64b1a7971202ca1a01b32513f18a2c66b9890c39572c8a0fdbdf454dbbce2fd51dad915b8fd170e893d6ddf42170493ea7dab22317f879911bb2f6e8c62b3804526a4d477a036bfb45dca5c6aa7161f8a83e98a39e207e53e483ecd6f4e0ecc8a1cc894f257761572ef759fc36d22a86b9b8a51afb2b9f3e70641e1e5ca7568594c9329c8aec65ab815724fdc1d80142935f13c936a1efca8d635a3981ac446bf7c14f1b8284ddac683660f5167809eac0b2f86b7d16cdc297c23995c705116691c41b12a5ff9d0db43de746d95f8fcc1c77e26d798898c4472ae3799072681789b7da18c0a355dc7f0bd0c8b27a21a37e5ab7cb970970bb821f60f0a7b3a0b552586fd41d4111045b3bbc2c724b25d0b9cbe1a0040b310d178f0aa66c3872af4e06c46caf9b537224f44a8be1060d73c64d9191e88701d3e65fe873ea7f34f278650b92684b3f06eb3a0020020af4b785a171d9e4aac46f481f6123af90913ee4598025c0a82d80bfd6ce50978000001bc24e057102d720b38fd2d2a2b4a10c2f88db3536fbdf3c063409ee5a6026ff5bf315c99960317ea3b722b2aa9abec2a7b52872c6e14d4c7e06ed756cfecb69ce50068f208533352b94ab030319a2eb2be4aaeed939d9ff9a602b90102d36bccdca3e240d4443832a232098d8bd1e998179455703c9b495b84b09c4794f3168289e84b9240bc46a07d9413df7174dded86ad7a078901888b222b0b3bee68fd85fc3667edcb54ab4538f19d05055934292871cc8000bc430cbafee0de3812db55571c021f547cdb3aa160370b06b580fa17492ad49ba22cd181274595c40250caf2f256893d2d1cc7d1663bbfe6b54994c8b78e90486e32306b9b351ecd40e0e86538b71b9ec89e227420fe3fcc4f349772ff2882991fa2a94bf481ab5d03e8a649f86f40bb9576c62592ba54adb2b7170ded01b3cd8fbfec5f271dd814a7b36ffb76d7d6f36eff85d48d5dbb22feaed5c65d62dbb3cd4d60058ee266d0331248914c4d20ae0fbb92ecc401fc5d28e6206602b2a6d4bae4dfa87b5da00a4feb414d29f34a0a06ade04eb1fb60fe78956a9ab29fcaf55aa53d7c8ac4ba4ee34e20142e78406eaf234034a34d7ada7750d35af250e6f1dcb862680192770476776a7c5a4ab50431267be8b2094f260000000000079a1000000000004041f7aee81bb34ac276267bc1a965b7b515b0bb731872dd4eaf2a6e57db6203cd2abbdf78672883300bb61bbbd347240eadf1b0b37b8a0294912dd9e4fd6588f9010020b98d7d72a3bed97a661c0e1e5edb7d0408d5aec644f6e5978246534650d2f6590000052c4966a46e9893cb91a4a0df8f802c58fedf7a14787903b3748e8cba5f70abe47ca79fd1b3c04ad6b4039f453e844e969d900056e9dc51077b37b7d32c55ffa50b513b61ea8c24f62159cc8b729a4fa5d1b38fafe80817e18bfbbe3b2bb868118c45f1582537d8540e2c31d109f6855fa293a0fd8c4829bcea2c809cb297489117bae0572426346b96bab1512523fcd6ac2816854e663688e82bbc315a43826a710b17d1a55dc2eacf8a314e1f9420ac0e87c4259aa673f48b9764a89656211419eed65a0d22f66e3ef78a7b995325d106b9570b330d08d71f6be5566fd3bb929f3e152b501f393c3e8382750b7ffd780de5239a6996eed5fd556f539bbd343f4965ec33be5f14b60a43b92d96c6d7c41ba473624c08342d45b0370bb911461898be4783214df202faf1be0962d8da4cb217167a7455fb20764222e51c8464fd6ced8fea478817793207adcd8fff090d29547add62f8d014c1259fc0073954e196b05e8b112c484dd7b47e2958f81c7104ff022be6cec8f352ebbb0a746d4e1db80d6da1479d253630c5ad16658d1f688ed78334486202891908bad21f37f504391445fd65ef9017dbb72d1f385706503ea2e5a0a541f53547dc91f4249df2e5a09d293f7b7439e393dead2de1a0a1b23e3595efc14658bf3137d0b31ec44c17b176d13138f6d759fc60eb8e67432b60ff6c3f6dacef5c01292ec8018e38f64677a4f9718c7e235db72fd41b80e7977629b132b3a216e21ada2b6c30b01919dd9f064dbdb61e8d1f59fa1ce274e4e09c65618e6f166e4f5fd30615f8bfd2f430c01dc5a0eed14b4f7d58bf9d412492e5ae4742b1b7c88f0ef16d6bab4bf50715a2231ac6d5d8f5e871496d10f96ca8d21986180b586321e2a002787338d9d2e9afdf093939c3290ba9c7f516a12ba89901976ab74a6f6ca5bb14bbc678515b9994fc7222872beac1dd1134f31b6b19c47682646dec2e3fec3f0a38a9959e015daae009aae32c9d7f0c7e3353ba2ad811c3265af35deaef0c71e8146c657f6151bd3445c74c744bd2bfb7e9195d1a8149908316348588d4a34807551a0fdf99445538b35151d40b81e176b1d50dacaa6af4a06aa25f493fef5c999f34c5af8f547b758b58031268994a43d22bd701e1217cf82bd2593cddbe15750a1eb5c7b44879af2e7417c3c479419d70e142f30aad43b0d0ac9150630e017ae56d57aadcc657921a784834b0f4d0120374289129fd3494d874d93cab619a2be98c5b5abecd824bfca9959dac12e03a99ccf08177726f4d83d135961b67bbcadc674fae801886363959038d236069e2a58f203b263eb7d7fd5e324f0df7711867fe5f53e243bf61f09a8a9b7b85351f9fad8ae5e9ff37dbed91e2f7c10df1a0303187696ea50af4c4ce0761e6b31907be186e80a0574112a7d8c0c6238e32ffdbdcf5a12a3bbff97f4be169ddb16f7f03ea5e6abda77b9998b462e2d42d77f13e186255efb14c7006cd807aa69f2db81224fb35079803a8b58c64fda96a353a3d8c613ad3b2fb14ebc2e79ac7e002419b10d7ed620c5e2214f898f3909d3ee11f997d0d2fd5aab8781c0a11f5b76dfd6e3f49c223d94e367403a8be12d1b7dfab58f936825a4d23cf6de8b88f44a0937cc4568d05829d5ccdabd619bf1d6b94e4c75f2b0ccdb1bed8da40aa8fa372c6e728c98e28bd7fc484ef435e3621224f0481f9ed9bfeef2cceeef344fe99651afbc57a288aa8dfa10ac18fdcdb52c27fdf1a815bbbef5ec5fdf70a5265fa6898274a401d8864d0a0a0952d04d0e7bd743963c1d2f49bdb79c5270e50b38bde3f264d377ea72c1ff7d287952c617ac975fa466c5b80a4c3b8c0498a0a2afd6602c9d16802002040f1c5167f1a4ab574f496784f2fd6bbba5c9774ed971440502f6b5c3d03e135000001bc32450fca0f313f6fcadc9357c08f40ec055f0f2d3e0011e0b5ee5a9ec3b732bfeaa2261a4d8ec2eb23ec9961f51f36ab710ca9a36bd8bfba9d61ab4d9b34a3b5f3656ef5710ff6fcbd92d146acc9e19d0e7f0b6cb9639cbdc8a7edab03af776ea7a98e86c0b76ad9b635aa931490b5c02fe1a8a34b0b38dcb82d6b4bb191f735dc75fe77aa26c3efde7ad6e1e92e65de7d24710a952680f9fd3310195a8798bb9e559f284b627d33469152c42b873b4aef50fee0b56f068aace4cff7b61ae7f991d058765ed855b37e64ea3396e57fc6c964f17969f341c83c27d44dff195c609a029da7b2ef83aa14cce80d660a97ac525ee98965c71a9f83f9c2ba8bab7f93fd13b95be2b447f3aa1cd609b3f62d6d7239489357dc9df231df4bb69de1abcfd36a4cb8128662ff45c15dbc6fd589c729c08ff44f67d051522d773328bf50a29759fdb2860aca73ced6a03a7a62b944ed396f8fcc234e2ee8728bd3ef7228930ac679ede2d31bb6391a356e249baeeac97ebaab1af6f1f581161d110d31e29a733fb3fc173436119de7c89cd0f9fa9cc62079a6e9728777ba5dbab5e01ffba503b9312b5367cafd4c93f2f76ee5c14d134a12cef835d3f4370ef8547cdd42aab29de0794766b632662b953c0000000000079a1000000000004001635ecfc496c0e329284711aa5199a6960adc60ffaae6c7a452ca9756d99d10e7a5467dbcc57374eb970aff4d47ce66d93296378a2f1298f0f1c4b4ca1a6e9101002038b32e38215c0508f82dc4472ee05960c8cf3e5b86140a0e4c5d24ff343d1f6c0000052cef69e0b5cc989bbd7dc3baf5d9d9bbfb5db9219fc45a803e2877a08a99b763bedb9b57a9fdcca621b43d1b9e538ba6ee4425d29f43bbb617f816e55aa56b26521be3a060f19b17307d584a734b3cbfd9b35dca6383013796da62b030e3f0d29539fc7ebe5c21dc101b0f7f86fc51bc955cf7e2b63da64a51da0ae475c95e07417fd505fbfdf2548035bd6fdc9f0363f13f9c51af905c1f371af0b6f2c1d00548aa4f45a09e6fe572ec2f4deef9f40030ff77b1dd4cef87b906c749af57e420a615f2e6af9363474134180665b9f0d716a9f52b4203147b24e165dff2e92c9e773c3784a358755ec6a942a72e383659c6f953ee0d2500b9657a4f4e2c9731bc6a956617b0da9dcbe6a572464edd028fc6fb943652d19e323303fb22590b888e95d9e4475bc83e59faa485770820f2871a08ed3ae962acebf21c489a74df0970663c035bbf2b6306512b14c8ad423f3f807a8e574547b3bc1643ba1c6c188284e8b1c0a6ce9fc42fb2dc01d5127e9fb1a3e5652d85a837d2820997f0d4f49d40639a01962d6041725318c9630999ed953cf55546ca14e652fb5c28e32356eb87271d106942fd6692ebcc65c0869c7d56304c44d72697215af5c240d1e3a6fccae0dafd8a596c167b40bba54ea173fad78fda9c7cf8fcd87edeec2d58f2101bb3714a066d48c84140f57f928ed6d67111be4cf89e9c5b32906e28fd23516962e71416c148d04c637b02f7cd4b852f76599ff421330c5ed3c1d3a5c17657d6b3b2e840523905c7784407701f9f9e20552e8d88c589bdf551276f846ba5645a0768cf3ce39e69e83dd4d99ff85919f09cf89dd9aaa8c448a60a946625c9b1ecaac63c9f0b26f7c99ec9bb174922ecf1aed1dc15238d5a5253d27cf3279c5a22eb6fc4f0ee2a436b3ce1afbe72bcf9e258ddc024cfa0761a1963509dc4f591ac13a64796ea81d5b42c154680e48491f25b7fcf653ad90754440d73c7d5960fe182f53b73f483ae1678af5e8e29ffd82c4044c8b7fbc5a3dcbd3169ee8ea820802e86928df59b456fb7e60d5fbf97e5f5406c6e777c013431325535718edc2124c1ad3d56d50b0821996e4b75e6ee1648156514ac2f0484142d09d33d0d6b6283e7b93f36fcda63cd5cb8f1b76d9255c54b2b9b64bae237476722af0069ed06bbbdb289f2530c9bc1d5019aca5e25bab658545f09088982ffaf3a82dd85e89adf54d02c91624f8dec141118c85de1c4e9a3fc0c8b9aee07d2d3b74658b5cdf042783fa867543e0b94cb05136bf52bdf7c2bf112bf259d2d5442f8f6a293094b1e7222c0a3d2a81aa59117767bfd3c54b20c6075b607e22918323a23e3eda5af265ffed33b26073c672e673604dc58fd2134c28eda5d90bf183e296816e274f717451ca0a5517fd09f6961232dd10f0865605e7eeec00f56f2d17cabcc76867c691e2dc704daae77271171e6dc5c746b795761b8da79af23918df9a8fd90fc6da08f30441ad7c1c35acda827a31c39934e4b927798c236c78ea0136fbefb29c2facf3cd0c20e52072c52fbfda153b69a64083a407ea0ee9628666fd06c050722fa16f675f089cefd83bfcedc5b4508510586eee47a866351ce0fa70a7db523e78e874a91c3c302d365549630392a00ed5f0fb74fad83b5a4e9d011afe9999d0b331d1cdd0ee7a3a5d95823c056d265f5fd16a14a87a940ce10a5ec36cfbf81ea24779e670926b0fbfeb9a8c73138093a6e1021cf2a5029c1a4f4157c5ccd4c6bf1b7afe104ce4e9e95d56baebf58d1201a18d4e145dbfd6cbe63119c383360b1e424449b2bf5cb63185cfd1798e76361fe96bc3e593f6818e549c73de2466f044b39faf4d0620d950e3bb5d0de2150f7020020f838b379144214e28cd46b288032d7f73d1c2f5aba75852b3a0826aa3493b654000001bc686e57a004f35cca9357af5eacadcec79925bc51f81df7a525c3b9e9faf675646dc2ec0b5fbf7d8d7a96ac3e7aa4cdcd2e02029f85940680ec13db94861829f86bd01541406e36dc261746043107c91146812e020bcf9134185f5290135a6e0630c2b072ac399d3fd3c66139e2899736e49144bb2a2f9b0248a1e427334da674f38f4e025f40d548bc9eb6a36726cbb000529c62bd15aeb15557b55f394eb5e5da5dcf6004d0fc56853b3ac08844014894050392750087b7bc3760f993523f2150febfb906ff063fe361c55d009355b8c0a33a7ecfa7a383d47fede91c1d499ca2c9e880d670a242e081b3419a4dfd99168461e6e1e9ab73d8c3f39d28ee2a7ae02a6b110d459928713729af2ce0c839057cb297cc89f700191cdb473cf0e987f01e3f28fef14ad6e993fa29e8e64835515136752b57993b4673fec0c4672a22f846d096a143c3cc605a49aa79d26a9f5439a377ebbd37af709acca4528633cb940dba7956171ea1877727c18e01b4311ce451d29bf6f3f625b32023bcb1644e99511080ab285fc3f121d06a1a67cd5afe6ff8e500dda9931d234cfb29b235bb6728b7894f9d622a41a3e21f3b26c97b9d6abf7a7e128f72e779d64a85797c59ddbd1748bfa930291a55dea60000000000079a10000000000040cd1e016031871b8faaed1a3f3c141e8fdf06c919b4caa3bdb11514a44d9c98115b54c96a25ced7dc32c6e69803af10418b1e03a3ad0d09a5e896d65c37434898010020455974e021d8ac2e60b4a3cd290f71463ea52447a98e451eea6ce0fa8d940e7d0000052cc30219758c5f795118bc0914d9cca6a11153c65a0a3701f901a964e75fdfd9850887931b36534941311d6e90099763192370fba73a88a1f5ba222b61af4df0c679e2f679c6709da80da95182039d6e8f54a5f43173a1a83f2ee2b005fabb0a6fa3bdec43bbbdb70bce8a230e023758d2057de32b7e1100ec85bb24feae8e456c643504ef11131528e9914288713fbafb8ad590dc02269ebd9abab57fc03f7df0145fe069b217cb55175ee9c12070a7159405110cbec23e6f07d4e3a5e9a2e605e41f33be6e15ba6ec7816261d1424a615a98c188c4e9768d1b6b2744629399d8e2519a9a488342c942bb7d0bdb650ffd9d049322b8575e1ba9bc6af77fefce5a118c89a6d61075bed79e8413b926a234d89a97fa2a43e00b725fcb0fc98d67e1f197b5c1861090954fa9e505e280798aea91787302ef80211cfd5009c7318b8a7dfb9789e21cc528e5963b30eb51b66b3e4a59b0b0d3604006cbbb778e0559f225de14f26edda940321b0d3e34c05f6fcc4f5bf9d586ed746a6560306b670847eb7a05bfd55746b721631ab1479a8f474a135f8635dd995ba62d31105c2fc23519a19b62a851d3eefdcca2799e77c4cbbe0e0e2709f0289b9f12b006ba2634ab749ae4454afc885ce4ba3a2c2e500d31286ee6b26080605e124eece8e8eb3b986a6607212e6132fbd8435b3c366ffec4ad34f1496d2666e00a12984a246c442a57370f3f578359089afd9fee950efec08f0e94f2b93c5f694c3d245b60f7f133ebe2c4d4bc9f711847f8ffbb9885040c9abd40c75fdfa4cb878a3f073db04845ef5a6819722246dbd8cad160b680c583ed827fd1a18a2ac3290c5fe542259b0e8305ec5414f03a7d181ce8e2e7bc5fef850d89286987a399b98a95cfd327f2a802dc6f1db722f3fd4dbaef577273011f0159f87b10bbc41315f6f535f2664756cc5ceb554e8d130b71cc2fad0fd8db3bef4ea54d80172b37811ef89db16440fcb36cdf4299b804a1c1dec4f124532c2d536358332ef4c53c9a94121761984d49dc393cb28b74660c3fcc2fa548610b51e67442fb87b1716e98fa8688e8dc9f4db5b5b48dd66240a0821b8ac8ff6ce6f26c12176b98c6cc416c18a0fcd697b4ba9363324dc121cb372472ec92d86cbfe45a004714802ec8796f9a734e9af69c6eb3dea79b1f89b299a537f8375d8c33a2e84aaf32e884fa59ef02e1f637d02ee787d4e062fbe5e9b61ddb85659044dc9f1e98da3c7ac6caef5cfad4ea4ed82550c00659d589229ca28cf2cf7a25319c2b0cdec88c173542922bdf5fee73b47f26cb10923ef5e361ed7ef022967f888e9882290b2aee1b82c8d9ab3bb7a44cc4eb450296874398c1854d0adca8421024bbc4c0143e7b70188b413152df59410aaeb47e31641ad3b8d1e2f57b5feb9970f6ca483bf7e1ded3efab3dc66988249cb4b9c79f53b889ab22478dc7719c1da431a85d8c1748a9453c8d4f886b67d6f9050dcf7462516fe60383f43423bb808096ac1eb8ee4db0db245923e48e4298261a135b8a8b0af49faa148b2a84e83c696c95194180a134fc3fba538ff13758fa39c8fabed92237b6ce1855216975bdfaf797217114c3dd48e194807afe79c7afd06d567905f0603f48d314cb401c688f936dab0841bc24b914d1eb9a8ee1d10c7936f7dcd392c6d4d78935e7735651b6587fca1ae0ff0785afa84138d6cb2cd5c3e5b8505f1a313171f5521ef8710a2286dca07648df1f51bbd1876738f874db7f1750908d1bec88aec7ad9abe1108dee109d6171b542c20a644f0c18e82dfeaea10bcc738d71adc027334fe6c3e61dc08031a7a5f8fb40fc163f252b7c6ce6350843d0b50b506815e8a155084020020ed65a4f7433b94d7a774cd10c3c5e62144fa0a58bfc79004cfeead3e12199c00000001bc67c4767df06346be2c602ed9b8308034ead885713a1cfc5b1d4d2bd8d6a9a6182553401448635ba043cec395f6f2b55fc0497731736b7412521759bacbd3b8593ac4d3fd6ecab7eaa4babfd8571514bc148ada94d98d99f867af288ad76d31428292ec50b9a5380a3f92cd4a71d0e77e84954ddf0ea6cad92d7983b1cd0ac0a68f58c61fc0150af4be405a8b981b2375b4030cb292f18c11597aaf6c59d201f74d86a871f648f48dd74fa5d9fa2cdd86282338ea5953c018872a8cf75e11a53d266d0b4753dc3c82a4e0b56741a6c40a00a5bc4a2c60615ed2c6a8dd699957968dfdd84ab7cc8aed8cd847aea5f1e24889611199058a5358e2a548969636b432cca7a7041a8471c5454814c9be938c80d2a49be6d3dc59d091e345857e819b0628be6a83150d266a4738101e8da953d7ebfbec8627d6ae4862b530c49fc0cfab381efe6e272eb58f61be5e229547f75d416dc474c87dca4cd1c00845a79532fc7b4624fba7b8c4969fe7e0892b04e8bf5ad2a054f03f4022ab6c68d81ffe616d1fa768ef951ccafa4636d25a671a40a23c5a7fab050a7021a6e3b5794543cc1bfffb8cb9a22e2d46805f3950948cf8140ea89d941aedc07f5b843f6a8a3021658a05df3b461e648a96e311950000000000079a10000000000040692a6117a3c08351791fff921f322626e9b1ce2d396d1d1046900f209a95cb4fdf42dd17e1faea7c1f0720e73ddc539f773655fbae56d3725e3a27e4049c90b8010020d61ffe0677fc710595bdf74a39c00474f6fc6d10c41b203ef310e8293813ea530000052c26bf5e5910e9280b887a31268ae6346c3564757ad27964bfcf255e68cb8e540710b6532e90502b4a7ea692bee9f8ff797872e0db96c296eea9831df0a01603bdb71c7d8e2811c67c1c8c61f83c47192a0b9b9c020b69a2eb389e79de20d76df987a5df922c276c57a6d35c74c7583f5232ff4346f622031e0266b19e251439f293e40bc2408831101ee27dde13f5434f7193c4b43f5733f8fe75bb5a0a8806e8452a85877bca0b6bc5aaef47b96426caec6888f14475225f1dafa5a7864862ca164cdda91bbf8287a10d5281bbd7c9dffafb1810bb67d155ef16cbe4405d17a3d1dcf0f27fe1cebba67de9cd51acf42f643917b548f1daf2b368b1b55c191229e7ffac0cd84aa2861eaa15049c01b8a26d581f4e94fe741aeb03f8b1bfe7ab763a4fa69e3be2006e1760e36f2c7fa0607ce7595635947b4e61b1b69f8acfb3ba822a179aafe53e4f1cc93686cb54839580018946996df6748daaff6e87421d39eaa2031dbb503509de116fc22d220a98c9b3449df129461d6ea6d07b995cc58acfa55eeac8e05586c91ad193482052697a0bd1c89d0221620d7157515321f17ba88e995e5ed4c7965aa5fc6449ecaa28bb559f572439566ea4671801f1706ce448bde7615f033476fca1e58a6b4e01965bef2ae52986a53a23d5be2e0e6b73c11b4596c88f1f5a89eb69d77009def079a58941e420db29bfb2f49c0fb185727143f8ffc218df8daaf7a114963be32343f83d715568c3c70362b4792a10d19765d60c3340f7f22150260d706a705bde08019f315dd03be88eca52cc303701f7636410e44e37dda246f99f8861121e162d370445763ac8627d58a373647d3ef9de9b0d0c85815aff7b8402d493f592d1ad8b99ef7035a6542a45c2d9296bcfad4406cf966627119cbbf9e30bf0e11472f167a87a9aa2d736027940f632a4359fadc0e9e3541e970b13a4582bc5c8ee80812e7c4a90757f49646dcea991e862941659c081ae29344f0fbd984bfe872fcf42fa5b399bc3178aec3bb01cacdeb2ba166af3cd3b7f54eccf29e35007c4cd726981c9da347e0b1f684ae3146381e2d7bc25b5a2d282883de5afb6d3e0aad497cfd039b1eba8a74e7e79164a67942c349deacb789bb78e59285911e1120f3ebbd1e485acdcb7f9111fd9917e87834e85657885d2861c5dfa02fb61abb944b7cb630b76b89e0b84549d33365046e4e80097d14f6a25859a6d93c17400fe618120b0ef2d4b27488cfb1e598131ff67578055caa569ea371000efd4a899152a3b41e216c9d80372210cee9f1fa9ddd2051b044f20b95244cff26468880072035d4fc2cfbf725c12e732ac8847985c63ffc628f6b67eb119aedff3ceaefc2d4a3d584e5860986393fdca10a18d160d7e35f7fe8c407e59b7c87a345104feb6f5d903a802144937a91d03a375c1ad5147c9d9cca64a89cefbfeffe448bf77baffb01dad7a8cad902366a88e2ccff076d0bac51b7f6fe8016d1351f9cbc37bb55d402b739f7f31b99307e71323d5880b96ecbfce9f2efbcc6c6c0b7f698d1104b4dc7e48889bacde36cd298d83cb1137df274820b8d514c197cc0aeab0b49d471a152abd4bc477b327b97fcdaa8dd14d19c9e44f54fbdcb9d3e65d706f8eb1f784016cdd0119bcb31cb7889cbdd45d7a17dc434170fa5c27297f870573ce6a41b9c1c80c27c78067c3d4dc367842a1349f074b2eb5f296052f4f9403216c9ce2b55e3c8238b137104353e2417b35279e5728fcfbe8d2c8534bdf7c98b5a3d5f47e837d1e2f852f3ef067687958c97d0a05ce27d45954836bc5d1ff197f618cff52b262f9b8c672f1c30698f3b41887cf402466c08cb8d6ed63c74772dff2c77f020020ef9e509d3a4da9ee8c8bc7716453c6fb2cd8c10a6dee9e3dfbf870cf86583737000001bcf3542a0c79b9882132a676cf76b86a7c2c8ae3deb023fafa86c6fc4a9fff576e7fbab8561025a2b9f67311c88b6c0e1b4bf4ac8e6eb858ea3a075f1ba7aab4aa487840e66810440f36c973dd3030613581b62cbe25dc74f7992a9acfb732537233cae189c497d330a05abb0d0d29cd92edfc50acfd4c9ab3a50000fed71c8e0650e92f813bf457e579602a477f7783681473366bb4668d0072150119c024b507f09f7aa119f21b8da27ca697baf16da603852a877e047733daaa5b93a72b1e76bf8f187737dd4d7adc36a3eeea74c1b9df3d5f4ebd6aa06acda2456649f991ac5676eba3d02aa4befa69f9530c304d9e0869d8bd288397269c1e247fd50c2d6e2dea9bcd85bedcc88c2878cce4829d2eb816848289fe42baba1756b08b1159b125d541a4bb1b802acddfbfb8b230dca5808374898a6703749b5e07c87b2dcec1fe189e93d2f84116bc3b73fe37aff8d8cebd1a4e4347df62d05306c8fbb1368aa5e4ff209f0ee676de45b6339239ba7b559f46e8fdf7f5aca45c9fdfbefbf3bcddcfdf9d84a13d9b07fe62b013569655d77cdd51ad287286ef78567a41234e10885b5e91717cd2ac53b3256956bb9931af581ac95655fbfb4d762d228c3e4ab49d35387d95f5ab6e77b456b20000000000079a100000000000403ed6ba1e8f87bbd13eeccbe28a55b1a52f9a1cd2440fe89f76a31c8ea09b6d9c2a9f954fbea9f854c7734646eea9b65697992487eeeb8db39ceb118dc205e23e010020abcbefaa23ebd99d2c81828e7e24d4b33daf409a5c24b5d3559611378df0ee5f0000052c2266bd9bd537b02a533f676488bf9b968261ed5a082308f5dd005b5f7f6d738192551fb5a88814b59e2244d03d38cfa0c099f752097ac533233265303fa1334ceb2871b8f1a5b8dd12f3e4535afbd8743d66ef042a75ef109e9b022ca68cf3482c216d9db954e08d7ad48c16da07f77c88ec0c84f3b5ebdcad6e0f3547af48a5e7a0337bb173bbb4a52df4d5a17160f67a2e4d26659c8bba8b59d6ace82535ac5082e784e5ff0ab3c030b335955bfb970a9f90069fa394c102d84f4643212a8d6e2380c8ee56c329c1e617224393ddfa29c2b2362f3d2c40e0588852f0066094af5bbe1c6f5b203ab4e1e7a4227e228a54c1cce79a0ad261a726994bcbb6eae71c9c925684d92e8ebc406301ee393e30fd25848d45ba9af5729f5eb8abb620cf77b801a077b64b7135448177ba4dda71f3db54901587f816a89f4c38ed901489de7c6904657b355200bb629d8fee6e1f4306d90846cd551ba1602a9b4dc03d22cdb847429bf66915544cf0b5a449cd5174cdeee4cf8a2335103e62dd537e4262db98033cd2ece77b3a526a0408d787daa5c2498017b1171952996ceac7636502ac99018cdd5cc000108f7e1e2159c9a42dc957f465927130099194f19d5093ed14c0658f675bd0149eeb302feae99778202e8ea15832051811d1f2fde6d332098ce45937b4e8e2f65bf40eb493417b17d5e9686cbbb069fdf5aa94887e49fa3ffff77894ea5692d27145b1541915c9b21fc000ed54bbd1b5501b1364c38f53f33b73a3343ca8ea7ae7cc962c99334dde43e0a59c755f813781d7d3d81ecfa1cc2ac02a7ffddb670ad1dcb951bca4c645335cab512ae7b5972ceabc595ae08d793473b4282b59a3acce8a1c2b754490d50bb48f2d8f2c11f62d0ed530b3b8bd7043a43e5af0c6e2fd3e429252a2fb821d2e049435d7170f4cf3c268b999efaa1683b4ab478c6695b5a691c7e6f66d87c0310ec44cc2012301b664e477801d307e8a8771e0847ca19e4bbf74786adb69b9825da1c6b24beb68b9471877d1c21fecbb757a451fc4237aa4bcb6447b43ba8609669a0ada8bb1cac6fdbd928873628635ee315b81707df6ca8669b2c8b89f5db1179196633d11b76d8e046ab97386ba480c7e6d33921a1820073ef9711455c91175050fcdcaf70933e12166de4c8c40ccb91997cef9665a079365599bf1705c8ba4dd69dde9fc779350d769a33526b111d7e978d7d15a66bc67827c96c2cb18232d38e6dedb3a277b6a149882ca438699c8de19de810c01baab38e0b42f881b4e8ece55f8850475cae7fdb9867b13784f17663f81588eb79a78ae8a980899a503f08c2f7cde444df66fcbcd00420ad77530e81ffcb69847f75a0db57d287d4b51cfbbe53bd24255b7a4efbb495b0f085b8732907c29341204484308174986b6dda48b3a8880faf0d583cdfd26cc5179a68b28e359ec5c628811f3cb4f36cbc8f151e6d0aadc41cc0e3f4374304820e6557953c7714a36b775e34f70af20aab21d0a9e030d7444a89be96670084e2b6e4c1c1fbceadddc26e2aedac47e0824525792954ccd05dd822a1378c2cda34082bfd6ae95b33c0bcde05b431fceaff256f78f313144234d4fa30a2c243440eb53898a46df3bc4713f3c358f510c71268586511a83c8d8886037f2290903ec912e295720b356a19fc1ecdac75d7ff823bc72cd1ef7b4fc00fd8bd3d1533e38fc5caad5fff2d9d3b8b6f98e8e8af229a27c3bdbaa6e422315231f818d18bd8ca240793b63d8123769a25f409f3d971e9d1d00bad064cb39ee1c4c8de0467e12221bbc340e1415089923008144f186026d1ed768b3f153a72393ad18578f398ff48d91dfa29ada643fc73a57665d0200203d1cae042d806a4215ac264a8fc30264762b4fcf2cbef8a853b9ca2f9fcde510000001bce31cf69eab74f5705a451f39947a84c3b1284ad581a8ebbc2de12603e06c584b3cf1a84a4089e2fc2a8c554aba315c249e281288c2d5bd6946199d1c8d982bca4bdaf0c971d6191bd92fb58dba783adbd061708ca8cb02785acb7674c7095c4a190b88edc4cd80d04ca07bde30fc7e93596488c38dcd1e4a6e5854e7e422c5080e243f942f7eb40224a394391cf1914b2e3426b05ac1d68bed828121f5b920ddd497525a7536d90cb97d24ec58e67d8e8495a8f35235f11e97b490aad38c92dc3ef66e581ade3ee7c0480998a19cd3b4561adb75ebfe14b7c3522eca3707ea9c33c0280cc82ed583541f83a4f224be5fc80315526fb1df7f191e7180c45037fc004c01889824028a0437f99fe53412ec9d5121496eee99c16b6f0900aa033e330955ba8c1f808d88637456f470492aa14978c5cb55c877a26c4a6357511a63d2a9511fb8c5793abb9cc8cae598a947d8b48b32a22f5349b14b386c7959ebb3ab54659abca2dad2e7e8c49b0b565c0e5ad82ec5014024c6cb24dae2eaee68caebc5a01e49d1a4b99c0e7f94060549660df23296996cf2388d182ab76e253aa755b671a2055fcb87e1acb7eeb7384e5743d51238f9724857c1f551667b9d2ed5f712ceb2e31fd7b8ecfaea088d0000000000079a100000000000401a5c5cc3c9fbfeb3ceef16930993daa21fd88ba9af7bf7a5ea16189e1217da55ac0bb79d55ea9101fb976df54190c90028015c961996d2c1c53a668a9e5d8e3e010020d0fbf52f0abb63c39ef7a960225df91ce7dca965fbb4a4e7f17dbbc4d6654a1f0000052ca97ec8ce081539ba35ec47a83277a39c06615813b8d308c2a001e87f09e8b0182cc734ef8d52db104aca08de01b2da80ee072337ba0ad308d2bff2f469788cda482b892165d12cf66e999208e5e94220a47728f969a3791be5fa3ba6d82ec90387505a52fff32f0ff704e63307c715bf5a6980661eb17289235175fd39b1fe89e61e759378a877f9c5b40eb7412e0c13e6eb426558197a60d95be97926bf8e3c4f23bf6c42c637496b6b1c3b92c145497f0b29983846b6c191a46d9a5f52686b891e9d566edc45868da47a2bc4480e7f11f2697a056d7ec40c5db70f63385382c412e01b4df41a5ea5f3e9c50b4a22e6f42c548c640d0ddcf68c9c6ac712f8fd446524eabb9b5fb1fc4a260b450a1365fbe4d92eb9a64c38d114b4175ecc941cb3f7581a3b1d30b2513d5e2556fa1a3332db2d34d78fcbd0c6076ab6b349d7642f59e8256e4672b51f12e979907b41a0ddfd53e227ac3afef86cc075e7731003d9d1f28eea53dbe5b9ac8a9c44d96627ce97a9581687f54aa5fb507ca03793f6fec5586d73f9dda6bb5cf707184da7dc5692d05b1d122ab87b5ae2a3e59d74ea59507bfa8a7941f0ba5bbd6d617895036430eade91372b92b178e23ffc039e1164d4aa5b51f9c65406dbf0de1275fd03620e251c53ddea58b191dd21ebd083c32480b32b73c97f8efb4ce7953bbda3d45021311c5a84a55cafc6dfddb5237cb4cb94b95987f4c527ad653debe408345709bb2d175d83f42b9d288014f4556cf9439e15f5bd55cb9af831e29e9a2f27e070ba1e7886eba48597ac395d8a80142eabadfabcd6d3743e8c58461b02e7f17ca18d290c348b28acd5d3ae65cd8a0e5f7cec1f2871c76017711e0014a661d106ccb4ee899eb4e79a619d0c515d1e4b20a35e4613da15044b8a0ecb1c27144dfd6cfde70ce571e01a737859761a3b442aabaf52847f1d4078d62e49edb9ac6e5ca8443fd8755cedef8c88065adc0d186d24be1b98ecaf85e4d5245ecba812c03b2bd70b0759f1271d7f28b609b549088e92646c9719474bb3759f6a537206085323e3b33641076453ad626f33cf7bccd4ffc9131e2f76c4e715a08e5b667ae2b47cc9d96150b4dd28e4453a39563ece4a8e5605bc5033d018c4a94a74077db95b5aad863b9384b257dedbb6b1f6dd66de68cf7309729008a1b92c5476579a996f83ed65d7128def4316807d60c7303c5cee7417c64027288426e11e4648563bd664350759057bcbbbbc8486ac0213ebb2038034cc62ed4e6439d8a17aaa5ce06d917d6572e5c579d89fe902565d2b5c9b9b3e59fcba412429a7e4f27ada118c2b2157c3279d91ed6a3623d6020b0f923d03e325600b7cce590d178570262c94439d6809e0d4ce7ef386991bb0b9a776b072416bd4b619eb366cfdb787fc2f756fb8830f5cf678fb2ad823f827d08f9ccf6a2c46c201b9b17830498ab2a62295054d8a74933f4f2c85792d7cae9c71d53a6dd1f6c7c732f422cc9004a38e119e21c0317f73b36cb66da452d116beb3313b1fc1d441d788433c68bf4999d4aedddda5579fac8d2bea092a6df902b66a1d4bd2d623a5646e6dd71b2afc54499fc0bfa1c3509c9fa26867dd2842bc57949cc184aebf2ec914d240227f881fbe987d5dac11042b44c27662f6d6cc1546ef22524b201485def25360b65097974a73356763503b7ab7c9f10a0e9086017df2b3142f6e9360dd0d3fd13d6d2b1eea83d17538040b3409e4fb2b31c4a6e485cbe984901bdf440315ba32c1eb5164557000e747b6de7216b70ae343ee8fd7cf7bf5ce4a3b85906fc0e122f1a97c9e8b230899ec39d914f16c2e75daf8582e9e760c9af8e6eacfcd1700d5976f995e02002062e5e1c8eca473f41aa11e63d660881cc45aff6d1f2a982ad77e73e6b21ea20a000001bcb6a623fc5e6484aab3a005886b80cf07bb8086a408a9d979881f19de660090fdb6e1083cdaf79207770c61c11d721c4da63e06b29d1ce4b74966f06b056f4d175a62cdd7975cf378adff929501b23b415bbfd9ac652bdc63083851704871380fb0c764f99a2e1eec95d3570cf6eea92c16b3cd3f9d5b4e0831f14295975e3a4e1110659fe85f542b8029db310ca51f26041ebad2d55eeed4ea55c7c1bb6df18c998d5d0d45b1b5ffaac5595cbf265bff7ed9227b11e2b04fdc1a125ea004badc74f49a7aab2b903203141127d3d9476e2d6a252050e15d8747ccc79149e2982bc23e52a5586edc2a60c61f2be41423b9a52732424b64e8f221e8d9bfa1719868d31c43cdf5392b662903adb7ac569b03988871192f55dc8e86879b584b25db1503b1b79a81fdb9fd4688e3f865630e2d330db558fa29cbf76a9157b4d69a560b5020d8b1e6f51844d80e609b62a77e52dc0ad752a3ad5a1f3d7d0cefe86b9950dc8d3512cb3166840e89846edb26a066d1c40f44550c50bfce5693eacce0ad79ba737a3b045dcd51b29e7f7e812ee01b15eb3f5918a1b4658229682f9bb730483736b7a0da60d2d83d2f7816dd3020994f8d1a94817bfa6dc38e82a39e2e051d7a4693ee2ff148677d92b3360000000000079a1000000000004021f5cd9c50f82acc4f46244f6595f5d8b3b4cdac9667d94a712f23e245056c1e8192b2c5b9eeb55e8f693a3ed6f7b5ec900b70efe5793a653b27c3eb23013e79010020d28b8610bec69481c0f7e4653a036b32af8ac8211fb35266df085ca86179b06c0000052cae01a2a73393e75bb03a32614823064bfc6d62663902441a3af89e3c76906fc69817bcfe55c3788cc18df92f1b4ff91396504ed29c5a7403ca7ee5bdf11e8496eccbd80abb6a1cb1ead2fbd80f20bd4f6670ef321a74cff1e7069898d9a75f1dcf033a38af56775670073ed4b89344832d0d91947245b488e41801d688c131d20b37b95af34a1a0db83a99dc0c00a85d241b8f1f624fa8dbb871a0ad1b47682d723a911fd554c8e6be863c7b9844bc3b196745cdbbf25910b0064762b23c5d5a6d0495b83c55036cca7d75d09253117559c215bef69e1410d2448c9ba0fda792415b5c3912f275ee6bcc1b4c8ad38cba19ba23df38564059948f6cfe91e37d72b575c738101a4ebcea9a51707047f337c20e428a1f3700b3d38a9122c0c12fb6fdcdbd71fbf6528f0f8f0521a90f99137ad8ea8d44c9bdb96abdd923bc4a04546332ff1ffad8d942bc81e293d9ffc3dcbea3f58885b013ebcfd97b52de26010c5aae5b7897d1204fb744211a990f95a1d20dd426b430de1676189776ed92a84b9d42fb6767ffdb45bc49c90e6f2f64a9706eefe9e9a759415cf77ab4fc9d5cd46eec4b5b4cad8808939c7097de74ccdff1f807927bae8a1bbaadb0f972fd4e9efb17106e6c850bc9462d4765d3f37e8c89f07ddefd3b0f48a25d37442a60fbab3c8a10b7ae49b3105c6fdcd1e9e175564edc8cdf3f22abaf6a2f2da32165f89584e95b76d0c1353e169bcec070d303da1d0d04f6f5eb0f422f6826200f92e312a0e9b5e017ffd443e91e8962d358815936cd7cc02ef71e30a85d061ccbb7661ef56b90701cc24df3fca2329a7559ee80e3556cf0e5f8d698f37b3cd311863b1885f1d1f8e1cc8531344df2634322f0f3adb49ddd33ddb6fcdc0db8967e930c52c15ee58bcf4df570953c88af627f4fa37bfb8284c623cd26e4a9b4ff4650a3134ba0787502209675c08081a3c83b4b5a5ddcc07d03632a1b2d704f481c4bc914c6b5df6633b7a2c2c9602948f907067a3ab0b188c74035962822839cad8ff411aad5d8206857ffc5d0ecca6c127ca5b031fe201ab8cd2ec23b7011a7168974ca62c2d26b61b5f2e49b46fbfbbc8727372f97d28459ea98bc9a943a10d580b05079c3881578649bdea04f3290d965ec33831e10bc8a4c9ed7cb6930230f3a28ba185b66a75a8d32946fff94fa0e6edda6bf5347b7f03fabde28e981e43f3ee56822cb25f3c75655844a9b21e06390c07399969374cb823221ea8e2e6128af5bdc72cd69f182caaa5c3c30a9d5ec8e2821789b14c58589bef3874e18bb030604bc72d5ca1f53c0ea342b4d2e62cf1806fcfe6077ff7981880f9c1287ce0b30f5737590fb7bd3d2ac9d414f4277a557783a237c01e14129013b841b122bcbf1508c819b4b976922603cd3d5972e656db384c2618bfde3e317c54a78852aa27e4f7dd7e9024be3b6f004cdd257574dcda35eaff78b89ee732f5874ffa37f73b74394106b6aa3652c8be509aec2e34231e1eca36ae222ad4d926e6b8788da89a781947e3d297cb8f3a94c056416ee46d0aa6a82ef4f144942df381bc67b7696ea880b0dd6c8a35d299974261899ea4e791d8b5a10151959a01bf731eee023f835508a39bda4ed552992c0fedce6d6721f84ebb3705e2297f792094ef8cb5381f8625d5815f2b6459b0888ce4e3970142a334abf5c76322f8fef0e8a540d9292cc596c4a5f398618aacbfb6a821f26841f6089b4ef25ff36f699914220e8a195b3daf1adb7a25f8405a81ad5afe946fbbab46f88ff02e2b912b0b2b27dc9097a67c12c9c330d8cd42ab70f14de0b47c5c6169d3a8a99bc8889f1d80c937b6f09a7dbfa436a825823edeedf02d9a4e0020020ddeebdbe4740111e1939de1ec35eb0d53fc5ca5b2b06b37ce6e55b8478b53444000001bcf0dc967f437a68f77cc91c97c2699685c1ef6cfc22302bc02f4f3caacfab0a4dcbfb96b8738d483377b677f714f8d700330efc9daec9ee28e5c63c74feb4bbe231fb98c585f9db8090c6e49c2165c1caed930a39ae9ac24d3c2b367284cfa41c503492266a95715e6698833e6e52211a74d20a3c7a384ae6d37365ba4419fbcc219b166d630179afcd7971a7b48f85380c293807b115f279d658410c5cda8f0ca3ace8933f7c24c6344efd407fc03fc5d3e1425782bc74cd0eacb3014f2a41cef3cb095508f5f6ef2efc20a1c8c87d24158fc46505fcb1e68db47c8a2dc4523d5b58c43b9d04ddc6b578f23ae4b701bd2ab1e1cb70aabaa3c2c45ba3c54cf0b665d632be74a85a35fcbb917315f7434d12c386b423c5b54c0a1394b1b45bbcaa8bd839f630aa3c7977fe0e0bc2a4879622d2e2af56bce90be2a8908befbba483b0b346ed5a6c6bd64f2f6f1953ab553e8881afe30b8359a426ab293945011dcfa72b7fac7cf3ae5bf8cd4057b4d8dfce3eaf5d62f72f5a4ce0a2987c7f9fb26a5aa9aa67195af59d8bd3aae420fe5a6aff0de216159da608b994d9bbfdb2a5fd59b637603f78f0e5723df7afa2b6a08d66afaf0c9dcbb31b18cf5206a9ff43053345d577e7e90dd0983d50fe0000000000079a10000000000040bbaf8a6875bd5a584673365473b1b9ab950cc4e8ea1c4d893d570b6cda798acababd393f1f2c257b82f444651b9b74e5e26d622136db0465e0c579c5cb31281f010020c690429b7000bc1e8a04140fba1dda19eda58755ec859cf172651dcd8c3561030000052c2a05c570c3947d5fa89790f5f4e14bc7be17efe6e78bec24c125f9ed23118df9f6e431ca542f98e68046d716b92434943161211e4fb8f2c32189c8a38df62a9639d3a917c642761c05567baf1a446d8481feef369be552eaed9427f340d8068550b696e9ed85115ae569c600bb15ded18ee0f0501d90ef22a55607ab6180557f760c811ccf6ac887287372e26914e0e90459281935e2b2c0b2cba6ae0ef2e41e4cb0e79fd39c38220d87982aa7e2afc8983dcd50edc57a6d5cc52395acb04d618e22e96c28e6b387ecf9d7450d90970021337211d26dd7275c457f941f3cc20d31f66a40394489f04c4200c974bb46c0221ed022c7c1dc6e1825642029c7f1152edbd461f4903d7f1423e746623b9dd553052c508bfdf0b3d3a9aee7917a5cf27485cbfadd89fbb183b4cf352447856b00f2abf8651c929ccfc67bf16a4476d490f7fa367f46b9c0dbd6467c215c1fdb5cb3b835cea7fc64afbfd6db10baf81af2c69d3d0d7eb583bb6d5aecd56cefe4c39313afdb2498577a1acbeb1c73dbf3725b372e3df1c6e63c830b47ab02d98d6aaa519b5b3c8bb7fea1ad91764ca3b675ad908edced9737463a371c238ae15994567f3cd97db914df7a57b82ad3ebbfeb3c24a49c603e4ff6672fdb11b068afe9846de39fa69955757654240aa25d8a683074d42292580da65104e2e4ce305fbae96e3af825c4b3f7e055b78126d854fb0131ca44c18e6556c77740c9497ff0989bdc99c405285b8f3fdc67f6e5ce78bd1bd8316df2c6f1499d884d6cbd22b7450c04f95376d087a5ab4ddc81029c2c8e34445cb00940f44252d7e07c8a745954924f7b7198b7cf668967743564a9e4631645369d6cb9e4efbc3d176266dc8a0ddc1085e045353523a7af9aa3462c3113634ab7c3c588e3495a63cd4ef514a3399f74cf20ff6309060c1b168324e25b35319f435493a1d662b9f179ce3c1dd0a4ecd87879756151f150cdb1d2f867a060cb75faa346e6abeb19b6ad3ce1d8407da817b7b76e150b31481d8ee2f0d216caf875e8944609f92bdf4091ce1e5504e4cc6500ee8e8fe42d6e806c7e3861ff88c1149bdf65bdbcb72321d8892b4ba7028c2ce2880789c86fbe9452a1878837a27f3eafd919addddf5b153209db40971eeb7328953882ef6d1ba26d62b0bbc5bde1d6529ff3cd3e2bc2f7fb74e676210fd3766c72283561f27ff027aff2485fc00e2447407e9d34c94df7665c322655afa721f8ef296cf4eec0a2d8d0f3edf397c0d8bff9ae28a878af2271cede9da5f07d5d0354c67d41152bb1a40a289a8db13dbb7b25e3187ded59e7413fc647b1aa68c5f7a7cbe3e55241e2ccbcaba070a52936c360672ba5eada1a29a1b057d07c93b9588bed4cf5882bb44c50813e837588917dbdc518b1cd389b3d36494047f96020e16ef06d9a2c9c6bd52eb861f8b9b575433a681a61d55e7bd77f4e1d05ca8a1bed51dfd8d0029862ec00959cabbbfa5390e974b39ee09beb1635500939d0c87f268db701c65312bdc1bc19b59f7cf8ef94dbce12fd91812857f398354385cdbe8ea6d1d4f219ca18ff83b548945bfd7693f94621821ce13fb71949365495b7fed2508db0837f6f72060aff225e92e515d7ba44dd3e1a415ecb59903541687fca1d0266636ca13844a16010d4401a2e75c2ba7dd33bcf4338797ab4b1159396e67bd3367682c53760a217b1b76e2223538de1dc6e6c777864f03ffcbe6347102428057920536d7dcb0e3ce5bb10829674735c71cffa05b5630e8cd18cb3daf25badc9bd43849aff8c2afb22bee142fe4ef2c277d8a19dfe047db6c70d6efb51dd92e94acb70cfd1b993c3849ca4a4a5051f679f0253f285e28c02002012a3c03a70e4f70ff403f618f9226ba51dff227e1a17ebbff0859b81b193854d000001bcd6843d44eaf0dee99557badadf4a51e7c3469aae63f4f3ce9b152852d8f03b1acd7baf9d0f59c14454bed0f5950ce7c618ed4fd98448a0dcbc6933d9d6b5b5525ad537d035a03b1dc3eab151db3f96945bdeb2b935c1d2e9cc040c4a9729c341216b1fe01fc948de2865063ab3cfccba6643fe0c0b3680aad15b29ba98f660ac85ecf695ab6ffc7501064990d5061f6020b8e591a8fba6c33f5ec9129436e3fc43e55e8caabd8dee3ba1f8e4c8c832fb9c510e8d7bb7c9fc3af75b702eb4f386de050afbba4cfe0b3b1313464911e716c55dd609c7108aa005910b234fcf1dfe09a50597c86267907719be4aebc159eebd580e7632bd692f24dd954c7c19b5b17872955a298c1df8e2c79989597e6af237dc125b23996873f618db88e023e3866506f79cc29b5551d1b2cfa40b52ff940d216fe9942fbef98b63dd9b9d424f440b24ece3a2491132c556a76a1116dacff594aaf2b93af7acd7147ab60be3552323001ac53f734496066ef85eb76d94a0fa3bffdea589784f9b647e71026c75965bb773774c838f86e86e297e851dfda0f890643ec7fd07b44b7c5c44c7a34c9f0949404e30b42829d11ff7da465d02535d66a0cd87d80fdab1e0fad8aa08129ab5b2be4f591979e2e7977f620000000000079a10000000000040aaeb596a10d44d97dc25094726381fded1e6b23ae500499e47d78cd29ad4d0c4998ee09b0484f51ffde6dd858b6a3b7a9241d7ffbcadc6dcdd636f705c35e8140100205ed1fecfdcea789efc4b8928a1215744b317f7073e7a2ef689f26e62004acc080000052ce202a5cc6ede72a6ab3e8144612686804c002d2c480a1e8fa47841049e7e95b75a3ec1c60ee074b5c60b6324e88d8efd1e1585ff8d32cf40a43a91d489a5f8a359e60d1555c2c0a859e6f1fb3c42717442bb7c2c0f5eabcef52f524461c23dd405dfa70df6feccc4b4e236d410de68c05105cd71cb72c8eae79fa6d3aa07c613ec6c139188d36c9325133f7146051ce0d94fe32295291965575bc8c3d63da228ca486127151ad3d2c6b3c2b5cf4a9d9c0b18824b4fad825d5c38ee0452069926bf3d2ccfb5c5987080bfb2981a9a207cf57a959332acef37a0452e8cc53c3b6d1b25baf20058d7d9a51753a59d441bed3b6910b64420bdde403d544c7e4cba59b1ed61e4cc4515bd059090b4ddb15458117cc2e8587fc2f7a76709bae4c53d48d7930f0069c9adac64395fa512d54556ddc1e6f2d178f33f8cb6b9e3be3e82e71aaeab16c78c5cd57a1289d686e314fdbf270294e93be7a5c66a3df52478a0b7cdaf73ea28805b31ac09bc30d4ad0ea037142ab8f73b50827b8d42bd850ead1a6f886bf81eacb26974610e0d0742b3b66bc66b2cbe31d9ae5a0d30d9e03e351617258ba6ada95e100bd723a8131112b14c794adc1193dcdd602b879febe978e1f09453ed18082fbf4131cf601dd947782e37ac739b53904f0d8596d5a17eff94842582fb63f87eeed72d9eb9937d3da9000cc7f3a9144d25f11160d6b0140eeafc4cdd097debc36ebecc177ac921fcd2f1a4a03028c9d37dd4ce684833ef85cded2bba3c0b33a2c32829f7d19e0eba79fcb64eaebc3f9361c74cefafd03173b1ad7a01f0e0452fe09a8834549252eff85fffa84e895baab4297c0cfddc6c2dd796b560bb3fcb90917c457a4671549c2deeaea04bdad8569e48e3eb204bfda3fc5dafdfdfbf7e93daeaaf00ba0bd5515fe932f3ee0de84584ef28c9b4ae3e5a86e7cf2a7cbef8299a14282adc5c7bc2e98633dc6337c2da66430bef4b96df8b74a95a594b238f6fa243e8fcd325528ec649280ca60c938172d25201c55590315c341f99279c73480ac23ae8de60675fed78d7a7e8d9f032995af138724d19d7c3682a1e16492e9b6b03872c352dd6b9a46812f4dc8f7e3b895d61e6b19aacd9d9174406ad3f86e56f29762eeafdf6c6f18813e415d647398315f9dc50abab42a3605f58f8d7eb9d4e835bbbb156a978f367ff8e8a012a53020ad8a07d6fdb316dda8da0fd5da63fe05fd6bfc0b3f23af5706163a3c7f22d1f7029e6b3863ae6084499e8eab40c9b426ca3c5f090daf8b592f81dcc5580f6bd123eee327fa0e80369fb0777d8f35e40dfc4674f03c0a234d827f0a374fd46c78e0da3b9e69b1caa244a81c3c11a9c7f7d4435d9fb395672f044680ac0ea4e421ce01cafb92816321684681f68efa080d497dff271155c2b8a9f0a5cbb55a824ed15a770e7a00a99251716b6ce426b736b04737305a82a1b65dbd33b130ea9d7a4f84d5b7251c41fe385b30aa5c5f8a881e1efc5f23ae0a8254597e9e31f18e8ca2f46b4e2115a1aa8c1ab15f50004569348d83e8b0e04c568e6d6a23361eacf5979a654a336b46f1c4f443ac785cb5d477a979049698d025e20d9cdc0ed70ccb6ec9df60c1e6c7e8f64cc1b3190dc83e82283f1df71eb408469acb141f648fdd0b7be78d7060c8409a59abafc948e4780e7532fc44d0d0566ae1ae374925477ebce8f34f00fa04df38d00562d19f6307e7550b632eca006283b9e0c9e1e8b48c3a5a2a523b326501f057803968221cfe80a9ef82427dcaf0b3f7140170af163be6656292749b96347400b201a9fcddde7a2be26bae7ca1448e3229e053583d0fb74b5cfe6ed55abf04f3cd3cfc746e684c993af020020f55c86e4226dfbdea66985d2f598261dd97d114b886a9298f142a3c82dd35d25000001bc128b5d8feef6f0a31afd8bfd0d9682d50d5e2766e4dc81986be9351efaca472d8e21521e32c106aca769fc638fef9067bce5dbb3e9e47ac37fceb47d70598f8f5047500f9ff9e5f78118795f4da66e3fa30094506099303a4e2bdd4fe1f3f27dbf0cca3b37d39435783407ba7e5afa3bf6a6bdb2d9fc01f799649fcdc94e19eb91c30d9aacd72e2dd56f500df271b024b3254170f0a941e80bdc41f31567e04343651716221af835eeee7736868a8c5dd6641b9c73cdf8905e40254ca17b79227264e689a514c3ac79ef40d98a20baecf477d416cca88711b31acf1c29ff3e5353027ac4819d0983cae9fee1a65e183f3861f2f9a72c4e9a0f8c5620678da78972082465c44e65f91a4667318e4fd5d84294cdd025f650cbee22871eb05aef915d455a747d37202a6d74e6de8b2ce88ac8fc8571382bbf86c1cfa388cc722910d6015730b8e385a653f0708da8e786b55201a3797e0bdc69552ccde13f99c080626dc444fd3735529d90a1c15ef07d97c16fdf99f7964759e96b1b650d3cdd7f8a1df6f7682caaa365a8d047304cd9c5411b1bd7250e0b3c28af1ca8fc29906c1d9bb58373a2b2c4330413725ddc44607f7d2f2ad2fe2cade3e8dcdbae35eeb8b55e508af82145a27e3153e20000000000079a1000000000004049c0ea75ab7f7fae75914c1c5c8b9fddf91c129ea5e563165d8718a27ec3841b11392d6a884e858dc2f254ef968dc34f85894176c5ab9979550037b1ff0f366e01002016f9a5d381a3451bb22e8f4033a87a00833d3aa24d40efb530a868f9d1eed2330000052cfb5566133baad1e650bd88544bcffaa531b8fd19781dab25520d4e4b992a1d156205a4f73a5af0892b70e7665a09b3814f6fbda3584f170657f1bbeb755c5701368e9d9e1a4b43c188395f5e96d0838aa92583d849de851d9596e106454fba9680c68c361387df651339b18e32eea5009262aacf77d13b3686e032fa7fdb54d475b7d73339b73d6d514d12f4e57fb5b0ca912b989acb67d865957afc8397ea363bddc6f7a64cbcb44ac0195b1a74c2722c2bb34aa6bf23857b86042eefb5428340675519c3952cc230f1b65937132d098420605ee935dd661baad73de488cc206dee18b295601405ebfe9de76b3754da9fa425925bada37f98eb60a35f8fdfb13e3af61eeb1f28c151b81fc89a6f42c22ba04553ab55d0e5310e95b113059a9db171c76528e20a8656d8f42ad224ef7f9d2a73c3fbd36d17170fb46c42729aaac02f13529871adcc89c9dc2b448013d17591ab130abda3ca0b3b10d9f8d067d2f7bd8e3dde44a72e8de221c6f8fcd5a18fc12e3f66baa81ddde5b3f546f9efe60991c7c1f209b199bc109e45a16d87cb1cc66d2d49d9a49592d4bb072e948af5795beaac708fbc1ea8022f2afd52b4df2583e5d2e1095b0898f0154e9710758b5ff07d81e7fc7d85dbd296ff67d8177119bb9167507f82a828d566bb33f1cc785b2276db9e230a3cd3ef76ac90093bf1da13e5b7850815c4948191e08986c90bbc520745f048e48e5cf781e6080484a6c81aa52e3483fe376b476c8b23266767c3c83268717dfeda297b29cc50a7cf18494668a898a12c2fc26e1c96620d43fc996a122eccee71ebc6ab623d22946c74302c865c22fbe8e4e3bcdcb89db3dfec0875df9c94bf965368ce9b2ad1477bf398860cf352c84ad3b63cca4692c2ea8e814e903cd370c7ef39ad26e335bdac02d2853ed24e344142d5192263655c0690dcca471eac7159a5df0a2a35f3f539ffe04a7631ddc763ea25f3047e8c2351d5ee1eaa57ab13a7d9ae8ba60c56269b4b8202568c5e9a849c23887439666950b03dc172d76db512dddb5e7362766920b9781f9b5233b16a4a50f65c520da6f0c5e7f21afdb1a777fba0a0bc6303d94f110866aca89566aed5192563998e8e630468681f744bb97af517c4458ea2bf50e54103d44601ff8a5e01dd851a84bf24930cca19d7cab56a404fe92143b1b8c0729e3094f3fea0009c1694d792bcdc4a03c88e9f196fd0182a045db530cd33520f77c348d7255cc245bee3845bae2bdb3979dbc0336abe9449c9c9c23e709f75f346615cb2bdef5837f8eadb59f3441c390440648dbf7098be32a1e464b048a6925a717d9741ee2c61d9aefeca0271bbc7e5840168b85a370d073586d406cfa8c1dd1a9c63d4817fab90132f693bb633e65530b18f82eee77c8ac31dd212d592016036b870421909eab2917c0efc2f976aa302bfa676489af7625f1e678b9f501e330a8d1fd62a01c545347df01d179a94f477f3646c0d37d07c8ebfdfa3677390a9fa4d8599635977cd159e26a1cd3fb4a61afa77164d079ffcabe9aaf0d1f2e81f5cbb89be323af7f94835c175a76d522111556d400ea31e1386a11be4efdca32a280643c81c21f4ced635b88380b44a1bfb02b640c08402451da23086ff3380cba02202b6048316a48b3ccbdd26007f944250b1c007e053404c03f0d10c15c2dfc9a98891beb962ce57b1d23164ab10c32bc05098e285a527bc089b33ea01e07818373862b1c5950abecac357804b76c1e94ab246fd4b718a8ba6b7a2194a97de6938b7408391909ae4b4bd21dd6421ff4ddccaba100862e66b08802372927c8afc372f719519d86d0cd6b755614033b9d1581e8047df526424596b02002044da1aa6edeb54c7115ed0926e5108fbd718f1d5cff84a88df5b8257b50e3c5a000001bcd1ece0eee7c45df831a8fb72b6c677bb84762ed4b72e39d1227f243f8cbe51c94cefec6a9e0bf997c30b8a6e1dc7cfbf2bbb04287d30d2fd670445b895f804ebd5f2ffeb3b1ca4a1aedd34dd63e9f6a5e87f950ca501c4ffd3a91caeccffaa06ee66f5e25962b223b18e3ff3577703edf98548131d07ed87e25531604913e5c625eabb748d98d54b8130674792798a80826240bf4733772c105b917f33a6219fc1086ecc9efd1fe338b03f54fec98683804b38c7f0f81618c2e61bef45cca338948abf3fc56c3cb5d9409037871899205452aed719a788792b32a52a13bd173a31b8e950589c4ffe4cda9ebf4603cc4f2396c66c314d5e436c07f81eee89a5cf270f66692c4b160b5e7b7ed01cba8f895149b1cbe26ef0ed4da46a8922620607b6923c9807690f89a1025f6fe5f6f2dc1d5c267778506c115e679a4371b1f7e3cf148effe4570c8e6329b93b3872e357269db7dd0af9452483b1156e18970b25bb379c47a96be9c373e5e5e11479d5835e10b7e4d38e392b11bbd108fe866a29dde409b4d97482a053e5d57eec4c0e5b226840ba44a1b5049adbcb2595061b52bf650fbfe51e655abbf4e273e4adb8f8e5b8d0f850c4eecdd66d728ab503a949f6705f5c2d0ca9660d1974850000000000079a1000000000004083e1cb321776d5e06a3191d6c822b6ac05aabe9eb4e05da2ca9409648fb140aa516dac776674e21642da7887241f3a52bb396be1f3d52560e4d9adbebf9edd80010020f1c31c1857da445b937d9050b33eb9c0486f4c0f4af97c3b2a7725c007f561760000052ccf2c4c55e386ad5a1b908287b7889e73abb588e2e3e2b4797a6fcac89c7c8ec22417570707b418058b5f4b630164a2e6227a9742d456b89c62e3b5754383a4fd6f7b696cbeeef87bdac14b84bda560fb1883f981b9560a2164a43532f03f12023c4c01b637f189ba0b1f04bdadc69e5f7638d2cb9aedc3a4b5eae76d4d0a57d584d203c6a3a9d7132a11281d03a54563306a902a6180030f4022e43ec151153d6cce5455b4efa21101fa605a1e6d025c8c47b009a1fa0ec4f889007b49ea4568a55f6aad9ccac131589ba472f3a0ea2a53e34a78e43c8759ef3d6874890c44f47fd21de8608fa65ee3cbec8ab924513967bba7dccba236b631eb8b4c65787c14f955412934f26db5a9a2283f6423f479ce0c79c1d9b34768d6c2ba6402be54c021acb63c8ac9460768d7ad109a23f1b11f3e73284a5258e2d651312c59a99f762b2ff9c5de5082203a721390da617383aadb52698d1683ffd0209f50737ab0d6c644b5f86d6e3614022e87dbdd184d30acf552f164bc4d3767e9a4c1d20f2840a46da6f2072397f0336166ab3a68e18558224d7ebbbd6a91d29848053c17aa36e8f43fd9df7c7eff0872bd5870b948558fe0afeb134a8185a6b58fe2c78ea37e96ecb2458accf2c7695be260de27d8449a6f331d9dfd6cae5d738f4faf71ec4ea0c57a9a7c09c2b9d92fdaadcfcd8cff2d067c7fdb34456dd8266e0f29efdcc5dca8202090c3a89d81ae79ed27d386dc5a986b431ec22f41bb87ede831bf4c5f0fae097f855b999d9c3e3881255138163b867f9b19f7799baaf5b7a0290008fc36c07e938c8c6064c0d0a740368411ec73e5cec7ac255bb114bb6cd2aeeb78d9b32745221e1a274fa0bb8fdd7d29a7bae1298f231b8dead771a905bcf211a61e273c529aa56d24e2e17afde1da90ea415fc8560ca6e0ff0886059565618aa896d0798a5e8c1bd62ec4f4355ea8133b7a2586482d9e4e933f360fde6f0995b429b93dee5bb0c128cc4bc017b202ee36ef0ab77b78395c24c33f2682a3dccaa59004f7a9897dbc19d4f34dcbff74826cd7dfa73f3b441c1528483c5e1478d2cce63ac7c93d9ca9265a1dc52435e47004f318f937b45a8f6a0185e56778a7a6fc823c79b453acd4412ed5dfb84585ec43d8555750b6581efb4caa90f29c98ea593807e0a16ae89778d54f8e1514afa7ec0f6f9c0da3134be167b6f7c9f2497c53b0b67a054095aa05e962a4e583032ce6c7496c1779c2237823db2a7f7c7d7c114cbf3ce10047c6ba6ea9731043a1d1d01c74599ede89d3996cc3ad005db8085b1de11f357e45acd801402a3b30d5c1b39b80ef933f40a2c3d37bee74ec0f65a62cde00da9bd2ccebb9a500aff9b96bf789d90fbfcfd552177120e744fa7bebeeda75faedef249e729da9656ca73a57092a8d7b82a98c043eb0f0ee20f4444b776be838a24ef696411e9e7bdd9a3db7286aab33c7d1442877f64843b17f1700ee223a9218eb93f78706dee0da410c73017089ce54bc5c71bf0b85f48bc4d8299d35a11fe31a043d879ed5f6a6ee07d7703282de449d45571ccc998c8b432981b910c8224a9a1fdbe038e1363bf8f1918847064d5960fa29e31a0701dad896fede92642e56c451e51371aae7f4b7935829b75ac1a1fa9261926a051faa02b78f470b2d8dffc96b99aa29aa49841fde4b215209b78307c05aac7a734bbdf2dbdf9bda7143e1b6b7cd13de9ba3532532205da2d656b37bb492b66c12dbdb3b51c878248b11859011fde0e1abb7193a75b6bda2b0c6963951b665bcfa053e03862c2051e3065bb839222548c790bc0ec8d739e5af2792be783b269222a86b7b53d7f1dff3e452d7dd0ff3b09f1d58980200204314aa91bbc1837151f53c17e98e3687da26dfa1b4c7b3b0a91d10a5e790ae2d000001bc1ffc041e9b6dfcc0ba1b88bfcbb19f5b7b64e60faa6abff4c26da5dd4bd4c34d69cbe34d70b7fe3e2d29efc8026dded97ca58326561e571ba0e3d5463599e159dd495ff1da76e8792c65ef08edb2e451c44e7d75178343d68b7c29898915b09d37cc6e6ea70b8b7de0fcddc470e18664c573ec1b43c4aaa16a016c2652fce0b5f7b772103fdb5a3651ac0bb2528947ea0bd14b1da143318de983d4b750895bc1227126088b6a13a99fa13cfa322d490a67505f8905e6cbc14f9286195399489226cad15c0e0bdd1af4a47855563efede582992488eef5a81135e31b0ea686ba81d575435875efb2cb6040d183862e4a6cfc48be6f107d4ebe40cf9b44106a3b42d68bf54a5a1426dbdfc93633cf07cc42325181982a4962c50237bff8d3f3590abf492df75d4b293bd08ddd5a8d6da59e59ac57e73ccc7e8511f396bc010c176be6fa35ba17245f8e7bfd6b532c7b24a4f4b0a44af547c81b66aebcecfd9934ad5e539573418ae89e7c53856722f705bd5cfe92893c01fb317a6bddb9c45226ffb9e5211bcb129dc5f70bb204c83791c8bf7127b7e084d147ec6456e601ca2f674fd157713cdf3b06559da0239ef61057a1424478db631b581b9e8c7bdda4f0a119ee5df361a082102e2ce540000000000079a100000000000405349adc6152a4e9a6870190ccc3d381ba5827352f66c2d53650a83e904fbbf681bfef28286c54ce8c53918fc8b57e48591fbe405d79ec137badf1556a9550fc5010020647aedc95c55a69246a120eb491d5dd8d5438b7ff0dfa6253a4dffe56074d5030000052c9d4d1e9e4a0e66f21f03dd5b4b94549fe33c2e85efcd7186ebb8014c8cab785efcfc3e5474350f96e2336c7ec427a52946002be77d30612eaff4e44c3c553ca7af0fab3153e02c48509f99f270f0b4f015059ae6404aa418fe20b04142c4d18c4fa64e897f28b32f21500ea6e2c11ce293a9f9d457d9229c2c22835a515fda880e739fba5e88b01ead0df330cddc7387b7022203f8b36df0220f54e050fbbd170550ac22ddc1dab8d70e36b19f127a72566278fe71613e176d1357f86d05c9ce7d3b13fbf9cb1800ee9a00074b0b684c42d3eb208dfecaf589c6e7a09e5f27bd71f67c8fec193b17ac6419aa4bb6fb556ad76cd681fc91e9245c29dfc902392bac5bda37580dbf2550eb9d0266994535bc2d02861f8d7e0ca7f276e9fd5f3f3eaebd19304e36d043b35418b7b1f1a4b715d422319641847ce60ef500d40b975a46f9c63e4269492b72d3e6bce4be7ee81587d7928e252834b0d25fd4a3a05c965658f606a1148a258bee9d37442e2cdb0b9b9c39a67fc37d140fd3a813ba89cfa30fe9c9cd9913cdf3b62c38f0ea2bf9aae5d322502d9920ed0a05f6a3a78d5425d8c8a318cba280fc03f7d8cc2c7cb66d63d67d06c7889ad1e31b73684aa95c74143eaad1db80bfea5f6f2a653ea38635ed369bada85136fa879dc68278a19cc10ed4535eb0a18f47d3c14ea608fd3244223179bbb7ad124fdfae5bc1228bdd86e9f6842fd5ec676193fc0aa78e1cb19251ddb11f0ad0b70a80e0b558ab15bb7b74bd853eb5af8a4675fc158ed59f0d809c28e7a751064d52571da230d02249ce0daa39dce13b29eb3022fde777092d4cc2cd3a92ecd7ce66cc0c6e49a26c71906d1b75809927fc4b09838a8d398d6ae92ce5f5a2cc78b7a7b403f137a7ecc2e9e1ac96efebdd651b302833c523db74c75d939f15bafb5bb9044f407ac8070b565b95a487ce1f72e2c1095cd2ff370153ca5088a08c55a4edf51dd6cba3aa7f6b9fd7893297e1051a67d3b88540a11b487a0d4f1c01b2bb78ab3e5587ba18d701521e3156f62b5f1166b263cbc8fce81569c07af120147762b7dca9f67280862b1904dac7d20f09448db9018f9eac4a47526f2f095321c0c0afbdc22c5d2a3051b58372bf1562025fff10e106eb07844f083db2dd953d1ea06c7829d795bf345bf8a4b0ea71073c6a193091e8f4246e4f85e5115dde94da8d0e2b5d2dd7f9ece672313c617ebb34cb93f8ad68ec9738e11bb1a96a03f5274552109a90e42cf4e457f6e72aab82ca84115d4fb14817d3274daac90a11ff93ab900d1fde9fcca79c47a015d4e21c3913461d3db6724b15d1f169c7da8a47ed00307f1b2be5b587f6aaef1312ee8167b412b522be8769c7b326b77f0f227f9434d6be8d850759e3a8b35bc7b0a33935ff5af1e9448ee5f400df8f4e8c88c3aa0bb08121f5f54b259ef31f4a0fc729017ced56485e44104e5ac781788ba5361628a37b0da80f6816d0cf1152cca05268da7c2221ebaac2fc0b559e76ef354f0cda50e714d96f4f6c5f946e1b6a4678ed268e77ef18ad9d4f20d22fc8de1085199cb6f54f66fd9ab4c10c73529be4c327e6c9d6322968dcf6ee0ad480cba402074d734bbbf3a7b4735ae85473d9c3ebdc99caf57ac7636e9b73ca25a652e05879149671457538b3bd0a2c4ea9f00a47b2342148e9af3a2757388f16391c62ae3e7d069649e2aa5eeeedb13e4acdd88ace1da5cb1765bda0019d5ecf14409606048e7dd9976be6400f3a73c5c412649b6e730260be3b0a1f3c5da0bfb8e90554965e9335b6288285e481ddc462fa519807482d788f4e64cd325314b348019f7c79c1a9334d189e5164a0fb1a0cbc8effcb8425fe68020020987e25ec8333d8189b9532597d7cceee1e64dd381c113e6b116fa5cb0f4ca502000001bca903ee0219323034dbf496b27a3092dad256e95484f7048630ad68406b56a8114fc4eb1777d0ef9949718fc0841bc2f713c578a61c82d94aac165e5dc1d2da8619bd00146ab09f8dbc50afadff35b50f3a0d4b58c3088f4eb4310902749332d90b6cc70474e44738c7bd05ebae7325bf38783547f820ec5788c86504321565050e81a188b7841129f564229d0ef44b2b4846cf4685b58d641300f4f28822c93e06ec3426364854151219f4e7d978014e31375f8e5b6b6b098477361c14d52620f0b5bf828d3d69b848a4015b7dae9c02b8bca43d0aa723f6f7d0904d7e8cceec21c09b1232680d07ab6f83db26187e05b4a4c0fa1656fdbc581859738303ee814c623e9dbebb3b3fd1e250064b09916d778a11511cbee7448fe069d88bc11a8f07a45206ac6167a32c3a7fea6942ad387eb98f3f664caffb873bbfe1626827c2c0db4e6ac3ae4a6ad43f973370e332111d853a5d3e2759383ffca435b189dca7c977c4f193656db608ac30cbc0eae33897b37414a790d24b4d32a537a2b422109caada5268ea51cde16c0074c7e42408ec68a729ad3f35a118567edcc8152d434e2210692764a02a5f04d68d8e9404f07426c7da1f1ea7f576894b92c3240cd8132c1e6c543c255d09400b270000000000079a1000000000004087af7510013fad301089ab3b63a3a2c2b783c47ff9618d7de24eff71e5bd78e79f346bdeee3632237c0b27bf8f3bae3b4142fa2ffffa52e65914092ea4128e9a0100201bdfa455b6c696a41ba0ccffaa242dbd1306ba1d0c042deec0b3390ab18605330000052c6948042fbc02e46dbaadf6d08bf94e35ea74a28708693717e19df5301ec83cfd462f3c9b2b07e93651d8ccbe0f9ce834bb640c51eb9833a6f050b63fd736681bc090842d35de5051e5525aad76dbb0b057af269eaa0ed68b253b068401bda94f0abb0e33ba4849c28db79ab0f1d3b36c8f65d4d02db429bac9772d0fcd25c205d9dd65d4d09ba347c53783589bb52136a4a7370d1a4a6ed4ce9216ed01e1ee009794421481c359d932d89bcb965eb0e673d3a84c7dfb3735d2b60eeb934edaec9c5fc425110c78f6d8081b41ee84f36bad75c3c682e02a10c50bf174e67fe5300be1c4ea6056f602e25eafab6ce08db0892dc3b67862ed691e6c1ad80fe130e2a20bf8c9e35bce852d28304fadd42845a4deb6bd4181b0992f6493d6f12d28cfd0c565446033fdfaced5d4eb1ee302ff9f0107b23776241843ac9be63792425270561afc2251b9d6e85ba0ca3c682800e1102433c05cb9656d8d9401d62924b05ba111323a77b5f53ea2df4143782bfd441325a519382c287d7941dd6255c29179bb9ae940e74645b455595093fd1b1d981a2eafc7f2bc2275963a11deafa12317097d9860f8a134f9dee2cadc9932de5cd431b72a2bbc00c7677adebec327a08e0dfefc03cad70162ffb265f450527e67d38032862cdc5eb573220e2d5212645b4d0eeeed39bce080021bcdd452bae0b58eb21460f7aeb6e68e19c229357d4d76ab0d0f77f665ec90bf22d42b6da759531467c70a4f52960185ec180c55a60115f0a303f390036e7c9fda5fc18b2116f93c942d2af64e554ff29f2f2e99a08868890b6bb2c5f7747ba4447397eeb95c7c7b3a038b6a69fc9b19220fe294d91d878c2c0bc031bf611fe00d0b94277c50e76212016c0eb9b436e4f34d3f4a509d398c7cd6b67d16b633f8d24cefbc13a98c0adea40e7e74ed10c4a5a82fb5db147e7138391d0adf8a1d504293c6d2fba6e9df261cd75e12b1db0f1572d7ac32fbd4cb57174a149870c25cc450b35720b00291ba67e09cdebb3a81fd0e16eae62788622115aeae5b1c5632740833df8afc08d474192a25d03dca7d403a37b8c1b8a096dfd85e8f31109928e1b1e48f0426ed56f9976d04fcecf7daa92f2648ac5b8aabf3609a21b10c761e98201e39695061f7c998922f8f3e5eca5c5b22edd2bb2edb6efee453dcfb6c0022400582eae138e79b24c84cae2986681530250882507864a5d11a932707a8adf711a0c261b9a46b2432e2fe290ba619f0762efc1f7ed251c10988fe445a54a699ee6d96ba353e8967d3427796ae9928fc18c5e095632f0d1f683fc1de83dc49a2eee9e91d8c56c536304bc6fd12596c454ad33b5b8785c1030bad517ce01d17d911570990efcd21c81182dd2d3050e09617eefb708f125ca153f648c39898cc416d2b5b58fc556fef8572c588e254eccd821efc32bc8b14945b3ac7b4eb8897e2b77cdaeb604820f3bbefa0ac42ad0b31c28418e5a77aa506cb73b2dd774dcdcfdc2d0a53683cf3b1421ef616c256bd5c678c1496ee8a484cafbf16cd1a4ccf93d1b5e358ce698e61341abf48f798c42eb7b9b9bc72512a73f2350121ed6cc3e4b14ac423ca4b1a60495991e353252e142fd8eb2b69657ccd1cf0a00608350d43c00aa81253dbce62ee5f91b4ae9816f7874b2d3a20681b9fa1ed7fc66dd8f9f57774b8f982a2fccfd54ee649e0eac9f66abbbcb80340c3a20d2f49624b3f2d03e92f5b54f3f78c87a1ea01f0794c5096dc46404e0aafbd1a7049f5a40969e60090e1166648bff5b8771824b8e333394419914b8d570b196417e8413e0fb29efa19a6b6ae8a44d28e5149bbb9abdeba0ebb995a26148fc7eb722cf1de628d4d5d1d02002088b0acfce36fd6ee611e028d245c2bd38b1c2d6a9dee78c04b7be88ca6e76b24000001bcc3573cc086fcbd11b4b9eafcf7665b55bc755bfcc670ed36405cf540c64fc19ac6313df2560752bee4e5a3c9ec9a294e3757e24a214a8254a5380f6fd85e283ff966b41257f32f53ea382a6b3652578313c7d62e105aaed2362b941c178f4608e2e3354f73598960c3cdccb53c623ff8390e51005205b3e5c035c4304b8bd5e33c8d1d8a9ad9bffcba5717348c93f6fcf7b34976824f5b3a977645cceb053fb0608d45ffd1e8f81825c7b14101070ede63c432400152f694af4ea463ca124b76c3e91322a5e7a0032828062b3c499a45515ed925cfe61b8cb758d14df0dc81f3bf6ba28f82a4cc23866c1cc2d4c074e6f6bbeb559a6a6bcb85167bbb0beb0de48eb4a23edd750905f94ede882d05798f2448a6c35fedc488a237771cc716ba353dcb27da9562d8726df056a94286ee41a93d43b4d99441e45a1c7d85b9bf31a9b243607b2f8946ba8a6383207d82036b95f8aa1bcc642a5318c8770ff44af1b280b7a4db2f9adc44c38b34d5f9b1d8bfbc5a2749ca55ec22fea3fa4cfe1c30aea1e2feaff50989b132b99c325a5bd44b90a5a930eb2e94624f698f8f482dd9d567fa716c1737bb06517089e339ecf4490a5805a4ae3bee8fded52789cd7cbf40e24056d376ad73d5cca4c1cd0000000000079a100000000000400e761fb937cca9876b2bf19cb29b7b33f214c5c27c42de1cc97c35035edad83176823015c63c4ac18d73a3829998e46675c324f5bd11cdcadc8d4b9dc216eb6c0100203aac524c8eb519781943827535224b7125f5e2381913a316cefa2571c345a34f0000052c289a1de69b253d73fd5b20b2414b10c3d316760450c26ecc5b5d5ab54edc5636bb75a6d059051f6095c42e796cd04b140c9ae01f9a4f06213d3755382d3d6adbc767958aefb599da50d7cd017c893ad6ea97da1df6eeeb96ed6ab2f1d7430e6a914df9f76320c03604c29277e3d528eaf30b830a2b4bf163691bcd1e47de856799a6baf3cb18c64822c683236fa32a6ed906ca5e790593650b76f53e071e0338467f7972ccdaf30123152477b3c5d2e146c27b49ae4b8ae879d4cf39e7217a2928ad949a46586fae7bc4d288c2b017ed2006a125fb987db7b414459071fb80682d614bcfbc74269064da63f99027e6e6ab9115292991efd85a684bb0ce55e665280e9e4bddecbb18642653a4be34b67486f51fd627b85c41b9af127ff29a7d4b3a95d6926f32cfd439cf571c4d9286148445ff26312b8569ec5102ac96ab0419b8709322b41c77a1d264fd7f2a7d9e9991ac9d5994d398c34e02e111b8130ea27ef8f0a8e09ea12563b78761b9a10c01588abc26dcbe6d8f4c22a860b71fac902eb5be2c7d7cd369c35707cdbe275a1fa6b676d8cd222c28b43294287604d3aac313799f540c2f4c3ed85be6bff7762105a2653affcbf2b5597ae2222167034de26354cdee94a979543cc8154575080dfc0f1846da6b3828b0dd76a84f1751105875ebb8407c4a905263689ef7a8219edffb708b5561bf1e53a851257e925f5678901ffb5c814c68e64a50798b0901cd4ea3e17f17d0df70edbd6de67c30e4c59cc6e598869bc2228202e153c56bb81a1a6ab31890bf9765e11f553ffc8093a6d4c4aa8aee7e9a0bd763180f90f07946f6bd6190e1ea025a5aaa97e39360f39fd4a9ff4fe4e30d582f6c89f7ffe85da41af506cc8a733e17a453580e1a6030f750a56006463cec1881ae3eda38f5011e9488fc9a7143b3244f75e061389e2430887c983e533a82ef91e9a61cbd2c7ca16d1de0376bf8e4b49c3ff8b7eb0c63274435912d9d4da411974bda2bcbec7fec7fd083e0829cd37caf6f057b33d7cff264c3e0a7f745861f365ff1197cd988c2fd53f13e46565fb54d24142e1159d1bc7da7246afa8c5e1b11abdd3ca02e7d67b40475d7d13c57c4a74fc18cfb21fc17e6b7f3d56cf691c3a81db2bcacc0b1834a174fb92245d4d6bac140a519598886c1a44814984a70adec910bc0d77802a98f0cd826b369f326d0f1f85efe3b7b610cc644fbf53707ea5aff8de7f14d71c07a20eca4cd221a57667d0bd4509b4f781b283ec6d78c4ebc318a29916d0f4c611444b6c12b250e28d6a338bc2a5da582a90c44dc4f3c5f5f2e01b9c673cbbc4fdc6ad841c9bc22da77def0eb4888a35463a992d1a45f79e48218546aec85970d36a84886cab2ad02c313102fc06b8eada54356abc9fb78a15b5644fb8e896b3d088e2f2e8c62b420d1dbf68de4d47855e4e503d3e36b1c4ad9e37f0b517a7f3272e04f8868fe3c50a6ed1e1b7ab989672e8a539cb1c4a93c4b0e29d56a1a1bad42bed2249ee9a124b16579780606dd580f13ebf57601b91b8a8415d7b50172a5175ebceea612b7a0a9286d5952d3637d39547699800bae5c696acf7c82acbf4ee5650981f35fe1d9ad7165d943e9ce696ea06d51b372cc335529819840e03aa65a920aac6ea3745cf869818e91111a1b43baeb49449fc64c08e7209a2a9ca966eb6b7ff56c76c8f76d2a2c56c101c0b1c7ddf7b662f755c004f3f6d34228213781666f74431a5463aad2df1875916527b4e2d8f122697b5d6972a02179a0991d323686c7e3519c84d186a717da1c76364199b12e7e2ccbf4a0712f4265b3384b5e55ef1f71512f5a8bd7fac8dc1b0ca76c797939e3363b162b668f03020020c7f01d7061c14d27ce17037e430cf9bbadd5caf3aea71535fd7bc3917f5a7805000001bc3f7fb07679bee5a3c903446fea4422b5412a004c1e0a3db9926dc5b250f3e9177826f8cad1a9c031fa8e697c4eb50f5b9f3410ad5ccc5c55b652bc860d1c3c2847953d575569ff6c1e0ccc353dc4d82382104080ccfed03fae7ed8002cf8aadf637af388661547068c746fba9ca5fdd516a000a92b1368eb48cda2c0e8f3b9b70a796f75fa309bab6fa0e8946ef6db0fda66e44cde9b689ee5cdb0dfffadd650384bec1489175581abc7e29f004f55332713a4f8eceac22a966d018b9960b3799a0748fe08ba94e4ba9e3fa0feb38569bae4fa1123318a20357686b2174cb2e31088bdc9b58f9db33c18c3a724a0c942b0c333f812e74358dfb8ece7438b40339e439461b1cdcf48f9bcd1eb7f2b0052b40985658434b57ce82bd2d0504c24d3eceea5decd13b249859246b140650f5939f9e46cf5d5a89e66027f9c106cd2ecd8ec009c6178792b060482e4eebb785a78c90f57a514a2bf5b2372eb4b1b00a6b38cf69046102269d4db44ca9efaea6b03dde26f5c48dd81dfff2949bcfe5701c7ee5b4a7fa2b61f5e1fa65cd47090bf6449046f2c617d6d0c74942ecec3c8fc48f6b9e2a311fba1ddc357894d34d4a94d9953f0581cbdb9df6609c7ceb8ac1145d3f422dbf2357907973f2d0000000000079a10000000000040e02ccf2b3bd43ed43d7eb33849c85851a3403dc7d5313285a1626ed393461ee9b3fe1707f574ac5582147c656905af1d9aeb888c1a33259a0e396eb87ca82b72010020ba04f466c63106903ddaa45154fbe54354588de209ce81fffe7b4bd5a31b0e3b0000052ccd79c3e0834cf71db85a6a7d5b740c7cdb2cb73d8bae570b57581a53d313587cd6a333d53ff5dfc324ea6d8d2f400cfc630cd95333c08e3bcc2a64a768619e542890ad82c859b67346c1cefb26439b99575d8777aed13c22a01c9d9ebb10dfd8089eb5637ad13f9581a36ea44284f0e481a6cb4d74c4f104b7ff69aeb418e8c3f744947ef00d9ab17b473c2417a69ce31741e8c030301813f4b2567c1dac6545c7f05e133aa50a263555ba23e5cd897349293e421a40988d9c1a770cd6b64c856cb200addcb0742f3df2c327bd28f1ec8d0800d52dc0775dd9a542830ba78e1966c6b0cf05009c3afd6c4f8a422f10677bf2256d7fc00e27f6efee5d3f4e2d76ce76a7aadd0827ea0d2c5bbba1f89cf3e12cd8222e16fea91e207a736ba0e952225de0b84c0eaff4f9b47a2cd85b0d33e3ecde44d35d66abae8565dc888f03699c302a6dd8bf43f5a6caa1757dd8cd5f31c31e4f5363d608d57b0d2454dc152ffe4b3eb0a3b65937a4425d3f9ce39bbbbb0e098af1ab91a9c1db8abe6e812347a0bf15bc058736e5c1b5566c41cf9c6bc32fbe38811ddf479bbb9f2e0cc4340206ba00f2fafe8cb5db4f465062cf4bf9e681fb733d18893fd34f05855525c00b1b30724e5a4f709ee4288f9194729c6997d122ab8f9e358dac9bf5438e83ca815e5e1f3f62508d5f03ccffab45b78c3c311f1fef84500bc03d640c1d57b819e547c90008187e32826947a383553562a54060c2fb5a754cad609a9355f27c9ed01f30d103b2a3094ca84d62ec7451c8761632a683d0e0ea4e6bdce804b9cc7e8f843333f5d8c08d0231af6813099dbb8d7c4a55499fd90ec919cf3bde64ae3b80f79bd99714dfc92a146684e0f3b9566862a158cd03f977fa934e789ef931b08c3a3099712ee43182e451de4d0921646792e4bb6be0d6903bb1a1b87e6483c84fb42f49680f148a6519f8e0bcbda752ac543ec1e9d1dfd795a1ed074bc03cecb942ce72706707825797a4d48ff0d045dffa3a83c54a7c03edba2931dc93866139b915b3677bed096eff3d5bd06ec1d7b61572f4407e8e75bed44160862df27ed90682790407491e93bfbe37e85405c77a4fd91339d6f04e600ad296e4c169d2311411ceeb7bb87e04126c294b74c38f356b0610e744cb229c4ffc5efff1a84abb801744f0c4b560c37e6e847e20dc428c36022533b799a0a2ff263ad7d4a6ccb90e3463ad3249ba770e5e27d40c1b554d7772de0c364b8b3db4aa003d3d95d09d74260cc77f36826f9d6e35419bb8a283618c95f997d401edd31dcf117261c3147fbb01529c3cdec902e3ada9b7965ed1944203b76c035bba1a4c0e675909fb4e778f3e37cbd3fa98ade7d6d8b5ca16b7b105920bfe6a0d300552edc1a977b522e000ec4f5cb36304628363434fa20e75412f86da3493dd64cfb1d7fcc6378e8114c8257a864df21261509ab339fac5d470753669a5e7f5827811f696fbe4d9613640b391d57a0fb0a981e32c2dbac1be523ed585534d43f9f3e9712e861a37131fcbd648683803c668624ede648ce08c604f202826586915373dbee217bbc8c05d58c2d41735534bceaa5a26eda6c5664d5c2d5769b568f960693b78a8df54584b89421444e05491a869374c960308ebaa8e10bec96835c18c8f38f042bbdda305c963022bc99a466f4e9468e223e96302c284cbc39fae2bffffd39d299e81d7f92110ba0543a408c98e18ed381c4f112683b1a50166ac37c303b6ba8fefd20c3a24ab9003227ee84607c67eabbacc952609cde9af5e76bef0c32f50e68b5e7315ec77bea5f06415f8dbc5ce33bc153c93dd9b7f07fe22970df42c267f9cd6c53e23d40d26a3f99bf3ccccb8020020a61a8d30bfe77777d4382f857ee5e81b6c511c9a4854718e9985a92d14254347000001bc3f66d3e1c0fb30d17a32ff6636442b98986ed322869802a5831f8d4ab24861c17731dd9ed3fae75b4baad0116fe5f1eaeb9eb8e58572ff824bafc6e28d66a17b4bbc127576f853e40895804c0c9ab9cfe62fbfdea56ef9504454b4d1bd9c4c66ade4c033235aa02e571ac276b17e9283af3a01d75e6c41b8e535a6a0f7d52f565a05a63771847257ab93b96b799ecd52a34f9adb5341f3ebe758f717cba55dfde5ea3074693e3898bf85986d1d2c11ab3dce4df667a422167cc22311f2b530402ec4a9b467d95618a84167498a5ccf43f53ec8b3ee3f4bd31c3836ee86351d5ec2b315458f86b537a7a9c10e80d75ff6114f3c5d2f8e4a71228f0b8e5ed1520a1a9bb3a2b8ce04c1c03da5df5779c1df2df75aa17476fc250366e602efd0bf368fc1e75fa0d73255f14a04a0c59bf6cb26923ec45f973d76f148246ff96b793f0a4fd383b4c3b9f3da7040021014de32603f3909d41944162a01c36806acb8523d9f5f034b16c114f86c5f3bbf6a36073bf18c0277704b65ff76379822fc0440d782a593472a1cb97f0f6fba7b8edee7f021eb8aa3d302bd7756c629bf1bc21d45fa08413dd13e687b2b5257cc432547d540935da031aa09741aa903d32676d2e8b8e7bab8540e1321bc971a0000000000079a1000000000004026b9761633b4bd8a65213baec129f950b652d693a7bbda7851aa09a078b3173940917436a013895e89d4d42ef04762d9a72683237f26f053535b4fa0f53f21a70100209a589465a5c590d5b9dbbe73e5b015323fbd4a3632e5dd516b05da47810bb63f0000052cc19fc1d8dc0cd653dbc3757259bdfb7d95be8a1b5596d86ea7518aefce02b525b1731108b3076e87c487b08b58f71ef52012afe4fa9113390dd8b8231d2b503894c60819b96547bf0b59276f6a3adf36a98febca7b60aac75ae5e81bd641d431687d3eabddd1c4735cc3e65a9142a4caef8f0780576cd464c1d7bb41ab547f0b35639fc229877901af8287c10da2f91590c0d5c9e6f89859ee51262400d7e03c3fb3a9a0ab14c35961fe799243db48d05959801c4fdfd2292f50b0c2f16e809b15d55c09a0e07b89f398a327f8ab2648c03e5d6de7b049a91cd740041214b2d6e4e969bef93b4b62bcb1d53914a13531b3c12dbe53df61203425dead2e25c1b3ebfe1b462b266d024bfa2efb1b4abc492bf195e9c60182f7c4afc3001cee88f1cf99fbe5747dabb9458965ae46a129f2931fe78388a9310dc4b7b65f652ee71f2b019fc6c43ed778ac1f91c913a7f0c005a7371c9f64b7b838f0d180fa08e59141d13f51a0cd8e6d35c4c55c2d91c3161b0e759f25945ba682f74d16dcf9a04ac6316e90f9c663da953c8cc2282aa1f5b33c907690a6a4215c4040f22d5e1a6fcb763d6b8979eea7bb89db3f58648881980948509af5b04f8c92593c8f8c1564b2539462db3b6183fa2ec570daf1ae965cec0855aa785b1081cd01b6b9a3da1a1e47621a57caa1d99bceee9265a250bd8ff6f056b9c13adafa2cf21eb768192f3fb0dd8c521e14aaa71d4a52dfead5c4a43f48c03046ba8384b526445a31eb4117f475ab5b6e57f48796fea32a26fc004416c1dad349a5cc48a09c8e72953f43f50287c7d325ecd10bcdfba14be693bd0e52e08e8984904c04d3bdcfb1c522d250789411c6e8bbcf04b076641667790c9e9406a34bfeab880f790bd14cdbae730f6021c6a615f9b2c8b37d9dc6e6e6da1c320acfc67afb430ea373b5a13e98c2ae213a353318d70a9e5912c7112cc23e014d3e7db021a3fd1e48d82dca6d32c6495d6c78837dbc88c85c53e00e57e6b0d2a55df520fc972100ec30e962f39facdd2a73ccfc76a7632e06cc8b0d62f0487cf2eda3eb70716f2dd40c732c502dcc177837b88185c08600d1e56f1feb9155848126a8be0d18ecf697353b40304ddae45cf48673cf6cb4d943cbbfe020a5cd60d8ed570f6c7e3e12c1ced686ca855e5a5b520538f0622fc5d21c1f9a9becc483fc360708c31fd6772e01dc47f3c40a783629220e385343fbb9a37b7d16f8ea7956a65f531f60a336219a1e17952b18f185ec5ad5371bd0606a9144c3c91e4e588ace1052f64f2bfc9b1108b09866a467f67a5c6c7a9196026516b35c6f875411522091723f10bc482cafbd6f6ae28bea51319ebf198ac44817d90ca7584261a1e1fd87c6b372cb2a0c8590cf33b54bffa855dc17c65b40c181e96e32bf188a46640d0e1aec2204373553c10030b02fea8508ef33e29a80fca108fef75ac7b49dccbd7e7e11762a19d63476b67d0e926e9a4606644ea6c27bb9ba61742dfa0719dc6e1c88b2f0ea38e2e7fd20dea9840a5f0beeff6b0bfd330508b5951aefef8f9b27f2d4fc61ad1ba55c9faa58011cedb20dde2101143bd922696a6e96774eb43602eb43b0b0f285bf650ca4f09c14c2c1d0d5a5f1d0cdd513fa8a698e4838531139ce661f3e0800cef5ebf7c67b0e89a1483b8603ae30e08c0c4dae4be9f5ba7a71bb1185fcb0ab3e121ee91714679eda2922c0cb8eb84aeae1afa783568877945232ed53ed48c0d8a53d2ae12f30d8fb8c0ca068089389a783091fd806b17b40493d5e4ec3da3e23f79f439547a1f06795ad4bcd11f4cb0b748021482e4f20e2d13d967f119bb0f686572932992991e917200a2bacf62b956b1502002013c04d798924297f9d3fc9a37817103e4134a53a1419db8a44e401e3d346b61a000001bccade0df3b8055a0db4a8362635b46be989c2f28f7bc1afe9b601c2517c0898701f8657fdc8729506cb4381b827ded4d140fa242949e1826f9a4a1058ec8cc8aab504e093566f21baa5f1ac9256b6173ab0aa6e1ee765683d9d1e6c0c98c9e250f2d2f2bfc7320a9e4eaece56d9d7ba58cd484dcd06e16ac876497f0baa5b9ae3f1113b55d97ddfc6526608e684fb2e46488ef574be848754df5954a4da75e479beecc2cd0c19f9a502c0c5deed1c6ab302c662dddb8487af6fc29654a4daf86ca77906aefb1eb0ac20e2f01575ee9e3867934df53f85f2313021e9933eba577cbe2e2a2d3f8b7892d2c3f2cb724d460fda65bc7883009750c03698891812d818908e221f9315ec9a308d397588296641ba79893f01e2a6b45a3a6a00e2eda6bcc2a3860ac95dafb7da28887bc3a694ac87f1ea060a6ad494053c620b849363bd7901fa0e2957a122b67f9424ab0a60eb802f336ef22aebea7da58375f12dbe67ade8c2bc6255987f6b2c4f5bf8e09ae0d3b0c32148606b5ebef620778c4d05712bca08dceb83ec6dffa1d0985675a5ac10cb6fa7aa3bc2084740c3e78b94408c391d68611c0af00f8b305cb49eaab773b66214947b36e114c5434054d8c772925aa2fe8828ee6e4308bc34ce0000000000079a10000000000040e4f3452453693a4649b692b6d9928a5347c12da25ed289ff7f9fc5f0f31f3f7da5efa5035cdc2b5ed2777ee69ee6c09a3f0e4f3a53f882e3fe017db273e4cc7f010020e3bcd960e84b16ac69a2c17fbb5e94ffde880a147fe2e342e68a306346e2d32b0000052ccbfbf3fb6726f7048f0c9ed562915d744209830022f6bb9a74c696d92cbabdd1df0cb4541e979357bdd28365131909a75a95cfa2844560e16fa682987cdbcbecfea424dad37ff6f0667c80362e1f6568e6eda0090e2ce2bb5073f64b70d71aba124021c99de9043da1c7a1b14371625f2b1f8c23c1a310ee36830b50023258a755b925b58a3c6f7878f72473d9187a0a1069b54d60ad66661ae42f1588dbc05a385b33ac9620b2aa922960181befcd130c89925ac4ecef1ad30468c411751dcdf10c05aeab8e80031d7ee689dbba0e539973addd0a00f9c41e6e158cc39a29b90641ba566e5f3fbe1b842ee9c741877ea12c33651b093bd2369cb81cf615572e92bc808a6442455fb301f2a00087cd9e0e8bc489e393ad93bc7ed06363a585c4f29b1766f194036f49270e23fc8ea4d79211663e42139a5cc6d85034f49379bbf0fb6b8249ba4984404a68565aebd8a53723f6932f2035b4f596a6c3c26e4fbf3373f72d9998fd8cfe577127ea3920191e2062249d7a0aabc7bd23f8b99f74d036622ae696930ce1392329283331225d9291a9238c96e2f749105b7518a9c56a056cee02ccd539f5f424fa1f1ebbadd2333a13c2497cb88a233c78743b254f6d40c3ad0cabb244008e67661ff974af3df0a26f88ea45f2cb5287146e37c67e44ee0ac2449ea206f595b66e19bc38e63b1bc3d36534ab0e7008ae2d42d1b3ee1bbf5d0c9e47ba82dc318f02a32aefe64f90c913f315daae6b74949d937b520b1f0d246fa07f186cd59bf14c523f1f187036dd0dd3a4a534f03c404bab1cc7525d173c0f1ccb82f8a793fcd29f12aaf4811446be644c466ba9004cf6c8d776e05738928fdf81d790e1923bcb36c4ce26244ee9b5a01ec81e89a8ea4656ec8ecc77d2e06342763d739910bb3f555e425e667d9b40466c766034a155f4aab04bc56aa05c646f0b96a97c8ee443f9de6dc0d16f6584cc08cec568ba7405c6e03d1110ae6c9b6b5b1da6021fa2951d039d3eed48079ba3a6c04fc4f7e77327bfd3b50050d7184eb5d751897adec6ff1aeef57b228d3a49c3dd69d12647f515b91902df3233a4df44be6b001d4348f73cbdbc4e2d6a021b79b5b35ad49b106c6424820de8a08b1cf673a3effbd0060a99653efc53ded6d54875ef2c28df46ca4e0e6ff6f454bb8b6e123df5bc43d767e8aa7af879a258b9d0f441001e5cfa52eb2f9a9bd87d1f956ad4483a73dd49737ed638344f73b5c119958918e9ea7b5e75e91b436fbdede9d4e6549c523351730905a92f58e4005955b91107f1a44143e605d1165f084556029b59f6bf38e79336287a634ecd62d7acc334e93028d3a10bbbd0e2e711b6f7b75631d0eef962078076658274a672057f7db0dcb405d788cd34a2b630c9fad1c0304f3e903d7236f57bae8b5028f9ecda9d09b68b15d5d02cf7fa549e79b2e81d6c18192bb88be6f61630d93cb7ce33239271999718f033ac6adb7de378e7f32b5c5eed97717692671ac9dd44060320cfabc702f2ea5b2981b88922396e1eec00708c1fd5fdd9830f57fe5571b1565ec32e7dbb9632cb3bccbec46e161a64235aa8e00fb4239c86029d2d3238e0d77a952a6a8333457711e671574b8574f3cba6b35a7b7d65132321ef954e919657880fd618c43d7cfe611de1033780dda15d4741cb5ab9492b1f7202f0abc9538ed15f429fdb267a6b2231b72709e4f11cc483b7e3d6402413f99df85b543c7bc1853daa83a066a2b92d0c006448c9fb007ff63cebf9316dd824f50d749d67437d84144518f54a492eddca5ef28ba97a017d1804afb4b834e3b4f7f0b2451a2957887e1ff395a8822a8a5e5958634603756a986393975bbfb88f020020f44632c05c665143a4c48ff75edbdaea835fd326c28528e4d744848e21609416000001bc324b6135c1399877aaec8ca46b0870b70e9deb4a9fc1bebfcbad2111d1bb99623cee3a66fe052046eac7f95c9e6c94d8bcf896af159f1b51d78c827c6feb46c9b073cc1e941c2923716bc0d8c1f3f79bfd61796249ad1ecd597f60f1668511d0bcb97587f4880f1ce9200ef1f3fdfca213bda2a30679995dd2f11e0383df7ac37a96b960cf67aa4245fc0db181df39381b2bd90b0fb55b096629dd113157f7ccc9432a3bb4cb29dde91b15846c3f72790645682b30bb20e96f6a638772f9a78dc855245031075a0a744bb2ea7dc5ede43250263d87a7fe69ec1a4395e740fe7bc58878a4b6ef959335b0a7396e94a76892335eec10aeafbfed2f2fa7340e7d546624380e217dbef334d0bd16dc2840493b39f7aca21de239b54e6ed028f8ad0f2ebc6974d43680b9845c6e09cf4f4b82e1ac166c0c99bd9c211a7d3f903d44bcf6c0923e84ffb6c0b69c8fff9bb1a5d661a9745b86940255f273c1178ca3b62d9d55995a4f1ac4fc1e35005b8b61d21f985b7bbe88fe3059b32492fbbafcaa102b3904f06a03b4d0b7d69592f81225fa69e5d355ec9007eb7a3e7cbbc5a6ee58bdedad3fdf975e7be6ae39dab93419a4c98d29f2fb40e3fd66c34666df7f4ebe0c8e983e6d60a5b39f4f46fc0000000000079a100000000000408d874b8ad1e142d4aebfd67eb32f99093731d96ad65e2df1150eca48959d1399bc50118191b665494dd1ccdcf2cfadc35ad64012e8000c1ef137b8de336f535a010020236dcf59cfb398c27a782cd2b578a6a5ca9c1258f4a4f7a287f7224ba0c1de6c0000052c2d915df57095375ec810c67f100082b2ecbcf00e597a9ae163bc5a15b8681e643aefe18099507804a3506ce60b1e1c05751e6d7fe8a4baa4bf774854313429bd4d2468f728844fcd60f2c44c7029c05aae96ccaeefeb825893076fdcadc44bac928631d7e2d9b4093054e2e42c9dc5a1a4abd0915b5b8ea5a877f65147c89aad07722091397f67f0030cf818b13a5d48b93f3f2b6d129b3d11f2ab13f70bf949c758926bb94e4f2cb001e4b5ca4cf6da36b94d7574d16564fe2ad35cad97bce5ee634b32b65097e6350b4f3c7470d058156121222853e93ed7fca818618c456dd341cfb72d9e9aac879780fb43b83b47f41cc75ebb8e0a9a0c1a3f2f921f545adee9a87bdafe96e90b1a514551ee3517a9808577ce44a0cb1a855a32faa97034d9a5e3f61fd3ddadd8b78f8dcc410fe4478550a11c351b1fd9b9152d0c66413edc44cec08e0016c1cda888d91270e1818293ba4f60b3fba3adf7ae9cf37265e93a5c05caa0703494097bad78ffaf3dd2d78ace844973d757088f1c57e015637af35cccd19ae15b10e1b198de8bcd4100aa6935827435e7760836b712fe43c773bfbf6684bbc5a6bce08d27203c6779489555f656b8516656e49365ea8de0eec34f81db337a137f23b784cdac23281ce8086bc55d1f583d8fcec7ef2472977c77755a6ec279b9fa5e11c236e5ec34af32efaeb0d45ec4cd15c4ed90bd9827dd9a35ed2d65e99a3091c97723eafe3d2bb9a2d9acce2254b32ecc3e4dc607731c4b12cf64b94861184b7138d80efc8c4c4ef4fe6762426179a47dd6c46f827b692825f072319d4dd0d5f7fdc7eec95b49612d3e659154c11e738d288ca350f77fd1e7c296637d22cfc684033af92f6688cf996407a479098d2708563f6d8d77e13c84fcc662ab4ff00156e63c2b0abce3e5edef0c812b04e7da499db851c60617ae62f4a040c040d7227c56b526bddbdba86ee84b76c110d255ad0ea7a768964b836ef5b40404010ea7c35092f46f728b6ced7df5660036a370d71297a39ca60a94aacc21ec20d3988233c691df729ac8025917b8d24a3b6ab6e1958284e8a5251062c624b073b0ab0dae3edcc05cd765403a3af11ef974f2e154c46710de951d014876bbcfa7f9b13cf5f8d0a1c910645bb23b2913184d9e11b1e998a39acc1b68415aec88c003b3cd9a125ca3da15a4aabef844b4dfb18a33f86b7346540c4dd3b314fd2c3302ba4be508edab29934ad1688add6ad9c7aba4e3c9ab62e2a8ba2aa137570001f1b3434dccd62acf17945e537681b4a6bf8a111cc47e8ab14d92a6bc3cdfbde2d17e727eed80bdd7c3b18a4f1b2ea8bf78593558221faedc596ac14a9e83800a184ce6c531700c5c70a970724fd8cf29794c3944fecd9f9eb895e37a23bba0e66cfa20b17aff163bdf4604ba3dcdea7efd0852e00f4c025940b01f772a049b1d38f448f72c3ba1b299b4d247987f14bbb675e2a656ea0416188d0bea1276f4e49674553e174f0839f54ff376e17efc2d4d80040eef4aca8097171a398169da04857814f9c63478fb75490890f45719771ab427082889baf40418ab06b337cd0a0a671b6c21d46b6c39facf51b3b3b34a9d1a62f9e37153aa3c7450a4cc6614dbfeb1ed374e3b099880e9d61d82f4bf7983fcf883dab9110e087104bca9f145120a476592ce21ce9acfa538fe525027f9e4d111f2c5aefb995c706d95d068be1aed2ba3943543d26f2f9a29a682e34f0917eff0e0d9d19cb19aab872c607125dc4cd3f09004637876200ba893d7598cfd056bfaad8f5777ee62cadcb9c21065c8c69639f4403ee5057f68bd936d0c8ee986885d7743999c9c9c29ad6ab68374814e7f5ae9deaeb0020020389fab713663fc5cd2b0fbc0db7be5086e46f3a310e8db1f3ab15d4417773646000001bc5fea77e5b98d141d57f8e17e1b7eb7834b038f392348380ab372ecf29a2fd87f584b13065d52a983645c9b37fed5ba71f40da093af800b1dc069f74ab12726043988a0ed102783a73d40d81a891e63acf7a9f6cc6e1936045f4ceb640e8c7b0bb7e5f59e7eb01a7bf95ef3fa16bfdc50e97f036824b00500523695eead715d6b251da8355b873843387d63f684c22b6038d5c3cdbbed9208f76ae44c9d5a8657dbdb417cdd734c44c7ebd1fb5fea59f06f7e5a5009fb3cb47429f0c4aa204e285758d9a124c31c20ca5384f43b382fcc34883c14b73ea1ff64eea8fc27297e8d3cfbf2a51c6e31052acb5173fcdbfdb32fdecd9e6f2479142ad8d59c0e8a564e573b2e6d92996ae49b4474153876f719c13bf1e046de29e503da5d1fccc13ca154fcfc852749bfdd5ad29a739bc4f54bc61a89c93153f07ec2d875c68f2c3c35b1637385ec8d10787d82ed36bbf4cb9b6eae7c29dfb6d551ede57988416515f5ae0951f04e9f8bd54aea0bb46fcd73d418aae0734924042acbd3376c95b82ad194ec3d4395361fb54c9654d28a379074ac0456242e1a50a7b6aaec17f06b02a1d47ef7967bdc361afae26a31adaa9739854c4372bd3cd2a9a4975bb3e4fd06724cddfda947ce75b572f541540000000000079a10000000000040b961a954996f93712250d2f4bc78995aa611d0b644725b8f20f198a700bb4878954d9667779e2abb5cd073ef9137cdb48c9ee41fa6d37d44d8e1c79e447441e201002072232e8af048d2b2680087495fc61a81420bcf463e97c510ebf35f791e1f04500000052c7e0baa6b2d25f380cfb67cdf8e85ae1eb5d74acf8fd703d4c1487feed55c812d69bd6b557d49cdc85598e3c08faec92ffbd12a6da15de6bb3010912cfffaabe4ab3525f5599efea3598d3429fac63ed9a20c0c26a7bae1ddfd415bcb23ee5d8c13f7bd5dc150d4d75d57653e0995e1645c5a32d8050991d7dfb07e91d0eaf4646ac0daae3c4fe8bcf7ac9ce226fc361132906f40ac69d4fbdccbd87c935298673fbfcafb7056ba5adc00b79cb7dd5efc69e52991b6beb5f9cf97b85b28d75fe8e62c7c5506a896b8fe2c0d0f792ca8ef5c589ae225fbb4630f90c3664064fac364e2eaef3dab24eb9ba13b40697244a176638d91a1391012f0d94c59b00f07a9f78f141100b850e00667ecc110d70a4c5313bb81e9946b908d301363b52ed0835e8559f2da2af9ab81f6d3568794ba481ccada8d33f09ec5e9cf3b14ec12a1292c190cbe112a73f8ac79bf7149a35c2f45a7e4070e9db193c9890760fc4ff52daa8a6aeec768d01384ac1e713ebb4ed4a5da1c9ea4e13cc1b528796d05a2c9c5775233934fba4a1928b7ed1bfdc7c04d68c27eb8a791e2c731e19bf7e06e26dd74926f981350f8c1f5c798f46bf09645a88c9ff47bf835d7f302f755fc08defd8437d8182db4fa21f9db19c11ad8d5539494d3aa13f1c44169439b75743386dbf2df744d30e81ba01c1cc795ff6d43c4c5167ea865f943be918c867c522ce94c4f265a8fd8ccfe0681e34de65a28a8ef865998aa536974dc7adeb81185040a508fba1278f6b6e1cc0bbf4432a582beebd76433d625cad4d57877f2c100551c6f6e31366c42367b0afb364bbcadb1effae59008a25fee7273a577cdbbcd3085750c7357aefc6de29ba0c043188303706091d24f1c1000d31390a7a478037d9e08e8ef5ea463894a53f4f1a64d8079ba63c4fb0d6a788a379a655ee81a3fd0280c3747a5d5dce85c131c0984f22667793a1e1d299d1501d5c66589731b42942c6cf6f8082edeb3691bbdae02f6ad2f948258580338851f323e484804a931ca674eb54704fa3bc9a9e82cf721cfcb6ddfdaea6fb53fed840fd3a34aed518e08ee2891e07d7dedc617eb0286f07e0b3d854b61212351c61c35151a6bd2426975d37f080c81653a639777932e31b99c2390aa16d4c4861701f1786d8c6a31f96e10ee6878287bb7789ef373037786978a9149640c72b2332b22badce09262cb05ee83bf640a07eab722183687fb818cee5665e2d3d2c8e3863b3687d091f58e67022596763184f7645106213acc6be9cef0575d3fa5d3ae281d69bf7b21a81421cc642765f3e511ae35486294c84072125196afb55789d1ad9715b600648c7e8de85358828a47ecd764fdec7a69de3d884eeeba578369f2a1c92887ec77fd41a164f28f34fe43e9ba10f645d7eaef38f74955701d2267e53ddfeec2dce4ab5677e712c03ed77d9e5a5c3ced724e22df78fa5ebd42b79b7dbbafc16a5fa8e298e6b693684ccdc0433b524a1a0e4a7ff10f050345609880abf1e346a555e8a2afd4294cced45dc44e150494ec8930c17d7e9d957c08789c898d0468a4739944d78e56549837075373b4b701cab42f8fd0a13ca928a1c13f92d574f4f685cd296bf7a2378a0711df17646574223392d5127ddd2cc46e2604fb4299c6c6ed6c477d7d103ca87d89466ed904f862f182ebdb36ee82cbe030add79ff8ed8503f48dd4d40eb943e8568c4c90abe3d86278dc408207d47ee7bc5297e141cc3050b10d39fd4ffe66fdf848b15c696ead04ac71f6b74d91caf706b7e000e0088fe8369c8063ab8eb368a63780bd05cea46fdf196494ffcc7dd3cc884e280143c9becc50ef5fa535574917498cbe30b08d03586e02002051da07b55575dbc2365d327814ae336dfddeb3dc3194eacefba8589cbce0c40a000001bcbfd02eef2f45b1c11ef50bcbb3820610078cfa2edb5215cd58454741f2ac53f75ec8d32bf8114d06e49085c48cff9d39c6c00474e32d163d05f85952dffa40f55cdd7bd75764b32d1531c8c3cbdaffbce9c9a5a2bd105c089dbbc94de838d4b8575c70fcbd309af1883c5afebd6f556821dcfcc4306dd24bdf8da82786e1ac98426dda85ed28afc497879a3ae95f043e801021f7e320f2ba70fc490f32f3a8af50eaf4441b3443e151feeebe57b1608e398fce17d8512cb3d7b42b185df05c9bcbdb3f1330b7a6d71a7e7c37fcaab8eda87fcd86a4fda67c66928813bd9b8a2b22a61812cbe31688467421a84144edf2787c4c49e0612947501a2540cec3b61c0988a175c454b05973fcb99a9c817a24264d5284335d1831fb4ed31144ca92563b81b855350809fb43458ac8f146cf337fd87ae4a1aa3719ccadb02dedba5b59281c4df5e460b777a2857dac96e5c97545eb3eaefb82d8fa7b56bda8079935f7f51ff03c968678b1a963c05c5da4d4e977e0526c8ec38af8536819e8d2592c3514ca1d8b35128193d54f61c567c8a8e78f2e4b258cf9963531810b7b2525cf6b2c8ddfd42bf9ae7d9ac2a433e4545b5380a38f7a275a445649179be2f87b6fe4cba5c60bdd8a8d70207c3f040000000000079a1000000000004054bfb2d6219cb2bcc5c61115ef6a36371f9cb46df8af6f3d581e462adb55c690c4cf73f64a8250d936ad6ada38a614e55b211ea8607be6918ad4fd62ad086bf8010020042608e801115172fb8559b163844474fd520ef36136866bca91e9e9cb42db2e0000052cafea3e4d34aea4d224b339d647f2f1a6c044cbb613a33550e9241c38dee78851f7283818a943756f194b80c1c9d84c1b92e1dfa1555fa65b711296efed2c67abec687681a7b32ad2d9818dca76a37e700ddd929a933d4e0a2fdeba8c9cc758bf490e898eb66603ffdffa66c4a842e288a2a3431db16483425c593e9125ecc55beeac8d41364eae1d0479b1cec34af266d83a02cc2f8e27dd98877b44ec1a0d3396b1affd3fb5cec5fb088c3c687b1b3ea00b970d1e90014c9a96153ccd96726c9f4cc9356dec209b888789f520ac817d86d3b6ccaf9a754a29ec0f587f5556d1bc95fa0eb82fcb749f6d29aace55f578e60b78b07767fc58102412f414ba247ff1dfce7e6a9f20f597484142c40f4e13eb0a1b8fa7ebababe9800d5b7eca056532b68e3408e43b11205a78802d5b3e86ce07de7112c70069eedbf55a8ed46211d6ddda729edb3c164f357167f37eb88635877fc5a7c51219a3dcecb664d3faeb705726edcf65503b5ba333280b674f318834d6bcc1195778c6d7017919200765a8c5b1af13c78f1f261a0e641b110a5c3184b92d3805eeab962e01c765fd189f376bdd0b635c156c371b856535a898469c3927c752934dbaa7c596ae615b73af97f922ea4affbd11a1dc4d3ef22f35dcb7b56e84169da033ff237a68eea8a1b6d783e2da72ebf12123a0199db3c35b04d2114e641920977c376b02ffb80308d6d0ea8fa1d31545267799e999eec79dc0e66cfbefbf019852e24aedf942a923bfd26b12da8779cb24393fe33e73835871eaabce85e468c0d1c540f5f7c5db7b2f746e86630165b99624d7ad238f6ecff9fcfad70e63d2469df93d3dbba3473e995b460308a912b5d37a19e57f8c12b0a65fb5a4917402145bebf28385a4274da51277d2f2fc2670190950b24971e98c47afdd1043ae4d8b70e70dcc5f6a69067e64a8f3344001cb5a38ca7cb2b1401ce5771c3dde71914930e4475ee28c6f699b26759f43aeccefd410a9ebef3c3aa7146ea2b9f0d71edfc510c32befdc90a5589a066b145c5680439da7a50065154b637badcd3fb36e04e3b92af39fbe0280b18c115eb9b702a866a7f619c5f0ddf70f5bc07a4a00c48893fc0c3eed68b93e79cd985faf4af093b26486166f6afc3a4b054254caeae00ce2e4e45f351d5907677bc326740a20ced1fa94846b8a11861a83484d7d31f6246e47e9267cded2cc472a7a9084e4ffb5290581a80d85eedb4afa711d0d74da6c0d8c2b0d039b758aa642dc0b8196458e64e4d6262e43fe56dbaef0a515cc14aeb9d4b6ac81c81266d747bbb84062ad65a9511fd34fc4c865f605c2aedd9abd272b51af51dbc39eb691004496dfb344443fe1643c8ad12d084fe0ebb625f534e0c248ec87d10beee79ebf263f9ace102cb5cd357dcccbaf5d515b6d9dc28748191835bd13994a02306a39b7e999171b29a4f21aea6594f8fc07f5d0a28a5710f244dd916c1485d933e669d4ce102c40eebe08ba92434752280299bb752249e64e395d83fc72f2755cc78203925a7543620d0da781aed3119d50883d6ddf586478906eae2e47fb33ab95589fef6ad0c04210120bed5cf953a7c4e22b80be589664be284ef47ee57c7236419195db4df69040980d0e0210d6b23301877ec62faa744bd34606d5edf19c7778cfc332344960e56f50aecf956838b3b93a1dc44f0613115b3da88075d7237dcd4e10fc3d7b65c74b1c2f28b73d4091b8c996117f0884407113d594678df23a1084860f275328cc2c264c57be390e6348a1a76fba6d0e7abf089d74a8e8a05a8a15251d268fac27db53574bbee56b84a8173f52b474b60344a60484746e2a1add8bb9ff6e13cbf01281f4f2020020ecbd895f61ee94a5f9e994a73fd718bbca46f08047d7a66d9019d013925d7d00000001bcc83a1e21848f7809095cd4c49d4a3fca735546b12bdd2f8229a4379cde51bb05ff9e5937792808ab1916c4bd6cc8e0a13ab97dfb28077e398c5f544257df5cb8c56d11987040ebfa4c22ac1ff9aba4363f123222b6e414d2bdf2d79f825cd767210748a025444a6351c71c9be809cf3345c53eb238fe26fa7b7f027b29544ce06f78624a1eda459a4fae0a3d7b74fecc0c9461ec108f180762129d26108104b89ee4e3aa3f7c77b07aa42c0fa2610807372d28d96e7046dbee2ab5ba41d8ec5794dfaccd0bf80dabad63d9e748f0b50314e7ee7fdae3488bdcc4bf85a59a13a396038812e682c3666b7ee4a934d2a48080c154d7c7dc86743ea6f3f8208d4d907759c298f4f909efba600fd81379f24b22a3715a8d23e7909e969b2bd24583aa189bdc95616d6ba6481481570eb45a7938eeda54b82790754a45939976e58a2414bff445a5db22d9e477f9654e15c49cc6ac2af4f570e6b4bd6150310fe2612736a5c38bac91c36123fa7fae080e3e407512ed9d8823297900784d921398e2b50d875a59e522ece3fb883c8832b143969f8d6376351ef1f3a5c192447bd5ea5a34a18b09373a49004f5780f294ed9ca9cc69ee0c6dddf81be21be3bbf9e66a05135292fd12355561fa770dbf0000000000079a100000000000409ba09a3f3970ec56aede123572950d31c201857753b1f532640a5e2d5d0f135a632d9ceb9d6432e085d5d8244d35defaab505fec2733f3fae54753dde6be3ea00100200bb5e5b454212ce52b7ccea40b5e9d881165f1d9e911b6413388311e5b421f330000052c71c303e7ef2ddaac7092a8e46d461909f241dae9f50554ccb9f25627aa5273c0bbed91d052794bfc977d255a4b481ec001c45cbf9d820e061d19fb4b93e90901180b796bccedfc7dfaeecb59e78b6819eb8f52cf04b6cbfd66b5e3f12c72e9f1de38b0a8d4eb94f4ba769f1e42027cdaa0789bc7089a09f9d05c37519f2114322286fb8687a5148e93b8d64b0f713ed1416c72ca4d7bf878b597bf1288ea988d6c1657536494e02d9e1174b5e0f5049dfd3b00c77a57688f1e0d8fe8d72acd7a4881ada81173e790dcedcec8b82f0bda5da0f12530a7a8bf2da99490b49220981f2e3d696ddfed603f95e56656e72d25e4001eabfcdab36001e556b27723a6f00069cac9432f4d0098e3e3e7092ef4a8821885e92db8a432e82af686b41a2f198393ef986235228103de6eb98974e357c918f2066b992f17c07167ac8c3b1870148d9ce53083ee998439452b7f3051b02497906c6165429f0212f1d0b2f684cf79c714820a1db10366540b13be6a810f5e2ad919cdf1f421768c0a5b18c54a696052843cc3f3f0730c4bf92a9ee5c7dfe6a210d69d15f7d01694bc8ba803e6da998b44ace7513cc43bbf1560b0b691bbbee7819b2857de06a97ad942a94323fa6a2b452a4e386009b98d6ca0abb3b4c2ec6a267bfcd400193eaffe36dd61a1c87aa0a0cca3f94356d51d3b6fc814526cdaf5af9149baa02f242c6d35dfe1fe83ebff2ef5225023c3207d68e24348d7cb816255effbd970ad5c30f3a70b194d16a2bbcff9e38386aa175f4f628f01b2d7883d977d18a49c469ea5c4438a865fb1d8b462c59ec60fceaa295532b967cbb8c348b4412ea5044b923570b0bf14f5e07b7aaf0efc601af3fe2cc716bb96a793c1024cff8474a61b1983dcb632301e322d2b42c8a57131997f4fa3775c4c733cac4b4e24c91d9862e89efc18c7b442cbef325fc09445e6f3c04dfe7581fd3cd2f08afe08e3d84918190cd69b6eceb76144fad702087d4d58e842ac3e765f3d62667ec63aa45868aededdf63bbfd10ba41592103c918086a8b20c55518ddd504719b99322bdf462b4d57f4d271b671379898a3839b8524c1d6f9943e5db3be16533ce586dc15ccb9813423fb496d765bb54fd55cd6a8a9bf602c6d04ad70879aec4588b9b79a16d4b793d6546d197089aa5904cade7aa09f2b5375c0de708cf86b87f1002e34ec25632476b756143380101292a12e8d4ecca0c1025d1fc5032d8a7ca2f928ea3f7da7c1a5971f04c87ad88db5070fe2a451581dce5fabb808cd3fd3478f1724ea0b5b4abcc193f6ab03d559d27e39496a8cf363e43668f115447fdfe5bb6f87921635773e214fa400d6aee6e5a3cb03b24bfcfbd631dae7bda39b00b06dcc6d0d976bd6ae24e279212b82f333f306093191cc4ffad144bebffce4182c221935d9c802e863d7413d1587935c23c52f6e0b38e927d2e1450c5eb10799f2bddd03027c429070ab1813ff438e973bc8b9988b84e2a81b26417fd066127ea708db573c1e0d633f22dc9f307833eca0430b5ef75438523fbe3c11af87460631bb05d34a719c609632e1f8ed7c07591faa749c80f8ba08782b62a5e5300ae97b9cef3009209d15bcb1fb8f1c146cee04c56ff9f9bb786c7e6097175534e851bf0fd440649051414108fc94c7fc09a16a95eed2141728b43b691b8de090181a48146d1434eb8cdb8510459f461511efd3f858c8cc5a94f3a5e465e1c702a64140fee8bb57686f850283e29909aa2943ff7ed651a59a9bbc49cd1092a9528b2b020f861cb735702cb59e4ab84bda28f41a95d6b597d0d587e33ce54ccb173cbecd60ee247d248749c2125c24f77b6dbc35626404677182434c747020020b122c2bd842a83152e2ea9e430283292eeac72c92912e061c69a3aac9950024c000001bc21954c060a292aa2383652040cb5dca19db1092efcd4162b2061f070f8840d8495d3a94a7657820b13ca424b2d3b677d89bc8c948e1a64a6a8f51a46884a28facb41d7fa2335a4cfeadfb2e8a06cf0b9af54e537ca64b461aa9daac4723a306704ac857d0bd34ac49d8225bc9528af1bc317d4afce4d6c8e3f394020dbe599bd585ec6a30a71c04a47ebc49d1b04525ba95a4b3a6ba6c3ad4f0b979f58cd2171ca0e21532194371b63453df52184af0ba530fcc8576928015cd7bd799353f1cfe8af713e5ea57a759b39cd164aaaea90f8431656169b1d7d957f8062bdb50f0611cbeb6c71a3b9f95347470acd21f9ed9e7c78070a9b1c845b8b25b0fa11c9282430c91123c2f452c27db2863c6e0392668d4bc2b419e1b8c9436d37df900128ae7cb07a3fd7a59009c9f11c927751695f54a41f86153d09e19af8879f9460d56333d3110677a2064f22ca6aaeafcc998249812e9e11aae8f1b7e1eae66fc81bf116503392b2b90c6315361e6a8ac9d0e824d15e693e11597337c28779dcb211342d86ac76a2c93c7a77d13b651867b222e54f47fc3f3a766461256bcc3782e324e8ca4fd3525cf5e15885b7b87a32fe6db3a2e29afd4ec9bfe36085fd9cb80676853e163cf831b8b558eb260000000000079a10000000000040be08255fff517b6ad32ce2e331fae6c977aa910a7b498f1a9181d848d611abf5b6bea4db3a41908a980896b34a6a634a84a0de468ce0a930d34cc57ba5330b4e010020505fddd8e0b90fd07532942229bcd9745c510fbe4142f7a8117755c076e38b410000052cecab65bf31134cfc041c7705af5a6693e77e1be366cc6ac531eedb66536d2ba73c3e39a96cb0c09fe2a18b85e4bd23be54d9ffe5acd502278a768c52f6c9e1777df66d1364c9da6ef84abae78544a43004ca109807365da208bd058c56233d75657dcf1c7e13c290b186ca29689c53217891399fddd4bc3db9c48db4c139c2b272655ab12230d42fbb6554bcff4001c6dd5107f33f442b48000f4a08e9fba27422c1e07eb2ec625cfb975b056854da5c0bff205ab59daf34bec20add4160bcd51d4a66a5c668eb998005f2e75833d59ed33526fa60d881f672621a6cac2e98d12a2967bf21bc84d6b8847a9df81840c1a0032447dded384c0f0d6fcf74911d84736f75d0d621c65dc4b0ba19f2fce6cabb8237dbc9a6f01b356554f0d12fc655aff131d621539a2a9607f3d719667e52016a83cca59fc7ead79786f38c1cbbec0f7269629f1e2886663f0b2b633550c88f477ddfa31637c70a0d7f73cb277f25e09f829063e3cfc5c3bcf0950b281bcf82af2ebeb227be7be188bdc79bb53071d21edb56bcdc1c94d85aa839048ba2da6f605a28ada27d4209be7d8f88a9bb4b8ab0da70dd85b8ba36a83cd231cdada30d212c1a32485689b8567a39a5fba6d7035acf46be29a3b3b776f29ba292bafb00943cc11fd0e046ed58a22f1d895acb5b4d664a5a661eb195f9b769a3b359f07306de0b16ceda1548d9ebfa4c3e3114af9ad6185e576cd78858e54a9280d09a709a874dd1104279ae5fcfe662dbf2dc12e972f922e245fec4ff48133f486c789aa367ebfeebd4d61993c51c3119d873e149109bc209996a9fae72f7c8016d3c025a15172fcb9d1a0a2ff20cf73c79f862d31a51aa29c48667408a50362f5642e2b5febaa4f6ee5abdc98d534e7738f2ff88af3cf40fbbc9f78772568f9b567a535c487b5d61567683e565337297441c5c3d0d7a2dfbda7096e4d1ae0823a42dac836a3962bb723f0170b7ca440544a330d5b92c63dcb943fef65100b801098a18ac4734a3a16e0ac36542bb9a228c94a9c5b0806d2ab2fa4e41765580939c1c9e8f1c236c3dc75cf5ad4798ae3dcccd2f40328084d6ec0e4b01bc0b67edc55bf052a149ab97a877b7381568e15ecf35f28c953879aedbf03b66ef892f99547a4787f241e3ed4ac54218f73c84f6b56a5f7a86c0c31e17128a9bf5fc546a42e9d14866021a3e9c20ca59d190980d5267382fdbe5cee776709c0be18e9b2d5c574dc571cb06818208bea53f5dd1111cc10c94998fe514080c366f0ed70b13d72f52033d7a9360b5546944ad94aa6968e225ac667d9e0fa23028ca2efcba80fa1fe6280c9c2ca04d81fc75bb2466b376d6b713030ebe511550a67eddf01888836e23f83f1687dc1061716ebf8c8efcd0d88d80b03435fe68111857964e0d457eacfb7d605b3efd978e6fdfe6cea7f4db1409b8439dc4bcb4c9bbb3d8934aeb070de4b86c07e98dd0836f9b70b61004691b65df89527f0af77363ef92165b09d67aa627754074f3de37f3c09f32f4c5a1a6ffb0214d4a46b203d02ad6c99485da4cac13353f12ef7024ab6994d40a388541799d00683f3c36b60d2fd4a831e5017d780d810e9f16c9cdabad5f3cbcb8d6ffa7eb371da916c4126edb0df1335ffc5d322742959e001edb3b274654bcad3a2c50e9f9a7f98187ae271058e475eb527713d344a822efb825e70346192f1ff892253ae6f58358de4e53e76428e64f589e1ffc702cecb8ed84646eb960046242abf384667762f2e102ced52c6fe29699d2cfc0e7bb27c6f2e0c8728e7b64a9e8bbe9b3907c63e0edcb497a0336acf6371a5aa008e751ff01fee0dc4bedaf88e2e6281be64723d96ba49755912b020020e30218a064d8e4bc5dcd64f955fca447ca27efbbe4d2cbb3fa98c1ae4ea9410d000001bc0882b2fa9f550871ca0baecbbc21584f6754e4ce360f15026ae0970ffc19a289f5d6eaef03bef4698573a8d3be5aafcee2e5f5b93ad5046b469363a101123d2da4e11f52036817224b6dfe1f0767618fc84ffba6ff86a64c074732448eb8b0d8d7f92042ed9ccaa7838adbce2b97ad7b3fcf0f75dbae7433ddf40b9b2d41dc84268e523f3530dac6fe6e398098a1e6684977525e93b590c585236694c7911673bf18845caf9998db43906220a831c445a228d66907412437873d00f6f44ba979f1ed29d22bb59aea42080e51732c8a6977811218bc51685e0176a01dcf6b24c165135c0c55de00b5564bf8f69501fc569084237e0e19713685a7c827fad7daf92ef9a3e41f3334c930b1d6d6ec7d5d160e03716c76fd39d3c665c1ff2f46ff44aeb12a1291a2079737f2f9a0b269be1490978ea8fb5e73469c21184abbdf11788a37a2c7902fb536321767e0917a99be7f906afee39cc9d407b25a7f13f99db05f4646597c9d24d921daaef2eb3c8a35c5e6fccbb6c7f2900b948855234ceeb8a11a0673aa1c3be91d80081b8652f1cfb0a55ac105941ceff64bbbfafa94490f02f87b53490a217373250700bbdc5c4292c7838f28b6085a8f0b5a85", + "response": "", + "errors": [] + }, + { + "step": "aggregate", + "init_req": "0000000000000001442484f0addb0891204182b3519d640000000000079a10000000000040c6f748dd09175e332838eb984c92b66e30056d4c4cdf8995b4b04b5fbbddf785f2922bb21be3e5af43b6f45f3b47bb8dbb0a935d28cd3f83ba7edb09a754c4250200202170dd8f86367bbfea81fa2368d0a5ca8cb9e2cb6e413885023f27b5afd92e3d000001bca376cd186f1841b33eeaeb9744b77d43e1f02dbda704dd9290656328801033988ea43e9ddd09ef1997bb646d6efc737d052051a61a538efcf460cd9ea514f7acaf12fae795fd492576c47120706aabbf6ca8a1067f73aca72e692bbbc7078483595418b84ae02f621ce8ad81fa95b986e3d0c4d5865a141cfcc874a16577651801d0893d7b3a2da812ebcd2bd91eb531803a96179e05dc9c5ad04d9b2571e5967d7885136dfa863de5b83187a0bf3e88fb928c364d29aa22afba7be34ca48719be31756bdf28f60f32062c23b4ecd02b0fccdf06220459dc9d81a39fce145c739e927e217daa233264bd1f09ca283259711891bc48bbce474f5c46eaffdbe2158effd17c291a81b2c850efd47619f8e4b03af41a812bb8e86d7500bb1fbb5199864ef1ff0f469bc182ca1a1bfaa4cfc11d08c35738959d1c5d265e05a5301dfec90eb0ee19cd63e095a7682a18126bd1cd47fa068b7f40eb748ef3b9f88e9c13f24ea64b37b8f1e7c636f3407e5768fdc5917970eb3a1404f2e612d02e5eb6b353827384f38bd450f85fe54c33e14a76d96193c4242f44cfdf7e96226a3a139b1989661561a4ac8dfe6d34c0e4a502adda9f099894671635b382013700000105000000010074e6494f03d2f800ec892a6a1122228923aa8384ac512d052604fef9384b91b9353ef5383cb6ea9f112c7548d14a7b291313140c9de697f9670990219cad6b91b1907bd9fd5647f0d658ad689ccb7025e7149a5f8eafe4081471e7facd517c8c07ccd200ad1ba6cf6dcaf58896b677d1681ccdb04ce1950cb47773694e0e036c55959f9525612b3cd6be024e664d4eebae755fecab8f7eae0361b0023fc1d521ecc0b1181608ee6e867fad14432bfb4534f468bb9dcb4568a6d223382a3a4e124b67235da630bc7a6a9e1577e68c3531d131761c35f16c226c2e9f536b9ed18fc6f748dd09175e332838eb984c92b66e30056d4c4cdf8995b4b04b5fbbddf78503ccedac589182bf551a38f2c6dcb7220000000000079a10000000000040449e48f0cfe3067afab1aa063c34ce5cdd73dca56b1370cf3600a88a8b7a95aebdbf2efdcf40d28d5b6dafdb6bb06a76ec31216752873858313bb58d86493c620200200a2ce422dc19aa437bf358d6c0bd27e65959da0522f4b55a4413831c0266e95d000001bca95c7693e10ce804f8fe4750f52c07442f7d1ecb9f94204136cfead24751724a3ff3ac0690a3dc75cc6b35fd40e426383638f194ad0ed0910f22dff871bc4561496e23820ec9bf0f479e866e96ab699dfc63e84ce76d9f018014ce576b14fe7a49acfde493dd7f7d95a0d9d36d8afa4d9651475fbe977f10653e9c788931290ffc2fa4dca6fa67455a2013e0b93dddcfd7822c76acf3728c391a606cf49e56c79bdee84d52ce343a1ebe675b6ca17fe5e436ca7f2975b4f3a75c333a3bd4b2c70ee491fa9cc6f4ff52e17a31a41ff7aa2c1207300747a31be05bf1bcd807bb40f01b96b1e54f79080b6b36ab9b9a0ca81e79853121eb862ba52fc7ca89968860b343bba8044b01f3cab364fc457326d5331bf39eb22cb8e49874f3e0cd857ab57bc7d7a68727565f4c5973eff3ee6844a0055b7311a88e5444727c1e9f94c89da878404faaabc32f6758127aa13f95de59a8cb01da6cd4875109d33b7883be5359453f94f8c1fc0ce5ea734c08dd7cf3749bc82f0ad8a488b23ebf473077833d55c0afb2b71307ccb5c4c96049f3d9492a0e98ad600808149890d142c3cf42aaf83977fcc89ea730016eeb7d78e921dfdf399c29f90950c9d7b61190000001050000000100185f9b3b5a1e4a621b13d6796ff24b46daba366391448682ce369a31c8b948ef2d44c1b85184ef2a8a2486c9ae92ba39895da889f9b52326de0cc0f7b620e5280a1687a7706ce773f12eb434cc26506fa23a36897e44b2f04480b9c38c6dd0dc15945a5fdddc05d250fb19bcac6d4df42a744f7e3595061e50d2cd07398f3a79e23297738a6f2dbf57687e8ee387ed80a6bbb6d324786fa3bc46343c42c9c2fabb900e3ffb91f2dafeed1585382fb3885430d020c7176ebd22eb6cf163a7c56265f1ef159a464c119c224fd1a92df803b0063cbb11dce6a18a857a53a78631d1449e48f0cfe3067afab1aa063c34ce5cdd73dca56b1370cf3600a88a8b7a95ae046d5c529705d964598221f09de507f80000000000079a1000000000004031eaf76bc7320b87f6450178d7822d3ea62aebc1f0c7462a5915a9914c835ecdaec6a609d0ee89cad06c0db5bc1f917f30cb3c0924643c45f9b64409ca05c00b020020318aff58fb8a95c5e09c3a919e56c763f215963b5a9f879aeb36f5f5a04e7a01000001bcf47e548d9fff387814ad548c9db72c629ba388f700e903c47f4f14537b2b10c7b161cd3eb23535db54c1b14c7c3e319a6630449d47d26b5daa36a7cdd8c40edee17c4788499ff6a883fc75a8069e3c81168e9df432336fab3adb8cd347dff19446b952e5aed5683f2e3d4670aaebaad80a8741c639488d49eaace3cc4c8c33e43286b3d9b520a8e8158777c20a521e6b9868a03cf363a3ab8dafd27446d5fbe395845fbcb658b35a5c43a192eab21fc37f3cc73efaa0ee50fba7f5cee605e5eb9c58ee1967b9cbef7c9c2ffcb64c8b67ebce4494e4cd3d539722b8d87f06448ce8ab37504d7dd32abd84168940f27f53e673fdd4b64d3378a7680b7c2834f0f966cd405eb13320a00040b186b2f41075d5078cf29b8dfa30cd65eea2ff8dd80d15dbf19eff3f6c8b3921878fde7f10f742dbcf21b06ff5c2ab20dca291a159376edaa9e1e9dfbe86e6d27a115fe03021cd5ea8aec300d13b0612139d396edd623ee03b3966cbbc803e0b8b6ea077c508de0f555055a208998a1982e450ff6d17d1cea4bd537e6942c5a908d49f2a82734933420120b045fbefc1e6487341806e1583a3208982c3a299f54293cfb7d1981b271ecfb32901850163de590000010500000001008f3d07b9e6da6944dae1c1ef7e4cecaa4c8a6fcb52bf4eb967999fcf2d80bb2ad23bb63b79eff9f4b5717eb94894448e61a06a6e81a5a51a0f9a786b41dc0c865dd177228736de58beff13f49c85053e30bbf16e61a3095468d6a0746f3bd8ccd3a7491c7553f88484a417c80d2fea679b492fab6d38d26771f8b478bfefeee810b1c6dc58f53b58bb7a258e27710cb1d1c4902a50595ee613c8b9f088c8c5d241f6815d5f912333596ae9ef88375a4e06796b10b914c2942ee82f28b9aa9c7fd29cb29d83cf7ca0c545158c66f59fdfb64bd28c6e17660056bf15b7757c3bb431eaf76bc7320b87f6450178d7822d3ea62aebc1f0c7462a5915a9914c835ecd07a89174d08148935ca9c245e9087bc80000000000079a10000000000040e5c81ad39794ce846b56d50ca96b2678e6f2a9edc43a3ae70674c259a6b5976cd1f3bcbc4416c2c3b73301d9ae7adc3169251d6b66dfdb1dc690f045983d781a02002095a5437e1c26f8d52052ae54f8a75c981d072482829c2d175953b7e3c829791f000001bc5bec2e14eac3bf14c0367931b49a8c3f1d119aa36494dbd1bcb26ad73d2bb2c3a67f23cf8a8337eecf02b63dd96af7913753cb6a57b00c092241412a5e597f1ee56c2be6057c591421fb3a8c4079146c1274abe05c8f7b2e5de5a71311afa3db8804511fc9974c9d2d497ee061a6c9fa950cbd38a0c2d3b8993a90a95158d79002e1cec7d6c1c3e9b78bed5fa04495ef728380fd1f75354fb5692c1ea0e4391dc94840b523172004cf4d6df4d927cc07a726ca99002b0d50aa2f8cfe20ba240c97ba9b5d3d5e88394028dc0d206142bdc3b208da3dbae7a89c15a19b5046a04d2d1fb951c5bc265e84972c953e292e950670b959b92a2af54f76096ba570022a01176766735ba3b771e5152d1ce73ebc247fc2853daad67b755ef11324d8175fe9729e02341c5eb2fe783f943a96fda7eeea6117d935f715930b93637d17a09fe639812df07fec9b3b4ffc4614df061cf183f245f4511bb8e819d5fd173b67ee0b9ec45feb84f85585eccc7d18903ebe18bf06665914a4ad876d2ab8db7d09dbc3da14b484706fe17f6c9e6403876c302594c723e5bfaea24b0947dc34c32add31a38826853681769021e0aab8538fa04b32e80b0040f9aada0244e800000105000000010079fcaa12fe0b6c8f1efd279786748f411a667e9d0a476a9eb5995ea6525cf580a4fcb1b349d9b64396d99d508b1e29cdfbc6d943fbd382031f2ff12ec8cea6300032f7b3a1e22e2066d74f859ac74a4c9217efaf21602b46ea1e603103e12dabc9938464248b6de093b1e84a34bdc41b746ebf1cd4385a228706edfdb85936c09a632be31fca5fe1931a4216b1d2d5e7f42e81c71cd90316da2ab3cba246a82411fe2217e0d08212313e9d9a1d7a88a87ec683deefd720a334519b93d722f323e44740aa20270e5db60aef992183d700b78ab74c79c24e90ec1f252f58a10a2de5c81ad39794ce846b56d50ca96b2678e6f2a9edc43a3ae70674c259a6b5976c0846bb0ec4ec76df3067162b3e6eca3d0000000000079a100000000000404a45df553e22a6995e8bbe8fb152ca00e6032eccc5315f63359f120504f2fc5b30a66bbde981f1ad7d13a092302c3ba347d045134fd681ca0ab2a01cfefd8884020020872da097fafc0ef9ce295ca65ec0cec987347739bc91dee0d98497684973fe44000001bc3a210881fbf6f8ba9666ff3b161a939e81049f3ab48ab19629e49607253d89678a747db9f7d7a6123ab8f4dc7f62e1289f207811ce577c0cbb2052af47728bb6562e064e1c2d1b016ea4b439f00ee19085630806a0ef0f0943f373b247bfc6f1abde391632018a55fb6e81ead2fece59b3c430da3cd047ec4076f0a37849be078ff005353f7bc9650428d29b37fa7146a21b226b32ae09dd0cefadb728b02131cc50329f4c6a65a9fd8f960995625ff2580872d74e0279389b77ae3fd353229e22cd10f0ae8bbaef41a26a1f1439fa932e913efdef39490f1f244832f75ae16237e40c83355b0fd0833a823a926b4fd00c4b3f93bfedafa276d5d9d496b74dfc3953ff126ff2812ea063503ffb0735050c9303f3f650dd90d9fd1cfd0d9fcfd252d982b2df182c3411ad3f673b296d8ad69fc6878fb6b2f9ed5ea615da71851c9365f6e33fd8dbf267e5869add381a54e08839b3a4b1b6e4d17ee6137d4b00b53cf4b00d803522832e738f3f58abda4d0082dfda448d422ab656d6c548c8755c2c6071380c87b73f3c31c32e66f4d49592903b08ed616476294df9b138eec7d96d20300448e0a82c3456b0aa5782a820324395b88f898bd33ed7cfda000001050000000100fe3ed414b8976d745a00aadb13c08c3bfb7c7e8dacce40c6ea34e11b731f4888691f99fdf6a9833ba9767eb7335ebefc50af641585a62aecadfe5b8d126f14f46c76a22c66681b51be71346e71db97073c34aaa70cde3c7ac57afc30512350116640416d277d6d736b8c2b1b7164e3a48e78e20ba69f9ca46db00d8522fa3f8d29c33e30bdad0484ab85007e0ea18cbf6910d76d1079d36a31538382e323d7cc3b5451649bccf3325bb1f9cce18ac4acc51a56e7409b159f2e470b03a40561043290e355c46d37dfa1179f940c78e76f473bf81fe7c4bcfae409a9d21973ce2f4a45df553e22a6995e8bbe8fb152ca00e6032eccc5315f63359f120504f2fc5b10feaab8acd5537e003d724bc15a5f250000000000079a10000000000040a1371bb6b1465a93b188eeafd21581a095ff063b206b0c271697b27e79b4c9bc2a9fea7903dcbc69045fa25a5c14014f1a959062fd69f0eaa4cdd31191acf8e4020020c3c2d132abfb710ff2bc5f475eca030001dcdc4817280aad6cb17ae149738e1e000001bcfd32218cba4d2740e4e900784a496767995d001151d038b3c47e5e93ecd77793899d57dd945ba8e6d8e6736ad521e4581dc5109fe98d2307a7d8551609704f3ffdb151b46b238bf7d6e215b99c8195b1a9563ce63861736a6f71849f0e7e99a47f2de6d1f43873f2bb55e964cb338bfded3c59f6ecec9c460ceb8229a1859e001f7cb2a8d817cce49318b29e3055773070d1fdb4971ae1e54ee6b1875f79ae0475718216f57077846fce1659a4e433dc95c17b8b7612ae1bc5993cd152ba6aef4d38a60f11d0be84c67e3cfddb54f8ad9ff892a81cc9e6e6141d2a45bbdfdae32e4957009bbea2ab33b45c759da63fa678ecbb8ec637d62ab944403bd8db86bd86073bec0222cd6e0a6f866fc5de9a83dc7eec224585db4acdf3d65af876eb0d1f884b2ab476d2dad85f8b326698929b9b8640d87f44c62d3f34ffa39f84824203cbf233ea8bea52dad2b6b752002eecd633a3189d3f00d78b19176333bd62f56acbb991dedcd9b4870cde27b70d885abc5105d12cf9ada6c10900203fb3fb68e04717e53d40204f7b169be032edccb5782c12f8d5a0b34736a592c753b5a7797985132ca224a024a355f72d4c1d1a28fb62cc8bd3a962ec893e711000000105000000010008be7c2213e5fc601e49dedba3de8478508b4ed8b6755718fa573c8046cf90accb03908aff80124dd365a332b69d0c83daad17b1208cb15fb588fe21b8c9c1276df5a3ceceafb39f53241e335c717284e8f7cee0430fe6c11dcf1591789f395c1cfb4845c91ec3f6e29757972b50d97b9e0ba422c2bc89aa020191c0052629e80b02f56a097f2060b96c5c9330016b1913075f21164811cf85bb5271cee315a15fff413c9a651b0f6c6e1f1199c83e6c450f2921efb5fe7954d01084e6519afaace534e19eab0c7aff189de15bd044be36da23d973a29122d1ad916d289fe1a6a1371bb6b1465a93b188eeafd21581a095ff063b206b0c271697b27e79b4c9bc1d733e148f9acdcab5c2cf2a39afeeaf0000000000079a100000000000401210f492147a69cb6d93359188b822e0c8305992108fb57fce4786a59542c4210acf06a6672c8b2fc4cc34cbba46aaef7bcff6a4a1a990d6ee07015652b4d9b6020020eace0b2e6ef92390d3728c8d0e80a7e42c7f1790d5dea5a5bf64ce45c2248574000001bcd552e50314e3e56ec88b06c562ec56fbc6e7399975f8da1ae149b8d61cfaad451c36c76a495d39d62a21b4c7f2fdee3848c3a28602120ee7f816c855cc9bfdfb3cdb86225a2a8c9deb56b04162b571bc17a1f976e8f4852263fa44866919a66c647f09790784370f39d7632cdf6dad368d846d2d10b1785ef1f9eda48c73563b884fe575708c08659d0a960195167dbcd22198c0a958c86d338219ba2856e51148caac143cab67a5e9c9e1e5e090bd2136a2edddc5c1c246e5d96a4851a787930b619e3b0a8d452c6fb68e547d2197d801b78aaa1b5ae27a5fafc3a0ae63087996cc1eb181447a6a311634e781a21d0b485c13432ad1a0c6ac3efc7f624ba12d80e2cf82e6c8adedc153977b58176f47df1cdcfea6010cb59ff18e15283041af0ce28b48a385f14228086ae5e45d5c5f09a7fa3061db6f2d5b6423a97e954b84ddf8187cb9c86402c4b3e43552db1a99696974fc040347daf7b49926b5e25959a21a5210b08fd6603a5994a7c6b4506a563c9ddfcd4a07905f4f21771180485bf117a636eec1784ab1cd544483ce591dff0d594a92688df23a08c114e6b3a9a48a063758e8eb5dc00f1a23b571f72c039a5f899319a127bc3ca739d2000001050000000100cdb8ba1b5e4363ff9e4697565534158c48b3571d78c78cd88bebe3cf0359dae808f635a72f5a51fdac46c7ced22b345462fb9092578faafef9a1f6e9674d276b9683c97e66d095aa4e09898599711099bde1a47a8d83c5040ff45af52077d3acd36d01f9e947901ddc8da1c7ca2798bbf5dd3ba4260057fbdbe49c431791fb7d467b228248d09513dd3f651e6d0b38fc0e37996f45d607c2d8f070af34007d7009f358ea3362a42845165d60e240d06fa23d804717b610d866a989da9667dbde34cd4f6b01be4935fe6c250645c3afb284118bbf6afa7df40e9fecd60ea233f01210f492147a69cb6d93359188b822e0c8305992108fb57fce4786a59542c4211ddc744b7bb720ac472fae590cffa8cc0000000000079a10000000000040c1b43b67f6cd3ccf4ffebfb4996d40dc268e87106293908a053396525ef1b179126cdb9c1404f1e371623a70f3b29d7dfb223377a818a1ef69129a63696cdbea0200201b15ff21e42c3c1c4f96b2e33c5d07f98ae35674780a29820f096ff4e289e857000001bc82be21ac8c74c220cae62e266ba30fd96048162555cea4683acb6b9dda071860d56e79c544eb15f98617c77295134fb56eba0651c7119f022e1f13ee375a8253e7319902957a94857b44cf62149c752984d07ae659105d64900840668bbcd1cb6ab2621a29b8638aed8408d473d6dc58413d5d1d4191e44dc92af0bf7e287aed6f1793cfb2b221aedcfa3e7ff482d07a826d09a5edff75e72c3e330bbcc3fc1d806d8009e9d6f2df9d93c8198faec4ea50c6d383a656d3734f350d4d959d5c21931c327c2d8db199095153959cc9c2e38d1d2da01271150632fdaf231d5b82cd792af736db3e1c484ba25fc6d42424b508ddd20910ddbb1339c75f30c4724752b4b811a46cb7a17ac55d004e31c7da870b0b82709c3e8dde4347f8cf3c84045f7ef2cc7358640a0c16f8394063e74cfb02fee8cceec3a19ef25488e1a968f5cbb816aee20847ca5aef37d45e1e9ef62ea978aba3123f9fc5df99c1891107a4dbc1389daa10b5aa175e1558b2556119a37f8446f0a18b425da0204d4eab401644e0c3d8229dfa637d0055f9484d36130fd96aacd538d9ff1f63805f9b494bee1e3ef3ce83ce3153e4a87f2dd6f774df6e52b4004b753ccd984729b8200000010500000001009b8ba79d305ca7451f1853ef288fceb393e5ae205c01e57ae632dc953a317bf4a7fa8db4ad4bf2a5f2769a42597295b0ea02d29e84748a745cd4607b9f449cac95871eed1c4997b2ffc25a5936ee9624d18e18e743091c6097b2cb16702edfe131aa197a221d87b42855a193d55d516766007e753f1351820bb43bc9e4e468db9e99b5aa2e90e14bf15968ccb9ce2889e3671889a2d0e71b8e83cafe22012366c19e042a97d9e5ae8fbc0e2c8a1f6d059d0f14c7d6a07d5c8c34c7f95ccfa961f24d38a157afa244b91d1bd051e887b1bab33be0adcbee329c4e22e0905030f6c1b43b67f6cd3ccf4ffebfb4996d40dc268e87106293908a053396525ef1b1791feb5ec3feea92ac3278491c59fbfa740000000000079a1000000000004002e49d0cb3236066de79301bfe6a837d126ab409491457b7a13c54188b1b9bb13167135cedbdafc1e8a8dc9d1d7b182cd6c88b3969e8367e1b659e3941927973020020d42b8b36308400e4b6b9fc467d8d87b5c49f53e29d1031672a45b6d0ecf2880c000001bc227c649ad5f13a54beb4cfdc87143025b90efc21ad8da88fa457cee32aa82c55109a5476545005f7a610256dff3a8f4127125eac3ff5abeb3cd8bd1bf98b71996238deb8986cbf0e2449b0c06cff45becd09660b9ba59cfe7df917f2012ccadb3dc2f346f8d5cc273adcfb2f5be712350982cc1edf139b7fe9ec58cbb253d0344a8cd03f0255014d261d61afef89a2bdf6cac3aa28fe834e52d07a5d9efdea25f67c086442df24bbf32fcba2348df4b7c6f91f16ede6ac60db5b7003e9ce24f4857c8ce9efb4bd3dd5f070f0f0c8995391cb1e18263c459fa5475dc85040485b33a290cba9e101f5152dac5415aba4ab427bae57c3053b53ebbb5f6e6b18061a0cd74c81f12e9d97931f043ef8590e21104bd4a34231e44a1edd2c25ffbf2a4c718c0170547c4c2a48db7a13bb372bb643dcdaa21677eb4c8521cdc9e4fc568c45ccb4fd1f8fc5294430b3a552f5d79a4269359f140e40ccbde8c5ea64ee5b450b9f371bd70a0aee56400ccbc354d4bd9b57428b282c15b0756649223a4c5154060913abe0db0bc5050a8f6852b8b83fb95385518302161167bba03aa06ae82f19140252dcf720def2eb7ade8384bbe44cb1ff2e8b584eb6f500d65d0000010500000001001b3d6af4f9b06c08afd082e252154252029a1cc84d0e82130a49f0aa9d043e6ad538e96eaa9e28058752db7d2bd06ed4d7da044d9fa78a01f2e65af8f08f1e2d17ac884ce13b929d9b4b5e9e37d208b4481debe5c74f00fc9a5a8ef47800e4af3680410a8a783dcdc3144f9d51be1883f08b7162a7c6795c0c4f3fc95b429da9199f898fe1f771f848f08ea1a6aaae9c800ac1277639f0978f701291d0136af69cb47d92f2b2878d714780ada3fc46c40efe268611fea3bac12641f9ddbb2bcde591371e6f3012069ae52e9be6e68c268e6551057b366c7cdf6c7a81c7f8f77002e49d0cb3236066de79301bfe6a837d126ab409491457b7a13c54188b1b9bb12155b4cee0b59de4b44ecb8d177effef0000000000079a10000000000040933286373fe389babbc433acaa62c041cf71dfbaae3b600ed6a7770b0ad32cc88233c20cb6945476dfca05a64ad0a8d685a210559c79074919fe1502d2c5a972020020f1d87b6735e2bb924b5631ea63ac290e9bab009325ae2be2ae2548ccccbd3f26000001bc8f36b0c005f86f2617256b8c0280f1e68b405735d04d0a954f7c922a3b4a63adc3b545f4a4c2cdecc1f0754fccd00998a5fceead6a7c843d2d19b6c0eda6abaed86bb067419f17f8494f6d1759f0f3a2a66330436ab042482cda55a8aef82833512367d97c02001062b4f95e3961a2d5c245d59f59dd44b7fe0cdabed5e6ea80bbff32bbff9173a8935bae6c7fb961d47c17e9f5da8ba4803b2cb8b5671354a685e56c6fc9c45fb728a87d00ab8e61c1a544a65c2496b13c79d75f44e9b0962e5a7e174d5ce4a2fe7757a65e0334acd6d1b3daa830ffcbed00e5343edf2148a693914c015c216e446c3aae888b6c95738799130c49795e3277347a06b9e594f6dfcc166c86ff8cdffad83ec7649cae4b63bcb4c15557cc74a0941dc2cb8bf9cd4df50ffdc9b5a393e9e7f9379344482432ebd37c7becce1494d36c649033364de1aef90c1f92b7e431245cccfd9dbf959cca9810bd7f8ac32b32573b57d1ed1720162d7995093d0dc92b64cf89f5ed28205c82bb0a4433c0a33c7e453a14590ab8a988c379fb7b2178b5533779a6e14381c165aec10a86994cb5e2d31c9780ff67774f83308c482587a636c54c050aaf8cfd03ddb20d56e6cfea181e000001050000000100f522174a50c2703e6ed7c573de8d08e50863dd72cf5198c6ce15409b0c04f9726bd8e273187e6239521e29afaa185dd541ec6922a784aa2fe0ae14669581d0eb64e00760c8415ec0dd5faf7b3ab0d2bb37ed6f46efa84c9898704be9dd376815bbcb08e6b28c49d1ac8d41e02d773ffbb8799c5a5636ad7449baec9b791975707762789d103e2b771187e9e85c809bd6ecbe7a1e613a6a3d8c1b419bb2c3201e4651a0082f4a92e738f9b4bc5b9a4f42d2703a8b4098cf00af012094c6afb68d5a12a20890dbb9d1ffe6d48e6d4d39607e683da0b24fe0c0ac074f7bf8cac22f933286373fe389babbc433acaa62c041cf71dfbaae3b600ed6a7770b0ad32cc82492411023c0a390e1c83c632421b3830000000000079a100000000000401016fff6dbf5a2cc8969f5aeeacb66beb693916d282342f4ae890b39e17c7ad0e6829b2a7064e495c038bad7cbd4fcda5a1ec1ac2447e993add1ea4dfe996c3602002022565ab13b1f3bbd4333b10473fab9efc0b143ed608ccaf6a920d10b6472a727000001bcbf081ea12432b78c915dccd9f20bc85c11081e52e60d73d9fb95148b3c97f2251d2b9de8afff5ca57aea80cde9b5185ccf8732a9bba8448f4ea986c04d174fdd5e3655458f308b7859274a2b0b54b0997d28d0385bf1409f893b70ccc88df8f5ba527cf9a212a65b668f312a1448b3e038328cee6bd8625c8270fbe90a29ca374c2ffcdf392715ccc0cbc227169301c71d3678ce5583a4ad4fe47f15484996af246cd2f1fef3119752859fc26ae9c1770aaebe77cdb3734d6c7359bdc47df99334c06f5991a36a5e7b03bc123fd0919e229a109ed92ebf1d16fbe92cb7dd3b3bee3d0eb2aba59f0a4cfafc11d82c5cfd1fb904439fead42d1ce681917f0147fcef0c10c45b59d5421e26c75bea9e0176dfad738509634ead33ec2c3d209aab263c810f1f5556d15ee60cd74a7f3a618c36be74c488476d1a908118bb6c533fd8edcd8c0d95ee91a766bb5957e3f818f71dedc06cf4a9d2f6c2a145a968ed78690770f110e9fe2dcf1bb6d3acd22cd1dc423fc41a7091fc083d90a638dde498bacd2ef2189911e8f4254d5a363338c4013dce2632aaf1c9c5f7c9623e642dfc3454e7dbed84dc27e2b7946994b5efc18b791a8ced686944aaeb7c2814000001050000000100e558cd1bb8ed936fe53c050badaff635163134436e157ce7c934baa70c2c4c2baaae083075898a8622facb9a52a29ad7e9ec9709e6a50354a866bd712fdcee8c3b2cc0de4a92a381763e8c7733b9c3dde49e4f32999325059b0a3cc4f1dc52582e0fa054d409ec4953c3c40865cbdf8d1db4c3117cad2a0b56896c8a1823c5b7d0cea2590997930127fdae0931c747ff3f7abb5858c5514ca82286290174dca67d184e0699d8a56ef7ba605d308ab041b595c0127d2fdfc14435197ea11392feba0372a48638c63f4361fc7b18526c62203be8b7d8c86e217eff7bd2faa708b41016fff6dbf5a2cc8969f5aeeacb66beb693916d282342f4ae890b39e17c7ad0253c3c4c3a332d728e5dc933e8cd44500000000000079a100000000000407426d2487c557e11495372286112b6a6a12e722caac0d1baf88a8b12b728a7f82daaaf9eaf456d294a102808442da1d8267f96da1d461e9f19a16ddca6850bae0200200c180550e5c49dd17cb992b37e20361a5bf331c10e05857e1434209f11ab6b02000001bc3f0bee1c50d0e6f22a48b6c48e888e1e71e30a649bcb03d05a10fde6a305b9bc42a096a635c524b718efc750d6053c41e28f06a60ad7ff08dcef97c809a1d1cfaf9e44bf1a5039d69a3bdd80e66f9cbd2705e3f58ec7fbaa80ea27cf9fea8e5fe6db516ded192028e10a8c1c0da32b4535d11c1bfed3a4ae1ac1f1234befa208a55e5bac899ec36d41dfb6b2cbe6ae15a5410096537469dbf641ff61f6cd46197e242eea1cf2beacefab4aa84b651e9741a6d753598b45a45a60b6388e5a11de48ed6c4938216634dec5fe1d7146a29e9295573fdadc69a0e29529478de882db15a49bb65bfd2fb7cc61f531ee8d170f603aae3f729aef65d8186539f051b46669f6d8b4f5c7e17f4735b026b4834eaee08e3e23bab26790c0b6bead3beb987e17b3acb0b5514a211371c18df51cba74cb8565885284b1e8fb82f0e43265c34fde5055ed82346d55c16588dc1bf2fbd01706b399518e823a0d833eac21c6758de289216de211035c077665b2ea03c3ce4e5ea157c66990ae41d8901a1b21229401bfc2063931645a8ac5b3e65b3e4efc866d5f93d239a35329881d9e0243569c8c8d18fa81d5e64722e3cb103926b78eb62df253a59010f816fc826500000105000000010005f46caba5cbd77cadc70c0641609a882001e15066399d5fb011cbf00872394ba952bccc7a085502827a099ae898043380cdc3d008ec755c02b7304f8bb09c8bad635b9c2a6f4af5a7ca2ae5b59e8961ddf45e74b426b525420a3119a55ede59063b81c8bd85c5906753093d23e1f0baddd307549a1ff7a3af524037f1edcb69687730a2390e443076a3ceec29124b312445e6dc111d39ddbe9526be53e4c94557b2d6aa2a872178db1e7947efa2bf62c142e5b82481c20961c036ffd7d722793b25d29592a4bb2fd6a2ec7c1f7136117e6ccaca3faa881d11de1d21b99c554f7426d2487c557e11495372286112b6a6a12e722caac0d1baf88a8b12b728a7f8344914e2c22b25c74930c376047ada9f0000000000079a10000000000040afb78eab3f7c297e03ddfe1cf13b40e83667f1be46d11cd4168896024bd01e9b1c358303579cee4855af66358c9c852a048bf60543ca9be004fd28484715e2e9020020c85c35e7fe23b888eeb5a9ccb459b4decb66989841ef26b7b44671c9a6fc2b78000001bc57ec1ddf5d01bbf8a5a405a8354ef2dcf0556e54e296adabc75fefe75fedc11218529dbc69c1a005821eddf942c70e46c274143abaf382cf20f0b7f8e93aee4c79ace33848a7d1995ee7b08a24e1eb8ded0a5b8ed4ec86c8925d4a53c8f6b0896ace49cecd969795335d828587192ba6bca7149261e4d5a99d78087167d0301dd7936b326b216caa18972b01b9f9b7d06e1762c2ec722e3149341e57e2c3dc5bf90dc9fe9b84f6ff637480eef10d1a89e3b9bf6e33bb5839be218885e598565200b9757119d62a9ddd6a2af42e7634798a3c6567da4bc6e56fe7e2247a501018170681a7ad5dd2dd6a64f0b9dde8d1cb43276b41f7f92c9ea3833be9451f48ef9e0aa702a2b5443537a9f8fc699efb0514c8ff3bf8f6fbfb8abc2239abb1a89194b2a27c97e421613df2fd25ff6c6d6a7c78f3104cbb719ac2354604a90b2c29960abf39b04ebdcf43b2142ee245bd4bf51ad328f98a1ccb70ecaee3cf7e233bbf85231091fe8b01de4202fc9579c893e370a57c9f32a5c6a16587cdd473d4fc994c38979e9cc4887fa99a887a4e777d2e02cf2148d34101b8f1a9a679fafed3d632708e5ffb542df935daf3ae3ae41476dfef1eaca2eeea5ec1e64200000105000000010044c84c2410ede535953fdf0f6dbf3abd4cd93940b16b63b6287f68743ef6da57721e0a324c47bdbcb4ac7a6e49155b30b98297db6c46458a260cd5601ce9788379e3a5c2a9eaa31f9e3c188ce332323d600e92d0179c3ff8b3183cfdc6c143f0721ae546ee5134df9798d8706d81f3fdece7ef134c5823b91daae714e7aa6ac1dbf3001fad326c79742024ed688bb3091b65f0d283bdb3bf37449cab29a92dea99b2f00cb8b95880551c774182f625878c72f37d6839a5baf44bd7314145d18747deae4f9329d95b016a40c96de77c536f88b95ea1398b926feccb4b023a3227afb78eab3f7c297e03ddfe1cf13b40e83667f1be46d11cd4168896024bd01e9b37056833df41cc4e8d593de681689b370000000000079a100000000000409a46e0092069fec0d21bc620296e79d01c90cb7f8fe5a0bc8a101b8e354e2895da0a384af0e36e974555f17ef80b89cb51383ae854a7cbfe84833b4acac5709f0200208b9b755a892fbe669907ea0b4981253c5c98884d6c7c8f73113b50d8e7863000000001bcc5c78e974def4f5ae98dd3e37a1f962ee888088f4b7d86c8ca6fc9ab1f3848d5e92a5634c3f2099bfdee8cf5aa85f789ee3f44c853715ae38b8f55a3289bab95fc1aeb99454699db7c2bbbd049efa9d351c4aa1786f0136785051e3258d4c461a02195d66c268e46464c50af7af8bb6ff1a144d96d47790d4a03f05278a5df39999e75305a23582703c15b9a0a1d9810da39b9e630e4695702480db06c78147c56d69142b58e34a7470ad5c2f41a78be80b65c4344b08591021fe953c01025b439f77837a6f3ad4b38c25cfcd76782898df0471e6f11e543c910fe9c77e7c88eb57cd357b42bc4541530bea1b8546745643f702887929a5acf3735865dccea19f6cbee6042869ea93334c98f3b8f75e59b15550ccb5f955ae2bb1adc6a5c612201f19b4fb99cd662c44aced6b8f543efe0211a41bb8da6a96faf984c77bddcb4e288d47706b1be1d72ed85a0181cdd96b6dce347001eda51243043fe2905d7e81720c19a6ec8afe06806a785ac8cea2aa9a812abce280086f480e6e2bb6b785b6fc95f5d953811d7c58104a5bdb9459dec78434f501322cf6c1aa5124740e209ba756a6d80b9a19543df65a17ccca59df94c2b85e4ec234153da627d000001050000000100bd69fb688f50071420c17f5f3eef66e64cf0638c94ae60a3cb4d1eb77506a21d4df6146d498523986d63045027fb7089c853d2d0bcafd9ba1af0dc6eca1b08faa6475e0d21ac04e053ee23f94be0d1fc4f753e75c6d92abaa8c5ca34c3bc693dc58c3ac0fe7a78b005000ce104530951e8e9cb8984884b804ead7a81b30d0c473d4085eb42346c048c387ad2c83a04f4e33e6c72db74cb8b38c257c7dca11fdcb7000d1594c6f898daf3b3029e999090ade28c0fe136c63008d70a73a5eb1bb242d9733cd23bd1dcb9d7c6fb6cd017a9af5ee614d39c8387e98af1c1173940719a46e0092069fec0d21bc620296e79d01c90cb7f8fe5a0bc8a101b8e354e28953e9f6013eaa594f8c9e63d860c59e55d0000000000079a1000000000004007bacd75ea7f4d05d0598739ed973c0b593b8e55adab372474c5a2390c3f7e9d8e209fef2549d330145ed844d5152e44d31a9793ae9a1b25977c97bc595ece480200204d02c40d111a5aa02dddfbe525871ec53fb78447edf49cec40656e15ea720e09000001bc9c300ddf385b54e3ba5842152e4a3d6abaae17f176f91556bb50dc6295bb016e8207bdff3f9ba42a92fc770ed4101c5a7a7b97c14cd577eebda36c101867a6f1e3e18fcde72e490a21ebecefb40a89d12bcc9895680af56bb5e0eaefabe0fdb06dc57795a22c5cf43a61f4f6aa7ba2012fa0c486675b11cc1e067e1864a2212b3c569ab306f78a3487d26c6c72031ed951257fd57ca3e11e4a011035322f51ad1b10044c519c37de0165da546461916b7db65a8494952eb21f1feced4e76c61022af5c4f3d495bab44a40789b295b1049550dafffd13bd170a08fffbc1e3fc13775c74db954d9e0c2ddb0eaf148fe4ab6079c1316cae5796ee4004bb2b9d1964cea91efa7ac4719eb9ea2186c0291b947edc7bd379d419ae47d55aab6be1efbdc2168bdc4a1ac4f256de428e203486abcdbd6b35fe17918c7a1425722cc57f4bdbb0b9e6edb59370821da57f9021283bacafc3a5b1a314e6b39f7c7719f250a7294c83c540563074b247d622cd87446eefdba9cbeffe1abe47325af9a1af849caa0851de2dd7ea69420b303e3b88efbd840aac054637e05bc4e605fde756e9a709211db616b33551ac14fbe4cf4ddb5d9c1023475f44019ac624aa9800000105000000010096bc61aa0140cf7b11cffc2026a01f3c0fbb85e0a7d87a1d0b929700317716b077089bfce02e19ef10e84bc2fe23d17ad3404045ca1ec455b5d0a94fd1e0f3cc7cf6163172f2b3f9449d557c451b9047e47411919e35ea7dadce5a1d129662e013603da5582199b4759dd0a9d1f9f403b5be3521104b2e253ccb2107d7537cf6831870c07aae41822ced6fba6f0119617cb5d214884b2aac001bb2429dc1305eca96d2ab7a8f21a951786036f849364c7ec8007e74dda9aa0945ac8d3f06cceab84b0816679c77445a9ad939717b5e3960a7d3266efd231298955b2b400e4dfb07bacd75ea7f4d05d0598739ed973c0b593b8e55adab372474c5a2390c3f7e9d41305663bd11be9f6805d8ae1600fe570000000000079a10000000000040d4199b6437c82fa53ca39456aed1135884690c9d5bf63ee375934b7a2ac0fa58c3fadb1d1c5d24055f07b74c9aa232716027781690631538367891d17c8d36be020020707172fa76de5923f02c3adefb5dc12c06a754b74f8178df45786d820514255d000001bc67a15531c4aafb54491c27cdaba2073b22aecefa15d44cac877a20a699d0258dcc889ae25a99c629f0569ffb39581699d01cfc2bad53ce755eb122ca547806c248fd0926e5c370576b71662bc9a878917041ab0896f1ed99f1b9fddf08e9df1d6a8faa3f761776ab7f08755fc5b35e4057ac55ef8f0a897dd26a6d9863bb7dded687ad84225abd5cd9fd6b75997afa0dce7c17cd7812bfe9248bb78760bf3fd1bb484f0ff223cee7e5846491ff880da65b3f81561c327a599e116c5754cb29c8a2911fb7182b81430f5d14c5d57676d9e0781e2ff4a8fdd89e6d4cc471e9fa890b992e45fdaff015e22485b5cd93b0a71f0f6e78ecbee6f162d58f7717e563da8b5cecd9a6c47de39778152965179f0c618d02753aa0401fa8373e48105885bd8879c213ad17fa2919236018f1c2add38376d4ca181ed663ad72d3af3e1912a80f2f59e78c436e6bc7553abeed5332caf5af8c8b9eedfdffc6e212e88f64b257976898052da2a6cbccc147d151b44e1b1c7a3ffb8adf58350ec8d065c0212fd6dd2cf16070ef4a230c192ff08ec40ae805480b4e9bbffc69398319e3fae3ca7a7a9ebf77eab9bcfcf747e8c29dbdda980579e84c7c174cc15c98c522000001050000000100056f72db9fe537f06cf4281dc3780adbedf0b5fd64d8ab1ad751b21e73de2ae926c8ff96217e58712a6e4ec684f9a9c91ea03b14fc57087c58148b96c2091d9bd7e44606233bad4b4404e42ac75a420fea2da6e0cb2cdb7a10cd77ded327d48533589e1fd023de41a4a826c3ecbcb0c61192dc88ffb73f1166b44611aad834c55650d1622c16c7d1a1e46e689dd8a1f76f47e0b30adfc67e4f0c733dc02867674258e21e6d03d0bfe161f79efcc9c48190e847233ccf27ab1f236daa95b5a9e3d5756765e0ae9f5dbbf9d1f29c6f6cea86f209cd217b3deb23d43193f4cd42b1d4199b6437c82fa53ca39456aed1135884690c9d5bf63ee375934b7a2ac0fa5842e6d8385d1e35dfd946ddaa1fc432cb0000000000079a100000000000400b4491bd2ba42e8dcee2609b88a135664920440f8cc7d0a73ff3b989bca5ed14c3620408ae70c2f9a6f709f7cd30e5f49d349bdeb046bea734d5bd1ecf7254c5020020a79e6c9fadf7fb28aeee0c71d078299585abcd3176ca51eaffb9e38cf9bb735b000001bc987b69c8c9b9dcf2174a5273b0b5a6b691d77f918078563217bb90e074732f104f2b727f3b4fd2b9b55a84b670002387ab0438638df133052b5698a6d29a9670891b4f60387a1ccf55e3e6b4e450bcb7e26b638776923c662d67f988b55ecad5e3e3ac21397d9e700abe6fbcdf936e2239bd1e9f4a76b088e8e7c6873665310eefb3395de264ac6ea4536e15c0472dec41a9b8a84ef68987287fd51b8f86975fc7c229a9d0b0f515a25c92a9643ff610dcfd12115a1c99212f1f5ac0bca429388cf0309c55adb3297fda8129562ea275790a411ad227bc68107be7e25c235994125bacee1f3551280cf2cce07eb59dfa177f9794809323687265c7f5b8d0c54bd9a3705ae1d4344e6e699cbb51de3be2753150590ae42e2c4d6fb2822b71c020af1cf4285c9526f2fb874603c3687e1efeda9a40c8f3406a1b4e4355eccc6b5d759c8063b12ecdf16640bb68b9e2200f2810543cbe011431fa2234b515258a67e08f05698ad21be68b5acacbf19153c4c75525d1d685f24c50dc499ad662703578b68e87a5f2fea22a8c902f0b56aca977e2e70674f362e3be8d17bbab93d18af76db1491bdf57ebda71eb3bd18e520799393fdf3d82c6013de963f2000001050000000100fe610bc8373aed3174f68df36796811cb79438492c944a8b945993d9b495d9b991b1553ef73dcbb024ab45738bc7b862f692457dfa660c328cf7220a4377307a775f75c9bf8a281c580ffce85075c0cea4674344d1965d97c8c0d1a04b069aba19767915e183862bd7c76b872f1131ec2bfc6e1494bd6a20db6f16cffdeedd9019c683dd7fd2f35f1e4b668952fc685ade41f2c72b35cc3911c70211328454e7ac0e049c53ef8fcd91264ba2d4208ecb7e14ec8336f2dc3dddccf40ec99c4fd253c1afc7e08196ef5c5f9df451c30eb2f3c9b82feb37fa9e342334720c002f380b4491bd2ba42e8dcee2609b88a135664920440f8cc7d0a73ff3b989bca5ed14434d86eecea35da37fdee336cb88c13a0000000000079a10000000000040a6ee9d7a738dbd628118f8a4eb66ff4540e729e20404809772e744e22d05908f3810381bd49e4c1118e0341ac03c97569f93ed08714310bd7be5e2de94027b530200205560a6bb7b62d7a13eb3779e34f654e1a4638dfc0db54e89e6ed9f426305f70f000001bc9aad48a76571f60fdff093ff2c2fd52e463c43f8a2e7615135b7abfefc31824c4d8200b25723f4fe81601f74560326638487f96a0836479b358b91d2f4f912614ca41516f9f40b0ad9c16f614fd0ce5c2cbb95dcd3b69d8771acb8481be35fb160b8a59aa84795aebf3e6586ba5755728e565bf817aa04eb551b459052f02f2a44b97ef11fe355bbb8d4d4392fc24594215b646a568ed1718495d3b117a64f2e622dd541212556dd0858231a938e2527cfb35a5b15f56fabc08ab2d3f577088c83eac5ad202ca5610e96aec7d32324e3e2ca0894976f8b313dce84ee46a9078d9e66fa3d6010437c143e05c7cd6a3af366dcfb157eac4686f2d6d23f1df67494479389d54c939537b19e74019a108ad2b57d0a8e381a7cd3e7c4a7af1e0818864e013fa7dd8f07f26a2d54acfc5e2c6df29bc6a9693ea95d6308a0c87678c7129675c9f3f95fdcc600e466fa590a48806affdadc1039692bc0b66afc868f199ecf51c42f1c33a38bca1b75fb2bae54180a9f74bdc51ae99ba1495676d78dfb30d24b70cf833b1eceafec96ca5fb00bef1338b6f7c31ff0c7dd7c5f2c93d95998b6e4f45b3f9606a2122398fdf57c8ebabcc148e752461104032dfeef000001050000000100bf4f3d214824e8430b8a7d55dc04b0c4fd6e9df2f2ea3fdaadab909c49583e14f1b7c7dc6f602888a8045ba1fe13ce44986838c9f56c921d9797f8595a69484200ca1ea23ed549be66c5a820442acda8be9d8f87b45a39dd28c7728b7b51b9c0c004670d0451e5dfdae9503fe1cd791ce2d772ebc1ff3047ffe579dbd52800c21cfbe1b678fa1a4f731e793efe2d318efb11eabdd77d27f899a79597a2d148e85a673229ab34b0f952ab8af9e12b3065a34ce4bb54bbc80192b9e03bcd47a0ea4edee75a28003dad458c6d2de1222f9e41b61f7ba36fc22a7175fa711f54c2f0a6ee9d7a738dbd628118f8a4eb66ff4540e729e20404809772e744e22d05908f468d52de4193cfd6a958a320adcfea640000000000079a10000000000040dbd8e7d8817d25d8aef401a5cf8726aefef298712058500e7eaea4e37cccf8cd2fbc3559b8da7f7d65afef385d3efff60e2d2d1fc90d864c22d9704399a4b90c0200201688af2fb6681c7cd616798ab0674bd7d8030e08188654717db27c9abb27e953000001bc568c4a3716f21e24d7c301e2b7413dd138f20fc28c2d914dc2335249d87a0a6222cc7d5754394159312000416d4e85a25ca2c390999b21719c9248f551d5d3d9ba8138ee7dd87c9903c39c382fe6704b2d582f73a3325a96fc90ba754842badbde0514eccaa1f36f21e2117994d0656f4491a114e86ac4f74217ae7f0e7e1896b0dbe1ef3633d3187a302cf3c6a2d647929c9cf341b2622882abb4596b13158057c00452be57de440ae8b39013db5f2e53cca387d2d0d63bcb410befb6fee6da696d500e45870dd88b409099f1024a45e6ae62b21d754ed9606eddf05a1af0552d7e7b41a9b5f59e7f1756bf94218891d197699aaea70d0227df8b0fcf209fe8ae3646c8bedf9406127e6e7b0d5784e64a9b953bc577f59cbcfc29244bdc41929f2c9cd753741b578c6fec3bdf2f22d9d7c5c2fb0c1888c14c063326e90cdcdb0b11bf75fab973ca2e02a4dad738ce00676668bc56f4a43d9d2b0bd769c80ff113a4336121ded3a4c3236d3c4e8ca2cabb60ac5be493fda5d371b0a055befb442f9346271adfce3c2ac5e12d3fbd92433b4a35c55ea4398901ffde6858bd949ca603fb99f56058130c5d15d645a8df537c58a520debd56829ab714c4000001050000000100ffd566a94df0639eeb017dde610ae9e9eeca577beb87a1c3859688d40935346d1a67ffc5dfd508e4cb861d2b9e8019cfa6527c75bbc63164384c4c4081fbd4a51ff5f2f9c4a5ddec442c3ae2dc1a7609a2b1fd1b5fce86b43e7d63bee07abfeb92ebcc4e70dda9a5fac45c11a66e69522d5e1b9b8f9df1cd5ad5b2d5ed8aebd12d0dc8bc0b93d0bbd8cf35bb90d1065fa45c640987ab0a07160211e4e6cd7cab39801cfe653d4ee1fa77c692d304ac07f310c8f89ec23d09481a5e84faf3e71495f398a273976535b321189dec307c1d665e52461153030fcaca26ee256b0780dbd8e7d8817d25d8aef401a5cf8726aefef298712058500e7eaea4e37cccf8cd52fdbbc0c2f3cf9a8dabdca031573bf00000000000079a10000000000040782cbd799e304c9d416f0980baddf7398284fadabcc80059d52257c639d6781aeb4155d9f124c64d61766cc3b00dc77445bd7868548ffda0ea3744ae08ab666e0200204ef635c7181878e477cf9018a6a9de9b6af0e63b3042e3e5f354bd55c892cb4d000001bcea4de3791248357456136735099df1af197def5ed49e20fe348d1111ce2967ee17a89379508ee35ff273439526b5dbb0826ebe2393941f56655fb72e4cc8e841e6e566d5c49319a2c819b21d13412577f52439a9cf84086fec608c2d8542605d3996104185700592dcd0bf84966a9603614fada999670c7f69099836db24ff4c972cfac79213b0d3dc1717dd4c452a651fe23a3b813ca47bd114f5eae9d091f7f19bd6fc8640540f8863e86b92d6bb3c3fb1aad2c1bfe5df203fa3c129490847282b48c86a2c0dead5167ba14a2aa2b2b7c042cb5eff29624fc4b0eca2a44406c5401ffb0be9b7066346e726c61c1b13ed6b574bc9a024a0f09beee12abcbd05dddf25fe36ca893bade7f0cf7f73b914efe3569bea25453af0b3698e4c91ca12eb21b184bdd67cbd162a6ae1085a48d611767a453fa3899b65a0b0dc2f5da20cfeaecff7b90c96f44d133b15e8269e438c4a8de0f25b5f92a89228eb3352bb01e702eebed11fb503e0c3c2d86c60dc8aa25cd4c89998f52b36dca8c5404c0ca1aa8111906c3dda2a3b3db99801b513120b35a131b2c1657db605efc5c89f617bf07dfe8d770ca7f13fe0c756920571bf2f39ef87434431ced625f2b6000001050000000100a9f35a3c4ea9b9906e26a8fd2d5a74bd1e4dbcdc5a81ba677714cec75fed5f22908ac60c6b5765c6a585a7f0a750a3a7eec1cccead040414dcc7e3432052e8bb03eb979cd66e67666018ae2fbd95a376866122c9a173500e8ce647a213d0fb4c10533f9ccfa43169e5c8e3dac2dd4368229126a154e349213918664c4c636197120f2237543dd1119981cce925481dce01805081ab70d428729bb8fd049926272d3b5c44df045f330bb9395fa9afe9fb29e7826a69720e4831e0508f686be93c38f2036d7e2f30dd8d2592de03a07f6a83a7af64438587c0f9ea36736ce564dc782cbd799e304c9d416f0980baddf7398284fadabcc80059d52257c639d6781a533c031b6cdfd9c4c70ee6c16a64674f0000000000079a10000000000040a41d13766b299b0aaf4a8bfe5f9a175dc5123cb509f1f9cf2bfec9fada31879c65c1b083d4ba16f7cf4f2700af698e742db3fd93a8ec7a232daed825891483070200207ec914562b62bda8d32b19e6dab8d67f7b24a4651504ff39ac72129a343bf420000001bc92c3beca39adc3892d31723a1d5e64cd973d51578c8996d2f6665af2e4461e3b03527af2b2d7c2ac9d151506e8627827ba3413a8f438838211a34b55bf7bc31b060a017c3d7a6128fe6b97f982e0c2d8eea5e519ac1a13fd8d93ddb5f40b581d442a8c47b33837ccbc9adfc7e34f527ad708db6d4b89da9a194ef41b9efa26fd959b2ff26960d6c04eac93d07ac01e688194a6588faab1bd02b4211865a4c989daf36010e8f57ab9eeeb2a90c688ec76466db6799307b75fbf14b04fde0b430c538032c850decdc52ac5fb90fd826e1ade0f8132a9c59a72eb0db92232899fb04a73d950a7edf3ae67ffccc6bf9ac0dbfe6a0bf04a32d802d640e94a9700c0fa611aff8a63f3965722c6ea5754e3f970298657dda3249fdd9ba83a173442400cc2ea952d550b76a1f673beda3562d0491aab8304986c7a29db982e2e8edca120f9ee290a994f8e63400bc474285f38e563c4c02cae252d4d5d8c704d2f05a4525a70564ee11d9eb9f7bcc653d9ea04df520b96cafe63b6e1f123902d0ef9cec7d59b5e05e7acb8510417bac686eedc11f6e3f80aa7c677ed4646f2bad483044a2e95d2cc2ce4b18820be1061c84ab3637f64878d7a46d8daa4266d10000001050000000100b961dddba6ae19a9ddddaacda4e8bd48f2cd0abda33524c83372387d63ba3e4c0d522217860dc5920d08312bde35ba98caf0829f0648b6b5d7f1ae8c49bc9d81bd446daa38be82a7114715a8ee2ff99542c194f4b25b7a59319a0d2c6339d93b78168c8799832979628562a8f46084baaa16bd6bec1f4b621bb48251c0284f6d1acae9d2b9abc7d73644ad2ad3832f53f17a283e83302a13edec6c8c32c82642ff44e805882f90cc7392da0300cd17761d819dd67e75f52486546e01d5d734d4793c59bede51d306cc27fc351bcd06b848c9387a485ea54c915ec44c4c5ef62da41d13766b299b0aaf4a8bfe5f9a175dc5123cb509f1f9cf2bfec9fada31879c5688746a7c46bac6ca1be21d794e162a0000000000079a1000000000004022e8b6f0bf658168429060b2fcaa13f86fa4a5a6ef0e71f16e655099cd3487738d027bb214dcb8d212dedc2707a60feaa931252da1f6a19d126c79bd5628e4a7020020825d5b23fdad6172312d36cfb157e72f807293f4c4f29efca4df79ac772aee33000001bc88156aeee17b91ba0034d6ce35d3f70c4fa82a392d69e056a2b4193cc4d102a20cefd5fa1be9a885675d3affc676b887248871591f70697585ff75adb8058605ab8625950bb8b4e0bc638b5ef9b387ffe46e7c4b33d763d829285c7fb05dcb25892543313e626cac0226608c91eced99b76d73d4ec5c0c9cefc5df5fefcf3035e1c9d003fe6524502c6c753b8afb97f2d97d92cbfcc7f0e5f27d018ec0be197c06bbff13167519d1099c4771c893ad2f5f29bd3d55152e4fc9ec96bbface93588710343756715fae4a85a7d9c540de19f38d7349aa39c8ba471e099b3ce448b0a0ac4063c8c2df95af2c83c67a4d0da9d46e17a036db645d47744ca75bf0b4fef4798ef54cf82e2a9597ca7db7ac39c7a7e236c94f8a5c14409f97d771a0c078db03514d198f744f162f612f280ce02c913f82ac1ea816b276f16f649ed3299a5cfbf6f98d11ccc3b4f247b012a7d1214a77c893ae3f63a6650832044a6a2c51b4d865055b285fb6d045f8f94a18ed6c941541082e60bf396a57c8d6808ca1202033ca4fd6e3fdb8b7739511bdd9468e05b3bf8c1b612111d7d60b4d8f38658fd0cd3ed9842442890eb1125b3b371f428e84f8309b6a26e989eee43e00000105000000010051d4e6d8a103a356b394bf6f1b82768d6be156afa6d7db74b20eddc75c9ffe9026bafcc64ebe4c647f139b6e363570f0fb11c8b9ac9479c84acc02652f8ebdf84596c8bb9e926553c1fdb3184b288dcdf272871cf523c7e7e42e957a5b1b4f1a352fc31d8dc8217092d50517890a602b67f18f7662ad798c3655cef7a32f91351c63a199f8762fe29b09820fac4f56b9c6dc6ff5fbb8bcb6a0ed0e0b1a89a1d2201ff4f21f3bc1373018619c3c85b881ff1322b94d24038cf00ef16177e5679867ee1b08287398d0029f325029f675dfb72bb6f42b3f507c6c96aa6e83a93f8022e8b6f0bf658168429060b2fcaa13f86fa4a5a6ef0e71f16e655099cd3487735d403cc974a429a96d94f3799adfec460000000000079a100000000000403fcc117e6f95949630a858744d95dc2eae095f2c7c4a5d74b2575cf5909dbff0d540ec2c8ec8582394cec6233dfe39c9184be3e9dadc6f8748ecf597ecdfabce02002087aeaa9574581325aee73b0d289b2a8c667fe24f6706bb2df07c62d2b02e9d1c000001bc59af44d2b6493047b6a57bd557e6702abdae49bd4fba0f052d705f144b2fd546506a375a3d6542cc6a69ca118fb9ca6ae679a4eec1f86dd61f8704af7f10bd5d701d4e678fdb9d176fe41a5e81396cdc8eed1f36c44ef1aeef23471d4123c786ee912384c9455a9dbc10b3cb3302402f9058e708734e02f4777283245eb167519beb98ddbece653ac4f7bfb48989a802e08003155b54d66c5de0571c06411b63f2773a6d6e7b2344c871fb7411757308f8d4c1670532aac034ec5e70a8b7c01e7550d94e4627a0bb1f7fd671ea045dde4a26497dd91d458cfd2bf2beeb08a10587d1da08697f3195947454c6ed725d9a241019ecef75c0b6994acfda2254bdd331b0e87f19dd690a9ca5d417f9a27e40d1522e09230188021785f26bb47231bf663dc2f9e4600a160f81451fb1a1302dc3c9076da7e74f474bd995665f1eff26f459a6c9bc6d6d33ace7f95c3e329283b0f14c4dbd059aa9f9017f3bdd756e9e41f5c05e997e0307109e6e142bff044b055301a7719b5f984689b5783045e52acf85935473521b6cc9809047d72d13a42c1000ff3a1e0b99efe3f7d2176b39fcdd0f2cb9198084c28a86748330b2197f0289792ac4ae22daf6a5b8ca000001050000000100db1f1de3b02bc36686cbed59f070f3aac4afc14b2afe0dcff92d1ad63ed2ea6b95a5dbb8f47b892e625a4199a22bb884118ce76ed577a804ce7459e736d8083d7a19fc71f6e2e7cb35f816259d1bcf6dd2e0e18eadae359a4068662fe94b63574881aa34aed56fa1adb177e6f56a5a4464d771b2e2f61279be28e9269fbe4c684c79abb319551a8f7052dd7171bbe97c17aa2715b4b698f556feeac810072f01638435d97161776043021a47fa79d328336fc2e500a7df7e9b17c50eb7fb38b0d6232b8de0ada21739dbfef9b878c6e5997a9c1524284a2318037b6c67c8f9653fcc117e6f95949630a858744d95dc2eae095f2c7c4a5d74b2575cf5909dbff05e758cadb33ec498325a8d819bbd11b10000000000079a100000000000409da542441fa636b1e7ed16ffa0150753d41cb1bbca7c354d8cc77a348426ee6c98a9a1ef5e4caca85736e9130dc4cff83b36c3a9184315033d7cd0dfee09f432020020a76d5f858c106a74b6e768b8a3c697975a5f4fdb8ae02e8d3dbf065f21f3a663000001bc9f5ea89ea39e5e2d219a48a50ba27d1d907318054eeb4244b115b4e686253e65b7a647aa604c595d2d2a59cbfe26630b84f9fca52f0eb9de7a2c0f43d5633772d50eab8d0d62970271423a20ed430018f88387aed867771a2047d30ce33090d124d889e75cee226121bf8633e44da8d635ca2cb0c87e7948d85be67041f73b2624999109438f3e7ee778333b40485f2483ab51ada9828088fa1618b873c6a243c26eb3302700c86f8c37617a5f3744e79bf0da85dc9a6a06bb919b681d8846bc7831a459acbfac3b1857f99562c370321e9c2e258164c59125f7ad42186cadd39bef09893201701cda35f6361314519de9467c4ff4e27a819f5808e8c7074f96cd038e5aa385823e972d65dfed0a11f4b98b0ebd224d5bc42bd017a6cc29e80c07bf2e36024cf76afe12ca99dc149ff05fb5f3693910c14021d15edc07e92f93ddf9dd82a7d2a7f6e985faedf1e37361f4fc77fc508c3c0830e5082b99855d27e24a371b103b8f806e467945376808e0ddc68360f20b9b4d0f29ae432f399e5738e56c437ec5ee009550801be108fd8b3961892a56598777eec722de4b522000a023259d03df3f1c7ed264a9e06100d8eef56a5bed68621d6e2371e000000105000000010092210bfba6d839c406df23b5d757a55ee4b3729368274c06dacc255aa3bb6623eb99ea905ff0f4170f661c7469668103c60b52d3dfd5e9c16286bf10516e68e84a0486f1da1331aaaa140ebfeaba485589750ca4f41d65de4e80ac0bf62204026bc2c5a4c5a617cadf293d6389f4492baf11f280defa993e3fd0e4b4dd60e3437e387a1a252dcb26966792e3a8a8a5c478032887cdf2f233a5d80d1821251726aec78239a52ba9c740bb885279feeac06c5c4914421f0993fa6c51d54556f230e3e52f591136b3e260409e767e41940e5f8edc524f0ded88f5b0d5f3f5fff48e9da542441fa636b1e7ed16ffa0150753d41cb1bbca7c354d8cc77a348426ee6c64f54a1b93d82bbc89a38352a741f1db0000000000079a10000000000040bd1c2a6f992d2a4b26b725456544720809d033daa34952b9d91066c52557e6baf64a76fdeb1a7c213758cb1ff941937f6531fa18b98351573a6fea05fe5761de0200201f7c6b0d9f921fed461db971067cdf05c035d3def04347d21f17752434c3ca2e000001bc453808bc6ca1a35c4c6736530f325d432d7df02a85729a79a98560c2a3b0de11af4a161cad449bd1ccd0aa219b92c76d8916e9508ffdbca83bf61c2ace2a65bb14750c9d3218e34a70399b3ae17a93d707d27dbd9e61ddd3f550fa6ea1bad3547f7a09e4ff4dd4f86d7dc06250a6332a3953e5d65430a2b4a9537c71c7d41df506014c8a6d5730a16dc2de2804df0e5f7a809ef2628fa512785333e0ba35e15bc0d180978413b6934be446b3321763efbd34b1af7c24ea5a4f3e2152fcd3c5a4ff124c88990fe2938a85db8c605cd6737960b9f8f0e7ae0de40ded2c543dd36f42b287a2dac2b826f412b781a2b65354ca3c1a87c2de535f970a40b6cd7124607a87479c0ad2efb8e8205bf7d08f2825f15152cc1dd410f41ec0d56e9f7c1c685780294d286ca21f337a53fc72a4128b099a7af11289b038ec1229aa407d129e89e1bfa4998af00db921dc498825b4259a2c5638df2d733d8b3b15abb99e4b9a0396aea4d7adf7f37129e8548ed03a017d0642b96371bad90cc0ba4332ce49425043af444f1e75e0b5504b68934db47d5792d918179bcfebf666ed091d91f73c610633daa2f010aad0aba8ed57c159d3a198bc852398f75657f52b94000001050000000100d3eb911ddd4aadc0b70d716532170ff07222627a881ce044dff99387c0f6bdecf6314c35ff3af73b8092b2884ce487d725ee778bf808f466968c2e9f9f8f5760a0a000b669b8980bb3731e0cb7fe67f9e32b3398d3521c92365aa120dfe34cef9f759575a02bdb1419096d9cd1cbbf31a86084547d0c7ccda8150ba0a849b27476bf9895a1f10515ba1c7bd5243245d6f23f77bd670154cb33f1fd36739af5521c362200b4099eabefacc8129885dfe163df653986aa8f94da68703ab683053dbec043ec38c65daf893d4a97912c7b5f7e8dad602daeca61af49524f33b73d8dbd1c2a6f992d2a4b26b725456544720809d033daa34952b9d91066c52557e6ba659216e80380457455ff2cf16f9c05ae0000000000079a100000000000400990a884a125e9811c528f6a8169b6032f91be01cdc0612bfba7c43e8e3da029db858521d4d0e161a10acc3399b80db08f3fd018b13b2edaaa0c62e93f2d3bee0200201539ef7a3f9f68e397f009182250ac8d36f259a0cafdb0d7d98fcf4daa864342000001bcaa2874951aa6692d4a8a036662f2bb7e181a8a93de50eedcf39be5ac1408ea5f305539eb48c0427c0b5f1f99c0a6d726f1a4f2968025a0d45652265a86ae55f0bd64f17cc7ea3a8f12379905bb50549dafbe3e98451c5e91172420f04bbd6ee2ed81bf1c9e8398540e184c984d7c7f79e98d3df1398a61f035669baf098b5c084bb562bc30e5da6bf4651ed78f63db05574f70094f81cf3d99d92862e741b7fa54f67c0b3eff6b1a59b6b088f5b84bb7edaf71b2b35d41cd52b4269feafe96e141cf92acc357ea74341ec1142ff95ce16c831bc654397386592fae7f21dcfb7abe7687bc3be2bfb4764a6edc87845a520bf873a05b95aa19524d2a8350dda068c77ee9768c6d8d5039e233b67fdcdcb4d95a40935c648389238c1b87efa8f6a7891d2bab33a06b816ee5d65969996b74944c81864d711aae5bb817d158cf55f5f15be44a354cb3624b22434f627cb4d506a4f53c58b437d533fed923726fe6d76b32d2ec884d8aa8aa932ca5f7ae1c37b0e80c92e3fbdb3b1e962df8c3ffca511da3b6b94d2812c03743f71c075680394cd88471b2b6525b833a124d320d21da3b27120d9584a88f8a2f195c71c122ec89d10b6df273dacc13909906000001050000000100bdecf3c6a471cfb86a124437c59fdcc055c554b00e7fa8779c9f11e564353c9e5e73bd3efbf8b12cd40b579ac2eea8d929e31ade4e978209494158283f36d7780c5ff08850b688ae20684cfbfe64f3af4c2bb75eba8ec8265ddec91a2d460b8a04567d319ddc20f552b92043c375cf46b197d7f0441c236a59782274cabaebaf36b9091f4d5da573ce4e8a32897e0ec3d47e6a684772e59ee723d30bb5f12c5cbfdf8379615dda0d9d79cdf121b22f15a8aeec8fb6169c414522d0fe0d1819b72ab9c9fb45d33a493013bb586161f31a4c4d5e4a0c2e2d7bc0ca3d8a96a4c3540990a884a125e9811c528f6a8169b6032f91be01cdc0612bfba7c43e8e3da029699df3ddd594e1cd896a068020e9dd9a0000000000079a100000000000406959d5b236e2a8b92574c55396f13921e709a680a6b649237ae941c227e0f259b11c5a1502e0d612d26c56b5eeea7fffdd1c789e723368856829f8fa26a1c4e202002076c8be27595e9e45c94059dd4e59d71c5c7fab550a87287cb31b82842ee3ec56000001bccb8c35d0da135b0727cbc9ce218e8e8dcbe151717ffdf6b4432204d80651d0e58a2ce1aac847d87f3bfc8bae0bce0f46d6145d0e792b03e3080bb66fc4ee9844e8b19b31fe68474ed3e95ae11a43e9a85e853275ffa97eb81d24332f06f647059a9a13f216305a38e4cede8161d60fd9049fb6faf0bd57d994c0ff4a69a450c797457597217e16cd23ab21f66d1f2da2797dfc6f28358b1887ccd82d4092be2987b0e5d7155580de654b6742ecd1cf6bf693dbb47ea7946b4e4c14113c43bf9d43f7d8863e6d130bea0dc47f1d410648ad0a69594e5b4af017ac202f58591bf0d22d56aa9f56012c1aea61bb69e21730c82cb4e9e5a219accbd3bb3568cd7f61b3f51e211f50255e26bc9f4460da7563ad4c0732880ee8af0dd0c4d3fbac1c60fbb0c2ed067d992856d883d7cd9f315815a1cd83b958fc9883c6a202b6f62fc421688e1a8346580e1f1769e0df8b12d9a4272ff9a8d8e0c0e43d169db06912cb53494802cebd8a892aa10b693058e2320cba3c4327afa274561fbef4d12e7b9d0bb7a8bb8653d43915933ae3cb9344bcf8358fae984d03e409abc34e5a3c06271d37e3278e93a01b61dccda9f8af92471ecaf850ec23d5afc2ec356c0000010500000001009165f2d741588c07a21ac90c89239a049baf914a7641f05ae5eefd86cc8c4a099d86c1a29f97b9a2fb651b62ea9daeae75a35a8fa6c024c4e9362196e79b20e95770df418e093a21a9f31285f82982e01b913c20eace5caed060248249933373ced7ea37a48818d36992b3ac7f7285a9af73cd218f7ec855a0cbf01364fce794d4b31b1d433ce5e860c56a07d858285fc003e062c6204085bf41a09fc357ca8434a31c50866a0e2a39bc90acfe127b03982c86bec898e11b312e08526066825a31bbf2149ac0fe2fe126f8e01ead026ab5e17182ba273802f3e69d96fb1281286959d5b236e2a8b92574c55396f13921e709a680a6b649237ae941c227e0f2597306756ce495d7b23372c69fad1ef7280000000000079a10000000000040fbd3aeb811e5be740912d880810122504aaab687b73cfececfc456601dd58969d1c4d26cd6f95a41a06298b433de8d50220f9af7c30b67e9b89ce6935d4e9eb5020020af4b785a171d9e4aac46f481f6123af90913ee4598025c0a82d80bfd6ce50978000001bc24e057102d720b38fd2d2a2b4a10c2f88db3536fbdf3c063409ee5a6026ff5bf315c99960317ea3b722b2aa9abec2a7b52872c6e14d4c7e06ed756cfecb69ce50068f208533352b94ab030319a2eb2be4aaeed939d9ff9a602b90102d36bccdca3e240d4443832a232098d8bd1e998179455703c9b495b84b09c4794f3168289e84b9240bc46a07d9413df7174dded86ad7a078901888b222b0b3bee68fd85fc3667edcb54ab4538f19d05055934292871cc8000bc430cbafee0de3812db55571c021f547cdb3aa160370b06b580fa17492ad49ba22cd181274595c40250caf2f256893d2d1cc7d1663bbfe6b54994c8b78e90486e32306b9b351ecd40e0e86538b71b9ec89e227420fe3fcc4f349772ff2882991fa2a94bf481ab5d03e8a649f86f40bb9576c62592ba54adb2b7170ded01b3cd8fbfec5f271dd814a7b36ffb76d7d6f36eff85d48d5dbb22feaed5c65d62dbb3cd4d60058ee266d0331248914c4d20ae0fbb92ecc401fc5d28e6206602b2a6d4bae4dfa87b5da00a4feb414d29f34a0a06ade04eb1fb60fe78956a9ab29fcaf55aa53d7c8ac4ba4ee34e20142e78406eaf234034a34d7ada7750d35af250e6f1dcb8626801927704000001050000000100ed1c49514bd8b00803c489400dd9a0a2c0c76b3c1d68a5094e904f71caa620e6e7709035999ab7ff20b355dc9f957176998f074b999bd3c4065b67814c6ccab66a641b2e4461498b3fb03e775efaf7ab20b18bc93f2d6e2017352b76ce19eee1e15cdbebf0e19e6ca4c432cce2f04a6786768391aa36ccb629ad17aa361eea14d34d3b26a39366180b81b0b226ffd37ed812bbc672aab0a9c4986517e01c6b6d9d2661b4721aa1e8c274e34162172221f41bb54888f6030a9e8f7dc09082ecc3cbd03f5aabb4c0044d5b19ad408144c5fb861282e42e67515670ccfc3ea1bd22fbd3aeb811e5be740912d880810122504aaab687b73cfececfc456601dd5896976776a7c5a4ab50431267be8b2094f260000000000079a1000000000004041f7aee81bb34ac276267bc1a965b7b515b0bb731872dd4eaf2a6e57db6203cd2abbdf78672883300bb61bbbd347240eadf1b0b37b8a0294912dd9e4fd6588f902002040f1c5167f1a4ab574f496784f2fd6bbba5c9774ed971440502f6b5c3d03e135000001bc32450fca0f313f6fcadc9357c08f40ec055f0f2d3e0011e0b5ee5a9ec3b732bfeaa2261a4d8ec2eb23ec9961f51f36ab710ca9a36bd8bfba9d61ab4d9b34a3b5f3656ef5710ff6fcbd92d146acc9e19d0e7f0b6cb9639cbdc8a7edab03af776ea7a98e86c0b76ad9b635aa931490b5c02fe1a8a34b0b38dcb82d6b4bb191f735dc75fe77aa26c3efde7ad6e1e92e65de7d24710a952680f9fd3310195a8798bb9e559f284b627d33469152c42b873b4aef50fee0b56f068aace4cff7b61ae7f991d058765ed855b37e64ea3396e57fc6c964f17969f341c83c27d44dff195c609a029da7b2ef83aa14cce80d660a97ac525ee98965c71a9f83f9c2ba8bab7f93fd13b95be2b447f3aa1cd609b3f62d6d7239489357dc9df231df4bb69de1abcfd36a4cb8128662ff45c15dbc6fd589c729c08ff44f67d051522d773328bf50a29759fdb2860aca73ced6a03a7a62b944ed396f8fcc234e2ee8728bd3ef7228930ac679ede2d31bb6391a356e249baeeac97ebaab1af6f1f581161d110d31e29a733fb3fc173436119de7c89cd0f9fa9cc62079a6e9728777ba5dbab5e01ffba503b9312b5367cafd4c93f2f76ee5c14d134a12cef835d3f4370ef8540000010500000001000b0d54764900c98aa0b133aa73c65abb814570097835386f2d86810015188bf82b3862193c7b3685b0a564a19d785e969c13b74355b13f6cdb25ddace38c86cc3a7d0144cb6b8fcb5fa755670d480ca1dfe2e6b93d6eace8bc14a2b5b6a806985da18306b4cfb011d1afbec5a009d620089bbd3923fc345c4aa0b3c10124e2b6fdca4ed9c9d02d68c1b7ae0a8259d49103bf2be53813b61f9966f84f6f0b9e0f6cda7fb8387e7de24c25f5c4124a605aff5f8f2c30f46af3bfbb26d73e6bdffd33f63727236ff5667000651eb02529dbd4178a6ad738e11e6f8141d68411219941f7aee81bb34ac276267bc1a965b7b515b0bb731872dd4eaf2a6e57db6203cd7cdd42aab29de0794766b632662b953c0000000000079a1000000000004001635ecfc496c0e329284711aa5199a6960adc60ffaae6c7a452ca9756d99d10e7a5467dbcc57374eb970aff4d47ce66d93296378a2f1298f0f1c4b4ca1a6e91020020f838b379144214e28cd46b288032d7f73d1c2f5aba75852b3a0826aa3493b654000001bc686e57a004f35cca9357af5eacadcec79925bc51f81df7a525c3b9e9faf675646dc2ec0b5fbf7d8d7a96ac3e7aa4cdcd2e02029f85940680ec13db94861829f86bd01541406e36dc261746043107c91146812e020bcf9134185f5290135a6e0630c2b072ac399d3fd3c66139e2899736e49144bb2a2f9b0248a1e427334da674f38f4e025f40d548bc9eb6a36726cbb000529c62bd15aeb15557b55f394eb5e5da5dcf6004d0fc56853b3ac08844014894050392750087b7bc3760f993523f2150febfb906ff063fe361c55d009355b8c0a33a7ecfa7a383d47fede91c1d499ca2c9e880d670a242e081b3419a4dfd99168461e6e1e9ab73d8c3f39d28ee2a7ae02a6b110d459928713729af2ce0c839057cb297cc89f700191cdb473cf0e987f01e3f28fef14ad6e993fa29e8e64835515136752b57993b4673fec0c4672a22f846d096a143c3cc605a49aa79d26a9f5439a377ebbd37af709acca4528633cb940dba7956171ea1877727c18e01b4311ce451d29bf6f3f625b32023bcb1644e99511080ab285fc3f121d06a1a67cd5afe6ff8e500dda9931d234cfb29b235bb6728b7894f9d622a41a3e21f3b26c97b9d6abf7a7e128f72e779d64a0000010500000001001219165bce2622e56f77cb67da4e91931e7a6042aff393c7b8d35e7464baa5ddaa67f88e6b490cc4ae5dd190b6693561f3d6e63c29c18714088c7965d4ad9f14e86fc9575c49363bb23222e95a5738fd234a60d15c82c0c1af471e362f55daea7a67f56b0f327e973281a852db9be087b212689be409a4aa89b8d02a821931e7cde1132ac3ee64cf54fdd3fba408f9b244448585de47bbf465b5ec53a9ea95b8a9bf2064e2841baea7cf91b87bebbcd6f8d9fe38bbb02bbe7fb37078f39264b03bbb9b5b1034a9dabbe04e03e8d13d192e1df6b8d1c34f3e9d4904677ddaf38401635ecfc496c0e329284711aa5199a6960adc60ffaae6c7a452ca9756d99d1085797c59ddbd1748bfa930291a55dea60000000000079a10000000000040cd1e016031871b8faaed1a3f3c141e8fdf06c919b4caa3bdb11514a44d9c98115b54c96a25ced7dc32c6e69803af10418b1e03a3ad0d09a5e896d65c37434898020020ed65a4f7433b94d7a774cd10c3c5e62144fa0a58bfc79004cfeead3e12199c00000001bc67c4767df06346be2c602ed9b8308034ead885713a1cfc5b1d4d2bd8d6a9a6182553401448635ba043cec395f6f2b55fc0497731736b7412521759bacbd3b8593ac4d3fd6ecab7eaa4babfd8571514bc148ada94d98d99f867af288ad76d31428292ec50b9a5380a3f92cd4a71d0e77e84954ddf0ea6cad92d7983b1cd0ac0a68f58c61fc0150af4be405a8b981b2375b4030cb292f18c11597aaf6c59d201f74d86a871f648f48dd74fa5d9fa2cdd86282338ea5953c018872a8cf75e11a53d266d0b4753dc3c82a4e0b56741a6c40a00a5bc4a2c60615ed2c6a8dd699957968dfdd84ab7cc8aed8cd847aea5f1e24889611199058a5358e2a548969636b432cca7a7041a8471c5454814c9be938c80d2a49be6d3dc59d091e345857e819b0628be6a83150d266a4738101e8da953d7ebfbec8627d6ae4862b530c49fc0cfab381efe6e272eb58f61be5e229547f75d416dc474c87dca4cd1c00845a79532fc7b4624fba7b8c4969fe7e0892b04e8bf5ad2a054f03f4022ab6c68d81ffe616d1fa768ef951ccafa4636d25a671a40a23c5a7fab050a7021a6e3b5794543cc1bfffb8cb9a22e2d46805f3950948cf8140ea89d941aedc07f5b843f6a00000105000000010015cba65d5f2404609ebceddf1cee804e2e860304cd0343f83458e2421219e5af9672d9958d5bcf119c56edbc916224676b4b3d53e45b46c4ff9d68bb8b5fc5b924c7baefbf22857ca069d54e9b5318236fdf6e116e446710e4a8a5b1ca6c56197c960e3b1224429613e84fd8519b0399cfd1eabc6c69ee6ac50e851596fa1a5c227e276edece81f26383a9ba17a279b047c00fcb68151d8576a67a72fbf87e295fdf6fbe1bed66aa05290e694d1bdccacf55769659b4d32a5b6a526683e57f86f4de0e50aff0de8b4c6f806cd5d5c71f9dd4bc38e52d19ccf783615564ae0c77cd1e016031871b8faaed1a3f3c141e8fdf06c919b4caa3bdb11514a44d9c98118a3021658a05df3b461e648a96e311950000000000079a10000000000040692a6117a3c08351791fff921f322626e9b1ce2d396d1d1046900f209a95cb4fdf42dd17e1faea7c1f0720e73ddc539f773655fbae56d3725e3a27e4049c90b8020020ef9e509d3a4da9ee8c8bc7716453c6fb2cd8c10a6dee9e3dfbf870cf86583737000001bcf3542a0c79b9882132a676cf76b86a7c2c8ae3deb023fafa86c6fc4a9fff576e7fbab8561025a2b9f67311c88b6c0e1b4bf4ac8e6eb858ea3a075f1ba7aab4aa487840e66810440f36c973dd3030613581b62cbe25dc74f7992a9acfb732537233cae189c497d330a05abb0d0d29cd92edfc50acfd4c9ab3a50000fed71c8e0650e92f813bf457e579602a477f7783681473366bb4668d0072150119c024b507f09f7aa119f21b8da27ca697baf16da603852a877e047733daaa5b93a72b1e76bf8f187737dd4d7adc36a3eeea74c1b9df3d5f4ebd6aa06acda2456649f991ac5676eba3d02aa4befa69f9530c304d9e0869d8bd288397269c1e247fd50c2d6e2dea9bcd85bedcc88c2878cce4829d2eb816848289fe42baba1756b08b1159b125d541a4bb1b802acddfbfb8b230dca5808374898a6703749b5e07c87b2dcec1fe189e93d2f84116bc3b73fe37aff8d8cebd1a4e4347df62d05306c8fbb1368aa5e4ff209f0ee676de45b6339239ba7b559f46e8fdf7f5aca45c9fdfbefbf3bcddcfdf9d84a13d9b07fe62b013569655d77cdd51ad287286ef78567a41234e10885b5e91717cd2ac53b3256956bb9931af581ac95655fbfb4d762d220000010500000001000867a5f2eafac489c270ca309296f1ff0e6ed828a734928f2b77f29fc8eb26addc746778a02f13113792e851dea24bde13c7caa196cc71e232125e6bfd7bdc120fa53326e2d5bf5fdddbc67e4aa9c5cbb45dd29b9a3e2bc00c10e703d394dd75d07d64a8afe527d51524d4c2a66c6b9ee35bea53d2d45ec41762e5872660f39e0d44f89cb395cd0e172bddc01e2aa82ccb791c97e901f3f95637c8a54e6bf6abf7796fae255111120e40d666961baac80591ea92d6264fedef4412b0bea0d110de837ab7feb9eeb4bb4da9ee2f5ced9eb2f83c437a28ee92551675cf8697e9db692a6117a3c08351791fff921f322626e9b1ce2d396d1d1046900f209a95cb4f8c3e4ab49d35387d95f5ab6e77b456b20000000000079a100000000000403ed6ba1e8f87bbd13eeccbe28a55b1a52f9a1cd2440fe89f76a31c8ea09b6d9c2a9f954fbea9f854c7734646eea9b65697992487eeeb8db39ceb118dc205e23e0200203d1cae042d806a4215ac264a8fc30264762b4fcf2cbef8a853b9ca2f9fcde510000001bce31cf69eab74f5705a451f39947a84c3b1284ad581a8ebbc2de12603e06c584b3cf1a84a4089e2fc2a8c554aba315c249e281288c2d5bd6946199d1c8d982bca4bdaf0c971d6191bd92fb58dba783adbd061708ca8cb02785acb7674c7095c4a190b88edc4cd80d04ca07bde30fc7e93596488c38dcd1e4a6e5854e7e422c5080e243f942f7eb40224a394391cf1914b2e3426b05ac1d68bed828121f5b920ddd497525a7536d90cb97d24ec58e67d8e8495a8f35235f11e97b490aad38c92dc3ef66e581ade3ee7c0480998a19cd3b4561adb75ebfe14b7c3522eca3707ea9c33c0280cc82ed583541f83a4f224be5fc80315526fb1df7f191e7180c45037fc004c01889824028a0437f99fe53412ec9d5121496eee99c16b6f0900aa033e330955ba8c1f808d88637456f470492aa14978c5cb55c877a26c4a6357511a63d2a9511fb8c5793abb9cc8cae598a947d8b48b32a22f5349b14b386c7959ebb3ab54659abca2dad2e7e8c49b0b565c0e5ad82ec5014024c6cb24dae2eaee68caebc5a01e49d1a4b99c0e7f94060549660df23296996cf2388d182ab76e253aa755b671a2055fcb87e1acb7eeb7384e5743d51238f9724857c1f551667b000001050000000100cd931502d4d9c5d2c41bdb2f4b2a16779f169f62057403950bac8f16c8c9cfd870763f110a8ed3706076d6163273df8848fafd05854c28073a5f5189d173e0057a40920c9b9e409be8a67a6d9d8fd46ffd2ae8d2bcc31517d0f12868546b41069ebe223addbb4f42fe4ca1e3e2f4aeb28785228aa8b927cadeb0337ddf9a008b5b548e659a60ad41ac635cd0065743fe4963f856c1baab6481995f48388cbb954d74947051a46bb749ed6593115bb25f725e803eed5962ef8a3e3b1294c64e300834360a018dd78c6f6e5f0e5f3fd04081ba6d68ac0b1fa5fde11390f131ba2e3ed6ba1e8f87bbd13eeccbe28a55b1a52f9a1cd2440fe89f76a31c8ea09b6d9c9d2ed5f712ceb2e31fd7b8ecfaea088d0000000000079a100000000000401a5c5cc3c9fbfeb3ceef16930993daa21fd88ba9af7bf7a5ea16189e1217da55ac0bb79d55ea9101fb976df54190c90028015c961996d2c1c53a668a9e5d8e3e02002062e5e1c8eca473f41aa11e63d660881cc45aff6d1f2a982ad77e73e6b21ea20a000001bcb6a623fc5e6484aab3a005886b80cf07bb8086a408a9d979881f19de660090fdb6e1083cdaf79207770c61c11d721c4da63e06b29d1ce4b74966f06b056f4d175a62cdd7975cf378adff929501b23b415bbfd9ac652bdc63083851704871380fb0c764f99a2e1eec95d3570cf6eea92c16b3cd3f9d5b4e0831f14295975e3a4e1110659fe85f542b8029db310ca51f26041ebad2d55eeed4ea55c7c1bb6df18c998d5d0d45b1b5ffaac5595cbf265bff7ed9227b11e2b04fdc1a125ea004badc74f49a7aab2b903203141127d3d9476e2d6a252050e15d8747ccc79149e2982bc23e52a5586edc2a60c61f2be41423b9a52732424b64e8f221e8d9bfa1719868d31c43cdf5392b662903adb7ac569b03988871192f55dc8e86879b584b25db1503b1b79a81fdb9fd4688e3f865630e2d330db558fa29cbf76a9157b4d69a560b5020d8b1e6f51844d80e609b62a77e52dc0ad752a3ad5a1f3d7d0cefe86b9950dc8d3512cb3166840e89846edb26a066d1c40f44550c50bfce5693eacce0ad79ba737a3b045dcd51b29e7f7e812ee01b15eb3f5918a1b4658229682f9bb730483736b7a0da60d2d83d2f7816dd3020994f8d1a94817bfa6dc38e82a3000001050000000100d52427712c73e09797021142e49f81da372b2ad3fc454180e8a02085e5017ff8b44b5b330d54381b612998dbbd5145aa7f72367422c28e5c23d171482d6da29a47b37fd170cdb7ccd618db5f7d562308c301901a45e36db83481416d4a7bd93fef01cfea4cfba51e22ff71ed263d6397ecaad3d9867b025202b89e2f839072e43670471b9a9bf71c548d3a8b1aa9357b953c5ab3db30c42429025ac8a5ec1d7cb370fa92400bd549881928feba90cc4516f6a2bb700942dd149fc2ad804d14902f4ad33d9ee3deec3389355f3536a7a1a2aae272b2c209a34732c1a8b60eecc21a5c5cc3c9fbfeb3ceef16930993daa21fd88ba9af7bf7a5ea16189e1217da559e2e051d7a4693ee2ff148677d92b3360000000000079a1000000000004021f5cd9c50f82acc4f46244f6595f5d8b3b4cdac9667d94a712f23e245056c1e8192b2c5b9eeb55e8f693a3ed6f7b5ec900b70efe5793a653b27c3eb23013e79020020ddeebdbe4740111e1939de1ec35eb0d53fc5ca5b2b06b37ce6e55b8478b53444000001bcf0dc967f437a68f77cc91c97c2699685c1ef6cfc22302bc02f4f3caacfab0a4dcbfb96b8738d483377b677f714f8d700330efc9daec9ee28e5c63c74feb4bbe231fb98c585f9db8090c6e49c2165c1caed930a39ae9ac24d3c2b367284cfa41c503492266a95715e6698833e6e52211a74d20a3c7a384ae6d37365ba4419fbcc219b166d630179afcd7971a7b48f85380c293807b115f279d658410c5cda8f0ca3ace8933f7c24c6344efd407fc03fc5d3e1425782bc74cd0eacb3014f2a41cef3cb095508f5f6ef2efc20a1c8c87d24158fc46505fcb1e68db47c8a2dc4523d5b58c43b9d04ddc6b578f23ae4b701bd2ab1e1cb70aabaa3c2c45ba3c54cf0b665d632be74a85a35fcbb917315f7434d12c386b423c5b54c0a1394b1b45bbcaa8bd839f630aa3c7977fe0e0bc2a4879622d2e2af56bce90be2a8908befbba483b0b346ed5a6c6bd64f2f6f1953ab553e8881afe30b8359a426ab293945011dcfa72b7fac7cf3ae5bf8cd4057b4d8dfce3eaf5d62f72f5a4ce0a2987c7f9fb26a5aa9aa67195af59d8bd3aae420fe5a6aff0de216159da608b994d9bbfdb2a5fd59b637603f78f0e5723df7afa2b6a08d66afaf0c9dcbb31b18cf52060000010500000001001814cda753169f8c6ea3ec773ee8bc46cb0e2f7441964bdd7bcf866ef9b9bf5edc7934f998c36cb3740f406f3d89235b8ce0ccb04d5c0fcfac654e4245a783d75b1f48112ed4d7410a68a9494842cb4c6d45a90ac1df863f5391706e3812325b810e12daffdfeddecba18cdf2e108fd645ba2ccbbc7a14c2ac2d793e996eda69541e933d687830905a95e6c48af8e07b7598eaaa57de3ae0dbe0f4780db45e717f878803c02c284ec29b03ef6cd1be84cdf88d45ad33500ed03368fb83e80702be2b2b4df6439467d8c9ed5cdfd79a455d0aee6c13823e95a5b360b07510a04921f5cd9c50f82acc4f46244f6595f5d8b3b4cdac9667d94a712f23e245056c1ea9ff43053345d577e7e90dd0983d50fe0000000000079a10000000000040bbaf8a6875bd5a584673365473b1b9ab950cc4e8ea1c4d893d570b6cda798acababd393f1f2c257b82f444651b9b74e5e26d622136db0465e0c579c5cb31281f02002012a3c03a70e4f70ff403f618f9226ba51dff227e1a17ebbff0859b81b193854d000001bcd6843d44eaf0dee99557badadf4a51e7c3469aae63f4f3ce9b152852d8f03b1acd7baf9d0f59c14454bed0f5950ce7c618ed4fd98448a0dcbc6933d9d6b5b5525ad537d035a03b1dc3eab151db3f96945bdeb2b935c1d2e9cc040c4a9729c341216b1fe01fc948de2865063ab3cfccba6643fe0c0b3680aad15b29ba98f660ac85ecf695ab6ffc7501064990d5061f6020b8e591a8fba6c33f5ec9129436e3fc43e55e8caabd8dee3ba1f8e4c8c832fb9c510e8d7bb7c9fc3af75b702eb4f386de050afbba4cfe0b3b1313464911e716c55dd609c7108aa005910b234fcf1dfe09a50597c86267907719be4aebc159eebd580e7632bd692f24dd954c7c19b5b17872955a298c1df8e2c79989597e6af237dc125b23996873f618db88e023e3866506f79cc29b5551d1b2cfa40b52ff940d216fe9942fbef98b63dd9b9d424f440b24ece3a2491132c556a76a1116dacff594aaf2b93af7acd7147ab60be3552323001ac53f734496066ef85eb76d94a0fa3bffdea589784f9b647e71026c75965bb773774c838f86e86e297e851dfda0f890643ec7fd07b44b7c5c44c7a34c9f0949404e30b42829d11ff7da465d02535d66a0cd87d80fdab1e0fad80000010500000001003f3d2f6c1bc5edb1edd7ce07daad1cbd381411f043e0c700f21209db4df8e9200ba44f1dd8324f223197a99411b901221c8e8567f2e69b748b3ab09fc410f3db30f97b268b626250a73aee4b97aefae70d479bc397ba9b48f8a229a45f828c7d3549d40d05fd9ab28912a36bc04cd4c73e110f8629d50c1ce32d41f4d63f5099623cb6f7ef5bf38fee823784452e5839de79493f1374110e8b82654f86efafdb72c1f8a94e17893b1570e529ae0ae5b6e38e66b964887e305ee433475990e54fe80e86006d1e88ab90d948df18c74a76352bdd03efe170c0d76d79732ab10340bbaf8a6875bd5a584673365473b1b9ab950cc4e8ea1c4d893d570b6cda798acaaa08129ab5b2be4f591979e2e7977f620000000000079a10000000000040aaeb596a10d44d97dc25094726381fded1e6b23ae500499e47d78cd29ad4d0c4998ee09b0484f51ffde6dd858b6a3b7a9241d7ffbcadc6dcdd636f705c35e814020020f55c86e4226dfbdea66985d2f598261dd97d114b886a9298f142a3c82dd35d25000001bc128b5d8feef6f0a31afd8bfd0d9682d50d5e2766e4dc81986be9351efaca472d8e21521e32c106aca769fc638fef9067bce5dbb3e9e47ac37fceb47d70598f8f5047500f9ff9e5f78118795f4da66e3fa30094506099303a4e2bdd4fe1f3f27dbf0cca3b37d39435783407ba7e5afa3bf6a6bdb2d9fc01f799649fcdc94e19eb91c30d9aacd72e2dd56f500df271b024b3254170f0a941e80bdc41f31567e04343651716221af835eeee7736868a8c5dd6641b9c73cdf8905e40254ca17b79227264e689a514c3ac79ef40d98a20baecf477d416cca88711b31acf1c29ff3e5353027ac4819d0983cae9fee1a65e183f3861f2f9a72c4e9a0f8c5620678da78972082465c44e65f91a4667318e4fd5d84294cdd025f650cbee22871eb05aef915d455a747d37202a6d74e6de8b2ce88ac8fc8571382bbf86c1cfa388cc722910d6015730b8e385a653f0708da8e786b55201a3797e0bdc69552ccde13f99c080626dc444fd3735529d90a1c15ef07d97c16fdf99f7964759e96b1b650d3cdd7f8a1df6f7682caaa365a8d047304cd9c5411b1bd7250e0b3c28af1ca8fc29906c1d9bb58373a2b2c4330413725ddc44607f7d2f2ad2fe2cade3e8dcdb000001050000000100b91f205d47772c374f300a340d1fa2caa485e253e86012fd90135817a9bec09a90a347311fadb3a469c83110667b596496e36088c6bd125b607365068fee8913d7e8e8657f3f135535edf652b3edb311326ab8508041dd6c3db6086c6ae43b58e8c80a553996b51d97faa31463fa46409b22664b27c8eca1e3dd568a239d226e4b707400e8e5ffa5fd9139faf8feb33bad3ced588bfbdbfc7392fe1bd173092a910285ac9d184ccef8dfa432a50de2d31aeca81e616ad3c738211080dba5e00ba089497f4d60d991d0da766ac459bb5e81b941ac069e1d9a89ae1bb400531eccaaeb596a10d44d97dc25094726381fded1e6b23ae500499e47d78cd29ad4d0c4ae35eeb8b55e508af82145a27e3153e20000000000079a1000000000004049c0ea75ab7f7fae75914c1c5c8b9fddf91c129ea5e563165d8718a27ec3841b11392d6a884e858dc2f254ef968dc34f85894176c5ab9979550037b1ff0f366e02002044da1aa6edeb54c7115ed0926e5108fbd718f1d5cff84a88df5b8257b50e3c5a000001bcd1ece0eee7c45df831a8fb72b6c677bb84762ed4b72e39d1227f243f8cbe51c94cefec6a9e0bf997c30b8a6e1dc7cfbf2bbb04287d30d2fd670445b895f804ebd5f2ffeb3b1ca4a1aedd34dd63e9f6a5e87f950ca501c4ffd3a91caeccffaa06ee66f5e25962b223b18e3ff3577703edf98548131d07ed87e25531604913e5c625eabb748d98d54b8130674792798a80826240bf4733772c105b917f33a6219fc1086ecc9efd1fe338b03f54fec98683804b38c7f0f81618c2e61bef45cca338948abf3fc56c3cb5d9409037871899205452aed719a788792b32a52a13bd173a31b8e950589c4ffe4cda9ebf4603cc4f2396c66c314d5e436c07f81eee89a5cf270f66692c4b160b5e7b7ed01cba8f895149b1cbe26ef0ed4da46a8922620607b6923c9807690f89a1025f6fe5f6f2dc1d5c267778506c115e679a4371b1f7e3cf148effe4570c8e6329b93b3872e357269db7dd0af9452483b1156e18970b25bb379c47a96be9c373e5e5e11479d5835e10b7e4d38e392b11bbd108fe866a29dde409b4d97482a053e5d57eec4c0e5b226840ba44a1b5049adbcb2595061b52bf650fbfe51e655abbf4e273e4adb8f8e5b8d0f850c4eecdd66d728a000001050000000100de7b33173bd6a6a949997ebb96c8234b07391d113f959b985aa0581e14cb110ce67056e09ed3141e2ff6ea42306387918bcf81f3716f37ff55bd9cb8335e16b65e83e835e8efc1fd68008e15f169cb05a55cb12770030bb284c1a8fb3a6c35d7dd491835820cf3210ebdf5f31be20f877d3bddb4a3537717c58d39e2e5a08819605b0ca087c293d6ad4b1a41d17d8ec761490fd16361ffc9fd82c6f013dbd2885ee49b5bb01bb8cce33be4e87cb231607461217ef73c853ca6c8496693cc69903df6c239dca96772fcc155868f88982f4c3e74205f9dee5251511bfe72500bc649c0ea75ab7f7fae75914c1c5c8b9fddf91c129ea5e563165d8718a27ec3841bb503a949f6705f5c2d0ca9660d1974850000000000079a1000000000004083e1cb321776d5e06a3191d6c822b6ac05aabe9eb4e05da2ca9409648fb140aa516dac776674e21642da7887241f3a52bb396be1f3d52560e4d9adbebf9edd800200204314aa91bbc1837151f53c17e98e3687da26dfa1b4c7b3b0a91d10a5e790ae2d000001bc1ffc041e9b6dfcc0ba1b88bfcbb19f5b7b64e60faa6abff4c26da5dd4bd4c34d69cbe34d70b7fe3e2d29efc8026dded97ca58326561e571ba0e3d5463599e159dd495ff1da76e8792c65ef08edb2e451c44e7d75178343d68b7c29898915b09d37cc6e6ea70b8b7de0fcddc470e18664c573ec1b43c4aaa16a016c2652fce0b5f7b772103fdb5a3651ac0bb2528947ea0bd14b1da143318de983d4b750895bc1227126088b6a13a99fa13cfa322d490a67505f8905e6cbc14f9286195399489226cad15c0e0bdd1af4a47855563efede582992488eef5a81135e31b0ea686ba81d575435875efb2cb6040d183862e4a6cfc48be6f107d4ebe40cf9b44106a3b42d68bf54a5a1426dbdfc93633cf07cc42325181982a4962c50237bff8d3f3590abf492df75d4b293bd08ddd5a8d6da59e59ac57e73ccc7e8511f396bc010c176be6fa35ba17245f8e7bfd6b532c7b24a4f4b0a44af547c81b66aebcecfd9934ad5e539573418ae89e7c53856722f705bd5cfe92893c01fb317a6bddb9c45226ffb9e5211bcb129dc5f70bb204c83791c8bf7127b7e084d147ec6456e601ca2f674fd157713cdf3b06559da0239ef61057a1424478db631b581b9e8c70000010500000001009b3594320428680f0ecb2612e63e8e93b1a7b1d3d7f785574673b597d9a2d9159b6d8e76548808d5d5f9756066038fd835bd4660fdee1ee7bc07925fdd04235e07f18e58f20956f82908be63674fe923f4b197f08b82a90221546452b451f2cf7e8f22a9576b036d2beafda5a55f17d8e5aed6c24f8274b7a8d4484f95c948cf34f3f58dbdcc548794720976fc4bf36610cab63cc117331e128c7887028978145bdc25f801f10a5ed060948cf33ced5af38df83f339900e6aba9a6fafd72319413f0e7a7bbf1487d8a53a033558aa0f31593fc14a6c176c1aef5eb696608a4a783e1cb321776d5e06a3191d6c822b6ac05aabe9eb4e05da2ca9409648fb140aabdda4f0a119ee5df361a082102e2ce540000000000079a100000000000405349adc6152a4e9a6870190ccc3d381ba5827352f66c2d53650a83e904fbbf681bfef28286c54ce8c53918fc8b57e48591fbe405d79ec137badf1556a9550fc5020020987e25ec8333d8189b9532597d7cceee1e64dd381c113e6b116fa5cb0f4ca502000001bca903ee0219323034dbf496b27a3092dad256e95484f7048630ad68406b56a8114fc4eb1777d0ef9949718fc0841bc2f713c578a61c82d94aac165e5dc1d2da8619bd00146ab09f8dbc50afadff35b50f3a0d4b58c3088f4eb4310902749332d90b6cc70474e44738c7bd05ebae7325bf38783547f820ec5788c86504321565050e81a188b7841129f564229d0ef44b2b4846cf4685b58d641300f4f28822c93e06ec3426364854151219f4e7d978014e31375f8e5b6b6b098477361c14d52620f0b5bf828d3d69b848a4015b7dae9c02b8bca43d0aa723f6f7d0904d7e8cceec21c09b1232680d07ab6f83db26187e05b4a4c0fa1656fdbc581859738303ee814c623e9dbebb3b3fd1e250064b09916d778a11511cbee7448fe069d88bc11a8f07a45206ac6167a32c3a7fea6942ad387eb98f3f664caffb873bbfe1626827c2c0db4e6ac3ae4a6ad43f973370e332111d853a5d3e2759383ffca435b189dca7c977c4f193656db608ac30cbc0eae33897b37414a790d24b4d32a537a2b422109caada5268ea51cde16c0074c7e42408ec68a729ad3f35a118567edcc8152d434e2210692764a02a5f04d68d8e9404f07426c7da1f1ea7f576894b92000001050000000100b0f163ec57959056dec6de0639ef597c807481da44bcb85e329b483aabe8c473356816d229bba599c6aecc3bc514245fc0091be8164bb8c3a7302c3b9917030698073d81c7d9d440b05d8a030e8f388d1febc0009e9178f80005bfb4290ca6808a7f9db78060cf80e69906406e2fa5bd9e1186567add514770add9fb8e0106099ed6e81fcb8203bbdd83845adb839e9580bca286d9f09f08f3b425fd5c6c84fb242a4e1fff3d53dbbdbd149e5e1959af5921d7a9f8c2a0f8ed1dd2a482ebf9cdc46422e31820d9f1c9a75eaea5f78c3131c1aea40093b8a611d4940284f9448d5349adc6152a4e9a6870190ccc3d381ba5827352f66c2d53650a83e904fbbf68c3240cd8132c1e6c543c255d09400b270000000000079a1000000000004087af7510013fad301089ab3b63a3a2c2b783c47ff9618d7de24eff71e5bd78e79f346bdeee3632237c0b27bf8f3bae3b4142fa2ffffa52e65914092ea4128e9a02002088b0acfce36fd6ee611e028d245c2bd38b1c2d6a9dee78c04b7be88ca6e76b24000001bcc3573cc086fcbd11b4b9eafcf7665b55bc755bfcc670ed36405cf540c64fc19ac6313df2560752bee4e5a3c9ec9a294e3757e24a214a8254a5380f6fd85e283ff966b41257f32f53ea382a6b3652578313c7d62e105aaed2362b941c178f4608e2e3354f73598960c3cdccb53c623ff8390e51005205b3e5c035c4304b8bd5e33c8d1d8a9ad9bffcba5717348c93f6fcf7b34976824f5b3a977645cceb053fb0608d45ffd1e8f81825c7b14101070ede63c432400152f694af4ea463ca124b76c3e91322a5e7a0032828062b3c499a45515ed925cfe61b8cb758d14df0dc81f3bf6ba28f82a4cc23866c1cc2d4c074e6f6bbeb559a6a6bcb85167bbb0beb0de48eb4a23edd750905f94ede882d05798f2448a6c35fedc488a237771cc716ba353dcb27da9562d8726df056a94286ee41a93d43b4d99441e45a1c7d85b9bf31a9b243607b2f8946ba8a6383207d82036b95f8aa1bcc642a5318c8770ff44af1b280b7a4db2f9adc44c38b34d5f9b1d8bfbc5a2749ca55ec22fea3fa4cfe1c30aea1e2feaff50989b132b99c325a5bd44b90a5a930eb2e94624f698f8f482dd9d567fa716c1737bb06517089e339ecf4490a5805a4ae3bee8fded527890000010500000001009c8f4e9884ad51a0a705ce31ae3465b8eece3cc2d69559ad7423c03f28a8947c426323b5fda28b1627f1aa7ae85f0cc38734eca61732130283f1f00a3fe708ed68be04ec831e9aa0495df9f4485679953fa4e2c4f04ec3b8f43b9e7fdf92a97e821259a3e9fbaa119c4eba89ec367f771c69505e291f8b7c3e55d1a5a4cf0dfe4c7ccc09d7b96e6d7c6ce0c56205f1450066bfd600ee8d150d3114be0037285e2c4765fa2e884e8170042274ce83f7874011c78133de8098d3dfcc753c9fe7666e5be4ce92e2f73760801dc022f747ba5164fb1db52147df09b9f32125ef72b587af7510013fad301089ab3b63a3a2c2b783c47ff9618d7de24eff71e5bd78e7cd7cbf40e24056d376ad73d5cca4c1cd0000000000079a100000000000400e761fb937cca9876b2bf19cb29b7b33f214c5c27c42de1cc97c35035edad83176823015c63c4ac18d73a3829998e46675c324f5bd11cdcadc8d4b9dc216eb6c020020c7f01d7061c14d27ce17037e430cf9bbadd5caf3aea71535fd7bc3917f5a7805000001bc3f7fb07679bee5a3c903446fea4422b5412a004c1e0a3db9926dc5b250f3e9177826f8cad1a9c031fa8e697c4eb50f5b9f3410ad5ccc5c55b652bc860d1c3c2847953d575569ff6c1e0ccc353dc4d82382104080ccfed03fae7ed8002cf8aadf637af388661547068c746fba9ca5fdd516a000a92b1368eb48cda2c0e8f3b9b70a796f75fa309bab6fa0e8946ef6db0fda66e44cde9b689ee5cdb0dfffadd650384bec1489175581abc7e29f004f55332713a4f8eceac22a966d018b9960b3799a0748fe08ba94e4ba9e3fa0feb38569bae4fa1123318a20357686b2174cb2e31088bdc9b58f9db33c18c3a724a0c942b0c333f812e74358dfb8ece7438b40339e439461b1cdcf48f9bcd1eb7f2b0052b40985658434b57ce82bd2d0504c24d3eceea5decd13b249859246b140650f5939f9e46cf5d5a89e66027f9c106cd2ecd8ec009c6178792b060482e4eebb785a78c90f57a514a2bf5b2372eb4b1b00a6b38cf69046102269d4db44ca9efaea6b03dde26f5c48dd81dfff2949bcfe5701c7ee5b4a7fa2b61f5e1fa65cd47090bf6449046f2c617d6d0c74942ecec3c8fc48f6b9e2a311fba1ddc357894d34d4a94d9953f0581cbdb9df6609c7000001050000000100550d0aa78dfa729b4aa1b007a79c2ad55709812af31d852be1606b86dad8eed61c900e34e0ebb31f2e4d48369b8e20e5cac5e0721570c0935995fe778d249ab20550dd9b6c9d41ba7635281b1801f93d71f5a97d1e52186d2727bd4756364e0f538c95727066518c42f3ce622f919c6620dced3190dc8d10f26d4fde664477b0945ba1f707c16d586268a51bdcebd5b336924f10756eaefc45abe341e863c4db9f17fc6abb149c57996a1a8b455f3585a65265e9ace98ca74d944e4481aca36cd7c594cf15e8b652afa7675e9741cd83d936b5fa2abc5a0b742da2a0f80665420e761fb937cca9876b2bf19cb29b7b33f214c5c27c42de1cc97c35035edad831ceb8ac1145d3f422dbf2357907973f2d0000000000079a10000000000040e02ccf2b3bd43ed43d7eb33849c85851a3403dc7d5313285a1626ed393461ee9b3fe1707f574ac5582147c656905af1d9aeb888c1a33259a0e396eb87ca82b72020020a61a8d30bfe77777d4382f857ee5e81b6c511c9a4854718e9985a92d14254347000001bc3f66d3e1c0fb30d17a32ff6636442b98986ed322869802a5831f8d4ab24861c17731dd9ed3fae75b4baad0116fe5f1eaeb9eb8e58572ff824bafc6e28d66a17b4bbc127576f853e40895804c0c9ab9cfe62fbfdea56ef9504454b4d1bd9c4c66ade4c033235aa02e571ac276b17e9283af3a01d75e6c41b8e535a6a0f7d52f565a05a63771847257ab93b96b799ecd52a34f9adb5341f3ebe758f717cba55dfde5ea3074693e3898bf85986d1d2c11ab3dce4df667a422167cc22311f2b530402ec4a9b467d95618a84167498a5ccf43f53ec8b3ee3f4bd31c3836ee86351d5ec2b315458f86b537a7a9c10e80d75ff6114f3c5d2f8e4a71228f0b8e5ed1520a1a9bb3a2b8ce04c1c03da5df5779c1df2df75aa17476fc250366e602efd0bf368fc1e75fa0d73255f14a04a0c59bf6cb26923ec45f973d76f148246ff96b793f0a4fd383b4c3b9f3da7040021014de32603f3909d41944162a01c36806acb8523d9f5f034b16c114f86c5f3bbf6a36073bf18c0277704b65ff76379822fc0440d782a593472a1cb97f0f6fba7b8edee7f021eb8aa3d302bd7756c629bf1bc21d45fa08413dd13e687b2b5257cc432547d540935da031aa09741aa903000001050000000100aba32f7d992e499bbd0b5541695a7238274f8084c9cb54df42c61438b686f219ff05c01c6c545ce9c95005c2e3385a1a0bccd62995243a63aedba1e88a065489c7d3c8ebd73f081c8d66c8bd29f5c1c12315f5a1b20f95c1e53cb8208abe447c78cab1f3e50661d81e801c089fbdc6420b8b3dc87bb28f0b45aeff64c15a6e36a4ef5f684745550c774ed8c176f313d9d96219fbc8f1909744d50d8b00ea7254357f83c4f8927726b91ac448ce7d680ab49691ccd6022a36bd579ef7770ef8878185f1b7b6b244b53014bcb0bf5b0be144343f5d354554e07af77dae788c4a84e02ccf2b3bd43ed43d7eb33849c85851a3403dc7d5313285a1626ed393461ee9d32676d2e8b8e7bab8540e1321bc971a0000000000079a1000000000004026b9761633b4bd8a65213baec129f950b652d693a7bbda7851aa09a078b3173940917436a013895e89d4d42ef04762d9a72683237f26f053535b4fa0f53f21a702002013c04d798924297f9d3fc9a37817103e4134a53a1419db8a44e401e3d346b61a000001bccade0df3b8055a0db4a8362635b46be989c2f28f7bc1afe9b601c2517c0898701f8657fdc8729506cb4381b827ded4d140fa242949e1826f9a4a1058ec8cc8aab504e093566f21baa5f1ac9256b6173ab0aa6e1ee765683d9d1e6c0c98c9e250f2d2f2bfc7320a9e4eaece56d9d7ba58cd484dcd06e16ac876497f0baa5b9ae3f1113b55d97ddfc6526608e684fb2e46488ef574be848754df5954a4da75e479beecc2cd0c19f9a502c0c5deed1c6ab302c662dddb8487af6fc29654a4daf86ca77906aefb1eb0ac20e2f01575ee9e3867934df53f85f2313021e9933eba577cbe2e2a2d3f8b7892d2c3f2cb724d460fda65bc7883009750c03698891812d818908e221f9315ec9a308d397588296641ba79893f01e2a6b45a3a6a00e2eda6bcc2a3860ac95dafb7da28887bc3a694ac87f1ea060a6ad494053c620b849363bd7901fa0e2957a122b67f9424ab0a60eb802f336ef22aebea7da58375f12dbe67ade8c2bc6255987f6b2c4f5bf8e09ae0d3b0c32148606b5ebef620778c4d05712bca08dceb83ec6dffa1d0985675a5ac10cb6fa7aa3bc2084740c3e78b94408c391d68611c0af00f8b305cb49eaab773b66214947b36e114c54340540000010500000001002f1175a3a6ad667dd9d09ecb0baf6891c2c15d29b0b68b820957ca206f59f2905dc293a7f28a255a54bd7177fa27c3bebabd3a841c3f040d09282291081ea936230c57b8fa2cd226f3388b6be4cc1310e4c8e6259a9f77d2537c76d3c6be0f2ac85268d979f0a117ddfa8f1022587eb013ebcfa33f5930e47e10224af0fcbab8e83f53a6f873752f0a168fd5ae7d24c3e2f0569065f56d96a2928644f92ea32ab033dd67fe2e2c34b1fc4514d39ec1fe856b6795bd6070a92d03bc9a19bfe3c17569263f0441cb718d9c0fd04ddeb867261b8b2750acbe565ff389a837ba468c26b9761633b4bd8a65213baec129f950b652d693a7bbda7851aa09a078b31739d8c772925aa2fe8828ee6e4308bc34ce0000000000079a10000000000040e4f3452453693a4649b692b6d9928a5347c12da25ed289ff7f9fc5f0f31f3f7da5efa5035cdc2b5ed2777ee69ee6c09a3f0e4f3a53f882e3fe017db273e4cc7f020020f44632c05c665143a4c48ff75edbdaea835fd326c28528e4d744848e21609416000001bc324b6135c1399877aaec8ca46b0870b70e9deb4a9fc1bebfcbad2111d1bb99623cee3a66fe052046eac7f95c9e6c94d8bcf896af159f1b51d78c827c6feb46c9b073cc1e941c2923716bc0d8c1f3f79bfd61796249ad1ecd597f60f1668511d0bcb97587f4880f1ce9200ef1f3fdfca213bda2a30679995dd2f11e0383df7ac37a96b960cf67aa4245fc0db181df39381b2bd90b0fb55b096629dd113157f7ccc9432a3bb4cb29dde91b15846c3f72790645682b30bb20e96f6a638772f9a78dc855245031075a0a744bb2ea7dc5ede43250263d87a7fe69ec1a4395e740fe7bc58878a4b6ef959335b0a7396e94a76892335eec10aeafbfed2f2fa7340e7d546624380e217dbef334d0bd16dc2840493b39f7aca21de239b54e6ed028f8ad0f2ebc6974d43680b9845c6e09cf4f4b82e1ac166c0c99bd9c211a7d3f903d44bcf6c0923e84ffb6c0b69c8fff9bb1a5d661a9745b86940255f273c1178ca3b62d9d55995a4f1ac4fc1e35005b8b61d21f985b7bbe88fe3059b32492fbbafcaa102b3904f06a03b4d0b7d69592f81225fa69e5d355ec9007eb7a3e7cbbc5a6ee58bdedad3fdf975e7be6ae39dab93419a4c98d29f2fb40e3fd66c34666000001050000000100b35693d14ec46bb1fc037cd2d01ff4e441fc688cf03e642dd3135767cb410de2dcb9ada6187ef5cbca58d70f568b9313759fd62fb30039d2511ab31b4728b43f90bbbf74193f18b3cc49a23a92be7c5190afc9b9290f7814d32d715c0342b9f1a36d4d09862f37886f4b4a562d39ebe86ae3eff50e0edf0d6d85895487de7d077f6f63d7a172fecb04fc81fe8fc0afbf537c21291b36ff364bcde9b3bb3adffa1daeb460a7c9b66d1e639fc55d5a2166de173f16c79687231f3c3e0167e10bc7e89c79a03ac2d84d71ca247b8d960b1a4f913a39be3a6676b3444802c2a9fe9ae4f3452453693a4649b692b6d9928a5347c12da25ed289ff7f9fc5f0f31f3f7ddf7f4ebe0c8e983e6d60a5b39f4f46fc0000000000079a100000000000408d874b8ad1e142d4aebfd67eb32f99093731d96ad65e2df1150eca48959d1399bc50118191b665494dd1ccdcf2cfadc35ad64012e8000c1ef137b8de336f535a020020389fab713663fc5cd2b0fbc0db7be5086e46f3a310e8db1f3ab15d4417773646000001bc5fea77e5b98d141d57f8e17e1b7eb7834b038f392348380ab372ecf29a2fd87f584b13065d52a983645c9b37fed5ba71f40da093af800b1dc069f74ab12726043988a0ed102783a73d40d81a891e63acf7a9f6cc6e1936045f4ceb640e8c7b0bb7e5f59e7eb01a7bf95ef3fa16bfdc50e97f036824b00500523695eead715d6b251da8355b873843387d63f684c22b6038d5c3cdbbed9208f76ae44c9d5a8657dbdb417cdd734c44c7ebd1fb5fea59f06f7e5a5009fb3cb47429f0c4aa204e285758d9a124c31c20ca5384f43b382fcc34883c14b73ea1ff64eea8fc27297e8d3cfbf2a51c6e31052acb5173fcdbfdb32fdecd9e6f2479142ad8d59c0e8a564e573b2e6d92996ae49b4474153876f719c13bf1e046de29e503da5d1fccc13ca154fcfc852749bfdd5ad29a739bc4f54bc61a89c93153f07ec2d875c68f2c3c35b1637385ec8d10787d82ed36bbf4cb9b6eae7c29dfb6d551ede57988416515f5ae0951f04e9f8bd54aea0bb46fcd73d418aae0734924042acbd3376c95b82ad194ec3d4395361fb54c9654d28a379074ac0456242e1a50a7b6aaec17f06b02a1d47ef7967bdc361afae26a31adaa9739854c4372bd3cd2a9a4975bb300000105000000010029bc2ed39ea78ce9221608d74579bc6ab8626cc188443b8738dfbe9edf012fc69d463bc97d55de158b06dc3749025b69e70b58971d294e8bdc424512aadeb54c8cbffbf0b51ce3afd1706b6ccc44b2ea23142861c36fdbc93aa898d818f2aff20043542a3e2e87817826304c06efb662fc51a733554dae6668928721c5e2b70d4c35ab73afa3d1ef005ba8f0bfb07046fa6574fd0d19504b3d0d7376c17c0caaff35bdfe6084de28603cc9063e04874f7f69796c3adb2c110c8e5b6720c0514a0129bf150ec58b8a68a83e9d2a46969c96eb6c2f47b0f487b4c7d01e6b70a36e8d874b8ad1e142d4aebfd67eb32f99093731d96ad65e2df1150eca48959d1399e4fd06724cddfda947ce75b572f541540000000000079a10000000000040b961a954996f93712250d2f4bc78995aa611d0b644725b8f20f198a700bb4878954d9667779e2abb5cd073ef9137cdb48c9ee41fa6d37d44d8e1c79e447441e202002051da07b55575dbc2365d327814ae336dfddeb3dc3194eacefba8589cbce0c40a000001bcbfd02eef2f45b1c11ef50bcbb3820610078cfa2edb5215cd58454741f2ac53f75ec8d32bf8114d06e49085c48cff9d39c6c00474e32d163d05f85952dffa40f55cdd7bd75764b32d1531c8c3cbdaffbce9c9a5a2bd105c089dbbc94de838d4b8575c70fcbd309af1883c5afebd6f556821dcfcc4306dd24bdf8da82786e1ac98426dda85ed28afc497879a3ae95f043e801021f7e320f2ba70fc490f32f3a8af50eaf4441b3443e151feeebe57b1608e398fce17d8512cb3d7b42b185df05c9bcbdb3f1330b7a6d71a7e7c37fcaab8eda87fcd86a4fda67c66928813bd9b8a2b22a61812cbe31688467421a84144edf2787c4c49e0612947501a2540cec3b61c0988a175c454b05973fcb99a9c817a24264d5284335d1831fb4ed31144ca92563b81b855350809fb43458ac8f146cf337fd87ae4a1aa3719ccadb02dedba5b59281c4df5e460b777a2857dac96e5c97545eb3eaefb82d8fa7b56bda8079935f7f51ff03c968678b1a963c05c5da4d4e977e0526c8ec38af8536819e8d2592c3514ca1d8b35128193d54f61c567c8a8e78f2e4b258cf9963531810b7b2525cf6b2c8ddfd42bf9ae7d9ac2a433e4545b5380a38f7a275a445649179be20000010500000001004acfb3e9e382c4f643186d64c10895a02e2bbc0e7e8c9e84a82bcc416f1808d86d576d851ae2a06be9a34c3a422afec0dbdbf00d8c75395788a0ccb461fe5db6599153b1d337fc8f0640c7e69f38c69d7a0597a6cbb09ba00ce45752f240c2f5af27c3978428bfb5def4927c384e812fe1bf049684ec51ca994f87d1ba23e79888a3ae2c46b9c0f3b31a39c1e30897a4b21334d26568eb96cda4951b0e43e15787541fac3ba94615ba488874beae160814deede24ca3b3cc3dc4b1f0d26c0e720b5b39650e5c966a466e934d3dcf46ba3ee0ce57121e70b05a75f985a9c6bbabb961a954996f93712250d2f4bc78995aa611d0b644725b8f20f198a700bb4878f87b6fe4cba5c60bdd8a8d70207c3f040000000000079a1000000000004054bfb2d6219cb2bcc5c61115ef6a36371f9cb46df8af6f3d581e462adb55c690c4cf73f64a8250d936ad6ada38a614e55b211ea8607be6918ad4fd62ad086bf8020020ecbd895f61ee94a5f9e994a73fd718bbca46f08047d7a66d9019d013925d7d00000001bcc83a1e21848f7809095cd4c49d4a3fca735546b12bdd2f8229a4379cde51bb05ff9e5937792808ab1916c4bd6cc8e0a13ab97dfb28077e398c5f544257df5cb8c56d11987040ebfa4c22ac1ff9aba4363f123222b6e414d2bdf2d79f825cd767210748a025444a6351c71c9be809cf3345c53eb238fe26fa7b7f027b29544ce06f78624a1eda459a4fae0a3d7b74fecc0c9461ec108f180762129d26108104b89ee4e3aa3f7c77b07aa42c0fa2610807372d28d96e7046dbee2ab5ba41d8ec5794dfaccd0bf80dabad63d9e748f0b50314e7ee7fdae3488bdcc4bf85a59a13a396038812e682c3666b7ee4a934d2a48080c154d7c7dc86743ea6f3f8208d4d907759c298f4f909efba600fd81379f24b22a3715a8d23e7909e969b2bd24583aa189bdc95616d6ba6481481570eb45a7938eeda54b82790754a45939976e58a2414bff445a5db22d9e477f9654e15c49cc6ac2af4f570e6b4bd6150310fe2612736a5c38bac91c36123fa7fae080e3e407512ed9d8823297900784d921398e2b50d875a59e522ece3fb883c8832b143969f8d6376351ef1f3a5c192447bd5ea5a34a18b09373a49004f5780f294ed9ca9cc69ee0c6dddf81be21be3bb0000010500000001001c87ddac4e24f86619d22c012002c0a334cd782d66c50794865b65edbc7a51e899c2ee63c731b731867aeba7bee3d79f950a092396110870dfbe5b6de0effd865f0eb30261295618654842524ed8a5cb78922fd9a9b6eef7a7aac8d228f45ca91f43474ed26a94e5223d8064e9252f28f0d1463dabebc76031c15981b878b864f87a05ea2e2057b3dc5b25ca6de857bf001189aaecc18d7d5df2d668d1f3a55374624c6327fe3e4abee434453fe293216849ef7f09696e7df16dd73d2436907424a85e339d8f558209cb9ee91df86f626221ae7595ec2183841cccc325eca04e54bfb2d6219cb2bcc5c61115ef6a36371f9cb46df8af6f3d581e462adb55c690f9e66a05135292fd12355561fa770dbf0000000000079a100000000000409ba09a3f3970ec56aede123572950d31c201857753b1f532640a5e2d5d0f135a632d9ceb9d6432e085d5d8244d35defaab505fec2733f3fae54753dde6be3ea0020020b122c2bd842a83152e2ea9e430283292eeac72c92912e061c69a3aac9950024c000001bc21954c060a292aa2383652040cb5dca19db1092efcd4162b2061f070f8840d8495d3a94a7657820b13ca424b2d3b677d89bc8c948e1a64a6a8f51a46884a28facb41d7fa2335a4cfeadfb2e8a06cf0b9af54e537ca64b461aa9daac4723a306704ac857d0bd34ac49d8225bc9528af1bc317d4afce4d6c8e3f394020dbe599bd585ec6a30a71c04a47ebc49d1b04525ba95a4b3a6ba6c3ad4f0b979f58cd2171ca0e21532194371b63453df52184af0ba530fcc8576928015cd7bd799353f1cfe8af713e5ea57a759b39cd164aaaea90f8431656169b1d7d957f8062bdb50f0611cbeb6c71a3b9f95347470acd21f9ed9e7c78070a9b1c845b8b25b0fa11c9282430c91123c2f452c27db2863c6e0392668d4bc2b419e1b8c9436d37df900128ae7cb07a3fd7a59009c9f11c927751695f54a41f86153d09e19af8879f9460d56333d3110677a2064f22ca6aaeafcc998249812e9e11aae8f1b7e1eae66fc81bf116503392b2b90c6315361e6a8ac9d0e824d15e693e11597337c28779dcb211342d86ac76a2c93c7a77d13b651867b222e54f47fc3f3a766461256bcc3782e324e8ca4fd3525cf5e15885b7b87a32fe6db3a2e29afd4ec9bfe360850000010500000001005b5f3c14562299166c12ed40fa923e9307493d729c6546db42cd56e0d7e0e9dfcdee14daef9731fe77aee6982ea2e41107f71216c8950581cc6de9856b8cf189343d3e7a4bdbc182bf38425d16f80d65f3e5c7c1ba0a0751d2daf842eac68a811505d25a834f12bfafde3d8e3f0a795bb02c1ddb6968ff958fb4800a260d2f56bc5090f6defc9a18b9d1c90b2fd48735daa1460a236c1f1e8bc527967c60f3422deb860ce2c02c33a8068b72851c8e11f3672bca9da99e66d3e3e4a32ba457525166f748fee236afc244896b67e33e9d3504af2f36415bdccf1b9f7c98f572419ba09a3f3970ec56aede123572950d31c201857753b1f532640a5e2d5d0f135afd9cb80676853e163cf831b8b558eb260000000000079a10000000000040be08255fff517b6ad32ce2e331fae6c977aa910a7b498f1a9181d848d611abf5b6bea4db3a41908a980896b34a6a634a84a0de468ce0a930d34cc57ba5330b4e020020e30218a064d8e4bc5dcd64f955fca447ca27efbbe4d2cbb3fa98c1ae4ea9410d000001bc0882b2fa9f550871ca0baecbbc21584f6754e4ce360f15026ae0970ffc19a289f5d6eaef03bef4698573a8d3be5aafcee2e5f5b93ad5046b469363a101123d2da4e11f52036817224b6dfe1f0767618fc84ffba6ff86a64c074732448eb8b0d8d7f92042ed9ccaa7838adbce2b97ad7b3fcf0f75dbae7433ddf40b9b2d41dc84268e523f3530dac6fe6e398098a1e6684977525e93b590c585236694c7911673bf18845caf9998db43906220a831c445a228d66907412437873d00f6f44ba979f1ed29d22bb59aea42080e51732c8a6977811218bc51685e0176a01dcf6b24c165135c0c55de00b5564bf8f69501fc569084237e0e19713685a7c827fad7daf92ef9a3e41f3334c930b1d6d6ec7d5d160e03716c76fd39d3c665c1ff2f46ff44aeb12a1291a2079737f2f9a0b269be1490978ea8fb5e73469c21184abbdf11788a37a2c7902fb536321767e0917a99be7f906afee39cc9d407b25a7f13f99db05f4646597c9d24d921daaef2eb3c8a35c5e6fccbb6c7f2900b948855234ceeb8a11a0673aa1c3be91d80081b8652f1cfb0a55ac105941ceff64bbbfafa94490f02f87b53490a217373250700bbdc5c4292c7838f28b6085a8f0b5a850000010500000001003a03f7822175b84ea450b7f4743e0593a1e137637e1c688c700cfee3d0cb357d31abd78197397571dc783685afe812ccc3c86f204e179938e3ee1b36f02e429cad6f75afb4e8e72c1544c37507c3b7467db759e3dd84bec8de25818980227e7b1e24bcf545c8ecf70ed2f5e089f026822e609fb98f2dcf0c0bd7ba46300156a14e1e616a14d170c35a49bf4ea5bd9ad208bd3328847f3e00b1bffa0410ca75b32e80f522d9622b18aa87ddc3a127d85ae6b9adfa31bf440240fbcc2d3a5551e76f5cd45d738b5df3131c7f1807b48e43d436efc24b288adaf6e4f111193bc220be08255fff517b6ad32ce2e331fae6c977aa910a7b498f1a9181d848d611abf5", + "resp": "01442484f0addb0891204182b3519d640000000025020000002093e983be94fb8fbfb8035dab9c8ee9fd022cd202ba518a8239f6e723a3d0d6ff03ccedac589182bf551a38f2c6dcb72200000000250200000020c29f5d074f40f2b65e01aff8d530c01408988ea8be59b2f5e32877388bc73edb046d5c529705d964598221f09de507f800000000250200000020fcaa726c06aefe007a40efde0afb9088d9aab25c4eb6e9a9b259c7b355a0d50e07a89174d08148935ca9c245e9087bc8000000002502000000206d2695d204053812cc8e6fe704c465d03b8184c022d3bf1b1573e764350eee5d0846bb0ec4ec76df3067162b3e6eca3d0000000025020000002027c805c8900d299f6dd23cfeb8c2636c1710209240e513a940038d0e41d081c310feaab8acd5537e003d724bc15a5f2500000000250200000020dd98b20bb7c37dad4050d608a6a1fefc7b5e72ceea31dbfcff3e88489e3454371d733e148f9acdcab5c2cf2a39afeeaf0000000025020000002040ae66ea00bea27c5b635aa3eb7e729e4a3b839d447e352ecbe9aa4130a02f291ddc744b7bb720ac472fae590cffa8cc00000000250200000020189f9e1ba589df824981da4b600a64593e07e38fb3a9305e5be8ea04f72a39de1feb5ec3feea92ac3278491c59fbfa74000000002502000000205cc302e6b49a1c43ed7b08427b55977f22b8793a555a2d2a6341037ad767dd2e2155b4cee0b59de4b44ecb8d177effef00000000250200000020c647802ba33a3ae7a85824b08e470827eb8d0b943dbd72d4b542e0c0148dd4e62492411023c0a390e1c83c632421b38300000000250200000020405def942883f287a8c0dccfc990364f67af35dc53a1188408a376a88ad85afb253c3c4c3a332d728e5dc933e8cd445000000000250200000020741d1d1e21b90d1f507bfa87d88d4d50bb6a790efae4b1fac03645f9ba8c91b3344914e2c22b25c74930c376047ada9f000000002502000000205cf21a340b665181a1fc8aa23468bc26b118ad2f9d2122e259299e9cf8da02d737056833df41cc4e8d593de681689b3700000000250200000020ddc1633887e82215ed86e7437c3425e4ef7224e1fb349045c38c5037f49e89cc3e9f6013eaa594f8c9e63d860c59e55d00000000250200000020735393101526aba586b7956b02f6131c99425e5bbb41b6c62ed427949358edcc41305663bd11be9f6805d8ae1600fe5700000000250200000020ff8dfad1b963b79c74152258395fb7cb04bed670dca9bac0a8d3f5c2d30cc11e42e6d8385d1e35dfd946ddaa1fc432cb000000002502000000208568b7987152a9de771ce95bbc83da702c7255510f314e6a44990d4a78a5bd54434d86eecea35da37fdee336cb88c13a0000000025020000002089fd28831c0aa25b7895cd76eea55010cce01adef6d526dec55e9924d7ac6b19468d52de4193cfd6a958a320adcfea64000000002502000000203574fda12952ff3083e545b43092d7b4a0a77eb0ff35e5e4d9e9909d8cbf0cd152fdbbc0c2f3cf9a8dabdca031573bf000000000250200000020251addb24c036e46a00df496fda59f5ec01be9889d8342b3a09c3087817f5164533c031b6cdfd9c4c70ee6c16a64674f00000000250200000020b705e91db901daa10f7c15e0ea33722fc25ba14534b1e54fc6566989fe93bc4d5688746a7c46bac6ca1be21d794e162a00000000250200000020c600d42be175505f1ebbcd38e51a11d1a0dac63b541656576150bf001b2877e45d403cc974a429a96d94f3799adfec4600000000250200000020e69ec950fa3096df749947670f3bc8a8964116061e1cdee6cd16cf646ec48cde5e758cadb33ec498325a8d819bbd11b1000000002502000000204cbbcfc880207bed625aae6bd2bb303d22869e99a5d6bed153dc8082e0331e1964f54a1b93d82bbc89a38352a741f1db0000000025020000002084ad2d8618904a478c73b05f47d794ca2c9d837eecae877524780e5601fac0ab659216e80380457455ff2cf16f9c05ae000000002502000000200a4ee03dd4539bf4ea3b2e2e8eaaff10efdd8fc88f6a0da1c7f01e077362c047699df3ddd594e1cd896a068020e9dd9a00000000250200000020e86edab198d224e14e06bae782682b15a532de05b4f07db817acfc955c0d92667306756ce495d7b23372c69fad1ef72800000000250200000020f9c4cb21a97060b8767dcfec7263615e737be4eb80e8d432138175a6aebf379176776a7c5a4ab50431267be8b2094f2600000000250200000020c8095140609a67c4314afc2c844ccae84b8d0f1716d1bf00042c04214ecdaaf17cdd42aab29de0794766b632662b953c000000002502000000209fd1668b060e90c0dcdd3e5ef67ffada3f4460f714d9800cc1d14771d9a871ea85797c59ddbd1748bfa930291a55dea6000000002502000000200fb6ce5783835aca3cd284710c058946fcfe664a66e1f8b1204f510a0db09ea98a3021658a05df3b461e648a96e31195000000002502000000203978b7bef33ee79d6dbce9bd18f2aa12acca849980405bdcd23d745ac7742c178c3e4ab49d35387d95f5ab6e77b456b2000000002502000000203e7b47a1312e2b20d9c6464f9c9742d2ddedb40244c99dfc1a22782f124eb1559d2ed5f712ceb2e31fd7b8ecfaea088d000000002502000000207bf57c73ea3dc3d5fd0bfdefe3b15e82b1ede4e40af8e57e4d77e36eaf399a469e2e051d7a4693ee2ff148677d92b3360000000025020000002052e0c25982b70670048a4d32e37033f75fba9d9a0fedb92bc5dbc160a3e64880a9ff43053345d577e7e90dd0983d50fe000000002502000000207a55a80896e75841dd09d45c8900a9d2445d579609cfab96c5d6ae8c96aa3511aa08129ab5b2be4f591979e2e7977f6200000000250200000020f34a95d987f284239d2e6f26a1878288964d72c2417deb2be3ab0b9ad7a63d25ae35eeb8b55e508af82145a27e3153e200000000250200000020c2ab62668adf0a83cd1af8b80b102166ca828aef9b8cba7cbdb557f0cb8b38f7b503a949f6705f5c2d0ca9660d19748500000000250200000020ff1dd24d4334a450f66008326e5a44e70e213f17ba7825c0e4a4d6fdd32a329ebdda4f0a119ee5df361a082102e2ce5400000000250200000020fa8d755d0222387a039849009487cfe20c3338eea2c15076957c6103ff680797c3240cd8132c1e6c543c255d09400b2700000000250200000020860b4ab725eb5605763f4db49bd86022f5efbb49d1488965084157d1d76efd8acd7cbf40e24056d376ad73d5cca4c1cd00000000250200000020fe9f485376b040928134fa63baf0659cb74c5486de85623c5ca99d87bb0e87ebceb8ac1145d3f422dbf2357907973f2d00000000250200000020d419686dcf567d63db08afea6e610e6d0d8402666bc850da9ce3a2e21d15edebd32676d2e8b8e7bab8540e1321bc971a00000000250200000020e3340f6ca167d18c933bc93c5d4cc1f493494bf5f5f50c787caa8105f74c4838d8c772925aa2fe8828ee6e4308bc34ce000000002502000000206ba9c25a38f51207ea28277ef69f9af497fd771271c6988a9333b87051c756b9df7f4ebe0c8e983e6d60a5b39f4f46fc000000002502000000202fc743814a4611089564e96f8ea442cc545ec961da79698b7b649828aca2cec0e4fd06724cddfda947ce75b572f54154000000002502000000202c59d6ab8732ea4852a221c71eb026db0bbe0ceef2fb2035567ca5c9006739dbf87b6fe4cba5c60bdd8a8d70207c3f0400000000250200000020b6fed9ac88b10ad693474b025fe9e1e6300f57c6c90bdd2f2475f1e8e4d72c43f9e66a05135292fd12355561fa770dbf000000002502000000202241e03e4f887fcf65fd60fb949d151203654e1e152456f268e855a970b8b808fd9cb80676853e163cf831b8b558eb260000000025020000002080b9d507d1446faa4b1a8c5b1024d764ac49a4bf97583b059c0f766b3502fffb", + "outcomes": [ + { + "id": "01442484f0addb0891204182b3519d64", + "outcome": "committed", + "reason": null + }, + { + "id": "03ccedac589182bf551a38f2c6dcb722", + "outcome": "committed", + "reason": null + }, + { + "id": "046d5c529705d964598221f09de507f8", + "outcome": "committed", + "reason": null + }, + { + "id": "07a89174d08148935ca9c245e9087bc8", + "outcome": "committed", + "reason": null + }, + { + "id": "0846bb0ec4ec76df3067162b3e6eca3d", + "outcome": "committed", + "reason": null + }, + { + "id": "10feaab8acd5537e003d724bc15a5f25", + "outcome": "committed", + "reason": null + }, + { + "id": "1d733e148f9acdcab5c2cf2a39afeeaf", + "outcome": "committed", + "reason": null + }, + { + "id": "1ddc744b7bb720ac472fae590cffa8cc", + "outcome": "committed", + "reason": null + }, + { + "id": "1feb5ec3feea92ac3278491c59fbfa74", + "outcome": "committed", + "reason": null + }, + { + "id": "2155b4cee0b59de4b44ecb8d177effef", + "outcome": "committed", + "reason": null + }, + { + "id": "2492411023c0a390e1c83c632421b383", + "outcome": "committed", + "reason": null + }, + { + "id": "253c3c4c3a332d728e5dc933e8cd4450", + "outcome": "committed", + "reason": null + }, + { + "id": "344914e2c22b25c74930c376047ada9f", + "outcome": "committed", + "reason": null + }, + { + "id": "37056833df41cc4e8d593de681689b37", + "outcome": "committed", + "reason": null + }, + { + "id": "3e9f6013eaa594f8c9e63d860c59e55d", + "outcome": "committed", + "reason": null + }, + { + "id": "41305663bd11be9f6805d8ae1600fe57", + "outcome": "committed", + "reason": null + }, + { + "id": "42e6d8385d1e35dfd946ddaa1fc432cb", + "outcome": "committed", + "reason": null + }, + { + "id": "434d86eecea35da37fdee336cb88c13a", + "outcome": "committed", + "reason": null + }, + { + "id": "468d52de4193cfd6a958a320adcfea64", + "outcome": "committed", + "reason": null + }, + { + "id": "52fdbbc0c2f3cf9a8dabdca031573bf0", + "outcome": "committed", + "reason": null + }, + { + "id": "533c031b6cdfd9c4c70ee6c16a64674f", + "outcome": "committed", + "reason": null + }, + { + "id": "5688746a7c46bac6ca1be21d794e162a", + "outcome": "committed", + "reason": null + }, + { + "id": "5d403cc974a429a96d94f3799adfec46", + "outcome": "committed", + "reason": null + }, + { + "id": "5e758cadb33ec498325a8d819bbd11b1", + "outcome": "committed", + "reason": null + }, + { + "id": "64f54a1b93d82bbc89a38352a741f1db", + "outcome": "committed", + "reason": null + }, + { + "id": "659216e80380457455ff2cf16f9c05ae", + "outcome": "committed", + "reason": null + }, + { + "id": "699df3ddd594e1cd896a068020e9dd9a", + "outcome": "committed", + "reason": null + }, + { + "id": "7306756ce495d7b23372c69fad1ef728", + "outcome": "committed", + "reason": null + }, + { + "id": "76776a7c5a4ab50431267be8b2094f26", + "outcome": "committed", + "reason": null + }, + { + "id": "7cdd42aab29de0794766b632662b953c", + "outcome": "committed", + "reason": null + }, + { + "id": "85797c59ddbd1748bfa930291a55dea6", + "outcome": "committed", + "reason": null + }, + { + "id": "8a3021658a05df3b461e648a96e31195", + "outcome": "committed", + "reason": null + }, + { + "id": "8c3e4ab49d35387d95f5ab6e77b456b2", + "outcome": "committed", + "reason": null + }, + { + "id": "9d2ed5f712ceb2e31fd7b8ecfaea088d", + "outcome": "committed", + "reason": null + }, + { + "id": "9e2e051d7a4693ee2ff148677d92b336", + "outcome": "committed", + "reason": null + }, + { + "id": "a9ff43053345d577e7e90dd0983d50fe", + "outcome": "committed", + "reason": null + }, + { + "id": "aa08129ab5b2be4f591979e2e7977f62", + "outcome": "committed", + "reason": null + }, + { + "id": "ae35eeb8b55e508af82145a27e3153e2", + "outcome": "committed", + "reason": null + }, + { + "id": "b503a949f6705f5c2d0ca9660d197485", + "outcome": "committed", + "reason": null + }, + { + "id": "bdda4f0a119ee5df361a082102e2ce54", + "outcome": "committed", + "reason": null + }, + { + "id": "c3240cd8132c1e6c543c255d09400b27", + "outcome": "committed", + "reason": null + }, + { + "id": "cd7cbf40e24056d376ad73d5cca4c1cd", + "outcome": "committed", + "reason": null + }, + { + "id": "ceb8ac1145d3f422dbf2357907973f2d", + "outcome": "committed", + "reason": null + }, + { + "id": "d32676d2e8b8e7bab8540e1321bc971a", + "outcome": "committed", + "reason": null + }, + { + "id": "d8c772925aa2fe8828ee6e4308bc34ce", + "outcome": "committed", + "reason": null + }, + { + "id": "df7f4ebe0c8e983e6d60a5b39f4f46fc", + "outcome": "committed", + "reason": null + }, + { + "id": "e4fd06724cddfda947ce75b572f54154", + "outcome": "committed", + "reason": null + }, + { + "id": "f87b6fe4cba5c60bdd8a8d70207c3f04", + "outcome": "committed", + "reason": null + }, + { + "id": "f9e66a05135292fd12355561fa770dbf", + "outcome": "committed", + "reason": null + }, + { + "id": "fd9cb80676853e163cf831b8b558eb26", + "outcome": "committed", + "reason": null + } + ] + }, + { + "step": "collect", + "name": "collect", + "request": "0100100000000000079a100000000000000001000000000000", + "batch": { + "start": 498192, + "duration": 1 + }, + "now_s": 1793516400, + "outcome": "completed", + "share_req": "0100100000000000079a1000000000000000010000000000000100100000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922", + "helper_share": "030020256315323e204562eec37c36aed8c2c957ba8c325803cbb9f2f0cc85f5c69753000001f0745498b80622358dbe73ee4a25b657baa0dd79df9e818d2b2d0e2689f7172f523f46d90b894dc0785e2caf2afdb79b9d2f078dc542248673fdabaebda34cc0019d2430e6c580cf6615c4be96585cf9ad53f044feb2493b2b5a4e07e56586bffdeebcc93cf279edb9fcfe2cc7997b6aea406abf28c340a55b48defe60b493c808be59759a32233661c501e5c483bc73a476c3693705450928596feea822a1893ac0fe535d74705945b8d9845913719e5a42675b25d82978ed2cb21ba2f130f755baec32e297cb2fc2166f72acc65042da6957dafaa59416bf1ee16ee9bcd839381f25285e87448dd2fa74372bca3dc224c916b8568328bf13f31f2d6af2de5221c998c55f1ea079b53bd07532748ed3c5af8c479563e6f0a2b86f57a09352d3397576e9de5154b7741380dacb4ff000707daf88acb569583648449a9e080c8546593d60ccb0ac0cd17000dfc71a296b2a7b9bf2338554a2c55232d0267a69febe76de9bf090908d1b24237058601f20fe6e5d3362ba27824d6b083afcbf1bfd141b53e02cbd97089394674afe689b35063ba82ed49e2e957a0cbeae567b002c6cf7facae2374432f365b17d77ebecc015c0eadf6c27e6b38f2f7a60102d768442d806280316dc3d0c080b4dfdb7c5f41f0c33225aa46144755a5a9cd0fc83611be8e554a74f77115d95f18e45f20d85e4", + "resp": "00000000000000320000000000079a100000000000000001030020b6f6e7cf32772b3f1e7f09903ab21e985ad3fa029cad66e8f519804a75bfb91f000001f0284ac5f5609a7b55417eb0b5647f9f9ff511888551f710ea7f71c20162db937d75cc7c016db0721f2a3de3c1e055ccfc877ecd8b77b163e0c154deda3ca6ac10a5bfb2cdb8a23e359563aaca23262fd3dc7d506d8805ea9dc94f2119d7a4213e19594a4c5d29a5b617778a260a1add2052ad798e90186488fccbebd232fc0c3de7b0962031e287026340ca06f237637aa4166f1d5ea51effdb78889b477a2150baa8d4936cad09b4e49396cf4f870ffe4b77312428a7bf6a04c8cd0c56b1f6400dc0ed4b9cc70a7e469682b207b9bbf3022c040be9b004b2b24328c2cf348fad3c041af90f35dfccf3e9e6c58f1d9a3792abe2e1bd5b2e1ea5f52fc63169c116fe7eda5f2d31e727dce09dacdb027e6c75109f9806b9215a8ea52e0c9798468526474364d744f06e17939ad78bc8aaf71b145f416c53952519418219194784d4cf838299f5d4c3648fef45f4d5ee27a69e25c6dab73c0dbd96b7c75bb3eb6f7b2ae2b03e9b3afbe0599bb034d038827cf62774b192978a2e1ab71a8815cbc51444d952d803b7ce150db79dc936d8e8443dad5f9569c0d997561c961fe91a0a64ffc041e3f80e5cd2bad07750505c3f1da0675b28c437863da8a033f849bb983826767662862332f6c7946e6d77ced23b579275eb1676b9d6f40dce0778ee82f81f187060effbb65a3b38f0d2344af78f030020256315323e204562eec37c36aed8c2c957ba8c325803cbb9f2f0cc85f5c69753000001f0745498b80622358dbe73ee4a25b657baa0dd79df9e818d2b2d0e2689f7172f523f46d90b894dc0785e2caf2afdb79b9d2f078dc542248673fdabaebda34cc0019d2430e6c580cf6615c4be96585cf9ad53f044feb2493b2b5a4e07e56586bffdeebcc93cf279edb9fcfe2cc7997b6aea406abf28c340a55b48defe60b493c808be59759a32233661c501e5c483bc73a476c3693705450928596feea822a1893ac0fe535d74705945b8d9845913719e5a42675b25d82978ed2cb21ba2f130f755baec32e297cb2fc2166f72acc65042da6957dafaa59416bf1ee16ee9bcd839381f25285e87448dd2fa74372bca3dc224c916b8568328bf13f31f2d6af2de5221c998c55f1ea079b53bd07532748ed3c5af8c479563e6f0a2b86f57a09352d3397576e9de5154b7741380dacb4ff000707daf88acb569583648449a9e080c8546593d60ccb0ac0cd17000dfc71a296b2a7b9bf2338554a2c55232d0267a69febe76de9bf090908d1b24237058601f20fe6e5d3362ba27824d6b083afcbf1bfd141b53e02cbd97089394674afe689b35063ba82ed49e2e957a0cbeae567b002c6cf7facae2374432f365b17d77ebecc015c0eadf6c27e6b38f2f7a60102d768442d806280316dc3d0c080b4dfdb7c5f41f0c33225aa46144755a5a9cd0fc83611be8e554a74f77115d95f18e45f20d85e4", + "leader_statement": "03002062ef05126af187bfaf19b7bfe925ca0181098ea531ac8a4128a920f25849611e000002d2fcfab35054fae74e1544be32ffa82908137e240e0fa60c4a8f42b6a167b878e8e8e6c211e4bcb4e78304d50b9891002df553e8795e44d0892d32482740c97d20fd674e7a69a4dc66fd0320bec9fdc77ad8fb0e08fa958bf9af93149a865e7b9a795d8dd4d9a8c08f87a1cef91feb8f456a1af5fa4b32d07eda8d1f7531f8db6774a4727763bf80d7800b708973eac563989a47577c3838938e275716bde57dc437bdd29a9b64834f827d024a2d40e953c4aa61f41dd6e2570737ac5755c461dd346ae6e90b8dfcca775a554b637946fcaf453438d5276bb23261e08065c7dd8eb46f1acd44e7b7a8260009f23298da7fd6032736e10d51a51ed92084fe8f346da55b3674751eda2018d7f9cb5490c71359de179a9bf43422f6d85e0f63007f2d164a80d4af43042484b118d61b0f2134fdd05c142faa4a6b503de6ca437a6edb0f3100925db886f132f69b20fc7092fb9bd729c752ab3036f55f42a59efcc8e8e987614fe80140ae5ac9245a0e94e5c7be040d29cffef3fbda401770d75851e1a46f1b51ada15145234bae168aee0a4dd05548775322e1ae40846c3550cb609796d0f01b54d1709bcbbe10732914aebdb1569351ef3b4d47effb0b76764475c1351bc53e176fd7d620d2c446ce9cb528367dbeaaecc51de95136569bd3db2c418d29e063ffd4420146a1ebba9d8e6e7ba59a6312987d1a1d68fb38c54f254ad474a3d7db86168767d2244e7dd79696207e21ab1d47ad04bbbc30830dfe3c49db0447e339d126e644082a15512863aa1cf5dd893437cf56e5e9c72806473fc30c0c9272b9c259bf7662cb156cdcbded5416fc9bdf3b876183a84f3ebbb26fac8946be3873fb0b4247aed8cb0569d844ea1be97b855668350006647b667fcd9a02dc02bb43bda249666552d14699bba28689272c6ba2d5ad0e2c61e5be8035388ad1b64a155ff33645254e296df42afbf926ec37a0dd3215da5a013fc61ac9fa5c1761c55f079f5f682aa9dea8c0ce60ea7f99", + "helper_statement": "030020f4c19ad096d1bfea7d0e42a1f5264e023e4ab68e8d7541ce88abca0c8481432a000002d22bdd5abccdef9359c184ecf5c87e6e04f6aa142b7a7a56b71c943ba981cf9c9f90fe5ba4610fda1e2357ece230475b47c43500ef7fca7d28adc02addc3100fc61f8757eb39e921540af18133d25b01104dcdc4502101fbf67f9ce775c74c783bb30efb1417c8bd0a45968730862b23f72b8c775662ddbf70a12cbd4d4fe7dcecd883ed54a24148172f80f5bc4861acd7aa93e42e28405d2e3520b339cd3301fc3681a4c842fd5f80e0ff47aa892f255f3aa7a0cfb31c8c254a2c50443a680e933a460b8dedbb8b204f5b1fffe7c33b392dcd7627af6be8c912eea8ccbc8e44c82fd2166a3f27463a68fde61cadc1453ec2304d48ca9530bdf5031d39197bbde3dabb4a6d0b3a2c2b4176cb2d031fe002646d52cee70a330df618f470eddbf02997ef1ed6ca14794cb2010bc110c0bdaf39c6c094ccfdcedd2038efd1dac311cb4f778893c1de9b9ec7f7ee3a9216788b4f0eb8ab5342163438f2b7839b69a1bf9aa1a06c4865310b4b68e74b1a91e24e176dfd333213e4b26d7afe73174e83ec355dbf07a6f6028978d649c9d63e83487f09f92fc8bd9602312c1d4ba3e4bf17d4647fe459032c714446292bc870fa154aaaf22320335a6ec4afd0897d145f49ac5d28a662ac627a31ff18d66a68f67a14ade625a39ec2a00646c98c5e0761ace89e54e4c687da20ff4097926c0276f877d60680e32f69aa5c6790c0a6e751e8398513f43695c0e32ab667159c7b132238901a8231bd03b50ab66c62052f44d8aca5fb06ce0081f1b1e821048c50d155bbc141e54248126c11d568b1c4c5c09881c91465fa13c0cf1f60e1094fec28973ab5dd6beb5e038f98f70cbf2765f4eb49f00302af9daa4e7f27a248441362028723b54597c28fe69f0d28d6a2447418a605f402582db67d5f069eb5a5de5a4287f5151cf3aa4efb444db499c792e1a216276d0f19817f40bdccc1a6396d890be094f70929e69eaf8eaa3f6a97dc87285bff68995242503cb8515387d747cd1ba983", + "result": [ + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c2575153310102e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b155f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922000001e0579fb4a5860b61e445807ada3f9bb6aea7a91e523bd6ee1c6dde5fbcafc01a84865b56535fb052b867af3a5aeeeb2962ebbc1ad3ca3590de3cce55be689ba5533aec614ae02ba011665ce7df1acafe7274a7731c5c8d806dab19272e405ebc09e906def0978d1e32c19cc6561121614d25d4dd1dce5250d60687f468897e51a81b52c88b5f6fef5bc2db9ba2b21fc10b9302f283a5e57b0048f15c075a70a938d245a13e84378c80a601276d3f460fa347ddce04d331c467c047762b3539cdcf4aab415b78fa64e55c6f6467482f21d4f5d7ba691926d4ba4034d1dadad3b78328cb9c8617c8e6df88d1e9823414803401cc52ac8848f0f99ac4ff3cd5ff21a353044fa3cd6b8bd04e6d2d2ccc4d38ba49bf3a071168a38d5c15988d9c7cafecf846825691483f4af13bd81575a1e790383dc335393ef61bbb711b573836915492d838df0be8f0421a9ae0a2dfc2ec26c50d50811cb914b5bf1266cfd7c240a8c390c037bf2015e3117b62eb882d6b6f76aa9b40da3e736a33c68ba5b52fbf60815edabf965acf3bee3cfb5d4756a0f3e98f0e68d4d5a893020e0190661136c45533e709b5aece7bcb0174656cd16f6b1ae8db30af53863a1a38b9045d50e0c3bdacd1eaa829811280eea29987cf9d85390bc59544b3b349d5f11be5c3066b9d5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe678839c307d7a21a69700e3a22c2d8df66374561a3b37c3a836f6f26a33c72617c51015083e49dc9e41de32a2fc6f97c6914ef35b052f0984261439d00b225b00000002c2575153310103e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b155f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922000001e0ae604b5a79f49e1b9e7f8525c06449515e56e1adc42911e37621a043503fe57b7fa4a9aca04fad477c50c5a51114d69d1a43e52c35ca6f21a731aa4197645aaccb139eb51fd45fee7da31820e535018d8d588ce3a3727f9238e6d8d1bfa143f618f9210f6872e1cd226339a9eede9eb2dc2b22e231adaf29dd780b977681ae57e6ad3774a09010a42124645d4de03ef46efd0d7c5a1a84ff9b0ea3f8a58f56c72fba5ec17bc8737f3dfed892c0b9f05cba2231fb2cce3b9823b889d4cac63230b754bea487059b1a87909b98b7d0de2b0c284596e6d92b45a3cb2e25252c487cd9346379e83719205b2e167dcbeb7fcb0234ad5377b70f06493b00c32a00de5cb0fbb05c3294742f9592d2d333b2c745ba40c5f8ee975c7287ea6772638350130bb97da96eb7c0b5f2c327ea8a5e186fcbc23ccac6c109e4288ee4a8c7c96eab7127c720f4170fbdc9651f5d203d13d93ef2af7ee346eb4a24ed9930283dbf57406f3fc840dfea1cd2849d1477d294908d5564bf25c18c95b039745a4ad0409f82a1254069a530c4f5c204a2b8a95f0c1a70f1972b2a576ce1f1fe6f99eec93baecc18f64a51318418fe8b9a932e9094e91724cf50ac79c5c9c746fba2af1f3c46532e1557d67eed63115d667830627acaf43a6abb4c4cb60e0ee41a3cf99462ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf3083835632eb1c244cd0b0f6c725e31339ee1fc3335a575376b8b4fa422f31ba868564561dcafe9cf00f2644aa311105ae328f7d513b3e5ac1ad6d0733ac3503001e0000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000040000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000026cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c164111b94341b1b68d2d357c4a33f83e19603874ad6d85621492271d1641378a4443469e32b7a9f97ddad9402dd363c2243dd77b8e9fc28391121514e1a5c480f" + } + ] + }, + { + "name": "past_task", + "task_file": "open", + "task_id": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e", + "verify_key": "48a905b59238be165b8e27a8bb2048defdf472bd2a477e289e94ce4b494fa37a", + "reports": [ + { + "id": "3a45f646f0d4d4074751ba94a64fd123", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd204ae2e0445b354b343cd216285eba876ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502fe3a69edcfcf7cc0b43bfc8ebf2f9157d2b34214b7ca8c3afdb8d25aacdf7b1e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000088f9f22ccebeedc1d343807ef3b31c928176ab1ac488702ffdf2be0cfd9a6c4eeffd3d388bc7e28be3a9d5d50b6d3074d3af200b6fc3531f1013ac0d1df8400c", + "region": null, + "at_ms": 1793574010000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "47a74d0cc30f614c473d865a396258e7", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd241a939a73db245a6a243dcf910a05a76ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502eb779d2e2b6e53d66e4ee09cbc55e382535a6132f76411757e8a8531c1bc3f46011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000bc81671e116e3ae3c0b52c03abf0b76caac7bfc74660c2fadef2e216cc73c10ee0adccb12992a1979c10f5b2108f7423be6bdbbd78733f2747d3a3f458e31504", + "region": null, + "at_ms": 1793574070000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "e986c5851b2dee23d6ba9fb7d736ea2d", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdaeb8a4408cca32f8ad15f8416323f0b56ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502709b40feacb12f7b372171a5a9daf464e2e8b4308492bf961b04786d61715cff011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000cbe7499ca9e9fb9537d9e67a5095f7248d3d7fd95a5d36ffc2cdeb450c2960116737ca3477f5f2774d365ffbd950da18dc9f9ef3f7c22283405c4b1622c5db0a", + "region": null, + "at_ms": 1793574130000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "80ed29908d13cf1a6254e3ae3e626b46", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd24b35c936e4600557191f556b9b01e3b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5022e153e61c167682c13188ef0cf92999d67aad460b1c0eba1f41036d458786f10011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000582fe2ca9901c73d8f5c987ffe9859bd9035ce5606be5f4799dca2351ce68be64684ee53480b5e040cb1cf61d0d5cc1ccaf8920fb03dffd172fc1e5d3edf3d06", + "region": null, + "at_ms": 1793574190000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "b2a544f21c13daf8fc20ff46bfb391a8", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd98a25a504c5452b32a628660a6fa46a16ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e743cd1c66879608ef7faa2780ece0d5c415713eaf5c483a02f127869730e62d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100008e7f34bd4ac1ffd1266d1062db3ace06b5af90d34e1321b9b0ee821e61e4bf97c82a11897d9803eb58cdffd00eb6b68adeae6ea5f53eaf2a98471c69a533ce0d", + "region": null, + "at_ms": 1793574250000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "b06a0cf2146107d50d9c28582dcbcc2b", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd37844f58e1c4e6d33c8f6ed85bdd72b6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b2f3f10d10e9fcced48f4915e8280dafc5753581fe30d7a02251409e7a21d3e5011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000d45e6a1acff371bc674069c1b15ad0cbb426c46b94603fd55874b54b1cc218e01bf83042effd6177f38c95e489bc44c96a87449fcc170b40efa19b4dd1486609", + "region": null, + "at_ms": 1793574310000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "2d6d38eebe08cdd66b41363051b9d203", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd50e1fc1a46ee620658a7b1000227ca5d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5029b8731bcfabd439e084b691b5331d83a70a2edee047a524fd322cf3453f86b1d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000039f20717cf9459c2441c0d5f773d5a22f4e1f7e211c491753d847e65f8fdaf4598f0a099c07904dc00592df456c1233b576ee23b530e1c5cba85e63f12f1cc0c", + "region": null, + "at_ms": 1793574370000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "7a1b9c92c66727942e62e19898730ae9", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3bc8199c3cdda967aa428b3c445cdf326ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027e56dec01d9b13152b31faa0daaf4ee813b275860785cb5d51f087c0a49a7136011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100009838a2aa4010464ebe6a2f425b23bb911ae65a3be00e9f5750deef5524dd0e9bf117949304139a7b5ec86a38355d7f78fe759bd3f8fe57e92fab2ba06d73110c", + "region": null, + "at_ms": 1793574430000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "079d42d1a3bd81d7c966053abc928c0b", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd400d482d2477aa3b6877ab84cf4724836ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e5d0142c3206d1a0088e9f7331ced35334c8bb7460db000e2c04aee07d9bc08a011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000b1cf74418920bff3abc55fa92a06ad085ec3e2cb6760e3c74ab2576c2efe3541067b33f0ad973399badd11d386ed94b262e6655f27f4a3ed3feda98a53e63602", + "region": null, + "at_ms": 1793574490000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "0c59a860e6edeec76c64aca0f720e6b2", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd5c79149a9ee0d7b2b533350926c671136ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b1f8b5d8fb0f782bea7aeea73c6799d17b074aa18573fee7057752eabee20334011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000047a12b24141953b46fb9f5dc0aa3328a9089dbec1b5f4a4f9cf72cb047b7407a777a4515c988edd8558b30c00c6b491bb1bdda0e79fe7e17fa203e487d149a07", + "region": null, + "at_ms": 1793574550000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "a4dfb00f38a8dadf5810b4a239611068", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde04f598f2d4014086d0650930c1dd59e6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50255417521327406a4e60ca325711bebc2f263eb3706ff6a4f5bffeb585735793d011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000eb56a4cab5a2d0a6b8ab5d2edf49f88512f425d10fe2fbf265a6940a8dd30db031ba25613490d41f482e671ed7b4a32090c0918ba84045c6323a958b5929b801", + "region": null, + "at_ms": 1793574610000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "bc71bed6629a1d97a90798cf363043b5", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd6f626a29997beef5b45f80fcb9cd70026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50239226f6f6c9cb95775d4a42958c964393e32e0b3646cedde6bae5d40e9ac006b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000268181e7de1bd06033209f60840f52cc5e7bbed208b5f53799ba1e803304de5c9d46f60de17e2ea3fe1e91bda843a7f4006c5d78eec35bba9ff5024b43b2500a", + "region": null, + "at_ms": 1793574670000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "f595d1f38e86a5f84959af2510901020", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd98e60aab84dc6f0b7b04a4bf63ff3cec6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025a73b765f414223a3571348824d6c8afcd9862d3174e9986a72607d4f08372b8011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100007d5f200cfadd3402611d05a98c2a37520d557afd0328a179d4c1fdf64b225826ad81fda2d3c3ca0222c2218abc83a336b67f5eb42d4913882868cf511d490906", + "region": null, + "at_ms": 1793574730000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "8277a08a71d1474995473f86ecfcf35f", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb54743f1408c664b613871cbeca53e026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023b2197e8e010261efc72538bf2f17d8d1b079d7fd6ed4a589584d4276970124f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000b51ebcdd05978a708961b06a8abb6b82322ea918e03bdeea6f9e832f984ce0c2a1570256dd36db1af17a9821e5a9dbf232e480aab511591cdc1b6218caa68203", + "region": null, + "at_ms": 1793574790000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "0494926a11eca3c2e65ca9ba212cf752", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd8061972df5aa433811cec167a39097cf6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b807329fb0a01bdd6d2fcd05b987a530603b2aef19a68af35e1840e9a340e0de011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000c9b9410f27f1914c0b03c78a64efc36ba8d2a787f860e8be33d245104f5425158b14efca7626222a3e64e0a8d17eb4c0ba0879faaf31d55cac779bc6f765df00", + "region": null, + "at_ms": 1793574850000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "de28b8ccbf00ae807aee3f0cb60e62fc", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf84dfec5a860c80eaf78ed29d3ebad016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020ca54fe94cb9859247c3080a20961fe7d8d8f0b8cb347cc972eed37fd18d7a7b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100007d54cac3527915fabeeef0c59fc81945a09199aba742f44a7fffb66c8ce13e223118f029d326f259d87589dba37132854c37235268ae9cc38bebc2538b903e04", + "region": null, + "at_ms": 1793574910000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "2a21baf219ffc7779ddad5b30f131d1c", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda9066d7d57a9bb942b5f3ee2a567f18a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5023222af55c714b86d895e20b76a8595dc41d010a33f310d8c33a6d3b2a7180d00011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000252caae384e4a3d10926ace25a24983e009b8490a90c82f6cba4339705715f2c6948265c9bec7b9a9f404b5f03252bd67e2385700629520f27484554c3b6040a", + "region": null, + "at_ms": 1793574970000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "cd322cabb22217e9dcb8265f00b6c3c9", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fddf40338ad4e0e2615f6302f610b2842f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5028064cca4e3e7ea8b92f70c561a01742d00477dc2bfa9c94b936a6869ed383fde011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100002ef717e0c626c144a8c5e42294538d79b837e876e428276dfcfab1db4fc2a9961b3b3bfebf28281523b3e8681f0f29101a870599fa4f8fb793710bfb6698dd07", + "region": null, + "at_ms": 1793575030000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "108aff34f526bad2844c14096550f2a1", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd2b39289effaa6220508fe0814b9c91276ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50200e5411c437063e849d3a05012bfa1f50b7da36df3defcca9c8e1338fc3830b1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100009f9a116dc02c7baf3bc4ff159c7d986472c3f7e8d474281b1e0540eee114be3a30b256887558c7c1125947104f73c444e474462dbba9833df12410b833a34d08", + "region": null, + "at_ms": 1793575090000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "c6d858d6dc0ebd2f19693f8e670bb3b4", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb2019ffddc6292fda7ea326cd6cc20aa6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502ab7806377529d67e98d01fcd2ef3deeb9ff19781e86ddca3855b15fe5a1260d2011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000060a71df79900f5022451ca22d6bf9a4de27b3fd48f1dca9d58938fe10e68a5cfbccc3d8e5d7a65bbaec073678227458d40a7c71f1b6ee81214295365c9b7d508", + "region": null, + "at_ms": 1793575150000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "c97b53c547181252b8550c44538d8190", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd27067e91dd1bc11dd8beda8ada08cc546ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50259340a49be4d90db68dfee896502f501d268a3a2cd768c71cf17b47308e1f0d3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000069103fd10564722d054826ddb2101f61b64627140c39b9d84120cd0e328af929d1646a5b358a6bda0990605611de5f21717a417924893c5f4babb9c32b94140c", + "region": null, + "at_ms": 1793575210000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "b3e7e49cdba98d62409aff4c8d03148b", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fda7056ed1e33ffab1fc9cdb6f87e59c6a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027b92c00c16059267531be89ad1e905c00489eafe052249be061fe93df572c9d1011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000243ac5241aa7dd0c58448f1865f3416d4a76565de9febaa97fc721489ae9caf40092c7f13b5a1015578eac2953db9b06c48aed2bcd543fcaeea927fd54d64c0e", + "region": null, + "at_ms": 1793575270000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "6c7a7345f74d3f4f91206b734fc67dd0", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdd2f771a6c9a75e9813d0483d2996301e6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50275a75ffcd1572d114870d6364576bb6f0831ac8e1cb651dc5cc0c7aa812775b4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000061a798dc09d47222fda9b3775890e172c7e29980a3ded5ae57eee54133bddcd0672e6c82d375b2644ff5e2c5f7d8203ade3bbb8e2f4496f919de18fa4deb3b00", + "region": null, + "at_ms": 1793575330000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "c99534675471ac0cb36b338ce540df9d", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9a671b5d03bcdca58076eb16fb82ad106ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50286078e44242bdfc8ba4e28fca4a98167cdef7919cf7a3ee127bc9e6e40ec8694011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000065d447af92d948be2df36fd6f6b800d147cea73ad1f9dad2f58e33adcb78570b501436d50fa31ed442cb4f5cd195959417a3eedee9e8225ee44daed50322f00a", + "region": null, + "at_ms": 1793575390000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "4ca3b9ed8da9e09ebd615cc1a52dc76f", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd7f141d7f55fccb25dfffb0dc10dcce5c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b265c6442144a38387cd389c940dd1d98ec5319ab538b518907b11813936d09b011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000043b993c79eba28683bd447eeb271a929e02421684dcf351ee831377bb02307f5a00e6f262df1aeca1d6c42e76f77599885c771a143c242cc6156c3e56d917204", + "region": null, + "at_ms": 1793575450000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "2be7e94e0d0d9417810a84edda3ee2ff", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd47909b2ae9f0c0458f31c174d0a48af16ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5022c8b880d1016882910acdd44df76f77362d20f3bcb1ce9ea8053f742678ae4cf011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100001bcd13734aa5f9bfe06698184ceb75d29a9b79dc23535ff55150e85dce28e89fc510c99b1988438cf2c0ffdf6025beee14267d9219c378963aa27e6042a8210d", + "region": null, + "at_ms": 1793575510000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "ff712f20dac5a623381907ddb04611ad", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf628d13fac324ea449b1856634e2bd8c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b4ac6e3b57f0fb4e781aea0b8edfab49bd63e964dc638edc64fc75fb29e23984011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000f7b5a91a147df5d4f3984d4525724acaee0f837225aa5a571938eff28dbf1d7dd80ac74ca03153e008c625091caa0768687fd99eb081575c3006ba8ff8638802", + "region": null, + "at_ms": 1793575570000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "a097d4bed8251c60daf34389a41f65bc", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd296c29c21e27038bd01bc044caf5301a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5028e6ad8f73670578980ebcd2846efadb379127ec66512b79f17e88595cb5c6137011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000443ec3f3bc66550a383e173c438fdfda12b6323ea1da0599d3d3c19f6d8d9eb3e541aad7a50772418a9470756051a16efab7205999fc049964dc887fd374740d", + "region": null, + "at_ms": 1793575630000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "710c0ce3750458327d65764e9b86eca8", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdf81634e12e5c137bfd766b54ca543cfd6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50205e1d47999efcf2b4df0d599b9d7e5c2f9bc30b27119661251dfd9b50b8bbea3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000b7488a5a70e980acf7a5c6bdf7084cb92236e29b6384d646ce4c4b9b3023941afa988e1d914a73b3d91dbf24c480fabce32a0c4edc69be74ffff47025408fe06", + "region": null, + "at_ms": 1793575690000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "81b9d8dad2da16f250019f4a6138b9ca", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4e2fd726a910b017898b21107011dfa86ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027668db8c194b5956aea070c069811282e13082e819134b4f0ffdd66e7fd0377e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100006266d8f33955f63f9e2f4bd9217cf798c87200db532240632daf1b38583bdb82ab84a05d407e8c484dde6eaa6c4003a6c3d101270e46e62354389f2b8899140c", + "region": null, + "at_ms": 1793575750000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "57b8cce012e3622866f658386008eb39", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd94c631ec82878f62131edddaa6928d676ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50282a0eb0f60c7339ab6ee1ab32a744eb7b47e7dd6e2f9e09162a09dd86cadc46f011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000703f72e3369419e94629b4889fd5fa87c084e8b5e4e098f8d94fb871029dedde88671951d7348596296fdf1229f07e2c10cda0b2c6e90026a3fdc29f88e47904", + "region": null, + "at_ms": 1793575810000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "20bbda745d256a1d405501a4037dd157", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd35b18a652120923f998a6001ae3445a76ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502e4725cee6a27347e98829be7c2c62fe565d957345707d46cac056c11ac0970d4011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000341b4db08553bce117653101897d348dde24639809c9afc7ac02166bf82a6e7ee3616366d18c1f092fe66ed67798e524214cc556b624878c886c54b1092ae50c", + "region": null, + "at_ms": 1793575870000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "392fee2b2044ab31e76f56048f525f1a", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd0f4f6a21dac5494acda4fe840a2a6b3c6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b15c6cc02c897b489653cc4ce2dbfd537d061452c92743ef5a2d598f5832124e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000bf9e60960b8751e456fe2b55a24f429b72161f3680ed1d5c7d92fcf75dc32a58ba263659c2f83224ffa9221adb7514c39fa6d7a2198eb1f4f532fadef4282905", + "region": null, + "at_ms": 1793575930000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "112a88a90828daa218610a62f8249f79", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd58d0bfbe7de8aad1ef24a52f851cbd936ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d6f98aa7d4ba25ed72bfc74ae37908e4cb8ab44c982238a497d8d880a05cd069011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100006728d8b6f88abdc3c756faf4cd1fe2bcdf56a366fe7793bb1032089be8d1b344a1a9a1907865160c1e04b349889c495d8d247270b9bb1c793ce5b689a797210d", + "region": null, + "at_ms": 1793575990000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "fbdae428355edfb06ecdfa13fb55d373", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdaf68b1a52e0ac120ea9437679a18025a6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50235f28572533f37cb393b98fe98161369ee137e3b3aef8234dc6ec2a072ddc0f0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000097ef67943f252c38d8b3d5d11fdd63070aa7fac0403818beee16b13c77c19cdd1b4ab06e1af805a5f240724f7b2ea8b78fd0df336c2ee57fe00fbe3a30e3f10f", + "region": null, + "at_ms": 1793576050000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "374dce7e4c8c23da84c5cb398aaebc75", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd9e43bb144dca5889bb417cb9bceeb4666ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50273f7fb82f4c3dfeb19afd03d1d2a509fedf36ce7d521477632c00ce7478c4467011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000d4c392c623b3cf00298b448b681cb6fe2d8f994c01b727d02c1b8a63d8c9c5541a041ff5b495647f1a5645c29e6adbd502ed262659b4320adafd1fb2a3daea0c", + "region": null, + "at_ms": 1793576110000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "93d642313a0d83e23dcb884c13da2962", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd05077055d35d7f31df81537c237072146ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d0e7fd402fc474ea69e86635604c7ec695048f4109dcb0d124c6e765028f490e011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000750ab2e9ad0d74e2f224536a4e638782dd512925632dbf466b3ce61849dc39a45e696b7b24f44bd780e26ae340ad698c3d323e304489d6ab16e2eb13da03320d", + "region": null, + "at_ms": 1793576170000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "09387d47e064e41df08cf294870a6eeb", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd72ba4481df926615df530c6b3890d3d36ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502eb2cca6c4e407766e535501bed0151c83cb7ce0c0702d124d65c66ce9b319e6c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100006c16df938865f864531bb29b0cc96db16bb4865c5054b3300acffc0d35953a77c3b35358fb3c57105f70b6c58edb3b2b67755c0b49c2d7e19a2f0e6348215704", + "region": null, + "at_ms": 1793576230000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "5da361ecb1d359acb0a828ae26506c06", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd4a14d916d21041e76ccd55758a02ef2d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502567066b0fc449cc0ed55a4f5d96f27019ca4eedc060ede4dd06b1bf8165bc801011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100006b7679c567b68c340c2fcc170625f8006358499ba7ce34ecdcb9df52201830ceadf0fd345dbff369cbf734a0442cdbf7919fa3a4405e4e6d29ec81471e8c8f07", + "region": null, + "at_ms": 1793576290000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "350d8e8e1e94d97605e3188a82e485c2", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1b7ebd49b41f52e0513da380de91e0796ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50281d01511c827a3e6097caf169bba1091940d882c112c5b2d294bbd1394611404011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000e803fc880a081132b9fe7be1fdc608ea26ceeb88f91ce3f40a9dd3784ce255ad5fa1977aa6d1c9e7677420d4d702bbbf71d6579f8258350297b257cb00f91f0d", + "region": null, + "at_ms": 1793576350000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "c2cc955722cde6d311fe26ae6573c1b5", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd89501db7dfa93a9ff1e4d31a93b6053f6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5028932cf81bb528607cffbf1cdce6b2ae57c0547082a99dcd4a5681eb8aa632053011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000652172ff2b8139c0a47add362ec85b411d208642fd45ddaad32b323d3bacf044b2c7007b37bf7fbe2e4de9c9c226bea97281cd8f73cc317a13cc63cf01424b02", + "region": null, + "at_ms": 1793576410000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "f9aac9a7a202960b99e1024ec492f3e3", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb4edf87673dfeeaed76eed1257c5fb386ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502477fe4d447a4c2ae45f3582082b8b1247e8bbbc668e86754ba3100bb93a8c1b3011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000166cea4fc47e4f4626b4b9725a0e922d772d2d2f181f9d3a65a4aa98ec2804e1a6ade72bde29598cb3f2a9fc3519a1bc1ccbe5ad1f567a401468f76fb9dcb100", + "region": null, + "at_ms": 1793576470000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "744ade46ba41745e95439f64d4a3dc18", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd3a51bff57e4a0304c992198093e3bf1d6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502f5c139e6e591188fde6e7a774b6013545a32f825fc8ad198fb3d112d57a4363c011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000b4974b007706767ce89d52171c785c8381df9236e0111ec4871eac56eae5b8e356fb22809e58386f3696b8aec6d9c9e018f6a11a0c9a2c482a8951f23879ce03", + "region": null, + "at_ms": 1793576530000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "bc84e61f14f91189ce48c2f1d1c325f2", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdfbaa759d9c9e25bcba1bde240ffd24196ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b50299fe8df2429e2327469ab852e4a0cf596e6b6a5877975262835ca07d501dbb42011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a000010270100000fc23938757f9b578108ba587785cf0d3fefc74761a7f70faa0b11d86217d2236c3fbc239c7c906c4379208e0c5329665c7759ee67d4df7904152a2bc4b5e90d", + "region": null, + "at_ms": 1793576590000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "1fe365979986700f7d8bf8acffb975f8", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fde4e10e461a38d515cb0d3f011d1186796ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5025ea18406873d875eaca3036a34e633d041ae3f9ef350e2456bf8d134edf009b8011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000bea07d6270bbcf2329f4979cd07817deeb7c821be0e1a7fc3e4c16fbd737e6defa8682895ab62f4b96aa2df08dd1e223fe4a54bcdef45436a492fa8e99429c09", + "region": null, + "at_ms": 1793576650000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "5ea6e1eb52237269cd0c609816394828", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd0b714893f44f6a1415d5362673f398ef6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502783f1a36e9337004db957109a74027380eb617068cbc3d43f43eb203643f6c16011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000096898dfb14a5e1dfc7c20aaf9341fc56857db9d7ba40ee330d921fcf10fc6973a41c5c2268a527dd585d3f203d8ef76e78e3286fe109169b20ac68fd62525f0d", + "region": null, + "at_ms": 1793576710000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "65eadf640968cbfa3bc0c58a8be1d73d", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdb318ff504405cac9c2d03fdb37337b306ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502058edc37d3f6744b31396dea40ca8204d0e5b59d993f5d7ed34de0adc53effe0011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000086ac3862aee384ce61c5a6041cce0beb81c96c07685d84e963cebe505ed676a911fafa2b0224ea3534921dbf682a968c25268042be32167ecb7b96a2b31f0001", + "region": null, + "at_ms": 1793576770000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "42228e96d3d82c50d6477228c44b0ad7", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd36ab99ed7653be2b76cc951047bbfe986ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5027c0e15746122947e8003f808acb629eafe5f1aafec6d4e16dec0457eafdef002011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000057d1f27add871815758fb1720e5cff0fc4d9d481585768a8e370eaab8cb3bd04495bae59d8949231c950346941c2f9cc64edc184872d18739f20ba338cf4990a", + "region": null, + "at_ms": 1793576830000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "6f52ae8f108d87db0f40755b8390db97", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fdc6f9010882f587ec5829792a2bf7c1e66ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502c0fb9e36535f86e16033e68137bf2cfb9bdbde1e2a76766b0903392fd29738ec011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a00001027010000eded3a01652e87996bb44e50e9129c81597399c140e955b42910dbb13fe4508ddac717df9efb77d64d3e179248eaff58faff086cd7081dfd6b7f3e1c7e819d04", + "region": null, + "at_ms": 1793576890000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + }, + { + "id": "794b3c1dc45c5404a0aa967e3a551e04", + "time": 498215, + "kind": "presentation", + "record": "rec_terms", + "claim": "5753433101031acf72bbafc44a801cc489005dd5ac5b10c0a2bfb9ae061dedb4fc60978139fd1599c2a04b9dec77814d08d5fd34b0eb6ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502d5e4effb99795022282864a673d70541209261059fac072370eb44a59a7e2c09011027ffffffff2900020070301c0075726e3a6578616d706c653a696d7072657373696f6e733a32303236010031020037340a7372762d612d6f70656e0400f145944e191c54f7a0ab7d5b3cfe75bb6b5bd2d40651b5d1b95939cfd55aa85dcd507b1e60dd8bf43455de11c6b38d081732dfbd2b870ea1aeefa0b0078a1c7d53a7e9ff3dd658d8bc0194ef05fd92065a78f68d39f073a0edbd25a76b8a6b6bdeb232fc36d040caea81a3947481c5b8e5fb6cd8dadbe5a3536059ec48c80251010000000000983a0000102701000041b27db149b592ae5402401ece990eb23f2ebf8ed4f3ebebd956943bba2fd1b6acee2c8b49e03db8784a51336048b9d7bad1308d68b0ef7ce1f1abe1e6f16f07", + "region": null, + "at_ms": 1793576950000, + "cell": 4, + "creative": 0, + "column": "other", + "quartile": 5 + } + ], + "steps": [ + { + "step": "upload", + "name": "direct", + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000075300494926a11eca3c2e65ca9ba212cf7520000000000079a2700000000004090006cf6fefa3e7e1b04260f5036a6a0cca66f878cc2b4a339c9f07662d5751bfb6da4538d49836a050939779e82a093886dfb55dff840250fa3bc582dd356090100207089e69d8cfd91f51e52324cf02f22dbec86f42d1bf5b67b7b5802deb962da7c0000015670c327fcc43a5975c28b08e80459af6e3becc66d917763425416fb23e3c2d6bad2dd8e8a3d4570939429002e1affabee52fa71fd38d248a1176acb9bb28ba3457b5a4f466a5b3893765c5b5c78718cfb14a5d3d78e5ba69e1d2b30900d03f5b01fb60bb5ba9e45d2832e25130f84c554fb3b0fdb18fe0c5e827725ebf3c517f2757494c60757153f1218eb7a12b5142c8078af69d68d7ecb090466559bf5066577176fa463f5dbed9328330b08e2cf99be0532db2ce03ef58c02f912e1736b9f030d73452fca1deb47051bb36a4c6a040b1ca39ab91e504727e8ab726a622e7353086f0a53eeb5ec37f4fb3d73a165b71d55c445574335c738bb517742d0a6bd403a3787a36c3da82239cbb18c6e966e4cd706911e6b92f19aa972523835d321b4f239112ac27901d59f100a023f30aaf49266ee006a545c0850ace08f0ecc7e66b8e35e78a877605e386e251bbc1154cc126619027a020020cfecc0b65c136f1f17123ac01f10e5f3dc2b2c9f4f236371e613e5e15851f601000000561d29ef7f4f2be45cb1d0057d6e1dd4721ad4c8a7d703fdf591c32a7933f3e8c8b478296ba44ee4a3f33f1c1c423c7f36a624d4772c4086ba1249cd6207cae25732d96cdbf8c42521b607baee654d6439e2e9d256bf6f079d42d1a3bd81d7c966053abc928c0b0000000000079a27000000000040196e46e3acc786fd0425385489a1c15483bd4f687554659224ef3648d212a728c052246b9918ab8aa058f67d55fe2a66f2cc50d277c317c47c7972f766508a7f01002038b776832163fb425f1febae44e5d1a53c9d277728e361064da7f75851a6810c000001569472876352a7fa0a82696d599b09155e678994839b5e4342a2bc09e27f35bac0c92da70934685a456677ce1b545c3fa97d5e776ed86a0a7fb00f80fb1017bf09377bc353227e8fd4cdd110e30de712564736820fc9a73d09e16f0c5386811eee7b8bd6b973ebf31b6160bcd7576ec08a5feb9aa4d1db313beb7550ef17249e9600cdf562285e7c572504ef321fb23aeb8f3d7e0d7b0bfbad5e48c231b725f79a3336a2ec31fea9853363c036a24fe7cbfeb25140f7b07e289d34a30d7e48228af9a009391ffa9c4dd206730d05d086216165292d04756ae0edb2b5fa860f5847ab182dac381e08af44c05888e49f123d10f6bd323411e699fff1f047ac7212ccadc053b69c23029330c408df13622574cf5dd058e21e48e853d0a8c1b9b0f40506530ab74cfc16cb2ce687cf839374b940c0cdfd104d21b25a4c73f8e50b7abb730b97f8b1b3de113793f2998b1b989921dd2a2dd5ce020020472510944e52b996d509af089472fd0abeac8459b89a69d326f31f423fa6bb7c000000568084f7da7dd97be5bd1c4ca0025ddc001e28dc9a17997b1516310c81ac8740b829a5fd3c50692034b8b01260f4089a0f1975dd878a6b0d3252272b06402ad60e53c53f478242306cdb8be0a94327eb85c658fe33ce0609387d47e064e41df08cf294870a6eeb0000000000079a27000000000040d3ee2f2416e3a86860c4f7d53080132eff9067242d41c37a4aefb8779ba1efb6df95c09ce3a41f7c3f3c5d7f715ed5b85bf8849f5ec9210c5ba8c0c46b3ab7a1010020d9f64425db52523efe0ae78a6cfc8af47f604e4a25d05ed5cd60fdc3ea774405000001566ac37f05fdba71f099cf6f54c7180f29e865621b77bd94c5babcaaa738b79b31a2e0fed58bb6dc973571981cd7f9255c3ec1791b3c5ba702866b900babeedc771b0cf975ff686181d3ed735a3a8ffafa5d32d3fb4acd8a8e3c3c949b51bf64792d2f7c3c37027910697c89dfee135161ee302e918eca3f6ac6a5f9556aae63eba34752bf7984f62a0c9bab18eb260c03246b221be3522591bf5a4ac1184f2b2e5ff2ca31671852fdf539e4256e08b39fbea1c2c923e1936d81c5611233fcad8794a1d9253247aba53833a374f81c8cf6ed2d9df6edfbdd44791a0584eba54765931d6339865b0686c7ae666389dd53b56db3ce86e6758277fbf667bf6f1e11bdf0732d0d96a47d4968898a6007dba75d16bf514d1234d07e758d01098952ae4ed9ba4d5b20c991eb36ff1022ba58c9a69bcb558454da1593e8fff247fd49272897532f9b258386cedf3f7dc52ef301345df3f7fdf4140200207f57ed7f54244e173abc796d696561babe02331d6f34196a6b0a85c63e5d307d0000005615e48de77b7c3b08f6544018572c99cd9b4599090aa5144db996eaddec7693999b68f6fb5c27bf3595875a652618dc09d73e0ce9c5801b1cca37eff4ef10479cb1a899d577bc3949ee9786c98dac97ba5a5be6eca1f80c59a860e6edeec76c64aca0f720e6b20000000000079a2700000000004057e2fe3dad95b83fdbaf6deb00e8a89ba6eddbf58139e46b1d19d543e95e27bd888b5864faf0685a7d31ec7650306b94c90532ca73c80f361a5b99ea706535b7010020b7e83f9272084695652c1d832699fa96dd88382ccb0f383921ca3aa5603b121200000156022cdb10186b413c7457723213b4ebcedc44901566d8bf677eb99181af3d47991d402cf02d67320ab21eed7d62f9a11f40d9bb9d26dc1fd689decd8b2e47da0d6d98a40e6b5eca577d4c231714af130cf8bc1aba46798aca824a14e0bc145f2b0845a10cefc3a1aa4392aa09510ea8731fe3e445ea89c5f40c322958133548b93fadb5111f6542c1cfd3c182153ebd4713e80365b866f1d6d8203ba72bf213180bb077f7aac8ddd0fabb9bb18459ed42c72e1171cfef576e00bd9bfc123e01335c18843bb5bd6ff0a98c549c02fe11e6243da4ec10c740639b22fa60f584ad71e76f527147586eee153975fdfbf6d7947762413b30e706f637aec3cf09a99bbdf3380d66e0f9f00ff62db6332cf313fc870d26699aecedff55b1f288addce48052e283e4fa7ecd22e63b30fa5b33d0102b7ccc8282bff5fc6c61172923f318a2425f077b5b489cf20c57b83f465b6cc4ca2d98dfd43e0200209ec986b96c793722a1dbd6998e1fd9ab23b2966011b0824ad524e7ea3ee5031300000056b0602b49d9d1aa019746cb0206f164868f8ebc6b7ac1678fed194e2d087c266705f8451db4341b11c5fc6043e9a8f734f1734ee4b12957e729c8f2871bb2d049745299b7a1471e8c3c8f44a4edd93f0910aa6a5c5416108aff34f526bad2844c14096550f2a10000000000079a270000000000406777f887a29a1ab2e4790f624cd68bb0316f20c5076a16a1efe775f899e189e2d20b38a168e010c42356eb316a515bf02bdbcd3e2d406f6f08f857e55258780d010020c8d49b2a735cfe57f6eccc0102c9cfbf8b50266bf81c74e7926d4a6523c07c2200000156cd4cd7e4bdf10a01989f8b771ac675aac2d5b7c44f16d2f07c5668dcd1b8d32d326a8ec072c8e264b43b0587dfbe3ac9b77dd3f6ca55edb076a173289209276c663e420500394ed2ff6acda2c76a026aec2380a183c83ffc0ec41b2d64fde58a2d5afd8bb7573662efd9dd8ebbfd03941e820e987664a8547b2f59e689132e3e351bd160c3d804fbb043b6cac322f5d1a516a241b08286264ba1be2137095cc18a2a688b8aac314a389a2443210860a3808859ef2bd545ab2c4b6eea4b556d1966008ec27983fba861116df59743a56d5b72cfc10b2d0186cc191785c1ed7a9d18660438a255b276ae7a759a61ad122c4a37fb2b528f31ad3d5c84d2f8fa70a5ca6929fadf3900cdd939a36148fba4f79e790ed8b5cfdb7c7907d80460fb7193db12c646f6bcf0e9aababb9cb1845e0b61c861629825328253d6b0507b1ae4b3946773faced29fa6f48828e986525d706121205e5401020020129e46e2f293c2a2268e6cedab72ee20b7917828bd7aee66f2c2671365362d7400000056dce5505e40361a54cdecd874adc620093b8b025bff17230990f3edb62912b5ba93b0b9132ab7060a69a8e1ecc86663ed76322435f684f3867f7367e367a890bc6df6945c2aabbd7950771162fd07f7a10b5d920d3221112a88a90828daa218610a62f8249f790000000000079a27000000000040063c2a51c0e2dc0e3f818bc6f6b43f1abed32da2b950051a1bf60b58f7a746c38624a90a4391868f034d2681a92a0842973b2493f4a7f49a51222c9a98ebe8bd010020d3d8294c85d06bd38a3f2a1dc023793e85d96a5cb05295ea6256d761d153b56700000156cf1c44d448713a68271dc3cea4a39b53d433d3ee0c70ad77b240f1e970167300014e406fca5ca56dea56e1cb92189b750828c92d00681b4e191143e70a04cdf7c6862087ad1ee625c4feba1ee61e176c98efea517a6d4f67bd7df5084f67bae9ac9e8087ce8597707ba5f283e41e7d68e2e2323eecad016ed8b7b1acff9f4b899db224afa34de542d41e503adc475944dfcae07d0f0dd3c80edcf9aca13fedbb3c0c9bfac7ee4f6e995154301443a34e8bf7c2dacae9bf513c9e28bb31f0d9c0719924da616cc231fb5e45fd5e4741dfbe07319c421ca313876a695704d8c707a265b7b4f699f656cafdf3c699c7bc20d9ffeb6d876f34d5d0d495d536e9df5b9532e9b0ac622d1b8b22098951faa145be99893e7bebaae4c98f9377b350a693dfd078287e4fa0493a706339a45d0408c27b12b90023b1c201079029d44505e74d4055f5a04d6ced4a48f0f79fd8ffb28ac3c7165932020020c0c3a7c2d7bc00a91b8ac7f3ff7a6a011d0e950df890e3dd0a460f8d30625f5600000056bbbdadf416b08fc8709c017e4c906b83ff99001de96a32429eeb06d2fcd77fdc54418ff6be9098a58d8e4c62862fd55188eb3cdc1d027fc2cf45238ad4cf0a4ecd829b02d9cdd02d6c95d499edb18d321a81c371da6e1fe365979986700f7d8bf8acffb975f80000000000079a27000000000040ca4d42101029732e3b7f45131a4af5a302301cf02fc6a54d8d7165705cd9a23445d06a4774c5701f64c908535a95f6e3b8aa753a9a1590aedc2c9cd656adcdfa01002005ce278b89f8ee79410ed013b82990429553ddd2862b26632ffc1a1438986b4b00000156c68907ca4a8c82d8878b5bb2892e9705d56ca2c6a3a5162c4591a0836daace77ff53d6b22087b70845c1f1c92c4f556f42698d8e8c6a9b00cdb8b66f06dd969c56ee0c5fe12e1d370f7153679ce96c28ef927f42b0ba32d0d0b4fbb42721b4f1f4136ccd2963f599fc30ed8e59419f35bbb682ce73d68abc927a7673d87e3ef55723931e1d6ade6b37a7c7294f74f3c4cdf15f5d36653bbd8109e6178674311439096ba31f27d4f65c75cf19a78a3188a08d7dab4d6a9defd74d13dafe485b63f1d7be60c8cbf33ed732ec5587c24b41da6abda4804a1d1a6150bee43b58750ebb0bdefec8697c5df23402d9c48e668ed580a05b3192be1934c62d434733a677ee19732d3af232a8588a9994f1b2b79062556d417cd47457727422808449725ba50a03e4e5243213d72ea499d029394c9964f4ff8277cdb9412f5adfc16d1475f8f1a21b12bb63fa97bd1e79e3549af38780323fe46a02002048a5df2ab90cc117fe669b3488a82cfd8afe5e12a1ef6e9969b33abea622065100000056cb4ea8db746e6508fb2e1196b337fb9fc3f95c540c673b2d486a234c4cb6a50baac8fac13897055c620a3edf641512bdb6be313b4bbaaac4ca5db97ff2af2f059623018a48e752fc1b414547f82d5e2b1d0d2411604820bbda745d256a1d405501a4037dd1570000000000079a27000000000040475d0a8b98b93734516292f10676ffcb7b808258342bee11c066b74994af53516f180d6caed2fc8d9b02ef50edd52c4255dea30417180942c188b397c517dba1010020f2b2673a6ef3933619c5a36731a358554b446c3ddc895dde7436348d2b67bc660000015678d48e5f1475b40c5c4ff288cdfbe410f618abb9502bc697d15ef46394f6369dba318b9ab7fa784071fd7a5e02ac0284ee02bd3d84cd746666154b3e590cae093b33f57ab25fc84ab8424123de1413ebb3c8fe47e2a44f63e4d77573374112920c0ed7287bf9d606d6c9ef5aa59754a42e988480c3be19afdebe2b5588ab07debfbce3bbf2ebd7cf3243da39366695902d092c066de6370878b25aff353def24e15bb88550b31d26a59e83b3996c19bb7801e889bf54d4805640cea36156d5056bdf5d3853d23d6bc360a2c4e6a2d2d4858916d98c1acc8e00088ef6ea9e19427ff0702a8ef432403ad0429ae9871b49586ea2cb0888f72ea2c5819626ca84987972b062bc16aa8f16108121d8efa82913fe1367ece9d38a5cf802a037f750001b2d082c958348d9545dd9528825c1245a744e56efcc2f3c4a1859220a594687cdaead4340d4fb86e428c21aea82d44e9e9216df5cc9020020d9df35dd4af7b031ddc645c7d19201b783de78cef909a8a91f743813d2419b6300000056b5b9fb27d84f6f68c841aaac21d1b0d31e2528f499ddb852ea67bc01d5ff34b0e98879db17cf06109bb4e5d64019b77005dd14e529bfc1c1e37ebfcd076ad71b9a757cb6273a01f8a48cb91d1c27e8de2a21aa798b2c2a21baf219ffc7779ddad5b30f131d1c0000000000079a270000000000407447ae6f142046d5efc4a15b8851949f044322ab4578275647157c7201e5987a8f7af0bc66a7f501ad44f7391b2ecb16322f752f5cb50bcac60bc5069a52ee7a0100206878ecd16702621c7b59df2777476effc564d0c24d069de8091dc4b8f30b847b000001561d3d8a3f05ef9f792345e5f47050e7dea05277e335d1c683ea9e42ad7a28f3ca6b41443694207911571b912f8fca723f583f3ea68584bec3e4dbb246324effd9ddcfdb87f16f323677721f5bb66bd4f6f8ceee5b97ec38ef9dda415f8cf5476a1d574144c07e6797c6b043918432d2dc29111358f7c327f51ff87e4cc2808cefa755bcee8a41cc3a14e02e95e968aa0e1d3a5ded82c8318df3d98214d9e8caa2deaba0bd5ccf14fc994cbcb327932245c40972cd040df3ac63da9282f2820c18186b538542220915d4cd67d161662924dc5672fa9061635d1db6d0ad89f4ec9d23f677a223424c1a97f348e336beedfb5d107d44fe6e6d1b34b0fecb5c7141e5a26b2a780c4b23b745f35260982ff8e743c0d050c79775fba61f8337ebc6b5505af519a68396bad4ed5f9c26d774f240b0df0df068820662a4126a95508163471f96746eba3debecf6922374d4f0fe8072ff227ae86a020020ccdd364666847158408efc17e10d8dab421194156227b408769620477d3e495f000000562b7f6962d1ee8de885cdc65cb791e25d831a8c91d0f33b690734bb2c992f9413407777f3c792e225cf2d8986ca4b66509a223a46ccd004334f96f705a5044ae513e8686cf344dd0f19150cb846dc4f067aac11866ef52be7e94e0d0d9417810a84edda3ee2ff0000000000079a270000000000403cb608ec6566d88f26cc8d613fe035d568b33394a8227c7351109fff481c776446dd2b48f9f0b0d675211acf1cea0e7b80d582062fd392c91ce1a492aec6fc5a0100206b5f8729d04c19acfd8967a9a6b1b0d7fb1563eb767f82ea515f60341a2ca951000001562f6a1fdd30daa0e08b75d85e2e00bd7970bed4cbed077f209c6b70a1ee569a138e1da6f4a0d19e60edee15f9fa68af07c7c9408f018b3f30a1826f9862bda2d92aef088200a3dfc07351232cc6684e858c7e213847b82a11e649e69cae4c9d21e5284873995fdad530d1acfb6817e23d768f59069f41b5e495824c8a44634061836e3e75bd07ce3d464318f376445ce407aaeaaf30a3c8c5f1b037c66cb492471fa78f25da6131a3d76324666c044083c8e9a0c058d3e30aacfa7eafb1a4abba26f422935992617b2cfe13432c6491d5915e621e56b4be107fec0f347d6e1d20c3a515d769dbc71d4317c96f2e2b29051e78f0a210b3d7ebd02e39d7efa503c7413528664622947b420741eade0ef6d92a4fa8b10a30ef0042a16895ebc560b184af1444e12f4ced26a4791df0b08890c0cc4402d51449e6610f9ffb5cab8582de039d0c15b901e187acc3ac29c572146e8d6689f7dd020020b7239ef01293b914f222ea2d0e2a6d47c03f90492e25749e6cc4e0ae1a8fb15a0000005607ea8f13863fac1a09a5cdf09588577b9dc210461be032c4fa48cf44deb61576c1b12d5f0aa0b7a58c6c1bef31378cd1120071bcb294229546b0d932fa1d36bd1c379a738d04c4ea07deddb416fc3bf9058761d422fe2d6d38eebe08cdd66b41363051b9d2030000000000079a270000000000401880090baba1afc87002442904a846450d528b5d0619b5751409cc67f5b2d9a483cdb6d29d5ce9b930f3a6cee41f712e0c5669164161ebb7c6b845c20b300a3001002082cb116d1708f91e88ceb46c26eb29a89f2be8f78b9a831dac86c16af95f581200000156c20d9bf9d0046551957dac4f987e8dbb5ab48e216834f909e29a06264470d47c2dc4fa64ab75140936160e68bf9e92aba35c6f81aed632928566b50cf4b659ad3f8659bca64baafa7622554bff3c02ef0f13a72b0316357c615ac3c72990bf6d001aca72dfa42b973a3abb72f154727f569cccfb275575b37e1e6998193187ca4a12e0334e9754fd39e009fea14f8c4cb7809f2e050edcda9f8a8d2cea97e540b7031d9b712040c643f98a136860670d3daeb01680416d5e572735adc801469f96aa79edc818b08e335a23c820671e754fbd64b83b9cb1422c7076cfcb04b2b60bb3546dea873bbc5ad9c72a976504b78c7007e6cf99a501d31144df437585ea33df0d8446be43450f86b85ec739b8a6c5897974302faedf52978d5d38ccdd4e677f541bdf1a2a09ca3f1a57a024c1360ce2c2ba7ee3e9cdce29b9569bd5eeddc2c4a0e0773b5dc6df2092d59e5c1a928aa257f1c241020020a4cd75bcb582372d27c84b57ccf05fe435b512d11ba9d82b200e447b039e894e00000056925605cdcbf3621f3cef3fdc37735239380961918839bdaea8827ac699a378407decfa0078018285dfba88100db211684d71a87e312eb70f35085dc57531ea918a3912833d194374404c447a119c0cc51a27657674e7350d8e8e1e94d97605e3188a82e485c20000000000079a27000000000040f950952a0abd46206cf795ac4c16f9cd62d21f4c74d9265fecf1d53f50fb2fc2f7644f7af865e9e3016b469b7bbc806ad506bc1325f8a79bddd6f412776fd47d010020e81805e17a4e14d59b77f934cadb0c8b232a9bed24a8af7ca32e155156b7de6f00000156320e6d3f924866a8ade00ef40b72bebd2751bffe167e5f3a21a2f13ce0e131b5ac949085f93731d8ca6e546451621851fe29ed413b9b98cdf34464a6b1a1e1f694ffbbafe04f75692501f4c6155164b87daec2ffdcfd7c8c8f07affd976f5f523eee7182d09e01c4780b3057ed2009ffd6b88872020d98f4e9ac0f56c3abdfd234bd6704cdd0957ac3ad226f60ed5b84c3adfdbb23cbb89148ba2d557665511380d1cbe1a55ae137f56f61132b0f8a03aee2fe849cb5367851193cc08023304d5d84c0c06098665caf26e838d8bc193a38c9f54decc9d92ce909334fa3c477e6a26ca01e1dfda96a581713badf263dcaf5f72f19d81753376b78e232c8bf051c81f2509779aa08fc4b973a9f642e0b9143de48ec0e8c17aa448dad2bf603fc652482828e5f70e19c81c72a1398ce3b1455e7a67a1faa8aec6b994d3e5c0f152f0fd846190b24c8def3c81fbaabba2e2c7dec12f3151b020020c25105e677e35a412f119a7ca3cd9bd50a3a2fc0eb26775bb0c2fc77e168396300000056e508a850158507567b2531766dbbf9772ac7ce14fcfd12154b9256c01039400a3b633553d3ba8d74b38807051ef3ff09f9f68498b970e097580a70a72e3509270b4b02e6ab49a7e6b72b3ebe5b16274a0b694b74e434374dce7e4c8c23da84c5cb398aaebc750000000000079a270000000000402a5afb1d33c8d4363ca5b1ae3b2fe9c03ef5e116af91397544e5953789c322654603a13ad5d34859907f2cc02394a5f202c454bd360c4e6032a94d13645b7364010020a6621e2260ff0e51c5832c6c9e6ee42ef4ef383dc957da4d82d3fd60ca5b783f00000156c73bf149306118be53e924dbf4cea46abd19d43f2ed35c9b5c4bfacbed3b0d15bbb7cc0f8976eaa033f89c233e492ba4cb8576204ff1f60587442c71954ee274f2f96f1209ccf4d0aa737e362ad359ef0564f6290c8b4d9e69976f8171b55e66601e9b2f69174cac8b14dbd8713471d4ef7fad00f154fb341b8e48ba567ac106da1ca67aa0e8c291d2da3dd17bb88897f8a6821e5208e994b9b499ee43fa611bbb55f35e779fe4d62fad9782c0e4d2141099791ae8dbbce859a0d2741bda2056b888af299d20169d472a2252b5a642f574847f66186face039d8be6148f53696e2201c0ee0c242228805a97cb23ea2ee384ff78029ab39813d8c8c854314cffd85420e71cdc97c860c729cd03a9eff47ee0e2e9081d9a89f046ca3562852f966c7b051e219a7f18a25d59a255304065399c52c72d5b4120c5ca558ba9428004f4db3fe0ee37d05d2a2b46b0c39fc5fd0205b065142bf0200200c4745854ccd694438f3919304836906217911c014e73169c52e1998678db877000000562e6bb8bcf00641ddc118f58a46997acbaa3097c2fdd37ba5ece95218386604cdec4f014911d0456323d60b225abb05cf8667b8c371e9a4d5144c2b0b68ad98d45828853138ae1487cdb74a653e410d7178d1307dcf71392fee2b2044ab31e76f56048f525f1a0000000000079a270000000000400771416495d7aa62cd0fe703d505454b987fa9b0ed3c2d0569054d1f0bb699935eac357b53b4608f375810f1cc8a6d7ff8bcf76c0105494d2a8f2db332314c26010020aa5c56f6d391925c96f5607bd48bea73235dbf25daef6533f361d76115448960000001563f102c9dc9d93f593411ed94b36accf9e193543fb85b18cdfa6dd6389d852baaff4f4fb19764866b9a2aeacb4c1544761e872223853abff2809408e07247056a75eee4f0ad64c5627978e212db2c076b601390baee030892bbbeba797bbe27b7ad127dc9f5f08e86f3c19f88c5f728c1d47d9009731eb4e1f23575f0ad6b8aba66c90f40b279539fccad37c21173516746888b87af50f31fcdfa3195c506ad365d7c7f9d2adcf33a6429ad7056377f5b97e5e54243f8ec90fe79ec7a03ba2947cbaf5edfa44fe142aeb497743e2d83ca273a1439fd199232499252591badc736574bf233557d70114ad912a5bd618e0b01da53b96452cda6d20593baf817e1f3ccbba768648ef29942c5c56103568969b4147670e973af4d9af5e9c5244992596f1026147554d8ec18009f4c49e9f3c9fdacae1b504733913dc11b1608153f9890c38b643a768da813156c0a1cae1ee993f56c0c7c97020020c6e45e01f62dc3e688d8334190326aa8d6776f6733c5d3828122e80b2095d57900000056d013e3d789dde7788457662e8bd5c2ca0cd405e110797ed0b51dd92dc86f3b8ff5102f066ed2f0509431884ed97077a0f8c9e4da9881ac492edbe24a53baf9e9c30feda8d1b50ade5b678b7360f4203b92c26104394e3a45f646f0d4d4074751ba94a64fd1230000000000079a27000000000040a6be6f610ddf2c56ddd4aa3814bfdda5757701ad3d345603dabaf8301e79431c01bcfa87684699d2fedc3ced0738923858ec2cbb1784c64e9d8c948483798cc2010020bf455d012860143c00de27cd614f683d1df4d298692167c98880cb71dd38e02d000001560010d58992d369a5a8488f411fa9fe16e4395d4ba8e87b7958f952df086bff3b2e957e19f9801a38f1434e7d10dbc225ed75f69fc46883a4e28a92340e44fae6feedd5a32dc8233cc95456fe1db24f3964b0a5ec071a829f6ab8c41aae398c02e0f3157643c2a6a49250c633250db6c2282421ee198f158d583e0a74eb934526239eff9e121440788aa60dff5ddf23cb384b998b0096241fb3d9cfde4048104a3cd3586b0d91be8a39105ee8aede22d416238f24426005b8bfca69aff36ee824c258d2e80d27023051ab7586c2cd4f84b53f38f2b2c098dc6695d00f480fb09edb1f83a53189d5e44e7a935182937c1fa9e24b49675fb76b52a10f8f137b48e30393d8172e0fb4216d75b62520334e3b2e5d8c6d6885dffbdb8c79ea2ed868d9a134ebd4f7b39246bf5684aa207dc58a2c06c3c2048b4f0122291ba4056dc3c16d493c4918151fbf6fbb6abd6db04b30ea4d7776b12b0200205262b261a965a6433aca86aceb12e5005fe3875f364a171b60064127d72f261c00000056583dc6f1d5efe07f127d549ce0666fc7176ea8c636b3b818953b73e4534f6723c012dbaa649e70e7e436f0eb910cc7c25ea4d38ec2c4f2a942549a494105c6219e99fd4ceacdbf1a24e699da59737f19e501627b2b0042228e96d3d82c50d6477228c44b0ad70000000000079a27000000000040a9ef5726379fddd7899b4d44c18848cc51d2fdc3c3216aef1ed61f4faed8d82b9e23108f625d3e89a83f71fe5bf2310dbfc429211ed8d64a899a1a5322662337010020d4826819853beaaa3d6871e93a5a8c448ea3b6b82bc09ca04cea5600a61d1c3b00000156e9119223847a7a0a04d38408bac948c627c4f6bbf34973649de8221b6c7f7992785df457936d39f58c1f532191659418a03c59a2378660c2b981bde4d466b5441d8902f152c90a4e320923b84eb532216abff5cf56e5caa691745c88e293079f7258af9e577ff85f31de7ae62154a780e4a365f3376a08c27c046aae82e9fa2b7744f954b8a2cbac1df249dd5b80f377998c616efce44f25b3c35763d0b87bc0705fb26164ba04bae44ffa3c6951e5111dc8d0451216ae9b8d869f4390b3a508c99ef4fa3588db031c2a423d193b7c949f34fce8c1b53e62cffce58bf1bb9b84e5ea1fca38b6c18dc29f97eeccfcccadad5fa2ce6e682b858a19076bb5ae1b10de2433a7e0d385be5cb4d0f9c875e0e2c2d3a843d9428e2bd964c0e9d5555bf8d7f25023d1833da5bf49d3711a64abf6fe80f11cc2eae15451251f7cf34a283f7045d9de54576e13edaf9bc094f85edb5710d885235b02002043fe2c3385cbabfeaaadb8aefb1a38cd04ac949e26d3b3fffd83fe289e523146000000561f73b4fc0c21d941b41fab6c36ff56d5bafa19c6652155daffdb08e40d7eef950faf1be2ebab786c6f1aeae563e789d7da06a969c6b762a19cb29aa32090870c437285ff9de65e99b24ca5570e521e8fa923c10eae3747a74d0cc30f614c473d865a396258e70000000000079a27000000000040d0e6da146985c0d0794baa7095c2f0d36618cddd5a09c888e75ada4c87808ef8c52f0a6e246dfdd42bc91c719e74b87215a155722ebd6df0e97e3ef88d0b3f35010020acf0dddf5d86eec17daf65cf16b1842b7120276db1e043177757896f8c28512600000156855fdfb46c70371dabb01e947f8da2b95ccd0e8698f5a58f2fc6ba42fbc026ae933337298794a63668f0032df2e34da64fbc43fe10cb8dd8351f090d95cbd2f116d73306ba07a8ef6bb28099be0345fce25467a4bd50acd36dbc52d9eb52cb0be76d5e36a0d37ab7eb10b59cab17fb04e5ed657622e3ec178794297452602bb93dea74580c1c86fa915e6c6bc68493566f7982abd655e9ab722a3a1741e0e49cc2cdc211bded471746606363d703db4c1a5fba00aa5ff523f0a60741241fe4f6012d5fe815758a9a05af4f8026d24ad17fec8de4fbdc0da12cefa10c20d37b355ab7b93fb0d73a92706205d4e003099817144846ed1dc61abb9243066c176dbf743ef6a9fc7b1f3c9089b1a6c065a7c3355fd45e8ea706e6ff366d3ce7d63575e3370c0581fc0d366794f2c7d07d777acaf65df7aed5568a5f398b0044c71e16846ff3f39ffa4ca0ea50f8b511c59e5f9f93183eba010200201c8619f96c0c8c6adb2042fde48d5b280e91759c8c8ec343e2d1c95809c4bc6f000000562ba8903e516313f782c8d9e920b66d5160729c41aa225af2edc0cf8655cd0ddf3e8c01f380692c4112576329dcbc4b97dbda636454ec4b80775967b57fbe5fa6c019749cf6200aa9a255f2fd7b9b7588f53d5d9748b44ca3b9ed8da9e09ebd615cc1a52dc76f0000000000079a2700000000004004d8ad14f87134f5aac4becc64f73610b78e06210dd8a344087dfc151e7132791c3d5dfd4589899e4dc27b4ae4752737cd27b13eb3a2a2b678bbd607f940ad7e01002042f8b65508b086c50953b528d13fe374f9c4e014ec54a95e7278adca044f5f3f000001560726c8d33ee637516414226588ab6b25e73dedf39199f15e28cf44bea7833b0d250675664e17556b96c7aca0225c242dfe3a1e82571ed3a02a07103e401c8a09f88f69a242820103bb7314c660bc9eb56cdd857e45365e2fd6fac6bdbea8bb589cb8098a3b85efabbfd54879a72939220335df2cba219ecec136325b54e1905981c5a6b17396e88206fe2988a68ec8fc188c40ec573f1ff318797ccad059d798c042f960fc0868ab8a969bf82982dab82de43a497b95deaecb9b15a0067a2c613b68a713378d650cf3ff2ddf29cd87e894f558db5ffe61eb70b3bc30b412906853bab0ee69f9e60317b73fba56f779774db9434b0eec745ef74efc7e9387a88ee4d4b23a0857ec6f16718c67e571480cef435538093701198ae49cde6d96ffb5a5d458e73e0ed90fa8167f19eea7ff656337d98cd167f18040c3d5c80ab2ad6478e7ecedb7fa984ed0c0bcba8971c84add6f13c6123702002021d4960accb6b144570ff7969f6947ccc8770bebead5734cfbad60918236b179000000560063e044c2cd71655dcd9bcb1a968312dc779cb736fa2ae84b73f674251c6e7826766ac633887a8b54e6a248421add8e8346e57c0ec171d3a2cb0acd02fc799416e24ede987f0e36024c7d7ac4ac496013d29447418c57b8cce012e3622866f658386008eb390000000000079a2700000000004054d5a3f1f4c37a2566f86453769a4f700d26528112a78b319857cb13061cae286ebcf39be39b1d0acc424806150427e972112914367dcd1fdbeaa374189081e201002022ba5d9424c4aa70938954337ee945200cffff2690b64e5fd4c0a61a739d155f000001567bba4217e83821186d483055ddad44b7655144f0c1f5931643d6526621fea3e48a2739930b3c9f804444a9696d78ab617b39ade93b974b1853242548e2a2904c9932bfeddb2e845c62a0bcd2419787f6caff4521980aba0efaca613b728a8cebf074e9311e6a2107f3cebadb506a63d5dd4c4ea7186f173a1d958acb82e2dc2844e37cd50cb91570bb6eb2800d3362f1592f08d2ccc054a8cebd062a900eaf79a8715da9e074fb7094c1d06d8fedfeadfe55913b9ed3b503c2b20d74ccd31b8dfe7748946def3714a5fbb22dbc3848058198f5a4e404ef80e964435d2f3eb29578aa82ff621daab3870b3ab1c7a3e56c49443d899dda7938dc40af1843a71805661456691550fcd61b8d05051205be4b911dd4b5c9a823492fc853f4910f63f281f695b0917777edfe2719d4fff98e98208d53522fc3bbb8729450c3bec535499c38979a9235208c9fc1ae8706a1b12deff13ec6bd690200203d1c7bc16177eed76f92d6397343948b118ce42fef9f3c4c8eb832d98d1c961700000056041450d169062f843033b4a9947f396e0a95f2d4b2d3b3d7ce241e17a7a9b7b4793d18180586ef6ec8a502cae95aaee13de4835a7169f5f5c96f6922f3d69752c6a4cd19a2cdbc6eeea6db582fb02e8ce67fe5a7652c5da361ecb1d359acb0a828ae26506c060000000000079a270000000000404caa2d9e7458fd7309dd59d75b5b2cc1c110355b3ae2915d6e524ca9f4f91c5b94d8415b8ecafe4869d44a78010717543d39d4fec91fa1f9263ffb11dd96a5340100206265f0db1b54aa8f8f2a64349ab82de8df6ac80d75033d22b9ef36cbd59e2a5300000156326caf8700f9b9c15a9e777f67d6c41b9378b0ce5669eff0f68f929ccf53a9c3a2ac7ee1dc9e73ec1020d9531b10b01c1705d89a7c1d18f0762796b6a2973e210dfbeea77762417959078917ccc6025ae1596a4fb3a55bdcc622b135e7507f338d9a97f759dd9ed9bea71381dd496740e15fa0334da7e5b8a197e2037db5fc76b8283fe2fe142688dd58d3777780e01c4c377ba2243ffa7f5c1974d5d3e56e9767195ab083bd5ae52349cff8e0dc174ddcddd4f986b245eb2e9e6d722976e5e7214185cf23bc304982a10dc1ac1c0d272afe3cff1cba622eaaf6d6e6be626a801c7a2d0935a46747d5b8abd5a83f0150ba2bc75b4b593cc2a438368145e9069c320ae21c1c2633f61a5f5059a20454f83335b2ab760ec7f38f4a209d047e7f021163ffc26f2c253d6b1d8b6d3e8815018ede5c471f75150cb73d2949513aaf7b6975dc552eaa657977d6becf19db4e131b8e1e768b2c02002049199d6206967a825d5efe393ede8df61429f2c7605f4127bf079a0e7fa8d24d00000056421b56a45166536516c78f786a86ada0385d5e600b64640120b6819bf5c2b5203d27120b8f38e49b067c42a58d02627e4e34d7c6f6ada524a0eb927084b60b8d512b2df63ab961d039f1f846d962dddcf44b3e983d635ea6e1eb52237269cd0c6098163948280000000000079a2700000000004069c0319edd4f8c2464784baf4a77f75ac12ccbe10c60b8d45b2c8bdf443e7b5256d5232b6846b31b78dd2b86f4f5f2544c720a275e010d24ccbeb5ff517b5bf401002079919f12e741581efaefd3c7e7de8cd78e0676db4ccb51a78d85335274291576000001561d123d644e3989777330bb5b5380c0eb1c5b2d06c13f5ba53f814d7d3f107c06ec60b37031aa2059a53a533ae234b30f13a4a17a3b0adb6ff97f141248d97aab9e833e33cb418976fa939d078c64d5b80ccd4459f3851b4f947368fc31583819106a78c4598544cb4a3cb7c6e1204f72e40b987d4be6e163b1619694766de3092d239c9682239e80cf84756c8aaa102b986284294f832c45ef0151a5b2a0f5989f73d75c26b2c4f21b767fda78086cfdab2e5383beb05a8973edd5cfd43b43e4df2000ded0c9504031c95d34d679d152b39c9899d08bfdfbcd295e93b52cb25a0ca7766767e670d60a2299092b887c2053f2db568ff1eff8e09480f2f3190811e6bcb9c10e13172ec1521c0dee2e1f4d831c9cbbc6aaabf8755926a2e070f3ddfeb977824e91ffd27c208b0d11fb4594de8ecd8f557c4feed67780af367a7873c142c315008dc5b8269264ee76505277c7f33d008455020020056d23e5af61485cc335a09deb8331cfececada73133c5610d3c41275f2e0e0d00000056bc4f706606e82f8e621e26f4bd81037fb2dc7d908ddd1bbb9785c87213de521cf685b78847782512e27f09bd72113ce1dc538b1dfbbf4a1851b8c4f188a535af8852fc13ae38ea4c61a72e870eb19c194bd6774d4a8765eadf640968cbfa3bc0c58a8be1d73d0000000000079a27000000000040e568f05e51073eb3d9c995eb765bef2517717ef5c03b51a077d442b4769b732c946f804847347c9b3eeb4e47e2b812d2ca8332a37fae089c0e7c73f18395ae9d01002099e022e9a2335679b4b190be544389faf49533d8f5e651008f905369cb0b1b7e0000015696eaf13f1461309f3f4a3464a9abc90a6e0bc0e3e244089abeab4b006442cce24a36eddbcd823d29d11a5182462b7e2cbc2d205eb9cccdd04b47fa11247acaa397291efb8ee7c65ee62c7ca6cde55d6085751008e7dc00b548f528b76328b018bf2d63f180e9a7301d645db1d1b6d51a2302353c45f337aae2906bfa8d9952ef445f78bebd60a3f9ce6d21f02488b72065496224e63642a9bfeae28d0618f915edb05d16bae58d3b2fdb23c43fd8c9b1a43b192e41ea22953d3cf121e0f33ad17d5d0acf58a45ccd7cd052a419734289cbcb84cc0a60c72e66168edfa4e7785cadd20d3e46c804d1b3d5e63f1336e17b574fcfbe8791a22f5a9a4a6f80937c2eb0a8db41e356bdb2e75d0083b088fc585cc46c062551874227ab100b2d4fa2aef8c61650b524c50674f8b0938a168fbd2892c0a23dd667497f77cccc4a3adaf24a841ea37ae7e387c53ff24ab1346d81a3ab3e2e58e10200206ed4af5fa56c14fd930f864a44c0d570a19f88935180d9f774721f4f095830020000005628046a94e009af063c58ffe81ed12003d8e2efb3689e43753fbc0db8a6d55e62fdaed06ae251b90cec0fbe83bf61ae95819e3b5fd2d97ac77a54f0c1ff9ef5076a3d8c0f563c412cc75691ddee7b3483df6d1aa393276c7a7345f74d3f4f91206b734fc67dd00000000000079a27000000000040f511c2e79dc7f26ab37a9c8937c13dcf8811f3125be6f40dee9023028a2c7d48c16e6647c0a72fa5ac18a092466270c3a329e471e8433ba8ac16e649240d459c010020e81c146a93e233748253a7a7a3b441b984f00efc3af80a228706c776b3254c2b00000156d8a6ffacb179a861f7222b25e5d1f493003449ae972acb05bfcf5bea3302d12ab2b712e0d9af427de5df78360127ef0178fc80e5c12df64bda949ef92528c552b03bbfaba78a0c9394e950a8260d39402c4979934f9f58def45a6e581f396c95d47216fb2a17bf4d1a9d053ce969188712e6144bb2d4982d02460bdcac33ce07de33d2f0f050fe78695beb4088e7a4fcaa12dd055ab46f9ee7cb0787e6e569f4c872793468a67f10880f4870ed15f6a4a24d3e5b6342b6d2edbd21d5710ed44d226eb58e01b63003ae6e0b375ca19019993d928d69938c5e20d20f3dc7502dd744b6574d2a5f506b3da50d7376564780528643ac7b94fa8973035c7a7200987162e8f146a7c137edd8212dd3674b0c94da5de7e3acff1b55ae1b0426bde28366464a6a3ad391455cc663d07752f4693f3a800f96594c82b58f2ce8922cee14c2fc0a82a53884375c07dec4b846c6a0eff8ca9a63024302002045a4ad992d32a147229b3e1213abae4cb636b8e0d772bc8305c292af82fb0f4c00000056322576d2614a44fb99bc26c8836fee5b52e82cf518889c50015f9b53cd2b9ec0c64120877ab515d74b8c78893032ca7e97bfe96c658aeeba7fae554e72d8099ed0389c4d22173406801e3eb2b11ad1e6733188d4bc9a6f52ae8f108d87db0f40755b8390db970000000000079a270000000000405a4eded6f5850c49d1d48724167661917bf5d669d020bc616fef7e0765c5ba871e25f73170f2e17774abdf65e024b4b872bc44fbeb87c7c29061c838eb33e4ff010020b464ad672be83be4f7f982a1bf64392a9a22ea71b3762fc821fe41f775d6145e0000015647c91bdff2a821da708e9347eaab4f1b48716732b5984b6016919a5c9fb6c0d2a922698619b2dc275654a5c35c8eeeb76e11324449bef6b251e9f0a8ca3a3aaecbf8f5f6e8e74ee5b46f3777d28b9bca6a77a8208225e53ef003e94a8d329950744e05e927a40d3b749aca82443c266bc430a59f20ab88999298f8ae477fe49872333b405952a7ebc16c38ef82eb93555c6fa4baa6c39f304ceef0343a90537cd0361212c36ec0d244c9191a941d3a2d991cc352e8e34457efb73ef60c59de1a3e57435a25df2e771ee9d042e719c400631353b070e6bfad7d2d0fb5a6bf1333afac1a06acfc0b131dc8e37d90b232cf6b89ab703dfe95e27ef6864f74ea814a7aaaccd06d4fc1b6cec7b89edf19def32b86857031644af401ba65aac09de66d068c4a42742dbe3791ee62aa6727ce688670160e0c805b2081365b97e4501793cea656102eab00a9cae149aa239aabf015bcdf6484b702002071ab6abdd25f751e700a049b69f68bd386f51d70053c3506bdd41426e004f36900000056c5785743d33b7c2bbb5003a7fc851aa306ca8bff769b4050ace812fc59a081a3649a28be5308a6342997f7288409fc0724dac46b77e58297ca7ed284bdae5447cbcfcdd144b3beebfe19e8d6ce1c83d0bff42d3a9c44710c0ce3750458327d65764e9b86eca80000000000079a270000000000408bf7a083c9852094280efdc9749779db2438fea918cfcc4399ef0a7cc636521e12ea542df7c6260d7630e230b9b603be926908445225f5acd3e5e8bd534ba99c010020c1baf48d5b4787156b4ac8653478d8d50bad29dde9fd68cfa1012770c423567c00000156f349fec9df0d5b1cc8947ca93c4c83cfc231deadc9394ed380810969b44de662e7884c58105b67a621e54b94f1dc4817d9470931de7eb2150994a0c5adec51338fa1b5d727463164e7a824782117cfa7565d94764475289b5551d8bb6c6a1855e9d794427f5092b83c6033efab1036fdb0fefd21214bfc5a27601da86900bdb3384c751fc9ae3f84d6f3f3df441674b246c58a73ed49b592ab1572246fb00c180ecf98fe4ef62aa27d2c9e25c3c26dbafa14bfa827ffbec9247b888d4db8312af7b4033aa28e55c517284707e8d51dd642205572ccfae61d82882599bfe5066e6c5b130d0b0abf76b04b76812f942fa938c1f8a2841a9ab100dfc159ea33f895ec7c4f9f53e6652e7a19469697fc8af180cb204e75653fa7f204b134ed2983ae43751e78c04bf785c495ab15ccf1c8182aa75a6152cb7e4817b98ac0f36d5f99593738556933184652c20413441d82dc6a27d5010bef020020fa6e6d49dd612f2be0a1fa11fc77b41e7591b96adbc9eec9dbad0a4d4b70e907000000562e07ff0aa71cd08427e1dac46840d166194f51b551a37f836bdd57b1fa3f637f9ca76afb98dc9ed7ce722d632a8355467fd30b003110f52c4dac2e4abc4cbbedec1de1ed8887886d6f7cac7a81042534abc1c51a85d4744ade46ba41745e95439f64d4a3dc180000000000079a27000000000040fc01964f7dec78bea9def170e4cf6d72076e3f2b8005df14ff09fb2ebb5030f6f747dab05c986cb6caad589cddf7e2c3d831894e20779d83b7f557b216cd1f8c010020c544328d2c5299744936fae95509fe0b44020a2747ccca903e688d500bf4aa6c00000156e8374d3d19633cce93abb698908349ffd2bd2e0cc4127fa1e30b83b816763dda27c0f87df85e91761cd67e777adbb17d1e5f1e21e5ab106489c022f39f2c8e6b544d7108056dcb8a2483cabc219f82e90a06b3c541399c4bc234553bd15a0bf16514e5ad616527854bdf8ae4a1fe913652a14999408a3b06de00d41ead8312349213a06768ed76260cab1b2f8d46619778f694580761d0e75cb3421339c074098020cc64b56ce29bda5612c3357d74f2696eec2983bbfb58e1c6d5233b955af6bb7c3b13156381a431bb261c75bea70c1dbf067a2790aeeffa9c787ba9a95c687c1c1aa363885346f23bdb0a73682f63e48ef8d24ed3389ea6bd005e47d94c51a00c2737360f1713ecdfb8418e7680e872a89b5321974cf5eab1cf84f23b7ab552a75bb4ae3f4c2432e2e0cfedcc9ced940d24deb851f320332b9e631ab3366a6248be75b84d5335feb58cd278b42dcc504dc13a1ddb02002036d13c032239972ce0587658215eb074a44d3ce07539d5d7b414782ff1445720000000566378d8d1628a4b7c3fdf14e2eddb7a9e92feb3bfce8038c17df1a5f0a5c267dd4e07a8dba83d1218d18bab7396eb163b7248589febeb883bb5fb65b74680e982abd9f816f34fa3721e8a376e4e92ed458bcf66ab362b794b3c1dc45c5404a0aa967e3a551e040000000000079a27000000000040f2755d9339f781ee287d0f81324ac1b926e83ff93b62eb83884cf48e3ef8b3d105da3dcdade3257b81a463cf0e88f500e141b0258a4b041acc3a571774dab53e0100203f21d4fa7e2aad76688c948fa316ef6dc9b90b525ab6e1d3edb8f82a80aedd4c0000015613c1be5a013eccbf4cd7479c564ffb4b58c6460801135ea5104294e9d7227592412db1f7a1715f0ac1722b175ad9efecc5e58a5dc7c15c93f2d598883075e281a8b649b872b9e0f4e6abdc832c440baa5db6b6eedf87a2fc4d86edc164e4ee4ece7f2c574ba34120f49a83ce5e3b95be0f1666f69ae65c82986f398fbb03c7348194bb8c3716bf1d1bbe4cf774517ddc4070745217e0c98962956a86906b4a9e996fc1321dcd8e69fd2256d634c66d80db8042698fc1f4eb63209467eb0336ddc97e47d80ad9baa5a743d2bc68c2a2f45c2874795d2d38fc2f37a3d0f1a2745cb0af4eeabd25ab8d59ef4bb94dcc74906aaf535b65bdc5462a973472c3f5f8745d33faca86e135c8344811ee56ae064d244e1fd95100f0acd19c41fe1b3cda1013d6d912867643bb378cfb6db55e00a791815daccf842d705c21386097c068d49fc700e97baccba00812584bbe49f4ef04c95c3407c202002087a3099ecf04261bf3521caf759d74deb095bff17ae6225f6a246e43b700997d000000562a0601175aea1d7aa7e35884a6b8bfe4589b1273fef05cf397a6898e5699b984058a002414b3c0919998f2dc30c184e39e78db35c304a1ebd4745b4920ccc0fbe5d92ce38bae0e16876b796a92502984cb3b13861b757a1b9c92c66727942e62e19898730ae90000000000079a27000000000040f792d683699fbc4e675f0a2b74e524d8b09f62b9458b3082b6d3af53909f80bdfe6e8c91c9e83e50d200057a87cdf01aed8e7281aa39933769117ff884de5bda010020161c77409b1aa1e2f66629d7bdacd54dd30fdcb090e4ed5d17d9b2f4ef26041900000156aafd5bb88e975792b5eccaceaac646725ceeae6cf9d2c8c84a8375534725606527d16233c7f67751e0e47ec9093d8aed6056aa8bda039e13f4a2de3a7b9bf033322318c028d02fcb266c226e8b3042f7c1b497df7f2bfa7cc32962b667f073b05f4b308299ec2d16c18707edebfff57f52e9fe6af4694885b35d762ba8d07b89f47ba373df1652c335ed7e50e056adbdf32a392d4fc5d880088a36689e07094be92f0be48947aa4e92fbf33b759d6ef5821055e7ffd107c9d5980c249b54dc90d9ab0f8886711f9d93b37a93450eede58fbdfd5a2210c16d90447a164980a6dbb2f7be7b1bbde7782bbd86ea8b91bbf34915e0404bbb03d2513720753a5775fccaf8474d5d32d372ffc41c104d9ef8b9dae266ff44bf5e4e66ae2437172071f2471a2dd887fbf5cb4f5df5fd850be856b82335ce3bb71b056bcbfc73f62fcf9045fa164e8ecc8f8faf3213901fce0a739e0a27d567c4020020fb1510ff5763ed4bf6ee87149f60585fb1a48770bc6679e3af67b423cf8c0c0100000056f0df24e48b04b306764ef276cb462ba7d8ec35e573d9ee63d20134bc6db432e1155b58b03ebd893052fe6bedebca0a777dc466d0adfb130921ba7ca9a7c302bf5a81158dcfd8e7f0fd093708bec07f08a624cf6dfd5280ed29908d13cf1a6254e3ae3e626b460000000000079a27000000000040a0335d2ba307166e3e962f309a80c38e95e1fa9696da9a0182bced6a9e9bafc2fec0e961109b5b3aa088057f1a28737254b337ecff7e50fd87065b465f01d0bb0100208c141324f82acc7d3d3698bd64d21a190bd88c5c1d89a44934c2d6c9f7533201000001560f7653fbeaf42ccc65cbbe7a05856b999006b41f287161695bea1db72fceac4a1cbbb621968beeb9b93f43230e53427f6db04e7539f558dc313cbdf9896d8b6484e16ccd8c67b4a7ed26e61a4ca27911c394510d662b5c012a03aac27bfb689786ec31c8914c58984520d2850352992f639dc1f8645627a16759b1ea6aa1d1648638a20cfd18bfce88475ea79d8e3befb63e9b7ac99a9933dc2cbe6380211099d047dbb5b72869d2ebb3043ef25bd0515803fc3e3425c59e99d4aee6740fb914521ee0097540e38a752d6c4a3d21fbc979a14582b65ea7b00b21414d372c10b9ca9040596356025a3f78e1eb21fe2535291a4cac3af2a28a863933845acd734383d1bfda26c04014a4d1046cc994099f81e400960e1f26153a89c9b6166f1a16067f5dcc0cac18d599149a78fd14c54688c9cfec8a8354e9a5ab0f5e38a4099c84190926923bf003131f83cf5bc6bb440a28c7f9404e0200202c172df9caec2e32fc61ac6913375ce951c5e17541483e465daf2eda9282e455000000564652e042e6f6a41c031a18c2d5e344c9d49e1c4e20deed651d61940d5637ea30af59a3486b38ae83f7fbd5237e260e3aef798595727886b82138434f1c2817ce46e8937ec054543b4f1d21380b82430a352a0748fb9981b9d8dad2da16f250019f4a6138b9ca0000000000079a2700000000004021f31f4ebe40e1a262038dedc78675cbd803f26b3df7b504e3d5c303686a2630eba31a8d1f9e132e42f2d3a7296c346ba835da394da10e43e499d9291c4f0302010020278b09840e131c710ef3d358b87c2c3c1cd5032ce1ab03d52793679c796606000000015609e3a12cdfc627f2895d25fff657846f0c2430d2b67536032f108270122277b29569cd77c55321589a30955161f4d41db92166b7153d53694385142368003ec835c11d4445674f517d4810577a5c04a5a298759e07968efffdbcad20bb5869ce50a1d2f04edd1dd120b3fa168bfcb01cea0a0e927e02b5d1c4ce38a03c6fe351c5c6c931d9a56b525f2ffdf5920d002ddbb40760c1fef9cc33ff94f6c8176cfc1791c9c8f608dc139fc95080b0c1b5eda2ad49eb6cf8a4c979b4498279b52bfda55c31b3cdbcf6af04ba2f7d47e15210d078a079387eba47f3dede2da7e0aa0179a76cf41b0773bfae03eac8ef137b2d8f3115e536214b5dc3e9796703c291cf0f9dd6d911960b1651001246c8468a8a58a4228eb6f95a94900a02d9afb9dcd0d20d2fac115278f01b6bca4c1017e46e20bc496bf14b4787d4869d0b3c94c6ceb44be02ad994ebada1f9d71bcc3fc986ff0e24ac27f302002052152ee7344caed7eabe670d6ac122d7967178ebee31f88952c3444cfa39632c00000056fd7adbcefc2a175edf951ea9a4306c969c7c939da2c3db8fba28a4fb42803d1b9bae9361b6a868c49d269dda87814105b2565b0f62dc9e5b3477b981097a2fc0125027536811f91134c6b6362e2b43356c504f4f42408277a08a71d1474995473f86ecfcf35f0000000000079a27000000000040c667b82d8f08a518436a21f361c129621d0df90479b9622a49cd7d0d8531b2ad4a2d439554ab4f486786403a5ac9ed1b7d01ba60d41c9f4e0101f7ac52568cfd010020b08bb0638eccb6319b8e4ed1266ca98b93a9e374dcde8fd5053cf0ca56676c0100000156886fe8d9fa62cfcb9d499b1222fba461451b5ada442d8da55227eb360c87d5516c1ee9ac96cf0e3c6abeaae01c858c88a7f7b95dc2376a2e1f3cb9e664338e7a714dba49f5fb393d278d467c21328a4ce6600bf4c22fdfe72d5e8cb14935f450f8cd5573fe1093e0a2ea06000d32f56b1faf28a0aef15ba291e1b5cf6d1c44ab05e12a82d1493df30f364cb79dbac6b819a1c6b590fa8f4b86f502493f897b79ce5ccce72743f79900ffca27bd59c4dfb2c0c672d3fe0c662a7c9253016c8a1146a1d43b9bf3822880a33780327fe0c509dd1ce524dd40c44ca38cf16e6750b31c073f8589b2d0c4f881ee97c8f515f5979b14c52a30574e00d07217d1d9cfdf09995dfa579094152d4f95a1ab88d7c1c13cf445dedf13f7f2ad852dbe66fb79c13e1ac3efaee1525198ff2f72b3f29119c25cc771b89a0c66c34caa28bc3ec3a8a39ba75bd02ed620593d7d5c7a098ef231c1001259020020eb7c31fc9567081d4f32e2683b03066f4562c66f522b94143d005c4e5757e213000000569b4091d9550b946faaafdfbc6879fb1224a389593e0911bdee2813437c61c32079d4572c720354fc6d257e03164a4dc9f6eaa119801b5cc6044ff40bd09a73d7e86c465dfa258300cbf7d2bfbc256d5c24b3b0c1d0e093d642313a0d83e23dcb884c13da29620000000000079a2700000000004027ee7d8768ad4335db1c0c6be213a709479f3911579b4900e270f5f7fccc2516f61a110e67b2832200e0bdb8ae3e39079cc78ce33cc464a5691b76c7068acdfb010020b129d009eea61868e0b24d28e5d7602e9c43f144716dcad349efe3d4f282cf2200000156ccde24a5b84068dc777b4df4fb44337b020ee90baaa3b80cdd589517b67ee92f53d071869274675af70c6bc334c753341bf826cca4a8761989ff6049806003bc32bf0880514ea98cd09f069be3eba9cc6ee7e33163cec4a8723d9f8d2f3e5b34a38cb2061a2050b3cd384100d517ae511d861268f044b97e1e37701dbd4350ec385bf83d442da9c2293b316e1fdcda2e501fc3e94c4d45c57a4e2e67ef5a1b03cbf4fdb018fdab2cc82b68a95b0cb9d9c7952ac24d13b59565e42f8e11d09b7ad6175bcdcd45867e7b1fde9b33c7fb062a364cf803ed7d4b0ae241675ecca856551331ba15b2c07e42bbf019657b2fdc091e7dffb7a8bffaaa00df4e1c98cdb925d475395bff89ba98197fda32e8696906d3e74cde8be42b138f1da18a3181aadd65890630367b2e39e773c70a40c60d399b356076a3e8daecd6b31d238a294adb4ac68eccc4166589f9db17acbec3c7f51e4b4760110200202554e5634d0ef99f201c0aa82df410df1e26d52778d0dc285cfeda7f11d8db0400000056eca77bed491ac7f176489b8a0d39a1a56eabe9fb27966d131198d34ea98812f4a782a959557c6b36117d92577709c0654eda4219d886f66e2da7619e6d17931291b3367ab38d1bfa6ba6c1f84dfdd3e08c47d09a2631a097d4bed8251c60daf34389a41f65bc0000000000079a2700000000004080d932c88b89b40e4f904784e959752d47e7a549ab2bcbc4cd76e78f7cd975b510a14df99f89fa9d60f6dabd8a097ee0f8e86b9656dfa37cdb7b9f1237a0a57a0100208b04dd1363bf139d5ab8422cffbe7313c2368fa2ce1041383dc26a2acead8c3000000156b3f369436cbaa5298f89db1af55704cb59575ce23bfaf47bb235cc9144ef00c7c189137d1dfe30666d4756ad16652e5d013a2e99bcee40044688bec1dbae75cf3e8d028b4c15659196ad59088c6f3edf676b98364a8d407b4ca3bcb8945189eb1bca2fce9a7728cefe0703746577fd475b7a25df6a4bb63e7409739f1969d2be6065be5bd4d7589c5ec26ba27bae0f07517b8dc09c7fda92c2cf25a2851d2c36c70db6a0b831066318a590d1848579703a71cfb4d9af1867ed1831f1ac6aa88272e867de27aca6f7de319178342c7ac0999106a594ec140a9fbcea82d43a6204357430492e22212c22e07b3b73fd129f31a7f528519063b69377dad9ae9f9e75ac88d2a141832f3bf53fe46b7e39cefb3565bf9d91a2c25b97baf0a023580815f11a4f5dd88ab85cea028e9eed32634d18c8990591c131f80a6b138c9e6659a604ef671dc48ad8f4e6bca3a4e1a42587fc08bccee6ef0200200c6be01a6f7a2e5bcf723610efbfbe886641d2aa9ca72e8b059fa63be8f5ea3500000056ea6b1532518489d6d1bea7630043ff904995ee3ae3b09bf4ce2cc22db48d5818f523e4b6d670ce88a74f0b19f5b35f1538d066324c0a0db247d137df9e97cde4ae91c2bf6dc0e4fda014863ef04105905113ce2d6832a4dfb00f38a8dadf5810b4a2396110680000000000079a270000000000408d4959fb93bfd5b97a66633fbdddb88baf344896b2656d5c5a3a8adac229253fd8d0688fe20ebe18ef924b10622ab02ae8876469f827444313d5170cead030550100207e93a91402c8a41f3c731b90cad816ebb94f3fcea8ccc7d00fa097647168b37300000156d08ae6d9437f43a644323c993c6a1a2f6b2a5fffa162573ca99bfba1d11f557fb0beafa4fa63d260979f32af197f6b8faa94536b0322eca38728e19180db5c02ed76263a048d6af9969d61e475451b0f34fba6e4268d67b70d7a91e15fc26a65d6d5efa685f64f7d14f92df2b554650803f4cce43cf3c91a1b6b0b4dc7f9e4380be4e75903a12d39f5cdb2eedf664a342ce02c783ef313bc6f19dd1aac6ff1016a4a3f32d26fe48bdd9c23a1ee19a90cbf21c977a41bcac0094387743c718ef4688d570def1ec30835ff8136eba29eaf0bd3bdcda7a9c4ffc6d03a801c0eaed9acfcd59c58c12b0f8205acb3e28342e005ebbc072b2664f7474494f2090c0f751a9f9f04228a1149cfa80d8ff6a24e59b84ebde96360c714ee42fb1821b8b9ead2286b44e23940f00cecd0a2245990d9ab759d12a771ba82f19c1cc9eda0471b53bf0e9b2f6ae152bebecf5d8fa86cf0cce77f2ff2220200202cdbfab9ec96dac41308f3af06227cd8ae892264b863934c9836654f26845c3e000000560bfb782f53972257a6faefa8998f6c554551d19450814d1069b55e5387e635911452dd59ec71fe3132e23992beb639a768d1282d1be02ceca60e2181eb7421af1ada6a40578aa18ae838963d784afd51b754f0edd2ccb06a0cf2146107d50d9c28582dcbcc2b0000000000079a2700000000004045fb3b1c70bf8ba99afbcbc3d2615d33c82d1bf69948826776db5aaa680d9f0dffe586457cfd3487247d303d793d2c3bd71b979a20c9d43bd8ce951f1d11c024010020227ce9d2fe4c5956169cad7a0864b5a9b59eba18850750bc771c1e31587e4f4000000156698778989db456974bec6bfc5f2fda83f0004f1911c05226b7f3986bea6403d53f68db74a0392ef0b864f3b8fb29200d9d59e42a51b7aed4fad3c20b3e1733df80dc38feb8b0f085ebd16e098fecf47f9944770eb91486b5eeaaf5a5b38040b6cc3f67af85c7bb3c1a893650e5a979644deb6b2c775e0b4a37a6b5df9afe15b6b9c3783030b729193a10100c12c0ed74125e9ca2123422f085e8a5a9f4ceb3f98d41f4495795071237fbc1bc99f09c004037090e7e6fc84aff5497f5880829442fce5337988b6e4b1cc8b5938afc8fcca3e41f13121ad54decaa4d0bfbb8df3c3828a077320519719c1df6ceaad708433d41957aaa81faa89f0fffa974d2a90410fc2a93cfb0e842f70715426340cab6732bd89f4ebfb031c9b216c77eafb76c6c0dbbcea52a114038c8ad0a18a8ef2713e4d28c0869592ca59e866c9b45f14beef8bd24fc537842f3d322384ffbade896024313365f0200202e2616188674e3a15c741876657cfb8439572ed6bd2964a33a6ca6111e6e47440000005656eb5278ac8340cb1518a6d0bc49a326ee235b698e530116807133e3e5a5870e678f8bed0bbd93796ac2e7d244e2493cf1d115219064c6d817f34230d4bd8f4eab9735fe787a54316a3428559150a5750ae34e067be0b2a544f21c13daf8fc20ff46bfb391a80000000000079a27000000000040ad1b8e4c4dd8ceaefcec973342b4ce223d138cb6464023589eda0f01bd624cdbb6eca552d6fd816e11a4bd1e10bc8ba9a6cdbd1e4d4fe6005cf3397fa1b19700010020a1990b24b194c4a0c0fa419b9ef148e7ccd30347534dc3d52c8a0a8ef8fcf73100000156feb3e5942239aeaaa25c411b5bcb33de8c77cdeab6e6b21331bc9c968a107167138035e012459469450a7452bd88a75d58a0162defd619b35e92df0ccd744404f55509c0682516728011ee40f074c5b63942b514752c4ead38edbeeea3fd7f2ae5eec464366a2ce7f397d1e763e9e438fcb4ba5526081d4994b7487890ad13fd2168894618ea6e6a9aecf1cbbe2105cd31b2cce6637085873d14d2b4545dd192346e6f0058ab85f158f618d6dc3e8f24310f674ec7cdcf760d750accaa021f53b8989fabfc34213d5a5125174253bc8d587a975d88c3f61c7aa5a985547da1ae43ce6daad04f138eda09a992c74fb814651b738f405dddbf63249d99f5cd641911071cc6f3ab2263f6e71f6c8f20d202a74b5f39792897cc6c72d2d18dca6c75f6d0d5485542c2608420d0315af986a3758c9635161f0c3da43ff3118f1800c1037d26b7ad6f952c46c5f40a412ae6afb8b2a43d92180200209ec9ea0186673f5436b3f2003318f0901d8c5ac143116b49aae589414f225559000000562c9f8dc22576ad318b05574a679bd6fbf2e58f82e68bf391752f25cc5f08aae21985ae140ed3b46d801da5f545de427920b24709f2fc97acb017e6b439f481a95217d3a489db4f787c8c7ad22bdc12f48c6cf2e31314b3e7e49cdba98d62409aff4c8d03148b0000000000079a27000000000040d7973688dbaf5f371f05c119516487143b0fc17fe93989422de1c180635d81df1d856c052c45dfb66a66f31e7588515d760aec5245ad832672cb151155fa1cb80100200d31d875cbfcfdf2a3f932c2579334610958c24c379e33a0592005425099502a00000156e885cd0d81d8ffc34cb8641278e4e37f0e82ba32cb378c560093cc509407c78828e20bf90591ccd5307594a142e94ba2bd4eaf98afc3a3ddae79ddd7f8984ba8d02b07edac49af5b9e7402dd2a8fcb97500020867a508c810acfb6292df74d61adb7484520cdf5eeb2d1cd15b793162b1d92012a3e83a147cfe2e8fe0552ca00cb7171b996ca811abd0842c207533753fd662b5f461938544123cf92f759ec2ad64a4bd902d2ba44dcb5afc6fa71dc9a87dd177cba87c1a09b5bdf56795d69ea4a9db021cb5977169239762df39882f76b2941d076a8bca871bc51e1ac2cbb234f960e869a1a986dce09cf38fb42ab9e721050b6f7a54fcf7a09eab78dbee1e5b0a055db7801ec8f9965d8094c5b107f1b1afc98d76504825dccb45dc4cd05c249d991ceba57497362093a22e6d8368e5b4c973e83473a63c932ccf267b353704123018e262c2f6506acd51b82024835c7cd15e3934e020020904688d0fb5487cf2a6340b0f3ca6940fc737352097d907c80f8433a2234ff44000000568e3177221b229a50e360cfb4d998d61bfb1b28fa2d301c4e942479f35335f781253bc4e375ce0494fd1bd835ebb12ba6bd96a23609f4dbf8edca9e3ef88fd012f1370fe6087fa23382b0ecbaa6f7c5937b31fc3d6513bc71bed6629a1d97a90798cf363043b50000000000079a27000000000040c8b33602c3c1d7255b87d043dfbe60bfdb951da7fdc5c9692065d9c6c476b0b4e9de32c46a9c6344deafe5b055be330f5714d8dcd74e0e57c9dd7c9d25a050ce0100205879c7fc7edad4430479c68b1d9515cf55e17c35bf88a6a2219820ddd832884800000156185ce924f64d4ea65df4162a2104df0374899c155569d2585ff0fc9ef9e9c1722f3862e89692a01e28873863329a8588da7cbde5f52d57d4cc73187ec00aec174c5724a767061db459f1c338cc6764160e1837d6b34e09d32687bdcc11d0afc45629a35ce318f1e07a607b55d38696f83b1b64c79804bc3ab4e63ce721551e9cea04514808a421b0403224d31aabe975804204b540c89a29f0260a7d70a1e0bfa410c68547c9e0211da1062d8c7486c35a16521bd201394c66e3b1c08e7f663eb913f0f1ff9149166e1676b07bd13a3b3b3d728277381c719062cd64d341e77c11cdd837ae7dc9cc287fdc1b5becd25b854d08efebb409ed9cec3a4c79181268938bbbe37d3864a3330ed0fac50644bf4b46eb36d0bee26fca3dccd726696a85e1be26362dbb4c487f3cdf8982350ca116cf6cd8d19adb46bbf41a43be14ae9b97808540740f02dca29fa1a78722e468433c03133a78020020d5f7c6c27dbf383aceb392970cfc8ba6090de775390515bfd670a199d8365a6300000056ddc9e6b9aa45e04e7443f8b6a58752af60cf7359a555e4af93fca0051441722a7845d885be01a01fc4cfbb9bc5aef0dfd12941466f07535eebbcc291b65a3274b86449410bd0399de2cb3d1eb0ceb3441252355f0b67bc84e61f14f91189ce48c2f1d1c325f20000000000079a270000000000402f0cfb9aa85fcecfae06b03c7deccb4f9ad8c679db24a766ef690b1af60acccaa60a5b4cfc46ee3dd8fe398d902fd284282ccb8163ba5d9979356f0f1a544a200100209dc300b1949c2623d242634fa766e9fbe0a0f93eeffe82d2a22e8eed35fb940300000156a73e035b0f1cfef7eba095365872c81557f1b8d190c468e06f54a7d8f1ebfd8d23a7ca69a6822fca8caa728ff251d3a22b793213dccf44bf6747a14d96873d14c80ac60502dbc466e4f2c7c84b8f729eb6c1e674289615c7f32ea4f5b1b57c22e25f1a538fc2d9023c02b88ed7ff86f986c85fbf1d2f1ad7de8a37e463a4f41cbbdc0d08ca590e74b5b56a7c4562da1326fad79baf08557e4de1ea8a7afb20bbbff8542756e93ab4ac892119cd8f36fc576aadd9c2d7c20411108d40c753242835ad7ae1fdc22f147e72cdd213698f6dc56ce2f7057f3d644e5f6cf19b535339cf6f4f3f92c076d42a2c358b2490f535d88556731c7caa647489004594a414799091c0383a68eacc98c8425124bc93040b46da51b8b65a3a72489c29cf76691563ad91b589ed656b103d473e3782e3c861f0fff843916c012839f08ad4df70bb7043b4e21a48503bc65c570e1ef8ddb46caa6ddc0f680200201e495dd6c5884fb06ce5c34dcc433b7cd05678a1469a6432684c9f688af5265d0000005633bbc2e1e0912d16104f03e6e598b2cad4cbd082cf7d286ddfc1d3766c96cab39e42c0f028b23de9eac27dcc8d70788a91f1cf52d7546bed50264e887eb6a2c45b8e1f364e195bf8694c1cdea8f1cae318de4df84156c2cc955722cde6d311fe26ae6573c1b50000000000079a270000000000401033294b99585808e3da0165ff8124c029047b735d83fac5d6707e3a86bbbbad7d66cf69651260e2fb38e3c175209bfe28fee57bb79f934e1a9109bfb8f311750100209962b42b9992ea1c0f595353f2037bedaf543ef7587bcfb292293b2ee702b514000001562fb17cf6d498f00283b0e6ee5588526abd482340086850f500c804933f1ebd9d3bf7dbbf04f89d2f7b5eeffefc90f4c5ebea8b059ae9373639bac67bcc301b55eb0d57171ddd705eea495b134e754830bbf6d07ee90a3e61c3619a33c2f7e383c36fd6e52ffa2d82404090225db9aded7943fc3e940db6416d6609d45e5c7c77b8954dcb93c0639f12aa54d601015fe68c686a1a4b59358be4e3f45ca91275b9fb9cb9b7a6f171c83e0311c4e10093f6022e55ad0fbdf13de29ffc99ac191aecb2fb91454a95da91bd637e71ac0ae7ddf57745570b34a003a9e24c14d77de8f175bca953d24d7a2431d9c3988af419be8e38a28dd50acbffb69973d988500bbd76e306f24dc108a412489d009e66b958de6d759a3296a8f412824fab76d37d4e0597e6615e94526e925b06f426beb753fcc2f69355346bc2c4cf92d1766a08bc98531b1c8e4b9e9e66d43abcf8f9a206b3a4f47664970200201d8dffc9dba9b864bce704bbccd529d2205491ba8a31793243050c0ba9648464000000564fcc8e1f71e85aa756f5ef6211c51610aabc7c2e940c465b3ffd4ffaeffcb64c8bddc121359e76ebe47db04a6c7a96a329af0e3bf48c27d251eecdd4fa4b872b74c90458ce5ff8a77abf2b80fd47d1d45061c2307256c6d858d6dc0ebd2f19693f8e670bb3b40000000000079a27000000000040d324d5b57a2349e4097f5233ff698fd4a95916ea03556d97ef331915bac6418ce3ea6dae9df596b9c48e9892228f54a18194861c4619994e87834e92a98404040100209f596101108f3ded0ed79c0d899e929b5a9947b0a605357d3843ffca5ba3dc7000000156fd480b66a30af8a0e01c7bc77a85cc4ec0ab84409abb26aecb1d3ddfce986dafa996540e1589045e7546cde85d35cf6fdb67f093ea7d6410d4b4a68741518b3f983f9f13d7499cca2081c4a8d9698b9763ad6ff7cc5fab674c1b3ca12ca8e531201e092f1bb585bc9e2afe0284f90253ac796a20fef1cc70d5a78e25244ec5fb09018c2908774f625ee018668c292a0559a8ae458f49fbc288a88eb8b62b2d69ee0b5e340cf170fc4ec3275f106f673cf8fa3651ef508bc456d7f0707e0a58f0626243e3c2c79e2b8b5b96fcdf5be7a378751d77dd44154921479877bec2d23f521c81aa7b07c1aa428ff5baef0277cc62feb1647c420dac9fddaeb8852e9a44c6b64b72ebf805de140166b406a2a5b35e7fd0c85ba6b5eb5d9cf7482cf082cce7be5c673e93a030e6bcd946508f31974e03ad58159eff48301c6a592ae630725c4033e3b2a390bfaab945f054a0e604a5d3ede5a3e70200205dd1d29765b98ac8d271985303999f24c686c8a92aea16bf367ec5930897e132000000567269ed54111d70a71b30a610cb2cb9a2aa7ecdf757ac263519a6deab46ba2f82ea4925aa61f96de39a57d37c8480ae08403a683dd34e7356a02952ccbee420d3299673cf9f5b0dfb6be3fcb3b2f7c1fd74e79abbc05fc97b53c547181252b8550c44538d81900000000000079a27000000000040b7ade695646d98d45da82a0db511eeb6139257c67c19b6c1e65ffe41dbdbadb131d051b1f40c26089d653d5b6fe6efdaa6ad194289c7bc6b7d4e0d99ef3049b50100206fb5ad2402e72e237320aa933ec313372407a1678a9b130db50294013202124600000156a38d8147cfffda4aefd75cb0324a5d5abc968b17eca2e9e953f2c81366b33535baf78eb9567c1f29fb7620861b3e9c27c00bbef1ebbb662dcba888533a8645445a7754d24fdfb40174a233e3d12afba03f2930746e468d95cd97b2534ea494e9d8e806946a3aa2fd841aed250c5310972352168a6c61f5483b62e16dd1a8d60eb2d3c0311db362c117e38d4032d9ace35f1dc5a9a3b6cc177bb1be58440fca1a8b51e559f6d68795a4d05b721e5d826042ee45b6a4051697b1958eae2d357bad273ec8216a49152c1a923376c49286f185b2618d717db301d410661343c5a862c68c585f655d635f1215c60fe4fc0d568242f80f0dfc27bed631b0d10199e54c254c244cf7fb475bf7c385e08457decab7c3720318de4512b415a36b6cf155f90443e8bb3ddfbae197a128c914a1c7ddd5836691d8d1ecd4f83ed35984009207f6705c6556381a4ebfaed774ea8ea4044061bdd73314020020760d85befd3f7dd3d40ef30d2107ed7e52821320208a2e8c083e3c3bcd686821000000566f1c343e50d18566cc401b8f9fbc9e8d421c6fe7d494fa427dfd2c063a8215658c9df1ae2f53b7f3bb2cacc6adf2878bf83180ab4dcccba9583f30572ff2780cbd44741d246cb68265919b26464cef59fa8458be93cec99534675471ac0cb36b338ce540df9d0000000000079a270000000000400dc60a6717264780eca9aeeffd111a9606959877b559c4e50331ada133f2929345e4d46d492c2ab39e44966d5c985d17054db77753ae7b00c1819b89e62f395f0100202fc94ec5ef0ff2e537bda4679622c1772978285c08d20d3f663b95c2ced5a164000001569df47d6a433499f5794140d806d0c9b3c33951c63cb9650dd41d9376a93ff71537c6db8e48043d3ce4032e04f0a3631210a087af2d3c82c79df47319970b6aa2e408cc05d37a715f956387cf3dccfb1714c9fd5c6db51933768e667bd06edb5a17aff27172a55395f5073e48531949d85d0c1141c4f55b9c98fb3f0f52db5de7f99b481a9db844710af8273e6bae2dad6edd822fffdd3ec5f29724e6783376fb2dda3d338032ab90250d44f9a09ef9eb9f23090b8504e432131db3b599bc3a23c41aef6f3396dac3185e21a2eef7093a50b0ad4f195c699089450d4e35e98d515ed686bf08a6c9ff66a1d06a98f089603b0056f0fc09be9462285c865b3de65e63548fa3593f0bda1b3d3be4a83c2d5c74af53b14491f7d31d96d189049ee84594d99e16e5255c2bc608be43a14656dae08d61205aae7ecac175776303386b9fdd0f7a5f65109589eb9281012c27168a4ee32286729a020020c9dc5ddcb5455bf625822321f518233c1fc08443357e63400a638c05552d7f2c0000005689fde4510f0fde7fac9218a7d4138b68d00e8044884211c1b267ca0038564c7f08829a74bda7e983889c0a8082c61d0bd2b6f0c5e8bdf1a6a2b80f570017a7e5f5e1500390203551addc75305d1454caad0777018487cd322cabb22217e9dcb8265f00b6c3c90000000000079a27000000000040352d7f12508a4182d476659eba4fe3d6b02e80623710e9766b068e4f91d5af7aebb5657ed404b6e3e05f8f2167b59bd1a3dbd88b096b852828ddc299686392ac010020018134a100f5c41fc3db52d1ea6afd94d9323f79ce2ff4a04be7b70b1c7b1d320000015653b42055787ff499a768a6d3e635977451bc53eed9ce2a8945854a4795b9c4a2353ba89177b09a30b6203611c6dbd42fdd38a1d4efcf5f8686c61a0731f6c80f5c241e4c39b6ba73a5409e54aaeb5ead446b9436f6e002a9622636bad7c485f908bbae9906db8ca12a1e4f78258e5e1e9f90a86212b9618028bde6774070a2cbcdbb2dc1b99aa89b598457443e6532b08cc5abd147e010ff1048ae0d5342c978aa94ea22504d14a0013035a7afca150eeb7076fbab3efa600694601c63f58ca0d96cfddeb1c3282e7e8ea3fbbf79036e63846e9f92a2c659e4112d4e8824d2aca6a321828ec1268b21ca090d0f194d08fad891d4ba12a3263ffc44a2d94dac22a9253c81400027702bf04b3c7acd4b5d9a1af98a3c39463fcef34c24e284a50617070f745ce53a5adc24d700119be0cb7ef2f09ccd65ee53ac10b6a0b8cfb5610a1f90195b43a5c1e17e5ef5c7ae9b18fad117fa61db020020c43576413780f3e9e335eb91482b09aa4905c9bde49e44973bf7afe06781ce48000000566808fe1a5a5837240682fd147af8fc72e79662fd1a7f6f4fbbfc3c676a3881379a84c549481d5e42d190e0dbd024992092d2b195ee1c63d0d0a9b78cce87fc9323a1e7eb3a943e6f3a29b725b734511dd6840a6301c4de28b8ccbf00ae807aee3f0cb60e62fc0000000000079a2700000000004042febe4c3f98bd7bdbe58b06502e135c58523d9f8425e6c84dd2a75c2fb5347cd93e2a364410f2579719ead5cd810afc9d2a5a8836344fa2900918598358b160010020986e2f5d7bbcb54b6bfb594acac1eeb861666fc953226b6c5f104b621966a91e0000015608ac19bab22342aa61e52b53c21cf791a5be5edf37f16664f650b703eb29bc90abe34ee35987f32c1f324bb66ef7b1e4b8bcc6bb4564b2370ae3584087026c730f1c9632c14ef12d5b4c8807ac6fa1add143a0edd40284cec6b2e007c29795b2deda9f6773b3f9d93c4b12625945ab69d056b319f84ad980493be1dc17dafa42d2ea34ff509a2a1cddc2466c8e7f0d61e8fb6fcd0eb63b4ccea932a8ae62487b95cd1e203e8d957ced369269bcf0edcc07979dd9b20198bfb8e1e6d2e6627420b50645140832f05fbcaee0b079a87023172d5b912d8feb0acb8f71a9264c4b4c8c719598d3d9bf7889b3591b3fc6ad40242b2f756b29ed1f017d65a397dfa206ed2802f58a958917747fdf26e4a9cf27d3930ea0ccb36eeb19a992d94f3feb093d497620744a0a967c935541e15d5c3c71017f63f070a036eeb8d8db27edd90b8c0bd1236f20a2b167e863675b4fdd0cd4da728280d5020020ceaa4c80525c0496a506648a32fd49f8d6ebfae61a3e5b144f38ffa3fa01716b000000566e7b82fad7c5d14e072ed946c82a3dfe217bffc3a6483f8baed7e10a36d3350f4d50a100d7170ae5d42ea77c8eb182d8588fade25310c8ac7022e11784d5808a7747f07a6318a0985857dd5e3838ab3a624571ae65ebe986c5851b2dee23d6ba9fb7d736ea2d0000000000079a27000000000040086dbb83a727625534d839454327390fa3b21f39056c1cc05f34290fbe3022136bbb00efda87b3d50d3f0e3a53bfc5a1f34cdf63b8f6585224978883c0eaa80401002020d2a88d84880762bc9da7eae991269efbce283e710b9fd2619da8dee1f5582c000001563daddf8240c9d178e7b4b4f195850d668af4e3ab22223282f300b3ee94de9ad0a1a409061fff48eceba7a88f23a6cb868767e1fb046ca5ef047c9a07202cf7a77458ac431d96d8e55b0607267d14aa30a41fe5da390d560c9b3021ceb563b8fc34cfea708cedd487fe1ce614794dacd8dd41b3c69714c18d7794c12b7b6ee91773c79e5ded7ea50acf8b5446aba04ffd8f41dac1ef55867aace9d121b65b090736f3d8f431aaadb17811c278454c55fc605edc03685eb0730fdb3a497dcdf04477080ec2c3c6a1fe0ba6f03a31f939f201ca0994a239798e2cc2377adef059809eebb55b14a6adec1e9b2d23b362b987e1d52f37341e31d6a3297aecf9ecacffef31a673a8c9389f80a868bee5610ed54ec7ac6972741722e19c959f6c83e80dcedc82a720ccd3491f4003dd770027977af608a0becc03d7aa932baee0184d68d39309e78c34a0cd1fb6be9c94ee71de9a06756e4c77020020a503aca8aee75640c966f072ecc757c156978bf3c859b13e025594dcff7a917c0000005695cbbee38f29efa37afd36ed5239efc352506e13376059dae2efebdc2d0e1d910b19f8f14da816006346d6dc2b4d215f1b273933f2110fe9e6e894304eb9748f4292fb6a9faea61f7d2a8e175e85a29f8a17bc7f7d72f595d1f38e86a5f84959af25109010200000000000079a27000000000040e067c8e47dd0d770f8c8f0fbb2cb6c3ade8eb4e8669863179aa2afbb191571ab0d7b821dfcd6268357ff3a8c7b9ee3ea9cc3d2f0c4036c4ca632b4297c77852d010020873261f8e8d8f159fb408773df6663732ea3a2c697ef3fa28da6bc358454ec62000001567a777582e73600302e6d19a8fd7fee7f61a516241da09c751b836d2824982a8a82a98528f4cf7526a20bddab9012a224b29265188b6fc9f6a00fb0c64e13f06e4bb33d337c103b9ad1246eccd5d9be61f2f34dec52da0bfbd14f7787f66972bd41fc3d61253a4489fea9d8661c2a0db3dad1a651012ba72fd6bcaa6e25d59ff592546948e2a5c4aae1cdb551471db79d047656786ed4694c4e0b7536ad5c4331e850c04977ea5db9f69d45d4d795ef9845197d655d9419492ea2b40e9070540156e75a6498c439e3d24a3275d8890327e6fbccc4fbd59f305b001b9ff8d40345078d78a99b8cd9aeb5b68d6a40db0500dd174f3e72eb2538e1982a3003fc285ac8c0771e60230ee1ad6ea988c85c4ed62366c3f9540db2802f4bb22b2aa8cd60c79d659e1c4b563b9bbd375b735e5d4279655e479603cecefc72622eda6542d9616b83e9c91e7306402039eb055b4950130bae00d9f90200206966ebb50820330931dc84579def36ef78e4e80bc3df5343a32dee737add305f000000564f26b1009ca1d2ad1442f726c4554774ab51b1709de31d542327ac3054804b16c6c5e66d273318a99ac0b5bcf55aedd2a528842dc4788d39a51c379e5cb8900ac0c1984e17001bfecadedd5a3bf00de2b62e974e7da5f9aac9a7a202960b99e1024ec492f3e30000000000079a270000000000405e256459a2aa48efb6fab569c0dfe50275bd2ace3daf8292f196d4359d08adff8dae379cdfed6f9f572794938b66c9a05b4fef658d61f29b10cb112b80371d0e010020d19c05ea1826de4f898111a0deb8ca223e6a1977066f90fa88289d01f39037560000015605a01c975236988ee0695270d1ad300668f4d149f21ef8d7b1bbbc17cd26b876a4144b86098731978f5e293f86e62b8b093ddf7d2949074ff631e843fb6d692a08202decd45ea5c0cba33bf01eab60363a99d99473503c2ae583115bdee81ac7f941002174b2c6763a779542963eef442caf67a0cfce4fcc6f935d59948cd9818b45069f2422700383c12bd8ce5dd7b1507d1c9438d7359ae3348ae4d36e1977eaa6271dfaded7759765ee5515a75af2a783005fca9d93c8ae2bb387aa6ca78de85f4fc26930ff673a469dd54dedf3f34fc6d3ac996fa6072d309ae72c2fbf8161ac3907bc8aefbafa55c67edac885ae83dee7f1365ca8d106f87faf94b8a072c9f5be0720039eb62e74e9e6372ca40924aec0981604dce83fcb3e6bc17958001fd6f9775ffba174149ceef0de73b068e107eab81069f40ecb55afa63d2ab42bee57b653306d9681bc9a26544bdd3ad4826e40e322ff0200203ca65b1c8f7a73e872c2a5b8eae0cea98b8ba5f00dfad7b7f3b265f3b422a360000000564f39f8f548d44535502b0f132e1d7c14d3160f5a5cb5868371f405c6befaad5bdd04506682b3d3bc6c1ae37321c0aa941998159fd6c8d68a0aa5512fb47740a40ae5425d59b4b859920ec994bc87729ba0a989561732fbdae428355edfb06ecdfa13fb55d3730000000000079a270000000000402cc16c878f09c0f50a8889a94595ec3f95d4cce59d332fff4265830d84e923e6f41c0da1ec196be9c4f5d71bdf95ced996f191a28b2c02fb0ac973108025bc56010020ffdb50d9a857f57220a8a9a1676a091c31b0e8e0778750a1fb77d8cc5b1a501600000156151888df804ebba6a1968669d1bf68b464f0055386d0e3363818291c45f96dd8f5937203cd464086ba4efbdf9ac273833a765904ce085e02955754d10de23428e361c3f1250408790d29299ab2e22c578dfa10090cf4e7b6c4778f3afd5c2c550b3436c35c33d11e812cf08473b9eca451a94543bbdbf42f2732e37a4bae6c3792693bfcad95c82cb3a0eec0937be0db90bfde6efa621b485cbe425c54eb49a64387a04d60b3f81d8e5064ee1949a3048ccfd1cfdc36160a84144a5280022a68d675d8b42d7ae5d5a2daccabe7725dd726c97de2731bb3f9368b010801f0f1ab63075ad8bb914fbc3453d971edf49055ad487828250100b39893e9fe95f4bf52a49d82353a8e638d2ff92291e5331382c8a1d0b7a50b83d1c3dd270dd73f2d3029e584921ddfd0fe2b2f4fbe5d90c86f47a8934df3864334976913481d4fdfeef04bab0f9b99455e42bb17dc4f1b549741c201f270e9020020e36bc91d0a7563d15f886b60dde4f87b5cc5906d6dc0a7f713e3fda4bae9f60d00000056bab217019f2891afd0df0327e814c6c55a37b83438152b42877937535851e95f923b8fd22945351b849e95ee251696a6bd0d22db15c2e6c61e927cba762e978202ca0b7297135a190806e1632a4be54930e8299c5969ff712f20dac5a623381907ddb04611ad0000000000079a27000000000040d3dd7878a7ff878dd5128b00e51c8e6af2ee67c9fa5f05aab8e60ca403828aa770ca61f41ac883933d3f4158cd7ba1c1478908598dd6e952e6f4e30d5f79c9df01002090bcce59e977cbb572297870ac6043a5ec20a12d43c746e003c147c3fbca5a2d00000156f8853754bacc9d77c27db85f8d407b335b30de84d1c3a955e6fed3397c8e7ce300c5d5b36bcc4109ef8285c72400524adde6b3de83042e0ba9bc5ed45036d20009547e31a6c844483ad223d3f068e4ec411c637355e4d3942f450076e3bd143a93dffbc08e4c1147c89892af3d29fd57f6d1cfac45966d4325f7d9c587dae731f9f0eaecf8d84f06720e78a1eaa1cbc3ffe3ea171226d76f70531f02234a6793440ffc09d35bb0270d5b2fbf53c87c32725a6c622f449f803b1bcb0a38c7c0666c80b8e7c7a26135429a377ec6634414e0c432f10e34abe493d6222e628029039105dfe4cfb36e242a47f97c0f19b4f4001afe6dfb9457b994da490d8276d55a96016f7ecdbf16b106a3c155e6ba5ae4b8ef8bf8e87473bbd07345127a03536be62aeeaa41e1a6deccb72c294cb9a81d8967aff5dc2affc8e51026bb458638cc3aedcad66a4bfb310f486e6441079692c4dddc21a082020020f13042f7388e3f3131c58ef2286121fbfcb541dc7983e698c6b83070486a5a0d0000005632b1e1d4eaedacf9fd9b4875357d27bfe14b12390c58faefd79ffd182e74e102fb810ad9d92a427ae57308718d410b7c34ab10e46c2dc7bc52652b8d875fa8b66753d019bb73160342de8ec8db0af58f5ed2b1d315cd", + "response": "", + "errors": [] + }, + { + "step": "aggregate", + "init_req": "000000000000000494926a11eca3c2e65ca9ba212cf7520000000000079a2700000000004090006cf6fefa3e7e1b04260f5036a6a0cca66f878cc2b4a339c9f07662d5751bfb6da4538d49836a050939779e82a093886dfb55dff840250fa3bc582dd35609020020cfecc0b65c136f1f17123ac01f10e5f3dc2b2c9f4f236371e613e5e15851f601000000561d29ef7f4f2be45cb1d0057d6e1dd4721ad4c8a7d703fdf591c32a7933f3e8c8b478296ba44ee4a3f33f1c1c423c7f36a624d4772c4086ba1249cd6207cae25732d96cdbf8c42521b607baee654d6439e2e9d256bf6f000000a500000000a0c169cad341b7642844fcdc59be8dbbc67ecb21642c2652607fb03c6dbc0e9db83eae666f44cb2bd8eff6d5ba23f1b9bb1c30c9e84092714e7757069329b2cdba2579350f1ef87828a8cab5dc31a64eae87e38a40f9f0ab33ea54730a243e6ce14bae3bcdd511d588f16ef43486201678acda5c0b047ba1fc9370e113a9a17f7a90006cf6fefa3e7e1b04260f5036a6a0cca66f878cc2b4a339c9f07662d5751b079d42d1a3bd81d7c966053abc928c0b0000000000079a27000000000040196e46e3acc786fd0425385489a1c15483bd4f687554659224ef3648d212a728c052246b9918ab8aa058f67d55fe2a66f2cc50d277c317c47c7972f766508a7f020020472510944e52b996d509af089472fd0abeac8459b89a69d326f31f423fa6bb7c000000568084f7da7dd97be5bd1c4ca0025ddc001e28dc9a17997b1516310c81ac8740b829a5fd3c50692034b8b01260f4089a0f1975dd878a6b0d3252272b06402ad60e53c53f478242306cdb8be0a94327eb85c658fe33ce06000000a500000000a0999d07c54c0ac8ace13bc8bcb00fdf4368d6ce5dae3ab4184730fa4e1499c61fc5389ac44f2e2f9633a1e881c6c996ff8f1126dc6af7a0e3aa03ca9baae22f51f94dd74650fd836fd4b78f65a653a19533f120e1f5f93ad470bb52579ea379bebaa090189ca92d5c02e3bfe7b285c8b295763634d16c470f6e3df55b5936f93a196e46e3acc786fd0425385489a1c15483bd4f687554659224ef3648d212a72809387d47e064e41df08cf294870a6eeb0000000000079a27000000000040d3ee2f2416e3a86860c4f7d53080132eff9067242d41c37a4aefb8779ba1efb6df95c09ce3a41f7c3f3c5d7f715ed5b85bf8849f5ec9210c5ba8c0c46b3ab7a10200207f57ed7f54244e173abc796d696561babe02331d6f34196a6b0a85c63e5d307d0000005615e48de77b7c3b08f6544018572c99cd9b4599090aa5144db996eaddec7693999b68f6fb5c27bf3595875a652618dc09d73e0ce9c5801b1cca37eff4ef10479cb1a899d577bc3949ee9786c98dac97ba5a5be6eca1f8000000a500000000a04ae3ffd4de4b1886aafc307ca4e7390d2bb132afb4fbb2e6b1bb25045c20a3175467e3f757f89e913c04c9c9bcfe1b2d8faf82a82332b1fbf9df9333c4a18788ad47c48368a855b67e0f33a24eff02a057e01d703c636646e3ee2c953e923c79749996395ff860f912ce913cffe5d9d24ed5d5cd87389804371eb52bf8fb95eed3ee2f2416e3a86860c4f7d53080132eff9067242d41c37a4aefb8779ba1efb60c59a860e6edeec76c64aca0f720e6b20000000000079a2700000000004057e2fe3dad95b83fdbaf6deb00e8a89ba6eddbf58139e46b1d19d543e95e27bd888b5864faf0685a7d31ec7650306b94c90532ca73c80f361a5b99ea706535b70200209ec986b96c793722a1dbd6998e1fd9ab23b2966011b0824ad524e7ea3ee5031300000056b0602b49d9d1aa019746cb0206f164868f8ebc6b7ac1678fed194e2d087c266705f8451db4341b11c5fc6043e9a8f734f1734ee4b12957e729c8f2871bb2d049745299b7a1471e8c3c8f44a4edd93f0910aa6a5c5416000000a500000000a0f7b60710ba57956940161e6e677cc04b6f98be52c7e69826ca3e804df6cd846beadc0ea0a820431bd1fd7fa6c1cd47333030098d0e198970120be72035340169bcddda3ee5878ae35e0e1d738bc96447916eec751ad60a505f02bf36f1c22ded5191fb57adf6e7e6f2fb66f6a67800256fb4c8613afe57f981e3f8ffa948ff6457e2fe3dad95b83fdbaf6deb00e8a89ba6eddbf58139e46b1d19d543e95e27bd108aff34f526bad2844c14096550f2a10000000000079a270000000000406777f887a29a1ab2e4790f624cd68bb0316f20c5076a16a1efe775f899e189e2d20b38a168e010c42356eb316a515bf02bdbcd3e2d406f6f08f857e55258780d020020129e46e2f293c2a2268e6cedab72ee20b7917828bd7aee66f2c2671365362d7400000056dce5505e40361a54cdecd874adc620093b8b025bff17230990f3edb62912b5ba93b0b9132ab7060a69a8e1ecc86663ed76322435f684f3867f7367e367a890bc6df6945c2aabbd7950771162fd07f7a10b5d920d3221000000a500000000a00b92df49c952618528ca810b23ff439ba93b1a22e5b0f0ff3fc7681491f73c2b5c85ca3d760094ea6f5d5d270b78839e44c07d7a3187b196d702fdeeff05c14611de823d3c6094dea59e9e080064fdb90ca9975bf695f2b779ba04770902cdec6425ae3bc766588ec1089a279e58c46a0c21a3039c0bc14a0b6940659fecd35c6777f887a29a1ab2e4790f624cd68bb0316f20c5076a16a1efe775f899e189e2112a88a90828daa218610a62f8249f790000000000079a27000000000040063c2a51c0e2dc0e3f818bc6f6b43f1abed32da2b950051a1bf60b58f7a746c38624a90a4391868f034d2681a92a0842973b2493f4a7f49a51222c9a98ebe8bd020020c0c3a7c2d7bc00a91b8ac7f3ff7a6a011d0e950df890e3dd0a460f8d30625f5600000056bbbdadf416b08fc8709c017e4c906b83ff99001de96a32429eeb06d2fcd77fdc54418ff6be9098a58d8e4c62862fd55188eb3cdc1d027fc2cf45238ad4cf0a4ecd829b02d9cdd02d6c95d499edb18d321a81c371da6e000000a500000000a0083c3150ea1a9fd388c5db83e047baa7a6186cb9ca7943d3cc82e79ac3186455ccf6fdf2f44ac6094631fca54e504a2fc2fd6f5f1a5eb706edd1cad8138cf246bf5e18fa64231742fe70728cec9ab093d97b06ed2741cfaaa3f8daebc1dfb7cbb04dd029c37c2c5e49dc93c2cdbe8a6d0111307fbad1f4c6b17e3408beedd692063c2a51c0e2dc0e3f818bc6f6b43f1abed32da2b950051a1bf60b58f7a746c31fe365979986700f7d8bf8acffb975f80000000000079a27000000000040ca4d42101029732e3b7f45131a4af5a302301cf02fc6a54d8d7165705cd9a23445d06a4774c5701f64c908535a95f6e3b8aa753a9a1590aedc2c9cd656adcdfa02002048a5df2ab90cc117fe669b3488a82cfd8afe5e12a1ef6e9969b33abea622065100000056cb4ea8db746e6508fb2e1196b337fb9fc3f95c540c673b2d486a234c4cb6a50baac8fac13897055c620a3edf641512bdb6be313b4bbaaac4ca5db97ff2af2f059623018a48e752fc1b414547f82d5e2b1d0d24116048000000a500000000a05692ffd0f3f1ac89f76470897b4781c2e1b71739b97c5ddd4bf482238910d038b5fb885e3953ccbf50467ec9f6bfb22a52595c885b31f1ffcaf66e28cc926a4550ecaa5aa84f99a3eda655986cdf5275835cfd9213fcdd4e0a9419181e6aaad3be9aecf67b0d72d019ca63ab2731acbca67c99b1a28efbd143c65fede03fde7eca4d42101029732e3b7f45131a4af5a302301cf02fc6a54d8d7165705cd9a23420bbda745d256a1d405501a4037dd1570000000000079a27000000000040475d0a8b98b93734516292f10676ffcb7b808258342bee11c066b74994af53516f180d6caed2fc8d9b02ef50edd52c4255dea30417180942c188b397c517dba1020020d9df35dd4af7b031ddc645c7d19201b783de78cef909a8a91f743813d2419b6300000056b5b9fb27d84f6f68c841aaac21d1b0d31e2528f499ddb852ea67bc01d5ff34b0e98879db17cf06109bb4e5d64019b77005dd14e529bfc1c1e37ebfcd076ad71b9a757cb6273a01f8a48cb91d1c27e8de2a21aa798b2c000000a500000000a05c31f7a8e772e4a90fc38679553cbf2097469225108a4a2b75e5f9baf0a773905a45691af66c480fd318cbffe428a62a3e91af2d0f54126e9a7e26cadbe298d96ec9379eca58a339258cccc966bd5a2d10f598fecdcb1cc5f6e56ff4995c27cade61d17781006960af879d29411b223fcf09c6f5fcb72aea489f413b6a4cb99d475d0a8b98b93734516292f10676ffcb7b808258342bee11c066b74994af53512a21baf219ffc7779ddad5b30f131d1c0000000000079a270000000000407447ae6f142046d5efc4a15b8851949f044322ab4578275647157c7201e5987a8f7af0bc66a7f501ad44f7391b2ecb16322f752f5cb50bcac60bc5069a52ee7a020020ccdd364666847158408efc17e10d8dab421194156227b408769620477d3e495f000000562b7f6962d1ee8de885cdc65cb791e25d831a8c91d0f33b690734bb2c992f9413407777f3c792e225cf2d8986ca4b66509a223a46ccd004334f96f705a5044ae513e8686cf344dd0f19150cb846dc4f067aac11866ef5000000a500000000a0113b0c3a84b0c9bbf3a8dd0ae3ae4695e9274c369556ef06420c16221a652cf336ffebc60e2fb0e40fcc6d6fcfd97d44565b16f05ff4b91f91727585b79ef5408049930de3d02ecc4069523cc8694cae72949092816b1f6acb74c2b6b94222414449e388ebc828a5b7e1888cb8cd45f4d73b01631ed0a65b4b8bdaf363df533e7447ae6f142046d5efc4a15b8851949f044322ab4578275647157c7201e5987a2be7e94e0d0d9417810a84edda3ee2ff0000000000079a270000000000403cb608ec6566d88f26cc8d613fe035d568b33394a8227c7351109fff481c776446dd2b48f9f0b0d675211acf1cea0e7b80d582062fd392c91ce1a492aec6fc5a020020b7239ef01293b914f222ea2d0e2a6d47c03f90492e25749e6cc4e0ae1a8fb15a0000005607ea8f13863fac1a09a5cdf09588577b9dc210461be032c4fa48cf44deb61576c1b12d5f0aa0b7a58c6c1bef31378cd1120071bcb294229546b0d932fa1d36bd1c379a738d04c4ea07deddb416fc3bf9058761d422fe000000a500000000a01356f2d884802c53eefe337bfa5a0aed35f03a0a9636bcdea8a8213315f9de929fe3c76339cb4cf0da2cb1d2d81de6ac84b7574b93a2dc36543f848a763fa4e9d0256bb39b496730f027f4264849a43e65b67b7704f565989234ed0e6802d086dfdf988f52ac81694c58060651a52c95d4bb3f58ab05183fa7a9741a8255f6f03cb608ec6566d88f26cc8d613fe035d568b33394a8227c7351109fff481c77642d6d38eebe08cdd66b41363051b9d2030000000000079a270000000000401880090baba1afc87002442904a846450d528b5d0619b5751409cc67f5b2d9a483cdb6d29d5ce9b930f3a6cee41f712e0c5669164161ebb7c6b845c20b300a30020020a4cd75bcb582372d27c84b57ccf05fe435b512d11ba9d82b200e447b039e894e00000056925605cdcbf3621f3cef3fdc37735239380961918839bdaea8827ac699a378407decfa0078018285dfba88100db211684d71a87e312eb70f35085dc57531ea918a3912833d194374404c447a119c0cc51a27657674e7000000a500000000a0270cef7b2857e0cfc8b4ccac0e157eeddcf2c6d747551edcdfc3d6a142c46d28e9edd68b8248879992d842d981115ac83cdadf6b95317a62cd0307709b6a493093d4e26865d01847db47024bea6b961677a3695e7df0b8de932b0927291fdbda3bd27c55fe0ec22f8902e100516304435fa6ea65b3992bd39fcd4e874e1c4d8c1880090baba1afc87002442904a846450d528b5d0619b5751409cc67f5b2d9a4350d8e8e1e94d97605e3188a82e485c20000000000079a27000000000040f950952a0abd46206cf795ac4c16f9cd62d21f4c74d9265fecf1d53f50fb2fc2f7644f7af865e9e3016b469b7bbc806ad506bc1325f8a79bddd6f412776fd47d020020c25105e677e35a412f119a7ca3cd9bd50a3a2fc0eb26775bb0c2fc77e168396300000056e508a850158507567b2531766dbbf9772ac7ce14fcfd12154b9256c01039400a3b633553d3ba8d74b38807051ef3ff09f9f68498b970e097580a70a72e3509270b4b02e6ab49a7e6b72b3ebe5b16274a0b694b74e434000000a500000000a03af3d67c393783e7ae53c9ef327abd827cdc44fa4f0f3b5847f6a59367161dec519561ce8a6bbbc7ee1cbbe2c43203dc7b9367619be58e96ffdfce60bed730a6d4cdcad313c8d36985fb1edcbaca1149aa7a8ab286687ea2ca070e4277e609b4ac187ea00318824d857e0f18726b8e35125a6b687bdb61ba16ced737d501f3b9f950952a0abd46206cf795ac4c16f9cd62d21f4c74d9265fecf1d53f50fb2fc2374dce7e4c8c23da84c5cb398aaebc750000000000079a270000000000402a5afb1d33c8d4363ca5b1ae3b2fe9c03ef5e116af91397544e5953789c322654603a13ad5d34859907f2cc02394a5f202c454bd360c4e6032a94d13645b73640200200c4745854ccd694438f3919304836906217911c014e73169c52e1998678db877000000562e6bb8bcf00641ddc118f58a46997acbaa3097c2fdd37ba5ece95218386604cdec4f014911d0456323d60b225abb05cf8667b8c371e9a4d5144c2b0b68ad98d45828853138ae1487cdb74a653e410d7178d1307dcf71000000a500000000a0d5cfb6d56bf2992120a57e40991d670e957b2e5bead91c74e7bf1cf9368f8f36102a6ae2c4f52e99fe72c7b14c7048edcc1dbb50af83b84d543fecc7e1acd6e20c7f7d16e34de663f925c23e5889fe9da34f8b66a8e4b9424a21befe818b78b9a984f984867fe3e3b3517bd2b2db12e1318d963f1f9c0fdf222a4c790038d3422a5afb1d33c8d4363ca5b1ae3b2fe9c03ef5e116af91397544e5953789c32265392fee2b2044ab31e76f56048f525f1a0000000000079a270000000000400771416495d7aa62cd0fe703d505454b987fa9b0ed3c2d0569054d1f0bb699935eac357b53b4608f375810f1cc8a6d7ff8bcf76c0105494d2a8f2db332314c26020020c6e45e01f62dc3e688d8334190326aa8d6776f6733c5d3828122e80b2095d57900000056d013e3d789dde7788457662e8bd5c2ca0cd405e110797ed0b51dd92dc86f3b8ff5102f066ed2f0509431884ed97077a0f8c9e4da9881ac492edbe24a53baf9e9c30feda8d1b50ade5b678b7360f4203b92c26104394e000000a500000000a011038de16e2d8fe73b4fdb585a9c6ba86355039186b40809ba7251cee3a10ade4d97dd2f7ebe1976eb54a72cdb07e7a81983df9027e8ccf2dabff318124aaee98253a6c89d1c254d71ab8a3ef56878e1d012806602d486cb56cc0524272ef13e1caaa9a2478901baa4c96785706a35b536801646b75d2fc89350ed627f0ae1640771416495d7aa62cd0fe703d505454b987fa9b0ed3c2d0569054d1f0bb699933a45f646f0d4d4074751ba94a64fd1230000000000079a27000000000040a6be6f610ddf2c56ddd4aa3814bfdda5757701ad3d345603dabaf8301e79431c01bcfa87684699d2fedc3ced0738923858ec2cbb1784c64e9d8c948483798cc20200205262b261a965a6433aca86aceb12e5005fe3875f364a171b60064127d72f261c00000056583dc6f1d5efe07f127d549ce0666fc7176ea8c636b3b818953b73e4534f6723c012dbaa649e70e7e436f0eb910cc7c25ea4d38ec2c4f2a942549a494105c6219e99fd4ceacdbf1a24e699da59737f19e501627b2b00000000a500000000a030375f2f9671dfb83395b1731df3b39313d9fce661bb76c1aedb4c53965c35c3ee28195af9b5342260e835ffb690a00ac17941aecd02843a1ceb230e3be5db9a1aea3ee003355969bffa2f9b57cb4d3694a521284e3934cacbe333b3681500ed789a7a8c6f292bcde85a4cb4844e513ed1acabbc53818b58e3b3d259eedf58dca6be6f610ddf2c56ddd4aa3814bfdda5757701ad3d345603dabaf8301e79431c42228e96d3d82c50d6477228c44b0ad70000000000079a27000000000040a9ef5726379fddd7899b4d44c18848cc51d2fdc3c3216aef1ed61f4faed8d82b9e23108f625d3e89a83f71fe5bf2310dbfc429211ed8d64a899a1a532266233702002043fe2c3385cbabfeaaadb8aefb1a38cd04ac949e26d3b3fffd83fe289e523146000000561f73b4fc0c21d941b41fab6c36ff56d5bafa19c6652155daffdb08e40d7eef950faf1be2ebab786c6f1aeae563e789d7da06a969c6b762a19cb29aa32090870c437285ff9de65e99b24ca5570e521e8fa923c10eae37000000a500000000a094b71d856dd6ffbf2a50b0abfdef12f516d7299ead0f5dd4ce193f7185e01590d146d0d84d973a03de64af7247b7593f42e3b40453976f4f4692be0d298e904c6f2f02971fec482a85f7f1dfe956c1cc7eea65945dbad62dd82c66163d381314d0c22b722686be9f29bb325f7891a3e5b6145822c679e75c60ff7904c1f4580ea9ef5726379fddd7899b4d44c18848cc51d2fdc3c3216aef1ed61f4faed8d82b47a74d0cc30f614c473d865a396258e70000000000079a27000000000040d0e6da146985c0d0794baa7095c2f0d36618cddd5a09c888e75ada4c87808ef8c52f0a6e246dfdd42bc91c719e74b87215a155722ebd6df0e97e3ef88d0b3f350200201c8619f96c0c8c6adb2042fde48d5b280e91759c8c8ec343e2d1c95809c4bc6f000000562ba8903e516313f782c8d9e920b66d5160729c41aa225af2edc0cf8655cd0ddf3e8c01f380692c4112576329dcbc4b97dbda636454ec4b80775967b57fbe5fa6c019749cf6200aa9a255f2fd7b9b7588f53d5d9748b4000000a500000000a0d59b8dff412ee418310509eceae5f3d6c5c40385c5ee13ba2da044601f8acc86df1124c6570a1e789cd99ae7df4ba0f8b311da922f07cfb821932c7f1f8d08ae0bcacffa492d121b762c79d7ebd7a0ada4f2899e90209cd434b060b99760bb909d24d80345dc26eb3875fef832c0b322d3a649b7b9bbf26100e3a67d5adc2b38d0e6da146985c0d0794baa7095c2f0d36618cddd5a09c888e75ada4c87808ef84ca3b9ed8da9e09ebd615cc1a52dc76f0000000000079a2700000000004004d8ad14f87134f5aac4becc64f73610b78e06210dd8a344087dfc151e7132791c3d5dfd4589899e4dc27b4ae4752737cd27b13eb3a2a2b678bbd607f940ad7e02002021d4960accb6b144570ff7969f6947ccc8770bebead5734cfbad60918236b179000000560063e044c2cd71655dcd9bcb1a968312dc779cb736fa2ae84b73f674251c6e7826766ac633887a8b54e6a248421add8e8346e57c0ec171d3a2cb0acd02fc799416e24ede987f0e36024c7d7ac4ac496013d29447418c000000a500000000a036ad39768626517552dfb8de834d4d9cf999bf3beab3f5d9c6eed1bf280302796ca8fc8f99dcc0b5458f01832356fb48a2266ed2134d0fd8b09159e82bb35945d71480bd2a69c1527658ebb230aca1e862322d39048c8b83122ad4a83b00440213b430df3a7ee84e849c943d0064dfd19f3326de3102c5db4fb3ae49032ccdc004d8ad14f87134f5aac4becc64f73610b78e06210dd8a344087dfc151e71327957b8cce012e3622866f658386008eb390000000000079a2700000000004054d5a3f1f4c37a2566f86453769a4f700d26528112a78b319857cb13061cae286ebcf39be39b1d0acc424806150427e972112914367dcd1fdbeaa374189081e20200203d1c7bc16177eed76f92d6397343948b118ce42fef9f3c4c8eb832d98d1c961700000056041450d169062f843033b4a9947f396e0a95f2d4b2d3b3d7ce241e17a7a9b7b4793d18180586ef6ec8a502cae95aaee13de4835a7169f5f5c96f6922f3d69752c6a4cd19a2cdbc6eeea6db582fb02e8ce67fe5a7652c000000a500000000a01aeb7b1207ae018abe0a0722988a3fb4e30c5f7ee504a8c63dc680207f6e77233f6af9c5a3a268e1a4c823b84c862acb43f7b62883936b284185ef14eac29692f63c3e2cbe7753cefa0df6a9bdbc43466de974be236551accd0dfe0379b7005e904ca7c7349002f198123e9f0853ed8b8bdcd951a6f40662dab59fec4b50f4eb54d5a3f1f4c37a2566f86453769a4f700d26528112a78b319857cb13061cae285da361ecb1d359acb0a828ae26506c060000000000079a270000000000404caa2d9e7458fd7309dd59d75b5b2cc1c110355b3ae2915d6e524ca9f4f91c5b94d8415b8ecafe4869d44a78010717543d39d4fec91fa1f9263ffb11dd96a53402002049199d6206967a825d5efe393ede8df61429f2c7605f4127bf079a0e7fa8d24d00000056421b56a45166536516c78f786a86ada0385d5e600b64640120b6819bf5c2b5203d27120b8f38e49b067c42a58d02627e4e34d7c6f6ada524a0eb927084b60b8d512b2df63ab961d039f1f846d962dddcf44b3e983d63000000a500000000a0a6b0de1b54215cfee95d97913043e5915a74b47cf4f85cc41ab4aeb28e26b1cf8eb5d074fbe0895c0915b3e24631ce1e47eb8eda996ff3235dda021ae09e3b0a7879ddac4a51b1bd19857b05746995c56e2eb049e991d8d609cddea07bfb4d75af35dcbd1551562fb3fc1800af0754d041aa3c5fd91eef07c872c9a2747f68eb4caa2d9e7458fd7309dd59d75b5b2cc1c110355b3ae2915d6e524ca9f4f91c5b5ea6e1eb52237269cd0c6098163948280000000000079a2700000000004069c0319edd4f8c2464784baf4a77f75ac12ccbe10c60b8d45b2c8bdf443e7b5256d5232b6846b31b78dd2b86f4f5f2544c720a275e010d24ccbeb5ff517b5bf4020020056d23e5af61485cc335a09deb8331cfececada73133c5610d3c41275f2e0e0d00000056bc4f706606e82f8e621e26f4bd81037fb2dc7d908ddd1bbb9785c87213de521cf685b78847782512e27f09bd72113ce1dc538b1dfbbf4a1851b8c4f188a535af8852fc13ae38ea4c61a72e870eb19c194bd6774d4a87000000a500000000a05b9be4dbd6e7e68e9c1347d9f6913bf805652a0c1764df4e185c277af87ac05edacf7b0299ab5001b42d60cf36ba3ee4db759c015b4d9bb3282b9b2adadf98e33a4a528de5056afaf497994242bafd750b92404f00d5e0e828d79c4d8ddbfcb8959d1d2a74a74e53a5726ff8fa5a9b7811e7228345dadf458424f060c00f233669c0319edd4f8c2464784baf4a77f75ac12ccbe10c60b8d45b2c8bdf443e7b5265eadf640968cbfa3bc0c58a8be1d73d0000000000079a27000000000040e568f05e51073eb3d9c995eb765bef2517717ef5c03b51a077d442b4769b732c946f804847347c9b3eeb4e47e2b812d2ca8332a37fae089c0e7c73f18395ae9d0200206ed4af5fa56c14fd930f864a44c0d570a19f88935180d9f774721f4f095830020000005628046a94e009af063c58ffe81ed12003d8e2efb3689e43753fbc0db8a6d55e62fdaed06ae251b90cec0fbe83bf61ae95819e3b5fd2d97ac77a54f0c1ff9ef5076a3d8c0f563c412cc75691ddee7b3483df6d1aa39327000000a500000000a0880e9607e8e2b9dcb9fa33aaa54264eab21d01b268cf7cb7669f6301e5c574194a5d1e341d52c8453c3cdb91a217b5e192821bae4a66bd6d71403e4dc922819e28804a275737b2ac402c7d4302516be8c9535688e9a2a294d50faa978d48edff988ee5cc5dc935d78ee0ad104d6b83383e73bd8ea2f804c7c0e88cd16153aefee568f05e51073eb3d9c995eb765bef2517717ef5c03b51a077d442b4769b732c6c7a7345f74d3f4f91206b734fc67dd00000000000079a27000000000040f511c2e79dc7f26ab37a9c8937c13dcf8811f3125be6f40dee9023028a2c7d48c16e6647c0a72fa5ac18a092466270c3a329e471e8433ba8ac16e649240d459c02002045a4ad992d32a147229b3e1213abae4cb636b8e0d772bc8305c292af82fb0f4c00000056322576d2614a44fb99bc26c8836fee5b52e82cf518889c50015f9b53cd2b9ec0c64120877ab515d74b8c78893032ca7e97bfe96c658aeeba7fae554e72d8099ed0389c4d22173406801e3eb2b11ad1e6733188d4bc9a000000a500000000a055b760a5d27ff7c969b555f712bf143af5e52f2523795d634c9648e0f470efb38122f4b5e79d4dcb8583f44e1cf028dc1135ff6dc85fbb534151db678da19f532942e08ebc4a261f79a89fe74e3f1ebcf94dddc72a7ee1e019975c635dfe05f6384418f6792188c187a73a16334bede311551b03ad694ac8ca9fd6e79e9247b9f511c2e79dc7f26ab37a9c8937c13dcf8811f3125be6f40dee9023028a2c7d486f52ae8f108d87db0f40755b8390db970000000000079a270000000000405a4eded6f5850c49d1d48724167661917bf5d669d020bc616fef7e0765c5ba871e25f73170f2e17774abdf65e024b4b872bc44fbeb87c7c29061c838eb33e4ff02002071ab6abdd25f751e700a049b69f68bd386f51d70053c3506bdd41426e004f36900000056c5785743d33b7c2bbb5003a7fc851aa306ca8bff769b4050ace812fc59a081a3649a28be5308a6342997f7288409fc0724dac46b77e58297ca7ed284bdae5447cbcfcdd144b3beebfe19e8d6ce1c83d0bff42d3a9c44000000a500000000a02a09959e5a497839cde00616887f544ffbb3954c57b03f2a6173f357b1b3dce10bdd35bd1a2c5f5b154321b313f9bd98a9e58c2244fd43a5079984822e9e50487588be9872ca113738844dc3563293095d3ea24cdd64833a6132825999a9ec8071ae41ffa6a76cb101aa6cf9a87e1655c4aaeb6799451c03a6f38d7b42cda0765a4eded6f5850c49d1d48724167661917bf5d669d020bc616fef7e0765c5ba87710c0ce3750458327d65764e9b86eca80000000000079a270000000000408bf7a083c9852094280efdc9749779db2438fea918cfcc4399ef0a7cc636521e12ea542df7c6260d7630e230b9b603be926908445225f5acd3e5e8bd534ba99c020020fa6e6d49dd612f2be0a1fa11fc77b41e7591b96adbc9eec9dbad0a4d4b70e907000000562e07ff0aa71cd08427e1dac46840d166194f51b551a37f836bdd57b1fa3f637f9ca76afb98dc9ed7ce722d632a8355467fd30b003110f52c4dac2e4abc4cbbedec1de1ed8887886d6f7cac7a81042534abc1c51a85d4000000a500000000a0bdb41d17d7d88f16740a9a989f49a6d4ab667191c0e0cb34ddda97863e71a0429a0025ae241272b606493117cef77a14fcdaa6c71ef863d718207675b2262465fc227ad5c44602fb23b93cf08c775e1677caebf1a6dd0789f6b3775f9429c2a9890234ad10001467e56d0cf8a7a9aec8d0a89491f10bf28380c1cdb9d4304b368bf7a083c9852094280efdc9749779db2438fea918cfcc4399ef0a7cc636521e744ade46ba41745e95439f64d4a3dc180000000000079a27000000000040fc01964f7dec78bea9def170e4cf6d72076e3f2b8005df14ff09fb2ebb5030f6f747dab05c986cb6caad589cddf7e2c3d831894e20779d83b7f557b216cd1f8c02002036d13c032239972ce0587658215eb074a44d3ce07539d5d7b414782ff1445720000000566378d8d1628a4b7c3fdf14e2eddb7a9e92feb3bfce8038c17df1a5f0a5c267dd4e07a8dba83d1218d18bab7396eb163b7248589febeb883bb5fb65b74680e982abd9f816f34fa3721e8a376e4e92ed458bcf66ab362b000000a500000000a02acaf69664fd1bc4e3cbc1321c156edb0bdfe0c7cba162ab37755bedee9c13c8eab74e3ca94adb313228d8cc578dd6da77bf8e63d30c36701a62fbc7695d6dc806560419f76c7071da08c6363658307b51315d89d1b403b5fa714c04cdbb43d3295a5dda1746344556dd4ab3b00317b843374b464aedb304bbfdafab9cf8b635fc01964f7dec78bea9def170e4cf6d72076e3f2b8005df14ff09fb2ebb5030f6794b3c1dc45c5404a0aa967e3a551e040000000000079a27000000000040f2755d9339f781ee287d0f81324ac1b926e83ff93b62eb83884cf48e3ef8b3d105da3dcdade3257b81a463cf0e88f500e141b0258a4b041acc3a571774dab53e02002087a3099ecf04261bf3521caf759d74deb095bff17ae6225f6a246e43b700997d000000562a0601175aea1d7aa7e35884a6b8bfe4589b1273fef05cf397a6898e5699b984058a002414b3c0919998f2dc30c184e39e78db35c304a1ebd4745b4920ccc0fbe5d92ce38bae0e16876b796a92502984cb3b13861b75000000a500000000a01f97b50b7e4e830f8acd33eb8dc352e9af6a3cab4d96bcd6306f50c3bc37b34474742c1d3f9d1f41858f1fa759c2393b76b0715ffda0c349537a6025963b8fa27a297b3cdd8649f8c5e6c46084d5b3f1b894deb7c0417dacec6f02b90211cc8417deb2883a13c6fa025c916b2091187e573eb632376ab6ea2e553dfaa15f3295f2755d9339f781ee287d0f81324ac1b926e83ff93b62eb83884cf48e3ef8b3d17a1b9c92c66727942e62e19898730ae90000000000079a27000000000040f792d683699fbc4e675f0a2b74e524d8b09f62b9458b3082b6d3af53909f80bdfe6e8c91c9e83e50d200057a87cdf01aed8e7281aa39933769117ff884de5bda020020fb1510ff5763ed4bf6ee87149f60585fb1a48770bc6679e3af67b423cf8c0c0100000056f0df24e48b04b306764ef276cb462ba7d8ec35e573d9ee63d20134bc6db432e1155b58b03ebd893052fe6bedebca0a777dc466d0adfb130921ba7ca9a7c302bf5a81158dcfd8e7f0fd093708bec07f08a624cf6dfd52000000a500000000a001b1c20ebb150f01d7fb2ead2c89f1221666563a5f6b96f18c890d9652041c00554825da0968a1eca7f21878b5fcc58452671cda0957d9c67ed891392e234666ec17d75f6b01db07c8e63978ac3b3c5e6ea53576bdc40bbdb1cd7922cef477c3c8f71bff5aa7b0cf7bfb1e6521fcdc1a26f0662289726fb00575c79178ecdd3df792d683699fbc4e675f0a2b74e524d8b09f62b9458b3082b6d3af53909f80bd80ed29908d13cf1a6254e3ae3e626b460000000000079a27000000000040a0335d2ba307166e3e962f309a80c38e95e1fa9696da9a0182bced6a9e9bafc2fec0e961109b5b3aa088057f1a28737254b337ecff7e50fd87065b465f01d0bb0200202c172df9caec2e32fc61ac6913375ce951c5e17541483e465daf2eda9282e455000000564652e042e6f6a41c031a18c2d5e344c9d49e1c4e20deed651d61940d5637ea30af59a3486b38ae83f7fbd5237e260e3aef798595727886b82138434f1c2817ce46e8937ec054543b4f1d21380b82430a352a0748fb99000000a500000000a004c84169586c0f89654735819941f0dcfaea8b005fb94f1351f6caee430a9d8a55a82f63597be2f2f1a829db466f696134b63602ae6dd4388cb430d31e77876c18eb4795559d3a0c881c9880ea76d3d1463e8d29e330ffe0f24e10718b57af746bc88f880cf2e4b5d20083199588fbc9eb2fd004ff9f68ca69b965320f1f93c9a0335d2ba307166e3e962f309a80c38e95e1fa9696da9a0182bced6a9e9bafc281b9d8dad2da16f250019f4a6138b9ca0000000000079a2700000000004021f31f4ebe40e1a262038dedc78675cbd803f26b3df7b504e3d5c303686a2630eba31a8d1f9e132e42f2d3a7296c346ba835da394da10e43e499d9291c4f030202002052152ee7344caed7eabe670d6ac122d7967178ebee31f88952c3444cfa39632c00000056fd7adbcefc2a175edf951ea9a4306c969c7c939da2c3db8fba28a4fb42803d1b9bae9361b6a868c49d269dda87814105b2565b0f62dc9e5b3477b981097a2fc0125027536811f91134c6b6362e2b43356c504f4f4240000000a500000000a0a23ae5beed798a5e265fe4c1d8daaa7ea147df78831453338e633477fed4e3e72b77f159eb6dfc57e69c8f4d77e862e73940c28eac3fc083c1dce35453a51e78c250fbaa8f5ea10db5b1744a9edeb342f9f35aeb2be25d811692fc5ef85f920ab50d9f3779159cb371156d491fdb7dbe470ec60957393c941e69a7318fb7822221f31f4ebe40e1a262038dedc78675cbd803f26b3df7b504e3d5c303686a26308277a08a71d1474995473f86ecfcf35f0000000000079a27000000000040c667b82d8f08a518436a21f361c129621d0df90479b9622a49cd7d0d8531b2ad4a2d439554ab4f486786403a5ac9ed1b7d01ba60d41c9f4e0101f7ac52568cfd020020eb7c31fc9567081d4f32e2683b03066f4562c66f522b94143d005c4e5757e213000000569b4091d9550b946faaafdfbc6879fb1224a389593e0911bdee2813437c61c32079d4572c720354fc6d257e03164a4dc9f6eaa119801b5cc6044ff40bd09a73d7e86c465dfa258300cbf7d2bfbc256d5c24b3b0c1d0e0000000a500000000a044f9e45c2cd88267be06720cc65cf5922ec27fbc7b1571bc80dd1752512936393dd6b07bb302969a8340bf9b19b5a2a6aaeeac7465e70e00fe90615f86554adc112e85fecbce7d0a54d58a7165b52cef74eb04a414fecc091b40640e5f1fbff54e92c2306718b48381e1a4cb73bf710f9d3ebf23ded7a0fc4d1e0dffc990b8c7c667b82d8f08a518436a21f361c129621d0df90479b9622a49cd7d0d8531b2ad93d642313a0d83e23dcb884c13da29620000000000079a2700000000004027ee7d8768ad4335db1c0c6be213a709479f3911579b4900e270f5f7fccc2516f61a110e67b2832200e0bdb8ae3e39079cc78ce33cc464a5691b76c7068acdfb0200202554e5634d0ef99f201c0aa82df410df1e26d52778d0dc285cfeda7f11d8db0400000056eca77bed491ac7f176489b8a0d39a1a56eabe9fb27966d131198d34ea98812f4a782a959557c6b36117d92577709c0654eda4219d886f66e2da7619e6d17931291b3367ab38d1bfa6ba6c1f84dfdd3e08c47d09a2631000000a500000000a07f9ef8a6c0204f1f04ece5bf4d6c7d64ae4a726e7f56c4c191867bcca941a64976a27a59e20281485e61124371a5a94e0ef962f3a606ddb648fb973527db6eb9a49f318b784e2ddcc0f438da13aa81e90bdef5bad01849318012b24961556d54b90a92fd34441b01152902906755f661cf93ed7c75d521244363acb9b504838227ee7d8768ad4335db1c0c6be213a709479f3911579b4900e270f5f7fccc2516a097d4bed8251c60daf34389a41f65bc0000000000079a2700000000004080d932c88b89b40e4f904784e959752d47e7a549ab2bcbc4cd76e78f7cd975b510a14df99f89fa9d60f6dabd8a097ee0f8e86b9656dfa37cdb7b9f1237a0a57a0200200c6be01a6f7a2e5bcf723610efbfbe886641d2aa9ca72e8b059fa63be8f5ea3500000056ea6b1532518489d6d1bea7630043ff904995ee3ae3b09bf4ce2cc22db48d5818f523e4b6d670ce88a74f0b19f5b35f1538d066324c0a0db247d137df9e97cde4ae91c2bf6dc0e4fda014863ef04105905113ce2d6832000000a500000000a073cff4a2ef80b8e4fc2ae7fe9f7e95791ba320a80f4093e72dc7da8fa0f119f6519ffc27cf067864ad4fb46018ace9eb20db3f23b9178808f2a05d42f60ae04a3b3d15cdf6d7f34c84c944ae7a6b7366d290120458b9295350e369570e477c3b1e8d12748f8b517278a37c174999fda99c76026b5c721083b767894b0529260180d932c88b89b40e4f904784e959752d47e7a549ab2bcbc4cd76e78f7cd975b5a4dfb00f38a8dadf5810b4a2396110680000000000079a270000000000408d4959fb93bfd5b97a66633fbdddb88baf344896b2656d5c5a3a8adac229253fd8d0688fe20ebe18ef924b10622ab02ae8876469f827444313d5170cead030550200202cdbfab9ec96dac41308f3af06227cd8ae892264b863934c9836654f26845c3e000000560bfb782f53972257a6faefa8998f6c554551d19450814d1069b55e5387e635911452dd59ec71fe3132e23992beb639a768d1282d1be02ceca60e2181eb7421af1ada6a40578aa18ae838963d784afd51b754f0edd2cc000000a500000000a0516ec1a3e6f09d23f238274007ddd6b953101b11a1485cbbfc030069116d9124d36acb6fca971af9fb27c7873e3e0b3605cb826105e5b26e6c0029685dc09fcf02124cc321841e829057d0f42dfe0bf5f3fdaea1f40a4f449b57dc34d53c78c9b3f752a34c548d1ba33b6754c17eb21a7ea7a62ba62bc7d0a51f37ad9d8ccd618d4959fb93bfd5b97a66633fbdddb88baf344896b2656d5c5a3a8adac229253fb06a0cf2146107d50d9c28582dcbcc2b0000000000079a2700000000004045fb3b1c70bf8ba99afbcbc3d2615d33c82d1bf69948826776db5aaa680d9f0dffe586457cfd3487247d303d793d2c3bd71b979a20c9d43bd8ce951f1d11c0240200202e2616188674e3a15c741876657cfb8439572ed6bd2964a33a6ca6111e6e47440000005656eb5278ac8340cb1518a6d0bc49a326ee235b698e530116807133e3e5a5870e678f8bed0bbd93796ac2e7d244e2493cf1d115219064c6d817f34230d4bd8f4eab9735fe787a54316a3428559150a5750ae34e067be0000000a500000000a001c2ec415207bfe781715fa315dd6e1b9886a4ddd1691c1ee26c05c75c67e0e98ba588c0e1fa9b8bb70b74d397df37be70338b7df7244389472145dfed7c64338a439f369949bccf5dee791e8675427e359de7fdcfeead2f28780993b9ef0215f417b1738720c46b6529a04af3f9e40c0dc6d9eed67e2da9812b2066347ac92645fb3b1c70bf8ba99afbcbc3d2615d33c82d1bf69948826776db5aaa680d9f0db2a544f21c13daf8fc20ff46bfb391a80000000000079a27000000000040ad1b8e4c4dd8ceaefcec973342b4ce223d138cb6464023589eda0f01bd624cdbb6eca552d6fd816e11a4bd1e10bc8ba9a6cdbd1e4d4fe6005cf3397fa1b197000200209ec9ea0186673f5436b3f2003318f0901d8c5ac143116b49aae589414f225559000000562c9f8dc22576ad318b05574a679bd6fbf2e58f82e68bf391752f25cc5f08aae21985ae140ed3b46d801da5f545de427920b24709f2fc97acb017e6b439f481a95217d3a489db4f787c8c7ad22bdc12f48c6cf2e31314000000a500000000a0563434c6c9c250424cb5c5b8a77883f0f68045ac4fc9b50a8acd236a43d40cdf06d1898fb26f375cf12a8bd6853a4aee3e6fb37fcf2e3eee751f01b6db8dd87ebbe96de6e7926fec781dbd7ba813227d34ba940704ea91a9a866de8ed3d500f713bd348e04715f1c7234dba1d62698d945084f55a1f96f44ce1bdcca20d04d77ad1b8e4c4dd8ceaefcec973342b4ce223d138cb6464023589eda0f01bd624cdbb3e7e49cdba98d62409aff4c8d03148b0000000000079a27000000000040d7973688dbaf5f371f05c119516487143b0fc17fe93989422de1c180635d81df1d856c052c45dfb66a66f31e7588515d760aec5245ad832672cb151155fa1cb8020020904688d0fb5487cf2a6340b0f3ca6940fc737352097d907c80f8433a2234ff44000000568e3177221b229a50e360cfb4d998d61bfb1b28fa2d301c4e942479f35335f781253bc4e375ce0494fd1bd835ebb12ba6bd96a23609f4dbf8edca9e3ef88fd012f1370fe6087fa23382b0ecbaa6f7c5937b31fc3d6513000000a500000000a03e19771c178201e81563dfec4ee0633c82da8f6e3ef061f4f6c08be1bf0e52e2e51423711f98140998a738037817ecc257e7882527d7403cce278bdae0109693e2da5078ce4684e88175bffea919eb8f2006c0c43746424a63cb1c207748d6dc23aaed487d0123db1f08dba801a697930f27ae651da48db4c247dc29d2d5c715d7973688dbaf5f371f05c119516487143b0fc17fe93989422de1c180635d81dfbc71bed6629a1d97a90798cf363043b50000000000079a27000000000040c8b33602c3c1d7255b87d043dfbe60bfdb951da7fdc5c9692065d9c6c476b0b4e9de32c46a9c6344deafe5b055be330f5714d8dcd74e0e57c9dd7c9d25a050ce020020d5f7c6c27dbf383aceb392970cfc8ba6090de775390515bfd670a199d8365a6300000056ddc9e6b9aa45e04e7443f8b6a58752af60cf7359a555e4af93fca0051441722a7845d885be01a01fc4cfbb9bc5aef0dfd12941466f07535eebbcc291b65a3274b86449410bd0399de2cb3d1eb0ceb3441252355f0b67000000a500000000a01c17f089d1f8afed83c090157ebbd96502c2f52f400001864d39c44fa7dc1b23bb7c7d2a0a71295baf9e10af9d911cc9cd49d33066b8051b7658787c81b431e397bdb20df20542cad3a95158ae62e1abf06311b8351ae7f48a9a92886f559d3f4999fe0b49e7f476b3ea1a1137acce99276563254b5ac02167bec9db2d7b09cdc8b33602c3c1d7255b87d043dfbe60bfdb951da7fdc5c9692065d9c6c476b0b4bc84e61f14f91189ce48c2f1d1c325f20000000000079a270000000000402f0cfb9aa85fcecfae06b03c7deccb4f9ad8c679db24a766ef690b1af60acccaa60a5b4cfc46ee3dd8fe398d902fd284282ccb8163ba5d9979356f0f1a544a200200201e495dd6c5884fb06ce5c34dcc433b7cd05678a1469a6432684c9f688af5265d0000005633bbc2e1e0912d16104f03e6e598b2cad4cbd082cf7d286ddfc1d3766c96cab39e42c0f028b23de9eac27dcc8d70788a91f1cf52d7546bed50264e887eb6a2c45b8e1f364e195bf8694c1cdea8f1cae318de4df84156000000a500000000a046d5eeece06dc9af15f72c71ca271758c6955843b8acde8b9b88937bbaea77d00e70d11e8ae68064ae04738db4d3c8baf04bdde80b1c76bec31f017a8037ce399ded83f6685753782892c7f2960b4624ba7170745eb4ee29ab3094bb539192d08b3fd168bb655c565bb7a82be9c8e3149e4f2b82dcc2632089ba7aac7461c6172f0cfb9aa85fcecfae06b03c7deccb4f9ad8c679db24a766ef690b1af60acccac2cc955722cde6d311fe26ae6573c1b50000000000079a270000000000401033294b99585808e3da0165ff8124c029047b735d83fac5d6707e3a86bbbbad7d66cf69651260e2fb38e3c175209bfe28fee57bb79f934e1a9109bfb8f311750200201d8dffc9dba9b864bce704bbccd529d2205491ba8a31793243050c0ba9648464000000564fcc8e1f71e85aa756f5ef6211c51610aabc7c2e940c465b3ffd4ffaeffcb64c8bddc121359e76ebe47db04a6c7a96a329af0e3bf48c27d251eecdd4fa4b872b74c90458ce5ff8a77abf2b80fd47d1d45061c2307256000000a500000000a0cd2a1845ad36ee576823173743b74f5d19c901ef7dcd5c615bc39ab2b76e480ef9cd1f1d0a996e4dd8891425d52974eb7388cac463000271487614444fe426b907d563f586d34b4041ee40935130c8a1051565544ddecd7c38546edd96b4702c00066368cf927657f84da35e6f81e17e512b57c8db2b7b99229a78167fdde5071033294b99585808e3da0165ff8124c029047b735d83fac5d6707e3a86bbbbadc6d858d6dc0ebd2f19693f8e670bb3b40000000000079a27000000000040d324d5b57a2349e4097f5233ff698fd4a95916ea03556d97ef331915bac6418ce3ea6dae9df596b9c48e9892228f54a18194861c4619994e87834e92a98404040200205dd1d29765b98ac8d271985303999f24c686c8a92aea16bf367ec5930897e132000000567269ed54111d70a71b30a610cb2cb9a2aa7ecdf757ac263519a6deab46ba2f82ea4925aa61f96de39a57d37c8480ae08403a683dd34e7356a02952ccbee420d3299673cf9f5b0dfb6be3fcb3b2f7c1fd74e79abbc05f000000a500000000a09cd7a8a0ab693ed791e9f9f57963402d2032f3863fb69c9bcf4bd020a72668b6d902c5484f013b349aafeb75dd76be6c07a588953a27197ba40a7cb1fa9daa42ec299fc9300b62141c414b50f33ccf60c032d2bad3c43e9aa2b5be6ce16d0e42df3e0c524cc6e08fafaca35b1f5cd2c5ef120c97cbcc5d05020a0e132f03cb0dd324d5b57a2349e4097f5233ff698fd4a95916ea03556d97ef331915bac6418cc97b53c547181252b8550c44538d81900000000000079a27000000000040b7ade695646d98d45da82a0db511eeb6139257c67c19b6c1e65ffe41dbdbadb131d051b1f40c26089d653d5b6fe6efdaa6ad194289c7bc6b7d4e0d99ef3049b5020020760d85befd3f7dd3d40ef30d2107ed7e52821320208a2e8c083e3c3bcd686821000000566f1c343e50d18566cc401b8f9fbc9e8d421c6fe7d494fa427dfd2c063a8215658c9df1ae2f53b7f3bb2cacc6adf2878bf83180ab4dcccba9583f30572ff2780cbd44741d246cb68265919b26464cef59fa8458be93ce000000a500000000a09ad3898e3bcee639db5dd757bd6d15ace56808a1505d71b6fc5363f454b332b474a1d419a933c43cfa8735e3d4883c6c90012e1d3011d5f6c01310d74686ff143cb280e371f0bb15c8c62e9d313c1f9ea26615f1808b5f94fe030e729e0de0ac4a9fcfd72f7dda140a0d416dafb3be7394eaf85791de9a1f5869a238b57f11ffb7ade695646d98d45da82a0db511eeb6139257c67c19b6c1e65ffe41dbdbadb1c99534675471ac0cb36b338ce540df9d0000000000079a270000000000400dc60a6717264780eca9aeeffd111a9606959877b559c4e50331ada133f2929345e4d46d492c2ab39e44966d5c985d17054db77753ae7b00c1819b89e62f395f020020c9dc5ddcb5455bf625822321f518233c1fc08443357e63400a638c05552d7f2c0000005689fde4510f0fde7fac9218a7d4138b68d00e8044884211c1b267ca0038564c7f08829a74bda7e983889c0a8082c61d0bd2b6f0c5e8bdf1a6a2b80f570017a7e5f5e1500390203551addc75305d1454caad0777018487000000a500000000a0621a1ec0fb971a5c7cc4fbc3d730fbd96966b9ebb5a9bd029fdef77d9527a700e2eb1218529f79330165336e86d5319cc2a4d669645db08983129091fffcc1bebdbaeaec94b04ac4b1c946989acf18b48d029158048348dbed4f7e10fed6743c52ad17fc801c28acde299570c289c6964747d9d6c25cb8a710bae8fc126238710dc60a6717264780eca9aeeffd111a9606959877b559c4e50331ada133f29293cd322cabb22217e9dcb8265f00b6c3c90000000000079a27000000000040352d7f12508a4182d476659eba4fe3d6b02e80623710e9766b068e4f91d5af7aebb5657ed404b6e3e05f8f2167b59bd1a3dbd88b096b852828ddc299686392ac020020c43576413780f3e9e335eb91482b09aa4905c9bde49e44973bf7afe06781ce48000000566808fe1a5a5837240682fd147af8fc72e79662fd1a7f6f4fbbfc3c676a3881379a84c549481d5e42d190e0dbd024992092d2b195ee1c63d0d0a9b78cce87fc9323a1e7eb3a943e6f3a29b725b734511dd6840a6301c4000000a500000000a0fae6d84a6e17244c01e4706bdaed60b4ee1e4dd37e2cf5e02dc058979f443ee058152b7e151d7a70bd02171b5739e4ef250e4fa5ae3aec623ad28f2e1ebb9969012a73a1412c9526a3b307c6b7f5be3fa88b9dae71ff1524c9e4d19e0db771cc9ebe2c7a5289a0cb575f781d32fc8f44bc04685953eb7dec9d602ca7b4cf5a82352d7f12508a4182d476659eba4fe3d6b02e80623710e9766b068e4f91d5af7ade28b8ccbf00ae807aee3f0cb60e62fc0000000000079a2700000000004042febe4c3f98bd7bdbe58b06502e135c58523d9f8425e6c84dd2a75c2fb5347cd93e2a364410f2579719ead5cd810afc9d2a5a8836344fa2900918598358b160020020ceaa4c80525c0496a506648a32fd49f8d6ebfae61a3e5b144f38ffa3fa01716b000000566e7b82fad7c5d14e072ed946c82a3dfe217bffc3a6483f8baed7e10a36d3350f4d50a100d7170ae5d42ea77c8eb182d8588fade25310c8ac7022e11784d5808a7747f07a6318a0985857dd5e3838ab3a624571ae65eb000000a500000000a00461b54583610712c7809a39eb4826e42b7bc9de9b51110b48045fc2e488631f7edcbf6f7874d0d51a6af68c862b0aabeedc167dda8853f6d458b025986edff7315ae3733361dd391035d7142de1c0d91dc5e2a66f5d5f9b60fa9d2bdb45fb188dcc6a2e02811bac5ddb320e6f3059dd0aa33ed9a7cb6d894e699dfa4ce6d27442febe4c3f98bd7bdbe58b06502e135c58523d9f8425e6c84dd2a75c2fb5347ce986c5851b2dee23d6ba9fb7d736ea2d0000000000079a27000000000040086dbb83a727625534d839454327390fa3b21f39056c1cc05f34290fbe3022136bbb00efda87b3d50d3f0e3a53bfc5a1f34cdf63b8f6585224978883c0eaa804020020a503aca8aee75640c966f072ecc757c156978bf3c859b13e025594dcff7a917c0000005695cbbee38f29efa37afd36ed5239efc352506e13376059dae2efebdc2d0e1d910b19f8f14da816006346d6dc2b4d215f1b273933f2110fe9e6e894304eb9748f4292fb6a9faea61f7d2a8e175e85a29f8a17bc7f7d72000000a500000000a02d028b97f8704a47e280ee7989da16511ad979a9bcd5d5d727e25cbadd4f4a6f0b85088a02173199b0e492954ed1e9ff33a6c6a6647e2d9d0102e00fd3f36ec9110732d8312db88140fe30a9abdb11626aaccdc16b72f188e13bcf6847939f5531bceab43f7882423f6907dbb3263657132258b32e25c65f09b08f04a3f97e5f086dbb83a727625534d839454327390fa3b21f39056c1cc05f34290fbe302213f595d1f38e86a5f84959af25109010200000000000079a27000000000040e067c8e47dd0d770f8c8f0fbb2cb6c3ade8eb4e8669863179aa2afbb191571ab0d7b821dfcd6268357ff3a8c7b9ee3ea9cc3d2f0c4036c4ca632b4297c77852d0200206966ebb50820330931dc84579def36ef78e4e80bc3df5343a32dee737add305f000000564f26b1009ca1d2ad1442f726c4554774ab51b1709de31d542327ac3054804b16c6c5e66d273318a99ac0b5bcf55aedd2a528842dc4788d39a51c379e5cb8900ac0c1984e17001bfecadedd5a3bf00de2b62e974e7da5000000a500000000a0349eced4e677033a7aae9e3cd864aa720467e3f780eceed4b42766192bca9ebb52cedd128eac95b3a53b1a4b50e723b271a1830728edde97a242a09b49847ef9a505d99122d2451b1c59a5d54667a1f729947ff7ae3f9882c9ae93ed9d0726c21988d4cb62b843eac5b3ff2eb3269b0d64d2db6bbf0094fe1d34d5e79dcd463ce067c8e47dd0d770f8c8f0fbb2cb6c3ade8eb4e8669863179aa2afbb191571abf9aac9a7a202960b99e1024ec492f3e30000000000079a270000000000405e256459a2aa48efb6fab569c0dfe50275bd2ace3daf8292f196d4359d08adff8dae379cdfed6f9f572794938b66c9a05b4fef658d61f29b10cb112b80371d0e0200203ca65b1c8f7a73e872c2a5b8eae0cea98b8ba5f00dfad7b7f3b265f3b422a360000000564f39f8f548d44535502b0f132e1d7c14d3160f5a5cb5868371f405c6befaad5bdd04506682b3d3bc6c1ae37321c0aa941998159fd6c8d68a0aa5512fb47740a40ae5425d59b4b859920ec994bc87729ba0a989561732000000a500000000a0c75b7835b39a129185fc023a521214828e70f6aa6aa51f1c134a30596606b25a7f62b16e9650589707bcf980dd545c34d0eef46eebcf2924d8d5ba0a807bcd2de869afd909c279f05d76ea323f45d0bbb05b8f2d9459cdaf3c964e6ed528653842cc4fc148474a1f96da7811303e5fc9ec3157cce29a30308960aa70d4dfbf6f5e256459a2aa48efb6fab569c0dfe50275bd2ace3daf8292f196d4359d08adfffbdae428355edfb06ecdfa13fb55d3730000000000079a270000000000402cc16c878f09c0f50a8889a94595ec3f95d4cce59d332fff4265830d84e923e6f41c0da1ec196be9c4f5d71bdf95ced996f191a28b2c02fb0ac973108025bc56020020e36bc91d0a7563d15f886b60dde4f87b5cc5906d6dc0a7f713e3fda4bae9f60d00000056bab217019f2891afd0df0327e814c6c55a37b83438152b42877937535851e95f923b8fd22945351b849e95ee251696a6bd0d22db15c2e6c61e927cba762e978202ca0b7297135a190806e1632a4be54930e8299c5969000000a500000000a0f9f6c43b7abe5bba25d5a872dda365b3d6a971feb3cceac39ba15c6b3ce84a7cbe94001f1326c04d6d8ed4a109ea96b9d8bae218bc68669b538475509b803cf7571d678c557d34c465f49027a9ac0fc842e262d8f0069dccb4b3c7fea127c06fc0de5776003faad7b585b6c8280e8bdc5a0d7e1095896aa8eb08ecf174bf929b2cc16c878f09c0f50a8889a94595ec3f95d4cce59d332fff4265830d84e923e6ff712f20dac5a623381907ddb04611ad0000000000079a27000000000040d3dd7878a7ff878dd5128b00e51c8e6af2ee67c9fa5f05aab8e60ca403828aa770ca61f41ac883933d3f4158cd7ba1c1478908598dd6e952e6f4e30d5f79c9df020020f13042f7388e3f3131c58ef2286121fbfcb541dc7983e698c6b83070486a5a0d0000005632b1e1d4eaedacf9fd9b4875357d27bfe14b12390c58faefd79ffd182e74e102fb810ad9d92a427ae57308718d410b7c34ab10e46c2dc7bc52652b8d875fa8b66753d019bb73160342de8ec8db0af58f5ed2b1d315cd000000a500000000a068d7c8548e40d1fec1941d9103c91a67f30dcc5ef41ff4e814582c27aeba51fcbfe016fcdfdb24ff9341759696b6986e3a21d0f36c2db025e5e952c0ba181b746d4d5180aeec578bd75fbb287a68c1e20c198c62e8fa7e1d253378121db6d92da8a6bb409c6e7de4ec291f093a2c50add261b69bd698b887fbd380249fcf01d2d3dd7878a7ff878dd5128b00e51c8e6af2ee67c9fa5f05aab8e60ca403828aa7", + "resp": "0494926a11eca3c2e65ca9ba212cf75200000000250200000020bfdb84e4739f60c29ba890e59042b15a7a5a5b0e9757d64c3b52e8846c913cee079d42d1a3bd81d7c966053abc928c0b00000000250200000020a6f0ce77c0aa9243563d4b729c8a75e3a2c68d9bb8ee04292c08770754c8077709387d47e064e41df08cf294870a6eeb000000002502000000207edeaaa591007b858a644ea5f75cd7f2c24374cc3892b7482fee912647f0bfb40c59a860e6edeec76c64aca0f720e6b2000000002502000000206b46730441f965d3ced8307080557adfc7adfda2857a78fd587a948a6b2aaa7d108aff34f526bad2844c14096550f2a100000000250200000020cd1e9236e6b1a9ccb25455e7a9aa4a5fc4c6ec5a781a4468fa18e7a34f981039112a88a90828daa218610a62f8249f7900000000250200000020eff4595b19dd66e05fc6d60ec536375dbbdeee293723256cbf3735a7fd4cbf941fe365979986700f7d8bf8acffb975f800000000250200000020e5382e6e76751336af6a858f1e14cd370a22c074c8e4c4651fd9e80e681c753020bbda745d256a1d405501a4037dd15700000000250200000020d425a02185c5c044da5d5a5e820b309be011c86de18255863c046ab3e48389f32a21baf219ffc7779ddad5b30f131d1c00000000250200000020cc5658a0c49a33d766c3dc348edf9be29fd77a7765db42d2b501824a67573eee2be7e94e0d0d9417810a84edda3ee2ff000000002502000000209b752256c380d7ad085fef9f9dae9b8b6bb241aaac13bc178ef57788c8a150582d6d38eebe08cdd66b41363051b9d2030000000025020000002030dc60bf0377dae98b17cfeda019aa78058e30ff6062ec635dd0f91a400e397f350d8e8e1e94d97605e3188a82e485c2000000002502000000205628c5bb7f1eee83378979cafd1e2c77fdffac5f2f9d542832984473eb757ee2374dce7e4c8c23da84c5cb398aaebc7500000000250200000020295723ecf61e18fcf4e832faa5f1d25ed0a7daf836d598f7c32a3aad4105d65f392fee2b2044ab31e76f56048f525f1a0000000025020000002000b7b0edc664c3cefd35bb14b01c2ebc4ea299480dacce8e763a9ac322119a493a45f646f0d4d4074751ba94a64fd12300000000250200000020c069303460af427cbe3817307781ab178ca8217dcc514a2053a2fd9ff6d04ed642228e96d3d82c50d6477228c44b0ad7000000002502000000209ff80b90b98a38a3c9f85f5b269b39bfecaba548ff9085ef94f961decf1d680a47a74d0cc30f614c473d865a396258e70000000025020000002044c730bbad69899753a836bcbe196bd5d69cfe76c8fc5e224b60bfc8dcd218d24ca3b9ed8da9e09ebd615cc1a52dc76f00000000250200000020fc0f02e399c8aeb8bb886cdced19f4f7430cb29f247ec2575869051bce15cfc757b8cce012e3622866f658386008eb3900000000250200000020d9d8ce7f8aa58065e0a7e9f9b9a5287295e0c49a7819fb79ae8ea0971b89d2055da361ecb1d359acb0a828ae26506c0600000000250200000020e8f4b5896dab7bfa2fb80fad5f0fc1b341f29cbf0fa6e4abcc4a93cf6c2a02f75ea6e1eb52237269cd0c6098163948280000000025020000002059d1d2b9a5952317d15694c78151857c6640e9268725a319c68ddec920f3018b65eadf640968cbfa3bc0c58a8be1d73d000000002502000000209962763bea57c1148ee75ead15eba08ab33821c3b2153a63171b8d7c9166ac046c7a7345f74d3f4f91206b734fc67dd0000000002502000000206a13b3fb406e3338ec57a83285b675f8811ec76206bcf56d2dbc11435b0f50316f52ae8f108d87db0f40755b8390db970000000025020000002068ebd33af63d89cc3f84728536240f5b4de4b3369cb0323fe0f8459c039b4252710c0ce3750458327d65764e9b86eca80000000025020000002053c1278b070738968906c80292d569339a10cf6a15cfa7569b65742762f36848744ade46ba41745e95439f64d4a3dc18000000002502000000201059f41ab051ca549fd287956ff290ce77091ef80b4b3582e0d122c2e9365766794b3c1dc45c5404a0aa967e3a551e04000000002502000000206a25f0d8d8dd63b6751aec67eb51aa28731a974b6ffdbe5697bf409dac81625f7a1b9c92c66727942e62e19898730ae9000000002502000000206e83d165595bf11227741d4bae7cb615d3cf8aa63cb5f1b888c471980eea3cf780ed29908d13cf1a6254e3ae3e626b4600000000250200000020acb990cadb5975a3047f04679307084831d3f5368b72703b001709f4c532eeb581b9d8dad2da16f250019f4a6138b9ca000000002502000000205845b9a9618002dee35c512282cd50347762b31974ba6680fb9fee83017da0f98277a08a71d1474995473f86ecfcf35f00000000250200000020adb76a24cad73bf60bb724ea13ef660c8faa91be2d19c5efff06ee6fec022c7493d642313a0d83e23dcb884c13da296200000000250200000020ab120a2410263e97ec72599473e58427703eec92a5e3dae22af51ba2ba9e7f8ca097d4bed8251c60daf34389a41f65bc00000000250200000020bfa662503deee29b574f9d16ef41c5909ae29033039a10d02c97c31b3ca41563a4dfb00f38a8dadf5810b4a23961106800000000250200000020aa8ab2576b2aa9bcdbc64b528ed6984d48bc6d15b98b18028d70fd5c57812646b06a0cf2146107d50d9c28582dcbcc2b00000000250200000020cc643b753217d646dd9582d65ae3c63ebdde060e3778794b48317a9f3fb10492b2a544f21c13daf8fc20ff46bfb391a800000000250200000020cfd033f701e839d0e992f564565da4f3146bf4a80ca2dbadbe7f3ca43a3e1945b3e7e49cdba98d62409aff4c8d03148b000000002502000000207fcc92151b8bf82a0837e5476e718377fed621764623fb4488079ff8aebf2389bc71bed6629a1d97a90798cf363043b500000000250200000020d5f6748508b24ea3ae55a9651199443a9442a4bf128a26a30c66156e793e66d8bc84e61f14f91189ce48c2f1d1c325f20000000025020000002065cac8a5264d39b1a7c79b74c054158d6f0b680dca76c191e97822f40bda8dc6c2cc955722cde6d311fe26ae6573c1b50000000025020000002071609f781626b25fb39ef49d04815dfb3c8c4285619a5599f69a2894e619b9b8c6d858d6dc0ebd2f19693f8e670bb3b40000000025020000002010a614e745c8a9787bb91479b43995e6df18e53723d50e7c9470fa35118be07bc97b53c547181252b8550c44538d81900000000025020000002016a81234cbd8119484a7e4b1de0d12357149a238111dc7adfd4f74a03cc4fc64c99534675471ac0cb36b338ce540df9d00000000250200000020255679bfa838937a8bd648f70506eddcde2decbdb88d75a3d344f17be345e859cd322cabb22217e9dcb8265f00b6c3c900000000250200000020b7682d212692d7c2890e6271221102c5b559ece1c39f9e6b353b1c4cb8ba2cd8de28b8ccbf00ae807aee3f0cb60e62fc000000002502000000208a8207e2268a08e9f3b0efe21bd236fa21e59745469c5912c54f03b90006a2b8e986c5851b2dee23d6ba9fb7d736ea2d00000000250200000020df2bcde768c8f651d6d7560f602b8df98b92b9b958a9f2f2e3c713fa8547aaccf595d1f38e86a5f84959af251090102000000000250200000020a8a20b72b0919d2da8027e621d42a93ae71689190a54cd9abd04ce4d27465787f9aac9a7a202960b99e1024ec492f3e300000000250200000020d0247893a98107135e023cb1e39f905eebc7dd7b88ba5650e2c91290b8aad57efbdae428355edfb06ecdfa13fb55d37300000000250200000020dc724b75152bde93d0df5166f00ebe8c24ad63cc469f46fb2858e1937a9ffa8dff712f20dac5a623381907ddb04611ad00000000250200000020150df30e6096cc3dc8c11b54af960da221826266e53dacb1fac58c46cde630bc", + "outcomes": [ + { + "id": "0494926a11eca3c2e65ca9ba212cf752", + "outcome": "committed", + "reason": null + }, + { + "id": "079d42d1a3bd81d7c966053abc928c0b", + "outcome": "committed", + "reason": null + }, + { + "id": "09387d47e064e41df08cf294870a6eeb", + "outcome": "committed", + "reason": null + }, + { + "id": "0c59a860e6edeec76c64aca0f720e6b2", + "outcome": "committed", + "reason": null + }, + { + "id": "108aff34f526bad2844c14096550f2a1", + "outcome": "committed", + "reason": null + }, + { + "id": "112a88a90828daa218610a62f8249f79", + "outcome": "committed", + "reason": null + }, + { + "id": "1fe365979986700f7d8bf8acffb975f8", + "outcome": "committed", + "reason": null + }, + { + "id": "20bbda745d256a1d405501a4037dd157", + "outcome": "committed", + "reason": null + }, + { + "id": "2a21baf219ffc7779ddad5b30f131d1c", + "outcome": "committed", + "reason": null + }, + { + "id": "2be7e94e0d0d9417810a84edda3ee2ff", + "outcome": "committed", + "reason": null + }, + { + "id": "2d6d38eebe08cdd66b41363051b9d203", + "outcome": "committed", + "reason": null + }, + { + "id": "350d8e8e1e94d97605e3188a82e485c2", + "outcome": "committed", + "reason": null + }, + { + "id": "374dce7e4c8c23da84c5cb398aaebc75", + "outcome": "committed", + "reason": null + }, + { + "id": "392fee2b2044ab31e76f56048f525f1a", + "outcome": "committed", + "reason": null + }, + { + "id": "3a45f646f0d4d4074751ba94a64fd123", + "outcome": "committed", + "reason": null + }, + { + "id": "42228e96d3d82c50d6477228c44b0ad7", + "outcome": "committed", + "reason": null + }, + { + "id": "47a74d0cc30f614c473d865a396258e7", + "outcome": "committed", + "reason": null + }, + { + "id": "4ca3b9ed8da9e09ebd615cc1a52dc76f", + "outcome": "committed", + "reason": null + }, + { + "id": "57b8cce012e3622866f658386008eb39", + "outcome": "committed", + "reason": null + }, + { + "id": "5da361ecb1d359acb0a828ae26506c06", + "outcome": "committed", + "reason": null + }, + { + "id": "5ea6e1eb52237269cd0c609816394828", + "outcome": "committed", + "reason": null + }, + { + "id": "65eadf640968cbfa3bc0c58a8be1d73d", + "outcome": "committed", + "reason": null + }, + { + "id": "6c7a7345f74d3f4f91206b734fc67dd0", + "outcome": "committed", + "reason": null + }, + { + "id": "6f52ae8f108d87db0f40755b8390db97", + "outcome": "committed", + "reason": null + }, + { + "id": "710c0ce3750458327d65764e9b86eca8", + "outcome": "committed", + "reason": null + }, + { + "id": "744ade46ba41745e95439f64d4a3dc18", + "outcome": "committed", + "reason": null + }, + { + "id": "794b3c1dc45c5404a0aa967e3a551e04", + "outcome": "committed", + "reason": null + }, + { + "id": "7a1b9c92c66727942e62e19898730ae9", + "outcome": "committed", + "reason": null + }, + { + "id": "80ed29908d13cf1a6254e3ae3e626b46", + "outcome": "committed", + "reason": null + }, + { + "id": "81b9d8dad2da16f250019f4a6138b9ca", + "outcome": "committed", + "reason": null + }, + { + "id": "8277a08a71d1474995473f86ecfcf35f", + "outcome": "committed", + "reason": null + }, + { + "id": "93d642313a0d83e23dcb884c13da2962", + "outcome": "committed", + "reason": null + }, + { + "id": "a097d4bed8251c60daf34389a41f65bc", + "outcome": "committed", + "reason": null + }, + { + "id": "a4dfb00f38a8dadf5810b4a239611068", + "outcome": "committed", + "reason": null + }, + { + "id": "b06a0cf2146107d50d9c28582dcbcc2b", + "outcome": "committed", + "reason": null + }, + { + "id": "b2a544f21c13daf8fc20ff46bfb391a8", + "outcome": "committed", + "reason": null + }, + { + "id": "b3e7e49cdba98d62409aff4c8d03148b", + "outcome": "committed", + "reason": null + }, + { + "id": "bc71bed6629a1d97a90798cf363043b5", + "outcome": "committed", + "reason": null + }, + { + "id": "bc84e61f14f91189ce48c2f1d1c325f2", + "outcome": "committed", + "reason": null + }, + { + "id": "c2cc955722cde6d311fe26ae6573c1b5", + "outcome": "committed", + "reason": null + }, + { + "id": "c6d858d6dc0ebd2f19693f8e670bb3b4", + "outcome": "committed", + "reason": null + }, + { + "id": "c97b53c547181252b8550c44538d8190", + "outcome": "committed", + "reason": null + }, + { + "id": "c99534675471ac0cb36b338ce540df9d", + "outcome": "committed", + "reason": null + }, + { + "id": "cd322cabb22217e9dcb8265f00b6c3c9", + "outcome": "committed", + "reason": null + }, + { + "id": "de28b8ccbf00ae807aee3f0cb60e62fc", + "outcome": "committed", + "reason": null + }, + { + "id": "e986c5851b2dee23d6ba9fb7d736ea2d", + "outcome": "committed", + "reason": null + }, + { + "id": "f595d1f38e86a5f84959af2510901020", + "outcome": "committed", + "reason": null + }, + { + "id": "f9aac9a7a202960b99e1024ec492f3e3", + "outcome": "committed", + "reason": null + }, + { + "id": "fbdae428355edfb06ecdfa13fb55d373", + "outcome": "committed", + "reason": null + }, + { + "id": "ff712f20dac5a623381907ddb04611ad", + "outcome": "committed", + "reason": null + } + ] + }, + { + "step": "collect", + "name": "collect", + "request": "0100100000000000079a270000000000000002000000000000", + "batch": { + "start": 498215, + "duration": 2 + }, + "now_s": 1793584800, + "outcome": "completed", + "share_req": "0100100000000000079a2700000000000000020000000000000100100000000000079a2700000000000000020000000000000032c3d50d9cba6c01c6b81228c2f7d68e6e54455a7862b956badaaf2bbd7f6c8e7e", + "helper_share": "030020117d10cba896e467351accb61f89c54f960e60d9d1923e45a4903d288601b5360000006076a5e00f1e1376585ce3bcbf1677cc1e7521d963b384782113b9a7f1db0eedd0ddc1e882b7712ced170041296535b134c2c2e90ac5a883af634daf3941e4df9691e26ed44c09d80ed0463a31fcb8b3ec26c298378f3341df410ceced102879bb", + "resp": "00000000000000320000000000079a27000000000000000103002044977772272805087cccc18f22aa177eb2b6c5cb2c7c6dbbbbfaf50aa6312b2900000060fb331877d644ae87bbe36ba13eb44454823efa83b530427f7baed95f03877492bdbb9fb048572b67095baa4a42ed66d2491a47b59896a96658d17f7ff8612eb7e443fc7ec2ea7fa4a146d03c1acd24d6a7f49744380376dedfe1655e68d301d1030020117d10cba896e467351accb61f89c54f960e60d9d1923e45a4903d288601b5360000006076a5e00f1e1376585ce3bcbf1677cc1e7521d963b384782113b9a7f1db0eedd0ddc1e882b7712ced170041296535b134c2c2e90ac5a883af634daf3941e4df9691e26ed44c09d80ed0463a31fcb8b3ec26c298378f3341df410ceced102879bb", + "leader_statement": "0300207082cf4e08d3571c0e097d7287435d98cdfcbeb5eb6173b5123ecd554c31ed3e00000142bcb0f2288ce0a3417036a856aa4657d33c24460b62bca892e17c1e7faf50f4c20d18359ef60dbc2fec9c1b02ecb3395bdd66890dcb06d07c89a7974d1caba904488a05c903c7408eb8300a45d1f9dbd4a679e50ca921a084159620b0b28e7f228f95fc9becc728f9c255d1400d890ea96368d036e2514a2c838d6ab9e90f72f44e26fbd7109cddffafa7bea740698865899391934ca1d40f198cd566539cbd047588919eb818ad9fc29b45d438f57c3d827d7b7e00fc55a54c8fe8f2e5f57d2bad31489491e974f8db7d6fb6f58b27012a78d2dcb84e6577d1084aed42017072cd463f3159e3e3f6e2805b9a31d0c28e51386836d32d7dd826461af1263df884b89a01d65fa364941a4edc16ec91d6d1931b9d75d2d003467108d48f32ca3016afc4893f89a5552a4045ca8e9bbaed0195885bb95de1c8cd61c3b8f6b7f32f0a354a", + "helper_statement": "030020f1fb32daa4263635b2db0bfc82ac90c121ed0464b1a4cd6267cbf96d2666250b00000142253a614350cb2269722977f7e3c4ac3e94d6d841aa69e1cb642dc2684feef97abb340e9daaf8b6dd4717206e3d41def3538aa6a652eb8b92eab511be0ea24364b5b7c01de57e601efca6fc23771df305dd5b8b9e431e9ff11e3a4ea61f6315c2ee02bb586952ff177e48683d6c07bd3be191d8ef6c21938d07da5d4ee0b785fb7634eb9920ce3c7c39cb59e4875afa45328c1a6157e4e9a6b34c833530c4425a8bef1328517c616368158128aef2b5e9cb45746922902af95c0e590a9679b6d3cf38bb3c3df90151cd6a07fdbb2a9ff4463bd03f74ebe92e8c8e3408e51133ea0a66f807f15d266ea2c365a80647d2e7b7b6a2ebdfe8c33b0ba7d9e382a89cc4984bc8a895d7ab10b3ef89b8b82db9379e9af44ff8ddf09f42f467f9cdfca0072c640f9a8c75d59626dc48dbf2db51783ca31b04167b7ce514f8d3020a93f4980164", + "result": [ + 0, + 0, + 0, + 0, + 50 + ], + "receipt": "5751413101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018000000190100100000000000079a2700000000000000020000000000000000000000079a27000000000000000100000132575153310102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1ec51ade404e086a9ea09d105e692d9fafc98445e1719805d148f881c408c4415f0000000000079a2700000000000000020000000000000032c3d50d9cba6c01c6b81228c2f7d68e6e54455a7862b956badaaf2bbd7f6c8e7e0000005089c0e4d578ae05514f335dc00588283907560f25fbf2e3cb4a609a0d4e55fae98ca15d2fde8db5117e9ba3e2df1c3d317f54827a07fd297af730a7156108eab4f4e6bb0e0beef8cc3ee89d006d2436de5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6dcc5f3abdd7523ffc5f8ecd229fae14b0538a724235d82142fcb4f940c029f9473c3a61fcb00aa8a26ebfcac27b676b3666d28b29602d9372218d216f51f000400000132575153310103f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1ec51ade404e086a9ea09d105e692d9fafc98445e1719805d148f881c408c4415f0000000000079a2700000000000000020000000000000032c3d50d9cba6c01c6b81228c2f7d68e6e54455a7862b956badaaf2bbd7f6c8e7e00000050783f1b2a8751faae94cca23ffa77d7c6faa9f0da040d1c34999f65f2b1aa0516755ea2d021724aee65645c1d20e3c2ce82ab7d85f802d685ecce58ea9ef7154b3f1944f1f4110733a51762ff92dbc921ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf980b494ef4dee1524d41a4af51a9f8265b051c777439a9f740a98e3ff95f516525d6ae60f7d84a3c6e2a5749ef3152cc208d3ec85e6f77e07605386a487aac07000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000326cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1e0e4731f21f1493f8831f06087ab633938d90a6573356cad4758c404dd6aff454b978c39ebcbf3e239685eb94dbc315bbecc29294da97a63ed58e1297a646105" + } + ] + } + ], + "uploads": [ + { + "name": "three_reports", + "about": "three reports of the open task, ascending", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070861323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e102975624767de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e8a46aa27e1afb55328d8fc4fe14a8df20000000000079a10000000000040259e85c0e86dcb765ca323761237abe0bbcd933133483037f9155ed23546af880518ae12f293151962697cec36b0b4fd51821c719a0e00c6086b28f8a14fcb29010020bfec6323ad7b320a11ca38a986b4f1ea20a50cd4520db9c2c4ceee8cfcb19933000001564d1139ab6326383f926094af1210093bc9126207b7c2eebe7dc4c347612c895cc49d59becddbdb281490db214734efd6fc05a2604287284ae044cec4ec53fcf5d4e99c53517011659991e27fa8a43b0cccd6970ce0222b9a013d541a661f0539b81ca6a89514b24596f560ccb48d8ec2b0b6a617b57553058efb36a7bbb5c65e78aa271b28b23df96beacd08c15643f6081fd89caf0df378590c44bdff06130ecdd9876e2e5e4e08da26ba5d05cd544da34bba3615e27dece62b517956f092fc3c76dc9d715f3d69f57bb8993c6d3386c15f4d1d2f85b7efcd1ddb6dd3e1272fade02e31e7fff53fb5bfa350840b86ed950f6b60ee9dacd24a60d7c140cb176f2830851be48e0339d360926bb7f92e1339f111ec78d1a5044b613db4631548fc193eb2e0111997457fe328c200795c16255570990a6bf780ab6d7c6c98c4865964741c17e0058e407284f7f39bdf68b7bf23d8ba281c020020c821d5c81a8e66d74284eadf160ee0dfec0e0e478d838e721467dae4a2de242600000056355ef2290455fec20a5af78843c6db4ca37dd2b408444f80d1d78764b2ab52f50651bb2efdba9aeae2f65ca10b509ab5b53ef9c6f2449da72400cfe056825f05e9437f451a7bb4a9c428e79370e002db7f7f8f71b9e0", + "outcome": { + "outcome": "read", + "task_id": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e", + "ids": [ + "61323382e609b519416730b0fbc25ec7", + "7de4d0304f6b3bfe823e78daadb4a894", + "8a46aa27e1afb55328d8fc4fe14a8df2" + ] + } + }, + { + "name": "merged_two_receivers", + "about": "the flight's relay file merging two receivers' files", + "bytes": "57495531010ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b500017fb0018ce3d4c29c59501069455f10144e600000000000079a120000000000408443bbd91d4c9eddf7176be0034925aa49219f0b4eb486254265facccfbe03f0a97a7b3c3fbdebb692a95e4f49bd1abc3f97789b3b947252f74d4f1059abf1e90100208aa24504653e6195a4691d7600b06ed0c307b4ee3e39aaabecf8a549e85f81450000052c6dcf38fcc3f6df7826800990e0124fdd4746038fd24e9478627378b024e5314b2a06db0e6dfcdd026228c54c25464f8edbea369bc166e561f76c4dcffe21cfe1ebf84321b38cdf525a30edb02ad50d631f459881fa3109b25faaec0943af97e5b19257138c996b9ee3e63d2f8914e4857080a7afc77854a46e396d79cec6b933a53c0543d4cf5862c512ac2a06f2eeaea4ed96bcb0052bda1859d41117afb8b1ee69b742a244cf6c49a1058811372e498e2cfc1294d6b561fc82f712b1ae2f4c2471a11c884b80339ff5bd7d8a7ec0bccad049436e3bd2f2792c8b65cf85f5c5dbada33bd7c3c4517c34d76a41477f3306fe4fe33f65f91b11ca0a7681ecf74f4eea9012a5aca51b4ddfb7de22b9f349ab889d739663bda56a2e73ff3ae4881023d1d1290bb297610954d5c393eee015a9f36047e0a023f9ac7dfe6d59f41bfc864b5c949c6a55c25aba96fa701ab349098b56dd43f6a950b8028f11e5c6b385d8f100c5cb511c0f67fdcff88a7d28663b738cd45a462fd385ab3ff662bb412eab92af5980d8524d2b8c5ad90a931d9e1b241202d437d750e66b03983cb6de3e0e9d394198cdce23a0848cb07ba7c39b314731322d3601e347b4d79563f6c92bacbf20d9ce6045bdbf2948a499de7f8e5a372dd81f7984183d211ba5cd68cef0128348063515b7a9b612c3abafd68ba0ccec8f713c2228316df9a3e78f9df4d34cfe8becd1b73dadd1a17ea8dac59a10b10ff1e6f88b57da49523d08a729ab82d9969dd0095a25e0f721561c91435d75375cecb7a1015ee7b4f574858549a3f1a9d13959974b9efa318d019285b290ed27dc681bbeffb2cf226d67e00e149d2b223825dd9b61295c436a18c4437aaa7961abf9e49b27258975c840d028a3e40dba366c292df9b30594f70f2ecf11dd3b492adc03949e5a44b42fe673f39de9a0ae8b155a5d007e29a09d20d7ed2a911760bda31562837c55d8c013322fed608ba50c5bc2d0a3a9ed2a4594122c55503e6232ad47133fbfb1b5dfe5614319eb0fcdda4df2a701208f55d7463fc2bf2fd1de1260a9e99a699076f623ab87002e5a9147dae25c4e289224c9d174ed0e21482cf47135546f62c8aea9e327ced0ab6be084408021d7e276e475b8b24faff69ddfd396e1126be0d1a8f0134249c293762745295070006a87e496ec38f6babdbd48654cb7bbefe38db51933579c78ce0279bcc3be542034fd8bf7dfbe08df3ec7657c714701ee5de7f769b1dcc3cdffe0fa20512b2f214ef1bf4fb8f9fcba575c200e21822c4b99df768e30d180cea416e377ba6ffebb4311434ad3bd26b31691510f303ab985bc703812a60aefc651db71ad8f2b459a2819efac0f9ab59068ad365b77cee0e3cc65945cf1a64f90a3010ea1e506a62c65350d3d561260118efa250f2f82b5301bf82de30c83a1502fdf29c64efa9810903cb6d2e5518d3ed32caae553f7aa2f5c666f277af0b1de01c570c280f59b6016eb7c8f1942c513f62f3c2e2ade2fc04ea3d362aafdcbf1dcdf1af9330ef0d17438748f86820e67fe9c3f4c733572bc3dbb482ed811f32f923d585c98c9c1f948b81569b82ae6bcf518b3292ea914fcaa20d1d0799ed1cefcf683ead543f33c6c165143974d8fdc2664c99120e53d4b220c77a952aab9301d3c56d82bf8e6874046f78489cce4af42a7957b958339641c3e816d9e912a6253aef390b8423b9b8527fa186663ed05b8cd6863ccdb4c7598dcae0ea3520100f51d2f6643b03f71834c1f9bf799e0bae2b4e89d2c835e3ff3cbb53a23d8c1ebe7f17dfa6f9952cc76690484259c3226c0e9925383ed9929c7a7aaf27daf222d9dba2c71d8f280f1022a7749bb1202002019932c884da95fa3e8706dd223b359aa2685962cb7f5bb7898dc0ce7dc9abf7e000001bc74985e6c1953352cd8eeb623863492c6fe407788997ac9976f3ee3a9d6e2028b6d64031de568c91ddf3ec7fce3e622ed689812299b0b9d21be64d1ba0b935542903aeba6d812dd695fe9eb29f8142c114a2f0d3ad4a28e56219af5102b5eb2c9a348054ff1a8e690ebe9b84f0987f5856c7175fd7a10685d03b405ebc658e88bbe31ad1a82a77de1cd5b0687b81606fd71472b490e821258ffdf2199805ec87926ad32918de7d02c1ffdb70fa9f75b0d3c6e8895b1ce470aa1d08da4ccb469cc72a4c77c67f09a83a7472fd974bb28789acafa19ecec6d85d0ce24ee151e55ad88c95046b3ebd9e425029683d5b46edd0faa30742073eb7736d038e5f6cfbcd5b229efa853dd4608da3bb472fd713b7c4f68efdddd6970485f44acac579cc43348cae3f25386a2d4a29c0040b29620e35750762f1e7265a88de3e2c48439a3b3a67b58d61a1aaa0784987a302d47e2584b3b27ef74b1b86fcd164a100e3714d413dafde8e00a095f8573f2c891a351a53679e4d0f8b764f89e2dcf40354578b40760bc570ff9888c924052154af0cdb1fdc49a4815ef4f6be82b9b1383994ccdbff0ad84684d20b20c59905f93fec28b56a8c152feebaa066dc68c1602ac8210891e152d62c2673cb051f3480000000000079a1200000000004093a9ba36135c2ff9bad8c941b39a5316fc2809600e35244358254f3fda5ec6e29fdb79e3f2df66a1155e93020eb454493b195118ce15210224d1e5dece78014f010020b682c926706d00bcf116f86b99beaaf78cfaf5e018a2c825627d6aea3dc3807e0000052c42f1a58e968e79fc1b53be2af9abb7326323d8d84b1bf667b535d7a62e2702d3fe189931cc56f719eb07509ca4bb84833ce74ce356283dd7db1023c96ec261e469474cbacd8bf04af166c047282b9b98be047da7e9ab0aa17b6e3aa7afe698cbf2c110eb0480fe26fc5c60acb96bb02ef3481e3ba4372862006b175bf10a16877a7ebfc88b5ad41f22e93d5cf08f9941339dc34d2b249610413b7268c2db9e50baf9bc0dc40d0f3fea7dede38cd16bc4590c287f9af99a20f214555dca16423312a5187b34d621c9131bd772abaa52c09ed40102f32eb062d4f1128c01828fb0305d82102958c63fa13c7d209e97fd78c126e174026d9634ad783f77f74bd261cf6edae3b83cd49ce40a83bbc56959321f9b9bd7f6d1031bccd02f446291435eda7572a10e275ba7b64cbe175e34a69e6e2d92d858968b9ce2990d7ca655b5c1c248ef55420c91e858a7d4e14b10f8564bc5fdde04d4e97314d5583877e9742977038223863b735aab30ef672f2e46148e4ee35390e9cd55658f2e879f853c4206b134594d345e683609600ed5879622018f8b3730dad5cfebd9c8e14153b9ab270ee97f500ba2b11661ec5ba9d8aa854f212ab70440e377d5965505a56114d5f7e1271333a065a0bd0d315b4f9825b215b794129bd375b5ab86c3a73d43844916f33e6bd945947dc7235701e16178ac3ca41f76aca76078d9f3f0cdddc36689149ad5ac2cd1d40daa630b7e05b5e031c29273ff2e17dc61e3d1d0df9f48711b9f7ae3d41b3e53c143dbde03b14699f8f2f5a1a782b87b8bdbf5bd45d5b05502dc6e9c0fdb11828d265f05b5e2451409598dac40cf82c43f0c82c73b025fd33bbe436c25846643ff9a9007793a201cc8cf615236ef01c820bfc778b6df24839df95e9aee15a89f9ab851b7e3a406a5fcc957b0bac285bd4978a704c1c523ae971c687281339eed25ac1e356933e635086024d22e85ee1a00392fc6fd85f101733f99e92785ce105442f55dff8ed03fc8cd7c5b372f5fe3c9ad08e784982bab0ceef8f10de5bacd8b1d401d9217d330109791ee33052445fa9b6e2dcec2adacf31ea62f79e42cb8fc97c3257ec47afea41dbda3824d7675b1919df58cdc36d5d8db3a3af27e3d759b15ba5ebead4352f7177d53c4d15e2d86125d572f71f7165854c3d51f31a140e9ac01dcd24236c29c4d1cfc070021caf4647ee8d3228a659e6acae638ad24edbb3811d4fee4a702cb92dfb7e3c71f472cbed35aae2a7c66f3ea86de1572f34b34632c965d2b7221276539496953e3a75445e649709009df7d39b4230110e7a2996af99b8e23bb7e7d22fc8a4a6554d1703d7665867fbfc72832350eb7681c330e1dd95879aa2c7380ec060e0b0cb7eb629cfcf09c89b41ad1bfae539a922bbf92f84accfd7fc3a9519bfc970d71de46698804a3aefbe12ad8098db9fe82fa539367bb3daa81cf04e9238de0dd7437b3df25cef5bf59aea761afc4dec79b708e42ce822649f4422b9697920ee62f5d0014ea4c7c6d49b342d950b81bf2a2e05a7c103f27e80889c8af198c145b29e7f08f410ea08d2ec87329b6436648c9b6b85e3777fbde5a83512f8f165cba536ec2c92dc0fe8629ba2cba821a638be893a924cb27d868e4d6840892d1463e1784af9872c8d22510210746351cf2a067c39143920467ed724d4415a03616c8c56dbfb9c1f42c6f9b72ffaf7316bb6af0eb3b100f6ea52554f6a1963cac32755b76996d60d8ad3f1c1e482f78df079c109365db5d4769893bfd23581344c2685d1b43d5b681841067896d3b0d667f666d4af8d6d2780ccb02c7556418ff8f37c2e4ccf439761f4405fa1524149c34646de643ab65069a39020020d214033ed4a5850ed945d0a6954639c6da60363088620bf514dcb20eab340514000001bc4b71d96bad90032250ece1d60a2d48c9e97444b95b385f7d3e4b40e5f20c74eee01cc961a34a84da63c1dbd5087bef6e2ed210e54a769e1fbab5a539dacdd70d859c94f7e01238990f894eaabb3de840fa4a7f491c77276c4eb19167b85eb5182b818948470350a238bcfa588ba471c6adad4d1be9ff7a854893af45f77d8624200dd8bee61b050317b2b8af447922f7b1e4049918d39eba3e2d83ab4e9e12ba437286bb1e017fc150967cef73bf7e0ebd5fa39bf60a8aa9f6e23dac11930585ee48c407eafd9fd6bd8a36fedd3e38b7811545b3905f12ad362e3756fb23f470a33d85a347f0c84476e000e27f1f0eebd456915d667543c950832242cf278380118c5102251fdbe0e997df73889dcf95ad7b299177d9e0bff4b9aff51494e595893fcf87f9ab048933fcee9ef6876fe31eabf317e0c663398a543a8deddca1e35c905345e57cb8708ed6ae639e93b80aa22a73f21858c02ab08540be1ac104a5eaaae6ee9d593bd46fc6b6f8ee86ed378b36e9c98df1fe18ae866ed836ecca9f74de83d02561fce1787a447122ac5e52b511e6b804bf292b511d4bcb9de9da6d461545a4f3063745cb45bf603995e8bb0bd87474113b95015c912e0d0a257ff2431574ab1a615c00d74eadc40000000000079a1200000000004001f61ba8daad40f19f36743907405a56a6acc5a3cf945cfcc4b079265726be05eb8018b138745f3944d515d5907d47eaaa1f934994be3fb77ea562817b08801b010020bd52de82eef2ab6eb48d8d42afdbcb9ee943509971adf4545de64731a4381c700000052cff5db39a0000128bcec452fe28608620fefab69e371a09178b21ab739377943b9d723a7a014d6f19884dddc4394468f02a9979a3b4bdeaa13e55db3dcad59bbd7565132c44d0c5fbbb86ccd5f9604d0a5bd51a336add88f145dde59cbd05a89e7fe8cc2ca2a201e9e9e90ce23b0eac3a54ab7d0f24492c1a51a4099579e639399456f14f5380334c5bfa9e1bdf117572f4d82f902fde4531a0030dd8f184161997530840a72baabcbb021f99266474fef7126a25e7a0fc57177d230b851a35172ce90685330747a1bee1e9ca22ada5dd0a562df8cdb4f92c13b36a3c1e004ba8972a0f4aeec55300d3608c20de1f4c96d222cca35ffccea4e708a3262ee32174182ba116d8b075b2d2c16f53df0fe34ceffc46fc9f421bb7f0619e1e40aa64c074768054cf4168291d39d8be2e24c5871afe1b211645b3c94963f19d26d44f70d7e9a4fbcb415ad5a865d3dc4e19aff1b1bdaf2c84f345e87bf5f086888eaafd6669119a5b3c61dcf5a80025de76ac98be94a51ea0d6807657d2bc491c8d21ab13bcd1eccd8ddd8ca1825dbbe643352dc4c7ded58a0b197da5f0503c388102500d1431966c4df547914ab1b920abfbbbc56d555eaaecfc104ed283538236057ed2c8059549aefa04fe7ab9c075f8052e50ada972bd3fbd441003c1af7e2d0ddec9bece184ad621bf8756aeec2a9d7682fffcca9a0699dbd12454c7f17d651e8652abfe5f16770dbcf8fee5d3463def26cd1dce5b030032e33f140971d654f5790fc715e42bd1a104e53b46bd700509ddfbe0c65da36ccfc868288b704a4c825ef059b238153cf23d387c587c9139d1d27e8322a94ca0f0a3eff25dceebe0db8cbe94c2f8c064c73dcb6051d09a6c8ead8e9ea49f0f72a4be5cba514de6f913831c8f2e7fb3fd5538603b61c26efcf989e1cdac843445fe8450fc69c733a8437ab829b1575cc7c650257ca9608f743006f429943fb3798d00592664262afa29d3f5265917bbcd691f0092a81790f6efc30953046161b8543689a65c89a45ba223b2211ea5a6ff9154f9f9f4a68beba557e77e1be5df0ad6d2556c129d4d7a93545f0c682ae7fb943d448ab16018ad716d7e6b095a79bcf72a3595c49e8ff178c5d7271a892d3c68d54bc06167525275ee592a8a0b3d1801732c8c61c5ac0c3050fff183ec2d6ea26aa6db5e2bfbcfae406623cd17f74859c98c18bfdc66aaeb311fdc776d6d6ecb5cf5129939a790a7e6864a2711960a01f2dc2558b2d91e9740c85b2516f8288580666563f2fdfe4c817cb6ea3a12437a7b9140244731e3eac5250b044ae5be03bd9bf41d7c820e38e40cc5e9e8f4d753b82003e224a4732e43cae5f2943f0656839112731e37228fc393e90623afbd573e0d713fbe09b8d2a3da53e14880a436ac2809179196110f3ac9014945c72494c55a1c2d45c39c723194a5b7f7606ca97ed14cdd4bc43f2808599689df25a6086739a6a6b65f27caeef408839a9a23420f4618fe486ca9a8f2e98a08289679bd407129527d383b1a29c9515f0f5fa10db9170b0181a35646a4340f3f8b07a05faa45b64f82cf17e93dad923c4dcf26ade582101033eb4a72e55db6ad51322e392c82e8903dec7400dde6b9bde92387cb9bf7f749240547dcce6b6f58fa14078f9f6479f4f56e14e7e6a0c306d81c721a23ab6bce3428058771917ebfa9a24fd1993007eb6e12d32bfdd6b409e43a34ed7f5015d85adf2b46f534fe51c3df66e9464a85c9b31ea9d5ac095b99cf308624d1dc1b388c8a8d2d2f8ab3db852fa82f77cba7cbb7cbd4b6918f24e37669263a6e37d6b4d1c0cf6fa9c7a8d7e660505335fa050fbadbf58b1745b437f69c018b0af9275132020020aa29263c65195a3edf715b05a7e66f1428e6f962d71432bfd024549bf1901f48000001bc3d985acc800387792375021268cfee54561d9e0206c46a241ddb54b8743c822d341afbefc6e60aaf80805839498c39f86c43047ba0999d31ad436565d9a7f71c1a3702c9d39e8a7e1806528d09fba385cda7d06e53dedd42cad78f99da4fdcf51913353728ad2f081289584adef36c82239d4de56299e022ab5209c2997cfd9db7301aae6571ec89170330f5caf5ccd5906d6bf4c2b78780fbf143e385b7240c226d89e086298b5f09fa75b8fadeb44880bbd32c860b925aefd7f7e6af424c3c4c9f725d0de48156e08ef583efa945ce8769d35c286a62b4507f24d1a022f39ebb3e76b3be688809b0b8c52ca82bcc2f90933c78db03740c0e842434b8c73b53434e9e24953b93897a34b01d758cabfedf4bc964b748cabce78e6ecade1166c6834472826e940627c3118cbc8d56c61cfa794ebda267e63892ebd54baef8b15ad00a93f63dc128907ca6bb64a1a74ab03e7366fab45d40297b20bfcd6431ebae15d55432b49fcf5f1ad35725a6cd07aa2a334f9c3fa8921a83b6aa4f02e7fb99a647a907c2669dcece7e604a4e38eee936a8fb3d59b015fe753240124b5a6ace7025c418c75a9e7ce7d155c9a5493f2367b5aac9e8f781119e540a8911d99c18dd9a0c505f13379e4c1ea37f0000000000079a110000000000405618aba3d11b7063af27d29f19589290e6f8e136c6c8148e039a6aed760f71cac093618b42e3235856daab87f09eb2f51d6d8e03665c25798cce78fe6a1473b7010020f48fe513b26b0941e5f011ef85f5167d432dbe14d547cacbe188f5f3ee9824510000052cb5740ed4f40be0720f0bad367d5eda5ca30cfa12848f7e2cce50b15a10d0bca53b462416d230af58d5c93fc15d2812f2fa9e237a03c2a4e3295a473dd8d8e6f908f8b0860a0c8fc2ac9726d7fc24aedd9019349df421e6e4af3c03bfa36d98c61644c3faa32a90830581d66bf95984aa08d1532f822f4094e5285e65d6630b21562a814824c6abd7dcb56d9e2de48b5b7c49b134c2a307342f8e0ebc8f58429096195428d0fff2e06be1975523b89af92c65e2bec91041d54ce26892acae50dce6f72d4a3545b9079faf71809a5236e202754ecb01ea24886823f4845bae5a7c5ba3ec13571ba47587584e2c7aff5ae6645819d03bf7e6383468eb3bd8c9802e98ae49d33cd9dce30459cabcfd5b18c2b2c5ae75537b4a5eec54c481a400978efee824796d92548a918461184a03caf7d6748d056e3c1c138c82e24e371f0dc5620e783da2b14f357fb347c9270524bc6bb8f5654f11324a19a2d8df7a4b21c61a969dc85aeda8a8623a6dcdecc874b1dbd9fd7ab60a263276aa938c2f528c31a1dfcf064409d81a03c2e1db13945f5afbd61316321b66d8d2574430f4c8691c79d10e1031ea9c38fd106fd71fbe6715242b51182e6450d50b2e3ffd37350d5e3f19b7389e60f3a511dc896c795d654ba9bc4000554043ec98f4ecf9919e29c3560ccf75bfcfac44928979e622ed0c7144acf04b2457a3344c30ab98adae96ce1c506e31a110765ef8deed2549d64f6c624ba23ad04f33c90f6519a8b37b7a00ddf8aac71306502ec478f9c51347605b86f5fc7312cc66cc834b54b460584959e4c16707169ccec13e21eeeccd00bc767f86165f2d3f2c2b36262840a1ea5961ad668b56ea896b875824bbe949c6b9fdbd9b13ec6f09f86fc3c1b116417833938b63ea3455a0ff35f81080dd8ec837d2ee7829577c07759272712abb7c920385668872c8cfc72e2665cd3e9fd9262cbcef6e67eedb4226cf842edebf95a67c41b4ec9667d8b9f56c8eb6f3041eaf60ce3ad9382d663a88b7c7e0a78b2eec628bf79be32f2dad9ab711589c34efce81c96970f6fb63609f1a5c99e3082a59eac889c2073f3754e86665557e812190818606609dee392c059cae7bce0b2aca442ba8a1ec138e6fa5e067f911b2ffdb96f14a583299cc3666ef0d1875a91770ca70684f28691ec651b47fe4e27edc5dd976a1e5a09dfae2a53b2ef6c1227372785670f06a2d4f8d78e015866aa1f837c1c5b3aa6de1870174e1a7e550a1d916d09cf2b440fdc78dd750beda6e5ab1a71c6d45856e5b2bd8a03d4e185a38f29287678059f3b74b34ebfe47421ba5b62ca4922cbfc7ed6b370860430c0e4be9697ff01b50959249e1405341ea9be6ba692bdf2930bc5fa90d0deaa0d39ea01ddec7e06146f1e3359275c29f6ce2dd34eaa888ecff8868ab45e5a2331a9e40b47b15e688de9b62f808696e49bd12ad8c279d91cf9866e15d18ed2a8a8ffea6210e09082b42786422a7623ba3e8f8d31b40a4768e4a05ba617791d1c071483801efca275dd8439bd0c85f16fa2d0acdf19bfa8a0c43d3ac4be0738edb0bedefb0b90a08d71783395e2aee20f02173ecf89714b4ebbec549c476fd46d68687d8a23925c82db62cfb8c12585ad42987ad11ab526494075867d972fe5982f227fd395e162306cc5d643b5cf64c868c6205ea1ed965d474ca0cc663c4c01b0fc3f6f7f56d72d598a35e361537b56d18614dad0318e04ead39c8973032d392424f8a2bc756b18c8d52f53efce069376a3bc3c6f937e51bc151e19bfa6879d26a0d1d29e9cb704e60eb2b3d71231ebc5fc4768a6adf49abe4b7417bd327e9ea670a71ad6d182a7ed23f36e6563c9381a6b924020020c0d6240f8a89dc159e350f7d8ad95d0f52a3b937d2bec2436b16968b5d3da843000001bcfdca579d6925cdc403abc259a3f6d89bbc07a46e3c0c05d6845c4b3f1fbf59e2a56a4c21e1c5d4e0ad5fb05a5d272f3007331e8303ccdfdc2ddb5dfa6f7f1ed302b61245ff478ad1f51c8e81432a79498cee15b4b7aee3de1bf31b17579f55917cc0e6d1752847f4a37d3907e38d4950fe2440e2c6e6bf164f53dc1c55b7118ca44d42f68dd7e3a36de9298103c7082cbe1ff0947a43306ef73e65c4a914f3f430641ce4ad6bc4fd6f605bfa5766b6785f9866a30e9c017651cde15ef1462fe5c73cb0edfd08e795eaa03c89de93a9b070a72181be254997fdf08a48785ba24194edf38a12807039258ea02c73368f029cfd5c8e19f55ff8fb4bccc8e1a772d16b034bcca83a7a8a5ab94bee27b7b07ac4742625835ac9cb9a2e25871e9fbab5b7c39226e8dee77dc7688db944a26b11c13257243452164d59355113f2d27390107cbb59273d58f186bafd820655adbe0afa072cc97200b9f1550ec2bd009c8c10ccb327d70cab5e21564208f15c48727a7f925027c626e2bb59be3b1fe9ad8d0afa7d8548cfccc91f08f9185ee9f334b1f83d3e5a8763bc3ba5b3fb2bf11c7b849bedc082858fd29abd2f923af3c8bfb82260027f77ccca4a6648012282e6a949bd8ea3a8d0777faa9c3cc30000000000079a12000000000040d900507b059e76e57b8b08749d804855ec56a8cc86538ac148de9dd01d626e49ded59523497d980b00ce6308a7040bafec0c793a9ade75b3cf90e499638ee0ad0100209c2648a6dd13ca21d2a07a9fd1b948b03a15f0e63d29538953cc7e2b600c9a250000052c46d26e56018baa260fbfd5726a97dc35513a406cbc895daf8a91e8c0ec321bf5c5c4f877b3565ff396d9d1ef0416a4c7e4a660374158a5bd6ea8e7db2818e96ee7c5be5187f11114d7f177dd44a7325a83fb29d24f1f0f873df76fae23126435626b34af94a7a314211627f0a2de0cba201555c3370a411570fa030ad8f258d249545ca9187d1081ada0b3236f49ce49b6b4bdeaf1eeb53cb135ca4bc8e828e2e99f8521bfa3ec2ada1d8d3114f24f65b5fcfd9e78865d26dc809ced3683e01ba8995b5692ae93f87354bd49f944f9f227cc5bcd00881880a02edc8766770b3506183456dc29ef610584144b4157c9b5acb476721df4890ad82b85f1c2e75ad30d68ac6bf112dd91029d48911213328d2f05555b9963e83529fa6af5689494a72412407e83778c8551891cae49c30faa98e9b29f43a6efc2b34fbc6c75fb915fe4b061ab16788d3c05e88682fbc387319a8108bd1ac380191af35ba4622cee4848eaedc1b34d0dcc6485b7efe70482cba3550b72c2f64fd390615ae11db4568b13aed7ed4892fdd5a0bde78945238b62c535eed29a19ded451a056b8f3f0bc1b013986bb87406ffd4226ab17bdfdb10ba74dcc2154ee3adcef153e8dc8427a78d09b2376a4a5bf6bad27c648b87d100dfcfa5cbce5b126cf78fc13dd3dc4668813219fab10c5d877bf175cbbae96d7e41534149d19f7f198cd7382b338f44cd21744cf1f6f81044e91c8d634a89435d519bc420c2868c0fb554a4fe9bc7f670635791ac28b399d6a802c1c5a40c5edd691d5a601b4cb4cce4f1568e2d26242f68fb7c9c3ffc64ecef4e315a52f6d31bf9dcb8cc4d65bdd9175ac1b83ee928597c6dee852172de1efde6e11a69ae2495975e79c11bc7b769bda0bd80343f6972aeb62a3f88dd18607db49738afbbec4bbfe59e82fe61a4bcc79a0e91de77c5ce4c8afd319179d16b62487ddd9a44286dfb69f1758ed18bd35046906e3c2fc5cd0e416cee2b3fe6c8d786a27993e360de113126bc8edab709755ed81f8cf5ab73112dd8426d7c583ae3c4e57d148b3934ba1257687aba2d405b18e4c18a1f6324d751b2482a90107d1de043c5152827d2f38b3ba783425603b2c89e16e73d10d3515431402bc0668936cfaa2075e79f85a717170b2ab6d86b88b10f092000d5f843223d3655125bc59948199cf512465afbe8d11f8c80c9d7b1cb8ce07acd32f74df8cbc3b62b57871929e6f946a90a7c9fb39e179d9ac8c7bf77ae1f69753172ebc8bccd396629f9e0c4fb32b542ab6ec7bf04dc19504edb9ac6db67b8851820aa7a701fdc390ea9cb4c319ec75259a2f982fe10614eb3afa0850477a99f2672107de6946232a6609284b20dab48a58d89fea6b7fdcb3d6f8c38f3b764123b4fe1af035ee9d096cdfae3177bde418d57532644df07ef974840342b0c111699c3d64f22d66384906106856cb0c24d15efe703d415969957df2048745fa13d6e1ecb9f05069e4cbea5feb889e32111d0f34ef684b954d246bf5cf4d66ca9cda383c56ef31ef9068f517e6124be99fb100476f9ce69e6c06468b7a2ab2aebb97cff9cd06dc0ea256e6b810a36c38a3557d82fbf63376d65fe42fdf19eb2298dd992f6c1e88e9582bdc62396a318eee8e8e42f788e1168447b4da3de63e997f95829c924f53ce2d591b37c3ce3e06d9e52cb69d885bc4afefb679ef2ace6df0a0859c85e2c8a6df2fcbace4cd0db0c33dbf424f35177ea5b64121f2ae2da6ff762cd941533740766bc3857f36bfd1d3bc96b93587b43dac7e978f15803eca7443f432f82cf0afcfdc6ea9e8ac2b7f9d002302eb39255c3c43e74ef7f1188530b27a754e055584452aad424294e32802002046a8924e43bb927093339df4f65b52665cc90a9a5101bd813b88eed72feb3177000001bc015c6f07445a65d6e96d61e74a401d0f22e11871b79264d05eefbdd13cc0401fa732f5b7429351189d7cb252318620709189176db3a2e6a51da5e2c0e41bbef95a4df8d9a0888c1575325778ecd5b141c3f87c2ed42b4f4f4d3fabf0f3c10a1fb973498cf4325cb497d6a566804c0e34031a0f91c51d70120bab122b10ec3e4a7f60a29288262a6a3022e58ac35cfcf58d88caf923c911c06dbb338e4b8d60e1fa8d70392fd2dffd0c9ffdb6eb18f91bfea593c4c14de0784c5411e5a7fdb0430906c7bdd334dd47622b7244c1f388e9e9b21cd41c311bd679a3777bfc7121488496da1c57727869677872b0771f5dfe08012d5f121a1f00378d04cc5fd2ef7dd6c7f0d6bd98a44b770d8418b93776e89534df8fe9004b4bbd6c0f40c90d42d23fee3b97b0804785060227cafcf6a3942eb3c967261fa8cf7f0c0ecb79515f14bca5a506a14bfbf9c10f4119d807e6334b2d87fd9df4a7aa6968e30346a10d6ee53a6510efce8d719ad04a41906424404eeee7700fce28f9d4e787103b413cf8808ccec84c9ca87b81a0524994e04a427aec0a5f333f8088cc26a09b6198d5e13bfca1ce7f89c52bced43fb0c3212f8a32709906e9370fbecd12bbcf2642b5ef328ccbcb4158e53c9ba201aa0000000000079a110000000000400e9d2505474045412d42def11d453e38ad144c620e1cb59ec4942ac9d2d4fd9c3317c491ef581c5cc1442040ce0c55c494821834c7dbd4123b6cd25c0ab8ed210100203647531190ccdec3eef1145adb7c4ff780828fba1631ac9ec7ffd96eb2e2bd6f0000052cc3ae88b2c5cd014274dfd90e5ce93655fc36204dd001b1aab4fd8e1a029ac1e6eafabfaefc33afade74bea46fb0560a775a82c5eb5d210445deaf201b1c8a9ed5888581e91b54cd418062b53eea7d8592049e75fd6302b8b88b544617a0aa0124a1ab80ddd5579ef7582584423bb2b943a9936740fbea361dff8a51409fc48c2f6ee6f471b0a92d4c1c53875e5657d73f54519e5e10f176aa76ce4511b85b37fa04d38b60b3583e2c762d29b4b102535262227055af6128a0d2242e9f55345e5c950b08cfc571a21811b5fa2f742ab42cdcbef7fc53113d1b6472dc251b6d831e6020fcf0853070b960e93d41ad38bc626666c800169580877a9f993bac3ce78861f07fe497d9a084d7fa2ddb1ff6fc443d014af80f21ea6d797f7634a6fe4d430c05f2f0db185f1bb9379986af3f0a3157626a2cd673bd68779c5e58f82c453a9d7b6200e04b22390c84691d70607a10f309364d98bc430ecb45b4216c4e8fbbd7c6cc8cf46b255d84bf676a02322805b9c5c8fca67c93a4cddc5b06b4523e2f933780d66b9217d633347a8b6560d94c269a25179f8979347c79411b4dacf1b2a32c10f42b8031982deeb18a1abe15a3eb7ba0613516af5c77d4d7f57c46cb599c1ea7d1d7a03137fe76b2fc727e1b598ac199775096ad6852a93bdd4645d2d63b599e84161826b322cbdc517bb934abe0a7fcf39f0c664daae97230ece9ef94887786aac5b471bcedc50fcfaf862dc03e0dea8f977cd50a68abdded4856b7199bff282288af2113de2361853499ba4a9c24a2d54bd36b9214feca62bc604921a3dbec9547ddf1dd8cce3cb16ed4dcb94388be6b37296b7362b05747d6177e3030aba613d9a7c44e32c108d5acf74d460adb392536ba76195616d176861c454b331c7f6c537a09a9f04edff3412be78a98399399f03924fb31aec8028eb74ea9643751675d3fb63bcdb67a011a05d04757a45c61402aaa8b0af85f8d93975d508f33e81529aa51a4882c624528c552ce65a2becbc809595cc675e837af5327168a7875ce435b8aed9c0f070d66787e2e32265b039c2f0a63207862ef96426854ef0e6c940496f525d863391c454584ab6c4e46895a830115800cc422e58c759af56f1f804c57c46309a0541a955a59b11608d2ffc4b60cc01b35106ea3766ad149cd45f09c17f6d0eb0f077aaf0608005aeb808734303f5d7cfabc624d7ecb65f315c3b75bf276ab87bebf7b0a55ddc97aa201e4a1f5d88b408f07e1d69a24bcd3c76b4102b01ddd5731cedf977a015e79bdddae2877325de40cd32383de27c8c0adf1a27f57a237736e4d6914ab979bbb00e81b9f4138789e9e99fc54eb0223a867b424a752215b04073ccebd44e7cb72a7053bc18f2f76a3da358b6aba89891b1f5f75e12f4fbf35b245c2a2067dc2711c8305ad42e3f04d9056229ad70c885ab0e23eef47694422011b5caf5545514768efac56b3007967c5243ea27df2237934ba465addbd409eba778d9e8afacf29b97939ed6b056178a07d1daacc41eb3c42fd868f2366310de70808584f7b1b39b9ba1590dfe1cdf48adda6b3c3fd42c8aa20c028fb96d644be7db1445715b86a1ca317cc666ec89792c1eafce6498a54029e7cb3b4927c9f491e30fd2f7e078a03e25743e1ecdcb02bd84f146ae44c8fec2c74081d39902afac1eeaa2c15c4e9c6eb9905298f213d6a87a69ad9c2f2b20637bffae79053a7a78588e6b61120c079acb97a9936f018f68f1468f10b173ced772c4a7607b8a970b1bfa3a03941c4253dec27415b70a04961b037085b3736f07d4dded22f0114b73fa746cf001e1dde35345a03eddc18b3def9a44a7db10b1c5df4f9ede751ae0e4ee0200204202fe988b93a6667606662882834b4f3a1b11a2c70b4e345877b6b8c0087b39000001bc16c6d5b7081d7f7ee1322fff410e5a0c31e839df121381cdba37f332dafc6b6f2af723109a3c1192f9c36fa236416728db1c978cc1a7688d72da550175a886f54815dc88232535908e98c79158968bfc2a77a4d46164f12980b9b0ce45e4e0dfb7f84bd8fd8afe790f8ad82c6166f46972cdde0a32fa7fb71640a03cc8c729e739cf5764fd697692ddd2a8e5b98a091b654e6f72ec3246886513a8cd7915004cfe831e5d03b20d37724359ecf8d98cf98a1e91b46fedb9a17774985394ecbdaa9b841c2824de9eddb77c4cc303c08ca3278559abd6e69f06777db871e284d8518360a2b0c4768447d674ba72f174a1e0d9caf7c32ddf9ad175cb7663f541ddbea30af3664c5f9f5feed7a4b5b4c680026ec0c18fa22b78d9a8b344d9ec851dcc2c4eb105005537e6dc8d03147f4b24e3a29ef5005ee66efa6321c9afdf2c349fcb38abd59fe9f353b83ccb04e2bd0dd857ec0aed36ff6c0ebb28be9c07d55f84674c4b8d020aa7b8d0d04b148a2fa30c96c4e0816563f871d9db007e9ac28dc2693fd6c47f79e89259d7fd9cde50572717b4f33bc529acb53b5e44cc7877ccc5bf9002d8384afc691c4551a4233e776d5b54ee5372e036f130ab82cb291177eefccf35c5fe6ad8ac24d827f80000000000079a11000000000040aa41a457d7eeea055625bb96a1f3de6a167ce888d873eba0f3732541215c9fc06663eb862e1358ed23b03d3d65e85528e0a1d82a4f80d8fa5bb5465e646f40de010020269c1330488759cbf6ecbc5c32d705331bd755f5ae8ee89a740cea8feb47c9310000052ca489ef1473d8f2678b5e246245cf19b0d626c002aff3ef87f7454cbc7a52e2659e5fa61746d883faa7541a96d01faf0665e7548aab6b5fdb1533d67aa841f3c6ade3e2a9da907298dead458582cd8f38726f0f12a41c958ff32b01dd2f6a43ac2a6b4b6709724763d5e8b80fca3780710f4a516e091badde5f5c1a85c9980ce7a5796e2242f5aeab09fb6e278e12eb18b8ae80b0db0a2adfbc3c345e1cff279f866f52ba5c08dc8e66b521072dbea85c9ba8c3b92c0c08cff5ff0d3ace00a0a571292f7b53f54290a14905146cbae390436a117fb7f92e75f245385e2a96d5a26f4ff74dbeb952545a5eb81ea9ed5b9fb45ef0ff57d298f2f8ea0b2a2fd5b84e772a1350abcd8590e62e2cf14d4734aea1b970a6d4e8bbd237689cbad37c8af0251fbb9986dbd08cb57f312d2b22079b7e162ad506ab1a05be0d13c710d2dd6cbd36d220ad7cfad8706d17c88488a8311a635d577867a1ca0a80fd04ec66f23a139c5e7d7c7b3cb00790c8a8ce0ad3b437e158e352c0a0fdff2720b7ab606093af6ee5f0323a138de5bbaa72fd5179f048e9c2b88b1d850734c03edaeb2333f33b689ac97c61ea919458a716c0d32e937fa04074eae5800b74122f4618238093c313b521add325eaec073ef44b1b2f34461d28165edb7229a1832e86093381039a3362945fd1c4aa60a2189826b215fc410a710a4a441fe284520fd6800e7adaad7d97d37c71662335ffb4ba028c42e64deb00acd063cf5452816db0ac7fa4174dcb2fcbe8b7ebfeffd20fb288aeb10348597cea24d8c370cac7053d9ae79178ab3150a042dc3a92abae9f95ef930ef60e0cf0236587a4e758fddee281753cb2732d6d5ab22dde18945e034146349ca9ae5fa87de175707992c5a11c01a86b4d1c0f2c36691f73520357a8381c950b13ec08efed30c475d130c821014be29d25db07ebfc6f4cdbef6397008554f924f99f934924ed2b79ce70e10c71817c8571a73b557f88b83b688cd388d40166806d96df53dfeb89c21c6146acc7d86bf33fccb2d425fc7a94bef3341e7f5b345c6d03d346e917791c5c7c3c0b0b2a976c23c7a8109f1bb81ee05113053990662e6f766ff5c92df42e35b4e1c2cf7c486e385a1e3708374babdf1aa6446b3afa360604c5208be98b298a752f49d844b9a914833d1e49ae4de38d3d95f5e5c489f69756308906e91016c16e3d700ac5ed9820efc44feda757323ee88ea33b074db5aec650ed6522d4d55d3e77572901d5d79bc7fb5c60ec8c42e952eca717539d3732ddbfb8aa6e21f35923318f001af8bdbd6e2df4c7ec0c3b1d749eff53e747f78010aab7141cf2c3517c3b7e1c3aee2b0eab5c33a480aee75e1590107c1fd2c46fab0e09f195a4a96bda42c32f208aef8d972cfe75c6ea975d2bf3ea92fc9f9db22f07e5cf7c1c264816f9e46fce46901a979596ea3cb7bbd10e5b4db31ab76bc7485fcebf10a42ef823fc729f549e706bc3d7933627db41121aee44f5de9a85e4560b3d9a6ae14e01ff58556624048bf42a2332e041163ddfdc076a717ab0fb0153ef3d139cf0d547a0743a0f1b7df72396bf722e8ac7830dc3a02999440aebb3529aa4c5eb823057612af5da6a8c1d8e32c204b3f994fd4968634dc7f55893949401bfefa25b88723f0a1235074cca8d4e4b722b01a939e3b10eaa4772dc161c43f24487ac9b53bd518d275866ee7f79bbe5807c3573bc9fd228b60ffc481ccbf0efdc1f25c2d6bd454f7d4d335c4af892f41a244c55d72918d9a3a950f30a9b17269b25934c218866dc235674b88c4a021a6bf29dd8c98dc2ce36717283309f9658690ff137144c94778b75f0460caff57c664313fc751d79edf362020020e87c7ebca643873a0624f0b8f9513f5adfc48ed3277720016bb08faacd78957e000001bce340a385d6c39313e8b0c657826d9e83f6b15fa0ce13f0509b724419ac4034eb56b47ab119f59be4874d2c0da89869162a53c95fbafb0312a92d9cf97cd2e3b6008185e1afc982f37bf06c496104dc922629fdf981556ccc852cbab39b4e0648f3e49aa4edfdca22f9d08488bfaafa33a66d7d4ef09cf1360daa8dc8d9b8b5103b18fdcdc86e355b77b240d59838054df1028ad3c5a31e5f7af2868ff2ac175e8c7d37588f4ec5225b477aba056ac1f1082c22629ba8e396dc52fefe4cb8b69a8476db47bda9afbc06c59696cad125919209076c7522027ce018e315af2b73b77ce4b57eb3b35dbbab3152b282bf709a00e85526852d78515d3be04c87cbddd8aee36bd1bdab44d3e349fde402791367fff00cd015dbbba78fb674352f6664fb91dcfaccaad9b1176a325d173e1c47c2b0bf8b71d0157bb91a3a07cd0a391f0949743efae94a47ac5337fb25a31376c88f71aefa1e00f8b1f983b663c66f668e3ce768805c8d7eebdca2598d3e0e01cf5cdce88b896114ba3ed7272df4b25c23419fec44b7edaadbc2c2dce2ef9e7742dcc5bf3f285f7c8cc5418902982d485bd7756cc1990c6a880f6658b8f74b015a8dd73c1c0b8efebd9e7983ef2c51eedf639de31fecaae7df9890cdc70000000000079a12000000000040450f0eaaec5efc71aee125fae5038ffa8b13cf0ae1bccf400f7949ce29e05d52e35427a5de62022513cd41b218e75fc2b9454e92a9f747dc7cd68cdca439e72c0100202e735fc0f95b0bbaae91e7caf9488f44fbffafa68d8c8110910ad0b0d193b73f0000052c6eb6a325ed383aea58d1e23ec99cb64103dafa93f7b57dfc7bcebf5bc43a0726c9c7e742201c2f21ce3ff1d29f62eca030776e69c10a5036f89f70ca0db40c7406eed49781a7c826ee65c441278deb84c6aba8afe1e16da93b9736fa4917078e56c61b9ae7ec9a5dded9c30d271da81f843a98fb916ea4817b5cc5e67d6165e09ba483ec3fe7cdecc7f679eb275b7d712a2232f9740e94b49e69ebe6c10d9032ebce1358255129ac9d0d2f6b2ee88e25f2bd5a42d4403805ffd4e0103ecb670a3d9b9b51f0f5184de76d578e67cdec6bfee68bc595100ce166bb9278f54eca70710a1d46eb842fcf3595642fdbbcff164b8c8c4fabd269a917cb239a5698ad4bbc7b5f642be614c0fcb03243d049f9efa8edba0c4705dd29c018c935e8b99e39a8a0f25a8af7d8fe316755b2d81c0df0d3dcf146b1cd798326b7380c89d336ed637e4cf6bf19e1751a9d23d1c05d3d667f6db93df029ad278e20735fb3eb353af41c5863665845aea34c996e0422ce26fea6f31ab2fab09286aaeff3e75723948d2e3781a1553f5bb5edbfe162bf28799473895b270e408668c146b7177ffec7556b20ce4f99887ab1aa36b86431562924afbf316e933ce7ab02db3e1ddb7c29bbb9439675a41a8e3c07b4bad9be6b22233a458ecbbd85820418f2f980bde8918d19e9aa49183817a21b70079a490d31e4fcc1cc80810e5ed0d992233bd593d864ace8e196cc87ca4f3975349804aee449d8c841a6e55250807d84757c99a613de631f2ad33d5a42bc21a5fc72d236831d7d6993d1f3699274f62aff050a36794f9f5e17f5b29780925ad6b1ea40b68228fa66fcb440091ce0da5e1d94ff73acc81d6f763037d6e6653056d1f05b8a3812f0872310dd92178dbbda1e782183996ab36329810291394f6637956fb0e8a6a418c41c161473c7d40d042e7f128bd73f4d430fad42d7a7a8797feb40cd5cdacdb2ab77fe01182747eea5dce0a9ccc649a89a3c432ee001766f8c9480c61767cd96322112ccb35282a03f0ccfa5956dd7633929dea093a85480a1e10fd9d79365feece54be868b22ef783077261ae10ef1697939b9bbb392a186e07dd8c082ef9f4cb35aa5288fc0d0824968e68965ccc341304915051b01e969e2ca49afcdffe9a2ba2a6a1796e513d476c8b011038357e23be7d9e3a57ad049a6d68f14a780e5f731a809896ea4a9ebf27be54874b26d82d9d213c11670f86dcdc1b618f16db3f99975f2c77da98d305b1356cd6a7c6c2cf278c77e1333cd9d7a1001c518471e5e11cf816a4a782066467e6966511db7c2c843cb2171f0b98f3ac55883dc547a577810b4aa61cbcfb0ad363b608809b53c51fb8bbe98d6e3f703f81832f9340b3591b0814f29d167487598feebbfc21d8a1889707a975757b05b4e15c6a247d50940a206ea52e0ede88a83acddd40fdc6fa7adad5136c393626b4c758e2744a35485fb90522ac311525fb2268de4fb87d7620e1e32b499ffa807a11a9d6c667503942847d6a332fce049ee7c2c5d444097fecd64cac2b5f0cbd511f917118c285fd4c298823891dd9115c52a1009ebacea850bd1191aff37b6c64b24aa460632618b1c69da8c6286857ec640a3700db7514d6a64cf501fcec5bd3ebe736f987d4546e6d2ea6992d6d536c08778f1248374a0cbcad845f02f9fd3cbd415c7015ba4d8d7c8aa77ad07f76beb688e15350452a0086a793b955ab2cc93256a7fc1493322043b9172a408c8846062dee506c5d4c2d1454b899c590f9e7db28e0c00a13ea37abee80e0cc96e0b11da1b5e99f1d33f8e3079c5b21e2e5da8c8bf663a1a7be2218fb67b7fc9dbb64b6aa79e5559a099640a375d263d27d650200207afd6c650e45d3a33b634a1d125ddff015c6c60d5a59a3a754344eeead6ba34e000001bc1afd56c5d80198e5f675a25de717f4aadd9865ec2a3c696e1af55c51fbd5b4ffca0e401f70db921f4bbf8a919633170480b1246aa396f517129c1a63abe1a9e4d22e6b399438c0519eeea94452ea6f55993d3e9b8b73048093e8c8915a929d50627c9a1773fc81dee5504a22f004fc6c3fca0f87d199d51a9a8e28be850611f22185cb608b939e653178270844dcd3ac8c286d2ff4bc401531ab106e0d8d5fc75f5b65781450ded13c7e5a2424dbe4a76cdf42ab7759028e123c96f90a5512742b7a456e372186c440b6205773fad8b1eb1a955a3c6e9d0b34c07eafed870223a050fddf1b38764dad24c20a411d56c9f52db7c3b5d8957694636e30b623e225c6013689a33df05d3619eb4f184eaacb0a17d5a478bb3f116494209da05cb561bec6692c91f49e8314ad71da484835c37ea21dbf07a3282ced00b5a8375b0fe650e1a364570a0dc0e846571041370108f63ca4660bfb359f689ab1db2aa91de911c5006f5bd03203a58454256d29479a3379ea9667a9a831058d39f32f57076cb0d08a24e153e71e129ad2e50416093adbb5fa445763fa2da91ebdd9cf5fc17c507bdc67786dd5f56f70cc93e4e720e204ba566e72ec5da30ee147bf2cf06ea0858f3b84c2f1b6cef9eb379e0000000000079a11000000000040540427952346c276a4b7c69e3e18306ee35662feb18d7974753c2d4cac8725a3fadf01557f0fd89116b2f7a0e5203ba8bb3cb3b0d9d2e3f58a9e4e4ab1a065c801002068cbd7332c34ebe74a84a4648330514faaf78c68274226533837147bd4aadb5f0000052c7b2302831f0b8a5628204ba0bd29b35c04bb5ea53dbd24fc645d8b5d3d16db92bf64da3d18aa9c694eb14d27130d0a0144648933495a16c46d7acd8761b3ba8dbc082e6c221df474ce7785c7af03bd79e4f76da00d7e12547ac6add2116846a0d78ec59d7206526f5105b2ec11eddec36f8793507de7b5d2f764766a4a50b6f3be0a230142f99573631e33216d11b2d1419460f76c6bcd9427616fcdcab69b139e418801549dbf092d92e4cf188632a9cf89546588007452941109f1e0d69c20e09ef680c55f397d89267865f7e4f794fc051961aa4dddc834852a82fa809236f8261dedfcbbae13639e108152fadc7ed687389f6e9649a901297a11799c00da6ceb921fd87652b8a374184f3f613d6bfef2f61970e5e951faf13b09e6fe74616fcfcd5177b494e4530822641f2045bf2d99210885db1da613a1b427ef7939be5e92fcbdd0cab803ea32bc251ca8c0b630963c4cdb972920397783ae85c47d1c2a8f96179f5d808bfb11b0db7f8249045ff44ef3ddf0b7f113b7dca454bfd34b1864fdc6cac6cb4a92c28e4dad2c4f87fc86fcc91a6190225b3a24dabfd80b3a5d27b67861cb80adf26cdc0e440bd13b321ea0fad9f51647e365d7ce7e7235a82ae6f78a27f74ef796be8a6c3d63215e027b65666a459df8385dd828a5e03380943fb833785f97bb5108b6277fb5f3663b7c411ca65d10377ee2b9802a1d7a01be34b8406903c66bc9eb712d95725be3cb64ffad577e5b24a207bd3891f4db53dd039b35a99ff3f6eb0de080be4b1aea3e3d19c57f944baa53d12fd7ec1503229c029f13a93e7c7b52a9473c5c62983cace9651cb46e32ce804fa597ecccc681964bf615c60ee0862243b5c6d14334cf6abc82e8dffd71af4ece11199dc9c5ff40c6bd3f9eca88e8ba7190d81acead584e76ef41a007e64733ecd91528edb105fabae2acfab827b9aeb54ba64d7977e01d08690c4ddb4f0dfde52f1efe773f779617c7f80b9d67dd05eb05a14fdc81f4f0a422f9c200d324da650f64d2c8566fffdbd0ec499f4d80692acf2d62ea4a26bd0564fb753cc328730701d567880bde8d8e377afea8b839c7007ab0fd02139ca835288fc5a055e84f538c9996997c5aed0bc29771f7f320bbbddc8b83f6861469325868034bba5c15593706afa1c3538025ea7e8e86703331a1ac1e9a5f2e671c948594c7b90cc6aba71f7f8170418618069bc921401b87030a5a4749980991a2a687790ad6d996ad76858e026dd460ae62cbb4d889cee76888fc031ed2ba761dc31f54f21a11ef7f31acc5fdb9d8808a7d69c6cffc2f49943bdcfbddcad8ffdd081b6e79a67d23925d82e0485948cfbffc3db404bb45f964ee5a065675925afe97faa93458074b04d5d57a98ece77195a8a14c1d0c1305829511975c9e6665515f7f7c01e608751082d4ff42d537ede1b9db83391ff2797144375d38b0d6f393794b17a38abc44f327d41b9ceb8bce453d8c07c9d7a8f892904aaf9d9a57649410669b1be15a32ddbf0d9fe58aecfb88bd33543d8b6bad0ede992f04880d8fac976f38d523fa0346f91a2c687b18090d5208601834ac5d0ba4a1633d7dd41dd85a21827186cfb92e7f6ad89e85734f509488160ef6a3559b18084a8706fad1e168a85ea021109eafd8a2bf787649b1d6df67b817d6a88fa52a5dec9f42c588d706f9f7d555a99443569594fe89c657cc962a523b9906d76d6ffa010f18c1d42d6abf3166d5be30b1f4b9e74606608c9db46490a788c00cd3fe7a91d6d44cced826950e0592e66b0274549b126ec778bf9ba707e38c049785503ef6c7b566250feb7438907995ef17a4b62fe373b8794cc71109242ad5cb769e71e80200201b121d2257cb93c612a71275611f8e30bf6e7dbfd74d046b6b09ef408c6a0152000001bcefb72025f005a90142dec3a11b4ae7549e4bddb108697a02fd2267c392ab97e823c105ebf3a3c917c0033440adca7b399be6211469d1d326510f6b1ef5dc71e1105533814dbfcc9a0c1844ec2476008dfce1265aa7ae77f5ba7fea30c621eb8f8ba028d683fdbfff8ec803dfd5aacb8a954619eee65ec20749f46ae457fb8e43ab97e4083bab9b326deabcd26a9a5ebfe84683e94f368d5e514c8f705650f61981bc9ff034250a4a1e40c20a3ac63f3ac2f49e8bd1b8071c9ce8d8b27701865f28666c88d72b950bb41137b224524bfd1dd7dc02ec561c8275b5e173b8f6bfe0f1f121aa54156e70297191f96449e67932e38020512c94a0f1113b70d7dbe85a55eea0c1f83a67e585eaad132a8e9e4b54d774ef480782298d5f6e043618c54c842edacbe516de3ba433bd03d28c8ca46a24b439805783310692fa56133428b8b482dc4c9b4971831490b4e1e5a85a5f4894174f60f4c58e02c568d5d4b9d79da8b32f8bd1685e8d71c7581b6d1610759c0d03c0340cb62aefb8dfc50019114458a6cbb5ecef3e0c19c53fa4f434b8e1d2b3eb6ad6e36c052d1af747132ec2ddee0525b7361deccb211f5fdf583753afef4b8ed4ddfffd91b88547822ff25df49a3b6cbe82cec68296d5c3100000000000079a11000000000040b411111b9a73ed732062a3ebb57cc00ca7f1c0581d88437f8b6915372fd8004c4886d15103ae5d499abc422e86262ffcbee10669704811dfa5099232650098010100200a1cf86d3373edd636e0b401817adba3c1e0bda7d7bf98392c67f707ed98f65f0000052c63b30ddcc9efa465a7e668e34576587198af0a0c23788ec0e45ee1204dbd3b5bf86e10459ddbf42041abf262e61407edf3037b60ac4c9c721280b5d9e08ac69301f2797399207f6bf9e4c2bea8e4701e6d78e54e05988985c750162c98764fc2a15f2a4be47618f82aa2c8d6cd1ef03655d1de4a07ce479da274174a82e42e8d4d80da4626cb33f9c1ff73e85cc8df539d02ff1796eec473c4cd9392348ce0e41203aa879fac67233061234534d323d80141043de59bfd93881edcbd3df26d06c01e754080a3f5e6e96053d62935a252957d7f17550444ceefc675d4275beab1a2dec9df8851506e77c26e1371ed1f76ff9c78ce72c3b52b7af32c557be64af5c0469e91fc7c07bac035fb7170e2c6f23ff824303414f3fbdcf2c27fc414fec42a924dd9e63b9d3eac4d3abd527f7c023c0b66bcea24f5a9c45f42ddb6f1c9b8add68c448cd18182d3d04e9da25e5587faef290530213f419c5336cd4dde2ff0c4539369df1085d5d0a327e588ef64780d05c8344f0eaa2cf32f5423cd95335ecd1989013c6bbaf6ad11607aaf367fed4d3f04ef7469d87792c5253ff7200eced7cee1de7937d45a677389b580db3a2a33b9f7cb216c131486a7f3fdf06d232ab02de2db8a98c3eb6292ff45020f61400d07f76a0f05a1e8cd4d283bf01799544afa7c515daa5ccc6f77930a551452b50bade7b6ad006ea9e7176cb6f80be210845bcaf1aa191c85189b1b919bb105f4e4f146c6628604ef24f6ff56f459c94b38f150d8609a3b65f13cbd5660b34116b385f9f7d12b090daff71929ace6f75558924db0b405798541af3921397bec761323db19b8499e0948372c137b563073795578dcc4d50ee15fa79e188cbb648be91dbbce2181fe933f149daf50a4577141ae6c67e78bbdf0940c5440e1563c74f0ecf403e34a09653e46d84db6b4c30788c2e0051532390c16386a7aac0f0b52742f287fcbd44c7a42b0369e2488315d95c829c73dfe809034bd4e6448b771ad318adc7c63481e2fab80577999edcf3040f8f80aaade4a888a8786404bd40e7ddad8c6f888f8134b94e1a3abc869d1be60fcb343adeb0707f8cc9e8a0b2f46e1679153850496e74a634a5949d5a5d29116c039aba00e0e67731fcbb6b61905b8db098a69e8e19e42455598ee4d03d90bae0784abda7c812665e2bafcc7a561cff0f817f056e03465c4041198dd0e48a8bd113df9e0f7dbec7c3b3af6489657e0586548f1d940f8fa720565f92c84363c3abceb7f3be2a2fc27f7fd08b6d114bf4e7c28346b1bcad0e08e22723f459cf1d1a2a91820afabbec20694e9fbbf4a4bd9a103c5fd0de1763f436f438be1ad796b3e58486bb1b8796a30cc3abf53562812642375edd7c083e73229a8c0904ddf9a6902a950c1f08fa845644309d7544f411525026b940c61074e16094aa7fae2558ca9b1215b27797e23f5bc17a3687f19649ad2cc2a29b684b71033333e212515c7459ea679268b366ae5fe8cc6f4dd556fc2d6436eafa3ca98758ce8812b86536d22fb16f60ad18ae17d82fceb148dd991bcfd80d214b01e8e0380844204890e5fe428fc51e549df6c5445ee5783796f2cdcaddcd7583f35f87571afe4faf292f869036b60ed9d06f77b136ae3fbaf70bdd5a090fdaae405ea2fbc7bdfcba945500022aaf63e97e4d880e746310d8b715f8b93d47ffa9b401e7604161435b471e5c72f44cf0aa3664ce46e5fc74c3e2b2803a4ebc2e78e76b146e1f5fddc9834ecefa29775e79f3ab2926769b13bd2de67af505c2e8d68502a1e48c08f25193aadf4d02ec44b2be7176ec2f40ae041fa41f88e42a183c4dc5d0e5c556fa37416bd50d13c85006b1a6f4a1e02002027553cab9821b94bc0b09892f5df03c3a235249b88f90fc278132171e14d9364000001bcdad171b6fe47a5921f98d73d95a29ff2d706faf42aa62ae9f5ea754cfa9192fcc79b58c0ab3696e201ac100c0662b7d46aa27e1a8ad693e643c40e2bbd262c5c9b4b2c8c283ed4976b1347e2d10bcbcbf4d2867fd19f9a9194396fcc6fed6142c67bbbca8815130176cf15598ebd09523b842f4f937b8866c760aad0e3621ff8dcce477c5e164d0ca1cbfe8cfacf6cd2b606003ca439cefbd4dc396b3b0b51cefcd28ffe868517d886b6e6a1d347b4cc07882187f9a4f51bf02b016b73a38a38502681526925f2fceabdc9e6f8a572d560b520ec450726805332bc2570c80bc40b3244df2f64d020e94cad4e1f82f6bdc243690d08a6afc0c44afc5d3d106feddad275ae1934646f523c3900d1069f70bd1683e3c36023af7ed35a16b5daef0c4bd1ef3dd0bf54ae5fd44864e0d299a168bafc0ec3489ee208a9cadd74ade6d30490f04d8e21aa4aa8837b65b1243ba44062098b2d266ab408ab73004a8a3a1683c09ec66b13b653416147840f717e3bf1074434922e2085dc6a26af4c86035039e3b5e9243357e6a6010da7b05f4c8031e9ed03752d0893e4071cf384dec1dc57e7b3f987f219f26320698c6753bf9383190faa62907980f036092331935f45506e43228ff567f8846379ca0000000000079a1200000000004040456a0df7f1d8319dde6fd4affa53b8d7f8d2cb9874bd9bca7feeca1e270839e07c0285a0f79932af1d2e196b2de21d02b358b0134b26e34ed20b779029e57e0100201ed93011c12ddb296011a8edf83db2a518c88e06d7b04429bea87acd87ba62550000052cb7421f9c1d63e8704f4d56a86550569f9a8e98c55f50c7a14150999df14ec004406bc6054e8a99278aefeef004973279ba5ad81fbcbd2b93892ee8382b83750007cac77130a042836eb27581735559547a36e9100977de73b837efe040f0e8dcd75ffe1a54c1ce50e0ab10a0f382a291d70ffa63440a880a7fefb470b9643665b67bb8003201f1b67c5a1aa7649ea2930141c86ad48b601b80f0755d49cd2b7ebda6c3d1b73cb0ff41a52008dab2ad54c702fef96c038ae734d03f21fde350911b3095ded91641ce477ced88314204bb27c29ea8401d57b0cc134a9ea6a48bbb4700033a26762f64ddb5b6ae0f83a02f59bd1f7f98572fa3cf281a162388bcdb505865c20bb4ede2ca2783022cf002474b5c2edb5387820d0480389b9e60b65066c0e7b74427f2075e2b1febfa13b91a8964aef843ac00539f56e100d56757d71ed35ebae48fe863e822aee48e8523f64192b9b12cfcbe2204c4b8176fedd2c8beee3fa2f2f4628c1b90817725de32bcc860b07d59b8bf51e79e0a7dc830bfc91376b3288f3a2ea08139a279cdeb7e5ad472e65532216bea22814181640b3c5188a65b4bcddd047f7e655e149edfbd5cc3657fca7380d73455c33f09fcbb88deab2109bab7f1fcdaaf824ca2ed4ef3053cd74ae800800d06f92d6a1a6b404d931b6d638365cf277490d7a2e2bf17f7c04114d8e8513f58bc94a316aa1512ee3a839e777379f137ee61c7c7709e095f18a5a6ab809a452f089f7b50dc4599246921564a73d4798f6790ae5b5d18018a4227ba79ca0ad3a40cb37b734f7c940cb586b2c2ffdcbe9ae09bb3a7eaa311a913a8fa3846a9c4ad14e30880fd2f87e57d5817effd2537c5bd9e437d7081f2c245437e3f045674c64910521fcd5700a588f9155996911ff9ba47d010b6ac38a61da6587b65371f93dc84192319bc10a8627c550ae44af7bc3586be895c765d79b421e754b075a0e54bb920ebed851eaa5843672e79d4562285e72e5529c980889d14ce119cee70a0c292b02ad408d41a5bf445ad68e3ea3459355db08f0b8c44a65bb1ca84003764468b61d65d29e74a38244bb8d915c5b931865b9317d39ef504ae76445f62f18a33f03c6736a72f5ced56d64578ec2fe1c01aaece7c19cc6f2eb473d5e3c3e880fca06cf79015202596c18331fe5418bca718f1d1de084bb04c9fdb12ccef1ef0c54425da215c364221c29f74821ce47ea325f36fc9e5c1e9e3b68bbd331c2160b345d4afe563341e84707771be87aab9e38869f56525ee733bee9b5944f3fde3d1269b208a311fa906a5aea8bd055fe52d761a002bd492958fe238d1e20dec4806ac51dc34648fb04c67927841246935fa9086496893ef1088ff790b6d69a468a8a7a1437c81ab9395cc39c73b6f0b897ec520210b508a556c8bc3ab2f51dbff26dd07be96651fd5229191283fc9fe3cf9c21b3ecb9ed2cbcf552856addbe94691bdda9b68f54ba6ac4c5dd0ebc04c2cbe1cc4700b46c909eb93572ad7e8be94f546b635f141777f9ef561332b70087aff4194072bc869030373449828937b2fc97e6e17bd977da0243e0c66e5ae44d4f67186db3ba0a9471c1b6509d11adfe1e4cb3384438794eeca16e258247e263cae02989904efd4d8a26f1cab3f8d43cafb66fd8302eb18e6b3ee31f65207736fb122d7628d81299d53942457b4e0d62867413fcc01b1501b86ad0a3796f331826d6bd0b462de04336dfe8deaf4da967971262721b78529f536f7a494ebef2045a95646155221715da71f7bf1aebe0087be4b120abf3aaab47c861b39a0fe47592fbbd9eab7fa0c72ce2d2fae07ef7d83ba81535481e3e694d6fa5f058602e0fc883c302f83020020299010fb97fa20700c7f9c376c6cad96b566d2f2ccbaabade7580c07acf3f401000001bca0819fcba5ce8a0ff5af2258ca0aebd80aa711a3dcf35229da4af15e7ce6b2c198ba7d01f74384d7b25b7346df9b4fe51f38f8f930edf1c471e01479efad3b23b54774b6d8218721684367465a968d23ffed0ec66ee20c5c072482e11d8fb7969e2cc993bc41d59e2f1decfef55660e6643bac855e38e1cd98896e988285e02d85c7613a620002e189c271b0cee1bc488cc60ed61dda93f01e5918f4c72de17a0bc6f0be884c8334113baba4bceb1fa58e9a9605c0d2c5c90b0ee68e936a4a3e4e91ef1f27e496359b15f10ebec526477d6c09a40d704b7f960d388066f1b50789691301b68b03107886b4d57fa22c2fd283e26d3703161bb7755c134a71153fed161f87435fe70498118576c51074adface0d02a9d5be02ad14b223e5d39777b095f9ad42847f09b8288569eaedc0ecd1592fbead35a5b133ed09c5c38aed17aa358bdacd47cc4916941ab9aa0d4d5fa275b936f4c0e5edc858300c6d482f21affbe5983c5e289aa6921116514ef8d169600e0012023a4906a4fff5a0385663171a6dd5d420e96a0633b7d255c259b1203bbcab4fbcd2188317f4a7a41b5d74292d961506d056d612d7dd282f53d9dc5a60b0d193c601cbb895bfc53276590b43be46973df2da6cfbbd6ad70000000000079a110000000000406be94276d004f9836957800cef15a3427d8d4bae660bfb405bed635a502fcd8335bd0d437b749235bc7d6690c633502dfd1726c67a4895a6d6eb3eb106b2975001002037a6f4946d78076a6e63dfd942b3d65dad2910f4870c51f0973bca700bfa91670000052cee1bce87fdec90bc352607694f51075e1fbc5a8946fe37778ce8e944e455d382559c8e8dc34c7ca9acf301a0bf9b50d93e06c2181fda74fb611b351f8fc5ae419c5377888b08f0b1efe6538b0838ebbc152e87c85762cacd1692ae69bb813cb782c533422080e19bd6def43a3cf0d9be10c63640431125f19760b1248f4825bcef85f96149fc66c7fa266fa5eadc6d86465ccfad53ed43162c74679aef247ed4c67be6c90097e95143666b9d6ccb081c6c7b7d0ec1b579fa6ab2475c99312e24efc0b30b7f71b251ea927f8119919c96c1fff4477f117221eaed9477d7b197874d8063efd10623b0300b7e45e02a9e31b5de2a786a2ef0c2b85f1dfed1a32bb6a6ea6a6c8673b0ea06da89d44ec10d57095eec2b16d2ed9bcdd5c6fa2fa8640c98f03d29bb5ff919aff0be7c115f9a9e4d9aec915d078dc05c12de91c4ae83a2e751f0fc25f228a8bce68ce8ea2c053d00b045e91f98c5cef2e827371c66f9203b06543dd0306eb4c31ea613cf0c4b73335b22454b04cd259f4278089632821390b92d846a237cf152fac3a2809fa3be8d5fa46d92d13df94db369025a518cc217961cd4e372a05182bf67ec58bf253762a67b1c32681e26c2e525b3ae055de9a68144b1d96fcfc8b05d9a769e1a772dd4fbac7925c98c7b802a2eafda104a4fd115381144bec43c869be7bf875f73ba8b0f9b0faf5e15a084e0881c22dd266c9c6bd4a522e428282ab3725fef14be70dfd15705c55aa83589cf5a669d743a81b291645794719ba5ad672f779d03634fad73f98d956d06cbf60d711994cfce49bb15ecc61068334ff5326b61d12461f7dbb898e51b58776cb62ac03e507a26af1b61400c3d3666d792ab1df7af1c4fadbf8eeeb3cfdcc1b70917e3872fe10091e6a44948ac9cc8c51afe5d547967a6c2a619d981086dccab1296afe7b0974bed0255ed2f908c692d3247a5c059fbe192b73e31bc8356095de4dfd9c8d51032a13bf19ae3347820ea4b64c537d437f5f51f8f866c22cab037b137176bda48dd1ad8d43d82b5b413a4e8328b6c052e2b3f9b1b2a950bce2ab0495109f7697401658914484346551bb631bbd21a97903f1dd2886adcf5f7a2d99acb76bfd1c9b609fd19dc14277a96f96fbc6e65deb8d91ffb69bac068ffef6f2ca87b65bad47ca7c9e2595ffbbc5d45a447656398387aca86068b85c09d2a580140722ef66e2f3f51fde0792208c4b15bde8249b022877660abdc66b8c8daf021f6080c15a6d9792acb5ea13e16ddd0c1152b596e7116ad117f4fff69aa3ef3aa5dccfe9a7492f0e561334082b1f5c44ccce4497a7c1960c1ead1177d9e59bee8e5b47044dfbf13ce568b4230d6b98c03b08d249aef94ae85f271163b6ffbddf8029d8d90ade8c4279e209eb4e572246bcca1f390d11596585fc6cf07d25a6331533e03c2347e8ffa509bb2bccd35e50502b995acf5b4b43b21b30c35b8914c0ddc675b5da1178a44e489139b75835457e27c23c58f645163ae78b175712b7890e8bfc93f845cfd7433ed81d6185ffc2830e4d58e6c0d215f0a0db05b3b31ae12983d663778fa12f826a2744b75bb0bad112498dbc1b923295834e83834869ac147c07e87bc09acad20fb04b2bce302f28caf06747ccde191e6a4a933bd68679b1b3b72f11d3fb2a53897f92d1839d078fa3ca1aa335b24dde94717824dd4d72f0cedeebd6f8db71ca71fb1f24f5112ab12e1103ff83c496f37d6a2332a5b94b8b75d978ab6cf727347a569a87dd46b547490c30160ca45a98b18e36c97090ecd8d732d29a81479526838943a0c5323891d5258cab6ab96054e8f884876757936a179369fc2d46a3db214f83f64ecadec8c9f1f0200203d11a82f16cbcbaa550b9b1d6ab35ba274cde494c8bfa745dcf24395d9041f4b000001bc66c9e81338c11765158d992f21e88bd7538dee84c113d232c70645f85ba003aad34c5079b7b65449cc25e910063305d126a973fe23e3ee86d5dfe3c3fb9033c2e0ecfa73ca7c9c9503f54b6d0e9c9b386b53e472c0abb9df0efa93cc867b469e6a5f2c74db8a8378991bae7b962a2ae943d2a44359f81e6a67f928d2cefa87418496975d191758d33df117f2f0577dd9d1b62d308cbc9302d8bb919eae16c9e3abd8671b91e1fb3d14510e6340ded62b38d2ea1a309be371e7b2ab3d925633a9b7d9eb4250db49f4ef525687faf9f4a39f3df5c0e83d3c689b2cfb980a2931bf29d22a8ec9e9315aaf781c48b95e5699f21f079055f8ea1fb0161fe7997efa626b0bdd4b07597b9f62c2ea236044f5b73385e8b7089f036d450eb91fd049800fe5e4f7bfec5aa7991af90da2669d0bd4eb29623a08af20161b33165e6a2d049e51e9cbe2797b3becc2ae23781bb9500ea88f2b34780e250e51436c67fdd9cb7536fb815af03c532dba1427f40d9551fe95dd8fb2ac3dad84120a0f62ff9410122b72c4c33ffaf402627a6fe4b18512f1a2d9b03d4667e5ec6e6b8db8ba35e2e9a23289333f51e4172e35a762bebc321c177bf06e293b560dc58a946b3d84b8e38ce9861ed97804affba3e1620000000000079a11000000000040a63456431875da31832b2f6007b35edbd091081b0e0dce0b7371132da67a110e6fb0deef15e8e67f261d66cbd23806cc500727e12034717934453a2b8c28b6b401002017e107c9410e44509e5c6a5235661b10f23fa98434aec6977e2bba57c1b77f2d0000052cea8efcca39f0c8c6418d734e7f3b8dd22017ead880bf09cb69664134ba808ea0584d154ba7c6370bed55cb724fb830384f7fc0ad33f25101cc017f525565244181a73d38fe14ce42639a569a02006f8b2d48a2efc0bfe0a8c0476e994a509d2ada6feb3086adb467ebdf796c3df64e2a68f1fe3a91b9658016822ae274f06c09baddee1228e59287b2723550dd26d168feb580837335760bac2ba5ab7e55a962f92188b3d4e7e78404ae4e95b1ba3abdf846d76def9c6c8eaa17a63fbfdcca055948dccf5fa60a300cf2649dbd01ec255817ce259ca23d931fc2ad40927144377fac20b63e2a4a7a238f281f28bb4a5c1a5b3f4522ce5cae2bf937adc69b475d894835a239083ffb3ce068292e5d9ba2a0580defce05f6b37979bd4ef920c5295d098058c05763fbaae23a5c4528e3d8901d73aa18951833428aefd77734b7ca418d3c3b08aa08c321f0fe6b4b214b44e5b4745ce8b4e7968c60830aea8ebb3216825ee843ce1de54079502f156599649c6913a8f05b094b0dec1fb2a643ddf314cd2bacd78a08f31bee18ef1954db281eabc2a70d24492815892e01f6e1ab11767775954aa9da0463ddb2fcf48d1610c2863e8c527ef4fd021358dc41e133221486bb79dfd0db6361aa7be6f1872159e2b89d13f89ad4b1356b551b629da8c074f14b90b733cc7cecbf9d54d270c88c4b379b892b6daf148d308e0e8dffdd7666f71decf7b2c43d588f208945c934f9e0a2c1a395d94bcfe1eb114201f92c3b8d75352181b607c3c6423c743fc40f3defcc46b98003b35eaf005b8bd780975ddea5782b186507e9509498e967aa0467556095644379de26934750bc06e0de8015f29b746a35f441d07559d6b94eaec245770441447b595c0263d45c3b105181dbe906e5a225b79e903d0c90b6ca5dcad974524099cde1d076d736b88da6bb7d3ae79dc5289590cbdec5f0880a6a6cb939ad0f381f08803aa2d689202dd264582c18b343c8f38ad62fd164ef55e979a9f640af30ec3bd9e80dac0b31ae763a60354aecfdd803ee8dec8dd77688c09d5d436739c0ec9385f65110295c2cbcd7ca405c1249d6be63ad38a405dd8f1cb23b2adddf1237e341e238f9b07146ddf92bbda2047b6075c946384de465ee8a6f0489bec4732f72735586ba2c16809d7903eb0bd52a4c9e57c5fa830aafb8a1f3ae8a4c2d5ca5a6bb0b8996f636449a7507fde1446a8afd67a5d2b2c483dea8a4c5c0e975cc0a05089ab1fe2496126ccea7da84de81ca0f868267574d05f5afedb95db3d869067ca9990a24d5e606308d38a2d308dc371bfdd40bcc6c348317ea821e2afbcc6984898a4ead2496988fb3b0692ac8c2aefc3f5c555d4899a98b5ab933c9831c2dfe8de7777e09ef271b0cdf57f3ec5d8f53780d91c72b5fbc35999f1cb962bd9ecc2856e9b79f43ca6572a9f1119273557b3a9d9400bc2d522224a93e4009d47f40f23d2f6235a997de17adea59686dafdf46c581fdcff296ed8ad165c3703e4fcb827c6ff89d9a182506ba908f1bc3210101a412534c5a729f290007b57270fdb67520184c36ce5b0c895b465a5603675cccb9a0b7ad63df2c7bf21e4ff87d760b5975577f2d280ed55b86a15dfd01d181470d76d414f97afce92aea62d78d8de4c6b76b6609457975f259ea7735934a0cb8c28bb8508b31c4a3b78b2ebb8f6a17ea061da6c126509bc127bdd967eaefc6939c6ba64805142eb071a680b52ee13bc0ca91894c60781e146a38b83c05a760e9d55fc530fa4929d588fff1ceacc81f986867a52f9b8dc1237bc33bbb6b84036b0f11b444abacf8afbc9135b0715ae0062704e5c619061929d84e254b9ae0d78fd64ec7ef6b020020a0450186b2334623f438e73ddf98be4541093eef5a736a72b828d7ee63298f5b000001bc343f31ad1f8b00706805ca6b63e5740d693cffa4357d80e9a1c68216c4063129e60a4f186206163f89d1290d1e941a04a14a5b179212b152f3f7bee3d45c3d3853b169fef54598eebe7ab647741007ae94273d0ff7ba09086d1d7c29a3261ab9a299cb6fa2bde466c259e97dd3beda5c7ef3b1d8f2ad3123553e57c83eb77cb7caf7c00b2ebec375b1349e0f1c5025cc6db135ba1d0df3650f7516fd61306aaafada3324d93b2fda8fd8bc38c4e5265aaecf688a152afc70e6f4bfb0dabf593800ff48995d4cf145867d47e47e49952fe60a388df7be9bf2d723fcff65a7eac56705b5169c8c86b5ef15aaaa8dc377926f688926f1db09131edb73e0a94e8b904f8c8d5182a6d49a57f98d3e249fc1fc4c87a7b90eeafdf194ab8f5489a4e736ea87dfc99030bc724890f21485c92ef7c7cd7e8fdf5e54ea7f925c0800605b06bf0abb999d3f74c80b443db7340f61742f78e74420afab25bf865f203f17c758263210b53c1ecdfb6b1bd8acd105cda102f826e2aef90deac2b3c17908cf3cc6fd7c3da417dce05de5a561fce937920c973f7a966bdaa98cb080cc5cbbed4f378e6c8ab95143532b163d171210effdc9cc558c3f796ef48929de83043e811398082723e0ecefdf35ba31ffbc0000000000079a11000000000040435d4655961b7e7f662ff0c27f1e2ff97e430f63eeca680d117dd417fdae0eb46dc9500779a459f537cf2e51bfe7d3e045f9c074ba50b3a349edbc0c98a599b9010020b380ce58ea93f8af3e8339fb6af154d13b70e90899cd733bef1fe00d329e89030000052c94ecfc1b106716d261a10b875bd21999208ba92cfb9a286be626b5a598d39a4f870578743efcc6cf8d0bdc39cd0f7e5c44e49b04d3095e412a553c86e6dde37cf5deeef0d08bab5125472aa51bbe6c63d96a09e97ef61b45efd250e86edc5d94d151dd4336441adf3f9fdcb855602c3c9b6a7279e6d2d8239fcfd6bf32660b3613e831bbf66e233eb79b0a7f5946be894db9a3f01c04f4d6e2bfb61b135a862de24cb47b3cd3f5cf05782a2a7a9eac9f94a835144e103e92103e79fe88ddd5fb4137f27bc898d61211c66be35f753f80f22e6fecec369c9328da9e590766df7acbc69ae8aaa4a7fd5e80d97d8fc3b18ff11ca03fdffcc2e1b693cddd736560b590796d5b9c3010e3c5fac7c30a7201a468c09fb017e3494a786b9c855f376f50ca92853d471af9e96db52fff476615b26d4d81deff4df1524be19e57283c570e490b76a5caeacf4dc9b9741c6c8de798859d329085d34a048bccb53ed522dd1f99677dbf01f5cd8b3a33733ea763c15eefcade43772365ad9635e5a3b4c0cf75bf8fbc75989ebaa4de1d67272d9d4f8382d0d093df4c555aa2f79e7b1afc038710a4024e823e7fc016566f2893796b5eb0f105ef5ddefc57657ad745c369c7c3a166e4d3668d6fd40e597fc267036101b55698735ceab65d8a255ad7e3b3b999176b01738634718894a7808e4d72df7437eb2472090ebff1981cb19e47ae25267c6ef23496ab4984421178f22189e568c26cc2b326c7bdbe2983a20ca6dba96d1d8c9f26e20712e9843fa6fb4ca73dee2fdd1ae76d3a36f2b55bd09b59ca54a989997f4f97bb5fe57f0fd7709409b5e7dffc893867770fe8937442534a34715b6f3b4b7cbe8422cc08aa8c458157eb525b8222a3ee9c02d1a20cb3cd250a29cb844d5c4b70b11a37b6f510154dd3fa2ff35ec3a638cdc97b859ca2bf0558bc20bd89322c6c062656bc2057457c65d0a9ce509f2908bf798c7599f2ea6331af59a6214382526b23267d99ab72d6f957fd35b37e917d53e0cc6e171be794b0b52587cdf535f83a5042e042c4c08016caa66b0c0be3157cc8d6491880884299cb6770b01bdf7c5ef70f2030230c410989bcf9b8594b185bf9700b332dfc7b8b3442b0832a0e5e032fb11ea3e389fd7e4ed90cfc2e1db9aae6e0d5eed4a7eec34850b5f3fed40f1f8608423d5d097c43914e7ea527ccbce26e2887da9553740ab075cfaa22411c60c1a4a0826c5c4b91771b04da1f7d1b1e83145d6f76e49617f11f64493e84d85fd8b31ad950765558de8bfabe8b29c76e5b87d879a1541112d40f2b925d07e3db682334c21487f9f6dd8724439c6f3799a579d6bf3a3196522fe029715be3bd2ea0854d794ecd0f536fe9fd1330447845f933f704f98c9951b65701944d8bbc096a6e5565947a290e1c693564ab9d208ce98a416df8bc1faf22b7efe31976f35ae6260725402548319a0305b93f20cdb370d71eb38ce461d0f493ce48b25581079fb022675f9ba6ea12847b7df93a1fff087dc1f22f9bbd4f202f11e7ec0d68d40fc7d8a17db2936a3583ad56670b3b7fab6175a2432aef7c85f3ebe56c227ab4b961b9fa3b61363ff34bbf675645bdbd9c24b97959ec08393a878fee7e20aa7afa17021b73a5d06118944dc9509aba8197f2f25c87637cf478dc506dca7cb525d2038c5c1c7452a64cae6a7229f52fdc4987905149ffb9aab80c4e6986c9ed8a00186a6c8e1e99ca6ecd7e0a47feac9bd73e84aecc56712b51bd3cb0684baf53ee0b2e52e6ef0bf9bbc6aa560b11858a4417b3cf0aa83b7335426afabe0d1d51991ddb29f7c37ab318a453753d83c5cf953c8e86860702c35d95e570bc1924a051643bdcdbd10200202aa2e9fb3a2c97df6c265263aac1953ffef6fdb83fb6939184d80a0939cc9c17000001bc1fe519b93176bbb281f463a3572b6ece433457eda4f371324485a71fb3c1287ea908b45be59a21e392a8486733df861a8ca4ff2332b24c5416dfa1f2cdf42fafa06b949f532bbab7c938ce376661665b931dcb0ddb78f7df6a2926be2196938a157985739e50d34cb95e76bd7c004d1a7d8ba4ab100f4a5d751b533d02a00265d98db17e3143387c49ec63080a4663f5b604455a6e9c369f1c09709d35cfd69409debfe20cbb39fb1d86223088662ca79cec8f8840611609049979183c355d1e2e97890d01bdd4e64c9d6e5a2662287d773cf3a5fee8c3003e3bf34bc1e8f17125046d2a2128c2ffb8722b874e2ee9a95947c383d3ca906119d496ce0c822950207c512026dc54ea26ea947f59627958101804191f74b57b4b3cd199a94fa3d8371357d60ddd24362218689027677114d9e20573470cc18f0ef82716f959a0b5bb6e14c5e8e455317955ea2ea12dbf7f6f97507903935f12fc66ba1c35b238689a64aca2d9b85181b2507e2cb0f768ccf8a46f6fafbb77d50447fdcf9d58a25b6ef176cba82f0e8627364c2f6219ab98ef68981a5923bc3dc153a75a0bacf8034f8b53fccb2831d9fa7b8141d5d8a42b4956581067d7a4709b36647c4183ab0f65080b969c0cae44e8e313830000000000079a110000000000405030ebb1f0f1af4eaa8529b1cc46445660f3488f71fb68ee86649783777004b7dbe14c6f86c684a8822e025794d919be726a08d4b90dfdf311bb1a11a4e666e3010020b144049e7e92142c136a36e90c46bafe72fa21929e13d9b45acb449a150348760000052c6991ef0652ed188f9421352001fbe6261ba554c4d7e0c727d6c63d50fe3247634ec459b77a9372d693671a06a3eea90299a6e9144b7c02841fb156a7f537c8b5e63ebfa69587c90ba97a00a0205ee27539ac038018317dc4a76e7d4ea56d5d7485d43637a936b08cb792900d2a274432480bd57ea23f5086ddb03a7937e9bef6dd5392f6529fd58db8c5b61e2014da5e96aa5cd478e60ed857b56d1209172a791f308d250318cf6a062106e727bc1fcaa922c5040af41e5d2e8730dac891f1847eb2b4af6f52f545cea60136f2900b50fb849bbc35a825a0f23d8f53476c04b6c81898318c6a4590f082d94404dd24ce677e2e08f7cee594fd83010e6c77256bcaa58a7cb936a8e12b32e8f2ecd55593e6ee547d82566219fa28c50ca1695909be102aec556b119f6ea1ef90c7a47e89a2fd9e8185155e69445dca99f6ab80888b87d1019b41ce1983656561343034b70312a772ce15609fc6745dd8b21d8951c4eaed5cce00512a0a63e03f6893d41cc9b3fa309bf2d6fbb87076119a1d5760d8f62608ab1c9eeacae63ed566f359dffd5857f68382a9feb2c61fc8fe8ccc4e2724ecae759f993ef6cf422936dce06bb1a064f4510bccbc87d55ade90521e0cf3ebd04269aafa2fe88b9125724db893e5e92fc1ba43aadb4c6f22f4752348d774f7488b5b009ad461387e5e67a8dbb40544875829ce06e828f5b875efbe48ddc7d5ec4b5dc5f06f0e9d7aeef430059598d030927c9c7512e5cdd032bc918337ea6052acb88bc33aabf8f344bdee1551909d9e1e789cf8b637b31fbc4f43a6bf423a27c9e21ecf531395c107ba3812ee9e59f24728722488831f5d44d827807cdaad40aca31df5f46d6ff591c88ce33c4a6aab0921350723d4c5bdac4cfb7390fa8bb5ae548a41119a6ca2b7db86349da7dc3360880659377101ed3d8b1ea605e3045c4fb830e1d979db94037d112937151d57185440b8dd989770cf4199eff37fec4e2fb7514e3f197e36c3c5e725ae03c172738e78f0631c412fc79cce17df8fbbe58a43447626ffe70e6aa0576e0b6b64ec7a87060dfee8975c4fa117460c99be33802ac1fb80edf4e5239b7dc6554240cafbd027e4635d321f49cc0cccfb057b0daafa7c28fb3a4f979da4fb8784bdc604a3112a4897a6f2090979ac89a4d78f682b8f089fe32984ed00248d329ab9871c8be3c76d06808fdf183e3b83bf033d3ae5010ffa3a4947e8faf7ca93c2569993bc235cdaa577149daa25316ddadcc46963d17973fdb6ee60e1f478409569f27d671e966b3661d5e9b587f74b2b4e2d97b5e655ed1f5f70282b212f861a6bb7a4f668e25a9390ffd6b287d120b9542103ef62bf556b94aa7ac5f703937835822f3d1089fdac90ed3e15a72994577686ed45efe92e714775bf49508d3e93596ed090e183f065d41d26b555323721a57aaf831a4ae7d50faa8bca61af5ad57c559798ba2723292ba760f75aae4eb9745758d6dc0c04866e4e257d7f656449b01e5c771bcab567496aa0cb15cf3c0b853a096e437aa882d133efc0a48c9cb655e4bb61e450d6bacab8210988675fd37ef275c3544bd4aa7f4d2897519795af6254e9dec40bc7709ec2bb2270ed2b83bfd214572bc4798c50bba3406dac6a1c04d4169a69682ce7bd9ad9a3164e79bb7085d4cdbb0df4bfbe542922c4219ce9e0cf4d8bfe1911211cfb6ebc3468528e57989321c481010311e75735cdecb9c34e10b4df4e200d80121fa6e6de81fb27486e2e40603e4ee4de902f415423a4b7622014af72b6323d8b6a22b7290cc962da63f43e791110e28cf7d12ec87df0e76c608f5e02e7ac058f3729216e1c8f53964273d3a7f82dce4ba655ed0200205d512f1586316ace9a464b5076ac9a80d9274c569e8ac7239dd18ce2d61c8316000001bc295cdb759a4e6116c48f056b65ad4decf4467844d2ff568ebe01febdc7b801cdbd127d7828e121b75cd65dbde5ed15cb23c84488fb4b0bcc6d103250dd81c18044412a8471dca446d82ca309d316fbe23b66e4879520ef248bad3b0d63af0d42188b7404aaf817b2ea852cae5f6b549d0f4231c186ab57ec7dc504f172290c3f73553aa5a2f290824c76d2757fd5d5474671458e08aedb4818bf7b9ac291f5d339c4c693434c1a5ce5cfb288944c5660e877175830dc2f0321bfee93cca83c071d2868eb0594656bf920fd6aa0861b20a674303cf533c1a12e513c40adc2aa9661a007e86d68b6887c2aa4756b5f7a30bb6d519520eea769c03e1cade04286c6c74553431dfb79162b00f9b3998f1b30d25acebef9afce864b3df8d4809b6718b9977863517de1cd9fdd8f2471413bda9f0644d9682603929069796d4a7a09fae9da162d1873fc61a4a79cb34f7b4143091ca9793d66af1b5d607c797ed209496c9367087e7bc688abcec1724781ceb030604f46f1ef30c00b0d7bccf1fcd7f1ea844c3fa2a5dac2e7bc8164aba4f3f0e6c3bed142d4b523363d76942f4839dfa74c99393438f171044239e6cd4ee5fcc00e8263dd732ab208eee25746e33bd52e70c0cad080aab093dc46cb0000000000079a1200000000004006038828545d8ca3017a555b4291a4b79c7c3a5127a143c67d2ed8660641b9b19a063b3603a346981f2d569b04a93e43b95afbe983cc9941d32413a240c669d8010020d6cf43dc053bd184dea12b3fed454d6714bf2707bc48bfe0a8371691cd2ae84a0000052c8396790d8313e899111f5a7bb07fd5ba562b1bf6a6e003a5c465da78e4eadde398bd5cc9196b943e243dc7d07cc720c945e1b1df5115ada20339f15945adad461c3aac8741a6baccf456322767200de54a04483610a0e25c5eaf1b063bc45d39c21d964bd47be53b2d80d24e1e92a99664ed933ed6e33e1752448edb11e57f67707066d0444cb912b6eea016664836d89ab0f9d78e4e19c659a32cf86f91ac81e0a4b81e7ae93882e5bf729aa0bb4c08d7ed32f8fc5e4ebeee0b8c3361597451531d7c7868f460077b3a68b7e386a92ddee28d0c95ea33bbb76688da994ab256314508c5eabeddb82fa014e51cd46069cd00ca55e8fc055ea79a9a847d1cdb689fc2e5791c722fd178ca70b11a018289ab1dbae702105056552cc31ad5a42566298fd10644be94b99f1e871da7cf03bbb2aba25d04d13b7478281191860e0f1cd44ab3bb7fbfda919c163b0cd4e230b3d8be48d7e70d6d0b27fbeb7553b549f9ec985ec2956cb4efe0bfa429a0e3cb88b86540b2934580f3f92abc855dc61740fe27abfd473382a8db503131786181d364e05bfa7fdaa521116103b8af7bce071c894a735a98e8df4ca73e0e54ebbc34b60725c12471372e248b029705aea38cec1304a072eee5a92420d525c067500405edf07505319dce4d284c63b722bc3f8d9a3a18ae8122e8f8c51996c909665a5730b7f88aae7f9a6e2e49cb1989ac4c28c21ec8ff1897a28b1b64d487bd34f16a9565c81e02e69d5051c119da6034a7738e787c715b15c92dd042ca3d8c20c0c0cfa45346d90a0a7dff8b16557b66d304630c5cc1068e7be6c037a318d045f649101f437f20cc0de10ac41f73bfd36330f11a3c4a526800c6ae26f78e7056650291ed145ff06ac7de6857d6e9482a98682ba877c9b0116625760cacf1f23317bd3ad68a93c0617579cf005a6aa2403ab2d11ed591e1a39a6e9bb6cbd437bb244b116f672191ad86b224fc5fbf5d08445cfb3dff83e438d5b870182a0e8b7f2273011d66407c541285a4b980dc7d8e5a2b4147f3e3e28542d1458244b652f5d0bd4983c1226314cabb54146fb43b003453f52de183ea1edbbd54c59ffdde1b0e8ddacd43b52d1d5abe549ad1fa3190a6c61dca9832594165cbbf2f641caec3b7ceb0eac69f88e271f05eb80c016483194dad09a31d9919045d97dc9e52ee58361ded653f43d53c8edca71161763114d3078aee644c1fb02b2d6e1fa53d7f85cacf6691b62186774d5bdbddaaa08b8f07b20635dbbc016f74c1969d526bbc8607082d5cd42d5ea96decd476a2bb51a97d2605857d653c6016b78ebf3278348348a59bd25e57a2deb839eb6c872a87615b528079f7646878efe24e659a667cc24f82bf601cbba8efece2cc93f9e883326a01c503e77f9280c86481a4f20939698fa49ec0be321a01e45c72c26224c0e023e3a9ffeae97bac3db7a8de2d3cf950411bd5ff06358dfd89bea5a920ffa4eff9b667eed4d5dc91e88538738f60ea1247f3ce66a09a417d4bba1699fa2a7ec3326ce450699fe6b108f960f2e8fcdcb9a3357b1269603b2f4d1b9fe791cc716b0bbcc0454a38fadbfa1009b8994148e41b4da4649eb73e4c041f19fca3dcf7ee4ce07417cbe6e9b669512bf86b6050353b118add969e5bb6b169c566e48b6e9c55fc4e0111ab9f3638feb4b96e6320805d6bf5834a6009cbd9b6bab7c9ce3065bb0e19ef17a587417b37f64428c40e7a19d9dc4a3f2a597be62a92ae35cbf6bd6d45347ca7f758e818362d9d5bb61762d0c600e76b799c04d60392b269d349c9d967f1622a78fe2a3fc772cb41437b09b0bc769bf40533645ac2b1deb2d743ad810e319597ef4fe0c5508d67c0020020ac2142453d98a18740c7443f37a4e31db1c6e4806d89bcca7171ecac0ea7ba4b000001bcfef62abe5ac6148a93968244d54238a1347166541dde9101fddeba25ff17a3c0a07947c1a522fcb418acc648514afee91407cfa170e51a390fa8d6b46ec5cd59a7d06e6e181635542e1e374acbd6544d98299ab62baece2f63454b4fa5ada6504ec4d1e149be2d22c7ba466adf66b72a8790d04ad49675afb54d35ee306a42e7a350a5dfbb87442c5cb71cb832f77296b76fe31c91b910a2dc135027eb312cf9f3c5de305c1ba8ba55fc34bca10844bbbb0d69f38edd7926eb094f45fb232f9e4b0fb8bf75529ab0cb567226ca7c9c809f7f2a6ecadf567708a3ef45812239d6cda8e95dc83f33ba656c71bc6aefd3cca49dedff27b3e0faf2e2e230f92173f321d885b26f4ed5e8f67d319ccccef2c1d53c8bff1b2d88f1fdad414feb7e99092b325d1a4d2b2255a45161deaabe851a1dec212a6d07e1ba4719a6d71bce9ad094de0f92382dd0f941c512c55e0805a35f438b9249f73aed2d57f46023691c0396c56b242167da06e5389f838fa9a8b832134c259eaa96ec557c643d261f1413d4fb66b8b7a5e2d3248b3c82ca7d9cbf7d363cdd06a225265c0e360593fa93082ca08a93b141c894a599cb0eb2659b7cdf1549df39fa6a689d6b230c494c017f6572a53d13a069c32179bb7d0000000000079a110000000000405595e53e6ddfd32e092aa5c8c8c87ad80b64ae13bfc1ae9f2f3157a703f7ed04346d2f6c5de951a9e21e9868ed127d29362ff9c47cf57e4f4938948cb51b69870100209ead99dfd43c8b6f07b0e41fd2f66b11a7f0a1541e712075a375b83f1bd74b370000052cce7160af063c5c10caa3466ee1a0ea1a477b8ed53dd7ccaa305afc51da903f39e62f4b0c0b46c0b0e1a2d5216f7f76bfda646e1d7c7e3801f7a95b60ebd049ea22a88d9838106c100abd286e835006e2333630bfcbabe0c71d4f416567c1e392788a2326819f7c4acd43efb0cde3f4d1ecd73c802fcde394025dc5ce43eba8960b247f7e345bc685170534fca816906415cc6f69a466178de3888ed33f2d833da0099880f570ee4a0ce73f4c684dbcc0a460c5d074e413b118931a8c9af115946274b2600db84c43fb2c2825edc76e880ae9a62d2f4059b77237704f416fb5516dac84c35c03e44f033189074e0aaa7b7f732ac38922e6abe20ffd8a83a2847d61dbbd6f4d5cb70c9c17f8d9d82553b84c3cf4eb7879b88ba5c96c4d4853b27ff18500f78847439428636a4eb5d5056af24987d4cbdd1127bf6716b9b47bd55bdb58d9064a25f33ddd94accf492fe2c059ec95b39d9d5a149f3722fc482df5970355facd587ae2786fb13733da7c5e365a03252899b79a659aa4a7fcd889f6a4ade6783692334305a8aa47c1f3303e8c0b560266845f91708440ce252c5db98c59bd106edd0180dd7deaff388cd49b6be9aecded833b2e1d6623a0d28a1468cca9b3a7b2832fee5f4fa7438bd24926dd0e36a1b6b881d3d233f17b7ac851d0463f0891dac0dd3ed18f8c24b181c0c4c32108ff982aa885f65f287c49aa3129ff49d0898089e7416e9cc677ae35e6996673276aa45d22ee172855dac08fd4dbdd0d42040c9a345881c8b1eaa1e32b8af4dcf41750528e92e2b57eed5a983ff62b71bf3717445699d99bcd3378e5179937aee83093a285cddf1d0d3d8a1cbe2920ec06066a6b126a89eca35ad70ce7eeb6e6f4a166c84c1e9a3ef3a93e2eda0ff39263a64a96367fbe5a76c4ae949fd230aede7dc2a16a66ed7951ba27a4ac65f40301d4556e4d8e5b062b5965b82a120f36a794a2d0f061b0696cb3aec06d723e64c50fedb9bc88e4faff9e23d175447ceec92b612ca1fede64fb1cb067585268580dcfa1e800ef1ff0fd9e4ee7fcc4c02f4aa83cbcee6bf6a119bea1387e6384b4c5cc8254b54269b7eb2eb7eb3a8c8b1424702e88ccba19d3692a004cf137961914ea1707b6abb21047f074963c705d30fd754303fa434589768697665e253f69c129f366611522a39fd29b0145a26119d108d9b52b7657f2c079be261728151ca961f1a7d4f350f33966012a1eacf35b5e30619e1c0244dd2403baa9ef6ecf4b6f6d8f6c1c3478f6d6a87e28c531cf2c75f8881c559ccdf22cc58c1fadf2e1cbe3d9e25b1b2e3aa6ece229151aff4227b685c78c7fcac81afa2949e6c567418a549b945b3b9c026e33a2e413acd52c23c18f7eb1dbe12b2f5fd24c89bb672053b09f88529c8710cea9acebc5214cad485c636b8a76d02caf43926a505b3e3cb84fe74e73c6bd06d7676015b61f8a5463e8cfef6c7523dd72472ac7c8435f8d8f298ea9406aa734ff490845831fb81f9501a8d99cdb841601321bc7fa06b9e76bc28a02eb077bf9d1cb17e394face93ff3bf7953317cca326e50ce02883af42668d0d488d558f6b5dd99c031d90c9d6d7a99ff100bb83dc1a7e8f115150206cc75f15b48fe8c3acd984081f833551018a46227a84339f0951a11a9381f8155bd7254f47e8860588b86aa2104afda4463c3a4a3bda4ef83a6721dab6fa0a7bd3664cddefe423770ea16fbf070f3acb260d30d88fa6d7879c0e3d2e398c799c4580bb0eddbac7c1bb0bba1cf065731aee63432d3fe55413d78a98ffa1c48eed153a3be49b71d29ec6a308e4969dc85bc84bf3b0f4387ac4d13c145a9a5098ce492c90e905a4370f05b2b01c390200200acca95a6c00766754216c4af77c52ee84625c89364a0a0342f25647f022615d000001bcb1d597ed2aba87d6a7a90c8c833ed2e9fbb4e2827ec6813ec64bff2e30ef6d67cce88d1f7369ea99203a6786ab0f04165a9056e647d74af7473de5d744a52128d0e3505253e4655ca92125b140925d19245d5b1e07508b7d25c52abc2af48a613ce7abab9771294d10a7d88a4142de11b3cbe568bf58abaac00f30844ab18c2ebb140011817fe4565fb37ba310760f5e77480d72297e17f729b7b3f031181e81c51b0bb843f3a118e9987664a106e8b8e762b762b2eee8d05b4406fa0eaa80e544d684407ad4e73122f7d5208b924dfd9ed304d1cad85124f57ca0cbd400155ea3c115b275577e4881a3d313780081aac5c7ec817d90eb3a251f763d09e35c0b1c3a26fdb1ab08b6c4e70fe3fa5d63e9b5d1d1d843364ff13b107ef46b7a59885c1bfeef17e9fedff7ead1ca789ae7bb69a02c40ed56064138a9e7df95e36940d2846fbd1e174dc29f474530164bf0dd9e0ef8b9818de93789d172d2eecdb478b01e8accf374421ec872f96f26750a4b793bffa8defbb4cfd5cd7853e13672f2a77988816ebf987f3aa73b69bc82422e1dff97b15a72b264bab4c6a105218be18d12116f59c7b2dabbb457aaac9a9a8286747ad6be18719d0bd864115fb48f992ada397f2acac6a2cd587f5f0000000000079a11000000000040513af8ecdef971d1ab471ad0d981c39ae81d547a65ea48da82d55365898454fe3a2852821a7066e15b3fd4b3a8f7267f37f31c5f4eb07182114ab86f2d14d439010020dafef37af7cdb3aad4ddaff95fea05756e500f1ca3bcb1ed8196ace3d1603c0d0000052cd4846651faaf0fb0faee6b60d406b42998f99d5121d07e11f6871d6163460fb6c6669b9ab49865972a0ce7cf270779f04e6e33b54edfaa1c33133f86f7f23a5247fcbd7751b2ad5ff80ad6ac6b90cf16135e0465c8f890466b8b6989db0fa07c2191e1e9423f32e8a8faec9b6752760664a55ad8b2dc44e05951239c11e1a37f75953fc09103103e7b4f577aa9d0d5533f406d4b648475742ee80c98557ba8c44bee5b65c705e8468d696dd899d41ddd7c0df45321806849d2a916760b5c69db2c40b3e543a02c3a5f2b9a1b2ed40c47b46fe306f9e36ca17f54d0824f5f68c4bf41b575e03e178d0892c14d929209d046c282e0549af56422736800e23c1602ca99b018cdecc15ab71fff272efe25660274f5364da1b6bf4ded788ee7256877c4582c07f9a1181a120ce9b33eb3cea2d44afc90b90dcd25a0de7d8f24a8d5777bca21c89daefcfa876f0003f81f9c32f1d55c20de67b68ebcd63ef30072cc2f0380023c9dd60c200a080c001c6eb3d70c7639b4af5dcf42d53bd9bd65b11787fdd397d54f13944d8aa6b9294d7ae5dff4a9bcfc30d52d2ecd10c6517d3cd187eaaf542688808fa6883a436f2c7c45e715f0131ec8c1d3fd574cd166ad1fb9ab121a690da0476f1fc6382ffbf74947895e5a40d7b3c5e8fcb147546243aef9c61405152ae10164bd29cd18f481d00f6843b1dc41c399d2b9aa5a4f9428ece179734b709a449d905a493c20f15654eb9fd567644300ae3a11a74020f51aafbd2dbc965709b0f49479d67a53ec347db0c77d12f169833a02437d67438865aa91e8b77b5aaf609b1ae0c45eb3536f57a70aa8f1131070d57699549b6c3ff49d4aa08ff3b602a9b3c8490aa17d73e23b37344913eec7a0a38c3e3557a53af7cde974d5c5749b9e0564c40ebbcddbaa45ba570e6b983d90474f0bcb2d870c638e12ca596cf5ce7cfa56b78bb21c1866c77c4f88edd1c1e4f007f7421e3b3c4a90d3c4da6108eb385b647b1fe03c0d12ae7ffe7fb7e458db42ea936e3212b39e05c3fb2a9e63cb156c7ca766a1cc47e6d271d0e83669e53986821c2293cd6534c482fb8cb7b2ac2053e9824d2db69875f7524e71c1bdfdcb564c1b070799fd9fed0e725ee29796c858b26738eec1465265e3edd1598a6cba974deb97629ef12e386799a6bff4f89065e4d1f4da8475f433833a5d1245f697ba8a4453f4781b88c05dbf6d80cdee48230422acc738eefef418552f5fb42d8230f6641463ecb45d3d1b65113be8ee07c6bb55295b53290d5c888e93e112e48edf601c300b66b33f592b0dbe39e5c44147573a93be775433134c26e9c331720dcc54ae67c7d5df03ade9473af6ac351d0be5606d33355d2f2fac30c1bcee6cc1aeea391fff3dc461f317efe79b039dde724dd3a23755bd5a3466b47e022b2810ee1594722d15b9b5d028140a3592978e3a34e702e60dd2b7891e93bd155e67b70e623ce122b3954c14b01c877b6870f8eaaf72e48a22f633910cd6801e6f11047bb9d2ac21991bfa9c15101248200b5bd08540a1ec6c5858ef0ef33805406dc95c7d9c04ac6d056185d02c2c3f65af38035f4e90f2303103ec9057ead34b29d6701de082510501b7309aedd78fc68409e2cc3d4a1e3eb2ed7e0e8531e954a084abca99be4118232aa98c3cc3f915ed24fc53984d806ab78707990603dfd558fd980047e0fe3a127639afc2f647c112955d17d3058db0a141d6f6875e82cfe6122d2a8ee6cb3f2768ce1c4fa99fdcc6f4f22142479fc6b0f220d648b119b3d021c2a371ae25d9c8f5474d6d4288788e20ef6d3207c1433a358c4cdb3652d8f470b1fdf88e63f44b4176e4e96b232bd217d0c84f88f6c5370200205db5e51c31d994d20e9273b78bb23f4b5c9008bfa4d2fa8d7ddd6a00bc7c4902000001bca7aed06c8308d30bbb008cc65d4e89a44bfde0b481fc4d46d9cf97fec1ecc79e66ef369667d87ab01e6af232e74aa7e4ff941867b0570ef65270893b3dc7d432325e4afe67d70c9785f64b941ca720b73299bd42721c8e4d0beb6a6f2957ab840a0b4157125cac5cf2dc84fe684579fd3c7191787d6485115d23ed334af57ce1d310784afe328f789ff001d652de000dcca1f1d1a8356ee5f72151f38481783e5429b6b80deb29dac144cf38d224429b6c073ff0eac9acfaf524d24667208d8b159e3468e9c7b37233b13fdc6e6d0a6e3458127e4cb1dbf2f7f9400390fc4b7568010c468392c3f2f16f3759d64de56bc1c438cd5766625c2b7c64299934bc336a2a81167c3990e245a9c3621683226c1bb8b0e5639321012184c202af2676dfb121eec2e4f2b64f189e13f3cb512e88af4bd8987f12547a493de08f90474c9db039baef67aa203e81bb424eb648c5dcae10fb76a79835ce8de3ce99aeb4ab10b9a3d83d3fc8f89953da518baead2a63251cb8c409af3df43dd99f88e8ca958c8b97dcf2f188047b5937e8fd947204ebb44cdeb5d0542b658e0a726f0d2b1a7f4faa41447d250cd551e33d7863af583ecfb3abebc484c2f9d7ee3eab6138a2d1720bf553cc215cbc2f153d560000000000079a11000000000040d0180e49ed15ebfb6ca120dc1a136db9a96de0c0b76d2d355def6df1cc3cb0605fb5d35f9c2b870c71246b27c12fc2c1df8ca47f69ca24df34b6a49d0bee3bd5010020142b771da64d045274be8682068c03da3b9bff74a3470aec40fb2d021a47e4360000052ceda6091b5f17df081c7deda3e717e0b277b76f470ed8336959a4125506546ee7dc02ed2d9b5b78455c875395cc58a5bac183ef9934ceb02718eb868c004d64c6fafa0ade64e52fd767e32b48c51defe0b692c18660507212203bacd6eca2782eff7d2e366ae9ac0b8be08b7628d26548a47c1c5e43fd36a3ec47a90c905abb21f460bba6e6d89141ad99b1b95edf23dcd469cc02a9547ae5803a3b04421e3d9edcedb63c21b4105d4e61c08a8d6c0de24267e5cb9d19198cd9c2ec0876edb0ade8d3ce192e5f35c4f1d7d5f636c4c1e1d03a6929215199e6cf5da0e98f22f69c8c3b10ae411ec85c846d1b68cd776a440ead918556e50d84d965da77f8f58a19c13a702393e736ca98c8a753561ef2cec360a5d5b6164e64dfd20335ca427e2604832133762111c8f475f960c7980e088ece6c86f02b3b9f7aed0b161bb0885d5b727bcc1a5b2e3e3142bef8db9bab1333ba0f4d1ed3ff6d605ebdc4d7882f54ffe299f9290ca134926ed77e8175c4d94f9accbaf2a48023049b10b5c67c5c1c7b0aaa3c199afabd9ef586adb9032f26dca779721ed9f692072f3bbf9dc242e368292c5a6ec471727ccd18085107280a977c152a0b86a058805d251d756f1e76c9fb19f10f6a81fcb42ab1b83bc41b092e55b2c68233dd508c191b7c6f806cd7f1bfad625acaa9e9a508f6e4c4e55e463edbc9a4f615a0fbc11297ccb2e852aa0e738d1f5a44e826d609a1bd86c4edfd1a435489c044861fcb82b0fa41cfd0d0aa616180547a037bbe909e9e0a1ceb09f592f6816dd77eeb6af3a090369e36ca720f6ee565b8821357f89dcc73771607387469e85579930b66eccc55305525cf4c980da0f6b324f64ab05438a7d9e66e3fee5146599d78f9f704de3d7ea5e7b098f6866355417752801edcc021dd2406bfcc2212dc2175e020c9d7e0a79323f51fa46e3a6fe443a50106c8e7b7b3cfa7ab13c258e9bffccfabec88429d3f1d7d1938ae58c209215958301c4c375d85ce7328ed7bd09adc3d106787413b144652db9297d2a033fe0d9306db8c991ba278996baf53bb291fc691a157461ea8c0df894814da7d48029b4da60fd761f1f6e2c1c9c2eade428215126197236c6bf51de4945244a7e381a3179030ed2f57ff1e3f59f1fb721f47b1600c4b250ee1857fe955903d7b88ec25ec8f92d9d37e8c81d97403b1f3f1d00ec539280bcf54f1cce2e3a6569a53cee841c74f4a62a566105700f4f0231b3294c7e41574be3dce0cbf6afc1c1a7e26643c688f3d5de57aecf96ce5546ac6d252046541da6284672ee5b6534ba4466ee01a21f82c40645589290a3f113816958bab0c981d4c8651e79c9f957cf868c0681f4e52323d736070ff15d86396a6c2ded695357a175e329c954617d283727df97dd84856c002961f0b3a4665776ecbff7c9c27b5c991d9eac5610f4b4d8d9aaa772ee0f51b8199d74dcd3cc5e9dcf181a615ad009db9498bd6bb7f2ff8981fdf5fce167262e6bfc73ade81f029cc89f95407e72181ce463ff4c5fb8bc055b6a49da785dcd7b60f57e9d6f387f35ec0edc9446b97412e86e038c8764d7927e645a45fe75042c979cc1787c748c96115912737fc3e9440b0f9b99766f759867c023bd158dd3516111692b7ed253c0e4219766b758344aecdfaa5f1f6cc72ace40056b96f6f5b1564562fa7d5138c6ada860e5f5e07587a283c7d85f34144fdb8353f6ebd13d7d024758bafcaba716a405e1edf1ced9058240585969c9e0e3fe2a786b468faac3abfb522561a5aacbaf1c106224344fed5ff8c36dd1aecaed3aa513b132dd25979cd83b3f87e31cd539a5b888e6b08a431c39a9d26a6775f41f57fc7b4f4a90200209170d9c6c11daaa3493f4458dac9f641ce923f5eee8b9302fc4b1fc46ebd3106000001bc651f249e9336c9f833d965fa0cba22337baa4697ab5d03ef74846bff47926c807a52b5072671204287ffdeb0de8200bdb11f9997350568acc8632fba3422c85902a3302edeaa7903f72ce0b5febde74d12e28fef69567a5316e2764e7191bfc0c04414f170f6d47acdae5b229493b5576a4655f65a82a34d5c56071991a32bbb83b03a4f2a2d8202e08a73cbf1b16896a2fd71123e103d95b4cccd1742a4b24c9404551eb6b530a3619f295d0c922602936f91b8d248ebe6700f6d1c70f2e127a37b8cf3414d0fa94773bae8589fae05474f096e1df7e6e2535a81dcf63902d99a3e50c3ec165b9629862f62ea70c4a6dc3064acb86d047290c4a6d6dff061bc50c6dc292412878a2b823d19d6485de406fcc8962685e57228a85a6549864676487bfbee0320bde76bfaaa9ee18a7b38a5998bdaedc2174a910f0722cf91dcb92a16049e6573d999ce0b08584e42d5c84a9da6415a86a85002ba1fc30fab5bbfd752b0809baa44846fcf8fdbf3bf9d75bb4a8f5d00ecce1177538793a8d8e0b03d4bdb809eaf1302018311c4661e40fc2b2eb831b8cc4d9e279d1fbc173b711b54fd25fa7c7e44c2d7faacc3a47b26de41bc79891658827197b863966ac5f45efc2aebaada41881b5e978eb70000000000079a12000000000040c797d6f920ffab0e0d101703de5a4d44f790df35db1c886416c784485f80fd499398cc5ee2df84f61f880772d0e02c5d9a040f91bba0ed3dc4f7e106b8bcdc350100202a02a96c44ad1e2ab2820018da178a7ca5251bd58a7980e3c9d2c4dcd6d6857b0000052cbf5f9e5e8115d5d81459d9ebd150dce1a52a7f70abd8e51b6c06da3b902cb7fb6f8ef0dc060cc42a3a4734f66c19d3259e32ca5d9648f165ef070671b84099d8ac95e88b7b9cd9f1cc12181d42ec637d3e22624b0e84ba4e8ed6b1f750b1558a962b64dd3efc1452d1d9ac4d0d2af1e8bd3a8c9a8a391ca6d00898768f49f6b7136da72918019046ec830ce748a2ce712047e6e3c0f321166753a9bd9c88410ca72c5d60233b2568699cefbb9865ede53fbafab3dd729298d576e45a5af99a85ff4535f89275a31fdbc58b1d03ffe05ea3b407a7c9b9b75dcbc9cc1f6bd1b1313cf88e8f81d90afb082fed5b927b64df13dde8e4bb84806b6d27faeba0b665b477dc5da20528b7bce00dff3df635ec816c5db8269a1ecfa5a5d4697160b76e7a308c65cfa9bf767fa665df922d7da874acb19f5b5e8caaf1e92d60d85c953179cb68ab0506f7a47a608a53238a1f54fd8b01aa5ded5d5c3c1ba79a01d66393437cd7e64b61e696789ebadb5c05ee81a296f1ab2a335f1e8d52164c110b12052b952a2728521efd7cc42600b1ee82dccc4fc1d5b7fcf7e7105607d25eeab40587eb303a2f194c3341675a9b62d7f7bb62c4ed0d2a8344ac39ef34868f24da80842f26f30b86029919de7c14669baf28e3523a1edc03ea5e2fd112d6a42ab3cceba41887bf62e440e86d7aa3bf57929bbe01a82fee05f29384d08a6f425a23435045d175d54a3b219994de3d831c736f1fbe387b83cf2f705d5e2af563e3b6a2d287dc669d936aefdbc6ccd2eddbc195e31f1fb28e63e18eddc5e92ad9d9c301c83d852ff9a11f68f2527471f92eaabdcb1dc9ab5d2ca54b8c26b3a7276955d98fd1228aeb6ce5bcaae5df980d8cfc813262a84191d2e900141ba3e877cfce7362bbbfe81ce1c7317d6c1b9cb83feeb079c9cc2bda32f87f7e259fbd8afb9e990dd2dd03520904876aff6ee10094493d3348b986065f53d128c15df91e69af40af5bdfbe3939c2ce7573b8419478dde24631b7b8107047c665f05611a8cedde5a27a15974d26bbe4602106ca11048ed426ca90022de7756254340d7a94f5e054d743720fff73ccce2e554fdd801a0a8dc37bab1da51339939cea5fdb634f17a47078107a68cbd1728511b4c51267991e0bedcb5ecbe6dd5e3994937552ddc11ac70297c0fc2ec42163e141f7871c03cfc0b72614f22b515cb2aeff1025f736460791a4bf77654020788fa3bc0734e6186cc08f586e9c4a5be382af597a6b24995d231b70c4059ad68107d5f42dd9b0c8c357293f71067c1a0e8d65b936b4e297ee0edafda5d49cc10849cf70a83ad69b673475e48b6ba323140b3b2a14fa66261829e3f7815cc5271b470cfda2e9824fa311565a4c0810c0c985266e1ebfe970f0dfdce24252c4cfd068c4537128aac6a6043d1bc04c62375cdd78d13a352ef3c3640c12d299bc193ae806f63ba1b3e4c2dec688d9a7c076e37c46e5248ad939f1001f338a6eb27cd92d107f12e79bc73bfe5981a61ad02d10ca71f1ccc159f3c59f38d68c5a3b024d6089411c3753e262737f3ca97bdf827aeefcba2ee9ca15f4238a90b9c6ef5bcc9f785f275c4671896b92dd1e3b8cf78b6250e7be67cdc2b3070b5e9a0ba2211af9782cd755fb95e1aad57412e2bbf75c3998258da728ca1616f46d2ebdcb511d80b626d7f0373cadefa443ee0593a61ab32bf1e5da57ec9bb73792c9df6fc442b33c6d1c2fdf278252a7f09ae89a0ac8b716e2dd8afb378d4b4f22a720f7d5f7caada720776e62debeca76f40ed291de77b9f4f41eb27ebcbdd056c1f619c8341b793e424bcba08e4e88e0a843698ac3d33debd256519defe01c9a75fa354fb22c621f07020020e7a756d864f93a7fa26d26aa475d2c557b74b2e1db3764d060d7c48eb0b77e10000001bce335e37dbb737282308f9750130258bf5ea0f49a7a92a8ea68a3913c5f39b0d8661d4eca1754f8f074d20dc9929ba57d13d8ae59b9f18c4d26cfae8c477d93ac7755c790a22b61b2dc10a84cf74460340795c0cf9fbaa4ad9f8d26a0d5233afb45655f76147b11c863c50b2b3a30e5a606dd8454866a71f8dc3c2a7fae97cb24fba19fc0941fb60fc1de49b584ccef0fd35096278c55f77a16a46212498839194cee1336d3afe20233df5721afab4809b5df007731fcf49ba780aecee8901d0d0fd2b7d8c46b5e936637dcabc596158ad1f25f2087fc31455023cafe6fe62ac83aafe5448e3f948053466389cb87825dedf278c793a3fdaa75f8a7e5d3b6629d5e6415c3712f3ad1d6e0e0cc312044e9b357f3b62bba31c0f5678399b8b159531b630c939687b35f8f968e7a5cfd1a78412b7bbe6b78202b7c684e563cd0f458e8544253bcbe415aaeae36ad5eb622f100d350d1da654c10274b33c6674faf7d30f72b8d42bdd08b8bc74c5e540af1a18f54f650e1b8b40d4b5824156004668d606fd2c2de5c37272971c89069dc2ba78aad9866734f325357e8bee3bcc8e3b6a88670674b35aa2c9b0b1d6b3ea2619b6c9682f0e23e891620d8b0316fce5d51df9eddb1ad0c5c81ebd03de60000000000079a1100000000004083930bfa0dcc453773b7d788b142589d946e01d86d02392e1b4ec006336e1923643b6a5ae1ce1f2397e023caa95cc0449b8b9f7c65c83770a112ccfc912c1197010020b9733311773227cebbe02caeb1904e40a0b7e14da5ca38cb0e284eb408887e0e0000052cff669c8644eab4eb2cbf5e0cfabe66dac6e9bcb349aa902a7356d6925b9d9e01066c8bfb1debc20df86464e17e4287d031cc54eea6079a432ac34c0004f107518dc49cb1b5554c30c8db251a233df89e64a31eaba20edea75e9e4f0f23b1a36cb58e2c37a0fd132b3a3d3e071d02e48b9eff9f935d204b9d4e034c88317be3e0927c4d08dd910530f8e037b2b8fd839d54f23ab131793161a5a87f8291abbe268779ebcd9cd98247fc02771f5c97dfbbb9ead4a8b139a1980d65be14a7b6a4d0a0487b458f269418af1f453b4d4f06e623f570bcee96172a764a0f82d0343f7509ca87bd3524d117efe07b5edcf68224bb2da7f23ea27f97c0b18e61b17a337a790204ba7ec1e41509a28dc1cde49bb295ac19b520efced17174b56633232acd11a8f7a59adc68ac08f74bc99b7a5c41f2bfe1e581fb7446a6fd774b9f187dfd14ef6e56321751eb1fdf5a590cfcc9c0472f112351bd5ec4a7d2a277ec2e2d0215742869528613db94d3973180eed428f13d16036aabca6dd95f5c95be91cd22ecc1f5cf9a530090e67a9e0d63d0eb0002c48d5cce7aabffc08a234df11d1d75a37f28163512fa634492b5c4f9994c4c06656960d9499b103fad62cac7b16532609e4e80013eaeeef9ff51a1d3c35228e36ad8e34471229a240714aa7d18c374e786f7d62210a1750daaedaf7ba4b5b26749e435e1b0108773f81968d38ad1d9d88ba7466d90a4722e5c239d5bd30d782e96e41960248a10d03cd2608cf3941a9a89f0dcea39c9856f14b53ce1c671873cf17218629f6e5e83f14066ea21fb11f03ca0234e02b2095c7b4f3d787e92ab3b9eb2382e41f0f5fe12047f95e443326fa53a89fda8a646bbadfae0d2a9e0c12f2559d96c7eb8a050cb0731fd3ca46b5afe9e7b7f6b6fe0942060b7cac5afaa3e508c1af59e9d55cc083eecf3f850e411a94c13229561b67e79d418cc1970f4a793373128055e736a206ed2325f81482882b3ec6d3efc048dcdf608807f58787b0c27ecfbf0834e321ec84691efc3781e99520e9c3b76ed10276be0de7f17539613ac4fc69f891308475358c57ed48c000474c7530cd493a65eb3be4259a9ce77c59af7786e08b5f4e60b96e6179ffc555b5fb076f0e09840fb71488a43c5fd81932d3ae400bf2323d664699b7d7dbe54345e19208939b66907809bae1fc90cab2f591fee9da7b572c51e7554b08f846469e1a99d75d5c2c5346ee997e79ec7e871f36b64c4b4ca81d4ee0407f549f1411b0e6d62d5d5bb8bd58244ca5554de58755ee3b3e0bc70e6c2e3fa0c3c0e6b96bd241a124ccbaa35fc9b75f05b455721e34556b1610b3616303ce175b826dfdbd7a90438fe88ae2baec377e7ee657591846cbb86db359e3f6aa0d13981fed8de2d1ee2760f02e0ba108d867f0e9e778aca927fdea2daaaf2ba595ac5d935ac258b6f86382874590c1c887150629254b19d1798cfde1b2165d9f416e332a5e279f5c860e21ec336d3885aabd7215e79c843f3b5e793f1c6c046094e44c28302ffa4a358374d9e3003413abfdaa74666282f7004f738f60f7b1dec778260ef7f6f68901925aa35cadd21b865e20592441712d0bf48f23a2ca008657d5cc02eaed4f9be11da0bd5a19c637a8f51ecf6f3da0423932ad2f6d48537d688b867b8e6579a686cab124a8de4534ddd26944c454a36551f2c77b1471e89130ac324068e7d090be214478a01f29c89aebb22a6ee09a6e819f3b2dca21276d9803f10e6414ba77708fe98e7a0ecaf6292605ff069c6f47acf1b51c67e1bca91867c80a95de14a38960fa6f84d8481ca1d24151b110d35b3c60c419d50a41b97670640244cf1d944f1af6f5e1b7e30c49e020020acbd5e4e3e8e0e530f8d995e21677e1fd44323709e59ba13a39f8558ff2ffd11000001bc3e9fdd10a8a628c37ca61a01378387ed33ef0d1e11b09cae0bb9e41ccbe3b88306e3cb9719ceb98adf844ff723ddf3e54b83b0c6bb9c6090a08012c193bcf94ccd36d39db8778cfc602978aa61dd1b7e1a6a7ceaa3881c9596d9b961181b324317a6655ac4ad4b65e747b57a00fe371ad9f07766ba7f7b7d6901b148bcc6859c397c41f4e09c69f96affe4d077dcdf0406c736b26214eb304cd7324fb4d75c6f4676015e0cad178c4529ec29a731dee10aab729d6db98351a990be9e2765f888bf92fb5a73127ad8f44c35b48035c456bbd27b40cafc9be6984ad248cbff24c8c4f7d358d0ed3d00c650fc79cb6dbff92e79b10eec3090760db7654843acfa26966a56c75ef02dcc9b130bbd1a3477f9047c98b6699244be8ec164692d800d40f84a456e7ba21b404fa4122d41b0cb12c95a16e308bcb1034c9c7f64b417b1b1e261f5ef218fa3a46563b6628a468bb58c822a0ada4dd953b8c0dc875780c6a0a13fec8d45487b1d588115c34c122cacba0d3ad4cf940aacebe6458d0d6bf4bb9da3705dd2d729c4e8d84f3f29c6ad4c6e73f2080d1e4d82e1ad663f04b9411dffca75b0f4eedefc907c4117daa5b01301c76d5837c39a88a3343a3b7526b0f91818006ae914e27ef5a279830000000000079a11000000000040f6b55c76054ccca440bb8d290f79a7ce4cbbd969fd54d3e82df783f2c6284b8bc12231f02c6384f53fc07b3a663076088b48d50b749db3e15f539514bc98760d010020ec0d3d8152ddb5114a65457c103fa89cf613fa29ae0f6534838899ed11c37d550000052c82e1868540cbba687c25590ac4ad345f9ae20be09febf9faf8a5ed2428ffaf4f07ffd6a9bbb1054cc7b3607c5d756cc4f03ebbf8923e3bcf2c0ce3483665f671845e4d139b48e87ec37b5ba30508ff3f40e77ed0bf94b15e6f3f5f644610147c048a592d74ddb9f1b44518d219696c1642731cbea1186667d9b4963e444bb1875720102ccfc281ab9309a3334db4986bf0744ef7c57906685c307fde24cec3d754664d93570e79cdf4d6ff063ffd2f62404d106f3b2b0b720c8f1b4ac4bb9dd601323deb25336abf94e87b8c7abd8aa701242858ff2590faf3d6a36a3e9119ea7a7de43aba05e783dc2882539d693712f5cde7e2df2e34cd5c801d2a32c08a4cca239d8ab4b6812824db5f1e7e900faa4ce51aba4ea390bbacb138f74dc248b6344712fbf541bb115db0190e9e5068b0b271893341b592f4181e593e413c5c4463ff89504975ee820a53089fa4561c9049df376bfb0fd15d7704e38db310a500e36b3fc852ba060072f0cb42502f31ef37d07ba562578f67bab7c45946b725f3a9033290dc7041b7ad66ca57efbd4caf58f02f62a72fef25a4f6dba34efc9fc61cf56a730d21502e6b4bf9e18812c44aed17431bc9439d1f1a48076668b8ec4323f82cb1fb763f01055453f50a7d6a4c464a051dfc88aab913419b35dc9a6d409ec0ffa3612178baf0e43d8c25eb4f5cbf13f5eb3913152d7dcceb76b21acbde9ef84bb934339cd30a5687a878047f57f04529523082222e1bbed97b0a4325f4d70ce2f104ff06be1ed8a92f0793ee3cee2c22cdb01335bc4d08017f1e7f2f80dea0438d03946ed1866e97494e501bb2cc6e9a289f3fcc434d19435bf45bea99850d00790d656130136783ee542481038085d4888a3d2f930fcd214ca822fb7f95b7e8c0437e9804bf8b6a910416a4f3ac72a5170637520e96b0c22dab99c04ec7ce4885f54e77fee715adb54d090c4af7f1a44a413323e0fb433c9d4d6769829578f9c953be95b90d2173f9e61822145ae8f7bd5d127fc9224bf3942a88072d32ab8523697530fc40dfd53888471a4d32b129a52b007bd67795e5a3dbba56a319df1c4116bcedc5723046be00e12f1eeb7b7b0cccc1fb26355ec104bbdc1e509f3942c8512e4347930cef6054bb395f577a65e4d9447ba74fd49729da93cebbc1daa5fbd42f6236c854d79d348d40383eedb2087e43b06d10f5e921d7fc4e4caec1fbf9223d99ff2e1503f719ea2077b55b59edc93c13d87285f5623d2f3674e5504adc4cbf7763e36e6c8898ca433163dfbf4d6789d8d2e21229f810d7821204f348776cb029b7fd48ace8c9e9323912c2f256c9e58d5f91bb14a4e71c4c3c4c0b5bdb6d0a88c8c026825e3d6d742365f53eb3e7bdae5ac39dddbc04306fb07709c23b345216d5457fc62897253e7dc06c9ae01cc752ed1ebdf14319b9861e094763105ac15d0ce012d699c524187054b1b4bccb9c5b7d04b2e8ea2bf98c815de3c4f75326fc0dd16782693647354fec70f3e0d7bb18c645eb35eff07607bd0349b534c094f06c9299398c97269952a26fe0073d80003c871c967becec345cd22f2712e1769d5251e44306e322d66e622ba8f366cd8c62b71a3b5ccd2c63246d68068b54fd209be22cd3dc474170c73b6ae8ca7596452e43e55ab64f27b9c6f2998915531bf65214fb1c7845f30a93e505f224be46f7c56509bf2cae88d4f6492866a2436c73c4afd4c8a51463bf06d2c97d77e780246184ca7e7d9077d4aac5f24da2b714eb8244b1cc89bbc7b1f587f4ad33e142d00652702746ccab5fec301600a04d644a38e62846ac73e095e53ba8d1c8d925dacc5f70b73dd9a874c3ae165e8564c02e26caea99e1020020e5ea6f7e91aa66c6e43c1f95284e88bcfaa931f881815040c2947e52e93fbc25000001bcc88245040b73d348c07f8f952ce069660fa86944557ec1b06b845f48cf345ca029e118a319d2411a596e19fbfc4f92d73850e421623ebb6d04eb64cecb91ae6f2fdb15e61735c582699449ac6c0b7325b531b6fcc1b59e60450ea8d0449b11914c30c8f1e59eb54528bd9ad6f10c3a2a88fe72d846fcd35f7482a2ec356b0a28ad7b11748e6eec628c494f016d8c34bc9d6125b8379b1082b65c0679a7a821acbaf415ac06647ad24fab7813cfa348c1f267392902720d91665a12a0e179aff3816eb8d5c87cd44d3a8c7f3b7f36816a403baa058ba24f5d9fe22ad2a0cf3df33070ebbfbe997fefb6b3bc58b8a8881486c368ab8a5d8b557e4b9a3231f0f76c60c8004b6a7d5376f2a580aaf18e705e9892e80890e5601a2a3b076bdf43b0c0cd04384e5a80c4fa418e5912a9cf31562bc1b5f839febc4bcddc170a883fec4c33aedd33bac4a404df113a821b35f933e1adbed60cd02d3ff80f8242e9c8d6aeafa248a857b59828e602829b620fa878f2526e254dcc9e37808cc9c5c437dd16936065849debf030477ad588914d6be2013debebc0ee52ab6a28a5c80b70d35298e23a730faa5abd75a3ea63768ff27a32494c5918e154958b4cd2087b26e5f8998d87df4be0063272f9a4b80000000000079a12000000000040c1971c149c261ac2cac57ec8227e37ff3f36ee33d65ac3ac1a3126d9f6c43ac2363b363db5c6e4b85fcf3a60596d5a1144919a7a1422ffed55fd22b46dafbb26010020b6b7c0045e6ffd4be63182c9eaac343b504f58ad44d358add38b29109df807560000052c5b64c0247f98e87acaf0aadb252541e1c6f7b00cc3f5755d41e66f06032e450223daad25acb9285f50f9a83c18eb4d09fec614dcd0aa0a4f03612aadad400050d75c42650f9084f0d5f14160fac6c586ebd445702cf4380cf73f0eb8c76cf06f1f4faac298249c6940e6ef523758fbd459b160a12a2df836a4bbbfb4451e71fc77aa7d6712a2cd791dc7bda82b61fd870f51afa9b3908b1c06e4e11d43c153cfb5f4d97ea5444fb23bdc9c5681abe39810172a87bc06de48850b2bfec0ae97a321ac6a164bb808c4d5a5e37ea86ff5cc32e7a34e033673c9ec97633bc14ef66541e25bbd8585f6379c42981c218f8e95ba131861c65b7a32a3b52b28425f3d43a7638f8b2fe09076cacac7edbad7f832f04078cb17d5e859343756707ef4d7c5a21abe724c7f5a885fc89b7b79d201b4ae9b77d137a44bec26560af8351bbc80eb2c1ff404989644b31e51ee6dc94edb7e786bd866e0cb3c800d4b36712c63d7f032049f8acd8f6315699ded122e23404b1b6d78e170ffbfce91af2486894434eb9fc06e092c6541ff977bd5915a3172bc6a8ee9d2e3644b71e679bcbb8ab57f0ef5376e2755f54a67eaa1e02af219c4088e735bc73b26188b23b5ca0468d030f9abd0c24e0393a5b2cc62b83839f7b0fbb326e8ccfa8f4718381eb2c34276d95a165f3aef2752efc65b28e6723f5d77d8205c27312ff2b900dc4d2bd8146ed57fa61ce77706e5530ce2cb171353e9a95e7909be119fce5d2b0f7525f078a021682dbb26ba06e785b2c7d648d67f2df4d2392772b706be96168c8d8178dbef1352f51c28071804e9292d5c689be60452ebcfbc5d2269baaf7380e191b2b9410040407dd9b61cc636ed3573583e5ade5094d6af6933d58c0d01d80c960d4ca5ccbffb9aceae824feb4005985f742be1d8ff21ef7e3ad814060333930a57fe5c00d864c840b10f5fb8aef8408209bfa992adb181d49f509c7479380145766aa5bfbcdaf32166cd9f1ce6b6bf098339e64d15357b3e259c2c4df88d74d93d5b57b7ea8059303fc84db3b99eb33944bbd071c7839a4b6c06ec9742b66c670941978ae10bddf745e1f3428e8180014f32b7a2c3909a18ab53d67ccb6744c43d3cf4ca3b166365dba65e34b24551f69901474a1048ffd23988a4bd67a9ab9aae485b8bda69787fa393d8604fdd347bf2f03fa6582e951ce791f89598623a1d2d7cd7dcba466ca0524bef37525786987044569708e9bfbcc08ddef02e50eb8c16335bb73e0eb8d153082d8d3172eee5e6a00d15e5cae9b18c3aeca361533c71f28cc66851efed7214af2577a6c9fce2038400517e0135ff611ad8897981d2262589a1216101267373b3f214c3d20b7540aebc5b697c50e05165ea03c00c5c0caf336c803f2c1d529a0d58a4d9f0d4a6f442e66be730a53e7d326b030ac1f084160f870735caff67b77ea420b57e0c5a8807b56fc71d3b2a3bacc3c55b460d4531e71b1ffc1470da572094a48ae5cc40d5f2d76efb8cb9f53afd416e8022ce89981e2dea58f43b929e355f92d6d2e388dd39a0338a21babfc205571be82239ddaa803c4bb302d4d2e5de241cdfd0e87897d571d6a7d2b2816abea97db2740bc8e66638ee36efa8095f7e00ef38dd4a1ef36a55e80b88bb2bef52ac588231b3756137c20b5218346e5b745de7f4c749a53a4d76b00471720fdbb160a688519afb49f80e9e572fe6f56bbe0e2fc36d93ca890f3a0d008c30ca230f1bee9bebae36b2987f7f4e093d33c1656b6f9a127d7df546f75bcb64122603f922e1379053fab3423ce6c4b7d50669b6ba5b7c8946b8ef7917cc561f928c5e3940560496272c3648dded781c3c6fd67d34c23181788a0200204cb1538db9587f04ae49530ab93ebe721982075408fc0f72d38f00202bb2de75000001bc831840864f6be3cb07f7f284d9773d90cdabf1bde0385aafa80da340554ec20df923198409c3314f8c58b4bc2dae9c84af61fa37adf2dbd0206af3038f1289dc177530cca6b72255891b632841915ac8e0549c1dd01d9ba3d8d54aa31fc8a6e1aec460fdba1586afbd67423ba93186cc0dea20cc5010c6fa1f6510723c8d834d5a8baaf7cca00c8cf116b04a434b6cb2b4e6b155f84b9f2372c6e59df63e0792d6b5e3647e44047a55840819fee8b6caf698fdc46d2dbae28907321975b3e52de2201952124cfac43cb44d9717e41ea2dc7c0852797f0c5b5bccf345ee3874bc43864978342f3ed014552793e6b118198aa9d747e3c8ac49b124202199622ce0324801ee3611d29e017a2a81872ab58b6338feec4ba9a2fe23f46c2f393bed820b8cda5cc2f07d7a091d8c29f713719ba5e71384cb8dbd2d4abe8910a8e3802c4730d4637cc69cb8c6e80eb725283290ec2e1017e8d5a09027eff283f13123ec87ef01c52d617d8eda42503c81af5ddc485624568789ef87b316c9f181ba6c1173d51238b10f4f20b7e956109c693711b4c63f32711270af877aacbb0e210a722f264eee4f01782308f4be8096cfd67bd98ad2fab34066b01b2b591d7d9b51b49c6320c54730b8896dbe7f2a0000000000079a1200000000004063f5a3ebd7e4d4defa0f3e50a4fa700d104835d482a03553be449b70a255bc7dd928d6bf4f860f4a235e147a8fd200c02e29d1a79cb6b843325d1a45dbc8ee1b01002003a85749bb63267ef35e0b65b0e362f05fa34439c582bedcf1809036929eb6640000052cf602fd646591d2cf49419d1c9750b16d17f4243858c4274915ae9f17698b47e8e952cef1c079b9d23a59e66c463ca72d8877b9097e7f2cc95df3f75d8f1c1e56ae099de37178956bad4719bf96a6e962368892eff2e1c7b533007ad137c88a0deec9a79add31c82fd9a7e1db6da21e0a44ac45510ef39299ced95b2487986939945e7ac185d8504a9eecdb71988f717758a2d5f91a614cbca6094cdedf43654f28aed19a72ad5ebce901681bed7b4491bac5738aa26b9745bbed9ac1714654e1f10fc7edb24ada40214566c6c5eb69eef662ef330f05bb47317c8b3f9a475fd3b855114eab87bcec3b9f35b816bbfee4451f025bf9187b4a2b977016203a2e50945d7fc1c1fa8b5a442f6fec2cb626ee8cf37a5ea819a85b9b8678b4a22e4ad867b62cba10de538fbb4d610ccdd66564dee634872d7aa0e90a70bb922f0e0a9990599d14047ebdb7c6ecef48a387b4cdd71409191e7a5013f08e4100a91bc9da46597e636d1db8e40dbcf980d2f6f6df9bbf700091f4775f9d8eb6bdfb95ada5af18c068b2386b7068b743ed6cfd5427342aa5bb8b4f0b56b0d04b5dd5cb1aab8b0328d093ca6b777b02049c0e70ab8990663ce5e1fe8e61f79710517abb352cf548ed3d4b43b1f492c4df8133c4df99cdae521ff8cd6f3ff8f42f3aae2c23416ba3f31b09770942584a0373d138f2ebc01e71d27a225a59f9104bdc6de2432fdfc7123c7252f186bf01d11d9c110b972e48ea05e5114937745209cd85980b9daee199643193c58e85d3742acc9eb9a6df26e521b5ea25e84493c582cdf4d37e9acc46e16a00830a8a53376b177443955a4823ffda55e3efad77cf194371df2f82d07e0732c005a9175f7780170f8b60ed7d9925fcbff9e0cad782b93cc7f88c0e2749d43e5783f9b4cdf0dc74f895a944961a811dccf8048c2afb60cc4243ed8204edb9b7d8781493ee7ca8138e27ba0c0af9f134b1858fff5b5be684bd1409dc370fc68c4c08b7a4c4f98bb5cb574b6aaf623ef06527a8f800adbc3d46a69b3be599c5c593382a2f6f6539d7a375596310716c889af888eba19ba024524ee2476c248d2b8d47027f22df29c6990c661d52299c74928405ece787f295e40b2dabc2889a7d0a16db56474bf2704cbb06d034cb1a2258b2060bbf278006b2e4e517f1f0c80fa218868d45e01394f9f42b432537a184b56889f978c469e3d020c22d17e1565cbc1b4b8cdd55b37d5d7d761512f74a3709adf7169a061e5c3a15ad9376876baf3e1ab670bc28f1af353d78b268dbe8113774178bc773440f786f8e8c041ab69f578c60f0ce8ac90cea040e394fcc9f7cfab094ef663603abf9486754e08cd645ba74a873da0f62e87c1e7eb31724984bcb9dbfb69db8b05ce9df257152a3611adf8820234d94964f429582f988bd8a0b0eb40ea42610ced038a231fe9ed2e3e7b29e53cf5eeb4fcd6b56f8d1d0fe01424c1076c0a9c40dc0f88b2d5e573cb243cf52faa2a17c277521669da7cba6c98b76f6405e1ac95b74062b47bac6698d3100d412ed3c5bc457e114dfa51b6b0aa149e6f8a3539d63619fabd3c2066a76966f7ca0f2b7c6085ed6cb77e3b259da3fa90a6a02d67a6de664b4c89373af15e85eed298e0fa734b26ddbe9703ffb734b33736cb4ebe2dc30bb8933dcd8718993f9457749e4d8d272eba934077cd8bb3065bc105d1f3f93cabff19e78da6ba0a246d7347fc8cb8187c0e719e49c0cd2300beec33db7b80fe6bf5835c07baadb753dfbaff6a9edf2c8a475add7219bebd3445c05a345522be7cb0f49570603458519cb101f763e8dd2fcad3afaffe0bfd2ff4cb8b3d18af2dc768616dea6c682cd612b2a71266611020020e6e5b75c670d8ea51a09d2565e790d8a94b99f9ec2a38231d17a31578bf17e6a000001bcb8ae0b93020696f803c3f914798857986206e8a02a2d18ea09edfc03b1a2be4c8357158407b3a13797b9bbc158e1fcdaeb838cac5d8f7cdbc7ece6a2bb6d424e9e6e1f2fde2b1eb07407c483c05c7ef452ed348f73eca402fe04b2e7bc3f5d3ea3b42f860a0c4221738ba13e7d1dee89370341e76b48a98b181b45185af2a14547736e31fc4f4edac450ea36652a222469aa9937d364d9f1be286f7148b79406934e6c8c90aa2a72aa27eeb7de939c7572aaf387b34cd6245678c1299d7d222b3af40d4caa754d648be79708aff50210fb952dde5f22642743220d3dafc4a586122364296f18bd06a44d6497c36df4fb68edfa67f3036d1771646c678ef44080f55c8b894bda2115ee600599ebcd865b72ef747da7b5621eabc9a1fd072d4ea3917c8a3c33fa191fa2cdb54fb18aefe7ab9f701416f34b37ec99e3044ad39c1322dbf0faeec64b8fd76b7c26f7c4f6c0fbdfd58b03be2f4ef093912ac7a6e217b17245be8d3e9d85ab4d0444e6a39708bdcf40771edce9114bd1beac04190754d3a2075ca493a3ea158352daa285cfdf789580c6adf2169dbe8eb90721f93e2a2ecbea7054c7e8eb33b44d6372c1289115f2ef4987f03d9308fd04c48414418d02f95ea3aecb74067a9ed3840000000000079a120000000000400a8520cc8b90a11b07e280b206471270c763ff8340fd422b7f19d390bf68244c5721b9eb75d365a4d5c7189f40d08eeccd37f47b621b19e2b699d250f87ec66e0100208840c744efaa420706bd9e263e9da30fb0edef7ab967e3eb50997b01fbe77e0d0000052c027f7a6f96d8a0099ac479cdff42c8756960b339ec62182030359f279d3bc951abc3e03a7757f737e3c97ce21f29af125a7d33ee73095bd54745337d35f0e531c108652850ae8b1c7cf57b2077e6fcbcecb97742bd2d4e0b0d6de661880537fc5194caff8fc80e3214b9d4f3551a71ae8a18c2a65ec0da45b48c070f9c3f5fcc1ed2de65a602a860ffa03b9b0d1b88599d389590edc573316ac4c4a38d891ca8a49dd5685bb7799e2fa87e572609585c5b7891618549839eae1b68c2777894e09029e2bfa990a1a0a35e8d1cd7087bb37a6946d21d193b3dcd315ceef4e4994e60530652e32f74da66ef6e4841842e35587801dfc5cc72728007e9549a76f3000bd0e0c8b49d64e1fa8bea5904d0f81941217e61a8dd01955381fce528e60107d094b55ad8eca531e0849b9693e4a3f2ae0d4f3330fce19273005062e82cda8059ebf51e8edc46e85fc3cd6c3f41772efc708f684deba2ed426735ff891f7936114b32642be32c12e125bf581b90b16a40e350f9e162710635149bc41fe83e90a5d30e87a5e3e78af1d43958ddc96f6356462c5c02b0bf57290206e46ba07ed8b6fa095f52460472dbb7f4b75d7bac9d02ad05eb9faf99012aa4abb943f8b649def79635291a838679a187c91226aef57f766c294f2a771f1bde0c58c217a1f4a312888fee30963c657912114735b47a9576cd7c92ad96463cee854306e7e1a7928eb78d65fb3672901869e6663b9507bd4a5a2e9f4338cf33b9801d7cd400fededf38f5901c3bcb116a22c2674696fe7224b8ddb0bb2f11aaaebec647afea8fbbfefae3cbc449dc2683990e34cf09ff7e2b4e7b3f31fcb951ebbdace5e2529126d139335b28952652d8f7505d074a5e72fef25cabeb3024c4fc0e5a306b8c2ee941bbedf38b19ac8d7267f170b3af94d5f639f652f44061bf48359c899e0fb2ae8bfb1a9008c8205f11764fb00540d6034a0b5c914b204ea54c1ef20e7863c44632c54b11a44263ee682e628651fc06a2515c8cf7b23e03ba43a2761972fa2d047e896d8ce617b13b3d87b35980ee7d2c33c0ccfe213b8a28b05e1fa676e1610492a87b5999c58f5361ad3a485891de431b4e5ccf499cf7910660fb1525a04aab5f4c0d9c14a08d46aada3b3081cd56232bced0e7240acc44099843b48b03cd9279c30c778cda4e4acfff44b55598a5e02beb445fc57111271c2c6259a0d1ef045e386cf8f66d7de5b0e05dedd773b44781076a72854949e126242089dfb61123f4d78b122b5f856eed8b7afdb44ae96937cd10034acb440cc7a116697eb865117446d25f643dff69483a5f32986b3a9dfc0547edeaa3d0f18aec4c7b544d14fd4f4431b2bf29d8ba81ec96c3c5c3c1885455f69e8d39e2471faf0c32da171e2d0be8de89dea09c5b377b5f43669169e498d567ca2eb093d98316cfc19a391e0743f1d10a60925d148bfcbad70187f83e0922c21a90464df77eee3514baa0b581a241d00e780b66d00653d7f2288e4f7e58a112b47b667a441254fc457c612b0899f996072ce919b7b5924aeac5afd82f8a65e95a371509412a3f8ce0dee8f7726b90da0e5cf2a2ea8705b30f1cf6a93ca5a8eaf9372c8521cb905b84d216c3820bf147cd6ccdb38bd228ecdcb6fadaadc8d05158a203c3a7920ff998d43af53b0a546888ce6bb3f717bb87be2eeee61b7460a3e87b0aece83fd94946fa0a775edcea3062994ee7fa3af64bd75d2b152184a5b64bf682b2be9f0a3fd61f54c7e7d0efd32e007144b700958429739e87dd732dffb2dd4ec710e95ec48ca527696e8692ff68deba2cdb45920c34698d635ea69451544cc03038938a41e28f39a033ebf76753000d286e6b7c5902002072b312e94b9a41608cb07dec7baa370a08b43cc1fdbd3f1ff55705571f17165e000001bc78308b915c4a8a43ca2ff70c3f55e1ef78663bb0a11c61d7474c8c48b2cb24d5f264256d19862dcbed24298aba3dd34fccd2c31d31f6702d5bbbf70812adb57339001987726b6cb79976f291d4366f8b0ca3a005c6c9ba3c5af5de739f02cf71aa04e4f8cf7dbc5f57cd55cd5ee26eb1907376762e316759539e8453aaf72396c7e00fba95d122b2b558f4c3bc1077b2615ae89f1892ab71dcd2df73f6f5f8f881be76af1352bf4100a257be990efff0b505a3d3416fcd8a2736c8636b99a648836161edee9ed3fc5fce064287e38dd5e1cf842118bcea7725163221af6e02e2641fd8e9b5fa5db880e6fb379f2a89c89c2a5ad53e13caff9206946331c2e70132c8a0995ad1163bd19ce664a6682df12aac1db4cfeda2cb41e5cb11283c99a96ea6ddbab4f757e1eb50acdab05ecd070d9078240a98dae70882661d6660951800aa699594e650238ab273e305f967962ba01c1999ae7bc2ef0b48a15792c6c645e01816c7994c3d42cc3ff924e92ee4bd28ab0adedddfa1905c30497228f2913b1242636687dcbbed6cf6b54e8a97fb988da2f48fe0f374ea26aab39f55b3c0f8121dd4727353043ff6e8de462555825d63b5d6a5c07023e38e802c857be43a3b7c03d72eb3b735cd3ef7af0000000000079a110000000000401f000e80e809c13ab136d91167f6a76cbd2b74575e2fd1cb991d551e57785ca38c68c65f0fc4eeae413d5ccb43184ef71aa8bf5d07fde3bc5e0cff5d2d5eb268010020671769748b9ef8ce2e83d52ae9b10cac142a79211c73da028cb8dd46358d77160000052cf0bcdefcea5cefd42e6aec0f387e907c71fbf1874bcba33300c2e18d402dfc6c0d38616f8e27a0d4c00507fb8da9b619f2f63f56e2b254dbda50e4a4d5624742ba48026afed03c2506774785995beb1fd8ef2765f43c53c07b3c93ef9eecd63bd622934d9c8b49ec051d33f1efddc2258887e814d86c39638c25156015d9744236e82bb8f30358d03b91c4b29570f5adb58a7539423e9b3522e4f5e6e517f24708178a30052974de5262f6b1947addb874f403c0b5f3d4efaa8aed51d2710f24012139ca9095d93a38def49d027ea8e6933becb9289d9593fe5c590a7a44b8070f88f1aa42423518f289c0ce18846e991c9d04d87282969f6e2edda185c989e74696f8a3f65f04fab91e5163dffd771d5e51e56e74c01800628936b68f793b457847947ffd2519186975c0613f905a71612e0dfb4bcb422b7190512561a246340d843483eee7e3f635ef2eb319e8ba3b21a5937c222e4d4dba76cbfc32f641990bad73da20193a8602a4ad78a220e5ffa811ded058827e919be04586831b64deb6795cac3a424213c2981cadd29adc199c4902c9c47b4ec2c1f0ef5711ed24b73d72c815cf31627a27fdd141ac6799df9dfd96fb6ec8e91fad25fc10e11a1962995e17335ac4748a199231f4bdf439d236863d9007de42db1b699b788b1519e69cbb7b379cec8d40c7a5c56b5935a5b56e961bc26117a93847634454cf6bc410c95660562e6f3e564e825d95135047ca624fdcd1ccaa1703b480635fff8fe71dcf20b09cea5fa4072755c121cc61925b596dc3b24ed87fede2a31fadeadad0e9fca49f525b90f16e21ca2957ada4d137c7c6c9a80aac8b36f0be970483e5e8b0a3adc665adff7bd843d96c1520700f10997f68a0e7181cf0ba70ebad1b1897d6599dcc3fe979836ceb1bc2a512ab94eef779f72dff9ede5e06cd52e7bbae2e6a69463d9fc22d3e07e001481137fd8eca03a3472ec0acea80a361d4f7440973d655ffabc69c30ef54e821e22e136c6ed32bebe0ad46adf70a87c6e5d397d12c5609924b188ad8691219d2c0129c423d63f5378de6801ec0fe659310b99ae34830b6adcd7fc0d8ca8d743e981a38176044b8055d677110b75b1d8e237f3da271bffc9c7c96cdfed886e578523134c7a6471d25a06ae0b9b8e6282b73ae134317e55fd7a985bb56daf7603cf790c73a830b97c46b29628b5e26f7aa252aebe32f195fec5e22857872a0e830d4cde96ccd713e18ab3c34a8f6427d7b3ee434c146f5fb1244554fb70402e3f4e992b10db04b92e28a4de8bd7d1c96121a93291a698bc4071cfbc35f416911171fdca353436a73870fbb6eb018c16914ebdf33fffb50c64ba06a602b3069addfa0194aab4afb23b75d3299e6bd3aa7d4e75a3badc1779ff5ee2b93440d63a7939fec5fb441d1f1142ad287df1600cff1cced6cb0f88417ca7eb19b31ca2bbceab2ac3e62e7b96a508d1523accbcdd403596f272c19b63dd99353a5889a0bb40fc6b6ccf1263fe64d46893135e0cbc7cc248043d7511b81995f30da42d41bb9624ea0be224db5867e9703dc5c39e46f64edf65f01a65c0aa95ac888b4e4f9aa3c47960ec5ca487f029daf5a39a1235c79122c44ea614de575b1e3c82f0296511a6f06197cf3ef1393a37548e044eb865c489a461702b78e94e39bce2c5a76aefc3a32ec6e029c5b49d68b0863fdbfaef0fe7b17eb00d313c09a0cf69faabe33bb42970ab880217283cb53e3a029d1592c9b90f83c272ce779bde5740827d5dcad64961a938251e499f6738d7c25d2d89014d1a5dddde6743d700c7d542bd1855f0c90d0e3ae64a0b3867d0a0d75098c1f80312b33e3439a1655386e4de360ea4fc7b80200209afc9922816a8b86050a5f3d94a4cadbff7cbdb4da7a8a6b1574082e77d88f17000001bcf92cb87815ae1fd1b11ad18a434fe1e7fd504d35b7acb0b2ed60558ff17172e2ca5c3ff5aa61c96f98d182cfbcdc7692ee9195201930e6947fb8cf0cc8c753d08044a79189f9ae608d3c71664f004f4614489fb0a4f054fa130b04d1021591420d3c944e8f1751a76fd877cbe0b34e48ff2f81c12026942928030546790051ecb9655804ca35b2ba6e32c596bb6c165d9f042a644136cbb0bb7e6400340ab7891992845acd566bf071ea8ad48642f2b0adc6e0c72a9431a8185d0dcdf7221e28a80ee0b1dd4f6dcaaba3ce820f893040f5189ae4754c91632fe3c9539431fa2e7a77e4562430991a84eb3bddb33ed7f90d55a34857c5850093396a5cd81fecc5869fe195fbdcc86456f930430177fc07a5d3c8f4536490704d61205fcce51aceaacba3145ff943f8c6618f68f27601419cbe4eb2347a26797b64114af6f5b3156fc17b313e98ed901307f0a1d8be24b191e67fb28056330d8bc39f2c74ea7f2597c2473ba30c61114dfc323c38504dbe56883e33d16f445c2e997901f89b815c1d1e2dc0641a9fe0c21b5911794857d94f225b9125a0fc126ed09a42d5225a650faf65735dc328a5941c7d73f0f7cc1846b29d3a3c8f1be7b91a8f99887dddfa841b3e870db8d51a190cf19b0000000000079a12000000000040e7fecf6c488fc656576c94e5e71d2eb64a09d1a958e8999309ff548bce696b82b18904cf847624683672d9b85b10d46dc612fc5414be7698d004ea72a34d70c40100205784102db594a7d7116e365c49cb0d71eb1bdacda163661af4188d4eda41ac4a0000052c0faea34a8d9c6e12fb2b66412909d063cfc3feda442afc6c6f9dc37bbfc615ba4a4c8c73cdcae8768888ba8030454053b22e596094d55c1df9ec681b4e964070359a383c26adcc35df35519341c4d554ab555368b26b2406f65144ff902a12b4d797d090ffb721341e1bcc58abdcb08f27e66d439fd8e688a63a29727bfd3783c5e59c86753ee541d47138629050c9b09e6685244261cc352df44d6e393a62161a227cbdd84bf323dfdaafffbbc408b1ce804cf416d95156b03dafe77d4dfd40a4bc4c8a9b14356317e3079621aec1ccc81b96c76223f8ca1570d748cd944d4cca789c187680ea1b920a26ba06e4e66639229112f41a38b45cd65c72f50da9bbd7db7d16e2c2a68e3136edc1836fb17d1a402d397853e6ce2139fa76d23237dac92c93832391e8f30ea99ffb12b673c40f762d515766c8157e9d014800f068b83b1ee3207765f3176bcd6cbfff49eeea02d1a359ab9d97ca0676f41bb6cf92dc8bf484ed1b65899fd6a395f2e828b36302dd8d43763abb7a214349d2439bc21883d287662350cbc224343b714db5daacd04628a9bfff26b3c58f0a4a95fee9f21894db34093bba96b0078a1ba22b4433fa83c19c7d0073fea4b9c5453016825085570e88d521b74de5190a2ae23dd081e56f62f3b04041679543a14888e085ad4139f68d3f0b6e3df9866aa5e2849dc24f2197a0f43d9f2033e02621b7d0ec6ef2a24e7c3666f3325adc8ae3441fbd20c15a52349bc52ce400cb528e59665041d070617731fe991c2302c134fd0343f182840371b43b57ce70bca81b134aa57af8d624c6db97e5b335adc3bc00f5988f909de959fa075c018c7c9503b9f0a40217fd7129b881910abc13736a03f9be644e0c51df1c48c1434eee707bf856871feff5b29ad2519fab648b5a124d6c384a9a0c6f3995a42ce6ee111dbd9464d31d86d5f0f911dc16ef524ece850eb9424c908ab05e14c1570a26e90037dc0fb71149143173d8df04626b42c98c2740772be3a2e013d8b0d4f8f3fd893ff9428a0b2fc290c40ddec18d120c85812a8a2bb9b4f89f694ba5e348a377b8978e7e4e3f03e2c6616d66f3f14ce0d628313eb798e732fa2d089f7c4a09c3ca9287f24042b0006f164b514adfdd719bcba1566e9efd4c054ab703ca869404f07b6a637b6af9f52c378a9a50494b68455dd71fe63b4307945ee8885967c94f18a4319a6ebd4eab2bf145b1e96b1d9e0ed06a29673e988d882fdc86040234021910efae3e7c9eae4d69630ba6a09ba8224591117ae1428f0f2e2c340b7f0dca3d173cec906ee4301ef70ac58a510629d55ba512cac31275333af18a781149f9fbb6edc9566efddbee76d8ea2a724a15c0ab03d6f941b942ff90a63989725103f4829da11bf49ff1deeac52f526ae47e0d417e8666b3f4c7577216e1e0629cebf922795bcd22c97ba0262e5836b0c81a3f566ec597738693447c4ea71f1d3e711d531cbbd947b5afb152dcaf04d9c8b098abbba0c98af8c11b1f4074a876e0ce48630383b960ae9de8b31d915c73a9871a2fe5cf373463bb8fa5cb2d6b2ece2014c3bc286e2d32f269875ed2dc7087d58688dcc4e30aa35cf66194d3e5d080b2983936f3a9e7c8e1d779fae5c29527c9091460af294b114e7aba55313b1abda5f6cdb089285e1aea2c2e3dbf10aa6769b30476f39752f5ed6a5c7529381f2d6a0e4c9a3bc1522139ffc59f0826da034cce90243ab27ebb98752107f6534efbd3e702d9a40b93c80c69b94029c12277cc01aa7ec4d057917ebb7af32ce9919a311f974ff767f196e38f162b153af3e002ecd3dbd23cf9acdbe0ae295117e43c7f28c0aea1208f9475c0d244d6dac400d061c9020020b4b2e3722f068123c7eb80bfcca21b5fc48ce0f5e5fc34bc8b078d371330007d000001bc64ea5425ce251d222fbd15f9981c0923ecff7265cd92216061989621ba5b03c18dac1cb41c7af543eafe04d7dbef9ee59f3c49175a2fdbdacd7f97aa877f93107638cf00123c67e014616516fa78196a2f9b24885efd2dae3eaf49862d1b1523e0e90e083d73fabaec8a34b9cf486e7c0725b4ec4b58461f7a4ac06884c71c378785901ad95b3c4cfe4f1baabb1dbf0346c82c3f741007460183c2d22d80500925705f9b3391e078f688af008c7308481ae3bc29f4b7f596390bb1a747b07efbe19e6cc28e7f7f88ae92b13a057fb293da594062ee4ed18f0dac2ebc5fe2e99417b6d1782ee20e50c871b84a57413ce81e479d7571d3cb16e03acc2dba2c410f025025c07db4b8c037e5a02ad4ffb3ffa085a6aa32033e472a7805c2b27c057cab08b20862f883f50e4929b919b6c7a5f2d761d93cf4c4d0824885032b922298f7d57f4ebf97f9fd14b91bf2ccddc236117e1e8b6f1ed6e622fec386ea41cfbd04733b8bb1079a8d45d5cb87879ba4f5be30021d8abbec7c1f54d1cc2294e1440b46d480c2e965fa514de0510f3fd829f8ac6581526fd8ce97c9ec6edc4e6cf8cc95c001c387d90d846052281dd41a1aa6cbcbd12c63199bc9a2a40892333fddeeab6da144526bbe30e5d1520000000000079a120000000000409f197ad3779df1f8eb3b033eb20c3c2e97c9690876ac0c5d215d62c02f54a7b3eb74d1f3dbee683708b940f9da0bb42956f0f21c2535d55baec4e3496bd234f50100203c474d64e83261988e911d38b77fde7322e4cc11acde7cd6e52f7e2e362031630000052c4140aaad76e13e4976c91d365495933c89c6d85eab8812fb09d1539c9f0377260c4aeb9af95334038f423063721b07a3c375e82682b47268b2d4aa79fdac31957b22d2410f44c3399bdf840d45b6e9ba78851487b75c914107302427a5eec4c436dff5679ea72fcda7f07084eeb4bd16f0ef4adb4ecd5a20dbf08f5aed773b9810b4dc7182bb013464d9ea2b75a11cee4209e1e3e485a35e0a272f04aa351b8a18afdd7d95a928d5ff25f042550aeefe3d5cee2efa3c215ef07680a79ca76f498743d16eec524e8130824540ada38ab2533a91f35265483c374b4208c9b4cc8d994be95526a9a0b658271e8efccfc9a08e4f85d79d272809ba65977f95195ea29d013fea37bc6df0b1a826931b92ea40203f6c5aee007fef745c649e865ccc6dea6d16921e0c817774e0803ffb49289ddd5a77f0c04c849ff6fc227a6e1f8972bb466eb0a5406da4f4d28453988d0070a4f806b0f84f5ef3c46c01ad6e3fb476866e43dedc32cd73d31f6ca00265a2e48ce76d4fe0c01b331fc3bfee2a50292c04add8add37356080633a3b9ce3738ec28350d43412a326f03ac52352d4ee09db56c0bfc2cabed3d07e02cab610401fdfb44ec00c46a701c7ae6ec006085a51df658ca5c1f44cc452518d2ba83552a6f6ab7fcb32e4ed9c15ee8aa4c8644f30f3208ef8f88e46928731693b777a2d9b5a0054d57e2ee198459dd347530ac8b6f60a53106c45a8f87e360ed2cecdba6edb17b24cdf3785d85df8ae7b2f9d7157e006ec1617930477660f8685cb5b2201c9db3997046eaaa2274355600f6d11736312ff4fae1ef09fe265cab71dead749c04eb1239afbada47b822289821c58e87186deb2f5ac37dd45d3a96bb995dd56c727d8e5f5be77cbf51f370cc51fecc9de418d4acc11071b0964b6d85c06765edbe0a976ac4eedcbf54b8c8f99667175be4f2497b1bc3dc0b8117b101a83d6570a49c3e2f71eaa62ec40e63e499d3261082a22e4eb2b8f1dd812b22938417c0ce1803ef141bf38ef8050df6a603df59feb25fd3573d31af71031381055e96d75497d15f3a4734fcf2e841799fcd33d912ebb870bf870d969aaf24198ddd7796cb30195f8093ebb6bfba19601ebb98ae95a3907ce7c54c71a0c57dd89e2dd6a2e6ff87d982d504cc8cd20d65a3b05f0685d126594bcda8749fe32543ff2ee8739cddb4478af91119624d248e16710be1660e12a256846b620c3e8f0f6613b0b4cba75da055262c81f45c54b12e1a3e798562dee0a238b4e3e1f66236c4d43c4283bc034576e362e28901a85c55cadb3c87f9cb34c9706def02f2020b9996ea44d0016b65e40d84b6d884c1601435f3af0ff163110e49833d8a002e487f664b7eb9c03905a2d8e2720a1627b968c5ef7b4092be41ba0a0512b64c33891f4a6b07463bbeb1395c056c65c8e47a901c98fcb4ae73175195478ead2905a86dfdce191fcce8bd1726829c01b0b604dba72110fcd69b48158b7f4d58b473983bcc4c70c790f37ba909fde21a87d71e094dd362b8e51e5eae3e4f43f8aefeca8b13f90b4307147445455440512ffa9eac185d5e429bf925b627f205134f4222d88adc1b8e67f7041d1763b101239e26b08a83ea1f4b436b72c9f16bfba610969d88c8914560d75bbf24ac4d77d0e6518ffa9efd08588ad3af2fef7f811aca21b8a140582673e4009785975fc2ce0dcdb3ef1491c603ee01fd47e5230cf1f9c3f887d4ff6172c5da0f64d997d84ce769157f01ea51b5f2409185e05dadff8ac59dff46391640e186789bddc79e6cdd0d47c92feba5b4f6497058c6392fd31bd285f73b29b91a529f1635d2b995d53d38e9027bc0e58cd2bb984b0085fa8025efad0200207a0000167e18947ebb85e518a662584378a11bbf4d79a6f383817dc034fcea70000001bc959076e00f11e438b85dc8635a0f7e7797860580774953b58f0c958b03850f589aaf23fe982cac97dcdd0c53ff5790b1933521671d08e3795c983047e08193ef78fbcea76f62c38071f0700cd18527c6f08421587e911c6e7510d3b07fd95fbe3b56471421b3d719b5db9aff7f5ec434c639e98b3966a692930f131b1a6722450b0c15de1af2b9cd527662dda5f2d2784f5bebb679364bf8f8aea325d3df48d88f34bb2a291643a20bb7dcebe75d3933f8ee9386c6b49c418fec2c5d36502cf419d4cf695a8b65c2cc448286f2d5b31d9974644241ab1f5869dd915cb4262e947ef77c7795fc0f77197c2801e5878c4cb272bdb1df8fcfced73e598aba55055e2af3317f825ab7f5252b1bda3e656bb06f532298ece7bb5b1f5750ceb8b7420caec1862ce3c02ce2bc1c631f73167262d900a9cec4fc7923333da237a5d7b71051c60da8a8d23d5109078ca4d675f283dc16c7d0b2234b0e33c93ec956e4f0aa012a101e7aeea8b61c18433579738fda83beda5dad858c85aa1ce2409b0f0800924b8a551c1b2712f0faf4e0807dad6a01d078f9c6008a4f813c29ac4d767885cdfacfd44979a15da219ec7199b041e829b2b1f12e3502b0782356ef97409d8a09b3334f9a836aa28435d9cb0000000000079a12000000000040f004af4e06c9c4cb42054a2fa0d1c3054c5cd20016d64b24b4b11b9244f3256757985ecda7f938fc85f379b97419072c27062048b5d91e38711f56b39b237407010020ed7113a56a237a941bb345a5b70215c81c6b640a4bb0121ebafe97840d620e480000052ccdf4189570c2de3bacd5853aa3a05ca4ecf76f6e04dd4c9eb707ea1bfd1737f1919fdbf1f3d5de6981bf1a0c165ababd3923a885f47b30d92cd4191ee052fed3103ac216f9d8d8a1ce3528584986995e61624a0a817c82c97b2d8d5e6c07274ea4dbdb6406a11001e58392bc31f1067384e85bda255c36e1c9458ff1b97c72570b088685650becfd221fb0e3fbc4538b834b5439b49dc337c3a69ccfd63e9cd8cb945a99e8932c0cffd5208db31c4f65fcc0324e606429466584e0df0f98cd605f252cdc2bb5b8f5b24c21528159af517d2ce1e75f17010d945130aaa6ba871d7ce6ec6b5d54ddbc9400c09d37a2899158b70c192c88704f1979abfa5c248fc3b70b97caf7484f34b3efef01e75dea3fd296e663d97d608788609bd408fd6c2ac5179ee927630e38cfd7c97fab4cc8b64526dfe2b7a81e2da54af454384910784b771f6fdd538e4ace0f24b3504f87e9325141df9f4e79ff9a2471e3a687b0c6a2ad020da3ec1c6a3c3f0d82c9f71c3336467fd42586a795b4b3602ccb8aa8c0f85f2a4f43b130062585ebb3103208b3d73d0801daf63014d93983c97d68ba58fac1c4355d37d48737b1a685ca7b528ff9bd1562ac1758cfd5d22b4bd932a69142380e6d220ae85bc68dcd1346c8a35b675074591da6fed313526a947d58099ddddea0496de0c1f0c2508df0723391a185552d340cb04cd5f53b4b152f6ecff4176d0e6695634c1db0dab6f14cad6a56fbbf519376e297580c2acd15e031ffd6fce7760680f76921c4f06631158bd4d0f59929a55160e388f41b92b86b65007b24d87d522dce6d6df47378b87284fdfb7e0e5a1feee9adb84cbffdca35c8e5656e5da2a44b003c32bb1b8066e0f31a803cbf9d94e0358d48c353472bd2972272e99880e98e8821d41fdd1b9f8c341a293baf74f8fe028004d06647bf569c72627bc79aa27b121f4d62d1f9203b23df2faec223f70c3159d85bc6329be86e964ffed98a1a9109b87b1038a7182e0c7382884a67658d30392c5267896112e7448b7497839d866082b3b8e3792523f9accc921e56866c9cf7b896557ee195d89cc0c759e1a423e8119a5710be57fc687bab31a8e84c97f9cdf6e07c5cd76459acdfdaf12f73aebafd162cace75dba75e73093653d31f6fd6c71343d9568d5c49cefb4b0e08e0a08728e7f218c5e081933372d17ebdf4de714b592f9cefc59d0d1868d54c6456a185b10e4e7fa08ec79f440b19adbf81a55f13cfc460c89f6038894d0891ade2b283d84327e0edae1536048a2701c06c8031b7e750dc58c171dee84ec66029efcd07ccbfe43d9151066085d4563c1296b0c65c27e99a95afbc0175f8d93b6adfb269f9ac52b8388993e26ea94eec8f877624a929ca5382ca18d97d7a76a8301d786635dd4cfa71faea8ab39a02b5b3b0196257c4ab396104766d5c6c9ec1e5306650d5229c261530d27ae5acd76c3ceda4481ed3d9c9dd4d62b2d75871ebac9b9723e1cf98d2fc111c9cca97464b48d79fc9147d89d9492b8181181d453d662b8436921d3ac343d9853a30a64de37e67c4357c5a52044bbd697372ba8aa254d82a8fb1a973d435f96e4503e543dcd2a424e1530cf87db5b1fd52c8e73ab4bfceb0b5d40d8b45f434a31edfd79e547031d69be1454357839e80605fcdd61c360dc1ddbb4f4c7eeb4815153ce15dc83d5293633c3b32a9acec3e21e46d75df65992e2caad1a6fee385ede73d0ed1c18d3ddf38504b6709362b3b690d45cccf0958edc9a402d60b813ced263e284b9e2ed09383eaf1a4c66f0f2b7252c2a52f221a71ed41dcf3460a01eec414ca4327a2c1f913027100e4598f45a42037a29b950d04a73e4960a29ee020020eef4ca0fd49acec9cf1f26d8c18adcd01ec47b4b64b4da7993f29674f731624a000001bcff85c34cbaf243fdbcfba3c89b6b504708ded1fa4caa0a26721bfbda931b11ff945326d47060a9bc709ac458c525f534874fa196138e341ac35ec6442b6dda55fcc899800af8ae3d8cade8ada1778bc2bd7fda57661adf520d284c36a9feaf0f17ac8856773758a88c933916e969ff4f66661661f4a1c7f34ee8c8f0ded5ee07a9aa3d687acea6584d1ce9fa280106f49b8f22e643c222221579779eb6c4540eb4a057f1901234aa1ac3d13905e505aafd441fa84c4515368eac9bbd14ad9dc4432aeffdf045d2faf88f3522e38961bf85d701e83268c33a7e418c6c4ce387b6b4211854020ce233197e71933d2469dc3ec8ea1a2b3ce82031c7ab2baaada57829bde5a602a89ddefc1b0473d2d1eb08bae4694a0b913d67110679173f85bfedc12433a88962c75418d9d2f8887ebafc16aec30590fe3fe0267c01be819850858f580d0939c1a94372e320fdec19438c6b8385e2dfe5b916f943c584496201eb1cedb9f1ea91114ae6f9568ea59171a931d29a3b83fc76e2b38d49b6e9ed8384a627b5601225125fcca3d88205a684c416dd3ea8b7c8b8a2e1f5bcdbc298f612ddd974d87ded80100c2ccd6801dca383ba24861fc0a9ced02e6092319d8925750bb5300d2fde50e6eb86c4300000000000079a110000000000409e03b994fdbc547b18404580d50105a6a3d633d62834e7aca5314c6c3ec1f598d23bfc7b995bac9e8fce35b576dec1e4da24d6760a1fc5488e81ec323b390f3c010020bb6ed24e79ae116d5e944c3f78904073b1734ad54e6108a2651fd0c7448b842e0000052c5824648ae7a0c6bebd1d6874371a27627f78046906ed9fcd7c0936e0740aff1b85027957da52858c119dd88b49e3987d34bfe615eb2f5d7445544d290a999b6924233b22fc17204244924f213fef4ff7dae5154a6ab1a4b4b1420e89b846ce77963e2369fe9822a31dd721df55067a8e7de67a8fd7cfa61a8e30f6b975f2deb8ecbac2647a15b43d32e15e46acaf1a9a673d1de69a459fcae1b955f45039909c5832212ceadfcff3cac2c23c652e53133670ab9275a82a97b1eb1c06bbee03628056549348623ce377f7717d0244adb37c9e0f316e8d6b14128d566a8b6f4af924182424d794f46cbdea44540d3fe80ed50ab660e24584a7e740e865577eecd55b00321f3aaf8837cad5569799c381c7db02a9cbc4eab0767c0066234085a906ad9e1d08a05a24c9c5480a7438eb49d0c03ef046661897d564f6d780c151f70290255c3b0c83715183e4d2b3ca6f3759e097494e6647d572656b3ef1c36fa1af8c5572b605edde1de763d303c046cd162782f80cf53e05666f1e3b8dde002912c63dacb23bb08ee9387308e33c5260325f4a13973f6fbac71de73fa05e0b047ebeb20c6a86bbd865b92e7ffb7a1d5d10a694c7292cb1ebe759219a6653f5d821ec6cc129654f6dc9fde715184b69f8539f61867bb9e5808647c43047badf9fded53349c401098d568af50866df92c3bb86738fe72e1f87a3ef8ee4eb03f9eff88fc7346e0b350a64c39ae3bd4c73a9c09e03a44a7bfd4934f5074fc396c047df6901e015944e163c6e5973b6dd2abe697ff96354eb27f221bfdaa1ab82b8cef3b6272d5cd15ead69dd0bb6e004fdecc03f4fc1652bbdc73480d8d9f6a0e75af7f4c0f91d6d4ea49e95f8fd1a89a88f56ae531c837dd1160c539dacd2974b55168e204b315d349d49ed32609886f935b91e8e56fe0c7a6026d65e9c49c4254e09dfa3a942ed8ded92011cdcba75fb412603986288b166969be12512f0980ad182a80664bd44dd81a78520b565bd62a83a40796c5d3ebe687a8530da30c2fa20f6e7c960afb33740b67c6b15bd6c66c5fac01a843abe2ebcfc128c0432ac337c31da5f30f5c36fa157bf17d6110d0c6993083beb12cabd618bdccdc76ac5b12c7b918c972d6ff804a6c66a35dca21dbb82aea79976999391f35dbf4d37f8bb0878f2a08fda2e04d843b611f2db2ec5b09de7d7aefb24d4c95a97ee0e7c7527367981693572780466e6f0f739e567f01c0ed92544a13e9b9e7b0742ba360b436310c3453ac817e17d2a7e5a7390f914da380f72023026db9ee53ddd7a3ee30d42783a49bb4004859941668ebf37f2e7772c3ce19f0644d8020c5fed6b846aa1a4505f3791fa4f798e59940273c6f0949e8749798937b50312240b0115628d6738f7f0f279545d32f5c7279ac9cd394c38a012f2f3d1967b88219e7b6a3c2750debb4f51d16543ccb97786ca9610f2bd65beea153ef7d35a5c555fc948bf0145c0fc1574fa1177d512bb8a506d198098ca04b2e4a07d567318a4f9e872f77c2c3576d6930f3b24c879b3a20ca7b3160bbc1354c3e03e32c5a7da65f52fbe8c226c43f567328fc8b576497f4f7019d8897150638e4dd75c46665d3aebfb1f96ee5e3d69a2ec9c89a22737b56bc2cb613d5f81441a9a3d7e99259fb482c87badee4da6ed524bfde6a4b856b9e80314e8b7f6aa0316d7caf7cfa8db18562d8e2057df39d2706cac28ba36476c3e464fd3a80abe86b218f49cadc074280f56695d1590e59540d956596031f3269373afebdf3bc3c6a67f8e48b0f8c11fb7474b7a4484a57ffe868f0fd2b05b22e9ac6ae15e57d5617c91c312a68b871230255a707c70d4b2d4d66f248a40ae80fbb9d4020020c68d72db92549ca8a19bf22b4823a6bfb706508b7c713341e0793126f3d7bf35000001bcc26c5ea8795bc3217613fa8f0d971fdab0e82980e2d918fbecc13e4c747207412dd2ee5adc6e3a370d6287bead2f2e5683a5b8c3633725b45d3ab85ee18325850a06e083191a4c2771343cbf38b9e51df5e1995920a3229e4aad5ada146576afc61671922451e30a610e70fad8c392447e4ac2f48194d99af3837f7c884619e9d603df66b76a5890ed7a1e3476a57bf7f96b6572d285df625736fa04e5616747336e83e14efb8e487e9010add97257456683f7095762ed3e2411276ff9d65256fdcd4a607e7224cbad0aff037f63493b7f8e11b3a608bacc20551eb9ecbb6c563faa17bbb13e398b23531b366a3a1890e75ef895a63d3bf40c1eff14940eb1563bbeaf884181ac6f5b1bdc5b3a75267c27199ba583524b4c7ae143392dc26f41255d43e744c12cf80626e9b3346e10293ffa7e5b1b8a8f5620e0282fa223822d3e8ddfb5957f85a038afcf0ff4716650c8f0a06e6382862b36d05e62cec5019874f31a523d37582aae9b4428170fe93122be83423ff46fb3fbe1ed75b4701512f43e52875325838f67e1adbca85b6f20ae94b8afe67cff0afef350c82e11a5c6c39a1f355543bde8adbcfdfb49e6d60aa9417a8e17c4d99504870469a0f799425b823f0182363610d184dfa50000000000079a1200000000004033de1a8c95ce5853d01e540380198e9e75abd6600da1df298e510663a6f9834f87fb4993e4ad16a2d4b696645a88d162f18b683288b56f1395068f484f9c788b010020256eacb99d20ee6fb10312da37c19cc822ea4708cdd7cb096aeb5830cdeeb1090000052cc06a593eab90178a899cbffc01aef176d3491942bf3f30da834d2e944ecbf5cf3254b85904856d760daa1d3abe181207314169a81d83e148e9fbc1f66e5af5668254764bafd20ab99512dacfa9b81b8666238e04139038ab6f33be738ead4304c3aaf2e94a3cbf67608b56442084b5f8f3167b70422fe5379a1b2761f2249a818a3cd0e791c3b483d5f3815b0f7ad1869e0d2e14e3172cff6aeb3193846f2fe6170b45f7634507afcba895c00d9c3524576a3077442f76065efbb5b31b628f8730c27d44dc04224985517f180b2ba4f627ae5faa0e84874031ee59b17702796fe312aada77b42eb76732e5aa457656b28d96b622426fdaa7b2de239648ddd9b13d271060947d26bbb21c2b6d17e008d6a418ea34d279594a9484d3b620668b3426c2a6c38a275d7a2584cc1cb370d5cdea745ebc2ab1749bfda30192d9f17db982b299c6f835575443c28c642262ec7563aa3e143c5c7526c54515c1fb50816b1463678331d958ae980ff9589cb33e8c8c1e9e6ed61c1ad98ff7ffc2db98fb80ab164c018de89da548077d64b89dafe34bb7a82f523a5213cb06aed4f1ca1e948c9372e1029c4ba09ae24b8dbbe6a7469639d9f903fc8b3534097f65047b74c00286c4856d5a77008b83ee7c2ba42e54912ea91287de867eabb8e1bcf2bf43764e868066f03d4a745454f6b8f4ec41a4e02274dcc97fa2d8aeaeda7675b5f2b1cf099d7ff9e98b71bd215dd5b888fb3e7614540d7aa4cc6fcbc799ad9259a4762d12a3da5cbe04a0d2b27ca150cdca2c271e304ebf795bfb1992c8a58a6694f0f90e77676fd195af22d4836000907a19a4f732258acc29541c30c51eeb4a0252b67f46ab7cabf071042f64c2acc6b238f88c6c5e245e5ae4ff9284ab909cbe78696407b50c8f5b3d4b7f445a62388cca0403c3a1921cbec05b18c945a2ecfadc182bf48280a0add1ecc71b4725eeeaef54b712c8121ea12f1f9530002398def52c48e6f4fe88b3c411b21dcb2c52e0a0e4a7d3b0e2a5a9c10e7838447149d805f7e2c7a38b685b46c941d5aa796bc13c6ae6b317f3049dacecc2ca8f17e151683af53d484da1b2ea2a643021a8523131509ffd0c4712be76e56f929c885e2b7201995c43987c9e68d940eda34450efe350e5d8751d7dc3f703c932257e8ae0ed4bdff43f25d7897ab50847c7b3e75895746b746a9556d024c43f71632ff78f1374cd8d85271991aa5b8cc123dedd72c57961e5d9009430f807c072cd53d22bcd1fbc3f8fbb47b9703eeccb1c588fe74ba473350abb7efa99f42fdfae97b19bb38ee6b5fc6df0efdc053b0f43cfa04613efa3b0f1c7a2c7b16b77697d85fbc26c8dd331886fffc6a857682026651b7ef57082f57ea649513522fc0a5c802a98ee223c1372f8910cf3e74bc7ba79efd731801cdb1733882014c03223cc81de9377be68c9075d64618c09f2b536b0b129717599155aeda07c639775ca819e703396b81a228514d820547b4ac7235c38c4e01f508257fb05b70ff961e35ea3107cd4af0fbb5b5f7d0013697cd2f879011cd456ddf86b545600ee328458916971fb23d4aac78d8c685a40ec30a44b4a81dacada3b8fbf80781fecad66b5ac403aadc12a39ea5aa0c1cdc78b52dd5477c9ee0bca3b4772c4395cabed2cab5d2f89ff537d0d5836e48405f6e1837af7b27790b4a86b79352ed7951b6de7a1a1909ce7493fd5fa786968e95f61a995b8c0b7ebc6fea86c370f79325fe66d9210847c476b2213c9aca025bef94c8c2d5eacabba8c70888cabbdcf2ad6216033ca3170d8d1c50b98ea5b17b1361c5427230dc004a8403c3ac47b46a934ac0da13655f8999ce3e16455811cf1bc860009440200205360a361ecc721db6815f993d811d6b47175e103f2693d3c1187bd067b462460000001bc3af53e657b8dd0cb509703d99d1a57288f8eaa48d8dc69bba961b49916017a8fe12cda91d44c87bef923741993c68bcfa8ee4272ae5dd73b6c8acd80b33da26519ded7cf33381b98d45dd0a763ba640f5d23887f7723296d93e44219bcb60e4dcb938864d30b0eefdb9f06585ed331e809a549012c5bfb161c00e48b286d08b4f80082646e1ce551359814ea8aed48988a827f736a13342e4abac65db761974f884f35648dd71c3cf848bda63a24f3e00377099e8ece21971bd87b2a149ae01ec75333c7ace912f11dc268e4fc32f5b323d500ecc7e218629f0f1506a878190c86770150e7dd3a9ca7d21c6d7ab172b025775ff68375165d2a8dbc3b33c1748da3d2674577274faec6824ee83e8d9ed5b1fc68bf470dae7678ecf82fa7808ff7bca6f67ad02939af4bea27e3a8eca1dcfba86db1e9a04dfbd4e9f84183e4202792592a43d23297a359dfd352d47b8e1a2f3ad44ea85a854d919002ff27cd28492cc10ecb9d0921c51e83eee99f1a88a458f6d2c0178f86fc2605daac50218ff3fc5057d7f1a1589a96a56766d93840f36a4c1a2cd77b626993c1309f17733b418d43cee04a3e7b6685b228ecc5ec4f6b676b9b2073503e40ba288e1fa9344064cb5aa16a380e784b3e99a3e30000000000079a11000000000040a980b14b45f7f63637f1d77561643eda57a352e770d642bc34b89c4b522dfb4bf4154b0ac308af929e1a4c1b9319e90f3525108fcaa29fc9f0622fe65dfdd9e6010020921396183d1e2e636f42836f3571fd31e7a57812ed3418d047bebc926316730b0000052c5b85ba2b73219d0dfe13f385f9c11e3cdde7f1b0bcf6cfdf62bafb0a8187d88133bf8e12572f96f42bcaf9bfe3c8175f09c147a5c3a6d403c9c7221f1a5b339ed70da25f7f44f53592298061a34bdee819974225390e09dd36ec49a2a6a377d81d2a8b989a7ae3dd628e2d2a1d19ca37afda0316fd500bb7653d05982080888fd3a480a8ec6b316bbf6dab8530c7e6d57badd437187e30a1181b67eb5d39fc1222a1bf0bb34fa5b3be6f8a5642a54915f385f48bbe296fde7c55bbbbac504c48c539a4a4c3efb5b0aa2182a6650528ac04c56a707b0187c71df90343021b4ed986aaf610be7ebd85243c4edec79652f74d3d264d1bf3c915dcaca6aee3e31918cc9b66e6b3895fbce2ea4fdaa7e8cf5e31fff6b5c809acbc906fc8eb4c1068124d9d97dc93975c03ea75df52919101251e07d879d498c0ef0326ba66a037f524fb6240320e43861694ab1eedb84370992b4d6c6773c36ecda0cdf2b904fc1ab971fb0083f23e0cb4a802b692ca0ca8faf1d9daf655c55189ae3d5b63eb3d6fd85ca76b2db3d4c22f7473e79cd0591f9f1672adca9930202550ec5b1211a6e8380da6ec2e5cd07cd0aeb46e073d5ff9dfa48b212beb2e6528609c90de5256a64357f5e21adb8150d205ea2e2451fcf26791b051e456f495bfb9db58f0a584020086b7efcc94dfb9baced64d95c353e39c7d2c7ca416eefa993e2c2179067ac237e0971db32f9a255432b69f1d40e4258745d3ac140a3cdad6b5e36d781dccebf732cb26f40195c7ddf7052c2494ff634d14a7b29ff6bed0b3555ccbcc2cb835fed75f65153a3a38bc6312123dfbf80eb2ba6172966f13d27d4b92ad00390a2dceaa4a2f072449835cd0f448f29d712efeee90a5c00d2d31391976f30c37a33ad95af066526f1b9696d2a54076141005b1a88131283faa8d7b7c115a42698c1f7b19d191dd7f5c293bbe8dad72bb6af5b3a3f2cbb8eb3c11faea03d54e8a2c236897f7c5356aa9089d2248bb78ac4a0a1d17f46a39fb572ce63d5982359397667705426a621567fbcbd83a4c8eeb24f2c8cd179f0d43c265d0967f6431c22438f1bdfc2254f5dcb13f6e4090acd65b38bfdb4f1149365eda41e49f93b0dbc7da6a865d1d805e43475c504409f90cab55423f1b148865aa0fca6f0210800a824bebcb8b4e91edf968a2276d3b1cc8e039290f4b1f3a7df9659dea7888b299e5587710f7c223b555acc0741be07775de13545479637d6d1685b805fc95b0dfca09eea189aeb7c01398b361b969128952f2bcf87b91f5d10bfaf2c70fd6e91533130a57519438c44d8ebb2071d97516d9f23aee232e51afb24c321aaf5865aa56f98f1b7629f6cff6cef3757b50aac3108ba7f5a536c5036747e6a776a702b888c62166839e5e2d4eb509291e17af5226ce341333396ce0b817ac1d3c3e9d1dfa56d5c4eceaa2da92ec3acc5824e9db69b8e9fc8a87d14dd165d4e2d361d1e9da2a5baa66f78c2fc833e2a9c3bc833b63e32d709438f625849576de0b4aa01541791753e8c9970b67898724ea24c8960ed55c709d62dc77144d93e3153451b01c3548835db7568883ce7f3756602d76744bb32bc87d181494872fe634f0ab1d3ce44c4b9f6c72c0090b058bd0b68644ee0cff490e605e083bf27659868871f0f9634c2925bbe9cbd032683f64ffa7f258fbbdc51130eb5dc3b0f7acf241d3064c16e011572b7b06a80c9ef4b3ecc49f958b77785716c2917841c8c601f20661f473ba3dc49943dd66716955685a73ec8009e46a1b96839271bd3532729af6750a4b4053fb91981d6383794bb7fe7634f3c8c790e129086aad881f6922ea47d3a045c61800e21613326929656533870200200751278680f71c6339d408d2a7252fe96f0af4ffc65fbe4bdd78506260927c16000001bcd8f9ab7a3cb7d2551b4ca1d7611a61db429820b67253042c8a410e6637a224025edccf1ea7b8f223655c15cd30370e3080fc88c36733360a7a06d7ca9687920d92883144b12bb23e7c1bf8b27aa2257ab8a200780c15552e4caa9b18cc46230e0c23657fe231d32c295636ab4f086b6671e3f554160989052e5c2c430314ef1202ffeb02b5f08a1bc6771851c8a67195796067544a9ca1c8c3d751ae9145df6dd250aab641849ffd72fe95de56b3181df31e1a5450a89b15cb24da37e6aa9a224bae3bf3f3a4e23c1ec285870ae6258b57f460f98932bc8faa9c34f2bba1e72c3274f517c4552200ee7aac65b968a14f27596b15d16ad2fe4a7172c4a4ffde7dac0d966d6a8519ae29bef71820694395775e39e2ce28efc2fdff49ad833182765af199ae22cb85ec8e2a86853cf7536ad612f5ae65f1fe4acb8f869337374e2d14196f6cefa635518b1c01bd104140eadb2ba81441f39a3b016cde3606d67d4d65fcbb7b9c5ff2274242d3fb3323d0875dd24e1a575dee51b3158f975efd13cebca1847d048286d0145dbc85af99d715355e9ff4d7c8d5b852862bc0190b4a0cb37d5400eef3e350c4f79a4a6fbb6c2dd84ffbea007544b66d830460ac1ae1a720716eca8212f0286087ca6f0000000000079a110000000000405e673ac588f73ccc693212bca42f9e1f7714113ba2a8201baade4fb1f9ef18cb12596cf76c153a53e48a934246d24c48a50e363d5d45755edc270b95a4d0b732010020556ccb1923dae810a497233f2dd597d8004520e55ff058aaf74c210e141310120000052c1312876ae369df042e7fe2aea8fd311b8f4d6c9a31bced4b029cbedeb0ff38b2f38a0ccbaa1e09f80fbe071cea6632cd2f7d5b7276399265230ce2396108e919c6d3a3657ee531f2446e60d19ccc0450e5274af01de1473c4430262671b02f6eb2a31ac2c0b480da93f5b440d367dd5d82396013c68fb4f1388f35d15892f19fd7d9ff9ff05e298c01d025056dff5d3551017b183a3002c625e93475795507216408e0dfabd9fbb2e6c19eb8dbe48aae4d3fa9ed174c33d32f546fd3bae3caae5aee8625ec916b3e0df3a0e9344c42f6f75c0b43477d5bd869a6c02874b810febc9061dd9b4c1bd3b4771fcd753ce3fbde64d1d529205a5040935bf4327d644e40db300e7265213183cb2b311ca9735666af92ee905f4eabee3a1f249c86de0c977b8ad3eebc22d75fff577441444cb55326f07ee7f926b28cc08f55b5fd3c71e8811dcfc15011902e9fd57a50ada3a58524d823a50d6bb87e6549530a06d96e8c516bc8c15ae5a18f1ba010243bc5dec4a4fd1d7691ad3bb68186b2d3cf9dd3c068f002fef654ba389c44795429df4454d3707a66663dbd3170248f4c2a61c890a730dfb42bf8617f2469ac5c30f97c0adc16b2c016180035326bebfe6bcdf05e3593f25a1bc4c79da12e098e6b7f8f4979a9ab96b5627b21fd69e33cfe8b275c97f550f7df56d7882e77a941e0bef13bb2b87f2ff49098e2213a5940941ca646a8056953985e253ea63dfdd604e35ff7e586508681c65fa15b182263a2285ffd31534daeb6e91db15bc951a5fed7fac5a3362b5d4ff59b9cad54cfc352cb0d484058ce8cd827f8e6cd7a2f928641383d47d754b52bfd662e50039df1ed5575104c4c75e1f67af36d5ccd5db1c9ae8d4809f09f36dfaf72330f84bfbde590701525615685eaa9da5aac49f2d8141a7e7cf605b18e9183cc1ae15d93148b67685501d86820b8682dda3a8b7e8eca978d4bb8ab9ce5dc5d3d261182c6173220e1060bc62f32a8e7c3a749d02763dfb4d2bb1643ccd68671c7cd9889a2d323f9db70770cf62a6a33de4b0203a2026d2fa52da5528f59332304d994d39ee098b0342e9b0e96ba9107684c946e03d2f42d2c22d3a9e1645b95695e071c8dfe57038ccabb09b524372c45dfa833ec170255330d5acb9db5183740ad7a0b5e83841ab66447ea81050ab7290df37d6bdfe317cb96261c5620038e3a6a6f3a75a98c8b3b3ae1a97c696241fe021854493abdfa1382d02460af34f5c1d1d4347f4c867619473d54251fd46a73eb3eb4d3fd9b5028ccd7d2397b8aeccbce89eb39577c5e04482b189af6139c8c9f09c91d3a446cc83ba8b9f909836441a01e9c5a9414446128303d27926141b99fbd1470d5251dcb063b1a23ad71170f2cfeb053f66e0e906f2eb25f313b9d3d78608dd79e31b399fe964294de0df1a7b257dc41dab72453789e075c89cc2deb3a4efe0d25803284c3c3d84e58ed86faa48e0e10213bc50c634e2b055b6ce9d35ddd8bef5021835e58e021ca60c07ca0495b31e570ccec3b9a733ba250003169e837bfc5ad5f2b05cfa7fa61ef3fcad76d32c3292471c9d0310cd277a489420823f3f11bcd229f1b8a75fc0f7719e2ad885528c87c34aa4a54bc4871b23a9f70b2838e0f03a3666d487e5633f409b1f097d5b762ed0c1d6d3a314b92ccfb49ebbae3e2696578ac72d7445be3540aeb3f34c83e2a9f6778a4f32ea781517c62f5c6218b15b9139490feeab86fe37bbbce4f9cde8ba813ab8707d68a0dba380397a4b2d5090cc9936cc014388c8586ed1066c5e9ea932ca78b1cee7c7064e69bc02a8cd8d981e044ee1b42b3ab1a49d03a150f9365aa2873f902c60dc2f5cd85131b6916f2020020bfbcce09ae0c3dec2e8755984f03ae5872ff2eb0398822dd87023712523b1856000001bc3ad6cf2a1477f4c1846d64d0cf8117e5ea5c79b7f9207fc39f6c4917f97b9c3bf71a6849ebad494c4076602bfeb3f9776a53f544e8cd7c0397c6fd712a20025662dae1441887a081f771e86c0514eaf0a65368f78e52db8f212274451e52bbcab97e6cab4a668d4f1a5f62f077ef068f6804078e2f5b072bda5936631dd4f935a72157495c4db052327264768bb5eeaa05d70d37e61c826b76dc45da5df0dc7dd30be7c523f597b7686a7e09282e162510a890447c16cf0a8ecb07067c113f3634da9dc326a3814b81a5547fbebf5d46f4378cdb93f53ad8eb368b4b77ac81ed7bfd9d25b8f0e4bbd38e834b22711b32de97b2ad18fb0cabf7ea750f49ef40dd1c6d104fa929b19626995463692a8589e3400cfe20577f488e329a5ce3644ef797479c281bfb35e590932cd108ce15290f43a3cdda96c972a3e13ca3a0a30dc87dbf78182b6f00ec77bea006f4457373ab6a67959f37174334c4d7cb649798295e78bea5a38c83620bd9c8b3c5d5f2867095840e290f36afd257f9c92910910fe22a4c90200cb8ddf648af16b624d1c33f73a3b54aaf3470001305913eac6b6ba257c6d96123699faab34391af3b30345c1030a3de0f207bfa768f5bae69e512a4476acd5ad2cc7d22fd6a1d0000000000079a12000000000040c633a355bd5541055e51a164fb99b67809f01f768dab502bd26003a9fd1d304f33e53fe4064fde379a3b8286f6635f9266f8da7cf698c79ddd4269de166f6388010020a090034501af2e56e5c7dfa35a3e9d665769b005c02db69e1c8c1f24e3d6cd0f0000052c370d8c18509923962708cbd5a45579a7ebf6d3c626375a67364bd0af8361d946b34f9fbeffabf098cab7572f3b1655a8acd90b096c3dca3565003e02925d42f8218745af82de5aec3906d60b8983993bd4178c02e31cd40bac788bea4d96b91b492d8202e4398a7c2f57488cf0671912b0e52cb20d6d3b33aeb89d40c71728b6637a5971503a5b87ea4e29df821ea77d1db501d05db210c2a753c83e7b443131e8b048f0e320486f6c5e22ee64b7b68b8d7e8bc97d3bbe8b158ddd142bb7fddd46cbe082450cf0b8443f9e3c2251f6407ea607f1c0868cde7767cbe348f0c2434451580f82aec21f595590b8228909dc17bcb19ccf59a5b0570338d19926ff91b734f9177b69ef3ce2dc6ae35d93f64293ed2b58772fe0225a3a1397335f20838af1e32c4945494549929ff5a63210d8f3d5c103da8f8bdb0c7039c8b4dcaf519af71f5a24ec77a6d359457ba2f63ee7e3596cce5750dcb0eb3ac2e237b6f5abd984adafdc13b079ff268995fb6300e457bf462d533044107a6a4482dd11e6713daa0f928d51d06118ebc5275bc05c910da3bcefbad28a8f69472974c606dded9b83a540cc39b5f6765cd62cd5d2b6f1d0fcaa72c024e9700d331a86d2a413c64f8423860626d46eb750eca252c7291ab60ead44c10656be81614af6ba6d2c19c0ca90d420556fcedaf82122576ac11928fd4e73534cffc2a2767f398e38a59e9b6c703fb906a1df769b7dc787d27735c1ac98b6ffd4f5416297ff95eecde0f916cef29a4e3c528df02bb76da5c4c4e45321bc3649e01f75b9454c7aef54a17932af552bc4e88ef32276a2b7405ef529de339d47519db163e4d23627cf622a0d2f70d4b394c68931259dea5d055947f52e74b7d85276e123beb24d0ae7948b6a4016f23f3942ae2a3f20bf34271603d6ef3046f1fac9c803f3070e147038701adaac6e961d730bd0683d70d7b5c52d847a25928c3007e9784ae01cb66f210ca37e145c4eda3b7b2cd7a19cb3fbc409883d1bf3223f41dd8d60ac86cd39ec96e2b673e47c4075ab8552ddd84d2a627ea5d62f3f42d58956ff44cf232af5bdd670d57a06dd935962e9ccaadaa951b7fd8432521826d6ba746038cb0c2f466e1a04376a6243e18b47497fc417a734e993207a66a00df9571bf32632fd94e354e9a15a10945b1340e0a62c9850daa8c8f7ba7acb7547fb44ee9e69793cdb7c736a2f9d2a9a670470792001541aa6ba8c8c85f7a8ac76661561ef1b4c1f3d4929703907f589debcad98225f6db32e19dc05dace998d3ec2d84b786e2faf7046dfcf148d4037ef36ef3db53c5054b91c9b1c8f638454264d0bb8e373061fee68f1e6ecd61edc6ba140b2f21f98b9465f37093fd6f14aa2a3f0fdc0a253b287dac5fb3c9a0382300529fe12f6bd1fbf9c9f8faff85596efe0c60344ab777ec1007c6938ea049de099a350f2a63db8f23ff5838f7ee4b45a2a018d40e2adfcb960d10cc41bc74f7f8608086256dd401f4a8204d385fe848c3fc02d81ab208536db66ffbb0bc1437d1e379a691a03136c9f384bb45025f846598c3b120490016736194a4e914cc0da7f42a1f8f4cad4e61a0b2d1f3b7101de5beccba65a82c7a4b2e720b3f5486b90a5dfb4a74fb691580275d6a3cf7dead74e90208cf8852913729f015f917f79a4c86c2a78f3e1b033f7320ee2e1bb10be33e550018344c573dd5c9b010f7f53aa0fffc89a62c8db013eb728d212e79bc94ffe3195aca41ca7e15b89136636abfd3cfa1db5cba36b4542e0c59ad3a09717b7926d0f0aef1125b0e00bc56f58ea01066399c61c5bc1ee605b6083917e27819f852a42f5188334c7e151d84fa7f3f980bc1b5fb605d41e020020b66f6a0dd01344856951d169006590f0cc7540fc96b49afad63a6da18674d010000001bc289f16a88f4311bf520a93be5fb3555aaf6cd63b2d751fd696a688dad0c609a2ca5cea4493d9be8f042a1f231d7f61d6b8767ca2f570b39b3cc23a51aa1b9539a836459c94f7fc8bdf9feb2d2b168752426e7935e6c66ef35ffb1d7ae317beb002817127ced212c3ab23d33d7113b0aa06451fabff7012b13c02a45b49cbf6bbbc8366565bbffd00c326ceaaa2a2c421dab7a6b64430cb013d6d909ed31ede3ae014310a8803413682e2ea4f66e829ebeda5e7b961950e9a4f9d898baf94c210127bbe2f8458365e75eee88a34046ee75cdb60a1ea1bcab3fbccc74c41bc360ebaeb7fb150a7e7caf4b19ca7953d633cea66f8be4dd5637020687ac3a2675b9b522865836a522bb7abe14903536f6a8a54d220f445db1ee615bc55bf8b3aa72e903977f5a7f1dea8f6eb5dba6314e8fa3ef8c918f855eda63f7798a3c8180a6e12543364c1493158f717fc68a90ba321d36227cba4d8d6b3d08d39dca86c7c9a7463479f6223928b212e0d9b45ecf3249c8806bd03f0c86cf287b199a0d7f3771169ef7b271f543f123ae568afc9ef1eefa8e3cb2e62a9a70d2ef07702ac0c9ad4af5a88ddd94eb943926954a8dd75f29dd47d6b5c327eebf7e8bcfcaf1144365165c6528693e1cef65cd6980000000000079a12000000000040600688d234727feee93956cd2e7e8555e3da4cf0d67c9e3410bc9712416b3463f86cbdead18fe9addeff07af8227cd4796e5a1ca635d8d36e0a579ec06cf3c8f01002025451d88c7f19c5cfb91029473f1ec231af0269b5bb3f39f1e8e94e1f0a8d43e0000052c589e4b4aa20c91b4e859240195ff34c03fa5ea75c9664854d171ad12266bee73ce02bbc95db6f5ddd43dd997a463c4e5f087a5cfc28b5d8fd9fea358b07da493775d1569e7e44c78925fd1aa4361edc2afc4c27f18fc64f3548a891a3d453979881a4d80da6065e49cb72cc4a16cb856287ccf7dc2da8eba46968af85bc3a26296f8208273a7d3c6aeacee38178cb6bd04577374486c20c073da64ed618725cbff037451b3e68faf0824ebeecd2c8c971a56d1b14680f7c0b6bf4ada4aec2409b3bffa67d8dc304139e953a36b46b435d4a6fdcce839475d6b92edce1239317d32273926adcea0776be8edf3041fcac13834cddf836762f3cd5c1e2e4c0ee1f73af289fef0c5c78f22ce0a9e8a84292f94ea715484a2f938bbbb9a3a5b2e78f4ac98ed294c5610b7a2bfa41cac100af693944ee75095d7277de385e3e1e23a41a96415afa9da2ccdfee298e1af4c98d286ca40b2e381e5ce2fa3e75499c7e7ec2bf48a2956571a49783742248cfc11354fa40f89e0f0f732c0d542633ead1241b168142754128c7ba103e31e54216dcf1c4b44f5f8e0deaa30fce21ced53a6413a76ec4e3d653851dcd19bc9f97ea66d82b813307a6535ef4aadda19880fde81ade6b8fbe6553ff8409b216033979486d76efd36b7b7cb07e39c8e86ed0678d6a34ee840dff62f1aa2514acd45da3696e17de6db400b059cfcc560adc7b67ada6a27882662e89b10694995f53c67acf64611d94249cd5569aa23cc74ec16a840f25def57565a7fb0a39785621e7d7bb5c09192c2e7a51ce4896ef3361fd511bc5d14422e824c7e173649c20152a8369106b61f60db3b683c85fe9df714b79ba657d3cc588ebfe96ca013205d2f8bc23b8e0364b9438af9d2c8b1b41365ff13c7bd1082861fad8cd1c4321449a02c251dfe215f215ebdc63efb86d2d57e1fe3c7f2d41fc5f34f81e2b90f7e9249736ceb8ac4112e4f5166c7c723d84c36aaf21b34cdde716e7595643bc1a606b36db12057b628a75a0a78b25d5dbcca11d24445faa5be56f1da401a17b7756db9621ec578dcad3e04a3e28b1ec6f477a1c04a3f35aaad56940dd5bc0dd182910b6340e3057ec610b0bf7ee1be3ff8e27368ff1152e9d15e17863fe58dacdceaf9341b798607f659b46282806be49443c30f90ea3d554d941c64e57c8c665d13ba320b388b8a239c9efc984aec624f5fa4ade9982f20063e37557ff45694ac7776846f7a33bd6e5aa2f1ac0a29f0498db5a8b8b89ab5f3a39a94819deb3597894aef4f006b5809526137584dacec13853c1f27921fe47691a51d47531e9bd5a4f40d6a571a776067a1e08f080705ea73700ecb0d9d838901281ac7ceccb8d8746427bc2a31d716162a885ab641b7c986d8ff68a6db6a9b0551667dcd53b8822d73d6ddd6412e4cb8fda17ac4e20c4e5d68b96da85fa7707ecab9b3d493e32b2568a180d5131caeeeeaecd2e5f6c5c9a8be0fee692a0d3600d9e6a74f6cf65e44b74d197b1a8dd1ccdd30f86337a60d7c20ca360a9da2a25579f5c7ff502378212051395a7870bcd94e1e2c42fe7d3ed79dce461143ea49d5718b95689c1f39282f2af52b6c2b4a34f87c5ccf2bca4c3408ed7b143b7e30ccedf3441087e391e669439834648c283302507556310445b63170011003460adae71d19ee684d9d91548c0c19bd53c8e510b1a70fe1c53512e11783619b2d2d20c6a39a3bbd451d02e9a0d52f1a3905c96d8a42a39b3039703e4acbee7109eb60bd36dfa3a5ebbacfad4099682df5aa20a34ac5f630e423987a13fe17009bc8310b78d2447e9e779e24554391b86ef27a3fe546bdf33ccaba8b707544a2ab851bcad55dd6300ed2fe020020019c96d0e865f3d065391613a17a3507f7bd12e3f664ccafbc817e169e0ba17c000001bc6c12745c81cbb2121c8412bec3f72b5e349fd3139d19ca4d7075157c09d28d832a472ba546b3e03fa52d0cba5608678d24da159601e6679123104aaf5df890948154605a9bd62373038766585625bd86be37e43aaae7d82b5908167a57e128375fdc214825d2c96734141ca5bb184240ceb7450c449e1bba09f19604a0654c0640e77091ed2cb6fbe885a69ba7434a0f95155d57019d6c35eab936bc11b1803be8847e919cc13d4424eab042e92cc95ddfc70875ebc59c8468451af6d7f207c4956319ceea26e4926576332995748891fdae4b6d8e1a6d7e1caee7c6c5a9204453b1e3fd0f34d20a25df58fa7c1748ad856c9771d8e16f32e5b03bdf3498fcf914a9671f7f8a14c454e10d3e808814dd3eaf21440b6310a8f8de116f485c871279f0ed3fd060d13e4805190c004c4d54f855586b4018126ce5c6ea0d4dfeb5354495b270e9e0625ae1fd15838fda960a6fd691eb16684e70c02362c9ca898e4e5f70bed58dbe580146dd4bfc84066dd492fe68f9eb71bc8ae4ed6782fef7efa15f7b9151b0cd41e6695ff11400fb44d38bc4a707e2b3f49375bedfb17c14b8165cc163ba572c8c5a837d4bf02be3bfcdf28bb16a780a8ac9ec596b9ab40d934aa97390015d10cede33459c0d0000000000079a11000000000040018e308a6c83dc0d54f31336582f398d201df948940af5b54272b5d786109728bf34bde4a362c3beccebf30f83224a3eb9bbd5f0256e01beff2ee80f2f07624a010020c92300e6d24b7c465b3e5647e2b2b35f67da0d1c2f0212d4098dd452d220bd110000052c519c135e95d28c12cdb470d2444da42c4210f1498f4600693b4c3f0c23c9d77ecbd3a1c42d175addf7a1f6a4869eb9bcfddff4a491999b119ce27f700a4da739909c91eb55d1d5daef7615427fbd207d2bcb0211a734783ef5628d98398fda22a7e4149be3b1488467ca1ea2502feb9ecb9e65cd905e9439a84a5b7f6af792306f71a2756b25a418f33fe043b8663a83d528cb2859dbbe28eb210d0cb047f2f7c6f77bea204a090be3dcb6dd299d45170a47a4894bd7bd97b033c14306c8d057de2568f99e737eff1cd57f1613cac613112309d5e36a1dc38baa143a6a244c1c2f0e4978d76e64179100c099d8d62f3f7f836382a7495dde99141b9aa2dd7a64cc3d45108aeb68e06a07ecc1272db8f65456bbd15b4181036fb6e1fc8d22ffbc5379b92ef778fa03b3b1960cab9bc70b221b32a4b75694091869d529cd974484c790042b6c514bc3a888204c7ef897b35b305f6943acb4d700edeb4a218d18b79e3f7f94005ca6057eda3f9e177b0b9390ad643a926ecd5e174143eb133c0e2f00c345c814fdbfe4d8522dfa560c601e76cc5aad5fe54ece975673331f0d778416fe6ab27960ad4b2420bdae244bddc0e51ac691c6b411971368b9d0f799cd1e8eb499af76cef6f47852854953e420ccc1198aaf8bc3ecff828712caf1280f8ee50ccaef198b1b8c03a45eab84155d737e6361acd9203ac76e7c8acd8651c9f27dc6807db93771649d10ea710b128c54ec6a0410465b632326d427408a02f24a7185d7dc788f8f1e5daf2f40ca3b51d4238f11c0ccf99df2967ad5b02daa6a3e936f3415ca8d8e30d9efd29f1c7e846223728826cf4672410945140c6fd1194094ca9969ee002ec4d0420ee55b289b820d83c88133d21b586193a5562b39bb134f4a9a5f45eeec152cbbdd21e18bd9d6672b43e8aabe20000fbec2ecf63572136283bfc0c6cfc15e67b2c9874f611b544bad69a3bc8ea7ca2c94d6a02c2f776e70aa9e34e33fff090afd3c97d8ac2b6d25691c24e0a89d9f931c83bb1b1074a5475a68c3e1eb9c1b404cbfe4734267c38d25188f7b1569bc569c6b1bea5e42a43be24f39842919bc45436239b06bc836d85a605ce7eaaf0678e90a76b9436cbde1381764140c2c6ccce5e7144d1096b77de7a74551abc6e226db4b78bf50bbd7480fc6c6922e5f892835e5ebd8a2867b596a9c98e211e93ea5c6ca85b9e06660691b183e14baff3e6914d9fc18f035924af3a12f598e77fe459e769f568033f86965c6d8f90e9fe5058482ec5496bf1074f79a4611f180ea6c16c71efa734c29befa9f2c885eae1fe164dfa52f2d9fcd38222f98689fce361642d542135d6aa348bd8679bdc8f869bb2fb9b9310cd6f0cda049297887377577d95ae530c8868c99a96528c23b211cf37d6650beaa98adc1f129d31d832ba3fbd5b94ef778292cbbe305e0e9ae7faddfac6d3a3c73c2ade6ea0dd9338c20f4b2c8bf96c9da8f97a8399d67e1e5cb7171d346aff218375677b8b5443aad79f3b0f914737135f37b7612313d04ca653c32c1640ebd54d8b1324ce90634d0b98f633f26b0e8d6d8f5e50201c5aaa17a27e21361ebfc520cb1cfd03a72849ca98ba2aa8bb8edbef10c9107648d9ca841e217bdf78fc1ed57c917a4459dbac22f8960e22cfb4be8260b279f0b6c82b2a86d7227f6775747e7735a37b4df70dbc1a4af6825db8c6ad4dd881531a5011a300907e382d867365ead24ac6f053a42b9089bed67e2a17c60ba5935cfc4a4878b0b834f42193a4c6259e968e556b65185a9588082d3828294e7f5270d30701c413076f8fa0bb0d1bba93860cfb99c66ca01f65ac73aa2b2d780980dc2be5929170628db341f02002071139a6b6a3a5f24b7f2e979b159759bc96f8fc9e406775b07a64e80738ed446000001bc9711ec6b979e6abce4922a958e771a4496ff4374b6336c05e19b75ec274bf7a0fca14a73332f2c35a1c33487c34fed70f901624f17981a86ee848a7a9a8bbe66059f70f13226449f6d0f576d46e817a4b891de00b23d07aea77f0a62b0b38687929b619d13d163f180e42fdbae00f2d7e1c60682cbe37200511922bd751ebc5625bbc7cb843b569b268856900bbe8b1e7cfe66d1ab2463ef26ff1cdf7062ed378b5094424d94510e28f6d7fd29009bd4875bf3be97fd9378a09d14907b9d1841a400836cc2c1e52d3d3598a50fbcbca61b1d5b7ad500202a553db300a14fd3cf20e07194a22d329c3654274c13221610d89240a8dcda37dae485c34a50fb1bf4ca7c5ba7210ba28ec457770cb533231c8d21f193df051071c6e957c1e51aebdbdb732c29a436ae830e486b558e47caa61a27430459ab8e27e5d3dddf481d7a66c53171733750f36049daf2b899ebeb902304530afa679b8fc1029abad102acefa6afec7860d5bd9ec3e401d0cbe7505238d7fa84367709e8442bdf9623e0a4045f20e0e6dceebc208580ef94328fee692e4d8e97db4916f0cdb983e206d9dd466579d17d1c5fe3715c1b676f2247f613871501091776e3c552aa3a82b4dacf5d81f57d9c8e34bdbcd78f946e0000000000079a110000000000403dfadc783156aaf238415de59c390d1aa16e372fef61a0eafffefe718d19fadd38f16f0d98337f8342d18975912c67382eb36d1df606ec1288a92a0f05e08f2b010020d8b7e0f97899fe88153a424dd6127ff431bb160f4e2ca94caad4fe1fd94e05140000052c6116afe1365d540b40550288f50a12c3198e50e4af76c1e5e0210f9e4b9b0c3f87172f8a7007b41c5a59112f0e2eeb9b934b0df29659f08eca4f524016c5bfe45196c66c182f644d9a54c63d92438315f2e5523d3fbe62ab1341b6ff5a93937061a379c51fc16e3293c558ee952ebb81d7f42c5e1b1d22737386d601509fb873cf177ecee46e34a390b45a689e6d51c85c4e3212ccfb0e9aadb0d2b67200a238e0ed29448b2ec3376e53185bdde201ea06ab6228fb32be899157a499c717e5df12f34a536e97d68fd31229dd09313c971f75ddaa7716220e60a47c9d22db45db13efae0666eb11b6ff9c260e3c12c302c48f0fb4c94eed6494fbba8c55a90e53833d55b72141d9c5e681aa33e4103298d9822204fe725f4e71a4328c6208f628e0c3a8accde9f38242f421a4728e24b80c9d9a66c9e09934813dece418bab7cca50dce3b9d1a0b021456041d662c6fafdcb5153e874f0a0e92349c810c0f54b2b2e0c053761f34521e6941e17c32cb0b2afafbd1804099f248b4f68523647ba693f232431075f72681e1914732aa30948df7ca563c6ce2a374206a8d31ee06c22b470e2d42d8ac894e8f5f2dd6104b6f6f01a05a79884f969530b973bfa6dc88b0281f3e2a9361145779472d3e7d1646982044de44970d3cd5d2c5f740d8886ec74dd54eb435ec550be89e279bf49239bfb6899e8294381546cccb045deaee87fbd8b54091af15021485cb48dcfc1c88d9aa49e917d38caeef418045d3867e72da401e5990cf3aa32e7a71366bfb9c0a5e55cd98eff1b875039c3fc91e732bf8e55dfe7ff76a61e69eda7906684c9d3c30a6bfc0360d2dcd94664ca1ec5abf8c8771ddadc29d9ca0effb98675c9cdcb88327a7b225821cdf38035d8f9560ced456fac110ec77362c58735efde779a9c56e96593e042761ace95ed721079b7be43d47f2db8b623d6915203c0eb03044a79f2bb1933de3436514e7fa2aabd1d72b49fe66f331d1321d5a8fac67ee40a3145f6c2d9a517446ac7805311b3101ee98e061a289455c48a90ce772e60a6eddf5cfeb4293f334ebdea3ec4e6f243904b25879156344bf66f8acad5fcfc26f918c16d3ced7291b3a5bd5c37fb7f22719e7052d1687df66262774b25b6dc83b063f699b473f72f58de3b8f889eae90c3e2e7330a29d16efec342529679134d5e17bca7effb58dc6aec91b859b79ead4e368c84e58709fc9fb46a299e2457ca2776513a3cebec6d6b39fbc12e82fd688f5b49f88bdc70f225345c17c22714243542e180cdc032ef75e03b9f0b94c30eba7855da395806f8abd71c7c834e3d9606880b3f4b3adcc036860a7832932596aef636bf43b89b16d4119fb108cb25b7fe12f25fa8f1943bc019294d96961de7ea5dde2605ac78ef13176920b303dc39347231287d3d8e2c02edfed4282b69e46e85bb39740e2fa68ea08694507d475f2b9e68caef036233572e4998575a12bdc25fcebcc0b0732560d10febc77211e9d1b0b7b81e8586e6e2f5f0fc16223ca8f51fc31edb6477f89516d72cec8f07b5d415bb150acaf6950874c012615758b83f16c98306c1b4a2177d8601d21f419726be0b2d48c6738c2647eba8b74451e053db3bf7d84ddbebae8e1457e44f21ddabf4b61c77d98c6d7b237210ba99872b4b81befb3c9014d9a54918c19189da87fbad4eabf8a11f1f93cccf4a4f7c320ea69d2730bd7272c0212651cfa9aa47d4ddebf58963b23c232b74bf92a2d4316433f6502e450af83b295bcb653a8db5a065c7eb2f7a781023025570595e4e1f38717b7d56859323cd565da389ed21f2f8762afd0d29e3881e2d59662e6516bb96a505d9129bd0cfb7c3bd9173e6d6a020020e779d18915cd210d04d0b2fb0a9bf11d9ca878d580afaad2d90225c12ece4f75000001bcaa587d62a4599556eff8c3348c20061d94c85b1f0ff94b1db5b21f01a48c587badd7e789fb9f87ca8daea2173ed0e42eb19a72f60a88a78ab8e6944f2a35774a75103498d3714d429afd8c0100c16662e96f6da9cfb3e4ecb2e134d446640b8c1495ff92698170fa00915eab2c307dcb5a4eacd58f998a808b47894692e191694eabb556dea89d1787059560d496dfe76e8cb53b7004d03f078f6299685c1deef059dd5e94def5df3223388bc7a3db6b8e8f788d26934dfa26b38ffa2f63736188498a713152fc502ef3070021f03402be318759b729ea68cd2a051761b3f48a66d94c61dd4415f254e0e6e3a8ea90e5b43d2c780b72c13d619a22f9d827b016eafe85c6948df5f3961fd9b12fc3f3593bd368a0c852cb145cc8c1acea65ca2e26ed6177c7496661e1b2c615fd47c4fbc8493fdc74879acc7637ea52051651dfc12a9dd6282f2a73d303a758f59fed2570a34f8418a7381ac149c27b60bd922179092384d9da1b6ac9ea3fc739cca99e0283ff31acb9f35b882a42f1539168216485ce327ce5a11a59f8de8bf1d89e747e528aa2319be22c9dd518ac77b0308cc4535eec87e8043ae1061e93be1c6d584816ce31e19a207263094304becf6beeb5cca1f27c2c231f9210d9860000000000079a1100000000004054c8c42bb4acec364debf64472f7c5426bd361afdc3e4071751b328107242994a399a8233c911cc58a65100758fcd71d9a65b1d89d61e2184e8cae69e547c228010020bd4372926e4dcb14bfc3d79f593bfaf9f9a6164481aac9c91ff8b882f5d613360000052cadb2d7349d34fb0e310db829dbc9f709557f4b44025b14fa734435766acb8a98e16da9253ea11b40266f68f640431fa2887aeddb7496d5fb975909f63e1db6d4627de252aa08ca261fba93fa37c8085d6c059150e1255d75f26ba237706b8857ff202f48b0daac68b4ad06ffeb33676aac7478d482f80a7d75502433e68788538a15267c6f93dd9a8af26b6d04dc6492b503edebeab7a8e4c4667402d1e4bda75740b6737669bea7defb21501748d598546b277c4cfa172cb081fba3c1e9ac9ffdb7bb79ce46ad8101a4acaee56932b4d3322d0993c8a9d426dac293028653fd73da6b756351faea5a099e0cc69e946533fc19b2efebad07b3fb23043077ff265e07d9bc25638dd4f704a89a11eb109387bc9850422b40eb354eb4d4fd9c3ddf74f5ef86f85a5fd3f0febb8a2ead8fceb7acc1a9949293e843b997bb618dcdf7eeab7a6e04ea812ecc6466965d9d7914a304277281cd98c91b3eaecda9b8409ec877d413b819cb6ce3c983dac9ee992278b43e8be195e74a8fa66703972bf15b8ab646d8a1254ca00cd47e6eade9e69ee39e6e63da0c17848e5be3aab265e453d295d1f11596669e8ca082d496dc88047931928c2db1449ac9c1c9aaf3dbf459a5e683da381e79c5023a305264d6eee41abb504e042b33f3fad125cf285895f3ff304e6848556072c551ba581ba3206ebb3370a4f00de4d99e0a63a145bb9161f71db2db1b8c419281829948b842a9bbdd33ff24ddc25ab5ed7f074fb139e4d33f3c1b8583f2609004e0ed44f9a45555f4b28d3678cca5fa9b96827ba0f719a78f8ae5b169eaffdb253ecd042bd859572bcf3c25d300399ddd53a198b95a074720a405b7d3afdba8749fd999c18b67da7a778ea71eb61bb25422cec111f543a8ce7898726ab19421f2f50ffff4e44c431b009de6d26db7cec71eb775c6b1590ebfe75f837dbdea24b6308639623e8c7e0e8d8e562dca8a5d07c819a982911557ae467cf38b46c29a8acc4df38d8d7e91902ff7f35a1d21e7bb736499e94fc646a45a67e5abf1a3fad2c04f09ce6693694a4a4d89f8ba67f5bf9c170c9e50cbe48514bfe1f81a11679a1829284a3643410d51b93140ffabef5b29e5c3e4a5afc39044a4d782a692940e796beb60071ca05847fea2d3011e17309944a8d07be0a8111ac3519d65aa62cf10590c344aabda6886b49dba45ed755848196747f22618e42553a47e0390b0839b8c4279e14e28fb17dc7fb572d2af7ae9d26f5fe74dc7dda1cdbdd5ae370d678807822da50004bbcdb502b57e1500416aec22f822cfbb79be23370add8d98ad37458aa3bc88195a4fccdc8baa7b37a6dbbef16354525a41f87840d96da6aec5f31841384dc74a413457241f2f964c9c2c0d5496f1cf7cdcc68c220d4c08e54440a62086198158442a2e6472a2dc5cd358e7984a48efa80d00dc701cfeedcf71d044668564cfe8c91bbb64e28bba09e0dfedbc75b82c6cf457f5a13367af15e39605f426e22354787aa31e0645ee981fbf7bf4f86b9b8163e003db6960f6ddec06ae473628fd726fa3efd07f3faef0fe4af056b4f8cc3db8d0dd1fcb07f90b9ca8367f236fa07adc241fee65f4d36405f245bc1450838e2f6c6d2d93d0edfc11b0ea44841a6d5b0dfe58c11d1248330b9b33ad1914a43a218e73adec85b5619846376d46e5a116bd93c7e8dcf4ab1b52b0e56462d05c7e185c982c46ed69fe42461ef1df47f1807bfbc3bf2a6f9bd88f65d328bdc5b63a51ad85c82163786ecb1e5c2568eaeeadd70b45999717799fef5821662cb27820d3708ea791833811081cd0350bc6be8cef84c40f3e236047c27aa6f5aa2ec1f29503ce9ea94e3aa7289ebf0c02002003a2fa88f2121d5c1a1cd21fd5651df44d55cbe5c73240d57ea178ce67fd2e56000001bc8586da6d8dd2c71dee54a298208abae4a4f7ae6aed81eecfe39901a51d08b8af12257eff91a810d162fb97e5a16cab1962cd9b0e736d438043afcbc0bd4d8096bac5890905d4897b51895a2a8b587f5604ac194c8c4cbafa3b0ccc595e92f8db2570b20ec88aa737e5b682a3497f1728b762c3ab39c8d209410cf71f1064bd3c6cab233b9bee3ec00ebd96eb7eeedd194e00a8f427e023d60ce98dd135cdc190040f0a61111a1d2a929926a591bd5133f328f15a9a59f05dd11fcf00e55d787ff3023f0f53bbfe0815ff7b5ae08e32eeac7199304699183db60a35f62f999b8c8625bdd07ef53d0eb1edd1f1d0b4a074f06236a81279f73bdecde1c7f96ecd0308128f8cdd79eac30280be19cb58ac5c6e487f069d7e959409ece03b579a49970f1add8f579c0c8d12545a95fddbfc6486ecafd92fbeca95ba70c0d791a393a585e0d0f1212bd6215813b4ad12939674ac82f3e19adb2365d1da800d6942bcfe22066bf2c3851cc2a38ada48eaeba66745659f2ae9908ff31de01814725b0954987613dae689f26987e2968912d1326ba6526b6c80380ddc867efde7beba46f63f37d3fed85fed6050a34f016005dcb93d921e82341fdf7b59bb1b86c26fa81954b496e01eb8b2b6d82cd34e0000000000079a110000000000406522b0e7f769819d55ca74be9c70f067ca46eb42ed6f4f7fa6a652f39a02a7b45a55176da2bd1cb0d4ef08b1511b3a4c778bc2e9a8fcf5939871dc853e628b22010020a89dd228039f3171551550488f71bfd228e087a5bea7833d2e52a5be5cd8dd380000052c1c8d08e6561883b57f974a6b4d2eb568dcf3677029b4d3551212d232e3ed3e76fc25dffa7ee78b19f7384ce4d7ce20a4f96dece35d90de5f7da2f88c30c394d663f0b624511a5fafd16e0ae4af22a4e0b8706a9c91513b565b74bc42920315657f4008f021ce982663daa8d61a9aeb38a3603a9b96650c1fd0dd36ef76d8ab3f55be5d378fc4d2221e81f3eaf8b9bf25e7078df92846005a505b006b96982261b9eb60538d123b326c8d88fbbfff33ceddf81d983dd649602bd4512dc519de901911a770c859f37eb7e612ba15e603ffaa25061e3032fe19122cddb308bc299551dbe564246f0387c2fe854062ee4f7548987618ff3fb95bdd9c274bd1c1f034b339d44f1de7d05de254707d43797ec94f46b5e3da0eb8a52ff8b029d9108bde8e0700c3a37f0c130ce156573c89278a227d5242b3cc70d38ccf4eef25ea9648ce2baa4f093052ebfc10196f01955a66a5b20a3840abacf89f9e33b5342839861b6ede15591cb9f71b1683347e9e47aeb86ce59e0231d4e1d0f747079b7168f39deeec2002a90980a2d350eaa30e244b33f083344e768de46664ebe7d6b4fc7caec479a8649c5a42c4b339fcec2040096c3777ab2648ed5408e94f6eb058128e92e4205e05b71fdeca48d74353d7331d7732d84c2e078b8935936b4402c2a1a2787a835c21b13fcb646b161ba6ea82467845d2cc8cd202c28def6ad28e95178365937d9819b4e116dc6284d529a974435f1cefe5e54d651aa32e3fbce35f5f58c93249e73826c37a67804ab5c5896e53028d9e5665d51d83cebecd162dac59ebc0c37c0a5d594bf858ddfa38a29161b6c1d459b9b28e58e51abc7d90eca4a92a00d9ebd309f58a1dd6b78c105543a5b08378221b5b35355e5e40099fb7aa720e7b166a66d4a7ea499c50482ec3121ee527f0c967871b0adf0f4762f2630b08f5ba7270064ce5c6f1fa5da6dfe73c32515d71cd247580e45efd7e29e6f9de2a5f1de45407d406a0892995a71768f7f099b522d2819ec3e6edec5482fa09cc1d12024abdadf554e0ee3a748cd253dac14f718903464859459e11579e9e94d1d0d55378b9793d393f4c42950db837ba9bca04eb46fe577e8c39806d355f15e1c2deb0c0411af73f3da2a5f66a2252add51c2d3cf84d89b52173a1128e607d52ed18a963355cac95829a6563fb03eee144c334b642c4c14902a48f02395dbb6b31054543f80395b32e2a07ce3dfe88495a8504a1fd8e001464ffa8e440177edf58cd39617cc566118c0d210d505428b532741bc81b82111a64c4d7775514efbe4aa4fee9265698d52357edf298b18728c1eae12d62c410b47bd303c8b34752fc50793d7b15386e051e0cddf86c60a5a2356f9dfa38294ca5e5b7be222ddc1186f307d518e9a8daa62038f2089d90b9f2e478396a48f01ba0e0dba023e347e0fd91d9a5ef85807120e373b2378408be65ae344d303f18a7e37dd62c14eb92ebd4d31048680158d0c3e2f4471ab6d327a6fa0360ffe304b5d0aa9b4ec003fa8322b452b671be0620c54bd8795659b932df0465a31d4161123a7bb93c51560129406657a604a4ce2bacec745afe39d3957c0a36d7b56b6d8174aca7983f38f8df074e661521ca26991daee90564e470cefbeb9e33a0b3c91b4274561be20a47309a4a12a935df4c9da5e467a0dd7df6c546f83a9f9d332fd20e598946a9ef4db63e9f73b0de95110923d46cb33e6d549eb038ca4433370c93699b20ac0744aa6178e3506bac70387a7f6c02d7c891f884376479cc86bc74a75c647350840c0d43e301676a1a66a1a163e328c0288351f8969da8ee64eb1bfaaae787e73c8a9bbec8b3d6ed82f09488fcd7fbe0077e2b020020b1cc8db8ce310857f2f1c25f8cf38b32a6617c8c089b4e664da1332e50e5977f000001bcd0f5eb3f86f7400963fb1eca13f069eacee1345bb6ec1498586e510b6b3d61e2efb56783467379ed8b5c526894b5d0c09143fecd9aa014b159af7e83d0eb55cc5aa8526a0fcdf195bf321dc99844cc38f384da06d7641f5ea85b218fde5261791fdb67749aadd79661f1a80eacab405d9df05f8205202c0c0362e8155f30782a3f0247a9e3f95156c2e8aa69a5702b1b74853752b999140c36285189136b7981ba744555bc639375f36f83c3729ea9df82032dc6adf3c85d1db8982e1792d5833e77bd744ccb0daa08f6acd971434897561665f8485aecc61cdf102a8676ae9b31ee55ce1620a42ec507ba331c0d422b8203bf2f6fbe55ac110780181b4f1242645fc20abe72eabee2ab4c036019e7e9ed26788d921c2828ca52e0d2d454cf1fe3e5d0206e0bd4f4f87ee81aba75cf64b96e49ed4ed65789b2416bda94dce30c1510b0696d9fdfd72533f6dca3dde292e3d91e87c0e1de62120a83f6c687997feb1550a8de390fe5764de3945d81be0906c99c298f5df008e3a090b9e74d1f782f4ee96c786979359b30de8ddff86447238cc3c69a0f97fe7f4b373cd5ec8d904cce1cd94ee2a50db80ec88c21a9bcad9a981aabc6e2ce88a6c538c0c365d985dac103650b1b2f4e65d5409c0000000000079a1100000000004050c57e2cc913208866cfecfc7f8dfbbff0063a6de4ab38b5d86c25f3faa64105802545b6c709723ceb176bf95ff5d8c949d9af994bb6c051ec73e73f671e036601002040a60288da4b18876266d0577dce7e6e46635b7a6b9f579e1d17ce4b6f1f216f0000052cfd86551e1823cdc2f91994495038750bf050ba43c2b16836e57074d70fa4c3e32e8848c331b8f8b6012e1ff48960b970e82d7452090a2ce2f4bbbfa9ce71e8eada3abe720ae369e58b50d2dbf0599c8c132bc0e2066c0de7f8ded236e6d2aa0d208ff41debbbd041729579b4711d3ed511b93eaca714873fa679f388fb96360608f7b4fc06ef1f1e6a687ba837fa01e9255a14f41714c995537d894884231e09f25274952adc8f9c7f3cbd54f31e7c5fdca3ccaa9e2dc6fe8c0797b1c0de5d5393955496450acae84566ee2a326bc65e28c175ee76541cf620c2790120466d9baf73d45a073b4bc4f949ca2256e3609541af14ce4d9362dffc1c67b08c18b97eec8ca626337736284c74940ed3fa643d31c7a01364567f01ce3e74ff9dbfbbf4ad5529238dbff665f7a0e50a00dd33990ff6643bed621389581ae41431b8cd9c2aecdc5c2c499e783904da766e80b96484c4bc57379d7b42d8fd57efed3ea063b48772442eb5fe6746e65f44f7e16073c961b206e02b153382ab0f47ae46d5fe6ce6db60e15c32e070aca04147c9053dee1f682ae93f372e0d4eac8f6ea7e3404fd3334a3114927ab180f4ff37c7a9682e48fe8a97e617bad1dbdd464e96fb9bd9080f07b5c3ed74fe5a21cee3b9d95968422212a657fd76ed67725b9cacaa52031d9539546f5a89028fba9fd21c0f19466a8d092ac8060e3304f2c67d62a7d047b8d9a6dc2ff7eb11f4099c59d1afa4ae56a5d8305aa99dbd18f0a0892af5f6f84c2ac84a149c8469ff597ef95e526590d220f127ced196a951999c67d99dff6216d3fba8bf6380846503c52d5df5bc8d1cc3a4e49d319fbd270c32c1ce91a513fc6200a2906de01e3c923f31234886de079eaee5d6c4ab79f93006374ac69b17bd82d0352798fbf5b3ad81eb7da0a260a00801ea78fd1988e68003b5192c7f62cbad2245bf9a2eb792fd5452dd6049b04b7596e1b7fb29dff46398597ccc0305fc0d30a9be322955a523e165eaa0af19f0c1b3b05f67081e69d2b2df75bdd42db6b78f8bf13da249306b13330d51a0f21722cefd295553b2acbbf88f100698591f9887b61239fe58ac2da717afaed06dc1d0bec34bb35e7e6d401a6e65f99e39a882f62a4a4d6b94f2c5ec1f4981a01929927871a6144649b291336181bbc6f73d9c99087f76a29dc6a919d71149651eaed188d59ab81b2173728e035e4fdcd97c33cc1dd5754013bfc9870e52b58c8acf0379dfbd2609e766f74a75c6aca54e86faa296c79743c4069d2f336c193c8eba3e810c1fdf945532eb3708c766dd1fd06b80d3dd07d4341cbafddd8703f2c4d50bb0c38152200510b4f93651779d6c730c4116866224881821ef6db423beb3f8dd97ec45edd4cee2df63d2ec5f5ff35de146b9d7423b83ad8a2e486c25aeaceb73eb491ba1b4368c044fe2b2fb240981ab68b7de69ea0c3b5db3fbfc128ec8b2ebc36c2359c0719f6af37bf1d620359dc8ee622e4fa5e2fa8286ff13aef117e3b40da4d5167d7a74ce474a10e893326995870d45772c5a4eff258ef1edf428ec5ab4c962ac92cafa6c7f5c849067b27493eaa60ddbd88be24f98d5be2665aaac28077634dba709d478770429d468b98182c866b6b36f2392c7293537b2a56860409bc7da8982498dbbaf51a26c9b9ed30348facb1bde943bf7a21cdff001f4730c69bca73502339e3fd61abe779221b43dba4166201421a84af59a6a91afd73af2773d223e41bbcf5b19bbd45ca91b34ab383a5f482f137f5b5fad993f681a5bca72b4079c37d86aa14e1f4bf3a60a03a60c4597c3121fdb5531777a5fc2778fbb517e45b699281b74a8dbeff6138bd3bf8d432449fdee39ea6d020020e9abcf3957cd6d3969b29ef17876a940453705a1f580bda944f2357d184d3130000001bce29a8d977815a4e2b93f4b2237396500cee6414f7914e6472eb761b347175dd6033f8d6e8ea56c0394bc8c5e2cc9d86f2b966b2ef3bac5faadadbf7aba44f2eb38d7ed2c823b562593c0a1345a3fe78d575b9e84049735d0d8d60f34bcaa0d861cc4b5888eac5d5975f21ac09cf2d0bc28977d64983d7802cf5054996133815f362d54d9c0233de283422b265362959c13a249b2c70026554e868dc1e1a5de852c93b37550231d044c6b4faff80a75bf54aa34cc6dffa4665affe37817df2adce8a604375c84893de5b84a57ac016583e7fd016da4808510cf207cb95b6b43bf9b8ce21101cf3429aabaeb688aa4d3b594826e5992c0f75611276d8cbe402dff5591d854fdddebf9e6b3d6e74e1875a5b284849a56625a954945d2e3236b2b713fbcf815ab5c6b79ae09a5deeafafd93824c2b24182d04c82376e4abf10a27bedef4f9cdbcb800a19dde4c119550ceffe5af7c91f83b2268b8095571e2219645614a75b017914e407b1b4b8f53ce144f06d7d145c08e8de56d9d4807d1c32b45505ddf3d72774c40de9a6cd0dc4b154eece13b6677bba13cfce52698b5f5867e363aebf755467730fb75b12c479c828863ff05d27b3d35a5e568c3dad6cb42f9f8040334b95b4730298de7890000000000079a0f000000000040888f478a768c8e767cc995034fd93b94725388a245ac8d298e699d2b9d5f3852cf628ba83a38aab39dd0d02570fc295b54b931c9b766ed67d0051e2a47ef953b0100200f39ee2d4ef2060607ea10ce409ceec5199f8a4f8b8fbcd3cad7f73ffcd23f5e000003c600b987751922476c839c3c1a546bb26167e3bf1dc5f63592d5c04310a86ef551d7b04d5b26cdd646158ee0c719539e1fa7b28505ce9a27f36b273071d8fdc9b968e7ffc3943bdf23e7142b6315c9ff3fa2e0904ac67157ab6ee9fb4e89bbad4ff6f71dc7503123158ca6f2ca9d958e2b844a0fd8eab660d253dae97be4d778c741cf1cbc091a950e1b3134a58c82afd9b20b9e3f7c41591eb1b474c3ed8ac3d974182c83dd2c5e4c788a03eff066bf12938a6634c7de425e59e5c7585fe0eeb7be374a8d1c3680d04df28de2f5f17192228035d3f8be5e74fc448a05bdb17880929d9a54b522fea32fc653afced02fdd662f6eede89ed01ba5646f54b4dec446317c38c927f2f3a12c7b885e79a02e86b19d8c47484aaea6f0b0c63bf0ae9f6cc3a3f5d6667143bbfb9257b81b3ede2506f22196e71aba533b766d14dd267e5bd8644a4e3b1c98a5a0fee06abc0ecf23506b52afb6c07ca62865210adac64a91ce31640219d2722d7a79de1363c632eb998431c925c65767bfbac7377bb4c84438ea27ca2c16c043d052d8afcdc712391f0438b778fb25f0dbf31c9f4410e8524fba8a7a7a427fcf075bc626b0121426a36f58c3582d6104292ed0706af56a23a0408dbf3c88c5935a2effa4fac4ea68ab7efbe3310ac684b7cd4f919fc78c0e495259edca0165741deea82db4fb2262d02c9050ed62c7d9f1dcc918c6d1b5ec5617727f9ce64719f8345bb75ae20da4dfd976c6e3cc6a7c103245e8219b104648fcf8d0aeb0d048dad4d9aebf7b75f1569943db4e6befd7183899941270ac0ecdfcf659b45eaca5e2ff1eb6f82bf4ba618e057fd895c7905dc82b199b365057a96e64bff3235a51eb8c90f2314965745b0afdb6824ec110fdacc2dd6b2f2c46a4145e6c15ce48990a7e3734d061beba4c322f54d6dcd39537979436bf3c20db3b9df0ab3fdf4fb42e90392fc5792f2f2d5ea8d153041120714f45c3349724ed377459d97735e8b34b3dfab30064f0c6a7ed0645777237f0a0f94f99ab1360065b74c68e087e969349cc3519df57fa0817653eefa31b581105a9c7b40ef99f4b33b09106456495ad3d6de57aca7039fa389d1dbaae5517cad158150477f62e2899e4b8b672d2d1f2a8248cfddd5d3c102ecb8bec364b99409f7df6f49f777445bdc7dd8fab762e8bfa34d4099018735cf63ecc770a48699a7dfece0d4980d62f5fbb90e45298af9ebfd0cd12b3b0a1090281bd6363218915af40b1766f4794e7bcbee609cb67548bfa44571595a8e1fa78d15faf9be7a198a542ea6f4fd411f629953a156e9ddeb9d6b4890449026e8f9c3811304a2b99c1a7c95f091b6973307bb24e9fef80020020eaf820bbb55663ccb5242ef21ddf9637262e06ba3eb74a5855ea08ada22f6f6300000056472fbf716f1231e2567db0915ebed8c676bac7be3ffb4cc63904e49e711cf81ce7365dd652191bba3ed8b93f55c310ab27f7bc41ac89a52e38d7648b996e1062fc48e03231c50bb3208cb1794fcaeb57f037c743a432d93709372219ac824454d2ecea1acb9f0000000000079a120000000000402406579a89f583deb8833a5fab3056b32e10fa1fe5b28b1b7c0f1d57367e7816338d3a095a4dd8d5b5b6a69e09b94ad6f6b2c8cd2e1eb346d6d78dad08698e87010020344be1b22f5fc4bccd3e6e675c1944eb37eaa8276b27a67883aeaa8d1b6cf5280000052c9f0dfd58e142fb5ca3e9679cff94bb00b15b9233b9ca81a7318b5ef721aae733a76b9e16ada1142b372842c0d8989f492840dc1b2913a45bbc3893a998926fd96005a88298e3c833940c125c3cdd86207ca327087efdabb68fb90d3e66648a504770bf5f58a4843996290cea2c00bda662c40845c31430732affe1deb979cadacb8ae7f7086926e2d9e24d265d8adf26c3806cbbff544ffe1f9c4503c460a4aad42386f3042206e0e1b7c07fb18a5d40b809efc9884e65ae1779c55ac901eb6de01ec5f55b091d02f2ea2510b5c10cdf02bb43c0943ed42c15c2ca3ca4426d30c41628a91189feaaa5ccd1925ac34b0aebca7aa0a0c32061cf74a0dd4ca8b8553097ce0d6097eeda7974105224472d086e481296cf4a71f79cd00a25e0c60f4c854b99894972a9f3c7159fa0d249296d515ac5b88bbdc7c583e94cb9b566d80e5547752044ef00e488fc329106233f46f09822e41da37d68fb428d185d2bc27e77f3381cacf54e53a24086d54e43d3df6ba8cb38da4aa7f4c7ae763f7e82ae12229e945df5e897c5bd9601582ad832fea2aa4693286e5f54377771a2b5acdee55000b49e940f9e1aaf84803db8d391a6806ea19f52259010e3ef35d42d4a5a465550b4722374cd88295c964af04fda2cdaafcfa98236efa191e02bb29c725de7a4d1a61074f86fb9a9ebb033e053acb50d01e07250e91597955410b2263de9bf7afe552f683778a09320e8b954a54d252ff99633c6123c900714639d1aade5f4e87e32a3ef8edd5f7cb96bad7cf84567eba76991526c70f2054fab1714d76538e8ea7427d7a1689b66a89688ac0c2b2199d54f69ae6148075cf2cdfcefbc14ba98c22d0ee9919e589b1de06b9696673f01b0d6a10948c6d3d806afa8bbad2a374b42716b75a619f3a78887a30cbc19d42b78eca8644626f93a1ff3a157585915a951cf11274504076c1d4c31ff65b1a752ad4c471eed21fabfbbfcd5aa4dcbe847dd3f160e3160ca3459c6b32a539251845e532a53cfc2117d9ebfa2830813ae96734536279c54bf2be9a2110babf32ac800576baf79608e0f118ee647a5c542d6904f666026c7a1574b4f336d715ee6acb640654ac1c2733ab32980de8e244e71b9362de7d13f1bd3cee6ae24da07c8e5cda9bbb30189054b557865763adc25e4a55a4c14bd20ec0223a95f9165df4552a3a1cfe17853457e12d43e7dc807fcab9190c0fef9d4ebe74b21eec58222205c163b33a603617672f38aef335047544ba8874e324748cbcfc70fe236d48f756ea75ef2aad528cee654b4be2753303c0d78465157bcdde0707940cbb52e8de6e57f0c92d98b71a775b77c22e57c0aee0f5663bdd739047470861187ba902834c2d0ebc252f9496e29c0b52edba4c354da994e5317f529ce95e912d1febbfe1d0ec26c0b314a8aae90f598ebdeb9d237fa66cd5afc3e54cda4a8061d6412fa5425655bc7b899757d23e5e220eb27d86043802fa8e673eb2aff98cf259372bbfc6427bd73dc69556393f8b15796fc56cbc7f04eb0fabb310c4ffb1e765e29a33acd77f89f2712658cefac7e9d45eb36ca2b530e60a287b73cf4da00109105a8365badc099075f1a61919470bd91c19fa9f24b649ec20532b8aca7c96fbaec2052a7cde746af152ae96e304dcc781de3b356fcc3a3d0775ed71e421b4f23c4f5b1586b6d17eeaf32be28f4fe658fd7f050224aa717615d0c1dc354b8eacfeed7a0e2ed5a2ef210d157fe36a0837857860b66db0a2e4395096facb924bf8f0c0c7746fbce91566f84ed9ddb68ece9a741747e0d0ae2cae0c98b1161ceaa2c9c379f0c9b18dffb2f4b7b96a80ad2987a4024d99cf8da4cc707667183b5f1020020d14a9a213242e5763172851e1bf9f72e1ed6c6442514309fbcc1759163044879000001bc4a4c261a24fa04b0b2ce2268f4dfe83347da303d1ab62ce1f20d4beca32a7271a32234f0755bf46070c10d8f47d797121516e4a47f1f9423aa30010b9615287b9f5e7d0274ec1657ba16ff541b6179dbad4692060ac8b5fe6f3e8a8bcee5c5e9a69e93a3c53aa7c8ca5090fa5531b35d1a72e1a97e94d696e949f9d9c3fcfa916dbae715a5b47742f5b4d48a98e9093dacac8b5b8185cda7a966ce5b0eed198e6c81af1d94fb69696d59389eb70b7bf871828f7572fc30720b6c15b112e921d5d107b78ab7fbe1b96124344c418f5f9f7286cf60c8bceafd782be14dfe54588746a6c69b64855fa26434fd0120f05ebfbb4bb579b36ed7ac0c5a376d5c27157c2fe86fcac2bd85cac7bc0aa1c790fe05832528309288b9ceb2a2e72548792a57beb69de48b3f24e4dbfa11b7ed11609bdf258730bd05704daaf72799d77d827e8dc7590f9cf2633a8c6b5d6c20c8db773a3f907969523a0372e0d6382406e2ff2322a0c0c48eda3902931aebcefb4bd272dd4f2d62e52eac4362bc3e11f515184e5f2b65722d2e0b2da73d324d0dfdca23807da8a6acc053ec2d998e64104278b6038aaa324a1f101853e967f4e3bc725d597fbfacf4a8cf7fbbe852db7d28664da14468e2707a2cd402dd910000000000079a11000000000040540459e2c62727a3f1aa3267ddb216a544a2064535be5ebd0a062d409669f44deb69f8ff02800d8973f2e31c00326dc252c272438ad1e96e2215023085995eee01002094a5908bb8eda31bc772e2ab46ca04d9a831b4718cb4f6ee4f03123882b3f05a0000052ccb18e20193c4a8eca929e6d659113c02c66206e769ef1938194b21f89058b446c1b599383b4080066f59d99895a38ed1fab5fe964c198ee07eabbf8db68e1ec5e0807edb29564507f3e55d7261ca7eb7ddd38b263f8b15b0120948cbffe41e56352a108ecf8b54b054c087e6553a893a0c4946a5e8aa09ecfe825b8d111f3cb7d76a2a4960e660bffdc7c87f7d2290c2f9c342022913941aa7f284c087a419178922c5bb143a2117ab6ef3698aec0d37907ec6fb62186bb627f28806c8ebb6f8a3a367ce600a912cacdef924bb5deca2affce9535c50bb2a9aceabbf2bfc58d0611f04686e8bd86bb8a72ba6f3bc2164dceea174105893919f8cb35345a344b9ca1be9c87aa68ab3fb90d41f19e586c1a6e1684a51f1a1f89455ffd84c65403b6371dfa2e6652ab8bef5c733d2043a4d62adbfc231dc6700a8f3fbe07881fe1e8ff52dab79a42eda2f8a5eab1ae71149a9925594d1085a75003b6b2305742f86c79280cf9a4db76d88ee2928e8f92996866c594522ed27cceaac6addf847404b806de88c551dca2cf17e6754ce4e0b2b0cc6b7c2f2caf4bbfd5ad2871c4c8a9f98d96990c16744434c9156943b1cd9bec8816db0312db04362c46ee6f34b919fd6f151bcc3f123a721e0b23517a65386603acf9930096153800285f1718a3b399e1874298ed7883d0ce0232f1c4ad269d5fb1ec26e53dcaaa2f8d4c122eccec36361a13213cf7813ca1fa0a45d3e15b539f7ec969d24aa865a157650b58732abb3c9550dad691e36fa79a9245703402e7f03a9b8f8353936bf3362a960707c30224d9ed36e4fe5a3f53de7e420f80c41f16678785823f233d4ca581b87d8a964378a850686d360e5cbae8ddd87166860df62bc72775c38195b9b153083adff8a472c39772808bac2bfd618790fd656d16790f9b0013f89fa3c72e89b4fe3b84c9a407714c2408db56e32e8ae6c7ee42b486f9dcb716e63b5941df7729af706b409a1d439664f0d58ada7bf2f507b44ca7aee208e4c65003b7baaf94fbb639993c9baca3bd8efc75219960a6d8647488fc14117afab5048187023893846f37ee53fd399f7f9376f36b0cfb9881e5bdba6d8548fa90b0c2b280932cd875edec44917cf99c423232ca006d216028e2dfe64f11c828728b781a3ae8ea6c928c649d21a1f6854c1a46795f683bc30f7ee0330c486e7423a801a3827da6f3302ff3a2caf15d30ac478fac43d58482c26fd86fef1fdd36fcc79c156207dd07acd0d95037c436ccb16fa0edd252e56716f014f52de51e6901b8e3fb08b1f2359aef7470c529f23e9d98407d61cc0cfd8d242629cb9c7ceafbf7d29892ef74b5dea71f36c7292cc46287c34c93781e9088eb705ef479e5c6eba7977b4bcffd8913ddff2c1e4c76b86896eb42e9be70929b9867a8683c24b20c65476eebee3c69889b3e42082e43c1b0a32347e4983a5c85ecc562dec0e2617d935512046a46b190e9a8be7dd464fcb3c8f09c97d572f4f915cbb8539d94f84ac14e6c5a0a01309df55007f6257baf6fcce82fc61c0efd504d491e57c660d9841526a3927ca4c97d282c939e92261e61f6019d5d012540d21d0423e675629bef996b84bcce5df66935ac0e139532d70b2c0de4722b6dfe4ae1507730d38d0c2fb07aa6b64271235c3496fc674c93e5fb7968b4d69c3d57d8baecad5b17512b9ca12588c4bd0bd4b3a0711eebc7930f1861b0361f8e7defd0dd29d5d92d3eeb5b47767e80f5c4bf3b61e6c48be05b976a2de30c9dd87f4d2950b079a23470bad666d8589791d417b3b4a4ebc40a967c3ce751563f2918791669261adba48f1e58bee75a3302821fbe3e5b411e456db33dddddfa2f4f9a936020020e688853924e818c4617d4da320dc9c863b229b2ce0c0cec9a02308e4488b1e61000001bc196eb8d0b638e3812bbc720a9ef0d5eaf1bd06ed9364007a43acf15c65d76fade30c3d227e276cc7018b1e85422bc96bb35a87213d7cab8b595fa3eb7da18b3f124a929f8f4d053b1a402a24169ff380ceb04db6c53d028cee0d04f1e0428da7678b3f279645d481815418dd191b1ba00a3850664fbd3bc984fc2aab479bc09dd48c29eaf97dbbf312d39a7dff669a4ffd89074d370751f693d803cd2303cef020508c44662a83531c73eca28d8aa46a637bd0670b5e7265636ae4a02f97db446d1bad273fce1084076876afce40795ca5933c8ce43af5d618a6c41e73c9d5e0df15e92a84029cdff6a168d7cd590e97182033c48fb54205a598fa28b4a6d0205099bd7521fd36eb201cee1c684c2c3ad7a7add76db59c67f6f8bcfa11b9f7b6fe8e25d696b91726fea10552cd6dcbe91f34eaa7a96c55760ec503b7176e23feb4b82ebcab7e4165028ba610896552f7d86aa62710bcecfe22cc57dbd8e3e7175be8c1d4a2444b2b4a5b8ec4dcf3a9c60a02fc2488d81dc171aef65b80c0be42679618264c95e463308127ddafdb020793716be3ede58ed2073ae98d25a4bcda0f138b5c6e60e37cb1f650dc71b351a88b50bfe73ec1cd9c738f252bdc9b54ea1cb5110ada54ed9bb9d32ef90000000000079a11000000000040436f73faa7ea753d6a197a5b05fb03071ead243b1e9c9240d56af7a6be2c9e17516969201cba173bf057618436fae03e5d67f7b857bf4019c69a16e4f39d4a290100207b56415aab24eda46eb300596561de404d8a824c0c96c4443085c99215d6973e0000052cca6b0a688d0364e77cfc2086dd67022b7b76f91e773af653d55016ca848962a455bb837b45974ee91ccfe56e261b2ae611d4309b0f3624e8805efee7b99f1247fe0785a7d3345ce123900bfae52412ff74da7760c7b2c770eb8eb2403f38ff06c184abb4324dd621f59f78db4d07f6a3f83ae8dc0785f76931628beb639e2710e243104afa364f9366f39678926e7894f1923341e7e1d6362102b366efa17bfeeee60a6e104013ce417fb2e2cef9cba17babec863e663ab406510058dab36494e7dce1d1c0c99ac22cd0aff0be9d4fc42baa42debcb0c038e8730ba798245f1bf826650accc8283568cf5bf5af6aaf74ebb7aa533f91295e0cae16f5f12d5136ffbc88ed088f13c94eb91b62358b5832c1432b55761012001bce913ca74e03d8a6ddd520b6f957922d437b40a6c969f8c07d0012e1e91baccab776f3a101b68e06da6252c0180bdfacc263eed4f63c1282066ab28accf85c6c47331ba69cf6a16a2532e10cdb63f81b4f4f8f082bdc98cefc57a78048be18efff1c69401905962d3bc85e4e6e0f1c16d61f189f184e01f30932b1ef6f6922ee1f126d8c2bb7913297b3dab9e192ba57d337aad399cae13865af8a76589049c0a6156922b40bae9bc70e7b29fb76997be55f6e63b01ce1b3f2812507536649de29d2ee5efada1adc1eebdbbc5b4fa7e193a70fb8152ab357e40a0581f090558f7e5f683d84752e7606487102c0c18027f7ef1a62b22f9e72390f9cde439c54ce626b700e3236c69f704ddc2ee3a605af2f25debbb093e50165daa37af3d830514ab49340e85fc1e8fead65460bf55c47ddd180df3f66527e4f9f62f48b0f830b5c12d3a843f61b041a00ec3790202e342758b808abfca9afe4bdb290bdee078b7a2330ab76501a9ac2057e6cb75f3aa1db6d204b279f5b23149017fbd21a78ad8f5ae37e0b7839153fb70017f7b9457b6aab89d1aee31552e8338757692103001e1475292ae2ed8ffddae4a86282a2c0f877cb6d7fe5397bd98806c0c164ecd6329a9b01375570269cb5cf5ae061c01c61d34471a478d942f6ca9c228879763fa09910333c341f3cf9dac5cc00d1dc0a9ab6408990c10f6f9439dd5020c6900c13a3c3ad08bbdd2aac2686f6961e036bae94fbad09f3d48b53e322bb2e99f205c530a57be545a3a836692e6f2af6ec7616fd5f00e6c78cd196e30e01bcd76ae9812f680959c8ea2b3490144933936bcb80424a666919dbb67feeb3edbbc7c36d14f39a6a5b57d39573d7f662cefd59e9e0fae41619842d92eff9932534504eda0a731005da809dd0f6ccc1f06b2725b1639ab2dae39faecf2bdd590650be8ebb9dc61018710ea8fa060917e084f25404bc0f22d84c39d79fcbf43156a300ae53cc235c1d6ec5d8cb9924902527d75965aeeb1a09991f96d3314c8d4dc15ca7e48fddfc4374a7ca83addede1d60fe4477854de89522c1e4901c2646057f627cd5d0c70036fda3d55e2cc7a79aabe9b9e722866ef8a1eaadc2ccdd9100cf076c8271247d51707bd54fcb04b433b6ec486cdb4713dbaac64760f3388f171c9748cce1a76fbc53b8b146b79856468ea5cfca813059056e714c528e6493d5d38accff953b9ddfa204a99a30386ca53285d46dbe4e83c912a3789ce769d50c0fa9222eed55a00fd17e4e65dd917bbe79215ae3be3edccad71a68c8d29568535fcec779330949d183d6cafbe60229c86622b6bd5337a01a6fef669a41bcb8e421dfeddcdab4145b13553d632fe989e4a05aec665ff66920a92a11ad11788677034159bd076a634f95fbb050bfcb9425437167a907bc91762b585c855057def816263db845df19250a3e6eb195eb762399ae1d8ea70e94020020be41399b492f26811308ac20b39ebc9d7f22489c0b37eda1f06139f6235a184c000001bcdad30bc7be2d27ec9542ee2a1ae52d93ed34f02aa3e545c92127a3463590cedadd4e5154a7a9a1f024837fe5a41562303c44929ee39af86c9a5cd09982cf7ad24dd96ae0775a3ffd1ff63a78ce3df5af1254a9242792bafcfd1fba6e0ab90bfd416f9e850c0c7ae246f508437d399400fec6da90e38676763406af3c54ec2040b7059277cbb559f93082be56b778c6d9c29233be0229cf1c5f47158487801562dfef389298a812946a7d52309aa38504aff5a4d424af38132cec753450274b3b305f62a816562a3b739db60c4ce239f3abccd90c20d4d6765850250deb3249fd78b945e8e798308ae1314e5ac53c4f8d2868f34728ecddd4f06a45fec99c9975e33cfdb9ed9f965b4cdc5fab74cc09190ff53d918598d29e7b6e637ff1f80eb9e3017744b0404bbbfc8b0145174a02fc889bb153486a192f924aa6187a710b9111cf324205b1d53d167099d7d3e9408de199f38dee62c547c4a9a4d1516c9d1a06f4e54b5d8538fb85cd1b92599023e1c0600fdc5b16530fe1e36926bd12454f96616e2274d62017454c227f53d54847aa4b3121433ff8690f719ef134664e77a37ad57e3526391824c19fc3377fe924d8d72806e15cb44b097a15f7e04165ab3dfb9c521f9b579af5f90c2d0000000000079a11000000000040607aedb9541de6403764fba41cab5f5a179bd76da20d7048b368d834290dd749aaa37221cabec0a032f2322f54095d96c952baa43855aba51c3b5457f1b5a21f010020351012aac48827ca0b1e1a7a18d4732077b49071f115a31e8a7222093e94011e0000052c4078a211a9bbf245559323ed95c416d7213a02c1b1d04ac6039a83bc77645dfa897a167a6512a73d67f0177d7715de282071a0dc825442107b0568080ebe6b88f7e7c52a2ccb067e60b61d29d5ce55916d14b87f92f10a19ecab99a31dffaa6c685eaa7ff4d2543acfc96f8b2abb992c6d77b6b7cf739d328074ce25ad49749c92ada7b070b6f7bb9083916faced9206c9f2e0c59beffeccdcada23fc57f539dba3da70b58b0b21dc80b75bab7b60f9e464b31702d124c59624f821cd7005fac1fe6f8383f13225d90f6d5447d6564c865a43f7d0ac1de1888da8e331950fb4eac42fa78db8b819b9d835e7d86fab77b73f9ce1b49cc2f0576d3121b3747e7e2bfea8c8d3275f41994ca6ae3db04bc31cb7a31bdb34be957f45c96d8685a59d70caaa5f607a61d79499de27aa0a2197c775051fb64ce742af974982cf42a3d02ba6e5c07e2ce3f185fd4eba272415ee35afb526eaf3f6c4a5a42c5e4df7a3487c5901124a062a352420e3160c7b5bae4eea5922089667f49a0b5380c12d6c437580f9543ad8f882700e8952b77d14d539f87b8367ecefd2629913ba272b34ebe18f45fd99ff6c5bb7a78d41b1af6dfd3328faadd7d108d554f50fc8929321d3d58f64b5b4c0a585065c4ddd09562085d8e9bcef45ac00aa436193b75d91259d408ded1c0b8dc7dfb3adbf99c1e419c5dfecb4a153e854edb1f6b09904cce9ce9c9ad3d36404c0c05b8dfae118769dc970ccab2936ca834ab60472268665241c50a6855771f5b23f62de3c1f743a8a04d5c428523b4ea696e22fa02ac6f8a8d216d39e5e4b9caf63c9eed12b25557c6ae30abcd350c70a4695645784397ea4c63bff86559c811e859ff3e3331d58a3e73227f7be9c7c25be3ff5c76a69e13c85bee16d258ce7a6d275a2e6ce0271ca43f8818356f9aafd1b5dec66c3da4727c0378f9abc63cbbf5d7815658a7c020ed5f66ffd629640995627aed70d3a14ce2ce30d8d994c9ada6f26dc267173160aa950fc946c3b87748c3ee7ee7a310e0be737a6212c1ae3d1e097b3bb780c9d868b8f44af5e987b445e763caf999ec4303ef6b301d98b6a28f65e207fadc7bb557178a66241de1e63e0503da99b520882c5a0af03b7b9bfc44af44ca1742531412eadf62f62a3bea9abf2e333d6d5dad3ed53685ce2bd8d8050dcfd75e14b34c5397f1d836f4d3a1b8b2b7f34d22a83240686f99f3fff904d22b752d974c88322ff1647c677bf2e6329bbce7824fca939779abb9b63c7d9b51fb1d6b3175700abb2071128e5babefd00e31958ac134964904bb5aff16fd27521a0d2a95328ed56cc9751eacc97d47d805ea9b6b0085484c00a2979eee5c0393d0a3e1da7d2daa16e6c2783a175c6687b9b537f1c3a0497edb2c50cd2186b4dc6b6089b5b076d03f3d2a44d185b2ca4375416daa106a867c696e9ef7ed2c41e40bb89e7172ec48806977616ddb055246ae64079f90935831ca59742c2013171f3bc5a8656e264d14886103e2c37b65e6353c9f8d734179d4598553404a811fd37f08f39458be0196ed252f8bbc660444c844dd7fd41a076001abbaf369e146efe0964bba885c1699ca4d77f41297270d7a269dd17aaf67154e076e22ed70b92923cb5924d1be01b862ca013e3c2925910581b964f26f0b386871e3fde81e6d93db094dc0468435cf08027796ce3198cfab44214332596338dd4ff77d02c61265a66287c4afd9704685c4de33bcb345fea7d1956589a04beea0a86b781da35642077a6babf2b5fbcdb749753ad3224edc17e9591a884bcc29202eb853ace9fc6fc52658f0013a843536763ba798b5fb88d50dd696e56947b11226d6227e59e2a6411bcccd05020020ba2fc2c6c6479fc61b2df6e049edfc1bac11b73c942236b86a34c085f4b60d0e000001bc9fbdbeb31005e11f64b9340fcb94af29b026e9cc8444c76a8c8a1df10b493886ce7e7582522faf0ecc9447c766ff76cf5f2f3eb6ca315ce7fdff44b74a16cad91479dc66915c6e732412c07563a0c01a65dedac976bc4007d690a442db771cabdb286cf047f63a974c6f978c805c4c1076de51ee2bcbed21a5316b44e6783d750d080a5d56465b690cd498de5ac49beb3576daa6a2b6e08eb5f18633a3760f764dde625954a6f0454b3e0706a34e0f92cb497eb3829d7683c41d4a2dd8768a4bdfd646bf59af280682e80b4a451a4ed63c889f44b4020ab012f1d57435746e0ffd3d9f210370cf6822761e6e773ba0a620710ef4aa61f1a12184ff7905b4f78074ae9fab55893facab1e655c989f663d6d03f20ea17913a5b5e6322408622c46633bac7c41669073676711a87ec79492ec0d2639c99c9c2a524fee3ac322ac5cd0bda65de6d095f9c72f43b54e3df652f86c881e6eaa3ad095ea47081747b4542990cfef2971f201b09f050482d80263bee4349e21c4982e40da17f1ca9389a4d526e29e59fe15581d2e62949069e4c9a6d56841891d099cd62c4445822bc3de3980b79164642e41268521dd922e7837cc71a6a2d540b52f233892a9ee803408598ba0ec98c67ec83d4471c80000000000079a1200000000004013e5a1473206c1158b8fe56ea480af897c75b5f324d54049fead9bab904d63ff9225c98e93ff36606f66bba0de966f19ad1a38ae6862b7d85013add4595ea39d01002044ec9c259ac25785b0261c185fb23c20183c959ee04348e9127b6b924b5b89010000052cda7bd4cf6d224648944acef226545c86c16275f3d6897281debba66380bce11942285405742569216baccbdf477d7292594288f5c78bcad8019824e6d19413bd4345ea5d1bc5cc55bf1d22f7062c4229ab9b7874db14224908f9b04acee173898efd93337e1f4d776dead63a664c745700ff10dae53acd10299105d97b491c3a39cf0c7d8981096aa4141caf3cff7f63dcc9915517bedd77304068e099bf8b34d11ad192d4879787563f2a393a08d9def2b9096793f62b3b0faadab3aa9a6a7644b79ca002a6ee76cd66bf825cba53c3a4cfb589ab0027e11ff0f8df20064db6bf2f7c75b92310cd09924ce8ea88dcdd11a7a49adad11e2488fdafa59823561828720a43ad7a45d043d74c95cc25504ffc7ad5d08ce3f392889a2f2e23adff4db7e229fc53731bc5bcf325f4a65e2e056ddb26901c456de01efe7d26a73333cac3584d3743d90c9c482b9a1aab03acbac2ff2e50b2b7ede233e3397ddf99a716cf7311a39a8a84756b5139958324852a463a016e172bf24cf24ce2c6a145ddd2368490a2c03c40f133d23103c51a9840b0beedee5fcf0e3fcd9a90a6610709d6edce8fc0a679d50adf38709858fc928938435b99fe33af759452ac774f51cd33cc4e349dcad15833ffc212ca1e1af55ff1bece9a85d263616884a03670cca5a17f9b6d013b49ddf8edc35e349ef584012e9cb9bf552725176f8d0261c7d28b4d7c8616f09056de26535c195da6edfcfbe149d7fb10ebced10d2fc332254522a84ba689af0ce8efc20ee1a9b03b598c46ce7aef99c951ea998ce2a3f22825e737b028e5bf58800925210772e4478f42b812a1be3425d3cd94cbaea20dd2fdf5066ac637e835b39a71beaea842cd91d33ed8a51bdb297434e2e0dd3286a618d5d7cbb5c1af1a177b0240bcc4c52da53f3132359fe22d2f5e72bb1d5638372bcc9018606299108519795263bc52e378e22a71e7f4f3b69bc22da2c057eb13c221877116c4464bba6a2937d218c77bee30a2718b03e6bc5beb7572563557edffd7066761175c9ea7164ee2e05ee55d7a66b62818f1ae82959aa83ed9f239582706db41144f2bd533620c45ede6ea3c08e4c6c462604d1cb0e5b9f35f6b1a8a5b9bd0a2a807b06f2910bc78c6e578c215dfdf3f0999fd46022c6ed839db384efcfb23e70cc874695a508929bc1c474a1f72712d1b06f819163c4e9684ccc6ab2005c792eb23ddb2e9f2dd95d2842a92e84f625904900a3cff5c26019946d69cf5f0926a8663b5e08a3470489a3cd8533c069e5770240133848385621801ca7fab1f404de833e2ee2ae4575dfa31b0ce5f32289596904f3c039b23cdb4cc55e1ce1e6e314f3dcb3d42158885133e07bd908065c26fe3a629c3cf80d4a47aad4d3f68189db6d493cfa7c0b4ba3be440502e6dc87e61f97389349580053002a89d38d7935adebf59aa9ecd94cf4ce967005a710194aaf9987415adc1336eb52bf9c61f239ba074939ebc4785312e6094ea78d2be66af4c9856c871ec1b3ea50aafbfaf3a92b6bd6be796c24727444b5bb21edd84a06141587cfbd71328c49e6f7eded422d352cbe83daa69b8ce93d4790304f7a45ab3e568950e8d03124ec65932d213b61b6ac9c10e9686b68cab4e70d508139dbbfa924b0599ae4c7a65aa3cc49b9fc85361e11fba9690767f70ce8628d182e8fe94b1cc2e1a920bd90de200701a63954e5c015bb8363a04dec4c72f1aa3fd1465788e5a1215f6150b627a401bb14046dd54988169fca2e9940aca103110fa76f1d988da18457650c2958efc228fb89643a666aa0590f9efeb3ddfe753f90dcf1cbe62076bdd6e6da4d0e2f4e4a512edcc228a2e0e7d62f3cd02588e0200205ccaeae5284cef8eb7743ae72f2accec036bf469ccf678d4d7460a8a645f6c52000001bcf96404ddcc0dd95874d9672634d9cad2ed6a5e2ad92897c3bf24a55cc5b39c937604ef5afdcb5a5b852f4f54b3055a5ebc3646dfc0584efe21a5c0431f6b96df437a82396373c6080a908ebc332e830b901f14d442cdaa862992d581254ce30974f1342c798389ba5e17a0d5a6f5a2a6dbbe6835f3117178a0512e5b686545b8746415043894efa7a5e8b2871e93ea75c7a1145d32e10401269b884a9d9a40112786962e61737a4c15ee1e616177ecefc84f64ea047574f09a30bfb6ed1e19b3aa2ad4ad86da4af30cec7f59b7d175e3dd9140d7a19048c116d5e1402921c18ed67f52bac0b7b5998b784826318887d2284d19fc1521c89199179b69f14a2d09faa952bff92e17346006e25cc465d0da2ba2477f76efd9c72e4609263e52adaf0f07e032f0274ed870391b3430dc4211c5834465d077059705965795c614e167fbe1f7b679f48a37dda7e432fe111d911c3a727d9295da27f9c4fbb2c2298d9c38006be7c0eff76ff99cadef2ab080d1412591b1a244c7d41fe948995e5288385eb5355aba08061b8b984b9345e349ba4b31c5fca213d80ed9a6f6fb53852eaa3d6a314a6309c3c0859a457cf7be25d7722199963b2252524580f8d5f48dcaf73ddb58091658bd37f941ad640000000000079a1100000000004047fdb0b6635b4c81cdd25d0bfd64c18fbac81a7c0ed63e8f18a2707e570ff2967f5a907d47ea6df50afadc9103fed9643f79393b0015cdd4c46e0770a34abbe60100201537f31b2e400f8ca8123b2f18fe056d9e233bb3ea5299ffd5d072d73cc5527a0000052c3cca7a383f608c1a7cb7788b7c56273e68629701e7a55eade2f68f8efe2197a967e5573e1fdfc2745d008ec56612b9380bf24f7305b7cf1bc21717eedfca9f185e67a98ce595c259250ed05178360af2447d89c50ffbbb33f105f534d1f176effbe7ac4f8e5ed18eeb749e1c8baed96f694f630cfe28fdf593b24867d2f4e8775e4cba8117c85a187b353c11d9618c359718c503375a6c311174daa764a0b38cb8bbdd931580c83b30fb628fe43468d40d3ecc2876207314efd39bbb3f83e5b16d3ef71bfd0977d2d6b86fb985646731ba89bcd91bcc196c36e55ad914edd2e1054c642c4bf694b9bf74ef8a3f4ee94d2e26161d1ff7a5294b944916b40f615fcf6975a353579b47b862a51e88d7ec57b96de1e0f2fd0261d1c1bb216436f876fda7d709b651e0530259663bdafb77adc6069e33e03235d9ebdc654cf5f64ab7f470db9abeb0981e1c6c13a87dd582ccfa7465c0b72e755fabbbcf8ab8387692eb16494622ba2e3f48b1f39035fc78f8796e8b78ebdbb0252ea779d6b709a22a44490a9ba7ad1b42a8de0d6bef8d49f4816f18a2455c4998e8722e861afef9706afd0042c91a110fc0e20b865612f925298eb4b6326e81b1c2386e703a640f593e1c558ea5a9fdfd7488dac7af131aa5cbab94152150901d45928c2df449afdbdbbc102306153436a90de6f52b8e8c27c853cbffcc479a000720b9aa0e27a0eeb72437275a224e74b5e94ccecf32dd4f76eb0c3785b87955d0be4e0ab8b9c5402b5727bdd45ed44a0e53c4cdfd0bab3e4c35e0eaf24e322eef70bf684a0ac7741b09e264c11aabc765b5524bc7f10038ba970a24a9f7c313a8d328308264b709859e8319121eafb361163abd7668d442bcc17f91f00700aefd705fdccc19048fb0a831766e4d9bd0981e205ee27db2a2d0990196c4d79cbfb80ad323c0fd23c157694a0f306ecb78e0815ef16ce6f56dde36a37d1df0efa70a485e9bd26689c31ff2698fd05a7b0094e66861311f668e4255b705d569da88f42287a15ae7a1d6285fe103f294ee3010bffd59355d8b3fbc3cb1f6eb9d5d25a1ba862f3da66bf5bb8b9f54752cfb3cdef9684054e99ec87c5697e31228a881eb118ca22ed529ffe36f2bb28b2d1918424c0c5ab50376dd47c7e740ee6869c2e16c94b42549dbd9c2051be6c033358c0287f715aac1b02853162f1e14f51cb2ddf45c31e87968293cdad2708504c99a1fa87218c2aaaa2cb90bb7bd417621c4af739ff3f86b858ab98bcdf0f773107d62e00b687582699834b6a853ed42e982c6b9a4db1e7bc81b8074f09cec6bde700fd53edc3d91b1fb74a0ab7fda3135618d75a100aca2164e8047800e09d78b00b6a40c26c5dd05953b48bb452ccb478028f92384fb88f752ff4bea5a01c1f4eb6c5a766af1c4e0b0fc7a71620feb59a16e3c9638c145f12fb20a0e13a54bdd3dbdb1ff271cd4e8640de7a265d4e173278354275248cf9707b67d71935f96fbeee3ccf47739df24e9ccfa367888e73ad7a6677dcc4b881854c204c79a7f1be8ee3b5a1d43fe789f95e9098169f4a4f3e608b69ebad0e6362df61df15f7dcf00deb315ec8d434450362660733acf28e36476e7c8eb4f4b36df440403daa79bc6190dae8b9122f478ee90e5fd4349860cbcee4dc1b21b97dad46bf8e77fada71b9650033cdf8ca8c69d820411a820036570079ba12a1a8c307b82ca9552ad87338f924f13982517207e4a0c1e2c64635be2cd1e33a89dd85837c6a5d85d9d9579c2023a2166287aadfe3f4be226f9eb190654deb60dccb2e61004ec7ebcf26c05d733ea463e4343e012bf08895648609ed27cc2639666329c299c825e82798dd4f71d1d59ac0200206143a0d4eb6b47f7ae0dd1bcb0fb4aad54c576b2b5aa26a287208150d004fb22000001bcd4c6e1414de8595837af94e889052876a129f81fd8ef29f5ee7a2bf75527df454c61fc837f413e10e08216f39a997d73a8d0b0598a4c4c253ad72445e2349659628d08be52da578fa726629fc79467c345c65a882d5d4db0db9ef985364b9fb76bb9f3b2e233edb1a6483d736c2613f7ec0418e3f0f92cc90985646467c865bc664408623b4a09264c981502c5a86dee94d84f538072d5ef6b1ba6986698fef7bd314b8761e4ce0cc10ec6929fdf6658701259375eae282a41fa0d0c8c9b6e243f5543e1cb0a3191af375392f9d259091b963b4795ada8c5ac6b1434144e1d79db3d4c7090ca2babf4b08c0a3255ffbfd0d4ffeaaf41d0b98b131ab19057ea503a597937800d23ef8680a4ca87f3b129fcd061d49cc351e686b59c7c46da6411619c46e63d79995efb4810bb15294759bb19603c68d5d06ec58bce961b5aa3f9e056a13f1df586aac0c5ca5b68d38038c9b46c0c1b01fa1ccd6f383b43c99fa52044ae7bfe9adc8259506e53832c3cdbcea2aaa6922a1b1ab403082fdcdf385587cfdfdec3e64eaaf2a2fbbda2984d51253852a714a4235b957552a6996298d7c6715a0605a10f9b1dc7d20b642d1726f2047b5cf46605d57d8941c4fb1d846a5a82d98e127655f9833a9e580000000000079a110000000000401c446f4a7af49cd9aab724ca3d0ff48a94fb243380021a4b7edfa6cb75f2f936eff61542e3e93540936c918f78e74cd32e92ec83d718574794ce2c7fe359dafd010020e6701194986d7a9b914c7731113bcbf81cdc645fa49b57d196131a069a148f7b0000052c8b6bae80df1392394703f24ca14b7b12746fa52f9e25cdd42a155e1adbb123eaeffebc9e79ed268a8b96689c3a223b27a0b93f746b2c1dd9bee3cf972cbde95d567c116384ead95d6b5e8c68b3608d33c58a66ba9af92eb178eb9db83042d20e93064c79808b1052dc8b71a35193da45a99b0c5e637cbc588fe7074e29de8a78a1cc7dc0c99c577590cb0efe6e3763045ebf8628988d37bd2f0b89d75e074e0fa598ca53081296c873b4bd37a21387a94748955c5a29a3129c0f2340bcb45d9bdbdb921a3bdf329032d7be8b429229371bf231f6a261601b196280134883bf272da0be311a08a29affe4e6dd176aa2da71d7aa67e1a1576064c3ca1a41a59968cf8a080e827f2f4a98d8794e1baa99d010297c875cf3b6d8671534df8812d674c6d802209d779cffffb3f3ac9a00d2d4516bbd90f9a34a47c9a0cab2c3d5956c452851eea2b2e3056aa7fb27fdeb77fee550c4cc652e0b3cbe979cd5d1147224aa22a341db029181003e64d288509f1d34b3a1a411c6dc601fd7013239216e8c7f801927b627af422e94e3337b34a3f3cada6e921caa9661bb08af90e87cb1f6a4001584eb73709c32d2808930a2e3fd721351fc68a95ba050e29ba03b8c6e91587ff83754456ba8b011e267494b54b32cec359481dbe070041bcc7fe85f0c9d411543ddf444fc12a9e26822fd36062363d090dfec0c26cee49da915cee8493fd72a652b3ac0242886ba8b9a4c3b663c3c1f01d098c1d7e579fb52786840a316c7a29853028dd2236274f45465c6b6293601a8ad7877691e45078cef896b679e4931b2161ab541d685c3ce7a0b62c2ee466b6da6788b7db4454a0fc872ee2c311c2467c45e35d1ebffedc8cab0a2864c5395a8eb362859fe0951c7c97905c502ffef7277a6bb6f2684ca4e5e83bdbd029e30a9c856059da8327b08d084a919e5e320eae6cfc6085bd5e06782ae55fcddeb62818453c566ee9d761e0f35179aa621b00aed80ce45525159341e349bb81267a5d10c59b0dd08428887d5961180496849125fbb4bd909f63f914bddae3c87c6c0eb5054d8bc3fafeddf923b2a51c049b1fe194bb6f7c182db6a111aa439b66ee0c9e500165d484285e9160bead7a837e021949a0297522798e195eaf741f83d6823de52dcdf0b3eed577a16d0d6f7344845bf1ed3d6a59c8cfe5cf4e1c2b9c5cdeb3c4d6b7274e4ab0efcc3be2a55e92196ae8371e5a45bf3c213dd115d284edb37e35e1047d66998f7a321fb382977903f1783b447e66ba6ae539862dbfd4dcf17fc69940aa040caa408a70318f8a9d2eb07b6dd19483089d513d43c2692f61e9b441228830d02d38a8098eff5c8b6ba060da177b47eeff5b4e2a1d2a275afdc50974cf44a64f3f489b0122ac2826a9a876319403a8fd7385a631248c6f2f56533837df7988ba6ec449f6aef53ca7c7f8d704c084c811c93d59ca1369fc14fa0eec331881ea386fe57edfd92cde596cdb587eca42dbe03e5d3ee69eff43ee2caf208f402538895f2683b0b57c85107f60c22a8c89d85b60f63881d4b758f68cb3b9ba623b624ebeca03625b474c72b55d2c249e3e1c4298244ecfa3281d0a784b9bba1c7bb3f8215fdc5830154b844f5070ac50faccf2e5655f46bb62bc9af4bc6a9b7b28eb15ce0a82967871bbdf379ee9402b6f4e3263644be02b74ff1c097f9ab66b91d22ad5d0a9862033064b883a892f58e1f77fb96da11746adc9f631abd64fe5c987caac96883494e2f1cd4afaea5e137a6a9f36f2c960a3c0705e90369365bea6541059f59efff093a4dc601b293e2c5513ad5e57fe9ffa3e69d4f789d061990836b985e95cd56631198250d74185cae129c265107bb020020391acef6079a8c0ce3fa1052d4bf923964b1fdb27a021f512cc5d4255da7b048000001bc5247e7d5f47a27a6f476e8d16da649745d50d31bfcac5b537db5e2c20ba5d6475638c6a1b2fafcdd21e483ca63d1c2d53da56c4e8ab4ffec66730e15c012b92a5c441b050604ee02565028fed8c76d73e8b8d4ccbccbb86c8dfe0ea9e4b17abf95c110bb93799eff110732fb0555d2b75ea44a1b10e6521f1d394a6d0231259d3af235111f8de073b706d195a8150d27b6997f1f75e11c8949f23164249bad6c18b503e1f72060aecf374cfe0e41b3aa26979e2e3ae9c817c15bc40368ccff7144cffb0cc7fc30a42de05e5b67e790702a00ef3576331487b8d791847bd010c9eea522d32192ab55971ad5aaff3a8e02ea8de698f6a06b27d9b8fa1b2517af492c6df768a62115426ce6e54bebd4b2cbbf963e5348871efa820be0e297d14bf8c5942f899023c45282c8fa11837c87a8e7a68c92fe58c7f6f9985ea00932ce95c1101179e77efbe5bff2ddfb18fbfaa7189c6662cb81a98f509daec26e34f25cdc8fec194270cc6654488d8f5d3bf6f3f6a17479c7e369c9eff25b581fbd37cf1cb22c47895d205bf2efe72177f522b22345c36e5304028a35dd896731bfbfd332b9f68aaa544a8500e319fc3fada34ad9d7138cb3e489f1a75e0faafd5669008eb774b8e610c9c4f8793eec0000000000079a12000000000040f9de13eac2e247e629b0d269fad9b6c9764181de51e73f7ec6d530b0e7c4840bcbb92ede7188888a4c413f3154ad72bece893993eecd7b19fa4117233461cb84010020e680e81785ab96c975e7d5ccfda40fc0146c6890754afb06e45c8e86d1f632550000052c1f30516103e98c2c252e53509048fb405ec3d245e57c2ac126c3ba4914e24beb4bd23b6e9dc6bc39399b1e35636eba09ad0a5cee450655a32d2c8fb219e117bfb052d7017139307ce4c43ec4de1f6195f235e6f1aed9a884531dd57e453724cde91f16880e7ebb4ecd043020a4d1168117dd5c96fe4857146c8fa9a0c97ad7ca842a627de5399add0615e37d6e52f476951bb96cc4ce1b38c181bca7d8e7db1b4af891f1672e92c2d51a3d02c4de8a4508997a7e53d6f38610adfd1ef245640d3ecfbb5791cdceb665b6294b0c4ebab654aaf272e080aaf71e0ea624d1cfdce45b676749b3bc029802c2d7148af0dae29ba4522060de51a256b381447770adb1aba863a55cd44c29e9c95935b77b95b8171f042f45a7909965ac4aa999cc22509831231f73ba8192f54a50112fb04d71756c004f9e5403c47fa9b1b1c667bf9d6be709d24b3ec4ca89bc15fb1fbd9ff9b52ad18dd8b2869b4df16785ef5b952f3682af6dc215c08e9f559e602e8489de3737b08881d121bd2caf5b845d469a09a9fd30e3cd4b5585b948a06f0d4fad466538be98243578eef9833a0a0f1431d5e10646c292414ef32228bfc82b315964189f3cdfecb99e6a218c84ac7cd219d4f9d3cffcdcfd1adcdd027c689579da31146c82620db13a8aaa559686bda8aa988572c21c0b73914be121ec847036f1cf78ec085e53449cc68c09276ad38531e80c5acb7b1ef0240afcae50166232f67385db67b5abc9779200956709f7b6b2125a66fe77dfaa6abf53612cdd04520efe40a994362d304ecf60de883fbd037330d93673a41e17bbc8e37298120bf5bedff3952bfc9e82182a894c29657fbada6ca9a3bc8646578ce40cc7d339a941416daa9593cb1137858debf479eef23e60cbdc3c65f1008f3498a40684d2eebebd68306ef9b63cd68af8db8ba84e8ea0de75c522b56703097aeffd68bad1a105b160fa1b8e98d67e1055a728f512e0162c05595e18ff117537ebdda7942cc017377d5c1c73fa3f78df57489350dff469c9edf9255c924bd5d3f49c53d27a1fcf37a3fd3218f4ecef227b16b6afe5bc11724b9a7dad728db897123f3519881a638bc7bb024a090f558795216d187feb5f7020b092c82cdfc7f6cf7c7046af748fe3596b54538c84b63f9e9c71c92c1be0fbb73e0ea79e6bddefc20586ee7d4456e5a098975f52ebfd934992956260246dffc5e6c122cf9100ae8b0c48bb3eb1efd99fb207cd2ee58c90df97bc11ffae19ed5e3f8e3f088fb3f2b1db327c10716543f0f69e14f90b4e520dc051ddad130eb90634d11911be780db4103e986a26234dca125491c26b0fcb998b63d9eaf11c3aa5397115772fd810c000a24f0aa6b33bbbf92fd6858485eaec43011d929e9f9fa807f8bccd689dbc970130a66dd03de59182d5d1ab51d675cfe91b311816a820b521936752d0e25b2b64540e25665eb8f7a867f5f9b558ea2eadbf2abc58b81062163c42e87359938c644f5dd949aee9b943f85b34e350aef93b2d07c3a7dc585d2aed4c73febca754a86d0ea88d1e9668dc2e437127a140c48bd579a140f8b3ef84410c9d8d058f1e1c6510a1a1d3343d10d9c4b46508aac84a7142564edc4ae85388528cc3dcebe5b50b00526f6dc3b05ec62060dece4823ead3fc65aa2e31e9bcda6a98d3dfaf9f6c1091bd3f60fd95a671335292130da81cac466b6aa33cbc95e0ac2ccbfcb14119529dc2dc2d5e2769144c1033b59a0c4ce10b44484774b8648fedfe535fb6a8b79721eb57dec73118d9f71383c4209c4b82225a676af2220b01e9bba8290507d52a7f0b20cd15ebfa40a15b5fe61b5e11fa41fa24ab9a99e141de5db63df5b88a80a7e5020020b38f872674b6d8865a2efa48c879df94e6355ddb12fbcb80384234663b07b978000001bce26bdcd1f675fbd84712baf10331953b6a8d455e6fafaf81c2d96c25e89635104e3649035df535802fbab0efe850596cd4a605fddb9997127e69ea827d472bdadf1157be8c362f0e2b1cc2f7294a56145a8e92e69d1ad354b384c8755164e7a4c498d5667f5c813fd66ed626106171228cfd20214842d9b8b64aa0c184185c0860f1951d6741de12c1fb53fa36a7e98e8ae1d542c4191d83b6d4f475b9d99c4a29779f8d3163eb45d994165e6d6a5cad8abacee30da17a8e7eb9591518c816ccc3c7879f36ffc3d99d00d600feb5441578f343431fe29570a9e11905ec957be50985fd70dac9c708fd2579769134973d9d40fb49185b7699da6979ac80abe93280bbec4786cb3dc0f2b13a6abdb22e2ec52953ef145bb568c5750768a9558e38b2c14ce602a72d149accba05ceb58d47958d19d484a99f3c73e6c1c8937de0d8da9c4f16aa01325e4f58182a06606610b084b57e12ae01fbe3f2608ed436b88e4b2b24bde00deeb9d515a40d297355845b6973d0ba9be3c41cb8af718313d2bd76cdad9aabe1c6aa8437fdfa3a50fb5ed4bd0d0fcdcde12537dacb1c672eaf4970e76b69f62d0914ff9b8e5a2e510d69d752c0ab2d6a41c1d83840bcfd9d683db6b837482ef5280a47c740090000000000079a1100000000004036098df74d316899430072716cde261d995e78d986b39689b39e765a5b0ff64ce8e56034bd7bbaf7667595b3f770365c98d8e94ba0488a3d9db9374db747c70301002017af03f1e7759abe885ae88d67c2dc373d27385b2c06263d544c6a844880933b0000052c431f691fbc97528303416421d28a8e41d3febe0922dbcbc2eac1d06d212df609c9282ceea1a9a02be5e63d8fdbfa3bed77e5c33e768327aa03a48d3b52af4f9f6a895b3695995f1b4ffbab76741e4f852f5b38fbe2c484eac8719a2e0436c950131ba427b193f9c4f7439c8ccfa675714ab7a8eba0697946fd29917879c473d015ac0c5e3e2e06e9b6ea38e5de1121713e243f50abbe0eaa0f163cb6f567d27058444bf0b90aa6b010a06a1171356c0c7c878ea3cada6fdd1cd943c0bd255628e5d591501c6741fa40ae7293c92e3c543d9c897e8ad7967bb88b477e489df29d66e0a08dc0130c0835d59260f664b4771428bbb48a9a0b364d33747a7cb09a6218b4c4ddea33d814692ebfbe47991fc0308dae39a029013a9420ad3bccc95c623fa26667081d3e9cd134b9c0c4cfe793132214f6decabdb8bde7272159382ec9d16cb31bc99c18dcb31c6dc8e5244a8bf5e88d2002cbf3a5874557ebeabeb88e944575a4c9613310035ac18ab61c45f79e440956aef6bdf972af893f0a1e3ce471d2ad3aa39e4dd105349584a2656aa5ada8ca279014a106534752bb9ac97dbcf848b3f9e23798121e213b3ff1739140fe75a995a154edca11e1f9a8653afccc29e78d14e3e0cdbdfb553425d551edc5f003ae1f8524c3284d2cd06ae4e7cc79f6aa869a566a6a60f411d843fcd5dc8c479fa575f94b0613f1c5901b921ba6784da704f2d314ec4187c19e3665ee4d4595b53cab2e9c26085407fcebe6282c0c1249df1c8f321cd58ca667c4beea0b41f5cd1bf85d066b64e4d50964075f0076763de72885e6fc217cad6ca3efe88f0d7b7fe40a21848e8b8787e46918e0a71c6119ec7d1d9b08bfe1f1ba9b911130bbfbe4019694df03185c7ba0a4af08fd66cfbbd64456edf93450cb94263f92512f42b5db537f3fe10fc6a06e7e816dc319afed35a01ca0db21320c67b42842433be47b9eb30bf5ccb0721040298431a63682a9e5833cfb4e6a3cbdcd8d3335e01c74c3c0bbd1acd1c3b3a1d630fe4b30af6b63cdf928012d06bad4cca19083866ad1398fc0f3b7186610fa76487bb1973829fd2faf53a3085e460656285f00bedba422e1ffa55a46fe37940fc35a1bbb060ed39f8b32bf72e61a017816fca459676f017626718c0f8dc0736d16aba6e83c754e0ae3148d0af49ada37c1c7d30bfbe9e83e8a38e0dc687d3c1413bc4aaf44c14a59ec75c49dd0872d299d4dc066a98f7d907ae4d2ccd9c93196898082330a484fcd87332d471bfd65c60dc7ae600c9f3148238ff1bc4913238758d80c930273175356f023fd86bfd959065ba8893d205a716e8d141f13ae96f567a5731612016c1007aba6d91a4ebabec1641e8f4fc4da97e38cab9997aa949395ba711c7c9908eb21d23779f2ca4aeadb2af159e7b123f118a01955591198732ceccbcf1c6bf9a550ad9b9cd1ab1e749ae35dd1d297c21fbbc64cc82d4a045ea5bbfa42a99441ed097f309783836ca5893d8ded5007828f622161876524b6074abd1fa3eb41aa7b2192f788c76071a0e5c1840e8abf3d7de6d51947fd79d72fe101728817784118c43039e0c97053f6f0dddfd194a874fe5013f6ddf9704e9a64c56316e1ed0d830f2b527935005a9b99f91262e34220ed7071b327fa19dc9d3cd354cc9088d912af2ccda3ace394d19f24569eea5d273cd5c3754c53e659c4086aa266612bcec4102a1c4242e4655aa4d001977f9d0e29d8e1c51bc61136cb9ac55ea19ae9edd091ff2d3e28950bf714f0df3b9246926e45c9ac0a5de9f32aeeda8c14f28f1eeebbf8d73a13de3e010f3c335fef659bd774a69b92670b47ba569339298c6be8ad3f6b23b9766ab35afa02002086c9034ed1122c4249e00d59dbc3a24fff0e4ca217cfd83e75c0e12ed40ccd31000001bc0699ccc64cc86f9e03b3ba41e32ba98205a70072e3dc90704d722ec87883badfe6078fe081345f51dc486038552abd538fddd1c14c016dd8f4a1a301ebb9ee232bca18bb2f6706ada83d3b9e493029a2b0ff3b72d6b74a92290b1420041a4c55754ebcb13be131c40889ba19f332c81be136537a0ab56f911f1ea1687f80e5dfb33299d41a3f8797bddf91d251c58f942f53e856ce75262763b3726cb6104af6c398366f586e52534010ffffbff16a37c2635bfc162d32d9a28f85ce90ce9edbc391f35d503d3cfdb0e9ba59ac0cb2b303f98a93b4feffc2995eafea99d8bb7e6f4bf6c2d3cfb6becb9d7c88300a203c86f5133ea5642ada7959c946660dbb6c1ea2600a6eea7690382b7a6ec5cc36840f005ae746de9e2d844bfd761851bdffa3ae88202684422d2e044bb1e499b6de6bacfe6157c239d1c0f7ec55d0fcac7c6aebf6f7f3aaada148a5705db6fe12059bd85a9b3b1ca4901bd56078873886bd6cdd39baf37ef74b130ee1620f792c9d1c36d7249368dbf3dd72fc35e36a57ca4cd4e16e84192a9d773c1cf4e3b9ca4892f0233bb6be8b692698376ad8c5d02a998af06fb59b2b299cea68492b6de8c4c63b83a0ab221e6664fbcb1cffeab86a552eca45633c8c36834c5fa40000000000079a11000000000040cae7511037cac89085f731e795835d15f42d5ab1bd281fc233770d6360ea23f62a4796c27dfcf0947ade09910bc0fa90d9b6e2f84d2b5118516f8c0b97d5d01f010020d95cdb416147f5c6fdae8d173ab24dd2985097dff353a860ff113c7af3bce6540000052c59a0ba54445b439a1309f7f2ab1dd847c0c839cc6ca4b5df033974418793b35891ed00bd7591621233fb54b012552c8c06a40e3bb38e3872908086cb5b9c94c91e905236774e83d35494e89de9d46ecaa1bba1dbbf45e009a141468c284662e4286b4e97323e59ec8b383552cf10d3e85d7cb03cc6cc66e7be3adbafd7516d3452fb43ddbfd5a2d31abd2b0fe22016cb3f69315f71bd6cf5859dd15f8d58c1b57412226af869a4c4d4551bb4392033044130e0d68833d6e86e551ab180cd9103e699654a9b34fab472f74bf667c7bca0346177a7e096247762b2e8af95106627a7647b721d48bf1116a48097643c7f077cb35062a456439fc7b76146a4194b980a18f6527ab0b9358107d6db3c6f0314a7499c654b6ec44aa27a8f036452937179bfd92cab2bd669ac18e1bb8cdbc31f8005a6a4964be0f3253844a42e8642ae0f1232e2fc33f3b0d0d5ece9239bf6a150aae4b165600663766e86b860b2231b6afe013ae0f110b8e6fc07791e31ed5fd1d29deb38bb8c3db176a2cf8012292f6aca8560e8d7debd6d6562bdc48d2a6e50bad1214d60c34503bcf654292643f0c25c4f1577332303d29da4eb07f2fdfd39258dea9b7d2127d2d56d7c1cf7f7efcc67fb548ddb34eb29c3bc296e6ada963dbf3e57de58b35eb237c9e3913582aa94a09c9e2b19b13249fa41a6861a7d7b05838ddc0918770cdf06ba6fb51d49555a694b6a8cda8fb34b4640af6a0e0fd45f0e2687a54e3e9cd223dfd14961feedc2df8d7deba78e0f5d14edd78fab8d8afebc8f8a3e6f8f9bd0e4d298044c4557214fc82879a9ca5a6c018f7653b25c6257458e33149c3b48d03832eefc1772976378d6d726199d19671e765789322764d090df3c4ba6b1e418e8e4f51e1eead77d678cbe3db1b9cc05f0eb643ddee6c4b3ae9137070db05c426f73086ae2fab54c4a4c4cede871e948a2b27a469f5558bd335a06b235a54343602dda4aa6b80c63ba3f88cd411b7058754370160fb8768988a51d08c0776b88f57ce2aca5ec600e08b8bf68c730aadfe69efb42186c7d3abc7f2b45b04ed38762790bd0c5aefbfd00f4541de63273e01863a35681cb7f739159b7361e4f48cfe95dcdfa39a55603f75572f056d2147488bca84a1299d44c9146c196e586b2027626c8cc3ea5bf81a59c4d29d5b918b289343c7d7eca13ef0e6655a292be9de2f2fab88185ed6f8bbf6c4df2d37c708119dc80490ba6b5c309245b09569be86661b1f555c8a2bc342a70726e89cf915ee36bc7df3ead83864522214d456492c9eeb234bc7254ddda00ca8b53bff600cac49110aad846874483ea5f3051eb13024fa3db54ac7c117df37558cb1b0fed65dcbee44402a58624054b57783a8699fabc5f66e6bc81c8e9978052838cdd028a788d0ae315d5f47c163d0395ca558e7f15d899305526d81232d722f67d20d1ea85adf7a27996f56a4d890d761c529f8007ef1fb47bdb4e77a1996d59f559ec05ea0d7cdd52e747a37bc4ac104430c6d8bd7a7c359925968058b19db8e5a3d929f0bea901ae8b1beb94198b1036f674695d30a17b64df6ccc3151871315a31397efdc0cb48aa4d207bbe0c9cb93c751e5cd652768c2ecd58dc8e13f20e6d27455d6df5d378389cf18fec79df3473ceae049d39cc104d6f7819d38c235d33daea4f4dac4558b2da372992f98cb53d0138c45c0272ea829200a1c4c1ec1fc74ad8752ca6d3157ff92a45eec5f51717f13bbb4c896e19731a1a72780fc6a8936ef8fb0caa998c94d43fa6500b7cdb5cdbe4e6b0edee9123fd0c2695f5b70cbbd34764c7adf5bf6aac46eca653479e11e66b851bd27f978691b9f92dbaed1f9edd5ac7dbc6f0200209c77ebdaea95858e14bf157e4be5630ad8189413d253923340f02541c543bf01000001bc5edbc57344427d65dca806461fe882b45b8cef9fe203a2abf5f79ea4ae2217e9da35aff196f0454258ff0826312947beb005c7df373d70787106d988264b7a7dab06285dda1d226b788f0254b3b347a9bbb961062fdf8ef876220a20082e55b04442b6ead8f9475659911f1127bbbd47f4d2929d76f27bff4a363a03ef47d313d5ac9c40b7f189d8c81a7d56869c4ccee5c88bb0ae9f463fdfd0745ea81b610b93a8fe41331da1b1b7eb4ecb54c5985e2f13f1a9a1d7387f5ef57be65eef644ee44654489e9b1b8caf4b7396dbfb129849bfce26c2f4fa9ffe658262ff2cafbcfc64073cbded158544ed771a09ffc115c503b3cd7fb18ed7c8bb3322b24970aca7f04f9062772be54c52a359a4b5254953e6b3d122e7a4dea45ebecc0582db3bca0348bc5573c686d25e34a54e0b0e66dbb36eb5820aa62b1b0903014b3b5b5ce1a4d66f39295344b5a8616e6ae6bd8f076c699b12ac154d559971d44e9b647b9b4400470195db35e3b501491d222089c1d3f0804b4cc7b0f7e0855060d4d33b931850be666c348c5501b500f565180d38365206c425c049922e91b771074142650cd748e95155ab4f1eb55b9baf3511cb35acdc0c78b52997a66258", + "outcome": { + "outcome": "read", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "ids": [ + "018ce3d4c29c59501069455f10144e60", + "02ac8210891e152d62c2673cb051f348", + "0a257ff2431574ab1a615c00d74eadc4", + "11d99c18dd9a0c505f13379e4c1ea37f", + "2282e6a949bd8ea3a8d0777faa9c3cc3", + "2642b5ef328ccbcb4158e53c9ba201aa", + "291177eefccf35c5fe6ad8ac24d827f8", + "2c51eedf639de31fecaae7df9890cdc7", + "2cf06ea0858f3b84c2f1b6cef9eb379e", + "2ff25df49a3b6cbe82cec68296d5c310", + "31935f45506e43228ff567f8846379ca", + "3276590b43be46973df2da6cfbbd6ad7", + "3d84b8e38ce9861ed97804affba3e162", + "3e811398082723e0ecefdf35ba31ffbc", + "4183ab0f65080b969c0cae44e8e31383", + "46e33bd52e70c0cad080aab093dc46cb", + "494c017f6572a53d13a069c32179bb7d", + "5fb48f992ada397f2acac6a2cd587f5f", + "6138a2d1720bf553cc215cbc2f153d56", + "6ac5f45efc2aebaada41881b5e978eb7", + "6fce5d51df9eddb1ad0c5c81ebd03de6", + "7526b0f91818006ae914e27ef5a27983", + "7b26e5f8998d87df4be0063272f9a4b8", + "7d9b51b49c6320c54730b8896dbe7f2a", + "8414418d02f95ea3aecb74067a9ed384", + "857be43a3b7c03d72eb3b735cd3ef7af", + "887dddfa841b3e870db8d51a190cf19b", + "92333fddeeab6da144526bbe30e5d152", + "97409d8a09b3334f9a836aa28435d9cb", + "9d8925750bb5300d2fde50e6eb86c430", + "a0f799425b823f0182363610d184dfa5", + "a9344064cb5aa16a380e784b3e99a3e3", + "ac1ae1a720716eca8212f0286087ca6f", + "ae69e512a4476acd5ad2cc7d22fd6a1d", + "af1144365165c6528693e1cef65cd698", + "b40d934aa97390015d10cede33459c0d", + "b4dacf5d81f57d9c8e34bdbcd78f946e", + "becf6beeb5cca1f27c2c231f9210d986", + "c26fa81954b496e01eb8b2b6d82cd34e", + "c365d985dac103650b1b2f4e65d5409c", + "d6cb42f9f8040334b95b4730298de789", + "d93709372219ac824454d2ecea1acb9f", + "db7d28664da14468e2707a2cd402dd91", + "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "e04165ab3dfb9c521f9b579af5f90c2d", + "ee803408598ba0ec98c67ec83d4471c8", + "f48dcaf73ddb58091658bd37f941ad64", + "fb1d846a5a82d98e127655f9833a9e58", + "fd5669008eb774b8e610c9c4f8793eec", + "fd9d683db6b837482ef5280a47c74009", + "ffeab86a552eca45633c8c36834c5fa4" + ] + } + }, + { + "name": "magic", + "about": "magic WIU2", + "bytes": "5749553201f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070861323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e102975624767de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e8a46aa27e1afb55328d8fc4fe14a8df20000000000079a10000000000040259e85c0e86dcb765ca323761237abe0bbcd933133483037f9155ed23546af880518ae12f293151962697cec36b0b4fd51821c719a0e00c6086b28f8a14fcb29010020bfec6323ad7b320a11ca38a986b4f1ea20a50cd4520db9c2c4ceee8cfcb19933000001564d1139ab6326383f926094af1210093bc9126207b7c2eebe7dc4c347612c895cc49d59becddbdb281490db214734efd6fc05a2604287284ae044cec4ec53fcf5d4e99c53517011659991e27fa8a43b0cccd6970ce0222b9a013d541a661f0539b81ca6a89514b24596f560ccb48d8ec2b0b6a617b57553058efb36a7bbb5c65e78aa271b28b23df96beacd08c15643f6081fd89caf0df378590c44bdff06130ecdd9876e2e5e4e08da26ba5d05cd544da34bba3615e27dece62b517956f092fc3c76dc9d715f3d69f57bb8993c6d3386c15f4d1d2f85b7efcd1ddb6dd3e1272fade02e31e7fff53fb5bfa350840b86ed950f6b60ee9dacd24a60d7c140cb176f2830851be48e0339d360926bb7f92e1339f111ec78d1a5044b613db4631548fc193eb2e0111997457fe328c200795c16255570990a6bf780ab6d7c6c98c4865964741c17e0058e407284f7f39bdf68b7bf23d8ba281c020020c821d5c81a8e66d74284eadf160ee0dfec0e0e478d838e721467dae4a2de242600000056355ef2290455fec20a5af78843c6db4ca37dd2b408444f80d1d78764b2ab52f50651bb2efdba9aeae2f65ca10b509ab5b53ef9c6f2449da72400cfe056825f05e9437f451a7bb4a9c428e79370e002db7f7f8f71b9e0", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "version", + "about": "the three reports' file at version 2", + "bytes": "5749553102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070861323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e102975624767de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e8a46aa27e1afb55328d8fc4fe14a8df20000000000079a10000000000040259e85c0e86dcb765ca323761237abe0bbcd933133483037f9155ed23546af880518ae12f293151962697cec36b0b4fd51821c719a0e00c6086b28f8a14fcb29010020bfec6323ad7b320a11ca38a986b4f1ea20a50cd4520db9c2c4ceee8cfcb19933000001564d1139ab6326383f926094af1210093bc9126207b7c2eebe7dc4c347612c895cc49d59becddbdb281490db214734efd6fc05a2604287284ae044cec4ec53fcf5d4e99c53517011659991e27fa8a43b0cccd6970ce0222b9a013d541a661f0539b81ca6a89514b24596f560ccb48d8ec2b0b6a617b57553058efb36a7bbb5c65e78aa271b28b23df96beacd08c15643f6081fd89caf0df378590c44bdff06130ecdd9876e2e5e4e08da26ba5d05cd544da34bba3615e27dece62b517956f092fc3c76dc9d715f3d69f57bb8993c6d3386c15f4d1d2f85b7efcd1ddb6dd3e1272fade02e31e7fff53fb5bfa350840b86ed950f6b60ee9dacd24a60d7c140cb176f2830851be48e0339d360926bb7f92e1339f111ec78d1a5044b613db4631548fc193eb2e0111997457fe328c200795c16255570990a6bf780ab6d7c6c98c4865964741c17e0058e407284f7f39bdf68b7bf23d8ba281c020020c821d5c81a8e66d74284eadf160ee0dfec0e0e478d838e721467dae4a2de242600000056355ef2290455fec20a5af78843c6db4ca37dd2b408444f80d1d78764b2ab52f50651bb2efdba9aeae2f65ca10b509ab5b53ef9c6f2449da72400cfe056825f05e9437f451a7bb4a9c428e79370e002db7f7f8f71b9e0", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "ends_early", + "about": "the file ends a byte before its upload's length, every report whole", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070961323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e102975624767de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e8a46aa27e1afb55328d8fc4fe14a8df20000000000079a10000000000040259e85c0e86dcb765ca323761237abe0bbcd933133483037f9155ed23546af880518ae12f293151962697cec36b0b4fd51821c719a0e00c6086b28f8a14fcb29010020bfec6323ad7b320a11ca38a986b4f1ea20a50cd4520db9c2c4ceee8cfcb19933000001564d1139ab6326383f926094af1210093bc9126207b7c2eebe7dc4c347612c895cc49d59becddbdb281490db214734efd6fc05a2604287284ae044cec4ec53fcf5d4e99c53517011659991e27fa8a43b0cccd6970ce0222b9a013d541a661f0539b81ca6a89514b24596f560ccb48d8ec2b0b6a617b57553058efb36a7bbb5c65e78aa271b28b23df96beacd08c15643f6081fd89caf0df378590c44bdff06130ecdd9876e2e5e4e08da26ba5d05cd544da34bba3615e27dece62b517956f092fc3c76dc9d715f3d69f57bb8993c6d3386c15f4d1d2f85b7efcd1ddb6dd3e1272fade02e31e7fff53fb5bfa350840b86ed950f6b60ee9dacd24a60d7c140cb176f2830851be48e0339d360926bb7f92e1339f111ec78d1a5044b613db4631548fc193eb2e0111997457fe328c200795c16255570990a6bf780ab6d7c6c98c4865964741c17e0058e407284f7f39bdf68b7bf23d8ba281c020020c821d5c81a8e66d74284eadf160ee0dfec0e0e478d838e721467dae4a2de242600000056355ef2290455fec20a5af78843c6db4ca37dd2b408444f80d1d78764b2ab52f50651bb2efdba9aeae2f65ca10b509ab5b53ef9c6f2449da72400cfe056825f05e9437f451a7bb4a9c428e79370e002db7f7f8f71b9e0", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "empty", + "about": "no report", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e00000000", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "unordered", + "about": "two reports, descending", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000004b07de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e61323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e10297562476", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "duplicate_id", + "about": "one report twice", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000004b061323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e1029756247661323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e10297562476", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "report_truncated", + "about": "the last report one byte short, the length its own", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070761323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e102975624767de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e8a46aa27e1afb55328d8fc4fe14a8df20000000000079a10000000000040259e85c0e86dcb765ca323761237abe0bbcd933133483037f9155ed23546af880518ae12f293151962697cec36b0b4fd51821c719a0e00c6086b28f8a14fcb29010020bfec6323ad7b320a11ca38a986b4f1ea20a50cd4520db9c2c4ceee8cfcb19933000001564d1139ab6326383f926094af1210093bc9126207b7c2eebe7dc4c347612c895cc49d59becddbdb281490db214734efd6fc05a2604287284ae044cec4ec53fcf5d4e99c53517011659991e27fa8a43b0cccd6970ce0222b9a013d541a661f0539b81ca6a89514b24596f560ccb48d8ec2b0b6a617b57553058efb36a7bbb5c65e78aa271b28b23df96beacd08c15643f6081fd89caf0df378590c44bdff06130ecdd9876e2e5e4e08da26ba5d05cd544da34bba3615e27dece62b517956f092fc3c76dc9d715f3d69f57bb8993c6d3386c15f4d1d2f85b7efcd1ddb6dd3e1272fade02e31e7fff53fb5bfa350840b86ed950f6b60ee9dacd24a60d7c140cb176f2830851be48e0339d360926bb7f92e1339f111ec78d1a5044b613db4631548fc193eb2e0111997457fe328c200795c16255570990a6bf780ab6d7c6c98c4865964741c17e0058e407284f7f39bdf68b7bf23d8ba281c020020c821d5c81a8e66d74284eadf160ee0dfec0e0e478d838e721467dae4a2de242600000056355ef2290455fec20a5af78843c6db4ca37dd2b408444f80d1d78764b2ab52f50651bb2efdba9aeae2f65ca10b509ab5b53ef9c6f2449da72400cfe056825f05e9437f451a7bb4a9c428e79370e002db7f7f8f71b9", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + }, + { + "name": "trailing", + "about": "a byte past the upload", + "bytes": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070861323382e609b519416730b0fbc25ec70000000000079a11000000000040b11637dab1c862f5466b5e522ed301fc33fba6c417a24609909d910163802faa1924f03b0b5f8875e53c907a8d4b2ddfb625c36b540c99f9ce2707f5518e6d5c010020fa0f44a372c82f92cb70f013a7c7cf54a712e10fe627c3aa4f138a9a593f4a33000001561c49360ff40ff2298a2eb17104277c6cbbfab1b00d5ae71b7d7363d4a2c00085aa0d2a0eef242d707976e62cc119b8603d5728b532219aec7c6fe622e4e670817fbeb9c146b2e405902b61e1d5105a7d871a13ff43ad183568154ef582f158994e0eced73c88eeedf76ad4264780d331b39ddeed192dc68129b27acaa1626b2273144d1087262b49c4a6f5289a3db45adbca4d3fa71c76edbf8d337f7f117e3f174a9a9a6bcb2f33726c1c1593ef49e164ecd063681ba645fa381622a473a8f3dff225ba739b1b416a95979499eff610d10c85c7049a9bda8ba1a4599e9d231c4b55cdf1a7b8b789625c66a8b8f447b3cbd4a8b29fe296df29e90ddcbde4341a61a974ce4ca72f2d586bf09e73f9025c5145fc9f42270de41fcfabd7d5e2f2e9b1c8760f103b1d7702094e44cff99f32d7dd3ee34ea342addc02ce9d5a1fc02b4f675e69d50b44a3a8f240da324aba081221efed91c00200200d6fe9cbe5806bb5433209281ad306dc8ff546843a7df26c3778f2615bab5f0900000056f6cb1e1c982ecaa53207555009dd8f116d9bca6b2895cc71d1149b41ca8bc92ee20220bd45ab2398bc712de5040a4326df6a971eb73d92b78e6135513ba4580cb6b90ed4212b40676a8bec2c1763e917e102975624767de4d0304f6b3bfe823e78daadb4a8940000000000079a10000000000040f159eb796ab06f0b0386ed30f6aac2aadb6a7ce16e3f9d6866dc34e0ce3a8a4f6eaf2b87c4297f9ff2365e18def36088bac0f85f6747bd88d5ff648ef75fddf9010020c0ce2f35912eb7f8af7ee759b75ed0317f039c8fb3d9c921b9ee26505528a64400000156a9b06e2f00ce3e572b1207677f8a5dd578f5c6d5f1ef2b9f9863a0319afa3f3cacf92b24c4d1117cc158860b2a677d7f6e7459857ca5257762ef27bf48b46269c89cb208f86ba9e0cd4770ec75280da979f16a99e73db9207f3d8ce4f1a45ce49c897cd84d752f25089edea5739b018131f3df74eef00bcbda3b2be8cbf8cd93844bd84a01fdb39e3625397114965da43ad92a6f02700d803225e64359eb2a2c34593ce5253f3220d2ce456a517bae361430f8b756b9493a4fa7d52147fc86b5f1f6f509dcb2e0d39f8ae3ec6f5ba2cd4a5ea0e598a8ae646ab64408fbe74b23799872bd14760579ed1848ea6076aff099f68824a8c30b4ea52048bd007a2f5784f40ecd754bb3507994b21d2a56797b0eb65541f6044b064ebba99452604f8ac6d32b58f583c3fa616caac31dd352b1139a89c5712de45af8ccdeb47c1fc2449ee9c30d7cd2c6acf1a4434148db6502a2e600867b2b020020bcc4dc87a07c8be652a5cc428a9a212733d1d02db66eecaec330aaaab21ba25b00000056709983972f7355d3425fe94eef3d0d759015d46d863edda6714a03c7a962afab9a1ff6fb2e116309a5e7003c2ba6530a9792f08fc9a8b6c2b78ff5f85726a34ed866e6a2bacff5f65d50188c89a736c0e3c9e8361f1e8a46aa27e1afb55328d8fc4fe14a8df20000000000079a10000000000040259e85c0e86dcb765ca323761237abe0bbcd933133483037f9155ed23546af880518ae12f293151962697cec36b0b4fd51821c719a0e00c6086b28f8a14fcb29010020bfec6323ad7b320a11ca38a986b4f1ea20a50cd4520db9c2c4ceee8cfcb19933000001564d1139ab6326383f926094af1210093bc9126207b7c2eebe7dc4c347612c895cc49d59becddbdb281490db214734efd6fc05a2604287284ae044cec4ec53fcf5d4e99c53517011659991e27fa8a43b0cccd6970ce0222b9a013d541a661f0539b81ca6a89514b24596f560ccb48d8ec2b0b6a617b57553058efb36a7bbb5c65e78aa271b28b23df96beacd08c15643f6081fd89caf0df378590c44bdff06130ecdd9876e2e5e4e08da26ba5d05cd544da34bba3615e27dece62b517956f092fc3c76dc9d715f3d69f57bb8993c6d3386c15f4d1d2f85b7efcd1ddb6dd3e1272fade02e31e7fff53fb5bfa350840b86ed950f6b60ee9dacd24a60d7c140cb176f2830851be48e0339d360926bb7f92e1339f111ec78d1a5044b613db4631548fc193eb2e0111997457fe328c200795c16255570990a6bf780ab6d7c6c98c4865964741c17e0058e407284f7f39bdf68b7bf23d8ba281c020020c821d5c81a8e66d74284eadf160ee0dfec0e0e478d838e721467dae4a2de242600000056355ef2290455fec20a5af78843c6db4ca37dd2b408444f80d1d78764b2ab52f50651bb2efdba9aeae2f65ca10b509ab5b53ef9c6f2449da72400cfe056825f05e9437f451a7bb4a9c428e79370e002db7f7f8f71b9e000", + "outcome": { + "outcome": "refuse", + "reason": "upload_malformed" + } + } + ], + "plans": [ + { + "name": "all_timely", + "about": "three reports before every deadline, no budget", + "task_file": "open", + "stored": [ + "c356516c0109dbba9f248bad656eb6fd0000000000079a120000000000401f93e205dcc73ae51c3fbe2c2fd31d88c709172ea355beafaf96a39d4b4fcd8b0ea4fa1ec4855e1f664ad0ec94b9de8dc290b3a996b7cac0f59dc11109f2869c010020cdd735a4e778010c490fd5297b46a3ace86dd532dc2102ada5f4d7b7f04d8a5400000156c27603716beb91dc3885acd620592d0a2cfdd02e41cfb393ccde3165ba1e2ec1d3d27f5f38a8ee441ce92a3e06643846af57ea69f4c92b86177526df1aa8adc3c925cec7da5c2f07c9025c2ad1051221d84b8bf843f894766e5340df7212f037b47745ad6d85f22283d7d9d13aad476e30293f93f064d15af16b32fae29c132b77de2b194e6f621f7df23dc9c201c6cac3d11623cd72b44eda6c7dbbcf376c51f5d294e1dc7f6433ffef9f63bb1d10d90badce885086eb739ae855daba3d741946d26b2858434766b07bde54b48a107355e6f30e8a1e6c3ebbc3bd0ee05e09ecd247ff1a5ace47e86150776347e30bed8504db25ff2ef02a27926d2aa6b2a564a82f72ce7548fa2de4600409ddc58c663009e2309f942970bfe3e32e687e23ddd3735b10ddf010fa016b4cdbfea04b88da99c86581d3f6c89a7f335bd25872a52b9f8daa289aa1584293ea85c62bca8d54c7cd7d8b3c020020deda716296e9c69fcd9ec96beb45430329060dfa7b4f1f3f1b2fcc5f968c1b2100000056d3d9950460222a94633f9e5d69eb52c45b657b66eb257297157ee8998825ce67ecf428c42d74edafd865e8b2e430714c3a870bc6147a7fa24ca9d6bb61bfef8044dd5d4a5647130a0465e31c3dad9c27039eaa6c5ccb", + "fda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010", + "58f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2" + ], + "t_ms": 1793491200000, + "budget": null, + "outcome": { + "send": [ + { + "id": "fda888806e7ecea58b4e04741406218f", + "class": "timely" + }, + { + "id": "58f19c69c9dbbaac3856e1363652509d", + "class": "timely" + }, + { + "id": "c356516c0109dbba9f248bad656eb6fd", + "class": "timely" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070858f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2c356516c0109dbba9f248bad656eb6fd0000000000079a120000000000401f93e205dcc73ae51c3fbe2c2fd31d88c709172ea355beafaf96a39d4b4fcd8b0ea4fa1ec4855e1f664ad0ec94b9de8dc290b3a996b7cac0f59dc11109f2869c010020cdd735a4e778010c490fd5297b46a3ace86dd532dc2102ada5f4d7b7f04d8a5400000156c27603716beb91dc3885acd620592d0a2cfdd02e41cfb393ccde3165ba1e2ec1d3d27f5f38a8ee441ce92a3e06643846af57ea69f4c92b86177526df1aa8adc3c925cec7da5c2f07c9025c2ad1051221d84b8bf843f894766e5340df7212f037b47745ad6d85f22283d7d9d13aad476e30293f93f064d15af16b32fae29c132b77de2b194e6f621f7df23dc9c201c6cac3d11623cd72b44eda6c7dbbcf376c51f5d294e1dc7f6433ffef9f63bb1d10d90badce885086eb739ae855daba3d741946d26b2858434766b07bde54b48a107355e6f30e8a1e6c3ebbc3bd0ee05e09ecd247ff1a5ace47e86150776347e30bed8504db25ff2ef02a27926d2aa6b2a564a82f72ce7548fa2de4600409ddc58c663009e2309f942970bfe3e32e687e23ddd3735b10ddf010fa016b4cdbfea04b88da99c86581d3f6c89a7f335bd25872a52b9f8daa289aa1584293ea85c62bca8d54c7cd7d8b3c020020deda716296e9c69fcd9ec96beb45430329060dfa7b4f1f3f1b2fcc5f968c1b2100000056d3d9950460222a94633f9e5d69eb52c45b657b66eb257297157ee8998825ce67ecf428c42d74edafd865e8b2e430714c3a870bc6147a7fa24ca9d6bb61bfef8044dd5d4a5647130a0465e31c3dad9c27039eaa6c5ccbfda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010" + } + }, + { + "name": "deadline_minus_1ms", + "about": "a millisecond before its deadline: timely", + "task_file": "open", + "stored": [ + "b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + ], + "t_ms": 1793498399999, + "budget": null, + "outcome": { + "send": [ + { + "id": "b6b78c2d00cf1c0c48072bf6d14b56b3", + "class": "timely" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e00000258b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + } + }, + { + "name": "deadline_exact", + "about": "at its deadline: late", + "task_file": "open", + "stored": [ + "b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + ], + "t_ms": 1793498400000, + "budget": null, + "outcome": { + "send": [ + { + "id": "b6b78c2d00cf1c0c48072bf6d14b56b3", + "class": "late" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e00000258b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + } + }, + { + "name": "retention_minus_1ms", + "about": "a millisecond before the retention instant: late", + "task_file": "open", + "stored": [ + "b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + ], + "t_ms": 1793581199999, + "budget": null, + "outcome": { + "send": [ + { + "id": "b6b78c2d00cf1c0c48072bf6d14b56b3", + "class": "late" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e00000258b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + } + }, + { + "name": "retention_exact", + "about": "at the retention instant: dropped", + "task_file": "open", + "stored": [ + "b6b78c2d00cf1c0c48072bf6d14b56b30000000000079a10000000000040821edd710cc271538eafcb9473287a214f25fa11375dd05e69ed1d0a971d5170629abf896ed00d3024dcae837101f64560eef08de0c28bd82982b40388076c0d01002060e6a6c001852eb97f303af7e5b130cf6fb9f2f56f426d6395e0f80e89ea6e1700000156be27792b75248f0d3718f548b17df84406e5d71f02acee0fd7fbf246bdb77e45110d8c8bfce4abd9e11e67a01537f00eb8ea6611fcf535e96eda095e0b355ad14ef12d4bb6a115ea698471841027983b38494f2fafa1e5e7e052d8f24b1d3e345b094e82fe60f80a30c038336d371b7b1a7ca06a8c8be354266d74c4c3f4786b33591f4de6b9d16be1dafbdf3ec11d42daac0af0b4bd02fccb3c2e18b78b12e5b397c9c41b7195c4491df0683ed0bb85c41a89241a9f028da35d414fcc58bbfec0189c5886a509c413d86939a980279621d707d9a60a3f943f3ff50c7d3818b6a4ea57709a2299f2fe8938dbd221109a49df9c40d0caf6b89071eee63db84f0c9e9d59b2c5d0beaf9c61b29b97e3f938c06b042bb1292db7475daf292bf56f9d52dabf5057a9596513294308c216c59959d7ae0907165b8f98ea187166595e4851f9a0eddbc02e4400f2d3b498ea8d92cfa43a61c4610200206afb1d0a71c26c2c64253aeec262fc7d06361454d476494d8e3e3b0fa3df1f490000005696e7c528e776a17fcc0e047bc326bc597b96d5cbc40fa410576df8a902090068610f4125b90a0299bf482572b3efd152d53d8e332aeb4c27d662408514c8b81bbd07b638d3ec84f27079c1d0f401d7d6947c89c9fc7c" + ], + "t_ms": 1793581200000, + "budget": null, + "outcome": { + "send": [], + "defer": [], + "drop": [ + "b6b78c2d00cf1c0c48072bf6d14b56b3" + ], + "file": null + } + }, + { + "name": "outside_flight_report", + "about": "a report of an hour before the flight is dropped", + "task_file": "open", + "stored": [ + "d917a8299b073afc572fb36d364678210000000000079a0f0000000000403286b5defa2940dd76d4392904ac60460b20015aad2b2965f740d68851cf7c55129ede29dffc25881c15ba5859195a8f1e79a67d66a86e1c1b92f3e84891e50a01002033ea2efeb2f5ded640f3136e190f9962ba271ba3b141c10a3f3baf02eecd1e03000001561c363d8d89f03c3731b85e6f9a2eb65f151b4c31cded689f8122292da212ba3c11c315b528d1f96d14b82501938efce6aa014053de7b5413c2abc9b0e84f9e0602a902a8c4467d56745ae7d545fc889c28e4e03aa59f4dcb82634df76d95462d58a9a4209c751cd6ae83f6452055d7d78dd0813b7b9eb2c5bd1093a237ab5fd981ffe09c56ada2bee1fad79b20f18de4a3bb51c2741529c5ac7f08237489c71308b3b1806c2740d611b1768e086ecb59ec95d5535381ca941c707824509b938adf8d04e167ea901e44cb91c2d0aeffc3fb3b851328c8bf6e02a20e30e8be520e4227423bb1f8b2b95f71dd5a3448e93a90ea7dca9d10ac75ed9d7400e1afb035342d99fcb1b86e9746d5fb87bc610697fd1b2bb76704a42a23890b2bd3e0f435d972c9b6f4dcf55d99ec97fcab5cd5a012725239412df2fd640656781d1cf9705cf3f59938d92c24da456f6fb3729c011d014da7561702002007b5b252330b026c922ed982275deadc0831a91a92359366f8be225dca254d38000000563799ea21bf22b0cf3fa80588cc0fe21be757cb91c3cf12fdcc4daadfde88b928301e73db2ada54e4d9214a3a403b80c5d5fcedccb147983e690cc00258c27b3507cf158231e813d8626898dfa37ce6d7f56ff402b409", + "e1783b1f7b4320f642d7b658c3b17f880000000000079a13000000000040e3d389e0ef8a4e121c71193c896144d08aa462352711ae3c7a4752538ff7fbe69c18383664ee9b9763d296de4d82a305451c193e4e44b1ae28f037549181a2b10100205ca47d2b33b73ac75498d7a6949f1ab6fdf9811f87ca49bd29907ab1eac3120900000156367f7b47a1918aed7892af504cedb905224235d40b77d7df30df80f6b295862d70ebbf0935f7c66e4cd975c48892ffa220ebc43561337a21a96cf875ca83d653a54cbc46b02319653cec357c4945488d6ea2f51afd2cbf1f62f30dc5a9db1e241ea46d76fe33eeb947cbe227ef22f475d263aab76bed05c1eda46fe4f68e69a019f09f4680dadd3066c5c542fab66a0b46a2d2b78ca629e54214d481cc149b82a146bd091a1ea1ffaf0375a9b82d38e32b2590f28705f9c224d3bc786b022aeb0f328ce4bf1222b16f8b7ab61627c5d83aa3a29ac16c760151861978b01a655dffd641ee0fb8edd5e37950aaee45537b4377a738be11e79e81a027561a7843ac1cedf9a58d787113f54aad732e103a5cfd95f97dea7be47ac1bc7c8acbc8c67f7e1d0a84fff283a28b24c6add9eb462035197a6a2f3a12efc5d79b1a328b39a6cc39f2ab8a2356f8bb5010a8aeefdfef3a77201a7c0c020020a06f4a50343ec8b54ef8893cb5ea484a296f808fe1ed6708ac3637c0f747140500000056ce0345ca106e0f35699c79d10eba4182f9dc0472e575c6cf5c4054e6f9f7039cd16f03f5a103e494449155f1e38416820ce6e5e4bb50f3bccd68e88d486b75c25b7d1ea7d1459296312ce63ea0d7e8942110b3d0f508" + ], + "t_ms": 1793491200000, + "budget": null, + "outcome": { + "send": [ + { + "id": "e1783b1f7b4320f642d7b658c3b17f88", + "class": "timely" + } + ], + "defer": [], + "drop": [ + "d917a8299b073afc572fb36d36467821" + ], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e00000258e1783b1f7b4320f642d7b658c3b17f880000000000079a13000000000040e3d389e0ef8a4e121c71193c896144d08aa462352711ae3c7a4752538ff7fbe69c18383664ee9b9763d296de4d82a305451c193e4e44b1ae28f037549181a2b10100205ca47d2b33b73ac75498d7a6949f1ab6fdf9811f87ca49bd29907ab1eac3120900000156367f7b47a1918aed7892af504cedb905224235d40b77d7df30df80f6b295862d70ebbf0935f7c66e4cd975c48892ffa220ebc43561337a21a96cf875ca83d653a54cbc46b02319653cec357c4945488d6ea2f51afd2cbf1f62f30dc5a9db1e241ea46d76fe33eeb947cbe227ef22f475d263aab76bed05c1eda46fe4f68e69a019f09f4680dadd3066c5c542fab66a0b46a2d2b78ca629e54214d481cc149b82a146bd091a1ea1ffaf0375a9b82d38e32b2590f28705f9c224d3bc786b022aeb0f328ce4bf1222b16f8b7ab61627c5d83aa3a29ac16c760151861978b01a655dffd641ee0fb8edd5e37950aaee45537b4377a738be11e79e81a027561a7843ac1cedf9a58d787113f54aad732e103a5cfd95f97dea7be47ac1bc7c8acbc8c67f7e1d0a84fff283a28b24c6add9eb462035197a6a2f3a12efc5d79b1a328b39a6cc39f2ab8a2356f8bb5010a8aeefdfef3a77201a7c0c020020a06f4a50343ec8b54ef8893cb5ea484a296f808fe1ed6708ac3637c0f747140500000056ce0345ca106e0f35699c79d10eba4182f9dc0472e575c6cf5c4054e6f9f7039cd16f03f5a103e494449155f1e38416820ce6e5e4bb50f3bccd68e88d486b75c25b7d1ea7d1459296312ce63ea0d7e8942110b3d0f508" + } + }, + { + "name": "budget_exact", + "about": "a budget of the header and three reports exactly", + "task_file": "open", + "stored": [ + "c356516c0109dbba9f248bad656eb6fd0000000000079a120000000000401f93e205dcc73ae51c3fbe2c2fd31d88c709172ea355beafaf96a39d4b4fcd8b0ea4fa1ec4855e1f664ad0ec94b9de8dc290b3a996b7cac0f59dc11109f2869c010020cdd735a4e778010c490fd5297b46a3ace86dd532dc2102ada5f4d7b7f04d8a5400000156c27603716beb91dc3885acd620592d0a2cfdd02e41cfb393ccde3165ba1e2ec1d3d27f5f38a8ee441ce92a3e06643846af57ea69f4c92b86177526df1aa8adc3c925cec7da5c2f07c9025c2ad1051221d84b8bf843f894766e5340df7212f037b47745ad6d85f22283d7d9d13aad476e30293f93f064d15af16b32fae29c132b77de2b194e6f621f7df23dc9c201c6cac3d11623cd72b44eda6c7dbbcf376c51f5d294e1dc7f6433ffef9f63bb1d10d90badce885086eb739ae855daba3d741946d26b2858434766b07bde54b48a107355e6f30e8a1e6c3ebbc3bd0ee05e09ecd247ff1a5ace47e86150776347e30bed8504db25ff2ef02a27926d2aa6b2a564a82f72ce7548fa2de4600409ddc58c663009e2309f942970bfe3e32e687e23ddd3735b10ddf010fa016b4cdbfea04b88da99c86581d3f6c89a7f335bd25872a52b9f8daa289aa1584293ea85c62bca8d54c7cd7d8b3c020020deda716296e9c69fcd9ec96beb45430329060dfa7b4f1f3f1b2fcc5f968c1b2100000056d3d9950460222a94633f9e5d69eb52c45b657b66eb257297157ee8998825ce67ecf428c42d74edafd865e8b2e430714c3a870bc6147a7fa24ca9d6bb61bfef8044dd5d4a5647130a0465e31c3dad9c27039eaa6c5ccb", + "fda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010", + "58f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2" + ], + "t_ms": 1793491200000, + "budget": 1841, + "outcome": { + "send": [ + { + "id": "fda888806e7ecea58b4e04741406218f", + "class": "timely" + }, + { + "id": "58f19c69c9dbbaac3856e1363652509d", + "class": "timely" + }, + { + "id": "c356516c0109dbba9f248bad656eb6fd", + "class": "timely" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070858f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2c356516c0109dbba9f248bad656eb6fd0000000000079a120000000000401f93e205dcc73ae51c3fbe2c2fd31d88c709172ea355beafaf96a39d4b4fcd8b0ea4fa1ec4855e1f664ad0ec94b9de8dc290b3a996b7cac0f59dc11109f2869c010020cdd735a4e778010c490fd5297b46a3ace86dd532dc2102ada5f4d7b7f04d8a5400000156c27603716beb91dc3885acd620592d0a2cfdd02e41cfb393ccde3165ba1e2ec1d3d27f5f38a8ee441ce92a3e06643846af57ea69f4c92b86177526df1aa8adc3c925cec7da5c2f07c9025c2ad1051221d84b8bf843f894766e5340df7212f037b47745ad6d85f22283d7d9d13aad476e30293f93f064d15af16b32fae29c132b77de2b194e6f621f7df23dc9c201c6cac3d11623cd72b44eda6c7dbbcf376c51f5d294e1dc7f6433ffef9f63bb1d10d90badce885086eb739ae855daba3d741946d26b2858434766b07bde54b48a107355e6f30e8a1e6c3ebbc3bd0ee05e09ecd247ff1a5ace47e86150776347e30bed8504db25ff2ef02a27926d2aa6b2a564a82f72ce7548fa2de4600409ddc58c663009e2309f942970bfe3e32e687e23ddd3735b10ddf010fa016b4cdbfea04b88da99c86581d3f6c89a7f335bd25872a52b9f8daa289aa1584293ea85c62bca8d54c7cd7d8b3c020020deda716296e9c69fcd9ec96beb45430329060dfa7b4f1f3f1b2fcc5f968c1b2100000056d3d9950460222a94633f9e5d69eb52c45b657b66eb257297157ee8998825ce67ecf428c42d74edafd865e8b2e430714c3a870bc6147a7fa24ca9d6bb61bfef8044dd5d4a5647130a0465e31c3dad9c27039eaa6c5ccbfda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010" + } + }, + { + "name": "budget_one_short", + "about": "a byte short of that: two sent, one deferred", + "task_file": "open", + "stored": [ + "c356516c0109dbba9f248bad656eb6fd0000000000079a120000000000401f93e205dcc73ae51c3fbe2c2fd31d88c709172ea355beafaf96a39d4b4fcd8b0ea4fa1ec4855e1f664ad0ec94b9de8dc290b3a996b7cac0f59dc11109f2869c010020cdd735a4e778010c490fd5297b46a3ace86dd532dc2102ada5f4d7b7f04d8a5400000156c27603716beb91dc3885acd620592d0a2cfdd02e41cfb393ccde3165ba1e2ec1d3d27f5f38a8ee441ce92a3e06643846af57ea69f4c92b86177526df1aa8adc3c925cec7da5c2f07c9025c2ad1051221d84b8bf843f894766e5340df7212f037b47745ad6d85f22283d7d9d13aad476e30293f93f064d15af16b32fae29c132b77de2b194e6f621f7df23dc9c201c6cac3d11623cd72b44eda6c7dbbcf376c51f5d294e1dc7f6433ffef9f63bb1d10d90badce885086eb739ae855daba3d741946d26b2858434766b07bde54b48a107355e6f30e8a1e6c3ebbc3bd0ee05e09ecd247ff1a5ace47e86150776347e30bed8504db25ff2ef02a27926d2aa6b2a564a82f72ce7548fa2de4600409ddc58c663009e2309f942970bfe3e32e687e23ddd3735b10ddf010fa016b4cdbfea04b88da99c86581d3f6c89a7f335bd25872a52b9f8daa289aa1584293ea85c62bca8d54c7cd7d8b3c020020deda716296e9c69fcd9ec96beb45430329060dfa7b4f1f3f1b2fcc5f968c1b2100000056d3d9950460222a94633f9e5d69eb52c45b657b66eb257297157ee8998825ce67ecf428c42d74edafd865e8b2e430714c3a870bc6147a7fa24ca9d6bb61bfef8044dd5d4a5647130a0465e31c3dad9c27039eaa6c5ccb", + "fda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010", + "58f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2" + ], + "t_ms": 1793491200000, + "budget": 1840, + "outcome": { + "send": [ + { + "id": "fda888806e7ecea58b4e04741406218f", + "class": "timely" + }, + { + "id": "58f19c69c9dbbaac3856e1363652509d", + "class": "timely" + } + ], + "defer": [ + "c356516c0109dbba9f248bad656eb6fd" + ], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000004b058f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2fda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010" + } + }, + { + "name": "budget_none", + "about": "no budget; one report late, two timely", + "task_file": "open", + "stored": [ + "80bfdf1f5692ba1b4a1001abd8753ac40000000000079a100000000000403527ed0e28fbe3df9e6558a517eb5185364954aa7aafe8a11ae8ccc5c0c99105929f1e450729853078c9cbf8f036da3b239428c6bd28f800df5243057f818aa6010020ac9a7b110e11c599ee50b946135031cfc92d3454302b106a2eac3ad27be8937800000156d2e253d3bc64cf234f0ee5bcf38eeede2096f69a1e80df9c263c7d561bec50e349d0e6658bd8b0c6fa4a9719437b0d47e0d82ff90d2145c2f059fe46d913be42916718c04b4555028108935f79066f6b56efeca56fe2b16aa53229f68a9ac698f7ad6a4831506af673a7f24407129ea304afd2691435174fa211f044a1ff0dc49c1243b5b42e9737841b75ab66b3dbf615ece1c8255ba483bf6b8279e13374ec55bb9e87321492add4030346b8538e6351cd95acb7bb9ad20497e3dd3f436c0a6dedf9efb6b067d880fbd9cd049e1967ae943c4690b6d1725c4ebb63e59befc7b35cc85b67d51cd7d62facd0a69898f46693b74297458f59c57174347df05e6eac5e56c84df7d5cde43c30f1ec0b637afa3de3aedcbfd9db67fadbc6b7d8c2b0d717f4e6e653bfdee8573cb2fe9fe1aa970908cee61c1981732ddb4c090ff61a7e444c31ac44d166cf9c3ac7e869939c576b4037bc59020020b569b840705dfd1a8ee69197a95358dd8f0f2366e053c58007d33a4ab2d757540000005663eec83a9a75d84ec86677ac6fbbe254d03beb25fad60522de1f8a9862139e0270e075477ff312b7798129a3845bb11f3afe025b8bc2b8f8804a5ce588fa78a252a3373c80cb4eb88695e5c1df4f0270c412652e9303", + "a854c011c95834e9901f0ef70c91101a0000000000079a150000000000400b12a5a004f51963237a65c1c23d3739d627bdd8c0d2e94744cf0f9784c67b8bb6fe74b274962ea100d3983a1c0ffd62535739f9669aab8f61c1d386a6bbad52010020bd4e859f217d63c81d2aac6c43147a456c7186f9c9f05f65d1dc4bbb6db87f290000015640b5560c7373d5f5c756108e5ff4daebfe21f2f898370e77e08d667efae3d0585a36c3b613eb8adda46aed8da115d21dad0acdb84e50348db1eb92633fd3e8a025d7a40b00c5c320cc7d3940990cd088c05688cddc1863dcbbbfdbc498d1992d11d65abfcde68799b96a6edc91c4895feee9587d709e50e210904ebeb8443d6516ac18ab552f175079a1d845fccca96d3137550c4168a595b4acf59b0151a4488b7cc1222aabddaa1940f49e0e0b750f1796bcd6e2448360e270054e28569b7c1f75db73029f7f2bb04f64c498a6cdd014f1a351ffb14cf29302f3a2535b638054bf58c5891e4b3a5dc3008f5eb1090df32b6f814ebcdb99f6782b1e5d20f3e12f008f0094714607b07ce018f2e35bc3b2d4e057afed80f6d11d774eaaf18cfb4692b9a613175881d93b1c1ef8763cadcf66027a97839e0af403a19fce6b164f4fb66634eef7a8cc63d4a3817c95cc7477e24a17b5d1020020ca40a0175f374b5c8436364cce807def7b016418c8c2d3cbdb45105c4c1e590700000056f481aba2027963c0a9c4a36ac626002b437d73c5df3edbbac35a527cdbabbf7627dbe031df3f537bab7a215f1217b7a58a4fe54e2f9e106d9e38011750f84014a25d3dadd98cf2c73c3c6f9bb3ac8c3d06a6be7f4796", + "d998d97bf70672faa042881685cd2c900000000000079a110000000000401594ed0bedddb83caefbc63ac875fe369719b9273475adef3434c823538662da79edc913701141ba0208f85c73d7ae29a5367215718e526f43e4d7ebc3b2ce5e0100206015564818a3724028a209bc8223a1ce13a13ef1075609613d0e618cbaf5432800000156fc0bc909c684d3a2ced9f636ca9c6b864cfffefeadad71eaf298dbbf0777383e281522c698bc7cad3efe7cd22827b152dc452fe11a22a999b1edd071500d09f7f04059468352a9e3cf557ee15e5e2e1678cd6bee4347bafb3eea5babcba6787bcc160711df8b47db26d55e632c47d6d09325f902a45d07b8b90604697b2f64b6e0645c2a760379572076e449998e0dd95b4c26ab38fb4e068380046f04be54e31ceabbaa5cb16732709d9ca2c1676cae7ed02eb0d3949af91c1a367fa2ddc4b4a0d0f48d9b3cb79e0bc8523939d5c841e7a8d2d88423fa87d4ec94b88b524f5654969244ceb9b6677da0c664b8be888e969c7269e9849f964c58358c5203da97f8211377a30aaa936b28570f0de930c86618d6005147ae22b4ab2b189bde4022b6fbd94d85e1eefc6b52d0f22bb97d3b485513988588d378bcd69594b263dc85875805ed2043de0a7af46a1fc4c8a7cd3c4d66302335020020d654dc721bef8bb7de69ee8d3906be5b09ce81710afee44e099225fb6086f77a0000005643e01c4d7987a3dc4e911b0178cee9c63b110151d5d697a17d3b96a3905fbe5e911a7f7b37da17fb839f5199ff313ae19f37870cb5dc312fd9dc042ffc1c4e8ff1527176292f624a86a310308a3bb1d795e5cb2ffbe7" + ], + "t_ms": 1793498400000, + "budget": null, + "outcome": { + "send": [ + { + "id": "d998d97bf70672faa042881685cd2c90", + "class": "timely" + }, + { + "id": "a854c011c95834e9901f0ef70c91101a", + "class": "timely" + }, + { + "id": "80bfdf1f5692ba1b4a1001abd8753ac4", + "class": "late" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e0000070880bfdf1f5692ba1b4a1001abd8753ac40000000000079a100000000000403527ed0e28fbe3df9e6558a517eb5185364954aa7aafe8a11ae8ccc5c0c99105929f1e450729853078c9cbf8f036da3b239428c6bd28f800df5243057f818aa6010020ac9a7b110e11c599ee50b946135031cfc92d3454302b106a2eac3ad27be8937800000156d2e253d3bc64cf234f0ee5bcf38eeede2096f69a1e80df9c263c7d561bec50e349d0e6658bd8b0c6fa4a9719437b0d47e0d82ff90d2145c2f059fe46d913be42916718c04b4555028108935f79066f6b56efeca56fe2b16aa53229f68a9ac698f7ad6a4831506af673a7f24407129ea304afd2691435174fa211f044a1ff0dc49c1243b5b42e9737841b75ab66b3dbf615ece1c8255ba483bf6b8279e13374ec55bb9e87321492add4030346b8538e6351cd95acb7bb9ad20497e3dd3f436c0a6dedf9efb6b067d880fbd9cd049e1967ae943c4690b6d1725c4ebb63e59befc7b35cc85b67d51cd7d62facd0a69898f46693b74297458f59c57174347df05e6eac5e56c84df7d5cde43c30f1ec0b637afa3de3aedcbfd9db67fadbc6b7d8c2b0d717f4e6e653bfdee8573cb2fe9fe1aa970908cee61c1981732ddb4c090ff61a7e444c31ac44d166cf9c3ac7e869939c576b4037bc59020020b569b840705dfd1a8ee69197a95358dd8f0f2366e053c58007d33a4ab2d757540000005663eec83a9a75d84ec86677ac6fbbe254d03beb25fad60522de1f8a9862139e0270e075477ff312b7798129a3845bb11f3afe025b8bc2b8f8804a5ce588fa78a252a3373c80cb4eb88695e5c1df4f0270c412652e9303a854c011c95834e9901f0ef70c91101a0000000000079a150000000000400b12a5a004f51963237a65c1c23d3739d627bdd8c0d2e94744cf0f9784c67b8bb6fe74b274962ea100d3983a1c0ffd62535739f9669aab8f61c1d386a6bbad52010020bd4e859f217d63c81d2aac6c43147a456c7186f9c9f05f65d1dc4bbb6db87f290000015640b5560c7373d5f5c756108e5ff4daebfe21f2f898370e77e08d667efae3d0585a36c3b613eb8adda46aed8da115d21dad0acdb84e50348db1eb92633fd3e8a025d7a40b00c5c320cc7d3940990cd088c05688cddc1863dcbbbfdbc498d1992d11d65abfcde68799b96a6edc91c4895feee9587d709e50e210904ebeb8443d6516ac18ab552f175079a1d845fccca96d3137550c4168a595b4acf59b0151a4488b7cc1222aabddaa1940f49e0e0b750f1796bcd6e2448360e270054e28569b7c1f75db73029f7f2bb04f64c498a6cdd014f1a351ffb14cf29302f3a2535b638054bf58c5891e4b3a5dc3008f5eb1090df32b6f814ebcdb99f6782b1e5d20f3e12f008f0094714607b07ce018f2e35bc3b2d4e057afed80f6d11d774eaaf18cfb4692b9a613175881d93b1c1ef8763cadcf66027a97839e0af403a19fce6b164f4fb66634eef7a8cc63d4a3817c95cc7477e24a17b5d1020020ca40a0175f374b5c8436364cce807def7b016418c8c2d3cbdb45105c4c1e590700000056f481aba2027963c0a9c4a36ac626002b437d73c5df3edbbac35a527cdbabbf7627dbe031df3f537bab7a215f1217b7a58a4fe54e2f9e106d9e38011750f84014a25d3dadd98cf2c73c3c6f9bb3ac8c3d06a6be7f4796d998d97bf70672faa042881685cd2c900000000000079a110000000000401594ed0bedddb83caefbc63ac875fe369719b9273475adef3434c823538662da79edc913701141ba0208f85c73d7ae29a5367215718e526f43e4d7ebc3b2ce5e0100206015564818a3724028a209bc8223a1ce13a13ef1075609613d0e618cbaf5432800000156fc0bc909c684d3a2ced9f636ca9c6b864cfffefeadad71eaf298dbbf0777383e281522c698bc7cad3efe7cd22827b152dc452fe11a22a999b1edd071500d09f7f04059468352a9e3cf557ee15e5e2e1678cd6bee4347bafb3eea5babcba6787bcc160711df8b47db26d55e632c47d6d09325f902a45d07b8b90604697b2f64b6e0645c2a760379572076e449998e0dd95b4c26ab38fb4e068380046f04be54e31ceabbaa5cb16732709d9ca2c1676cae7ed02eb0d3949af91c1a367fa2ddc4b4a0d0f48d9b3cb79e0bc8523939d5c841e7a8d2d88423fa87d4ec94b88b524f5654969244ceb9b6677da0c664b8be888e969c7269e9849f964c58358c5203da97f8211377a30aaa936b28570f0de930c86618d6005147ae22b4ab2b189bde4022b6fbd94d85e1eefc6b52d0f22bb97d3b485513988588d378bcd69594b263dc85875805ed2043de0a7af46a1fc4c8a7cd3c4d66302335020020d654dc721bef8bb7de69ee8d3906be5b09ce81710afee44e099225fb6086f77a0000005643e01c4d7987a3dc4e911b0178cee9c63b110151d5d697a17d3b96a3905fbe5e911a7f7b37da17fb839f5199ff313ae19f37870cb5dc312fd9dc042ffc1c4e8ff1527176292f624a86a310308a3bb1d795e5cb2ffbe7" + } + }, + { + "name": "ties_by_id", + "about": "three reports of one hour: one deadline, ascending id", + "task_file": "open", + "stored": [ + "74452f5c67c8356e7de279a56f5d95f40000000000079a100000000000402a719a337a4bbaf4d62c68ddca18027af222dedb477bfe457287730d5f6a248a2417956f40992bad17fd7d4f5401e110e689ec0220cd57fe84ebef7adb86bb82010020b4441ae8e78c254e1472e4076b3ae49941f818d4b4f56f8ad834b77dff4e077f00000156cceb1877623cb6c1507af482d9b2007299a18ef7ec0452d5fc94e4eec8d7d2d2de17a37c021b76e0be528d0a2e10df34255e7a3a640eba2b0341c299e28e9d674862d7c161a82534ea5fce90873ac98bd6cefc3095bbd2dd40e90d4f2cce4b80d59ccbe4524781b0b7c94a57ada2dc88646f685f661ddbb3c7876c94800cb063ec92a4f22214e3297a940fbf74868e8df4c4f5ed91f2589ee2cd2ffec2f8afbcbd291ba0d0a33d79436607e55c970cf2de29602cbe4d6d27cb09c4c750b79d88e61a9ed922b53e0df9327993fec781559bbb273dbe4056943229e7f82933698e063f8c6086d88bad5064c695d3d592f534880a261b9d5662a884797441ced968c711f4d9eb95cf869683b1da5bfd02fede90ab68c4c49ccd9a3119558aee3f349bc1b63d1d2bd8f50a98feb693c658460ae49d1405695c95e84f52608120e1029d54a8ed686a2ec8af66fbef28eb0c2b47b991c78d740200208400161e51de0c3ce96d8e81b2b37a1f120b4cb1f2a5e0b1582508ed19b50f790000005666d4bc9eaaa73c9a1041ae9732c3b75e9ea115ac14ce9716f460883e823d2fd2d5ebe64c2434c3abca7210e0d34f3c1138e2be038528c904fc1dcba5fd29ecd11eadf49c73921fb21d083817c4ec584c67854f4ab3b0", + "1cbec65869e4c93b920719296a2f50580000000000079a10000000000040ec3e43f0da645d0a13ac85d4f61a6f140f81a86784c1e4100fc45baf7c2a963a901d7286e6329609184522ec821d0269c5bd3bed8c69a0f837a5d9f8c64639bf010020fdff144fcd009a0543008f33db772d754e667545a942cec359fd71727f4fad1500000156a3e627399f051f3d1dcc07a7a0e5b5d7e35e99dcb9091ddf3f795679d020712b96e0a5752954d367611c875869a41850608a6e3cdba1220295cd0879da4b3cc97a5272ba2b88d42707d6b74549955089eff470ce534e0b25b4663b803c1deeb7179ca7bb66ca6abba78f04be5992c62ed6e4807828ddfe70f709de6b588472bf087cd80c33ed0ef257fc97cc8bd2b6f77bd542f9459d7b0db1946c4865707da53059339b01b1c0ad50580d65c28f75a4b5cc55810560dd42b0a42e53c01aaae14ea0c1b595cadd713aeceb54f79e19a45954c16e4179dc5a6ff9c22ccd82339973f5da9c87b6646b607bfc9cf816e57b3096e073525295547fb98102caaf249125b2b4ea2b1037df52aa721071490b15420d1b4fbb9a3b8afe2b4f49bfd383647021143e4a9a97678ef6ed46c3b36f8dd71da26b8eeb1521c8b5acc13cbd04e2bf95df4837889c56ed45c76563e7274930e496b5b417020020ccf639b2bad82bf9362cdf1bb554d1e35a7428d07927808e4071d746311262580000005675361ed1f098e5c74e132b2a1fe1ecf11dc266a6a63de51960550035abeee4f6840bffb267c30cec1d82de3205c0f5fa002f701375f2ab6dcf33304d5c3f90f8eb6b062d3325307bed85b590a7d4b4e8256961b97aa1", + "1e676a71d0527c21074831a6e3bd61c40000000000079a10000000000040bfcba6507aeffa3d35ec1664dd81bf4a374f7360aff5cb3b5c52cbaab31aa9179b2ecdfd1ed9840799e03011777c8315a5f0291e65b09cfd030abf98d205f441010020aabb2231401f40abaf4eb9976334f5daf140ed9caf057aa6ede856ff744e123900000156ce5e556d27bbb82a371e3e9dd1cb24a64c19542fb5f245dd7f8af5fef22b64b186dbea8524cd0a2d202dd81dfb872d146c9fef07bdb334e14a23250d9b9346c3e5a79c2dd14bd1f30c5f7eb3c07d8030b8a0ae0858313b7946b87f887139050e165719f420e5f4c4cf94d0da7d5d829b8586b62939c79c4c1d789b25d784a476cc2cc32b818ab8ac3caa44bfd1eb18e1184f333ea3e53e42714f35f7ec4045c71b8c34237ca10b92b67c13e8a9638476db13a661f7a5156e5046614afb278febcbff6073d3fa188b97bbf81798733d4212ce212f6f2d1ab0a3730b16df9e17d1584779a7b002d042e9f7bd7028f272eb05c98f8a16089b6c0714841fe8ce4fb42b474bb8c2dee8e1ed2d41cd3ae40ea91c42e5999331d06db369c078446370740db49bb15415015f48b0623674fdbdd9215d28bfb9882593bc731f231ed5cc964d317f2d6065373ee1909ff393089a38ff84f387aebb020020c1a4676b9b54c764a030e9f6e2f3ad0a6f07d5ca41c9c9ba1876cc89195bfb5200000056696997ca986a28002b95879d721fca074ad6c562f76b8212bff91a43211a336bde036fdb911d37372f98b60355e37a4d1ec1ef8e050be30ba452e0b2f794612d629d19cb88f9d9bb0ab2f14f5ddfd3c53e07f543681e" + ], + "t_ms": 1793491200000, + "budget": null, + "outcome": { + "send": [ + { + "id": "1cbec65869e4c93b920719296a2f5058", + "class": "timely" + }, + { + "id": "1e676a71d0527c21074831a6e3bd61c4", + "class": "timely" + }, + { + "id": "74452f5c67c8356e7de279a56f5d95f4", + "class": "timely" + } + ], + "defer": [], + "drop": [], + "file": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000007081cbec65869e4c93b920719296a2f50580000000000079a10000000000040ec3e43f0da645d0a13ac85d4f61a6f140f81a86784c1e4100fc45baf7c2a963a901d7286e6329609184522ec821d0269c5bd3bed8c69a0f837a5d9f8c64639bf010020fdff144fcd009a0543008f33db772d754e667545a942cec359fd71727f4fad1500000156a3e627399f051f3d1dcc07a7a0e5b5d7e35e99dcb9091ddf3f795679d020712b96e0a5752954d367611c875869a41850608a6e3cdba1220295cd0879da4b3cc97a5272ba2b88d42707d6b74549955089eff470ce534e0b25b4663b803c1deeb7179ca7bb66ca6abba78f04be5992c62ed6e4807828ddfe70f709de6b588472bf087cd80c33ed0ef257fc97cc8bd2b6f77bd542f9459d7b0db1946c4865707da53059339b01b1c0ad50580d65c28f75a4b5cc55810560dd42b0a42e53c01aaae14ea0c1b595cadd713aeceb54f79e19a45954c16e4179dc5a6ff9c22ccd82339973f5da9c87b6646b607bfc9cf816e57b3096e073525295547fb98102caaf249125b2b4ea2b1037df52aa721071490b15420d1b4fbb9a3b8afe2b4f49bfd383647021143e4a9a97678ef6ed46c3b36f8dd71da26b8eeb1521c8b5acc13cbd04e2bf95df4837889c56ed45c76563e7274930e496b5b417020020ccf639b2bad82bf9362cdf1bb554d1e35a7428d07927808e4071d746311262580000005675361ed1f098e5c74e132b2a1fe1ecf11dc266a6a63de51960550035abeee4f6840bffb267c30cec1d82de3205c0f5fa002f701375f2ab6dcf33304d5c3f90f8eb6b062d3325307bed85b590a7d4b4e8256961b97aa11e676a71d0527c21074831a6e3bd61c40000000000079a10000000000040bfcba6507aeffa3d35ec1664dd81bf4a374f7360aff5cb3b5c52cbaab31aa9179b2ecdfd1ed9840799e03011777c8315a5f0291e65b09cfd030abf98d205f441010020aabb2231401f40abaf4eb9976334f5daf140ed9caf057aa6ede856ff744e123900000156ce5e556d27bbb82a371e3e9dd1cb24a64c19542fb5f245dd7f8af5fef22b64b186dbea8524cd0a2d202dd81dfb872d146c9fef07bdb334e14a23250d9b9346c3e5a79c2dd14bd1f30c5f7eb3c07d8030b8a0ae0858313b7946b87f887139050e165719f420e5f4c4cf94d0da7d5d829b8586b62939c79c4c1d789b25d784a476cc2cc32b818ab8ac3caa44bfd1eb18e1184f333ea3e53e42714f35f7ec4045c71b8c34237ca10b92b67c13e8a9638476db13a661f7a5156e5046614afb278febcbff6073d3fa188b97bbf81798733d4212ce212f6f2d1ab0a3730b16df9e17d1584779a7b002d042e9f7bd7028f272eb05c98f8a16089b6c0714841fe8ce4fb42b474bb8c2dee8e1ed2d41cd3ae40ea91c42e5999331d06db369c078446370740db49bb15415015f48b0623674fdbdd9215d28bfb9882593bc731f231ed5cc964d317f2d6065373ee1909ff393089a38ff84f387aebb020020c1a4676b9b54c764a030e9f6e2f3ad0a6f07d5ca41c9c9ba1876cc89195bfb5200000056696997ca986a28002b95879d721fca074ad6c562f76b8212bff91a43211a336bde036fdb911d37372f98b60355e37a4d1ec1ef8e050be30ba452e0b2f794612d629d19cb88f9d9bb0ab2f14f5ddfd3c53e07f543681e74452f5c67c8356e7de279a56f5d95f40000000000079a100000000000402a719a337a4bbaf4d62c68ddca18027af222dedb477bfe457287730d5f6a248a2417956f40992bad17fd7d4f5401e110e689ec0220cd57fe84ebef7adb86bb82010020b4441ae8e78c254e1472e4076b3ae49941f818d4b4f56f8ad834b77dff4e077f00000156cceb1877623cb6c1507af482d9b2007299a18ef7ec0452d5fc94e4eec8d7d2d2de17a37c021b76e0be528d0a2e10df34255e7a3a640eba2b0341c299e28e9d674862d7c161a82534ea5fce90873ac98bd6cefc3095bbd2dd40e90d4f2cce4b80d59ccbe4524781b0b7c94a57ada2dc88646f685f661ddbb3c7876c94800cb063ec92a4f22214e3297a940fbf74868e8df4c4f5ed91f2589ee2cd2ffec2f8afbcbd291ba0d0a33d79436607e55c970cf2de29602cbe4d6d27cb09c4c750b79d88e61a9ed922b53e0df9327993fec781559bbb273dbe4056943229e7f82933698e063f8c6086d88bad5064c695d3d592f534880a261b9d5662a884797441ced968c711f4d9eb95cf869683b1da5bfd02fede90ab68c4c49ccd9a3119558aee3f349bc1b63d1d2bd8f50a98feb693c658460ae49d1405695c95e84f52608120e1029d54a8ed686a2ec8af66fbef28eb0c2b47b991c78d740200208400161e51de0c3ce96d8e81b2b37a1f120b4cb1f2a5e0b1582508ed19b50f790000005666d4bc9eaaa73c9a1041ae9732c3b75e9ea115ac14ce9716f460883e823d2fd2d5ebe64c2434c3abca7210e0d34f3c1138e2be038528c904fc1dcba5fd29ecd11eadf49c73921fb21d083817c4ec584c67854f4ab3b0" + } + }, + { + "name": "nothing_to_send", + "about": "every report past the retention instant: no file", + "task_file": "open", + "stored": [ + "c356516c0109dbba9f248bad656eb6fd0000000000079a120000000000401f93e205dcc73ae51c3fbe2c2fd31d88c709172ea355beafaf96a39d4b4fcd8b0ea4fa1ec4855e1f664ad0ec94b9de8dc290b3a996b7cac0f59dc11109f2869c010020cdd735a4e778010c490fd5297b46a3ace86dd532dc2102ada5f4d7b7f04d8a5400000156c27603716beb91dc3885acd620592d0a2cfdd02e41cfb393ccde3165ba1e2ec1d3d27f5f38a8ee441ce92a3e06643846af57ea69f4c92b86177526df1aa8adc3c925cec7da5c2f07c9025c2ad1051221d84b8bf843f894766e5340df7212f037b47745ad6d85f22283d7d9d13aad476e30293f93f064d15af16b32fae29c132b77de2b194e6f621f7df23dc9c201c6cac3d11623cd72b44eda6c7dbbcf376c51f5d294e1dc7f6433ffef9f63bb1d10d90badce885086eb739ae855daba3d741946d26b2858434766b07bde54b48a107355e6f30e8a1e6c3ebbc3bd0ee05e09ecd247ff1a5ace47e86150776347e30bed8504db25ff2ef02a27926d2aa6b2a564a82f72ce7548fa2de4600409ddc58c663009e2309f942970bfe3e32e687e23ddd3735b10ddf010fa016b4cdbfea04b88da99c86581d3f6c89a7f335bd25872a52b9f8daa289aa1584293ea85c62bca8d54c7cd7d8b3c020020deda716296e9c69fcd9ec96beb45430329060dfa7b4f1f3f1b2fcc5f968c1b2100000056d3d9950460222a94633f9e5d69eb52c45b657b66eb257297157ee8998825ce67ecf428c42d74edafd865e8b2e430714c3a870bc6147a7fa24ca9d6bb61bfef8044dd5d4a5647130a0465e31c3dad9c27039eaa6c5ccb", + "fda888806e7ecea58b4e04741406218f0000000000079a10000000000040f68d8ca4cfce0416d9d641f46c0e4267594821e50aeb0cb01cc2c8cab089b19959a770c52f3191f7767c49eececdc9eff24ff3296a4cccc018beb024c7479d3b010020d2816bb53a1495a9ed83b53f343a6d40f19228f7a8bd856a4273a5ae920fd263000001560e26ef3f2ff4f73dd2fe166d75488b636259c2e62a60f3fb4c871215acda3b76e8004c5480ca1713271422fa4b8c6aa3b72b08b223d54826e21b6c6cf5c7bde2d0cc3b559282bbff07c1212690fae4b44207eefe6b0dcf0d34bf700bdb5350e98237cce76db5b9f232091e000f87e2c3fa288c55170f33e15aa56c23a38dc0823c4a5e29204e8d295454c6a43bce9d38775303fab7cbe7e14e13ff37cc1f6468cfb722f2cc6bcdb924c7e8bd6993466adf241b6124d1aea76cbdda565816a017504b6cf6315240ab2f4c8aef9cc2edc53911725468c9fa534e98b78f6a562c24ce34dbf7f27b1be6008fd35ae682164131676440eb2047fe923656439cc7126c9d2d58ade387978ace8e09c23a78309279a1668b535c86597dd220db05153660ca213ca67794aae48b9ce9ccf85f80ab36c7401bef7dec46315efd6bb4becb8cfa007ced335964627efbc3a7311e7fcb6ce834c8e372020020c49cda14067764eb1504755825a737ad1d3d15ed108934090b82d65d4541b445000000561377d7446b0b91a2e5bbcd1f454544fba0c049214990d1b7acb45d1f067950a74a92f5731595454c1391af6d32fab4c980052fc1fcd83479e6c05bb12f19b15557224b73bd2bb3f1c277f40fcad2bafcbc991306b010", + "58f19c69c9dbbaac3856e1363652509d0000000000079a11000000000040a0597ad469e911757130ffe083dd6ab3ae6856cdccddf6483ae260c8130c062d76431beafc6be6dc029fb715f06487b1a79918111025f7d34e7fec52a2c70dd10100203583f28239fcb3a245be2c8d7ba9c23c5cf2f2fd0623958615beccc377a6af00000001564ffbf7be100f01b49e49a9b358dd52e66eed19034eac53d36312ab41814933dcbe90d0daf96ae0c2b6a296ae04c6bd085db4a15279ab51a06c87c4d5c5ce6da7f3a2921f8c78eb1e8e16288bca2fe973e9285c3cc51a3e956175f7bdf80b5bac77d6ab7f474c0fab0909c563c92040654e1aba937ad04b1a6b19f93fa2500aa54f2e8626fc6bb73492e2dd86450f766dddd85837535e8ccdc53846eb84b44afb7777c04e3505dd62d5bd0d934b40ef490f608667fa60a32f7fcda04bfa43fb45ae12cfd2dc23378f78b09be2b5b56ac81bebabd8d5f84dd6186eac8c064631803259e8a4d61da7768f37a08eb8ef1b2a04d11f52862d6f93ba06f4b420a321021f1159ac4e757e1386924b1ee082651deacd8bba0d449f497fcadff9515d4f26616543e7a6f53552389d2e85842631995f0c96545be7c6dc8ecab7f4335e04d69ec217f45da3c61c20d819dab78e5ac76560f1d85a030200200fe4d5c6214442ab9fec8bc9a10bdad20d88ea29f8f427f5e6a9e85b18a2b963000000564c48354732723c22882793ccc68564cc3ed161c6a26733fd78437c5460f1302db045eab193f65dfec945c39375cfb7cf71da1f62ecbb9f1039fd2c5442f38421acd7ec9fa9801a8a15a63aece8adf3638fbed919a5b2" + ], + "t_ms": 1793581200001, + "budget": null, + "outcome": { + "send": [], + "defer": [], + "drop": [ + "58f19c69c9dbbaac3856e1363652509d", + "c356516c0109dbba9f248bad656eb6fd", + "fda888806e7ecea58b4e04741406218f" + ], + "file": null + } + } + ], + "settles": [ + { + "name": "all_accepted", + "about": "an empty body: every report accepted", + "sent": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000007082c132674cee1c090d5109695af602b7c0000000000079a100000000000403d3faaf9a618207f50e0cea86cdff9334b9e84c49ecf5dcfc5b494354f6bc3ec6ccdac8e8fa78057e1993c2a568a4c4e40af47c219679066a6a5ee1f6265f32c01002096c258692d0435732c4316f91439994e90e2bb803331ee5f2f3f3f6391b99d5100000156ead8a18019f9cc262f9c6d95b8a2f17571d6833493408bf115680b10d8d5b68592a22d6fae11240e2c3deea275509d355e0d61148a0f9178d1c1f6326e379b6269a0667e2d3186430beb0954cb8dcd78f155c7f0315696cee7d9115e7b15d7e1745f4846079663ee68db1d4bbb2163d508e7f6851c707dc40c5616d25c058a39a1370e5cc0c10da372e2ac6ff34f101ad44ce2ef7b8a2e9aa35cc215559c2fd9034d34aafc274a813fd6af5ba8b83d4e72c708c3e85b385c22ac00e54233c3da622738d680539cab7fa9b9839037b9fd85356306ff7255ad1b36a865ae5ead96fa5bd4d5794118a611ed8528e78a0b6859d29f0cc40429014e63710e28dacbd8561f1c23702a58028af2d11409df93ee999cf83132c0e153730a85b0e60ba8ec6d0977b6b900d0930125c7f49ef3ae03610bfecfa8d31a868e77b9949d7a06072d16f65d2d7b4ea99e03792ae72c40920f2ce6eb4eb4020020f86c72eac2fc589703a74aaba1157be5d9240ef7fc8a9a0555874b314883c41600000056375a2e3bc6ac9e1fb9c45272bfef888b9adcf2efc0dcbd62de41aeb77a67393620d46efc4ec00154735fe8f91738c39218e6485a5df2c348eba239886343c96ec87b5d812ac3555dda836fafa052748646a304b9fc5ecf35af8bc53e0676620e3610ae9f69450000000000079a10000000000040a635e91a59591f57f8d4ee213bcc9be102e37146c985224c18fcce0a710614a087cb0e071eceaecb7173578c188d4b48112c74d7eeaf778408732a1e4f7f25d90100203b78e2e43cdfd97a4a0448c1f66779a270ebcad58b398807a46e3e135bee6e0000000156c1dc62120994aa44d75674e4c0879d264f9a4f427cb6cf1d4ec442306f6afc1a11ed166a0028a9039bfa500c15fb61ed669fd364f08dfb95dbae1a68ce798e0c46269917c29d9f324d06704010f4730e88cdfed863d4a67e64283b02f88813b163022868f2c9a37019810c22711b7a28f4d225455ec30557961e0310cc064ce65ffafc1b658f1aa689db445818d8df3c5a8d28ec03af21f612337450e4625fbf72ba15ae25ef0438b3fa0504feba5d5816f36f3ab53d072a7edeb0d6f7493177991da6a9b84d1239f9a7f1c33a8824062c7c96a66b39f84f3736f2af23b24b5f26d6a402606f4052bd2ce4be38d58d154ff9d980005ed3a7c788c499dc474fe65b591e62f1c5a321f6ec6e87339c0dbd9c5839188ca665387a6959e31db3dab2228d9983564f3f6e55b6a981c56cadbf416e95b930e542fbc68104c7688dc1923f5fc0660b207c00b7433aaf87e21aafc3ec6ff798380200205f20509e8e097b485aa3383b0ff492d4dbbbbb1f1d1a008e9049895da033a67a00000056e43615b19ec05563afcdcf1731feb3cda1afae2d30f6f8f99ed80512d6893eabba1c0bdfca59e8c981441ef5c14b7826d6e9feed425d4c5ac4903a6b92ed0755e32f886b44d941c86c96bed5320b8f32d3fa9019a07bdd52ee3ff2cd4cb2fac436bcc68554c20000000000079a10000000000040e77e904b2dc277f66d513174ef42aec35f104a6b7e0bfe638fd1735b7333064ba7f0cfcbc6a63335bb9865685771f8d6df1d7d97f3f9f8e6857ff144aef7cde3010020d70b0f6133abe8b7e21aea66f1e7edc400a813d5376cba3c936b7f11f8e4ad55000001566acdc116d55167b659c6f2937ddfb29cdd787fbb9ffacbfc8f4eeb9d966d2d3b3ad6caa262abf8601295d092c82654e77a4f1180818b4d090908e2dc9d14df59a806aff7c494b17f1a7c52ad761975c39da4c84cc06f0ca73b9e1f99bc7e42994350a03331873bf4afb20cf7b5acec391ea50b8ad8bd8c61d55bc2edfa7fed83759f2ba1c527b74692319cddafd4ae4b1d0c5170bd89261b1b7b509ea46c8e41cf19828868a90c46fe8df6089924677c3eccce8c75b760e8256c600181d1a02cfa46b690d749a7684f6f79ef8a3618fac9cea11dfc24c7bfd3aed60f5ad20fc7c5872c2f77dedcdc267c5b478f04c29e30d9469e7a97e87f26ff67e9f066a4e85fd537482f814ce06a0aa70b59f852ab4086373c08a799b6bf3874fc5c4cdd0ce35c2581d8178f1dd17c50170b8083bb0d5d7bf16ff6bd3f62ef96d8fcab96d69e16464e53727d8890cbd7d864aeb7f1f75d56bf9f74020020f1e137353460643bc1a9592ebb85a42a2f912c879c20fd89e7f4646820cdf326000000562973c4eb7a9149d3356996f25c65ec465a57eb1bd9616bf8d29b560c7f8b4a5d0dd7418800e5ad835cdf63f6ae3e58b0624ace3a6f16be70c43cb56f62ddcacfd187a8bf8652052162dac4c8508fcae2a69431c1bb68", + "response": "", + "outcome": { + "settles": true, + "delete": [ + "2c132674cee1c090d5109695af602b7c", + "cf35af8bc53e0676620e3610ae9f6945", + "dd52ee3ff2cd4cb2fac436bcc68554c2" + ], + "keep": [] + } + }, + { + "name": "each_error", + "about": "one report for each DAP report error, 1 to 10: report_too_early's is kept", + "sent": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000017702728d963664f7edd5cfb5602973653490000000000079a10000000000040ac2aaa5b0f8c6587bff822d362e9b0cf5bbac61274b95b1a15b61c68cccb005256413d88bff145d0ae216ad19c60276bf581673127dc703cbcd30714a82df8c30100200eed9a445ce8b3713c118c7ef2eda94e46b939d35bbcf68587406b2facae5e7300000156be3087fa216c6f66ca52d21980d3672e3ec4d8cb5077a957096ea291941ebac14f880079a095f5a91d9e35ed36ffcfaef521edc550442bb256ca6043c19e8ff75041ab5fad1ea0e4b08f278a94f7dfec9b5291e803cbb90691597efd8dbcbe9b91a03857bc63cb7f25f183c7cd5518c9538048008e0fbf18b43b2a16ca48560f3152918530151306f744338d6aa8039e152f85a29d84fa895481a1e45bf95cc5df60c8049aa8d7c4be78739ca64a399898cd6ec2f243f3ce32dc8cd56026e9e3aaaa5b0b1f4f926fefdfb8bdfb3ee113b4cec7fc1e0f69caefa896a4d32ccf8bb5384f0334c17adf91e45cdd4326bde849bdcc499cf6f622a3e30466cbae1c5ff2e35d1cf848e15b35af6d70dfa1a2dc7488a4848533513b4e3ab45b1c62fd04e3b33aac59c43b67805c4e636b61972006ee79c0dbfc1102980626cc1449c48c0ee2f99d9696c09541811448c14ad133ad59f07361db0200207d5e109e9cc41c43f8133d0494ca4e73affd25c5314bfed45e44fa237cdfd15a000000564ef7328da1af52a9c182fade3d4522d52bbaa01dbea4eb8b9c3552ea55933eeb1ffa24b3ef90b84619d45c4c24efe2dabea2bcd350c633d13c99f2b7c1563705119d0161ab9711f208a1538a4f81ac17aa4723011fee2c39318c2ba9f6bf251ca2b36ba9559f0000000000079a1000000000004003e5e78ad3c67fdc6c40f6d499213a2b4dafb2d47c8c272e334f4ced5ea465b2ecddbca710075b348b629c3827146ccda4384bac9cadc8a5617b00ea8affd113010020f46039da55d5473ebeb08732174e09a42d794ab9abc1da130ac2c01dc846923000000156829be4c7736bbb95836b3a698965d0d20abf0345f3d84ac77f4ea0e27bc145804133390f4880f6965fba846d7fe605abcd3a6007730a1f1e353c4997289b8f478b34c78c8b60a13621bd590e3ff913529159828edb44e472a9820f69c4902fb1bff7c8d0be4a152465931962d25f35daadfb76ed10c57522c3e550a5595306b525359f77ddf6af240e8828e531127706ca7bafa7ac74a2cc4ed0cffb4bdde597197e403bdd00d55e06040304cf3c082eb14be2644a996533065e704150ec8e7312dbd703492e22038a09c1afb4ac76edc219a9e49a10668bc496d351d0e1520f12f8d3b25213b3462ee66adc065bb8610a0b4b2b0edb44e39ac32b996b3ac7d021f7dcf941e6101bd515f3769fe6437da7a5abc9ad11423a789483411782d9ea3f91e1d947373c063cb554bf99ad5fb89ff43c13db7678852ee9baa82a7f833f880da163eb7718c78a50defc5710a91953c5f5c9697d02002024b3ac604ebb544d7a482a6b0baee2331561222b4e1bc2e23dedfb8284f32710000000568754885badb4ce26c9c6c7ddd086e6e65a747b6d18239e7d0ca5e9980b00192b9119ad9689877fdf12b4106b9c8e4425c794fcee73b2ba9486f665a4fa1795f06b88f4fef8c2573b38d0e7556bcb8ae608cb005345d55c20f4fc3a24d48c93c2973b39a8c8e00000000000079a1000000000004006045bfbc6070d0807e6e8609959d0d357e531466461df7a3e2c8df715b44c5267b77f6d65e434d286f443183d00a74bfad65dd12791f67f0163cbdae73ac4f9010020227e558b93cb3a21aecba10972af28c93a4f36bc1db4b85a09fc46d3e3a4467c0000015693901cd77919383d4264ff7906933aedfc6635c387190e7fd91f858f2aca7dcc18df07f74146fdb2f868009378b58a6e59ab1120ec3c519c8034f92f910c666744384d2b9de16fe36448694af6f9327be019487e6cb11b74a42b1244eab78feb400594dc951d702fefdcb0e63f1880dc4440b35192826060ce420b8fbfeca097fca4f8e165bf1699abc16723a76ca068d5cb68384f367d1d6db836f39f4423002fc2952b8dfa981292fcee403266d70f13d68d43fb1ebb43e9967f46b36d401821116bf7cae82bc4e178cb7fba7187fea739abae1f8022ec69e90edf077bdb29d1671c5afd385812ecde5d1f91f2c64990d926b0cf0817291a0b55f034e21ae134056eb8c2c83b3de28fb7076db5e9a311be0ecbb237a528a45e02fc23025a3f9b20c7059d651acebbda92ad29b33ff9123a5cf6c5a52d831a673f3515b86b1bbb5e27319d47b0bc921294901ea7952df9fca67af61802002096d3f97ac73f0865fd907c88d9751d16f99201d2721ba32be98c633c3e05a257000000568cfee0e6f9daf7a087e8d2fd37853c7d14de4cee160f484525b35d4480974b18012446584a9625ceddbd7080b264f3f23d628b1fa3578a7173bc616a03fa08a1057aa1e97deb2c626b7e10f744759257889ad9a8841368dc229ad82d7af31c9d3aa1cd9e2c010000000000079a100000000000404f9914f979d3912c906e17880ccc90a772f1c2edeea8c47469ece5377d1fbc699481e6e4b0845d23401b5ed9085d658ac732efd18c76c264ebbeae88b2da28d40100203e5720ae9a8fe3cbe436f8f08317758eefc9522c3655f1ecabfbd5603b19057000000156b13b77ee8850b51fe4d945d0c49b713b25bc3358bdf815f1db1bc44111eeb2376d23951fb0d38e15c92415be26bd88d814d0520614f7988c849066296dd05cb4125181442513b6f444e084b32db78ac851c1fbc6cef53c16673f70b5780b31806401c4d268c6d29794dce6b7252e031aa8f41a6fb58d90329e44aae2b46c511fce6f1133918b8b672a98e88a69fe75663b6d03f149c1926f2532c03e63816a95b31a13561c70a98655bb7c662054dbec50499fa937f320c3df9c6fe8cad2a5f1869d46e1ba413265cae4ed6b0b184197a712a304fbd7005392271105225e7114efe6d749120bacb3c8a83e0685c6ebc4d3ec34ed3508ab71a54ba68a154c7f39826ccf2dd8a13697063d72571aad4946e7cb8ecd57a6f3c3c3896328c711b6c9edcad8858d44a3572a34900c3ebbe5c49a26ed4f16ebc79db354946a3a8c1b37d7b6328c548039af8e0ee26c581d6293d244b00981a0020020a69fff21ebed29af1aafc60b7ea5888e01a322a48441fe9cc8bce168c5532f1300000056e88f8f144132ef736071473d3e4bd27aab7bc7a358d403fadedc44949cb7d546b2e17d6f39b2a4de10b5f7d710f80ae4b28ac81309596f5a77fe12cdfbb08b66737b3a9983fba339b626cb60780a54b65a0a0e9c6976836f9b1333d65422f5be70dc3793e0e30000000000079a10000000000040fa778371b200a555d6dc1ceb0a258e807d6e544f301d83613192968daddf4a39db02287a8a547a8306c598c959765186b6d2257a96fc36714f27bb30f9287c680100205cb39894f900c3b0ad98974961c51cdc96bada799ea9163194b0664fc5e9391f000001561802691e9b10a3b6410ca0fb4cab53a2969b74168144138ac2e341063666134129876b1aeca1fc21efccde6cdbd6be7984eed6c6bfba1935e52c42401fc5ca0f2c2369d7050bb122bef9568856c1fd62c8a9df2ede6425a0f4cc711334ba462784fbdec2b8cb5f83f29d92b4c1a20313ba2d1f0fe0db3ff27ac7fa3fbe34b536cafb18ad40342af25e1a02ceac413dd84ae4c21e2400c31c4737a50d464ac8b6c557708b2f99bb0bbbba19888c50a3f765c7142ea647e8707635a0a07a32858bda8ce76fbebfb66f684bdcf9e58a6afb318cce91026a9efa065b440da11d81590bbfd0a4c03e682a44197d4b1f0818444b0711a4b3193480ad7e7bab987e066862355c119602dd4f3edffcc16affa90c0c95d95c93c7ecd3e663d93162830d28e010e2b4f686ab7c393948c893879845ba1114dd1e9aa5a2b9824534380eb89dd47229973f722e83450221d878a55cd7d4805a1622c00200204239438339de1485c7c370880eb51990c177bad2c0ef0be4f8903ef7d0a82d020000005665456a2b4e75af301e37f43cd1a942d57d85a8e07174a49c8ee0fe7c35dfdc0b8a7c32e62db393be8c375264fdbd2c0c9b0c59886d147604a28bf3c5ce6fd0a009b76ffd8a4b2c88659891b1f453d49df37c43dc175f85ad32fd5c292fa95088c6fd1f4f47040000000000079a100000000000404d54de454e7cbb08fe0ea1acd4d91fc5f389319db44f4884221ea7323658a667fd618a4f5b4fbbf014d702a4f665e74d6fb40ccb59b1f985062afd479d336662010020e4a5b2e379463642e19ed30e07c282ec85f89d7e15130357870604d3789c170f0000015624d874cabb4bac0f08afe4871a4ee3e6b5ceee27ea21357b7ff5eaf81589ce8e4ddd096da0a4aa07bc22fa49451ddc63a19de4c401927e7c65bc26b6991d94b7fa8f779c3233a74406f999fb4943eba220c1f0d3c66aa39517a75378790ad305a88fee385e2f219ab0b1005396ae8565bea5a7dbdb891aac281abfdd29181a37d329c03794a69197dbde1756d8856fe3f4c337f75a666f9a7b4e6226e770d5497817d6ad642127887fa74e0052b584a8eb4690410e5d07d8d0a78c91cdfbe97d181f3727e455a8b95089c2d79eb4f0ead3944159d54fc4a72da721dbed14ea9deffbe702417d65c324ff3183f155648118f0e8220ea006ef1bf1d8e04d1bbd5f058ffca1aaf1929eb24a4dc805a5c4c1259418fdfdc59f63d6f0dcda40b06ca5ff45fc54fc7af406eb998bdb1fc8cbc3598740eeabdeaeacbc335ce2671c03d20bb22ca8eb25436ca112d1d06aac8c4c771195dcc670020020a28e6d64125a7c618c2860ff91067db64fbde76b5d45e0be4bd23076a031f65100000056276477dacfdea8a9e9b25eea08bb72622923a2bfccfa8c06d9a99207ea0aa1fa212f2a0ac1cadd3ad5b5641223afe909009036fe2e7b9ae7e313091cc910ead0a2cdacd7e49a0165deaa36d4e028ec28ce15e25e76099c0b3b4def2df1a08cb571598d583f560000000000079a10000000000040df59255b14a02772557f4e6b255c18465faef6716848ace42ac161fadca8653015fa96075066d164e6474e1675c1774ba492eeb9917472895a3cf3627e378bfa010020a199579135ab9c197b5e02baa65b7841325d0efa1cb66d255687ffa28d66c013000001566c59e6d54870590a7b89fbb478ea49926a1c1f49cba54744e61ca91f50f0b1db6ece8ef0d63e214ac1563398a9873157c9afba71a2d5735cbca03364c8cc6c0a811cff989894fd17563888c11f632d3dd0c6dace899b72b92ac57e0db5fdb83697a8fe8003cd5a5f97d02e1b1304f896205b65fb053fe9d9fa7ffe2aea3fd2d851d2357900beabd2a5fcba8d6ebeaea5be03a1c0f7c5af3b056aa24dfb548086c4a55929bac4bf646419e892e2d1e560a662a5ad5a014c8aa3697ab274de321073aafe1fa092eb7219c626b7d35e605d5ed9bc321938074a4a733f6e6ffbe46f87c8fc4170736c6158815a21e82cc8fce054c91a20530e4c221a6a99cd6dfedcc3fa34c1736ec48e1379716895dcc3a1b2fdc58beea7e7a06c290b6df36e60f49242abc42c061afa2f6720d59dfa8f7551ffd22468de1a281237e76069159d03db5b54cccb2378e97d07b554cd55585c26483d29ce270200209486892acf11717409efbcbec38f2119e650a42b456d6b3a358a98d2d3a0ac63000000568eab23340bf5ecc27e47671d477f1a2c725a419e02ae24ea776663abbafad9842d12f8238070786e11f3e024f0c608b02cb2a1cdd33eab8560daf3b09d8fcd8c01f5193253ef264968b6f3a058b09d97f39e2c9239c89da753867a358068b781aa9c5845d7260000000000079a100000000000405a67f31369dc13f5e9eec6d6df15cdd7fb904fdc0ca6be64b421bdb755996ce95eaa0eb92b9eab53d0de07291d88af36ebd5daa13897003b2884bfa41b5e9640010020345ece111a6177e2cbab4b5713e12faff0f2958f909c701e876ff5f5cedf1363000001568505fd862bbab719d47fb0b0f0d7948f45c39f850210a3ca4044574626447b10b8c1db76307b636ec9c3c38319ed997873575c7a9ef760b1934c4f357887a3089ab93f654c3bcbd3e269aaf7353134a943e1f6464bb5f247a2fbf5273d5206c926b0dee62489cc78b2c29970ce8a7065ba66c1acb1c6ba6d6c9518685282635ce6f7d705904e7894f2bd20ef84141edc5f89a5e848016e53585a7896a8be5714e7744e2d238520321cde0f2063e120581b6fa893abbfcf77ed786501ade61e90bc70f43cae1ac17d8f95664636862e72b6c11338c4220d8c6819d8cc4691acc81085bd42a7ac1b2d2cd40172d17ed26a99659cff1b751b825d89b97825f4ebc686baa61f75156fb3f42e3debc05a7e118ab1047f0ab88eac5cf15309475d4146b80c3e49aec19ac95ab98fd2bfe228f9a16803b9fe164e66bf92350be2127db00125fcc750178dbc93f55a2fd34392e7f6cee2c34a320200200fb346056ec2074445ef70e69bc3c6b355eef302849b4401b5281da26b68782b000000564dbcbe99f071ed91bb3eb526c1ef758655486ae2f642a7de031b023b193fad77c5244458416e89be26561823532bcbab5089df2fe42756cc44171ed375b2674b0f0710e83784fa615b98cfa158bf4b7bf1a48a44b52dd6f146cc97f8781d16b4fbc0f0149e650000000000079a10000000000040a9206fc49732822bb2c87e1cce285f6e677e16205eec02c534aa41db789a14465f3a172f7b0a4ecbc4d93a7d28c7fbbb6f584443bdd82eb4b641beb1435e9d2b010020e1765c5756fc7b42550cc370e185fe0458ddfc52f46341ff6ad713af8fc1703c00000156c217b07f58cab0fc5634c9240eb708115823f094d80d1428e3bd16111acb8e1e17350ef1b0ed472f05303270097948b8a7f7f20be0160f7c98b8b330f5560cd493f3a54c50dbb78038f928e8763c5a42bd271def56c98e43fe2b38ce7ca67897cc141d81b18500494384ec0952e34dbe4e25e34e0fd23a52cb59d4dbb45daeff8a98396b09a23070705d1baa8512e6b44c626caa9230e6107a8a94dc73d445c344b607a0c5de16f1e8162031c3bd420efb231607019af8583535751bf32e68693c8c3d956dd92e98e9428d27eac9ba7c5a89e4f1f4f4bfcac5173681d76f932dcdf7d426427f1107b133aa9ada34975341bda5b862a23cdc1644ef6b9fff8803ccddcc41a09e9b2f97729c1e907922eabcaef6797287f0def3017babce8fd28d9171419336cb3cb7ff93c5102d0f83c4828e477d020b236f1f183a10668729051944008467eb9a8502665d8b7512c38dda3e4758d37f0200201353d2532f32c7b3c7f997fdf5d7501edaf919e59c1eed6e5aa22ae80eb41a200000005644ca5748b920622f2251945997743635770de3a31e393ae6ff5fecabc361a6ac4485f52ce91b7ccb6bc62fd2007f2f8c1d9974923ee7bff20aae5fdcf953abfc9a0837db49eba6994f9e4fb9a1b0c6b070c027329310fc8ebf75280f0cc91515013e49d5617b0000000000079a1000000000004067e5421b58ed85ab0239298cd27b0219cfff94d4a8af22c5de1a627499dfe9df649b548adf2e6f7f391be6d870333a9f8fac59776851f4ccac547d9e5a9100ce010020430c785024357632f6908060f26a346c79d264c75e78cb68908340e9ce90d31000000156c55ed4ea37c25ec194381213dd8365eedabe7939783cacc951356e384ea09c83dd696fa29cd0ea8b5533c4f9dbfad38a3c1fece7d451e0af27280cdc237e0e52e6bfdac4f608809ad5ed39270b545abacd44b8b1c717547b4c11518647f042ebb02dfda150c5005084a9f43448db94d61dc88d1353e2aa69d349793b0b159ac7ae0d12e06c2c80b6d85521660e6325c94261f208fcebe941442fcb4d8ae7180be2ae8e11f1a89fb54b186c891fac40f0fe5dcd1063f667ee7625d00fc589b325d244da8b30896523ea23216aa58384c6041c9fc59d383521f036daa2274c6e841d1a51b8ff075dd5cab6d2515e4d2d7b5901ff77ec0820826fff7e9b61661664727a276036975c66ea503db00a5dc61d00d955c673f6b8d9c972995bb0c752d7a0ac260ae1e195b50220c40cfbbc5737c5d4166d39c19586e1bdb4b172c5763dde449d21c1e3877e7aad5e3957b398ce78f2cad7b782020020b1963db3d325b6676c81604a69bacccc892b848231016f05be7515eb1c186d1400000056cc78b7491f002bad258fa2e76d14f3e0994b29334c22d9b1cd4e80133d776ccd364435fd53bab742c3704b5e0bfad09606ee95a1cf0bd7a5725c13f61724e404c632b18c2941ebde61ce9d488434f7e0bc801d2058ac", + "response": "2728d963664f7edd5cfb560297365349012c39318c2ba9f6bf251ca2b36ba9559f025c20f4fc3a24d48c93c2973b39a8c8e00368dc229ad82d7af31c9d3aa1cd9e2c0104836f9b1333d65422f5be70dc3793e0e30585ad32fd5c292fa95088c6fd1f4f4704069c0b3b4def2df1a08cb571598d583f56079da753867a358068b781aa9c5845d72608d6f146cc97f8781d16b4fbc0f0149e6509fc8ebf75280f0cc91515013e49d5617b0a", + "outcome": { + "settles": true, + "delete": [ + "2728d963664f7edd5cfb560297365349", + "2c39318c2ba9f6bf251ca2b36ba9559f", + "5c20f4fc3a24d48c93c2973b39a8c8e0", + "68dc229ad82d7af31c9d3aa1cd9e2c01", + "836f9b1333d65422f5be70dc3793e0e3", + "85ad32fd5c292fa95088c6fd1f4f4704", + "9c0b3b4def2df1a08cb571598d583f56", + "d6f146cc97f8781d16b4fbc0f0149e65", + "fc8ebf75280f0cc91515013e49d5617b" + ], + "keep": [ + "9da753867a358068b781aa9c5845d726" + ] + } + }, + { + "name": "unknown_error_value", + "about": "an error value DAP does not define: kept", + "sent": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000007082c132674cee1c090d5109695af602b7c0000000000079a100000000000403d3faaf9a618207f50e0cea86cdff9334b9e84c49ecf5dcfc5b494354f6bc3ec6ccdac8e8fa78057e1993c2a568a4c4e40af47c219679066a6a5ee1f6265f32c01002096c258692d0435732c4316f91439994e90e2bb803331ee5f2f3f3f6391b99d5100000156ead8a18019f9cc262f9c6d95b8a2f17571d6833493408bf115680b10d8d5b68592a22d6fae11240e2c3deea275509d355e0d61148a0f9178d1c1f6326e379b6269a0667e2d3186430beb0954cb8dcd78f155c7f0315696cee7d9115e7b15d7e1745f4846079663ee68db1d4bbb2163d508e7f6851c707dc40c5616d25c058a39a1370e5cc0c10da372e2ac6ff34f101ad44ce2ef7b8a2e9aa35cc215559c2fd9034d34aafc274a813fd6af5ba8b83d4e72c708c3e85b385c22ac00e54233c3da622738d680539cab7fa9b9839037b9fd85356306ff7255ad1b36a865ae5ead96fa5bd4d5794118a611ed8528e78a0b6859d29f0cc40429014e63710e28dacbd8561f1c23702a58028af2d11409df93ee999cf83132c0e153730a85b0e60ba8ec6d0977b6b900d0930125c7f49ef3ae03610bfecfa8d31a868e77b9949d7a06072d16f65d2d7b4ea99e03792ae72c40920f2ce6eb4eb4020020f86c72eac2fc589703a74aaba1157be5d9240ef7fc8a9a0555874b314883c41600000056375a2e3bc6ac9e1fb9c45272bfef888b9adcf2efc0dcbd62de41aeb77a67393620d46efc4ec00154735fe8f91738c39218e6485a5df2c348eba239886343c96ec87b5d812ac3555dda836fafa052748646a304b9fc5ecf35af8bc53e0676620e3610ae9f69450000000000079a10000000000040a635e91a59591f57f8d4ee213bcc9be102e37146c985224c18fcce0a710614a087cb0e071eceaecb7173578c188d4b48112c74d7eeaf778408732a1e4f7f25d90100203b78e2e43cdfd97a4a0448c1f66779a270ebcad58b398807a46e3e135bee6e0000000156c1dc62120994aa44d75674e4c0879d264f9a4f427cb6cf1d4ec442306f6afc1a11ed166a0028a9039bfa500c15fb61ed669fd364f08dfb95dbae1a68ce798e0c46269917c29d9f324d06704010f4730e88cdfed863d4a67e64283b02f88813b163022868f2c9a37019810c22711b7a28f4d225455ec30557961e0310cc064ce65ffafc1b658f1aa689db445818d8df3c5a8d28ec03af21f612337450e4625fbf72ba15ae25ef0438b3fa0504feba5d5816f36f3ab53d072a7edeb0d6f7493177991da6a9b84d1239f9a7f1c33a8824062c7c96a66b39f84f3736f2af23b24b5f26d6a402606f4052bd2ce4be38d58d154ff9d980005ed3a7c788c499dc474fe65b591e62f1c5a321f6ec6e87339c0dbd9c5839188ca665387a6959e31db3dab2228d9983564f3f6e55b6a981c56cadbf416e95b930e542fbc68104c7688dc1923f5fc0660b207c00b7433aaf87e21aafc3ec6ff798380200205f20509e8e097b485aa3383b0ff492d4dbbbbb1f1d1a008e9049895da033a67a00000056e43615b19ec05563afcdcf1731feb3cda1afae2d30f6f8f99ed80512d6893eabba1c0bdfca59e8c981441ef5c14b7826d6e9feed425d4c5ac4903a6b92ed0755e32f886b44d941c86c96bed5320b8f32d3fa9019a07bdd52ee3ff2cd4cb2fac436bcc68554c20000000000079a10000000000040e77e904b2dc277f66d513174ef42aec35f104a6b7e0bfe638fd1735b7333064ba7f0cfcbc6a63335bb9865685771f8d6df1d7d97f3f9f8e6857ff144aef7cde3010020d70b0f6133abe8b7e21aea66f1e7edc400a813d5376cba3c936b7f11f8e4ad55000001566acdc116d55167b659c6f2937ddfb29cdd787fbb9ffacbfc8f4eeb9d966d2d3b3ad6caa262abf8601295d092c82654e77a4f1180818b4d090908e2dc9d14df59a806aff7c494b17f1a7c52ad761975c39da4c84cc06f0ca73b9e1f99bc7e42994350a03331873bf4afb20cf7b5acec391ea50b8ad8bd8c61d55bc2edfa7fed83759f2ba1c527b74692319cddafd4ae4b1d0c5170bd89261b1b7b509ea46c8e41cf19828868a90c46fe8df6089924677c3eccce8c75b760e8256c600181d1a02cfa46b690d749a7684f6f79ef8a3618fac9cea11dfc24c7bfd3aed60f5ad20fc7c5872c2f77dedcdc267c5b478f04c29e30d9469e7a97e87f26ff67e9f066a4e85fd537482f814ce06a0aa70b59f852ab4086373c08a799b6bf3874fc5c4cdd0ce35c2581d8178f1dd17c50170b8083bb0d5d7bf16ff6bd3f62ef96d8fcab96d69e16464e53727d8890cbd7d864aeb7f1f75d56bf9f74020020f1e137353460643bc1a9592ebb85a42a2f912c879c20fd89e7f4646820cdf326000000562973c4eb7a9149d3356996f25c65ec465a57eb1bd9616bf8d29b560c7f8b4a5d0dd7418800e5ad835cdf63f6ae3e58b0624ace3a6f16be70c43cb56f62ddcacfd187a8bf8652052162dac4c8508fcae2a69431c1bb68", + "response": "cf35af8bc53e0676620e3610ae9f69450b", + "outcome": { + "settles": true, + "delete": [ + "2c132674cee1c090d5109695af602b7c", + "dd52ee3ff2cd4cb2fac436bcc68554c2" + ], + "keep": [ + "cf35af8bc53e0676620e3610ae9f6945" + ] + } + }, + { + "name": "foreign_response", + "about": "an entry for an id not in the file", + "sent": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000007082c132674cee1c090d5109695af602b7c0000000000079a100000000000403d3faaf9a618207f50e0cea86cdff9334b9e84c49ecf5dcfc5b494354f6bc3ec6ccdac8e8fa78057e1993c2a568a4c4e40af47c219679066a6a5ee1f6265f32c01002096c258692d0435732c4316f91439994e90e2bb803331ee5f2f3f3f6391b99d5100000156ead8a18019f9cc262f9c6d95b8a2f17571d6833493408bf115680b10d8d5b68592a22d6fae11240e2c3deea275509d355e0d61148a0f9178d1c1f6326e379b6269a0667e2d3186430beb0954cb8dcd78f155c7f0315696cee7d9115e7b15d7e1745f4846079663ee68db1d4bbb2163d508e7f6851c707dc40c5616d25c058a39a1370e5cc0c10da372e2ac6ff34f101ad44ce2ef7b8a2e9aa35cc215559c2fd9034d34aafc274a813fd6af5ba8b83d4e72c708c3e85b385c22ac00e54233c3da622738d680539cab7fa9b9839037b9fd85356306ff7255ad1b36a865ae5ead96fa5bd4d5794118a611ed8528e78a0b6859d29f0cc40429014e63710e28dacbd8561f1c23702a58028af2d11409df93ee999cf83132c0e153730a85b0e60ba8ec6d0977b6b900d0930125c7f49ef3ae03610bfecfa8d31a868e77b9949d7a06072d16f65d2d7b4ea99e03792ae72c40920f2ce6eb4eb4020020f86c72eac2fc589703a74aaba1157be5d9240ef7fc8a9a0555874b314883c41600000056375a2e3bc6ac9e1fb9c45272bfef888b9adcf2efc0dcbd62de41aeb77a67393620d46efc4ec00154735fe8f91738c39218e6485a5df2c348eba239886343c96ec87b5d812ac3555dda836fafa052748646a304b9fc5ecf35af8bc53e0676620e3610ae9f69450000000000079a10000000000040a635e91a59591f57f8d4ee213bcc9be102e37146c985224c18fcce0a710614a087cb0e071eceaecb7173578c188d4b48112c74d7eeaf778408732a1e4f7f25d90100203b78e2e43cdfd97a4a0448c1f66779a270ebcad58b398807a46e3e135bee6e0000000156c1dc62120994aa44d75674e4c0879d264f9a4f427cb6cf1d4ec442306f6afc1a11ed166a0028a9039bfa500c15fb61ed669fd364f08dfb95dbae1a68ce798e0c46269917c29d9f324d06704010f4730e88cdfed863d4a67e64283b02f88813b163022868f2c9a37019810c22711b7a28f4d225455ec30557961e0310cc064ce65ffafc1b658f1aa689db445818d8df3c5a8d28ec03af21f612337450e4625fbf72ba15ae25ef0438b3fa0504feba5d5816f36f3ab53d072a7edeb0d6f7493177991da6a9b84d1239f9a7f1c33a8824062c7c96a66b39f84f3736f2af23b24b5f26d6a402606f4052bd2ce4be38d58d154ff9d980005ed3a7c788c499dc474fe65b591e62f1c5a321f6ec6e87339c0dbd9c5839188ca665387a6959e31db3dab2228d9983564f3f6e55b6a981c56cadbf416e95b930e542fbc68104c7688dc1923f5fc0660b207c00b7433aaf87e21aafc3ec6ff798380200205f20509e8e097b485aa3383b0ff492d4dbbbbb1f1d1a008e9049895da033a67a00000056e43615b19ec05563afcdcf1731feb3cda1afae2d30f6f8f99ed80512d6893eabba1c0bdfca59e8c981441ef5c14b7826d6e9feed425d4c5ac4903a6b92ed0755e32f886b44d941c86c96bed5320b8f32d3fa9019a07bdd52ee3ff2cd4cb2fac436bcc68554c20000000000079a10000000000040e77e904b2dc277f66d513174ef42aec35f104a6b7e0bfe638fd1735b7333064ba7f0cfcbc6a63335bb9865685771f8d6df1d7d97f3f9f8e6857ff144aef7cde3010020d70b0f6133abe8b7e21aea66f1e7edc400a813d5376cba3c936b7f11f8e4ad55000001566acdc116d55167b659c6f2937ddfb29cdd787fbb9ffacbfc8f4eeb9d966d2d3b3ad6caa262abf8601295d092c82654e77a4f1180818b4d090908e2dc9d14df59a806aff7c494b17f1a7c52ad761975c39da4c84cc06f0ca73b9e1f99bc7e42994350a03331873bf4afb20cf7b5acec391ea50b8ad8bd8c61d55bc2edfa7fed83759f2ba1c527b74692319cddafd4ae4b1d0c5170bd89261b1b7b509ea46c8e41cf19828868a90c46fe8df6089924677c3eccce8c75b760e8256c600181d1a02cfa46b690d749a7684f6f79ef8a3618fac9cea11dfc24c7bfd3aed60f5ad20fc7c5872c2f77dedcdc267c5b478f04c29e30d9469e7a97e87f26ff67e9f066a4e85fd537482f814ce06a0aa70b59f852ab4086373c08a799b6bf3874fc5c4cdd0ce35c2581d8178f1dd17c50170b8083bb0d5d7bf16ff6bd3f62ef96d8fcab96d69e16464e53727d8890cbd7d864aeb7f1f75d56bf9f74020020f1e137353460643bc1a9592ebb85a42a2f912c879c20fd89e7f4646820cdf326000000562973c4eb7a9149d3356996f25c65ec465a57eb1bd9616bf8d29b560c7f8b4a5d0dd7418800e5ad835cdf63f6ae3e58b0624ace3a6f16be70c43cb56f62ddcacfd187a8bf8652052162dac4c8508fcae2a69431c1bb68", + "response": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee02", + "outcome": { + "settles": false, + "delete": [], + "keep": [ + "2c132674cee1c090d5109695af602b7c", + "cf35af8bc53e0676620e3610ae9f6945", + "dd52ee3ff2cd4cb2fac436bcc68554c2" + ] + } + }, + { + "name": "out_of_order_response", + "about": "two entries out of the file's order", + "sent": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000007082c132674cee1c090d5109695af602b7c0000000000079a100000000000403d3faaf9a618207f50e0cea86cdff9334b9e84c49ecf5dcfc5b494354f6bc3ec6ccdac8e8fa78057e1993c2a568a4c4e40af47c219679066a6a5ee1f6265f32c01002096c258692d0435732c4316f91439994e90e2bb803331ee5f2f3f3f6391b99d5100000156ead8a18019f9cc262f9c6d95b8a2f17571d6833493408bf115680b10d8d5b68592a22d6fae11240e2c3deea275509d355e0d61148a0f9178d1c1f6326e379b6269a0667e2d3186430beb0954cb8dcd78f155c7f0315696cee7d9115e7b15d7e1745f4846079663ee68db1d4bbb2163d508e7f6851c707dc40c5616d25c058a39a1370e5cc0c10da372e2ac6ff34f101ad44ce2ef7b8a2e9aa35cc215559c2fd9034d34aafc274a813fd6af5ba8b83d4e72c708c3e85b385c22ac00e54233c3da622738d680539cab7fa9b9839037b9fd85356306ff7255ad1b36a865ae5ead96fa5bd4d5794118a611ed8528e78a0b6859d29f0cc40429014e63710e28dacbd8561f1c23702a58028af2d11409df93ee999cf83132c0e153730a85b0e60ba8ec6d0977b6b900d0930125c7f49ef3ae03610bfecfa8d31a868e77b9949d7a06072d16f65d2d7b4ea99e03792ae72c40920f2ce6eb4eb4020020f86c72eac2fc589703a74aaba1157be5d9240ef7fc8a9a0555874b314883c41600000056375a2e3bc6ac9e1fb9c45272bfef888b9adcf2efc0dcbd62de41aeb77a67393620d46efc4ec00154735fe8f91738c39218e6485a5df2c348eba239886343c96ec87b5d812ac3555dda836fafa052748646a304b9fc5ecf35af8bc53e0676620e3610ae9f69450000000000079a10000000000040a635e91a59591f57f8d4ee213bcc9be102e37146c985224c18fcce0a710614a087cb0e071eceaecb7173578c188d4b48112c74d7eeaf778408732a1e4f7f25d90100203b78e2e43cdfd97a4a0448c1f66779a270ebcad58b398807a46e3e135bee6e0000000156c1dc62120994aa44d75674e4c0879d264f9a4f427cb6cf1d4ec442306f6afc1a11ed166a0028a9039bfa500c15fb61ed669fd364f08dfb95dbae1a68ce798e0c46269917c29d9f324d06704010f4730e88cdfed863d4a67e64283b02f88813b163022868f2c9a37019810c22711b7a28f4d225455ec30557961e0310cc064ce65ffafc1b658f1aa689db445818d8df3c5a8d28ec03af21f612337450e4625fbf72ba15ae25ef0438b3fa0504feba5d5816f36f3ab53d072a7edeb0d6f7493177991da6a9b84d1239f9a7f1c33a8824062c7c96a66b39f84f3736f2af23b24b5f26d6a402606f4052bd2ce4be38d58d154ff9d980005ed3a7c788c499dc474fe65b591e62f1c5a321f6ec6e87339c0dbd9c5839188ca665387a6959e31db3dab2228d9983564f3f6e55b6a981c56cadbf416e95b930e542fbc68104c7688dc1923f5fc0660b207c00b7433aaf87e21aafc3ec6ff798380200205f20509e8e097b485aa3383b0ff492d4dbbbbb1f1d1a008e9049895da033a67a00000056e43615b19ec05563afcdcf1731feb3cda1afae2d30f6f8f99ed80512d6893eabba1c0bdfca59e8c981441ef5c14b7826d6e9feed425d4c5ac4903a6b92ed0755e32f886b44d941c86c96bed5320b8f32d3fa9019a07bdd52ee3ff2cd4cb2fac436bcc68554c20000000000079a10000000000040e77e904b2dc277f66d513174ef42aec35f104a6b7e0bfe638fd1735b7333064ba7f0cfcbc6a63335bb9865685771f8d6df1d7d97f3f9f8e6857ff144aef7cde3010020d70b0f6133abe8b7e21aea66f1e7edc400a813d5376cba3c936b7f11f8e4ad55000001566acdc116d55167b659c6f2937ddfb29cdd787fbb9ffacbfc8f4eeb9d966d2d3b3ad6caa262abf8601295d092c82654e77a4f1180818b4d090908e2dc9d14df59a806aff7c494b17f1a7c52ad761975c39da4c84cc06f0ca73b9e1f99bc7e42994350a03331873bf4afb20cf7b5acec391ea50b8ad8bd8c61d55bc2edfa7fed83759f2ba1c527b74692319cddafd4ae4b1d0c5170bd89261b1b7b509ea46c8e41cf19828868a90c46fe8df6089924677c3eccce8c75b760e8256c600181d1a02cfa46b690d749a7684f6f79ef8a3618fac9cea11dfc24c7bfd3aed60f5ad20fc7c5872c2f77dedcdc267c5b478f04c29e30d9469e7a97e87f26ff67e9f066a4e85fd537482f814ce06a0aa70b59f852ab4086373c08a799b6bf3874fc5c4cdd0ce35c2581d8178f1dd17c50170b8083bb0d5d7bf16ff6bd3f62ef96d8fcab96d69e16464e53727d8890cbd7d864aeb7f1f75d56bf9f74020020f1e137353460643bc1a9592ebb85a42a2f912c879c20fd89e7f4646820cdf326000000562973c4eb7a9149d3356996f25c65ec465a57eb1bd9616bf8d29b560c7f8b4a5d0dd7418800e5ad835cdf63f6ae3e58b0624ace3a6f16be70c43cb56f62ddcacfd187a8bf8652052162dac4c8508fcae2a69431c1bb68", + "response": "dd52ee3ff2cd4cb2fac436bcc68554c2022c132674cee1c090d5109695af602b7c02", + "outcome": { + "settles": false, + "delete": [], + "keep": [ + "2c132674cee1c090d5109695af602b7c", + "cf35af8bc53e0676620e3610ae9f6945", + "dd52ee3ff2cd4cb2fac436bcc68554c2" + ] + } + }, + { + "name": "truncated_response", + "about": "an entry a byte short", + "sent": "5749553101f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e000007082c132674cee1c090d5109695af602b7c0000000000079a100000000000403d3faaf9a618207f50e0cea86cdff9334b9e84c49ecf5dcfc5b494354f6bc3ec6ccdac8e8fa78057e1993c2a568a4c4e40af47c219679066a6a5ee1f6265f32c01002096c258692d0435732c4316f91439994e90e2bb803331ee5f2f3f3f6391b99d5100000156ead8a18019f9cc262f9c6d95b8a2f17571d6833493408bf115680b10d8d5b68592a22d6fae11240e2c3deea275509d355e0d61148a0f9178d1c1f6326e379b6269a0667e2d3186430beb0954cb8dcd78f155c7f0315696cee7d9115e7b15d7e1745f4846079663ee68db1d4bbb2163d508e7f6851c707dc40c5616d25c058a39a1370e5cc0c10da372e2ac6ff34f101ad44ce2ef7b8a2e9aa35cc215559c2fd9034d34aafc274a813fd6af5ba8b83d4e72c708c3e85b385c22ac00e54233c3da622738d680539cab7fa9b9839037b9fd85356306ff7255ad1b36a865ae5ead96fa5bd4d5794118a611ed8528e78a0b6859d29f0cc40429014e63710e28dacbd8561f1c23702a58028af2d11409df93ee999cf83132c0e153730a85b0e60ba8ec6d0977b6b900d0930125c7f49ef3ae03610bfecfa8d31a868e77b9949d7a06072d16f65d2d7b4ea99e03792ae72c40920f2ce6eb4eb4020020f86c72eac2fc589703a74aaba1157be5d9240ef7fc8a9a0555874b314883c41600000056375a2e3bc6ac9e1fb9c45272bfef888b9adcf2efc0dcbd62de41aeb77a67393620d46efc4ec00154735fe8f91738c39218e6485a5df2c348eba239886343c96ec87b5d812ac3555dda836fafa052748646a304b9fc5ecf35af8bc53e0676620e3610ae9f69450000000000079a10000000000040a635e91a59591f57f8d4ee213bcc9be102e37146c985224c18fcce0a710614a087cb0e071eceaecb7173578c188d4b48112c74d7eeaf778408732a1e4f7f25d90100203b78e2e43cdfd97a4a0448c1f66779a270ebcad58b398807a46e3e135bee6e0000000156c1dc62120994aa44d75674e4c0879d264f9a4f427cb6cf1d4ec442306f6afc1a11ed166a0028a9039bfa500c15fb61ed669fd364f08dfb95dbae1a68ce798e0c46269917c29d9f324d06704010f4730e88cdfed863d4a67e64283b02f88813b163022868f2c9a37019810c22711b7a28f4d225455ec30557961e0310cc064ce65ffafc1b658f1aa689db445818d8df3c5a8d28ec03af21f612337450e4625fbf72ba15ae25ef0438b3fa0504feba5d5816f36f3ab53d072a7edeb0d6f7493177991da6a9b84d1239f9a7f1c33a8824062c7c96a66b39f84f3736f2af23b24b5f26d6a402606f4052bd2ce4be38d58d154ff9d980005ed3a7c788c499dc474fe65b591e62f1c5a321f6ec6e87339c0dbd9c5839188ca665387a6959e31db3dab2228d9983564f3f6e55b6a981c56cadbf416e95b930e542fbc68104c7688dc1923f5fc0660b207c00b7433aaf87e21aafc3ec6ff798380200205f20509e8e097b485aa3383b0ff492d4dbbbbb1f1d1a008e9049895da033a67a00000056e43615b19ec05563afcdcf1731feb3cda1afae2d30f6f8f99ed80512d6893eabba1c0bdfca59e8c981441ef5c14b7826d6e9feed425d4c5ac4903a6b92ed0755e32f886b44d941c86c96bed5320b8f32d3fa9019a07bdd52ee3ff2cd4cb2fac436bcc68554c20000000000079a10000000000040e77e904b2dc277f66d513174ef42aec35f104a6b7e0bfe638fd1735b7333064ba7f0cfcbc6a63335bb9865685771f8d6df1d7d97f3f9f8e6857ff144aef7cde3010020d70b0f6133abe8b7e21aea66f1e7edc400a813d5376cba3c936b7f11f8e4ad55000001566acdc116d55167b659c6f2937ddfb29cdd787fbb9ffacbfc8f4eeb9d966d2d3b3ad6caa262abf8601295d092c82654e77a4f1180818b4d090908e2dc9d14df59a806aff7c494b17f1a7c52ad761975c39da4c84cc06f0ca73b9e1f99bc7e42994350a03331873bf4afb20cf7b5acec391ea50b8ad8bd8c61d55bc2edfa7fed83759f2ba1c527b74692319cddafd4ae4b1d0c5170bd89261b1b7b509ea46c8e41cf19828868a90c46fe8df6089924677c3eccce8c75b760e8256c600181d1a02cfa46b690d749a7684f6f79ef8a3618fac9cea11dfc24c7bfd3aed60f5ad20fc7c5872c2f77dedcdc267c5b478f04c29e30d9469e7a97e87f26ff67e9f066a4e85fd537482f814ce06a0aa70b59f852ab4086373c08a799b6bf3874fc5c4cdd0ce35c2581d8178f1dd17c50170b8083bb0d5d7bf16ff6bd3f62ef96d8fcab96d69e16464e53727d8890cbd7d864aeb7f1f75d56bf9f74020020f1e137353460643bc1a9592ebb85a42a2f912c879c20fd89e7f4646820cdf326000000562973c4eb7a9149d3356996f25c65ec465a57eb1bd9616bf8d29b560c7f8b4a5d0dd7418800e5ad835cdf63f6ae3e58b0624ace3a6f16be70c43cb56f62ddcacfd187a8bf8652052162dac4c8508fcae2a69431c1bb68", + "response": "2c132674cee1c090d5109695af602b7c", + "outcome": { + "settles": false, + "delete": [], + "keep": [ + "2c132674cee1c090d5109695af602b7c", + "cf35af8bc53e0676620e3610ae9f6945", + "dd52ee3ff2cd4cb2fac436bcc68554c2" + ] + } + } + ], + "receipts": [ + { + "name": "r0", + "about": "the flight's bucket b0, with its reports", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ], + "outcome": { + "outcome": "accept", + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "measure": "impressions", + "vdaf": "Prio3Histogram", + "vdaf_config": "0000001e00000006", + "scope": "39336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159", + "time_precision": 3600, + "min_batch_size": 50, + "batch": { + "start": 498192, + "duration": 1 + }, + "interval": { + "start": 498192, + "duration": 1 + }, + "report_count": 50, + "result": [ + 10, + 10, + 10, + 10, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "leader": "5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6", + "helper": "ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf", + "collector": "6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1", + "reports_checked": true + } + }, + { + "name": "r12", + "about": "the flight's buckets b1 and b2, with their reports", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ], + "outcome": { + "outcome": "accept", + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "measure": "impressions", + "vdaf": "Prio3Histogram", + "vdaf_config": "0000001e00000006", + "scope": "39336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159", + "time_precision": 3600, + "min_batch_size": 50, + "batch": { + "start": 498193, + "duration": 2 + }, + "interval": { + "start": 498193, + "duration": 2 + }, + "report_count": 50, + "result": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 10, + 10, + 10, + 9 + ], + "leader": "5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6", + "helper": "ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf", + "collector": "6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1", + "reports_checked": true + } + }, + { + "name": "r_open", + "about": "the open flow's receipt, under its catalogue", + "receipt": "5751413101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a10000000000000000100000132575153310102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d000000500377d51ea65b8049fd14b449b9152460aea8e9f38a9603c27a0ee75e4c71b15715f578722de78be2e4f6e19378bb291b18a6a005fa8f03db4b469421c64481c0831cb938f26e24d2020a260e757895d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe67530ad7d77032ca9d0f7f350ce7157e122bd0d1b4d2257988da8609c29624ffcbb198ae5a72b29d22a99f6340b2fa8778974722add10d8fdf16825b9034efd0900000132575153310103f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d0000005008892ae159a47fb6e6ea4bb646eadb9f5d57160c7569fc3d69f118a1b38e4ea8f60a878dd218741dff081e6c8744d6e4f3595ffa0570fc2498b96bde39bb7e3f88e346c70d91db2de1f5d9f18a876a2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2f9db4277d756cd023d67b3d7e54b39f3cc3d4a433b3e68e3869826cdb4de5e63b0e58241d3b20077663749eed49ea3edeeb56ef5d4c0cddc92b6a6664738b0c00050000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1c5cdf6b392c59a4ab0db740441fb012e6d2ef51786b75765fa2bad6fabedfeec35a348e88e1d6da95bfdc9b14f86910b3ee39c26e1aa3ab01b57c947279d2e04", + "catalogue": "574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020000", + "reports": [ + { + "id": "02ff0c1419e1600308bbbf51099c2b93", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0450c98206bd4a9d2485ae82f6e9cbcc", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0509a8adfb2ae1ba0039b9c496452893", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0a6be3e2be908e89522d1beaf56b0ef4", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0cf3a002b88570579bfce19b2f767fcd", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "105d8ef8683d29f1d7ed994bd4f8e6a3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "1069a899d70e1cb334ca074ed7953886", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "111bfa7066716d42db6963cea2fb9511", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "11f3e5b3feb409823f48daefaa726daa", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "1e2cc57da25e021dcfba481c36592509", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "1fb184bd29f8c9b893f479f38d573ef2", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "227b44efd291cbac7529ce4ae0db7c49", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "286ebbd1cf43fdbacb173942afa028c3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "31543af0c481d4cdc66708411c59e0a6", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "362f26f8bc8c16b5b3cf93a29830a17b", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "42d99cb135ee8df3127e7384c1232614", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "433031122766c44947461d165bf91707", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "476d34e5d689e984fd002c4924ca676e", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "4a568385097e5286eb158ab7d9b734ab", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "4d90ea560ebdec051d92a183237e8f0a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "50f7072754d8ffdd90fcc1a6c13518b4", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "55044fb7356c4fa85f82c0048af09dc3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "6ae99658c3db67a6f105da1f42689130", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "6f78f1e6ab909855055639a30ee49f99", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "70c23bfd9c06ffa92b33fc16cdb057bb", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "77238d008cf09d153910a35921c390fe", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "7d1526984513c531ef0a2bf80d9692a1", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "8cae5f27c35cad8bacfd55a201a03f08", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "8cb0a9b3ee0ef418065bbc02fbd0904a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "a69cbed7f0df01023fffc42c30548336", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "acf35012a2ed23aaaaf6ad5030320c0f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "adf7b36018c013855bb91b533fb9e3ee", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "b953cc3d35339d48da5c52727933c17d", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "ba964cd33f00f7f43cf0a7819b0e090a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "bc0bb4195fd8b01ac940e234e6d8b53f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "c0e696f14f9f0a950e46c802c3979d0f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "c337f9417169b5c995a57a2f152fb760", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "c7d3c6a187fe04d2a23254d6f98c5c85", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "ca4dadbd05ff93a329eb4e48ba6a8e91", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "cdf01f54c0a9876d7eec81ff0d69c572", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "daff52cbacd6f8aaac74b16c0ffc61a4", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "dfffa5745dd283d3839506a3d9bdb164", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "e220ce927106ca7cc5ad37c8a4436e1a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "eaa03128009c88ad52e07344d5ac08b3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "ebe1bf3899786f4f9c0cf15f8eecd199", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "f00583b60d103e1f58781bae7130ad5b", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "f36e6ddbcb7ac26123bd8c9bb92d3bd2", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "f436b99a597997d80cef2a9459d82cbc", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "fadca38ba9b2f554e963340bd5c4283f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "fade2d1b528b8af4b7c74394f130eb33", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + } + ], + "outcome": { + "outcome": "accept", + "digest": "7ace318189f8f258a144f5fc37ca918e111a1de0095591100d935623b9095678", + "task_id": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e", + "measure": "impressions", + "vdaf": "Prio3Histogram", + "vdaf_config": "0000000500000003", + "scope": "fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55cca", + "time_precision": 3600, + "min_batch_size": 50, + "batch": { + "start": 498192, + "duration": 1 + }, + "interval": { + "start": 498192, + "duration": 1 + }, + "report_count": 50, + "result": [ + 10, + 10, + 10, + 10, + 10 + ], + "leader": "5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6", + "helper": "ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf", + "collector": "6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1", + "reports_checked": true + } + }, + { + "name": "r_twin", + "about": "the twin flow's receipt, under the flight's catalogue", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c2575153310102e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b155f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922000001e0579fb4a5860b61e445807ada3f9bb6aea7a91e523bd6ee1c6dde5fbcafc01a84865b56535fb052b867af3a5aeeeb2962ebbc1ad3ca3590de3cce55be689ba5533aec614ae02ba011665ce7df1acafe7274a7731c5c8d806dab19272e405ebc09e906def0978d1e32c19cc6561121614d25d4dd1dce5250d60687f468897e51a81b52c88b5f6fef5bc2db9ba2b21fc10b9302f283a5e57b0048f15c075a70a938d245a13e84378c80a601276d3f460fa347ddce04d331c467c047762b3539cdcf4aab415b78fa64e55c6f6467482f21d4f5d7ba691926d4ba4034d1dadad3b78328cb9c8617c8e6df88d1e9823414803401cc52ac8848f0f99ac4ff3cd5ff21a353044fa3cd6b8bd04e6d2d2ccc4d38ba49bf3a071168a38d5c15988d9c7cafecf846825691483f4af13bd81575a1e790383dc335393ef61bbb711b573836915492d838df0be8f0421a9ae0a2dfc2ec26c50d50811cb914b5bf1266cfd7c240a8c390c037bf2015e3117b62eb882d6b6f76aa9b40da3e736a33c68ba5b52fbf60815edabf965acf3bee3cfb5d4756a0f3e98f0e68d4d5a893020e0190661136c45533e709b5aece7bcb0174656cd16f6b1ae8db30af53863a1a38b9045d50e0c3bdacd1eaa829811280eea29987cf9d85390bc59544b3b349d5f11be5c3066b9d5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe678839c307d7a21a69700e3a22c2d8df66374561a3b37c3a836f6f26a33c72617c51015083e49dc9e41de32a2fc6f97c6914ef35b052f0984261439d00b225b00000002c2575153310103e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b155f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922000001e0ae604b5a79f49e1b9e7f8525c06449515e56e1adc42911e37621a043503fe57b7fa4a9aca04fad477c50c5a51114d69d1a43e52c35ca6f21a731aa4197645aaccb139eb51fd45fee7da31820e535018d8d588ce3a3727f9238e6d8d1bfa143f618f9210f6872e1cd226339a9eede9eb2dc2b22e231adaf29dd780b977681ae57e6ad3774a09010a42124645d4de03ef46efd0d7c5a1a84ff9b0ea3f8a58f56c72fba5ec17bc8737f3dfed892c0b9f05cba2231fb2cce3b9823b889d4cac63230b754bea487059b1a87909b98b7d0de2b0c284596e6d92b45a3cb2e25252c487cd9346379e83719205b2e167dcbeb7fcb0234ad5377b70f06493b00c32a00de5cb0fbb05c3294742f9592d2d333b2c745ba40c5f8ee975c7287ea6772638350130bb97da96eb7c0b5f2c327ea8a5e186fcbc23ccac6c109e4288ee4a8c7c96eab7127c720f4170fbdc9651f5d203d13d93ef2af7ee346eb4a24ed9930283dbf57406f3fc840dfea1cd2849d1477d294908d5564bf25c18c95b039745a4ad0409f82a1254069a530c4f5c204a2b8a95f0c1a70f1972b2a576ce1f1fe6f99eec93baecc18f64a51318418fe8b9a932e9094e91724cf50ac79c5c9c746fba2af1f3c46532e1557d67eed63115d667830627acaf43a6abb4c4cb60e0ee41a3cf99462ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf3083835632eb1c244cd0b0f6c725e31339ee1fc3335a575376b8b4fa422f31ba868564561dcafe9cf00f2644aa311105ae328f7d513b3e5ac1ad6d0733ac3503001e0000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000040000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000026cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c164111b94341b1b68d2d357c4a33f83e19603874ad6d85621492271d1641378a4443469e32b7a9f97ddad9402dd363c2243dd77b8e9fc28391121514e1a5c480f", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": [ + { + "id": "01442484f0addb0891204182b3519d64", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "03ccedac589182bf551a38f2c6dcb722", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "046d5c529705d964598221f09de507f8", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "07a89174d08148935ca9c245e9087bc8", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0846bb0ec4ec76df3067162b3e6eca3d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "10feaab8acd5537e003d724bc15a5f25", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1d733e148f9acdcab5c2cf2a39afeeaf", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1ddc744b7bb720ac472fae590cffa8cc", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1feb5ec3feea92ac3278491c59fbfa74", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2155b4cee0b59de4b44ecb8d177effef", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2492411023c0a390e1c83c632421b383", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "253c3c4c3a332d728e5dc933e8cd4450", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "344914e2c22b25c74930c376047ada9f", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "37056833df41cc4e8d593de681689b37", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "3e9f6013eaa594f8c9e63d860c59e55d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "41305663bd11be9f6805d8ae1600fe57", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "42e6d8385d1e35dfd946ddaa1fc432cb", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "434d86eecea35da37fdee336cb88c13a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "468d52de4193cfd6a958a320adcfea64", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "52fdbbc0c2f3cf9a8dabdca031573bf0", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "533c031b6cdfd9c4c70ee6c16a64674f", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5688746a7c46bac6ca1be21d794e162a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5d403cc974a429a96d94f3799adfec46", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5e758cadb33ec498325a8d819bbd11b1", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "64f54a1b93d82bbc89a38352a741f1db", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "659216e80380457455ff2cf16f9c05ae", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "699df3ddd594e1cd896a068020e9dd9a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "7306756ce495d7b23372c69fad1ef728", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "76776a7c5a4ab50431267be8b2094f26", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "7cdd42aab29de0794766b632662b953c", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "85797c59ddbd1748bfa930291a55dea6", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8a3021658a05df3b461e648a96e31195", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8c3e4ab49d35387d95f5ab6e77b456b2", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "9d2ed5f712ceb2e31fd7b8ecfaea088d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "9e2e051d7a4693ee2ff148677d92b336", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "a9ff43053345d577e7e90dd0983d50fe", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "aa08129ab5b2be4f591979e2e7977f62", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "ae35eeb8b55e508af82145a27e3153e2", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "b503a949f6705f5c2d0ca9660d197485", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "bdda4f0a119ee5df361a082102e2ce54", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "c3240cd8132c1e6c543c255d09400b27", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "cd7cbf40e24056d376ad73d5cca4c1cd", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "ceb8ac1145d3f422dbf2357907973f2d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "d32676d2e8b8e7bab8540e1321bc971a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "d8c772925aa2fe8828ee6e4308bc34ce", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "df7f4ebe0c8e983e6d60a5b39f4f46fc", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "e4fd06724cddfda947ce75b572f54154", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "f87b6fe4cba5c60bdd8a8d70207c3f04", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "f9e66a05135292fd12355561fa770dbf", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "fd9cb80676853e163cf831b8b558eb26", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + } + ], + "outcome": { + "outcome": "accept", + "digest": "43b5ea32fc42f432f004a8fd3ad15f4b687bd3a588abe437fa9d624a124b325b", + "task_id": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15", + "measure": "impressions", + "vdaf": "Prio3Histogram", + "vdaf_config": "0000001e00000006", + "scope": "39336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159", + "time_precision": 3600, + "min_batch_size": 50, + "batch": { + "start": 498192, + "duration": 1 + }, + "interval": { + "start": 498192, + "duration": 1 + }, + "report_count": 50, + "result": [ + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "leader": "5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6", + "helper": "ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf", + "collector": "6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1", + "reports_checked": true + } + }, + { + "name": "r0_without_reports", + "about": "r0 with no reports given: step 11 does not run", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": null, + "outcome": { + "outcome": "accept", + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "task_id": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5", + "measure": "impressions", + "vdaf": "Prio3Histogram", + "vdaf_config": "0000001e00000006", + "scope": "39336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159", + "time_precision": 3600, + "min_batch_size": 50, + "batch": { + "start": 498192, + "duration": 1 + }, + "interval": { + "start": 498192, + "duration": 1 + }, + "report_count": 50, + "result": [ + 10, + 10, + 10, + 10, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "leader": "5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6", + "helper": "ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf", + "collector": "6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1", + "reports_checked": false + } + }, + { + "name": "count_mismatch", + "about": "the leader's share plus 1 at cell 0, its statement and the receipt signed again", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01211d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6413d970a7ee03786cd70984a0bf71daefb5c3d4ab7049155b80a93a31ae3c3d8e163ffa9e92bbe8c7f3413bc30d151b72fcc786317fe27614e7817a68589fc03000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000b0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c12cc40d6e699663885398d379e1840cf24c61b28c0e3f4835c1ffb9e9210c97f3535027b413e1edbd5611328bcc4f3c6c62346719022666316e9483d1393a1601", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ], + "outcome": { + "outcome": "refuse", + "reason": "count_mismatch", + "at": "result" + } + }, + { + "name": "count_wrapped", + "about": "the leader's share plus 1 at cell 0 and minus 1 at a cell that holds 0: the field's sum is the count, an element is the modulus less 1", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01211d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5848855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b6d6d382d69d775e165d066326735140fad6e60a024ef2e45a3b9cdf957e54b64329586ad0dd9340a4a21809ea14dea9d5e2370b4e0c0ba9ade1d183ccbb190c000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000b0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c189927541b12b1acdc079b77c2b83a232a24827af0a38a4e78833af9425f03b3dfa6256b21e4c310966bbdb39e3cbcc748a746e8e934eb2b8e77cf74c1b3c9e00", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ], + "outcome": { + "outcome": "refuse", + "reason": "count_mismatch", + "at": "result" + } + }, + { + "name": "batch_past_task", + "about": "fifty reports of the task interval's last hour, collected over that hour and the next", + "receipt": "5751413101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018000000190100100000000000079a2700000000000000020000000000000000000000079a27000000000000000100000132575153310102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1ec51ade404e086a9ea09d105e692d9fafc98445e1719805d148f881c408c4415f0000000000079a2700000000000000020000000000000032c3d50d9cba6c01c6b81228c2f7d68e6e54455a7862b956badaaf2bbd7f6c8e7e0000005089c0e4d578ae05514f335dc00588283907560f25fbf2e3cb4a609a0d4e55fae98ca15d2fde8db5117e9ba3e2df1c3d317f54827a07fd297af730a7156108eab4f4e6bb0e0beef8cc3ee89d006d2436de5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6dcc5f3abdd7523ffc5f8ecd229fae14b0538a724235d82142fcb4f940c029f9473c3a61fcb00aa8a26ebfcac27b676b3666d28b29602d9372218d216f51f000400000132575153310103f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1ec51ade404e086a9ea09d105e692d9fafc98445e1719805d148f881c408c4415f0000000000079a2700000000000000020000000000000032c3d50d9cba6c01c6b81228c2f7d68e6e54455a7862b956badaaf2bbd7f6c8e7e00000050783f1b2a8751faae94cca23ffa77d7c6faa9f0da040d1c34999f65f2b1aa0516755ea2d021724aee65645c1d20e3c2ce82ab7d85f802d685ecce58ea9ef7154b3f1944f1f4110733a51762ff92dbc921ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf980b494ef4dee1524d41a4af51a9f8265b051c777439a9f740a98e3ff95f516525d6ae60f7d84a3c6e2a5749ef3152cc208d3ec85e6f77e07605386a487aac07000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000326cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1e0e4731f21f1493f8831f06087ab633938d90a6573356cad4758c404dd6aff454b978c39ebcbf3e239685eb94dbc315bbecc29294da97a63ed58e1297a646105", + "catalogue": "574943310101010000000000000e10015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2016ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b5020000", + "reports": null, + "outcome": { + "outcome": "refuse", + "reason": "batch_invalid", + "at": "leader" + } + }, + { + "name": "r_open_against_flight", + "about": "the open flow's receipt against the flight's catalogue", + "receipt": "5751413101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a10000000000000000100000132575153310102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d000000500377d51ea65b8049fd14b449b9152460aea8e9f38a9603c27a0ee75e4c71b15715f578722de78be2e4f6e19378bb291b18a6a005fa8f03db4b469421c64481c0831cb938f26e24d2020a260e757895d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe67530ad7d77032ca9d0f7f350ce7157e122bd0d1b4d2257988da8609c29624ffcbb198ae5a72b29d22a99f6340b2fa8778974722add10d8fdf16825b9034efd0900000132575153310103f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d0000005008892ae159a47fb6e6ea4bb646eadb9f5d57160c7569fc3d69f118a1b38e4ea8f60a878dd218741dff081e6c8744d6e4f3595ffa0570fc2498b96bde39bb7e3f88e346c70d91db2de1f5d9f18a876a2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2f9db4277d756cd023d67b3d7e54b39f3cc3d4a433b3e68e3869826cdb4de5e63b0e58241d3b20077663749eed49ea3edeeb56ef5d4c0cddc92b6a6664738b0c00050000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1c5cdf6b392c59a4ab0db740441fb012e6d2ef51786b75765fa2bad6fabedfeec35a348e88e1d6da95bfdc9b14f86910b3ee39c26e1aa3ab01b57c947279d2e04", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": null, + "outcome": { + "outcome": "refuse", + "reason": "catalogue_mismatch", + "at": "task" + } + }, + { + "name": "qoe_receipt", + "about": "a receipt of an outcomes task, which telemetry-aggregation §8.1 accepts", + "receipt": "575141310100ff997761692d716f6531010000000000000000000000000000000000000000000000000000000000000000715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e100000000000000032010000000000030010000000040000000000000001000000020000000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000001225751533101026b14b2dcb486ec1f64c4429fa26e7564241a7fe0f01a29d8b98583fe6e757c3c5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe66643009a854c4881eb8fdff7970d8a2e41a40849696285d88c0863c640f4070857db5e119a62f55dcb53fefa2a21a23b83c4acb0aad30f13b5da473a1f4ed10f000001225751533101036b14b2dcb486ec1f64c4429fa26e7564241a7fe0f01a29d8b98583fe6e757c3c5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003200000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf10ec415147384aa03f9817b809a731ca45a8107d3431abb970ed246a3dd1bb66eae4f8eb7ee56b7fe3fd1f072ad636023b6c0d0801fa9d180fd7c5133665520e0004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c11dc2db6e68461d0500fecea97ff725b70cd73024a6d0f44c0615959ee72d75fff67b73cdbe085441d11b0d37475f30b59cea69abf9c8b356790ffe5abc11c10a", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": null, + "outcome": { + "outcome": "refuse", + "reason": "catalogue_mismatch", + "at": "task" + } + }, + { + "name": "batch_49", + "about": "statements and a receipt over 49 of b0's reports", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a10000000000000000100000000000000318ea87b3cbd313b06cc0175f5109b8a97303c4375e03063b2abe8395aeae95f3b000001e0016720220235fa1fa2f3c9cb2499cae54e9351432bcaa1286489922146c20f6844d23175f8649e7ab56601f3da83ceba205036ad88fed1fdf243c7a00745af1547d04e952f6acf7787e1a7782c9262f140579d06ee18238741af13baa9dc7b83bda069df06e82521efc9a7aff83fb229f93c25157440d612c1173eba932dc796ae150f4a6f649da0473b04b5374dc3db869a85a8edf7199f90d272b624e2d5cf29108d481536da5339cdbdc0873f1a51e193e8758b0fc6a92a5c8e2bd11c990410b1d05f904f0d33159df70f52c023e4c5d1a41445d8331b612adad55d21229b0d3220134f19087662da9544a8fbace862b615fa444a635a223ca95564ee919cacb680fd630818454b70b2cf841777434321d9d253a12d1b22b36bed569f568a4151786d5e68a031afa97bae521bf5af0bf7e6bbb507da978ba058968e578a239480fcaec75b8281c5d9574c9d814f4b914fef85d3b63a53871e3bbde7339f0b1457c2eca769e01b4113b3c28dce3e0e1ea198a93a7e03f80129078202f2a0188ff6710c11e08029769d58ec9edeb861b2453c3a2ab0002edaf91ea90f655f24f95dac515fdfcc07aea168cfc056c57b43676eae6c0efb3041f4a2b6c8e41ee10737f1266e4d77cf5f759293cf54f90dc9f163aea1909ddb2088f534ca32d9565ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe639afa28dfd4e8d8c2a7a7f4e3b5749719c5136f0947a1d00ff80f5b9deb0000ea555e96a0e1927bf626b41c44730bcc8c587557e6287cd4fbd02298746bfe20c000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a10000000000000000100000000000000318ea87b3cbd313b06cc0175f5109b8a97303c4375e03063b2abe8395aeae95f3b000001e00a99dfddfdca05e0410c3634db66351abd6caebcd4355ed77f766ddeb93df097c62dce8a079b61852e99fe0c257c3145ebafc95277012e02f1bb385ff8ba50eac42fb16ad09530885c1e5887d36d9d0ec1a862f911e7dc78a250ec455623847c445f9620f917dadef435585007c04dd608c3daea8bbf29ed22e8c1456cd2386953eaf0b5909b625f9cc4fb4ac8b23c247b657a571208e660532d8d49db1d2a30d8ef72b7eac925acaa32423f78c0e5ae206c178a74f03956b9a371d42ee366fbf14e2fa06fb0f2ccce6208f0ad3fdc1b3c2e5bebba27cce482d5252aa2dedd64f4cddfecb0e6f78981256abb570453179f49ea05bbb59ca5c1c356aa9b116e6355497f029cf7e7ba988f4d307be888bcbede262dac5ed2e4c14c9412a960a975c0ae8792a1975fce34568451ade40a50f60819444af82568585fa76971a875dc6d7f035138a47d7e1e26a8b3627eb0b470b0107a2c49c5ac5ce1c44218cc60f4eda83d1358961fe4a2ec4c3d7231c1f1e35e6756c581fc07e2d6f87dfd0d5fe772098ef3ee1f7fd66d62a7136121479e4fbac3c5d54fffd10906e156f09aa0db08a253aea02033f8355e97303fa93a84be98915193f104cfa20b5d49371be11efac80ed991b28830848a6d6c30ab06f2380e9c515e6f6224c3770acb35cd26a9ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf68e779fb040bd69cda6aaf28f25c1283f739681d9a64e8e9eb637600fd37741fb02da8cc2131992a1ae5a895e3c2a1c9eabd1c68719b6ba506cbf7c5b3b38a0d001e0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000090000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c177ea170ee0c6752d5a1c868c4d97545c4b9684babc5c1d3641e9c14d92fb85f6eed1a054f1ab92aea105d05bf449f2801d83dabd3bf80fbc802181fd75792e0d", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": null, + "outcome": { + "outcome": "refuse", + "reason": "batch_too_small", + "at": "statements" + } + }, + { + "name": "flipped_receipt_sig", + "about": "r0, one bit of its signature flipped", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974903", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": null, + "outcome": { + "outcome": "refuse", + "reason": "bad_signature", + "at": "receipt" + } + }, + { + "name": "catalogue_unreadable", + "about": "r0 against a catalogue of version 2", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "catalogue": "5749433102030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": null, + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed", + "at": "catalogue" + } + }, + { + "name": "reports_given_other_task", + "about": "r0 with its reports stated as uploaded to the twin task", + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + } + ], + "outcome": { + "outcome": "refuse", + "reason": "batch_mismatch", + "at": "reports" + } + } + ], + "tables": [ + { + "name": "flight", + "about": "r0 and r12 with their reports", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "verdict": "stands", + "batch": { + "start": 498193, + "duration": 2, + "from_ms": 1793494800000, + "to_ms": 1793502000000 + }, + "collectable_from_ms": 1793523600000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + ], + "totals": { + "batches": [ + { + "start": 498192, + "duration": 1 + }, + { + "start": 498193, + "duration": 2 + } + ], + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + } + }, + { + "name": "flight_reports_unchecked", + "about": "r0 without its reports, and r12", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": null + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": false, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "verdict": "stands", + "batch": { + "start": 498193, + "duration": 2, + "from_ms": 1793494800000, + "to_ms": 1793502000000 + }, + "collectable_from_ms": 1793523600000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + ], + "totals": { + "batches": [ + { + "start": 498192, + "duration": 1 + }, + { + "start": 498193, + "duration": 2 + } + ], + "reports_checked": false, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + } + }, + { + "name": "flight_same_receipt_twice", + "about": "r0 twice, and r12", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "verdict": "stands", + "batch": { + "start": 498193, + "duration": 2, + "from_ms": 1793494800000, + "to_ms": 1793502000000 + }, + "collectable_from_ms": 1793523600000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + ], + "totals": { + "batches": [ + { + "start": 498192, + "duration": 1 + }, + { + "start": 498193, + "duration": 2 + } + ], + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + } + }, + { + "name": "flight_same_receipt_checked_first", + "about": "r0 with its reports, r0 without them, and r12", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": null + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": false, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "verdict": "stands", + "batch": { + "start": 498193, + "duration": 2, + "from_ms": 1793494800000, + "to_ms": 1793502000000 + }, + "collectable_from_ms": 1793523600000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + ], + "totals": { + "batches": [ + { + "start": 498192, + "duration": 1 + }, + { + "start": 498193, + "duration": 2 + } + ], + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + } + }, + { + "name": "flight_same_receipt_checked_second", + "about": "r0 without its reports, r0 with them, and r12", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": null + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": false, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "verdict": "stands", + "batch": { + "start": 498193, + "duration": 2, + "from_ms": 1793494800000, + "to_ms": 1793502000000 + }, + "collectable_from_ms": 1793523600000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + ], + "totals": { + "batches": [ + { + "start": 498192, + "duration": 1 + }, + { + "start": 498193, + "duration": 2 + } + ], + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 1, + "quartiles": [ + 1, + 1, + 1, + 1, + 1 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 49, + "quartiles": [ + 49, + 39, + 29, + 19, + 9 + ], + "floor_met": false + } + ] + } + } + }, + { + "name": "flight_overlap", + "about": "r0, r12 and a validly signed receipt over b0 to b2", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1100000000000000020000000000000000000000079a110000000000000002000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0333d3381ccb26cab9015e6d5019cfbf143aad98acb6720c63001d7de9605e892f15b1218a20e7d98eeef1356bbfd727232251d8fb97adb88c98389b55790b3894d2dca7aac4c7c8699a77663b345479653625b8b7b135eafbfda1cc7ab4e3ced02e0dc26dbdcdb50116631488b981308fb8786bdd338f1d96e3a944421be42d5e5aa69776abaaf0631a26e2e053513f83b05c4eb1677664408602f6be4a17a169922c5a2b908c88c9b8a8023edeca5617017452a05cc6fa5f281894067ea38efd57c82035363bada71d13b16eb33fa21cd8a27690f06f00e43f54308265defc918c64983ef7e7a8085f80cc3f8998586cd13fa0272a6bfa32c4fb91b970df4eaebb6c3b2656a2d706aaf6bfdd959943993a95c1253edbdabb8f1eea2ed829840af4505a99d8508fc6a4079f1aa46f87c867d5ea0fba5cb48f9dcada48cde579d291992aaf2eee3cc762a389906b82191b2ec244b86348f0e283db753f8765bb42fe3de5d925799485fc0edff4f855440bbc43e8a3ac66045c60f93c8d217e496daee27f4e16be2928aba8ebfbadb97121b17da41c1c010bb5a077d223e01d806fd5dce498636fc07df861f86a43864b5379326d773bb473c32663afa0041dc31e15b934f61864d3a0542498d256838db8deffa0f12438ae3d87af44b924b9a8e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe61a7ea9e48239acb80b387d53c4030fc9dcf04f179236c12e8c120230cb1424988230a9e806125fa9227ccb5a70efdc355ecada2b5274522886c7f7c98220fb0f000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b505cbb62093946e39d18d148e7e696aae42e444d23eebcff61103ed27bbf85bf50000000000079a1100000000000000020000000000000032ad7e9c96fe0984d02a254789c0421371207d33fc912810c065bebceafb0fc8a9000001e0cec2cc7e334d935453ea192afe63040ebe5526753498df39b3fe282169fa176d10a4ede75df18267f50feca944028d8dcfdae270468524771a7c764aa86f4c76b4d2358553b383794a58899c4cbab869ae9da47484eca1502425e33854b1c312ff1f23d9242324afd299ceb77467ecf7067879422cc70e2675c56bbbde41bd2a1c559688954550f9b25d91d1facaec07c7fa3b14e98899bbdb9fd0941b5e85e968dd3a5d46f7377348757fdc12135a9e91e8bad5fa33905af17d76bf9815c7102c837dfcac9c4525722ec4e914cc05de3475d896f0f90ff1a00abcf7d9a21036e939b67c1081857f5e07f33c07667a7934ec05fd8d59405cb7b046e468f20b1516493c4d9a95d28f7950940226a66bc66e56a3edac1242542b0e115d127d67bf52bafa56627af70379bf860e55b907837b82a15f045a34b7ea22525b7321a862d8e66d550d111c336dd5c766f947de6e4f13dbb479cb70f1bbc248ac0789a44bd21c21a26da866b7843f1200b07aabbf463bc175c5399fba1df06c372de81b692711d80b1e941d6d59457140452468edf0e825be3e3fef4489f882ddc1fe27f90ea231b679c903f80479e0795bc79b4ad46cd9288c44b8c3b199c505ffbe23ce2aa46cb09e79b2c5debdb672da97c7247d1005f0edbc751c0b850bb46db46571ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2cd63c91b2d5ef680334446988cf5d870f3c8286b1634416e88a8fa2a3fd42ae0e3e0031348fdd9f735d3358254306de420f53175f07ca43709584bd913f8405001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c19a86ef0830a603204703f2e3630f0be1202ec630fb3c89bd5c53b688fb1e19a3731cdd14a6cc0a4b9917b1c1b545801888151329a2442d2aee17356ee69a2206", + "reports": [ + { + "id": "11d99c18dd9a0c505f13379e4c1ea37f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2642b5ef328ccbcb4158e53c9ba201aa", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "291177eefccf35c5fe6ad8ac24d827f8", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2cf06ea0858f3b84c2f1b6cef9eb379e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2ff25df49a3b6cbe82cec68296d5c310", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3276590b43be46973df2da6cfbbd6ad7", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3d84b8e38ce9861ed97804affba3e162", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "3e811398082723e0ecefdf35ba31ffbc", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4183ab0f65080b969c0cae44e8e31383", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "494c017f6572a53d13a069c32179bb7d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5fb48f992ada397f2acac6a2cd587f5f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6138a2d1720bf553cc215cbc2f153d56", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6fce5d51df9eddb1ad0c5c81ebd03de6", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7526b0f91818006ae914e27ef5a27983", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "857be43a3b7c03d72eb3b735cd3ef7af", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d8925750bb5300d2fde50e6eb86c430", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a9344064cb5aa16a380e784b3e99a3e3", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ac1ae1a720716eca8212f0286087ca6f", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b40d934aa97390015d10cede33459c0d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "b4dacf5d81f57d9c8e34bdbcd78f946e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "becf6beeb5cca1f27c2c231f9210d986", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c26fa81954b496e01eb8b2b6d82cd34e", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c365d985dac103650b1b2f4e65d5409c", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "db7d28664da14468e2707a2cd402dd91", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "dc9b54ea1cb5110ada54ed9bb9d32ef9", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e04165ab3dfb9c521f9b579af5f90c2d", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f48dcaf73ddb58091658bd37f941ad64", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fb1d846a5a82d98e127655f9833a9e58", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd9d683db6b837482ef5280a47c74009", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ffeab86a552eca45633c8c36834c5fa4", + "time": 498193, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "018ce3d4c29c59501069455f10144e60", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "02ac8210891e152d62c2673cb051f348", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0a257ff2431574ab1a615c00d74eadc4", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2282e6a949bd8ea3a8d0777faa9c3cc3", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c51eedf639de31fecaae7df9890cdc7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "31935f45506e43228ff567f8846379ca", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "46e33bd52e70c0cad080aab093dc46cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6ac5f45efc2aebaada41881b5e978eb7", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7b26e5f8998d87df4be0063272f9a4b8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "7d9b51b49c6320c54730b8896dbe7f2a", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8414418d02f95ea3aecb74067a9ed384", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "887dddfa841b3e870db8d51a190cf19b", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "92333fddeeab6da144526bbe30e5d152", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "97409d8a09b3334f9a836aa28435d9cb", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a0f799425b823f0182363610d184dfa5", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ae69e512a4476acd5ad2cc7d22fd6a1d", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "af1144365165c6528693e1cef65cd698", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d93709372219ac824454d2ecea1acb9f", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee803408598ba0ec98c67ec83d4471c8", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd5669008eb774b8e610c9c4f8793eec", + "time": 498194, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000030000000000000000000000079a100000000000000003000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b569bcb32878cf2d307a31aeaf7c9b5fe937860f88c6407bbaa9c6d6a7654a05440000000000079a1000000000000000030000000000000064a4df1ee818db34658499fd0e417dff61a3e37a0e02d899ef6ab257469b54016a000001e0434e0535d072892e21e077d70447a8601954700345eb03c680f43d4d2ceb81688cb68d7caaa50e644f0d96d60a4d5fdb1e72870723640e41a44c742b5d5fd03c163ea7bb3e1934aa0ebf5f5d497c7bc69faa23c533f737bdb35a95dde3be083049c28f37e81f6d41f101361c1fb3759000033c9d2f1b79bf2d109edfe4c58e5218be839aba969edcc4dd09b421e27ece5007b599324d4344056cca5e45b392dc5e96f2a22619621fe867cfb92347721bd8024d8874917b0b323eb277debae66e2a27533eeacf1cfb7a130bd29ab2c2e1629acedc8e26dd7ca33c63902d6cd4f2edcc5e8d3162e2fa2309f08e726dc8d6f2e61e152a08ab718306297f08cf3b567d62e5745139ef5d13cdfaaf11dc39a07455cc94f641b4352c311bc74b4671a935c3bdf1770e98fe6432afe05acdd6ed3dfcb8cdfbd38a4410edc9d9c003fe16f03c263051c1b012e94a19fa88d695af24cd381b9c1d7e1edb63cbbe8d9dfcf0059425e5b06872c7eaf85e55c3a15b825877f29ba102ea3e70fe36d610266dfe60725b007f55d874b1dc5eb7718ca50c745f5f9ea8cae3a5ec46f1d36761ab98da2b91af7c670a2f2a144c801c820c1c4e8b31f6fffa97ad28458f4831d2a695459217c4a97d4833f31983efd7e904b7fa51c7f41b625dd07853aa325e90bb5e5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6177820fd5a17c550d1ecd78708222b2b7c9574670e05a3b94fc625bede0ad3ae6cf745e24aef372fafbcbb05633df6166e168dbcbf9a7a93abf7852bf6503609000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b569bcb32878cf2d307a31aeaf7c9b5fe937860f88c6407bbaa9c6d6a7654a05440000000000079a1000000000000000030000000000000064a4df1ee818db34658499fd0e417dff61a3e37a0e02d899ef6ab257469b54016a000001e0c8b1faca2f8d76d1c21f8828fbb8579ff2ab8ffcba14fc39630bc2b2d3147e977f497283555af19b94f26929f5b2a024ed8d78f8dc9bf1be3fb38bd4a2a02fc3f5c15844c1e6cb55d540a0a2b68384396255dc3acc08c84230a56a221c41f7cfb83d70c817e092bef2fdc9e3e04c8a6f01fdc362d0e48640b6ef61201b3a71ade9417c65456961231f22f64bde1d8131b2f84a66cdb2bcbbde9335a1ba4c6d23a3690d5dd9e69de0fb973046dcb88de429fdb2778b6e84f4b1c14d8821451991d7d8acc11530e30469ecf42d654d3d1e9f65312371d9228340c39c6fd2932b0d1433a172ce9d1d05c0f60f718d9237290f19e1ead5f7548e60f9d680f730c4a9849d1a8baec610a2d0320550ee23c65f8daa336b09be4bcab7cee438b4b98e56cc3c420e88f167017fcd501fa5322912c4034732042c75bbd31236263ffc01e911c3d9cfae3e4fedfab4e60577296a50dd32c7e463e281e1089c34417262030ffc6bda1a4f978d38f906a1aa3c5ea47da9880d645efd15c17301c929efd99201a18da4ff80aa278b3223a1488e735af397a0a06157351c5af7b80e2c989e546731d46e508398f5d0b9ebb37fe37df3e3bd74ce0900056852bbba70b7ce2d596ac66de83b5682b7ccf0e57c102816fb4810ae380be49da22f6bac55cda16f44a1ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf13dd9a7a02831976f2d002373ac9446c1c57677cb894a0098b6c374a860d0bb8264415af2c715599c0181bfa9293d0914f7174f88eb2809c8fa8de5b24dd070e001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000096cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1380c55b34fb6636e44b0cb8f3b356811ab2fa3e30aa4a1863ea836b79cfaeed1cbedc80749e541052461ad4d5b16de5cc653e8c8a15264430b87e5bedd0b1f0a", + "reports": null + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "set-aside reason=receipts_overlap" + }, + { + "digest": "3e92a3095a8c172f9f59a107cf46a14b754fe43b750d67500d19d83e4ad30afb", + "verdict": "set-aside reason=receipts_overlap" + }, + { + "digest": "d421133e91e154307b6c817b61ebd025407abb77c893e579ec7b737a8e40435f", + "verdict": "set-aside reason=receipts_overlap" + } + ], + "totals": { + "batches": [], + "reports_checked": true, + "rows": [] + } + } + }, + { + "name": "flight_foreign", + "about": "r0, the twin task's receipt and the open catalogue's", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": [ + { + "id": "008e049892ccb5ce441c1aa0efd56ec1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0475fad4ec8497c8885b23701cb0ba3b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0602b32ef091d0bff7e2a8b8dbb988a8", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0b16b7875d18ed1959b7831e47ed0134", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "15be857c0cec192b7ddfbd7390f3a34c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "1dd2f10d61e4f087a6903ca1ee3fb423", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2285cd738aa103fd0f436bbdb178e062", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2695c7b35982c5f405a0543726c96d11", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2a00e325e01718dcfa98c4a32a4d979c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2b02579109bcb8ee310fd7ed4ce4efd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2e04bc1ee17ec84ab13c51abfc739053", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "41486422bcaaf25371397e18c0228d87", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "442561d17b3345c45b0876bb17759932", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "48eeb17409ca5651b935a41686cb952b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "49cefbb8017d08f41a1ac201f58eb7d3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "4aeeee3730c210006a507d139627856e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "551aeaa6a1ae7af3a777e22912f9270b", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "55afcf781030f566fe6a604cf04a2a16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "58a83dab1f394396f3c00f72e8f5cd67", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "59e41d3ec7c6e9b7230de8a02b406d68", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "5d398c614828073c00a94d0d012aac90", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6c4ab6eb6674f4dca35182b19afe2699", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "749ed4be3dc6971bbfaed0a8897ce708", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "78cee9345bcd8c6fbdb891eeb9a41840", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "798a380791943b3866b0622f9d6f5c21", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "874ac36121c119209d894e460e86fa16", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b222a0de72fc00f3aed8b6a4f1e66ff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8b4d71fc18475112d0207815e6a41f55", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "a7b90e4f3d4447232053a3b6beee084f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "abef3a28f4fecfb1cb5337029c57a51e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "bb165e6e2f0d9ed07d6bd2837c00b23d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c10b2494e6849c1f87b2e267948eeea5", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c1791260f6cc2befee9bc08645dde02f", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "caf9991dc84400e421521f20d9a8abc7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d7b689186f6cb707c5da5efd60b7abd7", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e1ddf58cc18310c73db68a03bc67eb4c", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "e6a7106f28aef5eaa4509031a6f4610e", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "ee0e981b6b2707665b7cdb9060606bff", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "f752f0fc8a6395e445b8107dcaa28891", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fd771d93e5d58e5f3676c3e132165ca3", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0cb7c505c54ca02e0531d32a7ebc25a9", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "0e90351d3841ce4b16d9a6fefd5d19ce", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "2c7455ed08dea7ed0bcbe69d40ff58ba", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "6db86365e3f909abcf7ca02fac9cd774", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "8aa7b5077d679105ff798397fcbfddf1", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9d4a609c7383de90ec57056cda27c6af", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "9ef49e6a99f30a30ea01b76ff2f8f808", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "c4020858d90f9eb26cfd79014923b14d", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "d4b8124946f1a3aa8e9267b19b1bf2f2", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + }, + { + "id": "fcf2ec0927962c5be8f5bbea764abf61", + "time": 498192, + "task": "0ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b5" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e937515949e7a7c2c05687f792aeb9e8b3c0e1fd5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c2575153310102e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b155f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922000001e0579fb4a5860b61e445807ada3f9bb6aea7a91e523bd6ee1c6dde5fbcafc01a84865b56535fb052b867af3a5aeeeb2962ebbc1ad3ca3590de3cce55be689ba5533aec614ae02ba011665ce7df1acafe7274a7731c5c8d806dab19272e405ebc09e906def0978d1e32c19cc6561121614d25d4dd1dce5250d60687f468897e51a81b52c88b5f6fef5bc2db9ba2b21fc10b9302f283a5e57b0048f15c075a70a938d245a13e84378c80a601276d3f460fa347ddce04d331c467c047762b3539cdcf4aab415b78fa64e55c6f6467482f21d4f5d7ba691926d4ba4034d1dadad3b78328cb9c8617c8e6df88d1e9823414803401cc52ac8848f0f99ac4ff3cd5ff21a353044fa3cd6b8bd04e6d2d2ccc4d38ba49bf3a071168a38d5c15988d9c7cafecf846825691483f4af13bd81575a1e790383dc335393ef61bbb711b573836915492d838df0be8f0421a9ae0a2dfc2ec26c50d50811cb914b5bf1266cfd7c240a8c390c037bf2015e3117b62eb882d6b6f76aa9b40da3e736a33c68ba5b52fbf60815edabf965acf3bee3cfb5d4756a0f3e98f0e68d4d5a893020e0190661136c45533e709b5aece7bcb0174656cd16f6b1ae8db30af53863a1a38b9045d50e0c3bdacd1eaa829811280eea29987cf9d85390bc59544b3b349d5f11be5c3066b9d5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe678839c307d7a21a69700e3a22c2d8df66374561a3b37c3a836f6f26a33c72617c51015083e49dc9e41de32a2fc6f97c6914ef35b052f0984261439d00b225b00000002c2575153310103e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b155f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a1000000000000000010000000000000032e98204f14c94c3bf1a610671d129869a6ae2ddfc035601941cec8b5c362ce922000001e0ae604b5a79f49e1b9e7f8525c06449515e56e1adc42911e37621a043503fe57b7fa4a9aca04fad477c50c5a51114d69d1a43e52c35ca6f21a731aa4197645aaccb139eb51fd45fee7da31820e535018d8d588ce3a3727f9238e6d8d1bfa143f618f9210f6872e1cd226339a9eede9eb2dc2b22e231adaf29dd780b977681ae57e6ad3774a09010a42124645d4de03ef46efd0d7c5a1a84ff9b0ea3f8a58f56c72fba5ec17bc8737f3dfed892c0b9f05cba2231fb2cce3b9823b889d4cac63230b754bea487059b1a87909b98b7d0de2b0c284596e6d92b45a3cb2e25252c487cd9346379e83719205b2e167dcbeb7fcb0234ad5377b70f06493b00c32a00de5cb0fbb05c3294742f9592d2d333b2c745ba40c5f8ee975c7287ea6772638350130bb97da96eb7c0b5f2c327ea8a5e186fcbc23ccac6c109e4288ee4a8c7c96eab7127c720f4170fbdc9651f5d203d13d93ef2af7ee346eb4a24ed9930283dbf57406f3fc840dfea1cd2849d1477d294908d5564bf25c18c95b039745a4ad0409f82a1254069a530c4f5c204a2b8a95f0c1a70f1972b2a576ce1f1fe6f99eec93baecc18f64a51318418fe8b9a932e9094e91724cf50ac79c5c9c746fba2af1f3c46532e1557d67eed63115d667830627acaf43a6abb4c4cb60e0ee41a3cf99462ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf3083835632eb1c244cd0b0f6c725e31339ee1fc3335a575376b8b4fa422f31ba868564561dcafe9cf00f2644aa311105ae328f7d513b3e5ac1ad6d0733ac3503001e0000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000040000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000026cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c164111b94341b1b68d2d357c4a33f83e19603874ad6d85621492271d1641378a4443469e32b7a9f97ddad9402dd363c2243dd77b8e9fc28391121514e1a5c480f", + "reports": [ + { + "id": "01442484f0addb0891204182b3519d64", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "03ccedac589182bf551a38f2c6dcb722", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "046d5c529705d964598221f09de507f8", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "07a89174d08148935ca9c245e9087bc8", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "0846bb0ec4ec76df3067162b3e6eca3d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "10feaab8acd5537e003d724bc15a5f25", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1d733e148f9acdcab5c2cf2a39afeeaf", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1ddc744b7bb720ac472fae590cffa8cc", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "1feb5ec3feea92ac3278491c59fbfa74", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2155b4cee0b59de4b44ecb8d177effef", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "2492411023c0a390e1c83c632421b383", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "253c3c4c3a332d728e5dc933e8cd4450", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "344914e2c22b25c74930c376047ada9f", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "37056833df41cc4e8d593de681689b37", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "3e9f6013eaa594f8c9e63d860c59e55d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "41305663bd11be9f6805d8ae1600fe57", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "42e6d8385d1e35dfd946ddaa1fc432cb", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "434d86eecea35da37fdee336cb88c13a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "468d52de4193cfd6a958a320adcfea64", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "52fdbbc0c2f3cf9a8dabdca031573bf0", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "533c031b6cdfd9c4c70ee6c16a64674f", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5688746a7c46bac6ca1be21d794e162a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5d403cc974a429a96d94f3799adfec46", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "5e758cadb33ec498325a8d819bbd11b1", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "64f54a1b93d82bbc89a38352a741f1db", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "659216e80380457455ff2cf16f9c05ae", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "699df3ddd594e1cd896a068020e9dd9a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "7306756ce495d7b23372c69fad1ef728", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "76776a7c5a4ab50431267be8b2094f26", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "7cdd42aab29de0794766b632662b953c", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "85797c59ddbd1748bfa930291a55dea6", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8a3021658a05df3b461e648a96e31195", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "8c3e4ab49d35387d95f5ab6e77b456b2", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "9d2ed5f712ceb2e31fd7b8ecfaea088d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "9e2e051d7a4693ee2ff148677d92b336", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "a9ff43053345d577e7e90dd0983d50fe", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "aa08129ab5b2be4f591979e2e7977f62", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "ae35eeb8b55e508af82145a27e3153e2", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "b503a949f6705f5c2d0ca9660d197485", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "bdda4f0a119ee5df361a082102e2ce54", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "c3240cd8132c1e6c543c255d09400b27", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "cd7cbf40e24056d376ad73d5cca4c1cd", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "ceb8ac1145d3f422dbf2357907973f2d", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "d32676d2e8b8e7bab8540e1321bc971a", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "d8c772925aa2fe8828ee6e4308bc34ce", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "df7f4ebe0c8e983e6d60a5b39f4f46fc", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "e4fd06724cddfda947ce75b572f54154", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "f87b6fe4cba5c60bdd8a8d70207c3f04", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "f9e66a05135292fd12355561fa770dbf", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + }, + { + "id": "fd9cb80676853e163cf831b8b558eb26", + "time": 498192, + "task": "e31764f58669029ccf254a7ccf59c34af626b16ce2f46b9cfa83757a7a533b15" + } + ] + }, + { + "receipt": "5751413101010b997761692d716f653105fbc3fd06b91c1a38529354cb8a1d0554c247dc16598134e89615f0f1ffa55ccaef4fbc8709c5c41c475a5d22cdad6d1a5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e10000000000000003201000000000004000800000005000000030014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a10000000000000000100000132575153310102f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d000000500377d51ea65b8049fd14b449b9152460aea8e9f38a9603c27a0ee75e4c71b15715f578722de78be2e4f6e19378bb291b18a6a005fa8f03db4b469421c64481c0831cb938f26e24d2020a260e757895d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe67530ad7d77032ca9d0f7f350ce7157e122bd0d1b4d2257988da8609c29624ffcbb198ae5a72b29d22a99f6340b2fa8778974722add10d8fdf16825b9034efd0900000132575153310103f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e5f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003254d37f74de61d37c59650ffb67bf7959d645f81a87fb77e529253b48064ca39d0000005008892ae159a47fb6e6ea4bb646eadb9f5d57160c7569fc3d69f118a1b38e4ea8f60a878dd218741dff081e6c8744d6e4f3595ffa0570fc2498b96bde39bb7e3f88e346c70d91db2de1f5d9f18a876a2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf2f9db4277d756cd023d67b3d7e54b39f3cc3d4a433b3e68e3869826cdb4de5e63b0e58241d3b20077663749eed49ea3edeeb56ef5d4c0cddc92b6a6664738b0c00050000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1c5cdf6b392c59a4ab0db740441fb012e6d2ef51786b75765fa2bad6fabedfeec35a348e88e1d6da95bfdc9b14f86910b3ee39c26e1aa3ab01b57c947279d2e04", + "reports": [ + { + "id": "02ff0c1419e1600308bbbf51099c2b93", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0450c98206bd4a9d2485ae82f6e9cbcc", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0509a8adfb2ae1ba0039b9c496452893", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0a6be3e2be908e89522d1beaf56b0ef4", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "0cf3a002b88570579bfce19b2f767fcd", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "105d8ef8683d29f1d7ed994bd4f8e6a3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "1069a899d70e1cb334ca074ed7953886", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "111bfa7066716d42db6963cea2fb9511", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "11f3e5b3feb409823f48daefaa726daa", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "1e2cc57da25e021dcfba481c36592509", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "1fb184bd29f8c9b893f479f38d573ef2", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "227b44efd291cbac7529ce4ae0db7c49", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "286ebbd1cf43fdbacb173942afa028c3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "31543af0c481d4cdc66708411c59e0a6", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "362f26f8bc8c16b5b3cf93a29830a17b", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "42d99cb135ee8df3127e7384c1232614", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "433031122766c44947461d165bf91707", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "476d34e5d689e984fd002c4924ca676e", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "4a568385097e5286eb158ab7d9b734ab", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "4d90ea560ebdec051d92a183237e8f0a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "50f7072754d8ffdd90fcc1a6c13518b4", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "55044fb7356c4fa85f82c0048af09dc3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "6ae99658c3db67a6f105da1f42689130", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "6f78f1e6ab909855055639a30ee49f99", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "70c23bfd9c06ffa92b33fc16cdb057bb", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "77238d008cf09d153910a35921c390fe", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "7d1526984513c531ef0a2bf80d9692a1", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "8cae5f27c35cad8bacfd55a201a03f08", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "8cb0a9b3ee0ef418065bbc02fbd0904a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "a69cbed7f0df01023fffc42c30548336", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "acf35012a2ed23aaaaf6ad5030320c0f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "adf7b36018c013855bb91b533fb9e3ee", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "b953cc3d35339d48da5c52727933c17d", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "ba964cd33f00f7f43cf0a7819b0e090a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "bc0bb4195fd8b01ac940e234e6d8b53f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "c0e696f14f9f0a950e46c802c3979d0f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "c337f9417169b5c995a57a2f152fb760", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "c7d3c6a187fe04d2a23254d6f98c5c85", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "ca4dadbd05ff93a329eb4e48ba6a8e91", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "cdf01f54c0a9876d7eec81ff0d69c572", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "daff52cbacd6f8aaac74b16c0ffc61a4", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "dfffa5745dd283d3839506a3d9bdb164", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "e220ce927106ca7cc5ad37c8a4436e1a", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "eaa03128009c88ad52e07344d5ac08b3", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "ebe1bf3899786f4f9c0cf15f8eecd199", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "f00583b60d103e1f58781bae7130ad5b", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "f36e6ddbcb7ac26123bd8c9bb92d3bd2", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "f436b99a597997d80cef2a9459d82cbc", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "fadca38ba9b2f554e963340bd5c4283f", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + }, + { + "id": "fade2d1b528b8af4b7c74394f130eb33", + "time": 498192, + "task": "f150126eb4a699b06b097a773a2d0a0e46e2ede6d69a09fdeee7f0fcee858b1e" + } + ] + } + ], + "outcome": { + "outcome": "table", + "receipts": [ + { + "digest": "5977e10e450aa1707247bee221bb98afe6fc96af73493912539961660278e84d", + "verdict": "stands", + "batch": { + "start": 498192, + "duration": 1, + "from_ms": 1793491200000, + "to_ms": 1793494800000 + }, + "collectable_from_ms": 1793516400000, + "report_count": 50, + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + }, + { + "digest": "43b5ea32fc42f432f004a8fd3ad15f4b687bd3a588abe437fa9d624a124b325b", + "verdict": "refuse reason=task_mismatch at=task" + }, + { + "digest": "7ace318189f8f258a144f5fc37ca918e111a1de0095591100d935623b9095678", + "verdict": "refuse reason=catalogue_mismatch at=task" + } + ], + "totals": { + "batches": [ + { + "start": 498192, + "duration": 1 + } + ], + "reports_checked": true, + "rows": [ + { + "creative": 0, + "column": "XA", + "presentations": 50, + "quartiles": [ + 50, + 40, + 30, + 20, + 10 + ], + "floor_met": true + }, + { + "creative": 0, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 0, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XA", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "XB-1", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + }, + { + "creative": 1, + "column": "other", + "presentations": 0, + "quartiles": [ + 0, + 0, + 0, + 0, + 0 + ], + "floor_met": false + } + ] + } + } + }, + { + "name": "table_catalogue_unreadable", + "about": "a catalogue of version 2", + "catalogue": "5749433102030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": null + } + ], + "outcome": { + "outcome": "refuse", + "reason": "catalogue_malformed" + } + }, + { + "name": "table_task_floor_49", + "about": "a task of minimum batch size 49", + "catalogue": "5749433101030202000e006973737565722e6578616d706c6500005460015a18472829be1c6b6cefcbc8a5b45d2c05397be2f465c3a24fef67ea1b9918c2026ea48b8fd424ba46f3482594a2b521479ae087dcc3903aed49bb207b00c1b502b52a3ce4a2e5918d57e4cd01951562d9e433829b48ef1e0830029fd7008951b4020258410458422d3101015630820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100cb1aed6b6a95f5b1ce013a4cfcab25b94b2e64a23034e4250a7eab43c0df3a8c12993af12b111908d4b471bec31d4b6c9ad9cdda90612a2ee903523e6de5a224d6b02f09e5c374d0cfe01d8f529c500a78a2f67908fa682b5a2b430c81eaf1af72d7b5e794fc98a3139276879757ce453b526ef9bf6ceb99979b8423b90f4461a22af37aab0cf5733f7597abe44d31c732db68a181c6cbbe607d8c0e52e0655fd9996dc584eca0be87afbcd78a337d17b1dba9e828bbd81e291317144e7ff89f55619709b096cbb9ea474cead264c2073fe49740c01f00e109106066983d21e5f83f086e2e823c879cd43cef700d2a352a9babd612d03cad02db134b7e225a5f0203010001", + "task": "997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000310100000000000400080000001e000000060014000100100000000000079a100000000000000018", + "receipts": [ + { + "receipt": "5751413101010b997761692d716f65310539336808103fba14bb07b8988d092c056206532e0ba838cc92e56791e9375159715f84c3e92beb16c45717202936515f5ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6ff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bf6cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c1001b68747470733a2f2f6c65616465722e6578616d706c652f6461702f001b68747470733a2f2f68656c7065722e6578616d706c652f6461702f0000000000000e1000000000000000320100000000000400080000001e000000060014000100100000000000079a100000000000000018000000190100100000000000079a1000000000000000010000000000000000000000079a100000000000000001000002c25751533101020ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e01111d2b303c01c8374ca910103abac6ed7a996787983e3ff33f3666e95e599d59b5a7b64089791cb601d82804f4fec68ed4c6a7869e932b8bec8ea7505cf1cb3c910dd4092ccb7237517e9f9953634304d48c839b8e3d90dd87f78163870cc4247e2b2100d4391f0df9b04d4931a6288067bb5df5be287e5a2d5099bc3074c7d34131a2350dceed5773b9b851cad6bd61502f1ad1bd6dcfffc0b9bf3601118c6c6732d006d109a9230dd4e96365accb969eb075e6fc50b6623bc283777d0ad7f55aad03a976c62200942cfbbaf7ec8bf950fa7737f20ed6d60471f88070fe528d506150a42e3677a9e10e3cb79d3425026d32412b861ebcd3ab76f6371c1476b92ab21c2ebcec1eda81d8fb23782a566e1ab6f82a354f689733f2c245ec3d868867db848da888f02faf135efaf86de70b87e5a2d002ebffbfa0f1c353425a679c72394855ed2cc457220e160821e741e72e013d015e9ee0fb326146b9526a13cd6b046871e11d97e8b387155731c07429db2b311673c89f9a9eea30d3e0e89678783330c9de9f5e10a22d0f7b6b00dfa5948855ce709d3ea913f74b12960d391decdc265f6300e272f8d2cfa7749a86617f80a1f8c3f5071f6de544e3091ca636536847448f7faf8d1d73962b281ccdb6e62cce4091fd3ec83d8b5e6cb4421d05ace5e8192f3898c0530732af677d4f86a95328dc13dbb61edecafad04696fe6b027477c9a8fa9d3b69506086a4f935bbf7f8e13efb7320d1d854c6adc564631288fd909c9e9baafbed059f57c7cdaaaa48b2617420e1c6984cc5d358c59240d000002c25751533101030ec524cc8fbc29c0d148b0f6b275c9d826019ff9e43843fcafe55a82379d74b55f7e11a1035329eafd1b8a08c750337704fe57e8824410665ed442aae66f3ba80000000000079a100000000000000001000000000000003209a1827ee6d2b0b5aebcba87813fec10839e49f293f0892f0f0cebac605bc9c3000001e0faee2d4cfc3fe37c6f356efefc54539134566987867c1c00b00c99916a1a662a70a5849bf7686e3483e27d7fb0b013971eb395879616cd472537158afa30e34c42ef22bf6d3348dc6ee816066ac9cbcfb4b737c6471c26f20b8087e9c78f33bdba1d4deff2bc6e0f0464fb2b6ce59d77fb844a20a41d781a412af6643cf8b382cdece5dcaf23112a6cc4647ae3529429ecfd0e52e4292300e7f3640c9feee7393b8cd2ff92ef656db322b169c9a533469814f8a1903af499c043d7c8882f5280ac552fc568939ddfdabd3044508137406cf0588c80df129283b8e077f8f01ad72cf9eaf5bd1c988545ef1c34862cbdafdb2cdbed479e1432a948909c8e3eb8946f54de3d14313e123be2704dc87d5a992054907d5cab097670c0d3dba13c27977b8247b7257770fde90dca105079218f4981a5d2ffd14004e9efe3cacbda59863adc6b7aa12d33ba71df1e9f7de18be18f1fec2fea1611f030d9eb946ad95ec32b4fb978e1ee268158c78eaa8ce3f8bd644d4cee98c376063a115cf2c1f176987a7cccf362160a1ed9dd2f08494ff205a8b77aa318f62c1552c08b4ed69f2c6e23323d9a09cff1d8b472d30588b65799ea07f5e073c0af8eed20abb1cf6e359c9cc97b8bb70805071228c69d4d7e3324939d331bf6e02c1360274a1934bbde2fff45c437177a24aa65030dc217ec00de7836ac49ce913567918c3239b86df6bfc51b234bb97e00a60921e52505532d4e93ba1d6bbe89306d6a4061aee13cb2094a2aaff19f93b725eae67e50a4aa34342d72e7f1ebdf3b38f1cc9ebef787cc0a001e0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a0000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cb892158da8e743ca7734b66fd0a67c79d09fdee995d2dcb8cf62ae3bf214c192a305dce8b3098101bbfc1ea8d4067a0fd5fe86531b28b4c158250c214a86e5924c49829985e2c884157ad78607ce9cc24cf8ef6ca9d16b9985b63ce6974902", + "reports": null + } + ], + "outcome": { + "outcome": "refuse", + "reason": "floor_too_low" + } + } + ], + "codes": [ + "catalogue_malformed", + "catalogue_mismatch", + "task_file_malformed", + "record_not_shared", + "record_terms_differ", + "creative_not_listed", + "instant_unknown", + "outside_task", + "token_exhausted", + "upload_malformed", + "receipts_overlap" + ] +} diff --git a/wai/live-conformance/prices/README.md b/wai/live-conformance/prices/README.md new file mode 100644 index 000000000..6e7687ec3 --- /dev/null +++ b/wai/live-conformance/prices/README.md @@ -0,0 +1,66 @@ +# live-conformance/prices — what delivering a rung costs, and which option a comparer takes + +The corpus of [`extensions/rung-price.md`](../../extensions/rung-price.md) §9: `vectors.json`. + +**Provenance.** Generated here by `wai_rung_price_vectors gen` (`wai-rs`, feature `rung_price`), +from Ed25519 keys on fixed 32-byte seeds and constant instants; no input from outside this +repository. Every signature is deterministic (RFC 8032) but one: `same_body_two_signatures` signs +unicast_tiers's body a second time under a fixed, different nonce prefix, which is still a valid +signature of the same body under the same key. + +`keys` names every key by its role, as 64 lowercase hexadecimal digits: `seller_unicast` (A, +two-way delivery and rooms), `seller_broadcast` (B, transmissions), `seller_c` and `seller_d` (the +sellers the limit and ranking cases add), `seller_contribution` (uplink), `seller_other_currency` +(the one list in EUR), five holders (`holder_a` to `holder_e`) that price their bytes as peers, of +which `holder_d`'s list lapses a minute after issue and `holder_e`'s prices only `XA`, `seller_e` +(a second calibrated relay), `seller_f` (a relay that prices from a model), `seller_g` (a seller +whose class its records do not bear out), `room_authority` (signs the two room descriptors), and +`small_order`, the identity point. + +Instants are microseconds. Lists are issued at 1,793,664,000,000,000 (2026-11-03T00:00:00Z) and +expire a day later unless a case says otherwise; comparisons are made an hour after issue. The +currency is `USD`. Every region is an ISO 3166-1 user-assigned code (`XA`, `XB`, `XC`) or a +subdivision of one (`XA-1`, `XB-1`), and names no place. The footprint of 8,192 codes is the +subdivisions `000` to `511` of each of `XA` to `XP`, in byte order; the one of 8,193 adds `XQ-000`. + +The per-hop records are of two rooms, both signed by `room_authority`. R1's `t0` is a day before +issue (1,793,577,600,000,000), and R0's thirty days before it (1,791,072,000,000,000). Each record +covers its room's first hour, so a record of R1 has the instant 1,793,581,199,999,999 and one of R0 +the instant 1,791,075,599,999,999. Each record is signed by its hop's key, one of `seller_c`, +`seller_d`, `seller_e`, `seller_f` and `seller_g`; `seller_g` also names `seller_c`'s and +`seller_d`'s records, which it did not sign, and `seller_c` names one of `seller_g`'s. One of +`seller_c`'s records counts media bytes it received beside those it sent. `rc2` and R1 are each also +given once with their last byte changed, a copy whose signature fails. The base request confirms +`seller_c` and `seller_e` for `CalibratedInstrument`, `seller_d` for `OnChipCounter` and `seller_f` +for `ModelBased`, and relies on records up to seven days old; a case that confirms another key or +class, or relies on records up to a day old, says so. + +- `lists` (§4) are each a list's `text` and its `outcome`: `read`, with its `digest`, `seller` and + count of `entries`; or `refuse` and its `reason`. +- `verdicts` (§5) are each `texts` and an instant `at_us`; `outcome.lists` gives each text's + verdict, in order: `stands`, `superseded`, `set-aside reason=…` or `reject reason=…`. +- `comparisons` (§6) are each `texts`, an instant `at_us`, a `request` text and `evidence`, the + texts given as evidence, as lowercase hexadecimal, in ascending order of the digest each names, + and of their bytes for one digest; `outcome` is `refuse` and its `reason`, or the plan of §6.6: + `request` (its digest), `at_us`, `lists` (each `verdict` and `digest`), `evidence` (the digests + of the records and rooms those texts give, a damaged copy giving none), `audience`, `candidates` + (each with its `energy_ppm`, `evidence` and `energy_rank`), `order` and `decision`. + +The comparisons use A's 8,000,000 tier, `bytes` at 20,000,000 per 10⁹, and B's unidirectional +8,000,000 tier, `bytes_sent` at 100,000,000 per 10⁹. Most requests ask for 500,000,000 `bytes` per +receiver and 500,000,000,000 `bytes_sent` per transmission, for a rung of 3,000,000 and passes of +6,000,000 bits per second, to `XB`: a cost per receiver of 10,000,000 against *T* = 50,000,000,000, +and a break-even audience of 5,000. A's and B's figures are estimates. + +Everything is synthetic: keys attest nothing, and prices and figures are chosen for their +arithmetic. Each case states the outcome it was written to have, declared in the generator, never +copied from a verifier: the removals, the order, the decision, the break-even and each candidate's +evidence of each comparison are written out case by case, and its costs, energies and energy ranks +are §6.3's and §6.4's arithmetic over the entries and the declared evidence. No vector carries the +bounds of a list of 1,048,577 bytes, a list of 1,025 entries, a request of 65,537 bytes or an +evidence text of 1,048,577 bytes; both implementations check them themselves. + +`wai_rung_price_vectors verify` and `tests/rung_price.rs` check that the file regenerates byte for +byte and that `wai-rs` reaches every stated outcome. `../rung_price_verify.py` is the second +implementation, written from the extension's text, which also mutates copies of the corpus and +drops each of its own checks in turn and requires each to be caught. diff --git a/wai/live-conformance/prices/vectors.json b/wai/live-conformance/prices/vectors.json new file mode 100644 index 000000000..4cba3bdf8 --- /dev/null +++ b/wai/live-conformance/prices/vectors.json @@ -0,0 +1,10908 @@ +{ + "about": "Conformance corpus of extensions/rung-price.md (wai.delivery.rung_price): rung price lists (§4), their verdicts at an instant (§5), and comparisons of delivery options under a request, with the per-hop records an energy figure names (§4.6, §6). Every key is Ed25519 from a fixed 32-byte seed and attests nothing; every region is an ISO 3166-1 user-assigned code or a subdivision of one, and names no place. Each case states the outcome it was written to have, declared in the generator. Regenerate with `wai_rung_price_vectors gen`.", + "keys": { + "seller_unicast": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "seller_broadcast": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "seller_c": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "seller_d": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "seller_contribution": "d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8", + "seller_other_currency": "34b4d9043156cb6dcf0beb0a2949b7559c940d2bcb6dbe8c53a9b30278e3a746", + "holder_a": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "holder_b": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "holder_c": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0", + "holder_d": "9f49439e9db095bc4111ed25d35795d831bc55a047f4b1d7f6aee3777bb41220", + "holder_e": "c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242", + "seller_e": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "seller_f": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "seller_g": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "room_authority": "750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5", + "small_order": "0100000000000000000000000000000000000000000000000000000000000000" + }, + "lists": [ + { + "name": "unicast_tiers", + "description": "Bidirectional downlink bytes at three tiers (2,000,000, 8,000,000 and the unbounded ceiling) over {XA, XB}, each with an estimator's figure.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 3 + } + }, + { + "name": "broadcast_capacity", + "description": "Multicast and unidirectional downlink bytes_sent, unidirectional downlink pass_us, and unidirectional uplink bytes_sent; one entry with no figure.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97", + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entries": 5 + } + }, + { + "name": "peer_bytes", + "description": "A holder's bidirectional downlink bytes over {XB-1}, with no figure.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB-1\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a\",\"sig\":\"58c466b9ec9d6af1c3374c0ce3ac8e03005bd21147b03611d26b43f075e4d687cd8c8208d6e15b4271472db757f57a1ba503ffc8edfe605e4480fd5be0490402\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "ea70b84fe69bc45508747d216510b717e1d252ac819e96efd133eaa662369c1e", + "seller": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "entries": 1 + } + }, + { + "name": "contribution", + "description": "Bidirectional uplink publisher_us, and unidirectional uplink bytes_sent.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"uplink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":30000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":500000,\"unit\":\"publisher_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":60000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8\",\"sig\":\"d5c7a148bad628e599a82c77b94874803227676f728973c9d495573d685fb0979f26818f96dce13b1e0529ca9111122ee400e662297930340c7127df19875807\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "86f214c857f64e9d9012c613ba0cd39ccdc43a3b595c5c22880b5232bce3939d", + "seller": "d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8", + "entries": 2 + } + }, + { + "name": "room_layers", + "description": "Bidirectional downlink subscriber_us at three tiers.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":500000,\"price\":100000,\"unit\":\"subscriber_us\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2500000,\"price\":200000,\"unit\":\"subscriber_us\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":6000000,\"price\":400000,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b0d86da5dae3f15abcf49cd19596b70b81ef4c4fcfc0e0d509b4288e7446ba5a2086a05e5e87cfa279075b4e2e88a4908ac56a886ccf6851ac5ce1fab9e60f03\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "70f7497a81f77deb0916d7a41ef7f7b674884d2e435bfce133f9059768869ba3", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 3 + } + }, + { + "name": "disjoint_footprints", + "description": "Two entries of one unit and one ceiling over {XA} and {XB}, at two prices.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":25000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"d5c80fe9858ac94809ba9eb89595eaf716ade0bcb57eb0ebd80532579ed4b3605215d18d80c4500f0ae57d33676b6faf1ff54b0b8fd189e9b9f8d6f92513b00c\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "25460e848fc3c5fe88a92790f2d7dbe8b397509a59a5738edac0318b34d919ae", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 2 + } + }, + { + "name": "country_and_another_countrys_subdivision", + "description": "{XA-1, XB} in one entry: a subdivision beside another country.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA-1\",\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"5a5d70648d5bf9643cce09c0d6eb05d52e3266dbed7c322ca4c36e19639606fcb0db9ddcc78606d0ba2f4c177366be4d93ccde586c97809c31d94ab21d07940f\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "53a177d8c488591748b71ee3605653d879e9ccdc446c629a35850376fa34b4ae", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 1 + } + }, + { + "name": "bounds", + "description": "A ceiling of 1, a price of 0 and a figure of 1; a footprint of 8,192 codes; a subscriber_us price of 2^32 − 1; issued 0 and expires 2^53 − 1.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1,\"footprint\":[\"XA\"],\"max_bps\":1,\"price\":0,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA-000\",\"XA-001\",\"XA-002\",\"XA-003\",\"XA-004\",\"XA-005\",\"XA-006\",\"XA-007\",\"XA-008\",\"XA-009\",\"XA-010\",\"XA-011\",\"XA-012\",\"XA-013\",\"XA-014\",\"XA-015\",\"XA-016\",\"XA-017\",\"XA-018\",\"XA-019\",\"XA-020\",\"XA-021\",\"XA-022\",\"XA-023\",\"XA-024\",\"XA-025\",\"XA-026\",\"XA-027\",\"XA-028\",\"XA-029\",\"XA-030\",\"XA-031\",\"XA-032\",\"XA-033\",\"XA-034\",\"XA-035\",\"XA-036\",\"XA-037\",\"XA-038\",\"XA-039\",\"XA-040\",\"XA-041\",\"XA-042\",\"XA-043\",\"XA-044\",\"XA-045\",\"XA-046\",\"XA-047\",\"XA-048\",\"XA-049\",\"XA-050\",\"XA-051\",\"XA-052\",\"XA-053\",\"XA-054\",\"XA-055\",\"XA-056\",\"XA-057\",\"XA-058\",\"XA-059\",\"XA-060\",\"XA-061\",\"XA-062\",\"XA-063\",\"XA-064\",\"XA-065\",\"XA-066\",\"XA-067\",\"XA-068\",\"XA-069\",\"XA-070\",\"XA-071\",\"XA-072\",\"XA-073\",\"XA-074\",\"XA-075\",\"XA-076\",\"XA-077\",\"XA-078\",\"XA-079\",\"XA-080\",\"XA-081\",\"XA-082\",\"XA-083\",\"XA-084\",\"XA-085\",\"XA-086\",\"XA-087\",\"XA-088\",\"XA-089\",\"XA-090\",\"XA-091\",\"XA-092\",\"XA-093\",\"XA-094\",\"XA-095\",\"XA-096\",\"XA-097\",\"XA-098\",\"XA-099\",\"XA-100\",\"XA-101\",\"XA-102\",\"XA-103\",\"XA-104\",\"XA-105\",\"XA-106\",\"XA-107\",\"XA-108\",\"XA-109\",\"XA-110\",\"XA-111\",\"XA-112\",\"XA-113\",\"XA-114\",\"XA-115\",\"XA-116\",\"XA-117\",\"XA-118\",\"XA-119\",\"XA-120\",\"XA-121\",\"XA-122\",\"XA-123\",\"XA-124\",\"XA-125\",\"XA-126\",\"XA-127\",\"XA-128\",\"XA-129\",\"XA-130\",\"XA-131\",\"XA-132\",\"XA-133\",\"XA-134\",\"XA-135\",\"XA-136\",\"XA-137\",\"XA-138\",\"XA-139\",\"XA-140\",\"XA-141\",\"XA-142\",\"XA-143\",\"XA-144\",\"XA-145\",\"XA-146\",\"XA-147\",\"XA-148\",\"XA-149\",\"XA-150\",\"XA-151\",\"XA-152\",\"XA-153\",\"XA-154\",\"XA-155\",\"XA-156\",\"XA-157\",\"XA-158\",\"XA-159\",\"XA-160\",\"XA-161\",\"XA-162\",\"XA-163\",\"XA-164\",\"XA-165\",\"XA-166\",\"XA-167\",\"XA-168\",\"XA-169\",\"XA-170\",\"XA-171\",\"XA-172\",\"XA-173\",\"XA-174\",\"XA-175\",\"XA-176\",\"XA-177\",\"XA-178\",\"XA-179\",\"XA-180\",\"XA-181\",\"XA-182\",\"XA-183\",\"XA-184\",\"XA-185\",\"XA-186\",\"XA-187\",\"XA-188\",\"XA-189\",\"XA-190\",\"XA-191\",\"XA-192\",\"XA-193\",\"XA-194\",\"XA-195\",\"XA-196\",\"XA-197\",\"XA-198\",\"XA-199\",\"XA-200\",\"XA-201\",\"XA-202\",\"XA-203\",\"XA-204\",\"XA-205\",\"XA-206\",\"XA-207\",\"XA-208\",\"XA-209\",\"XA-210\",\"XA-211\",\"XA-212\",\"XA-213\",\"XA-214\",\"XA-215\",\"XA-216\",\"XA-217\",\"XA-218\",\"XA-219\",\"XA-220\",\"XA-221\",\"XA-222\",\"XA-223\",\"XA-224\",\"XA-225\",\"XA-226\",\"XA-227\",\"XA-228\",\"XA-229\",\"XA-230\",\"XA-231\",\"XA-232\",\"XA-233\",\"XA-234\",\"XA-235\",\"XA-236\",\"XA-237\",\"XA-238\",\"XA-239\",\"XA-240\",\"XA-241\",\"XA-242\",\"XA-243\",\"XA-244\",\"XA-245\",\"XA-246\",\"XA-247\",\"XA-248\",\"XA-249\",\"XA-250\",\"XA-251\",\"XA-252\",\"XA-253\",\"XA-254\",\"XA-255\",\"XA-256\",\"XA-257\",\"XA-258\",\"XA-259\",\"XA-260\",\"XA-261\",\"XA-262\",\"XA-263\",\"XA-264\",\"XA-265\",\"XA-266\",\"XA-267\",\"XA-268\",\"XA-269\",\"XA-270\",\"XA-271\",\"XA-272\",\"XA-273\",\"XA-274\",\"XA-275\",\"XA-276\",\"XA-277\",\"XA-278\",\"XA-279\",\"XA-280\",\"XA-281\",\"XA-282\",\"XA-283\",\"XA-284\",\"XA-285\",\"XA-286\",\"XA-287\",\"XA-288\",\"XA-289\",\"XA-290\",\"XA-291\",\"XA-292\",\"XA-293\",\"XA-294\",\"XA-295\",\"XA-296\",\"XA-297\",\"XA-298\",\"XA-299\",\"XA-300\",\"XA-301\",\"XA-302\",\"XA-303\",\"XA-304\",\"XA-305\",\"XA-306\",\"XA-307\",\"XA-308\",\"XA-309\",\"XA-310\",\"XA-311\",\"XA-312\",\"XA-313\",\"XA-314\",\"XA-315\",\"XA-316\",\"XA-317\",\"XA-318\",\"XA-319\",\"XA-320\",\"XA-321\",\"XA-322\",\"XA-323\",\"XA-324\",\"XA-325\",\"XA-326\",\"XA-327\",\"XA-328\",\"XA-329\",\"XA-330\",\"XA-331\",\"XA-332\",\"XA-333\",\"XA-334\",\"XA-335\",\"XA-336\",\"XA-337\",\"XA-338\",\"XA-339\",\"XA-340\",\"XA-341\",\"XA-342\",\"XA-343\",\"XA-344\",\"XA-345\",\"XA-346\",\"XA-347\",\"XA-348\",\"XA-349\",\"XA-350\",\"XA-351\",\"XA-352\",\"XA-353\",\"XA-354\",\"XA-355\",\"XA-356\",\"XA-357\",\"XA-358\",\"XA-359\",\"XA-360\",\"XA-361\",\"XA-362\",\"XA-363\",\"XA-364\",\"XA-365\",\"XA-366\",\"XA-367\",\"XA-368\",\"XA-369\",\"XA-370\",\"XA-371\",\"XA-372\",\"XA-373\",\"XA-374\",\"XA-375\",\"XA-376\",\"XA-377\",\"XA-378\",\"XA-379\",\"XA-380\",\"XA-381\",\"XA-382\",\"XA-383\",\"XA-384\",\"XA-385\",\"XA-386\",\"XA-387\",\"XA-388\",\"XA-389\",\"XA-390\",\"XA-391\",\"XA-392\",\"XA-393\",\"XA-394\",\"XA-395\",\"XA-396\",\"XA-397\",\"XA-398\",\"XA-399\",\"XA-400\",\"XA-401\",\"XA-402\",\"XA-403\",\"XA-404\",\"XA-405\",\"XA-406\",\"XA-407\",\"XA-408\",\"XA-409\",\"XA-410\",\"XA-411\",\"XA-412\",\"XA-413\",\"XA-414\",\"XA-415\",\"XA-416\",\"XA-417\",\"XA-418\",\"XA-419\",\"XA-420\",\"XA-421\",\"XA-422\",\"XA-423\",\"XA-424\",\"XA-425\",\"XA-426\",\"XA-427\",\"XA-428\",\"XA-429\",\"XA-430\",\"XA-431\",\"XA-432\",\"XA-433\",\"XA-434\",\"XA-435\",\"XA-436\",\"XA-437\",\"XA-438\",\"XA-439\",\"XA-440\",\"XA-441\",\"XA-442\",\"XA-443\",\"XA-444\",\"XA-445\",\"XA-446\",\"XA-447\",\"XA-448\",\"XA-449\",\"XA-450\",\"XA-451\",\"XA-452\",\"XA-453\",\"XA-454\",\"XA-455\",\"XA-456\",\"XA-457\",\"XA-458\",\"XA-459\",\"XA-460\",\"XA-461\",\"XA-462\",\"XA-463\",\"XA-464\",\"XA-465\",\"XA-466\",\"XA-467\",\"XA-468\",\"XA-469\",\"XA-470\",\"XA-471\",\"XA-472\",\"XA-473\",\"XA-474\",\"XA-475\",\"XA-476\",\"XA-477\",\"XA-478\",\"XA-479\",\"XA-480\",\"XA-481\",\"XA-482\",\"XA-483\",\"XA-484\",\"XA-485\",\"XA-486\",\"XA-487\",\"XA-488\",\"XA-489\",\"XA-490\",\"XA-491\",\"XA-492\",\"XA-493\",\"XA-494\",\"XA-495\",\"XA-496\",\"XA-497\",\"XA-498\",\"XA-499\",\"XA-500\",\"XA-501\",\"XA-502\",\"XA-503\",\"XA-504\",\"XA-505\",\"XA-506\",\"XA-507\",\"XA-508\",\"XA-509\",\"XA-510\",\"XA-511\",\"XB-000\",\"XB-001\",\"XB-002\",\"XB-003\",\"XB-004\",\"XB-005\",\"XB-006\",\"XB-007\",\"XB-008\",\"XB-009\",\"XB-010\",\"XB-011\",\"XB-012\",\"XB-013\",\"XB-014\",\"XB-015\",\"XB-016\",\"XB-017\",\"XB-018\",\"XB-019\",\"XB-020\",\"XB-021\",\"XB-022\",\"XB-023\",\"XB-024\",\"XB-025\",\"XB-026\",\"XB-027\",\"XB-028\",\"XB-029\",\"XB-030\",\"XB-031\",\"XB-032\",\"XB-033\",\"XB-034\",\"XB-035\",\"XB-036\",\"XB-037\",\"XB-038\",\"XB-039\",\"XB-040\",\"XB-041\",\"XB-042\",\"XB-043\",\"XB-044\",\"XB-045\",\"XB-046\",\"XB-047\",\"XB-048\",\"XB-049\",\"XB-050\",\"XB-051\",\"XB-052\",\"XB-053\",\"XB-054\",\"XB-055\",\"XB-056\",\"XB-057\",\"XB-058\",\"XB-059\",\"XB-060\",\"XB-061\",\"XB-062\",\"XB-063\",\"XB-064\",\"XB-065\",\"XB-066\",\"XB-067\",\"XB-068\",\"XB-069\",\"XB-070\",\"XB-071\",\"XB-072\",\"XB-073\",\"XB-074\",\"XB-075\",\"XB-076\",\"XB-077\",\"XB-078\",\"XB-079\",\"XB-080\",\"XB-081\",\"XB-082\",\"XB-083\",\"XB-084\",\"XB-085\",\"XB-086\",\"XB-087\",\"XB-088\",\"XB-089\",\"XB-090\",\"XB-091\",\"XB-092\",\"XB-093\",\"XB-094\",\"XB-095\",\"XB-096\",\"XB-097\",\"XB-098\",\"XB-099\",\"XB-100\",\"XB-101\",\"XB-102\",\"XB-103\",\"XB-104\",\"XB-105\",\"XB-106\",\"XB-107\",\"XB-108\",\"XB-109\",\"XB-110\",\"XB-111\",\"XB-112\",\"XB-113\",\"XB-114\",\"XB-115\",\"XB-116\",\"XB-117\",\"XB-118\",\"XB-119\",\"XB-120\",\"XB-121\",\"XB-122\",\"XB-123\",\"XB-124\",\"XB-125\",\"XB-126\",\"XB-127\",\"XB-128\",\"XB-129\",\"XB-130\",\"XB-131\",\"XB-132\",\"XB-133\",\"XB-134\",\"XB-135\",\"XB-136\",\"XB-137\",\"XB-138\",\"XB-139\",\"XB-140\",\"XB-141\",\"XB-142\",\"XB-143\",\"XB-144\",\"XB-145\",\"XB-146\",\"XB-147\",\"XB-148\",\"XB-149\",\"XB-150\",\"XB-151\",\"XB-152\",\"XB-153\",\"XB-154\",\"XB-155\",\"XB-156\",\"XB-157\",\"XB-158\",\"XB-159\",\"XB-160\",\"XB-161\",\"XB-162\",\"XB-163\",\"XB-164\",\"XB-165\",\"XB-166\",\"XB-167\",\"XB-168\",\"XB-169\",\"XB-170\",\"XB-171\",\"XB-172\",\"XB-173\",\"XB-174\",\"XB-175\",\"XB-176\",\"XB-177\",\"XB-178\",\"XB-179\",\"XB-180\",\"XB-181\",\"XB-182\",\"XB-183\",\"XB-184\",\"XB-185\",\"XB-186\",\"XB-187\",\"XB-188\",\"XB-189\",\"XB-190\",\"XB-191\",\"XB-192\",\"XB-193\",\"XB-194\",\"XB-195\",\"XB-196\",\"XB-197\",\"XB-198\",\"XB-199\",\"XB-200\",\"XB-201\",\"XB-202\",\"XB-203\",\"XB-204\",\"XB-205\",\"XB-206\",\"XB-207\",\"XB-208\",\"XB-209\",\"XB-210\",\"XB-211\",\"XB-212\",\"XB-213\",\"XB-214\",\"XB-215\",\"XB-216\",\"XB-217\",\"XB-218\",\"XB-219\",\"XB-220\",\"XB-221\",\"XB-222\",\"XB-223\",\"XB-224\",\"XB-225\",\"XB-226\",\"XB-227\",\"XB-228\",\"XB-229\",\"XB-230\",\"XB-231\",\"XB-232\",\"XB-233\",\"XB-234\",\"XB-235\",\"XB-236\",\"XB-237\",\"XB-238\",\"XB-239\",\"XB-240\",\"XB-241\",\"XB-242\",\"XB-243\",\"XB-244\",\"XB-245\",\"XB-246\",\"XB-247\",\"XB-248\",\"XB-249\",\"XB-250\",\"XB-251\",\"XB-252\",\"XB-253\",\"XB-254\",\"XB-255\",\"XB-256\",\"XB-257\",\"XB-258\",\"XB-259\",\"XB-260\",\"XB-261\",\"XB-262\",\"XB-263\",\"XB-264\",\"XB-265\",\"XB-266\",\"XB-267\",\"XB-268\",\"XB-269\",\"XB-270\",\"XB-271\",\"XB-272\",\"XB-273\",\"XB-274\",\"XB-275\",\"XB-276\",\"XB-277\",\"XB-278\",\"XB-279\",\"XB-280\",\"XB-281\",\"XB-282\",\"XB-283\",\"XB-284\",\"XB-285\",\"XB-286\",\"XB-287\",\"XB-288\",\"XB-289\",\"XB-290\",\"XB-291\",\"XB-292\",\"XB-293\",\"XB-294\",\"XB-295\",\"XB-296\",\"XB-297\",\"XB-298\",\"XB-299\",\"XB-300\",\"XB-301\",\"XB-302\",\"XB-303\",\"XB-304\",\"XB-305\",\"XB-306\",\"XB-307\",\"XB-308\",\"XB-309\",\"XB-310\",\"XB-311\",\"XB-312\",\"XB-313\",\"XB-314\",\"XB-315\",\"XB-316\",\"XB-317\",\"XB-318\",\"XB-319\",\"XB-320\",\"XB-321\",\"XB-322\",\"XB-323\",\"XB-324\",\"XB-325\",\"XB-326\",\"XB-327\",\"XB-328\",\"XB-329\",\"XB-330\",\"XB-331\",\"XB-332\",\"XB-333\",\"XB-334\",\"XB-335\",\"XB-336\",\"XB-337\",\"XB-338\",\"XB-339\",\"XB-340\",\"XB-341\",\"XB-342\",\"XB-343\",\"XB-344\",\"XB-345\",\"XB-346\",\"XB-347\",\"XB-348\",\"XB-349\",\"XB-350\",\"XB-351\",\"XB-352\",\"XB-353\",\"XB-354\",\"XB-355\",\"XB-356\",\"XB-357\",\"XB-358\",\"XB-359\",\"XB-360\",\"XB-361\",\"XB-362\",\"XB-363\",\"XB-364\",\"XB-365\",\"XB-366\",\"XB-367\",\"XB-368\",\"XB-369\",\"XB-370\",\"XB-371\",\"XB-372\",\"XB-373\",\"XB-374\",\"XB-375\",\"XB-376\",\"XB-377\",\"XB-378\",\"XB-379\",\"XB-380\",\"XB-381\",\"XB-382\",\"XB-383\",\"XB-384\",\"XB-385\",\"XB-386\",\"XB-387\",\"XB-388\",\"XB-389\",\"XB-390\",\"XB-391\",\"XB-392\",\"XB-393\",\"XB-394\",\"XB-395\",\"XB-396\",\"XB-397\",\"XB-398\",\"XB-399\",\"XB-400\",\"XB-401\",\"XB-402\",\"XB-403\",\"XB-404\",\"XB-405\",\"XB-406\",\"XB-407\",\"XB-408\",\"XB-409\",\"XB-410\",\"XB-411\",\"XB-412\",\"XB-413\",\"XB-414\",\"XB-415\",\"XB-416\",\"XB-417\",\"XB-418\",\"XB-419\",\"XB-420\",\"XB-421\",\"XB-422\",\"XB-423\",\"XB-424\",\"XB-425\",\"XB-426\",\"XB-427\",\"XB-428\",\"XB-429\",\"XB-430\",\"XB-431\",\"XB-432\",\"XB-433\",\"XB-434\",\"XB-435\",\"XB-436\",\"XB-437\",\"XB-438\",\"XB-439\",\"XB-440\",\"XB-441\",\"XB-442\",\"XB-443\",\"XB-444\",\"XB-445\",\"XB-446\",\"XB-447\",\"XB-448\",\"XB-449\",\"XB-450\",\"XB-451\",\"XB-452\",\"XB-453\",\"XB-454\",\"XB-455\",\"XB-456\",\"XB-457\",\"XB-458\",\"XB-459\",\"XB-460\",\"XB-461\",\"XB-462\",\"XB-463\",\"XB-464\",\"XB-465\",\"XB-466\",\"XB-467\",\"XB-468\",\"XB-469\",\"XB-470\",\"XB-471\",\"XB-472\",\"XB-473\",\"XB-474\",\"XB-475\",\"XB-476\",\"XB-477\",\"XB-478\",\"XB-479\",\"XB-480\",\"XB-481\",\"XB-482\",\"XB-483\",\"XB-484\",\"XB-485\",\"XB-486\",\"XB-487\",\"XB-488\",\"XB-489\",\"XB-490\",\"XB-491\",\"XB-492\",\"XB-493\",\"XB-494\",\"XB-495\",\"XB-496\",\"XB-497\",\"XB-498\",\"XB-499\",\"XB-500\",\"XB-501\",\"XB-502\",\"XB-503\",\"XB-504\",\"XB-505\",\"XB-506\",\"XB-507\",\"XB-508\",\"XB-509\",\"XB-510\",\"XB-511\",\"XC-000\",\"XC-001\",\"XC-002\",\"XC-003\",\"XC-004\",\"XC-005\",\"XC-006\",\"XC-007\",\"XC-008\",\"XC-009\",\"XC-010\",\"XC-011\",\"XC-012\",\"XC-013\",\"XC-014\",\"XC-015\",\"XC-016\",\"XC-017\",\"XC-018\",\"XC-019\",\"XC-020\",\"XC-021\",\"XC-022\",\"XC-023\",\"XC-024\",\"XC-025\",\"XC-026\",\"XC-027\",\"XC-028\",\"XC-029\",\"XC-030\",\"XC-031\",\"XC-032\",\"XC-033\",\"XC-034\",\"XC-035\",\"XC-036\",\"XC-037\",\"XC-038\",\"XC-039\",\"XC-040\",\"XC-041\",\"XC-042\",\"XC-043\",\"XC-044\",\"XC-045\",\"XC-046\",\"XC-047\",\"XC-048\",\"XC-049\",\"XC-050\",\"XC-051\",\"XC-052\",\"XC-053\",\"XC-054\",\"XC-055\",\"XC-056\",\"XC-057\",\"XC-058\",\"XC-059\",\"XC-060\",\"XC-061\",\"XC-062\",\"XC-063\",\"XC-064\",\"XC-065\",\"XC-066\",\"XC-067\",\"XC-068\",\"XC-069\",\"XC-070\",\"XC-071\",\"XC-072\",\"XC-073\",\"XC-074\",\"XC-075\",\"XC-076\",\"XC-077\",\"XC-078\",\"XC-079\",\"XC-080\",\"XC-081\",\"XC-082\",\"XC-083\",\"XC-084\",\"XC-085\",\"XC-086\",\"XC-087\",\"XC-088\",\"XC-089\",\"XC-090\",\"XC-091\",\"XC-092\",\"XC-093\",\"XC-094\",\"XC-095\",\"XC-096\",\"XC-097\",\"XC-098\",\"XC-099\",\"XC-100\",\"XC-101\",\"XC-102\",\"XC-103\",\"XC-104\",\"XC-105\",\"XC-106\",\"XC-107\",\"XC-108\",\"XC-109\",\"XC-110\",\"XC-111\",\"XC-112\",\"XC-113\",\"XC-114\",\"XC-115\",\"XC-116\",\"XC-117\",\"XC-118\",\"XC-119\",\"XC-120\",\"XC-121\",\"XC-122\",\"XC-123\",\"XC-124\",\"XC-125\",\"XC-126\",\"XC-127\",\"XC-128\",\"XC-129\",\"XC-130\",\"XC-131\",\"XC-132\",\"XC-133\",\"XC-134\",\"XC-135\",\"XC-136\",\"XC-137\",\"XC-138\",\"XC-139\",\"XC-140\",\"XC-141\",\"XC-142\",\"XC-143\",\"XC-144\",\"XC-145\",\"XC-146\",\"XC-147\",\"XC-148\",\"XC-149\",\"XC-150\",\"XC-151\",\"XC-152\",\"XC-153\",\"XC-154\",\"XC-155\",\"XC-156\",\"XC-157\",\"XC-158\",\"XC-159\",\"XC-160\",\"XC-161\",\"XC-162\",\"XC-163\",\"XC-164\",\"XC-165\",\"XC-166\",\"XC-167\",\"XC-168\",\"XC-169\",\"XC-170\",\"XC-171\",\"XC-172\",\"XC-173\",\"XC-174\",\"XC-175\",\"XC-176\",\"XC-177\",\"XC-178\",\"XC-179\",\"XC-180\",\"XC-181\",\"XC-182\",\"XC-183\",\"XC-184\",\"XC-185\",\"XC-186\",\"XC-187\",\"XC-188\",\"XC-189\",\"XC-190\",\"XC-191\",\"XC-192\",\"XC-193\",\"XC-194\",\"XC-195\",\"XC-196\",\"XC-197\",\"XC-198\",\"XC-199\",\"XC-200\",\"XC-201\",\"XC-202\",\"XC-203\",\"XC-204\",\"XC-205\",\"XC-206\",\"XC-207\",\"XC-208\",\"XC-209\",\"XC-210\",\"XC-211\",\"XC-212\",\"XC-213\",\"XC-214\",\"XC-215\",\"XC-216\",\"XC-217\",\"XC-218\",\"XC-219\",\"XC-220\",\"XC-221\",\"XC-222\",\"XC-223\",\"XC-224\",\"XC-225\",\"XC-226\",\"XC-227\",\"XC-228\",\"XC-229\",\"XC-230\",\"XC-231\",\"XC-232\",\"XC-233\",\"XC-234\",\"XC-235\",\"XC-236\",\"XC-237\",\"XC-238\",\"XC-239\",\"XC-240\",\"XC-241\",\"XC-242\",\"XC-243\",\"XC-244\",\"XC-245\",\"XC-246\",\"XC-247\",\"XC-248\",\"XC-249\",\"XC-250\",\"XC-251\",\"XC-252\",\"XC-253\",\"XC-254\",\"XC-255\",\"XC-256\",\"XC-257\",\"XC-258\",\"XC-259\",\"XC-260\",\"XC-261\",\"XC-262\",\"XC-263\",\"XC-264\",\"XC-265\",\"XC-266\",\"XC-267\",\"XC-268\",\"XC-269\",\"XC-270\",\"XC-271\",\"XC-272\",\"XC-273\",\"XC-274\",\"XC-275\",\"XC-276\",\"XC-277\",\"XC-278\",\"XC-279\",\"XC-280\",\"XC-281\",\"XC-282\",\"XC-283\",\"XC-284\",\"XC-285\",\"XC-286\",\"XC-287\",\"XC-288\",\"XC-289\",\"XC-290\",\"XC-291\",\"XC-292\",\"XC-293\",\"XC-294\",\"XC-295\",\"XC-296\",\"XC-297\",\"XC-298\",\"XC-299\",\"XC-300\",\"XC-301\",\"XC-302\",\"XC-303\",\"XC-304\",\"XC-305\",\"XC-306\",\"XC-307\",\"XC-308\",\"XC-309\",\"XC-310\",\"XC-311\",\"XC-312\",\"XC-313\",\"XC-314\",\"XC-315\",\"XC-316\",\"XC-317\",\"XC-318\",\"XC-319\",\"XC-320\",\"XC-321\",\"XC-322\",\"XC-323\",\"XC-324\",\"XC-325\",\"XC-326\",\"XC-327\",\"XC-328\",\"XC-329\",\"XC-330\",\"XC-331\",\"XC-332\",\"XC-333\",\"XC-334\",\"XC-335\",\"XC-336\",\"XC-337\",\"XC-338\",\"XC-339\",\"XC-340\",\"XC-341\",\"XC-342\",\"XC-343\",\"XC-344\",\"XC-345\",\"XC-346\",\"XC-347\",\"XC-348\",\"XC-349\",\"XC-350\",\"XC-351\",\"XC-352\",\"XC-353\",\"XC-354\",\"XC-355\",\"XC-356\",\"XC-357\",\"XC-358\",\"XC-359\",\"XC-360\",\"XC-361\",\"XC-362\",\"XC-363\",\"XC-364\",\"XC-365\",\"XC-366\",\"XC-367\",\"XC-368\",\"XC-369\",\"XC-370\",\"XC-371\",\"XC-372\",\"XC-373\",\"XC-374\",\"XC-375\",\"XC-376\",\"XC-377\",\"XC-378\",\"XC-379\",\"XC-380\",\"XC-381\",\"XC-382\",\"XC-383\",\"XC-384\",\"XC-385\",\"XC-386\",\"XC-387\",\"XC-388\",\"XC-389\",\"XC-390\",\"XC-391\",\"XC-392\",\"XC-393\",\"XC-394\",\"XC-395\",\"XC-396\",\"XC-397\",\"XC-398\",\"XC-399\",\"XC-400\",\"XC-401\",\"XC-402\",\"XC-403\",\"XC-404\",\"XC-405\",\"XC-406\",\"XC-407\",\"XC-408\",\"XC-409\",\"XC-410\",\"XC-411\",\"XC-412\",\"XC-413\",\"XC-414\",\"XC-415\",\"XC-416\",\"XC-417\",\"XC-418\",\"XC-419\",\"XC-420\",\"XC-421\",\"XC-422\",\"XC-423\",\"XC-424\",\"XC-425\",\"XC-426\",\"XC-427\",\"XC-428\",\"XC-429\",\"XC-430\",\"XC-431\",\"XC-432\",\"XC-433\",\"XC-434\",\"XC-435\",\"XC-436\",\"XC-437\",\"XC-438\",\"XC-439\",\"XC-440\",\"XC-441\",\"XC-442\",\"XC-443\",\"XC-444\",\"XC-445\",\"XC-446\",\"XC-447\",\"XC-448\",\"XC-449\",\"XC-450\",\"XC-451\",\"XC-452\",\"XC-453\",\"XC-454\",\"XC-455\",\"XC-456\",\"XC-457\",\"XC-458\",\"XC-459\",\"XC-460\",\"XC-461\",\"XC-462\",\"XC-463\",\"XC-464\",\"XC-465\",\"XC-466\",\"XC-467\",\"XC-468\",\"XC-469\",\"XC-470\",\"XC-471\",\"XC-472\",\"XC-473\",\"XC-474\",\"XC-475\",\"XC-476\",\"XC-477\",\"XC-478\",\"XC-479\",\"XC-480\",\"XC-481\",\"XC-482\",\"XC-483\",\"XC-484\",\"XC-485\",\"XC-486\",\"XC-487\",\"XC-488\",\"XC-489\",\"XC-490\",\"XC-491\",\"XC-492\",\"XC-493\",\"XC-494\",\"XC-495\",\"XC-496\",\"XC-497\",\"XC-498\",\"XC-499\",\"XC-500\",\"XC-501\",\"XC-502\",\"XC-503\",\"XC-504\",\"XC-505\",\"XC-506\",\"XC-507\",\"XC-508\",\"XC-509\",\"XC-510\",\"XC-511\",\"XD-000\",\"XD-001\",\"XD-002\",\"XD-003\",\"XD-004\",\"XD-005\",\"XD-006\",\"XD-007\",\"XD-008\",\"XD-009\",\"XD-010\",\"XD-011\",\"XD-012\",\"XD-013\",\"XD-014\",\"XD-015\",\"XD-016\",\"XD-017\",\"XD-018\",\"XD-019\",\"XD-020\",\"XD-021\",\"XD-022\",\"XD-023\",\"XD-024\",\"XD-025\",\"XD-026\",\"XD-027\",\"XD-028\",\"XD-029\",\"XD-030\",\"XD-031\",\"XD-032\",\"XD-033\",\"XD-034\",\"XD-035\",\"XD-036\",\"XD-037\",\"XD-038\",\"XD-039\",\"XD-040\",\"XD-041\",\"XD-042\",\"XD-043\",\"XD-044\",\"XD-045\",\"XD-046\",\"XD-047\",\"XD-048\",\"XD-049\",\"XD-050\",\"XD-051\",\"XD-052\",\"XD-053\",\"XD-054\",\"XD-055\",\"XD-056\",\"XD-057\",\"XD-058\",\"XD-059\",\"XD-060\",\"XD-061\",\"XD-062\",\"XD-063\",\"XD-064\",\"XD-065\",\"XD-066\",\"XD-067\",\"XD-068\",\"XD-069\",\"XD-070\",\"XD-071\",\"XD-072\",\"XD-073\",\"XD-074\",\"XD-075\",\"XD-076\",\"XD-077\",\"XD-078\",\"XD-079\",\"XD-080\",\"XD-081\",\"XD-082\",\"XD-083\",\"XD-084\",\"XD-085\",\"XD-086\",\"XD-087\",\"XD-088\",\"XD-089\",\"XD-090\",\"XD-091\",\"XD-092\",\"XD-093\",\"XD-094\",\"XD-095\",\"XD-096\",\"XD-097\",\"XD-098\",\"XD-099\",\"XD-100\",\"XD-101\",\"XD-102\",\"XD-103\",\"XD-104\",\"XD-105\",\"XD-106\",\"XD-107\",\"XD-108\",\"XD-109\",\"XD-110\",\"XD-111\",\"XD-112\",\"XD-113\",\"XD-114\",\"XD-115\",\"XD-116\",\"XD-117\",\"XD-118\",\"XD-119\",\"XD-120\",\"XD-121\",\"XD-122\",\"XD-123\",\"XD-124\",\"XD-125\",\"XD-126\",\"XD-127\",\"XD-128\",\"XD-129\",\"XD-130\",\"XD-131\",\"XD-132\",\"XD-133\",\"XD-134\",\"XD-135\",\"XD-136\",\"XD-137\",\"XD-138\",\"XD-139\",\"XD-140\",\"XD-141\",\"XD-142\",\"XD-143\",\"XD-144\",\"XD-145\",\"XD-146\",\"XD-147\",\"XD-148\",\"XD-149\",\"XD-150\",\"XD-151\",\"XD-152\",\"XD-153\",\"XD-154\",\"XD-155\",\"XD-156\",\"XD-157\",\"XD-158\",\"XD-159\",\"XD-160\",\"XD-161\",\"XD-162\",\"XD-163\",\"XD-164\",\"XD-165\",\"XD-166\",\"XD-167\",\"XD-168\",\"XD-169\",\"XD-170\",\"XD-171\",\"XD-172\",\"XD-173\",\"XD-174\",\"XD-175\",\"XD-176\",\"XD-177\",\"XD-178\",\"XD-179\",\"XD-180\",\"XD-181\",\"XD-182\",\"XD-183\",\"XD-184\",\"XD-185\",\"XD-186\",\"XD-187\",\"XD-188\",\"XD-189\",\"XD-190\",\"XD-191\",\"XD-192\",\"XD-193\",\"XD-194\",\"XD-195\",\"XD-196\",\"XD-197\",\"XD-198\",\"XD-199\",\"XD-200\",\"XD-201\",\"XD-202\",\"XD-203\",\"XD-204\",\"XD-205\",\"XD-206\",\"XD-207\",\"XD-208\",\"XD-209\",\"XD-210\",\"XD-211\",\"XD-212\",\"XD-213\",\"XD-214\",\"XD-215\",\"XD-216\",\"XD-217\",\"XD-218\",\"XD-219\",\"XD-220\",\"XD-221\",\"XD-222\",\"XD-223\",\"XD-224\",\"XD-225\",\"XD-226\",\"XD-227\",\"XD-228\",\"XD-229\",\"XD-230\",\"XD-231\",\"XD-232\",\"XD-233\",\"XD-234\",\"XD-235\",\"XD-236\",\"XD-237\",\"XD-238\",\"XD-239\",\"XD-240\",\"XD-241\",\"XD-242\",\"XD-243\",\"XD-244\",\"XD-245\",\"XD-246\",\"XD-247\",\"XD-248\",\"XD-249\",\"XD-250\",\"XD-251\",\"XD-252\",\"XD-253\",\"XD-254\",\"XD-255\",\"XD-256\",\"XD-257\",\"XD-258\",\"XD-259\",\"XD-260\",\"XD-261\",\"XD-262\",\"XD-263\",\"XD-264\",\"XD-265\",\"XD-266\",\"XD-267\",\"XD-268\",\"XD-269\",\"XD-270\",\"XD-271\",\"XD-272\",\"XD-273\",\"XD-274\",\"XD-275\",\"XD-276\",\"XD-277\",\"XD-278\",\"XD-279\",\"XD-280\",\"XD-281\",\"XD-282\",\"XD-283\",\"XD-284\",\"XD-285\",\"XD-286\",\"XD-287\",\"XD-288\",\"XD-289\",\"XD-290\",\"XD-291\",\"XD-292\",\"XD-293\",\"XD-294\",\"XD-295\",\"XD-296\",\"XD-297\",\"XD-298\",\"XD-299\",\"XD-300\",\"XD-301\",\"XD-302\",\"XD-303\",\"XD-304\",\"XD-305\",\"XD-306\",\"XD-307\",\"XD-308\",\"XD-309\",\"XD-310\",\"XD-311\",\"XD-312\",\"XD-313\",\"XD-314\",\"XD-315\",\"XD-316\",\"XD-317\",\"XD-318\",\"XD-319\",\"XD-320\",\"XD-321\",\"XD-322\",\"XD-323\",\"XD-324\",\"XD-325\",\"XD-326\",\"XD-327\",\"XD-328\",\"XD-329\",\"XD-330\",\"XD-331\",\"XD-332\",\"XD-333\",\"XD-334\",\"XD-335\",\"XD-336\",\"XD-337\",\"XD-338\",\"XD-339\",\"XD-340\",\"XD-341\",\"XD-342\",\"XD-343\",\"XD-344\",\"XD-345\",\"XD-346\",\"XD-347\",\"XD-348\",\"XD-349\",\"XD-350\",\"XD-351\",\"XD-352\",\"XD-353\",\"XD-354\",\"XD-355\",\"XD-356\",\"XD-357\",\"XD-358\",\"XD-359\",\"XD-360\",\"XD-361\",\"XD-362\",\"XD-363\",\"XD-364\",\"XD-365\",\"XD-366\",\"XD-367\",\"XD-368\",\"XD-369\",\"XD-370\",\"XD-371\",\"XD-372\",\"XD-373\",\"XD-374\",\"XD-375\",\"XD-376\",\"XD-377\",\"XD-378\",\"XD-379\",\"XD-380\",\"XD-381\",\"XD-382\",\"XD-383\",\"XD-384\",\"XD-385\",\"XD-386\",\"XD-387\",\"XD-388\",\"XD-389\",\"XD-390\",\"XD-391\",\"XD-392\",\"XD-393\",\"XD-394\",\"XD-395\",\"XD-396\",\"XD-397\",\"XD-398\",\"XD-399\",\"XD-400\",\"XD-401\",\"XD-402\",\"XD-403\",\"XD-404\",\"XD-405\",\"XD-406\",\"XD-407\",\"XD-408\",\"XD-409\",\"XD-410\",\"XD-411\",\"XD-412\",\"XD-413\",\"XD-414\",\"XD-415\",\"XD-416\",\"XD-417\",\"XD-418\",\"XD-419\",\"XD-420\",\"XD-421\",\"XD-422\",\"XD-423\",\"XD-424\",\"XD-425\",\"XD-426\",\"XD-427\",\"XD-428\",\"XD-429\",\"XD-430\",\"XD-431\",\"XD-432\",\"XD-433\",\"XD-434\",\"XD-435\",\"XD-436\",\"XD-437\",\"XD-438\",\"XD-439\",\"XD-440\",\"XD-441\",\"XD-442\",\"XD-443\",\"XD-444\",\"XD-445\",\"XD-446\",\"XD-447\",\"XD-448\",\"XD-449\",\"XD-450\",\"XD-451\",\"XD-452\",\"XD-453\",\"XD-454\",\"XD-455\",\"XD-456\",\"XD-457\",\"XD-458\",\"XD-459\",\"XD-460\",\"XD-461\",\"XD-462\",\"XD-463\",\"XD-464\",\"XD-465\",\"XD-466\",\"XD-467\",\"XD-468\",\"XD-469\",\"XD-470\",\"XD-471\",\"XD-472\",\"XD-473\",\"XD-474\",\"XD-475\",\"XD-476\",\"XD-477\",\"XD-478\",\"XD-479\",\"XD-480\",\"XD-481\",\"XD-482\",\"XD-483\",\"XD-484\",\"XD-485\",\"XD-486\",\"XD-487\",\"XD-488\",\"XD-489\",\"XD-490\",\"XD-491\",\"XD-492\",\"XD-493\",\"XD-494\",\"XD-495\",\"XD-496\",\"XD-497\",\"XD-498\",\"XD-499\",\"XD-500\",\"XD-501\",\"XD-502\",\"XD-503\",\"XD-504\",\"XD-505\",\"XD-506\",\"XD-507\",\"XD-508\",\"XD-509\",\"XD-510\",\"XD-511\",\"XE-000\",\"XE-001\",\"XE-002\",\"XE-003\",\"XE-004\",\"XE-005\",\"XE-006\",\"XE-007\",\"XE-008\",\"XE-009\",\"XE-010\",\"XE-011\",\"XE-012\",\"XE-013\",\"XE-014\",\"XE-015\",\"XE-016\",\"XE-017\",\"XE-018\",\"XE-019\",\"XE-020\",\"XE-021\",\"XE-022\",\"XE-023\",\"XE-024\",\"XE-025\",\"XE-026\",\"XE-027\",\"XE-028\",\"XE-029\",\"XE-030\",\"XE-031\",\"XE-032\",\"XE-033\",\"XE-034\",\"XE-035\",\"XE-036\",\"XE-037\",\"XE-038\",\"XE-039\",\"XE-040\",\"XE-041\",\"XE-042\",\"XE-043\",\"XE-044\",\"XE-045\",\"XE-046\",\"XE-047\",\"XE-048\",\"XE-049\",\"XE-050\",\"XE-051\",\"XE-052\",\"XE-053\",\"XE-054\",\"XE-055\",\"XE-056\",\"XE-057\",\"XE-058\",\"XE-059\",\"XE-060\",\"XE-061\",\"XE-062\",\"XE-063\",\"XE-064\",\"XE-065\",\"XE-066\",\"XE-067\",\"XE-068\",\"XE-069\",\"XE-070\",\"XE-071\",\"XE-072\",\"XE-073\",\"XE-074\",\"XE-075\",\"XE-076\",\"XE-077\",\"XE-078\",\"XE-079\",\"XE-080\",\"XE-081\",\"XE-082\",\"XE-083\",\"XE-084\",\"XE-085\",\"XE-086\",\"XE-087\",\"XE-088\",\"XE-089\",\"XE-090\",\"XE-091\",\"XE-092\",\"XE-093\",\"XE-094\",\"XE-095\",\"XE-096\",\"XE-097\",\"XE-098\",\"XE-099\",\"XE-100\",\"XE-101\",\"XE-102\",\"XE-103\",\"XE-104\",\"XE-105\",\"XE-106\",\"XE-107\",\"XE-108\",\"XE-109\",\"XE-110\",\"XE-111\",\"XE-112\",\"XE-113\",\"XE-114\",\"XE-115\",\"XE-116\",\"XE-117\",\"XE-118\",\"XE-119\",\"XE-120\",\"XE-121\",\"XE-122\",\"XE-123\",\"XE-124\",\"XE-125\",\"XE-126\",\"XE-127\",\"XE-128\",\"XE-129\",\"XE-130\",\"XE-131\",\"XE-132\",\"XE-133\",\"XE-134\",\"XE-135\",\"XE-136\",\"XE-137\",\"XE-138\",\"XE-139\",\"XE-140\",\"XE-141\",\"XE-142\",\"XE-143\",\"XE-144\",\"XE-145\",\"XE-146\",\"XE-147\",\"XE-148\",\"XE-149\",\"XE-150\",\"XE-151\",\"XE-152\",\"XE-153\",\"XE-154\",\"XE-155\",\"XE-156\",\"XE-157\",\"XE-158\",\"XE-159\",\"XE-160\",\"XE-161\",\"XE-162\",\"XE-163\",\"XE-164\",\"XE-165\",\"XE-166\",\"XE-167\",\"XE-168\",\"XE-169\",\"XE-170\",\"XE-171\",\"XE-172\",\"XE-173\",\"XE-174\",\"XE-175\",\"XE-176\",\"XE-177\",\"XE-178\",\"XE-179\",\"XE-180\",\"XE-181\",\"XE-182\",\"XE-183\",\"XE-184\",\"XE-185\",\"XE-186\",\"XE-187\",\"XE-188\",\"XE-189\",\"XE-190\",\"XE-191\",\"XE-192\",\"XE-193\",\"XE-194\",\"XE-195\",\"XE-196\",\"XE-197\",\"XE-198\",\"XE-199\",\"XE-200\",\"XE-201\",\"XE-202\",\"XE-203\",\"XE-204\",\"XE-205\",\"XE-206\",\"XE-207\",\"XE-208\",\"XE-209\",\"XE-210\",\"XE-211\",\"XE-212\",\"XE-213\",\"XE-214\",\"XE-215\",\"XE-216\",\"XE-217\",\"XE-218\",\"XE-219\",\"XE-220\",\"XE-221\",\"XE-222\",\"XE-223\",\"XE-224\",\"XE-225\",\"XE-226\",\"XE-227\",\"XE-228\",\"XE-229\",\"XE-230\",\"XE-231\",\"XE-232\",\"XE-233\",\"XE-234\",\"XE-235\",\"XE-236\",\"XE-237\",\"XE-238\",\"XE-239\",\"XE-240\",\"XE-241\",\"XE-242\",\"XE-243\",\"XE-244\",\"XE-245\",\"XE-246\",\"XE-247\",\"XE-248\",\"XE-249\",\"XE-250\",\"XE-251\",\"XE-252\",\"XE-253\",\"XE-254\",\"XE-255\",\"XE-256\",\"XE-257\",\"XE-258\",\"XE-259\",\"XE-260\",\"XE-261\",\"XE-262\",\"XE-263\",\"XE-264\",\"XE-265\",\"XE-266\",\"XE-267\",\"XE-268\",\"XE-269\",\"XE-270\",\"XE-271\",\"XE-272\",\"XE-273\",\"XE-274\",\"XE-275\",\"XE-276\",\"XE-277\",\"XE-278\",\"XE-279\",\"XE-280\",\"XE-281\",\"XE-282\",\"XE-283\",\"XE-284\",\"XE-285\",\"XE-286\",\"XE-287\",\"XE-288\",\"XE-289\",\"XE-290\",\"XE-291\",\"XE-292\",\"XE-293\",\"XE-294\",\"XE-295\",\"XE-296\",\"XE-297\",\"XE-298\",\"XE-299\",\"XE-300\",\"XE-301\",\"XE-302\",\"XE-303\",\"XE-304\",\"XE-305\",\"XE-306\",\"XE-307\",\"XE-308\",\"XE-309\",\"XE-310\",\"XE-311\",\"XE-312\",\"XE-313\",\"XE-314\",\"XE-315\",\"XE-316\",\"XE-317\",\"XE-318\",\"XE-319\",\"XE-320\",\"XE-321\",\"XE-322\",\"XE-323\",\"XE-324\",\"XE-325\",\"XE-326\",\"XE-327\",\"XE-328\",\"XE-329\",\"XE-330\",\"XE-331\",\"XE-332\",\"XE-333\",\"XE-334\",\"XE-335\",\"XE-336\",\"XE-337\",\"XE-338\",\"XE-339\",\"XE-340\",\"XE-341\",\"XE-342\",\"XE-343\",\"XE-344\",\"XE-345\",\"XE-346\",\"XE-347\",\"XE-348\",\"XE-349\",\"XE-350\",\"XE-351\",\"XE-352\",\"XE-353\",\"XE-354\",\"XE-355\",\"XE-356\",\"XE-357\",\"XE-358\",\"XE-359\",\"XE-360\",\"XE-361\",\"XE-362\",\"XE-363\",\"XE-364\",\"XE-365\",\"XE-366\",\"XE-367\",\"XE-368\",\"XE-369\",\"XE-370\",\"XE-371\",\"XE-372\",\"XE-373\",\"XE-374\",\"XE-375\",\"XE-376\",\"XE-377\",\"XE-378\",\"XE-379\",\"XE-380\",\"XE-381\",\"XE-382\",\"XE-383\",\"XE-384\",\"XE-385\",\"XE-386\",\"XE-387\",\"XE-388\",\"XE-389\",\"XE-390\",\"XE-391\",\"XE-392\",\"XE-393\",\"XE-394\",\"XE-395\",\"XE-396\",\"XE-397\",\"XE-398\",\"XE-399\",\"XE-400\",\"XE-401\",\"XE-402\",\"XE-403\",\"XE-404\",\"XE-405\",\"XE-406\",\"XE-407\",\"XE-408\",\"XE-409\",\"XE-410\",\"XE-411\",\"XE-412\",\"XE-413\",\"XE-414\",\"XE-415\",\"XE-416\",\"XE-417\",\"XE-418\",\"XE-419\",\"XE-420\",\"XE-421\",\"XE-422\",\"XE-423\",\"XE-424\",\"XE-425\",\"XE-426\",\"XE-427\",\"XE-428\",\"XE-429\",\"XE-430\",\"XE-431\",\"XE-432\",\"XE-433\",\"XE-434\",\"XE-435\",\"XE-436\",\"XE-437\",\"XE-438\",\"XE-439\",\"XE-440\",\"XE-441\",\"XE-442\",\"XE-443\",\"XE-444\",\"XE-445\",\"XE-446\",\"XE-447\",\"XE-448\",\"XE-449\",\"XE-450\",\"XE-451\",\"XE-452\",\"XE-453\",\"XE-454\",\"XE-455\",\"XE-456\",\"XE-457\",\"XE-458\",\"XE-459\",\"XE-460\",\"XE-461\",\"XE-462\",\"XE-463\",\"XE-464\",\"XE-465\",\"XE-466\",\"XE-467\",\"XE-468\",\"XE-469\",\"XE-470\",\"XE-471\",\"XE-472\",\"XE-473\",\"XE-474\",\"XE-475\",\"XE-476\",\"XE-477\",\"XE-478\",\"XE-479\",\"XE-480\",\"XE-481\",\"XE-482\",\"XE-483\",\"XE-484\",\"XE-485\",\"XE-486\",\"XE-487\",\"XE-488\",\"XE-489\",\"XE-490\",\"XE-491\",\"XE-492\",\"XE-493\",\"XE-494\",\"XE-495\",\"XE-496\",\"XE-497\",\"XE-498\",\"XE-499\",\"XE-500\",\"XE-501\",\"XE-502\",\"XE-503\",\"XE-504\",\"XE-505\",\"XE-506\",\"XE-507\",\"XE-508\",\"XE-509\",\"XE-510\",\"XE-511\",\"XF-000\",\"XF-001\",\"XF-002\",\"XF-003\",\"XF-004\",\"XF-005\",\"XF-006\",\"XF-007\",\"XF-008\",\"XF-009\",\"XF-010\",\"XF-011\",\"XF-012\",\"XF-013\",\"XF-014\",\"XF-015\",\"XF-016\",\"XF-017\",\"XF-018\",\"XF-019\",\"XF-020\",\"XF-021\",\"XF-022\",\"XF-023\",\"XF-024\",\"XF-025\",\"XF-026\",\"XF-027\",\"XF-028\",\"XF-029\",\"XF-030\",\"XF-031\",\"XF-032\",\"XF-033\",\"XF-034\",\"XF-035\",\"XF-036\",\"XF-037\",\"XF-038\",\"XF-039\",\"XF-040\",\"XF-041\",\"XF-042\",\"XF-043\",\"XF-044\",\"XF-045\",\"XF-046\",\"XF-047\",\"XF-048\",\"XF-049\",\"XF-050\",\"XF-051\",\"XF-052\",\"XF-053\",\"XF-054\",\"XF-055\",\"XF-056\",\"XF-057\",\"XF-058\",\"XF-059\",\"XF-060\",\"XF-061\",\"XF-062\",\"XF-063\",\"XF-064\",\"XF-065\",\"XF-066\",\"XF-067\",\"XF-068\",\"XF-069\",\"XF-070\",\"XF-071\",\"XF-072\",\"XF-073\",\"XF-074\",\"XF-075\",\"XF-076\",\"XF-077\",\"XF-078\",\"XF-079\",\"XF-080\",\"XF-081\",\"XF-082\",\"XF-083\",\"XF-084\",\"XF-085\",\"XF-086\",\"XF-087\",\"XF-088\",\"XF-089\",\"XF-090\",\"XF-091\",\"XF-092\",\"XF-093\",\"XF-094\",\"XF-095\",\"XF-096\",\"XF-097\",\"XF-098\",\"XF-099\",\"XF-100\",\"XF-101\",\"XF-102\",\"XF-103\",\"XF-104\",\"XF-105\",\"XF-106\",\"XF-107\",\"XF-108\",\"XF-109\",\"XF-110\",\"XF-111\",\"XF-112\",\"XF-113\",\"XF-114\",\"XF-115\",\"XF-116\",\"XF-117\",\"XF-118\",\"XF-119\",\"XF-120\",\"XF-121\",\"XF-122\",\"XF-123\",\"XF-124\",\"XF-125\",\"XF-126\",\"XF-127\",\"XF-128\",\"XF-129\",\"XF-130\",\"XF-131\",\"XF-132\",\"XF-133\",\"XF-134\",\"XF-135\",\"XF-136\",\"XF-137\",\"XF-138\",\"XF-139\",\"XF-140\",\"XF-141\",\"XF-142\",\"XF-143\",\"XF-144\",\"XF-145\",\"XF-146\",\"XF-147\",\"XF-148\",\"XF-149\",\"XF-150\",\"XF-151\",\"XF-152\",\"XF-153\",\"XF-154\",\"XF-155\",\"XF-156\",\"XF-157\",\"XF-158\",\"XF-159\",\"XF-160\",\"XF-161\",\"XF-162\",\"XF-163\",\"XF-164\",\"XF-165\",\"XF-166\",\"XF-167\",\"XF-168\",\"XF-169\",\"XF-170\",\"XF-171\",\"XF-172\",\"XF-173\",\"XF-174\",\"XF-175\",\"XF-176\",\"XF-177\",\"XF-178\",\"XF-179\",\"XF-180\",\"XF-181\",\"XF-182\",\"XF-183\",\"XF-184\",\"XF-185\",\"XF-186\",\"XF-187\",\"XF-188\",\"XF-189\",\"XF-190\",\"XF-191\",\"XF-192\",\"XF-193\",\"XF-194\",\"XF-195\",\"XF-196\",\"XF-197\",\"XF-198\",\"XF-199\",\"XF-200\",\"XF-201\",\"XF-202\",\"XF-203\",\"XF-204\",\"XF-205\",\"XF-206\",\"XF-207\",\"XF-208\",\"XF-209\",\"XF-210\",\"XF-211\",\"XF-212\",\"XF-213\",\"XF-214\",\"XF-215\",\"XF-216\",\"XF-217\",\"XF-218\",\"XF-219\",\"XF-220\",\"XF-221\",\"XF-222\",\"XF-223\",\"XF-224\",\"XF-225\",\"XF-226\",\"XF-227\",\"XF-228\",\"XF-229\",\"XF-230\",\"XF-231\",\"XF-232\",\"XF-233\",\"XF-234\",\"XF-235\",\"XF-236\",\"XF-237\",\"XF-238\",\"XF-239\",\"XF-240\",\"XF-241\",\"XF-242\",\"XF-243\",\"XF-244\",\"XF-245\",\"XF-246\",\"XF-247\",\"XF-248\",\"XF-249\",\"XF-250\",\"XF-251\",\"XF-252\",\"XF-253\",\"XF-254\",\"XF-255\",\"XF-256\",\"XF-257\",\"XF-258\",\"XF-259\",\"XF-260\",\"XF-261\",\"XF-262\",\"XF-263\",\"XF-264\",\"XF-265\",\"XF-266\",\"XF-267\",\"XF-268\",\"XF-269\",\"XF-270\",\"XF-271\",\"XF-272\",\"XF-273\",\"XF-274\",\"XF-275\",\"XF-276\",\"XF-277\",\"XF-278\",\"XF-279\",\"XF-280\",\"XF-281\",\"XF-282\",\"XF-283\",\"XF-284\",\"XF-285\",\"XF-286\",\"XF-287\",\"XF-288\",\"XF-289\",\"XF-290\",\"XF-291\",\"XF-292\",\"XF-293\",\"XF-294\",\"XF-295\",\"XF-296\",\"XF-297\",\"XF-298\",\"XF-299\",\"XF-300\",\"XF-301\",\"XF-302\",\"XF-303\",\"XF-304\",\"XF-305\",\"XF-306\",\"XF-307\",\"XF-308\",\"XF-309\",\"XF-310\",\"XF-311\",\"XF-312\",\"XF-313\",\"XF-314\",\"XF-315\",\"XF-316\",\"XF-317\",\"XF-318\",\"XF-319\",\"XF-320\",\"XF-321\",\"XF-322\",\"XF-323\",\"XF-324\",\"XF-325\",\"XF-326\",\"XF-327\",\"XF-328\",\"XF-329\",\"XF-330\",\"XF-331\",\"XF-332\",\"XF-333\",\"XF-334\",\"XF-335\",\"XF-336\",\"XF-337\",\"XF-338\",\"XF-339\",\"XF-340\",\"XF-341\",\"XF-342\",\"XF-343\",\"XF-344\",\"XF-345\",\"XF-346\",\"XF-347\",\"XF-348\",\"XF-349\",\"XF-350\",\"XF-351\",\"XF-352\",\"XF-353\",\"XF-354\",\"XF-355\",\"XF-356\",\"XF-357\",\"XF-358\",\"XF-359\",\"XF-360\",\"XF-361\",\"XF-362\",\"XF-363\",\"XF-364\",\"XF-365\",\"XF-366\",\"XF-367\",\"XF-368\",\"XF-369\",\"XF-370\",\"XF-371\",\"XF-372\",\"XF-373\",\"XF-374\",\"XF-375\",\"XF-376\",\"XF-377\",\"XF-378\",\"XF-379\",\"XF-380\",\"XF-381\",\"XF-382\",\"XF-383\",\"XF-384\",\"XF-385\",\"XF-386\",\"XF-387\",\"XF-388\",\"XF-389\",\"XF-390\",\"XF-391\",\"XF-392\",\"XF-393\",\"XF-394\",\"XF-395\",\"XF-396\",\"XF-397\",\"XF-398\",\"XF-399\",\"XF-400\",\"XF-401\",\"XF-402\",\"XF-403\",\"XF-404\",\"XF-405\",\"XF-406\",\"XF-407\",\"XF-408\",\"XF-409\",\"XF-410\",\"XF-411\",\"XF-412\",\"XF-413\",\"XF-414\",\"XF-415\",\"XF-416\",\"XF-417\",\"XF-418\",\"XF-419\",\"XF-420\",\"XF-421\",\"XF-422\",\"XF-423\",\"XF-424\",\"XF-425\",\"XF-426\",\"XF-427\",\"XF-428\",\"XF-429\",\"XF-430\",\"XF-431\",\"XF-432\",\"XF-433\",\"XF-434\",\"XF-435\",\"XF-436\",\"XF-437\",\"XF-438\",\"XF-439\",\"XF-440\",\"XF-441\",\"XF-442\",\"XF-443\",\"XF-444\",\"XF-445\",\"XF-446\",\"XF-447\",\"XF-448\",\"XF-449\",\"XF-450\",\"XF-451\",\"XF-452\",\"XF-453\",\"XF-454\",\"XF-455\",\"XF-456\",\"XF-457\",\"XF-458\",\"XF-459\",\"XF-460\",\"XF-461\",\"XF-462\",\"XF-463\",\"XF-464\",\"XF-465\",\"XF-466\",\"XF-467\",\"XF-468\",\"XF-469\",\"XF-470\",\"XF-471\",\"XF-472\",\"XF-473\",\"XF-474\",\"XF-475\",\"XF-476\",\"XF-477\",\"XF-478\",\"XF-479\",\"XF-480\",\"XF-481\",\"XF-482\",\"XF-483\",\"XF-484\",\"XF-485\",\"XF-486\",\"XF-487\",\"XF-488\",\"XF-489\",\"XF-490\",\"XF-491\",\"XF-492\",\"XF-493\",\"XF-494\",\"XF-495\",\"XF-496\",\"XF-497\",\"XF-498\",\"XF-499\",\"XF-500\",\"XF-501\",\"XF-502\",\"XF-503\",\"XF-504\",\"XF-505\",\"XF-506\",\"XF-507\",\"XF-508\",\"XF-509\",\"XF-510\",\"XF-511\",\"XG-000\",\"XG-001\",\"XG-002\",\"XG-003\",\"XG-004\",\"XG-005\",\"XG-006\",\"XG-007\",\"XG-008\",\"XG-009\",\"XG-010\",\"XG-011\",\"XG-012\",\"XG-013\",\"XG-014\",\"XG-015\",\"XG-016\",\"XG-017\",\"XG-018\",\"XG-019\",\"XG-020\",\"XG-021\",\"XG-022\",\"XG-023\",\"XG-024\",\"XG-025\",\"XG-026\",\"XG-027\",\"XG-028\",\"XG-029\",\"XG-030\",\"XG-031\",\"XG-032\",\"XG-033\",\"XG-034\",\"XG-035\",\"XG-036\",\"XG-037\",\"XG-038\",\"XG-039\",\"XG-040\",\"XG-041\",\"XG-042\",\"XG-043\",\"XG-044\",\"XG-045\",\"XG-046\",\"XG-047\",\"XG-048\",\"XG-049\",\"XG-050\",\"XG-051\",\"XG-052\",\"XG-053\",\"XG-054\",\"XG-055\",\"XG-056\",\"XG-057\",\"XG-058\",\"XG-059\",\"XG-060\",\"XG-061\",\"XG-062\",\"XG-063\",\"XG-064\",\"XG-065\",\"XG-066\",\"XG-067\",\"XG-068\",\"XG-069\",\"XG-070\",\"XG-071\",\"XG-072\",\"XG-073\",\"XG-074\",\"XG-075\",\"XG-076\",\"XG-077\",\"XG-078\",\"XG-079\",\"XG-080\",\"XG-081\",\"XG-082\",\"XG-083\",\"XG-084\",\"XG-085\",\"XG-086\",\"XG-087\",\"XG-088\",\"XG-089\",\"XG-090\",\"XG-091\",\"XG-092\",\"XG-093\",\"XG-094\",\"XG-095\",\"XG-096\",\"XG-097\",\"XG-098\",\"XG-099\",\"XG-100\",\"XG-101\",\"XG-102\",\"XG-103\",\"XG-104\",\"XG-105\",\"XG-106\",\"XG-107\",\"XG-108\",\"XG-109\",\"XG-110\",\"XG-111\",\"XG-112\",\"XG-113\",\"XG-114\",\"XG-115\",\"XG-116\",\"XG-117\",\"XG-118\",\"XG-119\",\"XG-120\",\"XG-121\",\"XG-122\",\"XG-123\",\"XG-124\",\"XG-125\",\"XG-126\",\"XG-127\",\"XG-128\",\"XG-129\",\"XG-130\",\"XG-131\",\"XG-132\",\"XG-133\",\"XG-134\",\"XG-135\",\"XG-136\",\"XG-137\",\"XG-138\",\"XG-139\",\"XG-140\",\"XG-141\",\"XG-142\",\"XG-143\",\"XG-144\",\"XG-145\",\"XG-146\",\"XG-147\",\"XG-148\",\"XG-149\",\"XG-150\",\"XG-151\",\"XG-152\",\"XG-153\",\"XG-154\",\"XG-155\",\"XG-156\",\"XG-157\",\"XG-158\",\"XG-159\",\"XG-160\",\"XG-161\",\"XG-162\",\"XG-163\",\"XG-164\",\"XG-165\",\"XG-166\",\"XG-167\",\"XG-168\",\"XG-169\",\"XG-170\",\"XG-171\",\"XG-172\",\"XG-173\",\"XG-174\",\"XG-175\",\"XG-176\",\"XG-177\",\"XG-178\",\"XG-179\",\"XG-180\",\"XG-181\",\"XG-182\",\"XG-183\",\"XG-184\",\"XG-185\",\"XG-186\",\"XG-187\",\"XG-188\",\"XG-189\",\"XG-190\",\"XG-191\",\"XG-192\",\"XG-193\",\"XG-194\",\"XG-195\",\"XG-196\",\"XG-197\",\"XG-198\",\"XG-199\",\"XG-200\",\"XG-201\",\"XG-202\",\"XG-203\",\"XG-204\",\"XG-205\",\"XG-206\",\"XG-207\",\"XG-208\",\"XG-209\",\"XG-210\",\"XG-211\",\"XG-212\",\"XG-213\",\"XG-214\",\"XG-215\",\"XG-216\",\"XG-217\",\"XG-218\",\"XG-219\",\"XG-220\",\"XG-221\",\"XG-222\",\"XG-223\",\"XG-224\",\"XG-225\",\"XG-226\",\"XG-227\",\"XG-228\",\"XG-229\",\"XG-230\",\"XG-231\",\"XG-232\",\"XG-233\",\"XG-234\",\"XG-235\",\"XG-236\",\"XG-237\",\"XG-238\",\"XG-239\",\"XG-240\",\"XG-241\",\"XG-242\",\"XG-243\",\"XG-244\",\"XG-245\",\"XG-246\",\"XG-247\",\"XG-248\",\"XG-249\",\"XG-250\",\"XG-251\",\"XG-252\",\"XG-253\",\"XG-254\",\"XG-255\",\"XG-256\",\"XG-257\",\"XG-258\",\"XG-259\",\"XG-260\",\"XG-261\",\"XG-262\",\"XG-263\",\"XG-264\",\"XG-265\",\"XG-266\",\"XG-267\",\"XG-268\",\"XG-269\",\"XG-270\",\"XG-271\",\"XG-272\",\"XG-273\",\"XG-274\",\"XG-275\",\"XG-276\",\"XG-277\",\"XG-278\",\"XG-279\",\"XG-280\",\"XG-281\",\"XG-282\",\"XG-283\",\"XG-284\",\"XG-285\",\"XG-286\",\"XG-287\",\"XG-288\",\"XG-289\",\"XG-290\",\"XG-291\",\"XG-292\",\"XG-293\",\"XG-294\",\"XG-295\",\"XG-296\",\"XG-297\",\"XG-298\",\"XG-299\",\"XG-300\",\"XG-301\",\"XG-302\",\"XG-303\",\"XG-304\",\"XG-305\",\"XG-306\",\"XG-307\",\"XG-308\",\"XG-309\",\"XG-310\",\"XG-311\",\"XG-312\",\"XG-313\",\"XG-314\",\"XG-315\",\"XG-316\",\"XG-317\",\"XG-318\",\"XG-319\",\"XG-320\",\"XG-321\",\"XG-322\",\"XG-323\",\"XG-324\",\"XG-325\",\"XG-326\",\"XG-327\",\"XG-328\",\"XG-329\",\"XG-330\",\"XG-331\",\"XG-332\",\"XG-333\",\"XG-334\",\"XG-335\",\"XG-336\",\"XG-337\",\"XG-338\",\"XG-339\",\"XG-340\",\"XG-341\",\"XG-342\",\"XG-343\",\"XG-344\",\"XG-345\",\"XG-346\",\"XG-347\",\"XG-348\",\"XG-349\",\"XG-350\",\"XG-351\",\"XG-352\",\"XG-353\",\"XG-354\",\"XG-355\",\"XG-356\",\"XG-357\",\"XG-358\",\"XG-359\",\"XG-360\",\"XG-361\",\"XG-362\",\"XG-363\",\"XG-364\",\"XG-365\",\"XG-366\",\"XG-367\",\"XG-368\",\"XG-369\",\"XG-370\",\"XG-371\",\"XG-372\",\"XG-373\",\"XG-374\",\"XG-375\",\"XG-376\",\"XG-377\",\"XG-378\",\"XG-379\",\"XG-380\",\"XG-381\",\"XG-382\",\"XG-383\",\"XG-384\",\"XG-385\",\"XG-386\",\"XG-387\",\"XG-388\",\"XG-389\",\"XG-390\",\"XG-391\",\"XG-392\",\"XG-393\",\"XG-394\",\"XG-395\",\"XG-396\",\"XG-397\",\"XG-398\",\"XG-399\",\"XG-400\",\"XG-401\",\"XG-402\",\"XG-403\",\"XG-404\",\"XG-405\",\"XG-406\",\"XG-407\",\"XG-408\",\"XG-409\",\"XG-410\",\"XG-411\",\"XG-412\",\"XG-413\",\"XG-414\",\"XG-415\",\"XG-416\",\"XG-417\",\"XG-418\",\"XG-419\",\"XG-420\",\"XG-421\",\"XG-422\",\"XG-423\",\"XG-424\",\"XG-425\",\"XG-426\",\"XG-427\",\"XG-428\",\"XG-429\",\"XG-430\",\"XG-431\",\"XG-432\",\"XG-433\",\"XG-434\",\"XG-435\",\"XG-436\",\"XG-437\",\"XG-438\",\"XG-439\",\"XG-440\",\"XG-441\",\"XG-442\",\"XG-443\",\"XG-444\",\"XG-445\",\"XG-446\",\"XG-447\",\"XG-448\",\"XG-449\",\"XG-450\",\"XG-451\",\"XG-452\",\"XG-453\",\"XG-454\",\"XG-455\",\"XG-456\",\"XG-457\",\"XG-458\",\"XG-459\",\"XG-460\",\"XG-461\",\"XG-462\",\"XG-463\",\"XG-464\",\"XG-465\",\"XG-466\",\"XG-467\",\"XG-468\",\"XG-469\",\"XG-470\",\"XG-471\",\"XG-472\",\"XG-473\",\"XG-474\",\"XG-475\",\"XG-476\",\"XG-477\",\"XG-478\",\"XG-479\",\"XG-480\",\"XG-481\",\"XG-482\",\"XG-483\",\"XG-484\",\"XG-485\",\"XG-486\",\"XG-487\",\"XG-488\",\"XG-489\",\"XG-490\",\"XG-491\",\"XG-492\",\"XG-493\",\"XG-494\",\"XG-495\",\"XG-496\",\"XG-497\",\"XG-498\",\"XG-499\",\"XG-500\",\"XG-501\",\"XG-502\",\"XG-503\",\"XG-504\",\"XG-505\",\"XG-506\",\"XG-507\",\"XG-508\",\"XG-509\",\"XG-510\",\"XG-511\",\"XH-000\",\"XH-001\",\"XH-002\",\"XH-003\",\"XH-004\",\"XH-005\",\"XH-006\",\"XH-007\",\"XH-008\",\"XH-009\",\"XH-010\",\"XH-011\",\"XH-012\",\"XH-013\",\"XH-014\",\"XH-015\",\"XH-016\",\"XH-017\",\"XH-018\",\"XH-019\",\"XH-020\",\"XH-021\",\"XH-022\",\"XH-023\",\"XH-024\",\"XH-025\",\"XH-026\",\"XH-027\",\"XH-028\",\"XH-029\",\"XH-030\",\"XH-031\",\"XH-032\",\"XH-033\",\"XH-034\",\"XH-035\",\"XH-036\",\"XH-037\",\"XH-038\",\"XH-039\",\"XH-040\",\"XH-041\",\"XH-042\",\"XH-043\",\"XH-044\",\"XH-045\",\"XH-046\",\"XH-047\",\"XH-048\",\"XH-049\",\"XH-050\",\"XH-051\",\"XH-052\",\"XH-053\",\"XH-054\",\"XH-055\",\"XH-056\",\"XH-057\",\"XH-058\",\"XH-059\",\"XH-060\",\"XH-061\",\"XH-062\",\"XH-063\",\"XH-064\",\"XH-065\",\"XH-066\",\"XH-067\",\"XH-068\",\"XH-069\",\"XH-070\",\"XH-071\",\"XH-072\",\"XH-073\",\"XH-074\",\"XH-075\",\"XH-076\",\"XH-077\",\"XH-078\",\"XH-079\",\"XH-080\",\"XH-081\",\"XH-082\",\"XH-083\",\"XH-084\",\"XH-085\",\"XH-086\",\"XH-087\",\"XH-088\",\"XH-089\",\"XH-090\",\"XH-091\",\"XH-092\",\"XH-093\",\"XH-094\",\"XH-095\",\"XH-096\",\"XH-097\",\"XH-098\",\"XH-099\",\"XH-100\",\"XH-101\",\"XH-102\",\"XH-103\",\"XH-104\",\"XH-105\",\"XH-106\",\"XH-107\",\"XH-108\",\"XH-109\",\"XH-110\",\"XH-111\",\"XH-112\",\"XH-113\",\"XH-114\",\"XH-115\",\"XH-116\",\"XH-117\",\"XH-118\",\"XH-119\",\"XH-120\",\"XH-121\",\"XH-122\",\"XH-123\",\"XH-124\",\"XH-125\",\"XH-126\",\"XH-127\",\"XH-128\",\"XH-129\",\"XH-130\",\"XH-131\",\"XH-132\",\"XH-133\",\"XH-134\",\"XH-135\",\"XH-136\",\"XH-137\",\"XH-138\",\"XH-139\",\"XH-140\",\"XH-141\",\"XH-142\",\"XH-143\",\"XH-144\",\"XH-145\",\"XH-146\",\"XH-147\",\"XH-148\",\"XH-149\",\"XH-150\",\"XH-151\",\"XH-152\",\"XH-153\",\"XH-154\",\"XH-155\",\"XH-156\",\"XH-157\",\"XH-158\",\"XH-159\",\"XH-160\",\"XH-161\",\"XH-162\",\"XH-163\",\"XH-164\",\"XH-165\",\"XH-166\",\"XH-167\",\"XH-168\",\"XH-169\",\"XH-170\",\"XH-171\",\"XH-172\",\"XH-173\",\"XH-174\",\"XH-175\",\"XH-176\",\"XH-177\",\"XH-178\",\"XH-179\",\"XH-180\",\"XH-181\",\"XH-182\",\"XH-183\",\"XH-184\",\"XH-185\",\"XH-186\",\"XH-187\",\"XH-188\",\"XH-189\",\"XH-190\",\"XH-191\",\"XH-192\",\"XH-193\",\"XH-194\",\"XH-195\",\"XH-196\",\"XH-197\",\"XH-198\",\"XH-199\",\"XH-200\",\"XH-201\",\"XH-202\",\"XH-203\",\"XH-204\",\"XH-205\",\"XH-206\",\"XH-207\",\"XH-208\",\"XH-209\",\"XH-210\",\"XH-211\",\"XH-212\",\"XH-213\",\"XH-214\",\"XH-215\",\"XH-216\",\"XH-217\",\"XH-218\",\"XH-219\",\"XH-220\",\"XH-221\",\"XH-222\",\"XH-223\",\"XH-224\",\"XH-225\",\"XH-226\",\"XH-227\",\"XH-228\",\"XH-229\",\"XH-230\",\"XH-231\",\"XH-232\",\"XH-233\",\"XH-234\",\"XH-235\",\"XH-236\",\"XH-237\",\"XH-238\",\"XH-239\",\"XH-240\",\"XH-241\",\"XH-242\",\"XH-243\",\"XH-244\",\"XH-245\",\"XH-246\",\"XH-247\",\"XH-248\",\"XH-249\",\"XH-250\",\"XH-251\",\"XH-252\",\"XH-253\",\"XH-254\",\"XH-255\",\"XH-256\",\"XH-257\",\"XH-258\",\"XH-259\",\"XH-260\",\"XH-261\",\"XH-262\",\"XH-263\",\"XH-264\",\"XH-265\",\"XH-266\",\"XH-267\",\"XH-268\",\"XH-269\",\"XH-270\",\"XH-271\",\"XH-272\",\"XH-273\",\"XH-274\",\"XH-275\",\"XH-276\",\"XH-277\",\"XH-278\",\"XH-279\",\"XH-280\",\"XH-281\",\"XH-282\",\"XH-283\",\"XH-284\",\"XH-285\",\"XH-286\",\"XH-287\",\"XH-288\",\"XH-289\",\"XH-290\",\"XH-291\",\"XH-292\",\"XH-293\",\"XH-294\",\"XH-295\",\"XH-296\",\"XH-297\",\"XH-298\",\"XH-299\",\"XH-300\",\"XH-301\",\"XH-302\",\"XH-303\",\"XH-304\",\"XH-305\",\"XH-306\",\"XH-307\",\"XH-308\",\"XH-309\",\"XH-310\",\"XH-311\",\"XH-312\",\"XH-313\",\"XH-314\",\"XH-315\",\"XH-316\",\"XH-317\",\"XH-318\",\"XH-319\",\"XH-320\",\"XH-321\",\"XH-322\",\"XH-323\",\"XH-324\",\"XH-325\",\"XH-326\",\"XH-327\",\"XH-328\",\"XH-329\",\"XH-330\",\"XH-331\",\"XH-332\",\"XH-333\",\"XH-334\",\"XH-335\",\"XH-336\",\"XH-337\",\"XH-338\",\"XH-339\",\"XH-340\",\"XH-341\",\"XH-342\",\"XH-343\",\"XH-344\",\"XH-345\",\"XH-346\",\"XH-347\",\"XH-348\",\"XH-349\",\"XH-350\",\"XH-351\",\"XH-352\",\"XH-353\",\"XH-354\",\"XH-355\",\"XH-356\",\"XH-357\",\"XH-358\",\"XH-359\",\"XH-360\",\"XH-361\",\"XH-362\",\"XH-363\",\"XH-364\",\"XH-365\",\"XH-366\",\"XH-367\",\"XH-368\",\"XH-369\",\"XH-370\",\"XH-371\",\"XH-372\",\"XH-373\",\"XH-374\",\"XH-375\",\"XH-376\",\"XH-377\",\"XH-378\",\"XH-379\",\"XH-380\",\"XH-381\",\"XH-382\",\"XH-383\",\"XH-384\",\"XH-385\",\"XH-386\",\"XH-387\",\"XH-388\",\"XH-389\",\"XH-390\",\"XH-391\",\"XH-392\",\"XH-393\",\"XH-394\",\"XH-395\",\"XH-396\",\"XH-397\",\"XH-398\",\"XH-399\",\"XH-400\",\"XH-401\",\"XH-402\",\"XH-403\",\"XH-404\",\"XH-405\",\"XH-406\",\"XH-407\",\"XH-408\",\"XH-409\",\"XH-410\",\"XH-411\",\"XH-412\",\"XH-413\",\"XH-414\",\"XH-415\",\"XH-416\",\"XH-417\",\"XH-418\",\"XH-419\",\"XH-420\",\"XH-421\",\"XH-422\",\"XH-423\",\"XH-424\",\"XH-425\",\"XH-426\",\"XH-427\",\"XH-428\",\"XH-429\",\"XH-430\",\"XH-431\",\"XH-432\",\"XH-433\",\"XH-434\",\"XH-435\",\"XH-436\",\"XH-437\",\"XH-438\",\"XH-439\",\"XH-440\",\"XH-441\",\"XH-442\",\"XH-443\",\"XH-444\",\"XH-445\",\"XH-446\",\"XH-447\",\"XH-448\",\"XH-449\",\"XH-450\",\"XH-451\",\"XH-452\",\"XH-453\",\"XH-454\",\"XH-455\",\"XH-456\",\"XH-457\",\"XH-458\",\"XH-459\",\"XH-460\",\"XH-461\",\"XH-462\",\"XH-463\",\"XH-464\",\"XH-465\",\"XH-466\",\"XH-467\",\"XH-468\",\"XH-469\",\"XH-470\",\"XH-471\",\"XH-472\",\"XH-473\",\"XH-474\",\"XH-475\",\"XH-476\",\"XH-477\",\"XH-478\",\"XH-479\",\"XH-480\",\"XH-481\",\"XH-482\",\"XH-483\",\"XH-484\",\"XH-485\",\"XH-486\",\"XH-487\",\"XH-488\",\"XH-489\",\"XH-490\",\"XH-491\",\"XH-492\",\"XH-493\",\"XH-494\",\"XH-495\",\"XH-496\",\"XH-497\",\"XH-498\",\"XH-499\",\"XH-500\",\"XH-501\",\"XH-502\",\"XH-503\",\"XH-504\",\"XH-505\",\"XH-506\",\"XH-507\",\"XH-508\",\"XH-509\",\"XH-510\",\"XH-511\",\"XI-000\",\"XI-001\",\"XI-002\",\"XI-003\",\"XI-004\",\"XI-005\",\"XI-006\",\"XI-007\",\"XI-008\",\"XI-009\",\"XI-010\",\"XI-011\",\"XI-012\",\"XI-013\",\"XI-014\",\"XI-015\",\"XI-016\",\"XI-017\",\"XI-018\",\"XI-019\",\"XI-020\",\"XI-021\",\"XI-022\",\"XI-023\",\"XI-024\",\"XI-025\",\"XI-026\",\"XI-027\",\"XI-028\",\"XI-029\",\"XI-030\",\"XI-031\",\"XI-032\",\"XI-033\",\"XI-034\",\"XI-035\",\"XI-036\",\"XI-037\",\"XI-038\",\"XI-039\",\"XI-040\",\"XI-041\",\"XI-042\",\"XI-043\",\"XI-044\",\"XI-045\",\"XI-046\",\"XI-047\",\"XI-048\",\"XI-049\",\"XI-050\",\"XI-051\",\"XI-052\",\"XI-053\",\"XI-054\",\"XI-055\",\"XI-056\",\"XI-057\",\"XI-058\",\"XI-059\",\"XI-060\",\"XI-061\",\"XI-062\",\"XI-063\",\"XI-064\",\"XI-065\",\"XI-066\",\"XI-067\",\"XI-068\",\"XI-069\",\"XI-070\",\"XI-071\",\"XI-072\",\"XI-073\",\"XI-074\",\"XI-075\",\"XI-076\",\"XI-077\",\"XI-078\",\"XI-079\",\"XI-080\",\"XI-081\",\"XI-082\",\"XI-083\",\"XI-084\",\"XI-085\",\"XI-086\",\"XI-087\",\"XI-088\",\"XI-089\",\"XI-090\",\"XI-091\",\"XI-092\",\"XI-093\",\"XI-094\",\"XI-095\",\"XI-096\",\"XI-097\",\"XI-098\",\"XI-099\",\"XI-100\",\"XI-101\",\"XI-102\",\"XI-103\",\"XI-104\",\"XI-105\",\"XI-106\",\"XI-107\",\"XI-108\",\"XI-109\",\"XI-110\",\"XI-111\",\"XI-112\",\"XI-113\",\"XI-114\",\"XI-115\",\"XI-116\",\"XI-117\",\"XI-118\",\"XI-119\",\"XI-120\",\"XI-121\",\"XI-122\",\"XI-123\",\"XI-124\",\"XI-125\",\"XI-126\",\"XI-127\",\"XI-128\",\"XI-129\",\"XI-130\",\"XI-131\",\"XI-132\",\"XI-133\",\"XI-134\",\"XI-135\",\"XI-136\",\"XI-137\",\"XI-138\",\"XI-139\",\"XI-140\",\"XI-141\",\"XI-142\",\"XI-143\",\"XI-144\",\"XI-145\",\"XI-146\",\"XI-147\",\"XI-148\",\"XI-149\",\"XI-150\",\"XI-151\",\"XI-152\",\"XI-153\",\"XI-154\",\"XI-155\",\"XI-156\",\"XI-157\",\"XI-158\",\"XI-159\",\"XI-160\",\"XI-161\",\"XI-162\",\"XI-163\",\"XI-164\",\"XI-165\",\"XI-166\",\"XI-167\",\"XI-168\",\"XI-169\",\"XI-170\",\"XI-171\",\"XI-172\",\"XI-173\",\"XI-174\",\"XI-175\",\"XI-176\",\"XI-177\",\"XI-178\",\"XI-179\",\"XI-180\",\"XI-181\",\"XI-182\",\"XI-183\",\"XI-184\",\"XI-185\",\"XI-186\",\"XI-187\",\"XI-188\",\"XI-189\",\"XI-190\",\"XI-191\",\"XI-192\",\"XI-193\",\"XI-194\",\"XI-195\",\"XI-196\",\"XI-197\",\"XI-198\",\"XI-199\",\"XI-200\",\"XI-201\",\"XI-202\",\"XI-203\",\"XI-204\",\"XI-205\",\"XI-206\",\"XI-207\",\"XI-208\",\"XI-209\",\"XI-210\",\"XI-211\",\"XI-212\",\"XI-213\",\"XI-214\",\"XI-215\",\"XI-216\",\"XI-217\",\"XI-218\",\"XI-219\",\"XI-220\",\"XI-221\",\"XI-222\",\"XI-223\",\"XI-224\",\"XI-225\",\"XI-226\",\"XI-227\",\"XI-228\",\"XI-229\",\"XI-230\",\"XI-231\",\"XI-232\",\"XI-233\",\"XI-234\",\"XI-235\",\"XI-236\",\"XI-237\",\"XI-238\",\"XI-239\",\"XI-240\",\"XI-241\",\"XI-242\",\"XI-243\",\"XI-244\",\"XI-245\",\"XI-246\",\"XI-247\",\"XI-248\",\"XI-249\",\"XI-250\",\"XI-251\",\"XI-252\",\"XI-253\",\"XI-254\",\"XI-255\",\"XI-256\",\"XI-257\",\"XI-258\",\"XI-259\",\"XI-260\",\"XI-261\",\"XI-262\",\"XI-263\",\"XI-264\",\"XI-265\",\"XI-266\",\"XI-267\",\"XI-268\",\"XI-269\",\"XI-270\",\"XI-271\",\"XI-272\",\"XI-273\",\"XI-274\",\"XI-275\",\"XI-276\",\"XI-277\",\"XI-278\",\"XI-279\",\"XI-280\",\"XI-281\",\"XI-282\",\"XI-283\",\"XI-284\",\"XI-285\",\"XI-286\",\"XI-287\",\"XI-288\",\"XI-289\",\"XI-290\",\"XI-291\",\"XI-292\",\"XI-293\",\"XI-294\",\"XI-295\",\"XI-296\",\"XI-297\",\"XI-298\",\"XI-299\",\"XI-300\",\"XI-301\",\"XI-302\",\"XI-303\",\"XI-304\",\"XI-305\",\"XI-306\",\"XI-307\",\"XI-308\",\"XI-309\",\"XI-310\",\"XI-311\",\"XI-312\",\"XI-313\",\"XI-314\",\"XI-315\",\"XI-316\",\"XI-317\",\"XI-318\",\"XI-319\",\"XI-320\",\"XI-321\",\"XI-322\",\"XI-323\",\"XI-324\",\"XI-325\",\"XI-326\",\"XI-327\",\"XI-328\",\"XI-329\",\"XI-330\",\"XI-331\",\"XI-332\",\"XI-333\",\"XI-334\",\"XI-335\",\"XI-336\",\"XI-337\",\"XI-338\",\"XI-339\",\"XI-340\",\"XI-341\",\"XI-342\",\"XI-343\",\"XI-344\",\"XI-345\",\"XI-346\",\"XI-347\",\"XI-348\",\"XI-349\",\"XI-350\",\"XI-351\",\"XI-352\",\"XI-353\",\"XI-354\",\"XI-355\",\"XI-356\",\"XI-357\",\"XI-358\",\"XI-359\",\"XI-360\",\"XI-361\",\"XI-362\",\"XI-363\",\"XI-364\",\"XI-365\",\"XI-366\",\"XI-367\",\"XI-368\",\"XI-369\",\"XI-370\",\"XI-371\",\"XI-372\",\"XI-373\",\"XI-374\",\"XI-375\",\"XI-376\",\"XI-377\",\"XI-378\",\"XI-379\",\"XI-380\",\"XI-381\",\"XI-382\",\"XI-383\",\"XI-384\",\"XI-385\",\"XI-386\",\"XI-387\",\"XI-388\",\"XI-389\",\"XI-390\",\"XI-391\",\"XI-392\",\"XI-393\",\"XI-394\",\"XI-395\",\"XI-396\",\"XI-397\",\"XI-398\",\"XI-399\",\"XI-400\",\"XI-401\",\"XI-402\",\"XI-403\",\"XI-404\",\"XI-405\",\"XI-406\",\"XI-407\",\"XI-408\",\"XI-409\",\"XI-410\",\"XI-411\",\"XI-412\",\"XI-413\",\"XI-414\",\"XI-415\",\"XI-416\",\"XI-417\",\"XI-418\",\"XI-419\",\"XI-420\",\"XI-421\",\"XI-422\",\"XI-423\",\"XI-424\",\"XI-425\",\"XI-426\",\"XI-427\",\"XI-428\",\"XI-429\",\"XI-430\",\"XI-431\",\"XI-432\",\"XI-433\",\"XI-434\",\"XI-435\",\"XI-436\",\"XI-437\",\"XI-438\",\"XI-439\",\"XI-440\",\"XI-441\",\"XI-442\",\"XI-443\",\"XI-444\",\"XI-445\",\"XI-446\",\"XI-447\",\"XI-448\",\"XI-449\",\"XI-450\",\"XI-451\",\"XI-452\",\"XI-453\",\"XI-454\",\"XI-455\",\"XI-456\",\"XI-457\",\"XI-458\",\"XI-459\",\"XI-460\",\"XI-461\",\"XI-462\",\"XI-463\",\"XI-464\",\"XI-465\",\"XI-466\",\"XI-467\",\"XI-468\",\"XI-469\",\"XI-470\",\"XI-471\",\"XI-472\",\"XI-473\",\"XI-474\",\"XI-475\",\"XI-476\",\"XI-477\",\"XI-478\",\"XI-479\",\"XI-480\",\"XI-481\",\"XI-482\",\"XI-483\",\"XI-484\",\"XI-485\",\"XI-486\",\"XI-487\",\"XI-488\",\"XI-489\",\"XI-490\",\"XI-491\",\"XI-492\",\"XI-493\",\"XI-494\",\"XI-495\",\"XI-496\",\"XI-497\",\"XI-498\",\"XI-499\",\"XI-500\",\"XI-501\",\"XI-502\",\"XI-503\",\"XI-504\",\"XI-505\",\"XI-506\",\"XI-507\",\"XI-508\",\"XI-509\",\"XI-510\",\"XI-511\",\"XJ-000\",\"XJ-001\",\"XJ-002\",\"XJ-003\",\"XJ-004\",\"XJ-005\",\"XJ-006\",\"XJ-007\",\"XJ-008\",\"XJ-009\",\"XJ-010\",\"XJ-011\",\"XJ-012\",\"XJ-013\",\"XJ-014\",\"XJ-015\",\"XJ-016\",\"XJ-017\",\"XJ-018\",\"XJ-019\",\"XJ-020\",\"XJ-021\",\"XJ-022\",\"XJ-023\",\"XJ-024\",\"XJ-025\",\"XJ-026\",\"XJ-027\",\"XJ-028\",\"XJ-029\",\"XJ-030\",\"XJ-031\",\"XJ-032\",\"XJ-033\",\"XJ-034\",\"XJ-035\",\"XJ-036\",\"XJ-037\",\"XJ-038\",\"XJ-039\",\"XJ-040\",\"XJ-041\",\"XJ-042\",\"XJ-043\",\"XJ-044\",\"XJ-045\",\"XJ-046\",\"XJ-047\",\"XJ-048\",\"XJ-049\",\"XJ-050\",\"XJ-051\",\"XJ-052\",\"XJ-053\",\"XJ-054\",\"XJ-055\",\"XJ-056\",\"XJ-057\",\"XJ-058\",\"XJ-059\",\"XJ-060\",\"XJ-061\",\"XJ-062\",\"XJ-063\",\"XJ-064\",\"XJ-065\",\"XJ-066\",\"XJ-067\",\"XJ-068\",\"XJ-069\",\"XJ-070\",\"XJ-071\",\"XJ-072\",\"XJ-073\",\"XJ-074\",\"XJ-075\",\"XJ-076\",\"XJ-077\",\"XJ-078\",\"XJ-079\",\"XJ-080\",\"XJ-081\",\"XJ-082\",\"XJ-083\",\"XJ-084\",\"XJ-085\",\"XJ-086\",\"XJ-087\",\"XJ-088\",\"XJ-089\",\"XJ-090\",\"XJ-091\",\"XJ-092\",\"XJ-093\",\"XJ-094\",\"XJ-095\",\"XJ-096\",\"XJ-097\",\"XJ-098\",\"XJ-099\",\"XJ-100\",\"XJ-101\",\"XJ-102\",\"XJ-103\",\"XJ-104\",\"XJ-105\",\"XJ-106\",\"XJ-107\",\"XJ-108\",\"XJ-109\",\"XJ-110\",\"XJ-111\",\"XJ-112\",\"XJ-113\",\"XJ-114\",\"XJ-115\",\"XJ-116\",\"XJ-117\",\"XJ-118\",\"XJ-119\",\"XJ-120\",\"XJ-121\",\"XJ-122\",\"XJ-123\",\"XJ-124\",\"XJ-125\",\"XJ-126\",\"XJ-127\",\"XJ-128\",\"XJ-129\",\"XJ-130\",\"XJ-131\",\"XJ-132\",\"XJ-133\",\"XJ-134\",\"XJ-135\",\"XJ-136\",\"XJ-137\",\"XJ-138\",\"XJ-139\",\"XJ-140\",\"XJ-141\",\"XJ-142\",\"XJ-143\",\"XJ-144\",\"XJ-145\",\"XJ-146\",\"XJ-147\",\"XJ-148\",\"XJ-149\",\"XJ-150\",\"XJ-151\",\"XJ-152\",\"XJ-153\",\"XJ-154\",\"XJ-155\",\"XJ-156\",\"XJ-157\",\"XJ-158\",\"XJ-159\",\"XJ-160\",\"XJ-161\",\"XJ-162\",\"XJ-163\",\"XJ-164\",\"XJ-165\",\"XJ-166\",\"XJ-167\",\"XJ-168\",\"XJ-169\",\"XJ-170\",\"XJ-171\",\"XJ-172\",\"XJ-173\",\"XJ-174\",\"XJ-175\",\"XJ-176\",\"XJ-177\",\"XJ-178\",\"XJ-179\",\"XJ-180\",\"XJ-181\",\"XJ-182\",\"XJ-183\",\"XJ-184\",\"XJ-185\",\"XJ-186\",\"XJ-187\",\"XJ-188\",\"XJ-189\",\"XJ-190\",\"XJ-191\",\"XJ-192\",\"XJ-193\",\"XJ-194\",\"XJ-195\",\"XJ-196\",\"XJ-197\",\"XJ-198\",\"XJ-199\",\"XJ-200\",\"XJ-201\",\"XJ-202\",\"XJ-203\",\"XJ-204\",\"XJ-205\",\"XJ-206\",\"XJ-207\",\"XJ-208\",\"XJ-209\",\"XJ-210\",\"XJ-211\",\"XJ-212\",\"XJ-213\",\"XJ-214\",\"XJ-215\",\"XJ-216\",\"XJ-217\",\"XJ-218\",\"XJ-219\",\"XJ-220\",\"XJ-221\",\"XJ-222\",\"XJ-223\",\"XJ-224\",\"XJ-225\",\"XJ-226\",\"XJ-227\",\"XJ-228\",\"XJ-229\",\"XJ-230\",\"XJ-231\",\"XJ-232\",\"XJ-233\",\"XJ-234\",\"XJ-235\",\"XJ-236\",\"XJ-237\",\"XJ-238\",\"XJ-239\",\"XJ-240\",\"XJ-241\",\"XJ-242\",\"XJ-243\",\"XJ-244\",\"XJ-245\",\"XJ-246\",\"XJ-247\",\"XJ-248\",\"XJ-249\",\"XJ-250\",\"XJ-251\",\"XJ-252\",\"XJ-253\",\"XJ-254\",\"XJ-255\",\"XJ-256\",\"XJ-257\",\"XJ-258\",\"XJ-259\",\"XJ-260\",\"XJ-261\",\"XJ-262\",\"XJ-263\",\"XJ-264\",\"XJ-265\",\"XJ-266\",\"XJ-267\",\"XJ-268\",\"XJ-269\",\"XJ-270\",\"XJ-271\",\"XJ-272\",\"XJ-273\",\"XJ-274\",\"XJ-275\",\"XJ-276\",\"XJ-277\",\"XJ-278\",\"XJ-279\",\"XJ-280\",\"XJ-281\",\"XJ-282\",\"XJ-283\",\"XJ-284\",\"XJ-285\",\"XJ-286\",\"XJ-287\",\"XJ-288\",\"XJ-289\",\"XJ-290\",\"XJ-291\",\"XJ-292\",\"XJ-293\",\"XJ-294\",\"XJ-295\",\"XJ-296\",\"XJ-297\",\"XJ-298\",\"XJ-299\",\"XJ-300\",\"XJ-301\",\"XJ-302\",\"XJ-303\",\"XJ-304\",\"XJ-305\",\"XJ-306\",\"XJ-307\",\"XJ-308\",\"XJ-309\",\"XJ-310\",\"XJ-311\",\"XJ-312\",\"XJ-313\",\"XJ-314\",\"XJ-315\",\"XJ-316\",\"XJ-317\",\"XJ-318\",\"XJ-319\",\"XJ-320\",\"XJ-321\",\"XJ-322\",\"XJ-323\",\"XJ-324\",\"XJ-325\",\"XJ-326\",\"XJ-327\",\"XJ-328\",\"XJ-329\",\"XJ-330\",\"XJ-331\",\"XJ-332\",\"XJ-333\",\"XJ-334\",\"XJ-335\",\"XJ-336\",\"XJ-337\",\"XJ-338\",\"XJ-339\",\"XJ-340\",\"XJ-341\",\"XJ-342\",\"XJ-343\",\"XJ-344\",\"XJ-345\",\"XJ-346\",\"XJ-347\",\"XJ-348\",\"XJ-349\",\"XJ-350\",\"XJ-351\",\"XJ-352\",\"XJ-353\",\"XJ-354\",\"XJ-355\",\"XJ-356\",\"XJ-357\",\"XJ-358\",\"XJ-359\",\"XJ-360\",\"XJ-361\",\"XJ-362\",\"XJ-363\",\"XJ-364\",\"XJ-365\",\"XJ-366\",\"XJ-367\",\"XJ-368\",\"XJ-369\",\"XJ-370\",\"XJ-371\",\"XJ-372\",\"XJ-373\",\"XJ-374\",\"XJ-375\",\"XJ-376\",\"XJ-377\",\"XJ-378\",\"XJ-379\",\"XJ-380\",\"XJ-381\",\"XJ-382\",\"XJ-383\",\"XJ-384\",\"XJ-385\",\"XJ-386\",\"XJ-387\",\"XJ-388\",\"XJ-389\",\"XJ-390\",\"XJ-391\",\"XJ-392\",\"XJ-393\",\"XJ-394\",\"XJ-395\",\"XJ-396\",\"XJ-397\",\"XJ-398\",\"XJ-399\",\"XJ-400\",\"XJ-401\",\"XJ-402\",\"XJ-403\",\"XJ-404\",\"XJ-405\",\"XJ-406\",\"XJ-407\",\"XJ-408\",\"XJ-409\",\"XJ-410\",\"XJ-411\",\"XJ-412\",\"XJ-413\",\"XJ-414\",\"XJ-415\",\"XJ-416\",\"XJ-417\",\"XJ-418\",\"XJ-419\",\"XJ-420\",\"XJ-421\",\"XJ-422\",\"XJ-423\",\"XJ-424\",\"XJ-425\",\"XJ-426\",\"XJ-427\",\"XJ-428\",\"XJ-429\",\"XJ-430\",\"XJ-431\",\"XJ-432\",\"XJ-433\",\"XJ-434\",\"XJ-435\",\"XJ-436\",\"XJ-437\",\"XJ-438\",\"XJ-439\",\"XJ-440\",\"XJ-441\",\"XJ-442\",\"XJ-443\",\"XJ-444\",\"XJ-445\",\"XJ-446\",\"XJ-447\",\"XJ-448\",\"XJ-449\",\"XJ-450\",\"XJ-451\",\"XJ-452\",\"XJ-453\",\"XJ-454\",\"XJ-455\",\"XJ-456\",\"XJ-457\",\"XJ-458\",\"XJ-459\",\"XJ-460\",\"XJ-461\",\"XJ-462\",\"XJ-463\",\"XJ-464\",\"XJ-465\",\"XJ-466\",\"XJ-467\",\"XJ-468\",\"XJ-469\",\"XJ-470\",\"XJ-471\",\"XJ-472\",\"XJ-473\",\"XJ-474\",\"XJ-475\",\"XJ-476\",\"XJ-477\",\"XJ-478\",\"XJ-479\",\"XJ-480\",\"XJ-481\",\"XJ-482\",\"XJ-483\",\"XJ-484\",\"XJ-485\",\"XJ-486\",\"XJ-487\",\"XJ-488\",\"XJ-489\",\"XJ-490\",\"XJ-491\",\"XJ-492\",\"XJ-493\",\"XJ-494\",\"XJ-495\",\"XJ-496\",\"XJ-497\",\"XJ-498\",\"XJ-499\",\"XJ-500\",\"XJ-501\",\"XJ-502\",\"XJ-503\",\"XJ-504\",\"XJ-505\",\"XJ-506\",\"XJ-507\",\"XJ-508\",\"XJ-509\",\"XJ-510\",\"XJ-511\",\"XK-000\",\"XK-001\",\"XK-002\",\"XK-003\",\"XK-004\",\"XK-005\",\"XK-006\",\"XK-007\",\"XK-008\",\"XK-009\",\"XK-010\",\"XK-011\",\"XK-012\",\"XK-013\",\"XK-014\",\"XK-015\",\"XK-016\",\"XK-017\",\"XK-018\",\"XK-019\",\"XK-020\",\"XK-021\",\"XK-022\",\"XK-023\",\"XK-024\",\"XK-025\",\"XK-026\",\"XK-027\",\"XK-028\",\"XK-029\",\"XK-030\",\"XK-031\",\"XK-032\",\"XK-033\",\"XK-034\",\"XK-035\",\"XK-036\",\"XK-037\",\"XK-038\",\"XK-039\",\"XK-040\",\"XK-041\",\"XK-042\",\"XK-043\",\"XK-044\",\"XK-045\",\"XK-046\",\"XK-047\",\"XK-048\",\"XK-049\",\"XK-050\",\"XK-051\",\"XK-052\",\"XK-053\",\"XK-054\",\"XK-055\",\"XK-056\",\"XK-057\",\"XK-058\",\"XK-059\",\"XK-060\",\"XK-061\",\"XK-062\",\"XK-063\",\"XK-064\",\"XK-065\",\"XK-066\",\"XK-067\",\"XK-068\",\"XK-069\",\"XK-070\",\"XK-071\",\"XK-072\",\"XK-073\",\"XK-074\",\"XK-075\",\"XK-076\",\"XK-077\",\"XK-078\",\"XK-079\",\"XK-080\",\"XK-081\",\"XK-082\",\"XK-083\",\"XK-084\",\"XK-085\",\"XK-086\",\"XK-087\",\"XK-088\",\"XK-089\",\"XK-090\",\"XK-091\",\"XK-092\",\"XK-093\",\"XK-094\",\"XK-095\",\"XK-096\",\"XK-097\",\"XK-098\",\"XK-099\",\"XK-100\",\"XK-101\",\"XK-102\",\"XK-103\",\"XK-104\",\"XK-105\",\"XK-106\",\"XK-107\",\"XK-108\",\"XK-109\",\"XK-110\",\"XK-111\",\"XK-112\",\"XK-113\",\"XK-114\",\"XK-115\",\"XK-116\",\"XK-117\",\"XK-118\",\"XK-119\",\"XK-120\",\"XK-121\",\"XK-122\",\"XK-123\",\"XK-124\",\"XK-125\",\"XK-126\",\"XK-127\",\"XK-128\",\"XK-129\",\"XK-130\",\"XK-131\",\"XK-132\",\"XK-133\",\"XK-134\",\"XK-135\",\"XK-136\",\"XK-137\",\"XK-138\",\"XK-139\",\"XK-140\",\"XK-141\",\"XK-142\",\"XK-143\",\"XK-144\",\"XK-145\",\"XK-146\",\"XK-147\",\"XK-148\",\"XK-149\",\"XK-150\",\"XK-151\",\"XK-152\",\"XK-153\",\"XK-154\",\"XK-155\",\"XK-156\",\"XK-157\",\"XK-158\",\"XK-159\",\"XK-160\",\"XK-161\",\"XK-162\",\"XK-163\",\"XK-164\",\"XK-165\",\"XK-166\",\"XK-167\",\"XK-168\",\"XK-169\",\"XK-170\",\"XK-171\",\"XK-172\",\"XK-173\",\"XK-174\",\"XK-175\",\"XK-176\",\"XK-177\",\"XK-178\",\"XK-179\",\"XK-180\",\"XK-181\",\"XK-182\",\"XK-183\",\"XK-184\",\"XK-185\",\"XK-186\",\"XK-187\",\"XK-188\",\"XK-189\",\"XK-190\",\"XK-191\",\"XK-192\",\"XK-193\",\"XK-194\",\"XK-195\",\"XK-196\",\"XK-197\",\"XK-198\",\"XK-199\",\"XK-200\",\"XK-201\",\"XK-202\",\"XK-203\",\"XK-204\",\"XK-205\",\"XK-206\",\"XK-207\",\"XK-208\",\"XK-209\",\"XK-210\",\"XK-211\",\"XK-212\",\"XK-213\",\"XK-214\",\"XK-215\",\"XK-216\",\"XK-217\",\"XK-218\",\"XK-219\",\"XK-220\",\"XK-221\",\"XK-222\",\"XK-223\",\"XK-224\",\"XK-225\",\"XK-226\",\"XK-227\",\"XK-228\",\"XK-229\",\"XK-230\",\"XK-231\",\"XK-232\",\"XK-233\",\"XK-234\",\"XK-235\",\"XK-236\",\"XK-237\",\"XK-238\",\"XK-239\",\"XK-240\",\"XK-241\",\"XK-242\",\"XK-243\",\"XK-244\",\"XK-245\",\"XK-246\",\"XK-247\",\"XK-248\",\"XK-249\",\"XK-250\",\"XK-251\",\"XK-252\",\"XK-253\",\"XK-254\",\"XK-255\",\"XK-256\",\"XK-257\",\"XK-258\",\"XK-259\",\"XK-260\",\"XK-261\",\"XK-262\",\"XK-263\",\"XK-264\",\"XK-265\",\"XK-266\",\"XK-267\",\"XK-268\",\"XK-269\",\"XK-270\",\"XK-271\",\"XK-272\",\"XK-273\",\"XK-274\",\"XK-275\",\"XK-276\",\"XK-277\",\"XK-278\",\"XK-279\",\"XK-280\",\"XK-281\",\"XK-282\",\"XK-283\",\"XK-284\",\"XK-285\",\"XK-286\",\"XK-287\",\"XK-288\",\"XK-289\",\"XK-290\",\"XK-291\",\"XK-292\",\"XK-293\",\"XK-294\",\"XK-295\",\"XK-296\",\"XK-297\",\"XK-298\",\"XK-299\",\"XK-300\",\"XK-301\",\"XK-302\",\"XK-303\",\"XK-304\",\"XK-305\",\"XK-306\",\"XK-307\",\"XK-308\",\"XK-309\",\"XK-310\",\"XK-311\",\"XK-312\",\"XK-313\",\"XK-314\",\"XK-315\",\"XK-316\",\"XK-317\",\"XK-318\",\"XK-319\",\"XK-320\",\"XK-321\",\"XK-322\",\"XK-323\",\"XK-324\",\"XK-325\",\"XK-326\",\"XK-327\",\"XK-328\",\"XK-329\",\"XK-330\",\"XK-331\",\"XK-332\",\"XK-333\",\"XK-334\",\"XK-335\",\"XK-336\",\"XK-337\",\"XK-338\",\"XK-339\",\"XK-340\",\"XK-341\",\"XK-342\",\"XK-343\",\"XK-344\",\"XK-345\",\"XK-346\",\"XK-347\",\"XK-348\",\"XK-349\",\"XK-350\",\"XK-351\",\"XK-352\",\"XK-353\",\"XK-354\",\"XK-355\",\"XK-356\",\"XK-357\",\"XK-358\",\"XK-359\",\"XK-360\",\"XK-361\",\"XK-362\",\"XK-363\",\"XK-364\",\"XK-365\",\"XK-366\",\"XK-367\",\"XK-368\",\"XK-369\",\"XK-370\",\"XK-371\",\"XK-372\",\"XK-373\",\"XK-374\",\"XK-375\",\"XK-376\",\"XK-377\",\"XK-378\",\"XK-379\",\"XK-380\",\"XK-381\",\"XK-382\",\"XK-383\",\"XK-384\",\"XK-385\",\"XK-386\",\"XK-387\",\"XK-388\",\"XK-389\",\"XK-390\",\"XK-391\",\"XK-392\",\"XK-393\",\"XK-394\",\"XK-395\",\"XK-396\",\"XK-397\",\"XK-398\",\"XK-399\",\"XK-400\",\"XK-401\",\"XK-402\",\"XK-403\",\"XK-404\",\"XK-405\",\"XK-406\",\"XK-407\",\"XK-408\",\"XK-409\",\"XK-410\",\"XK-411\",\"XK-412\",\"XK-413\",\"XK-414\",\"XK-415\",\"XK-416\",\"XK-417\",\"XK-418\",\"XK-419\",\"XK-420\",\"XK-421\",\"XK-422\",\"XK-423\",\"XK-424\",\"XK-425\",\"XK-426\",\"XK-427\",\"XK-428\",\"XK-429\",\"XK-430\",\"XK-431\",\"XK-432\",\"XK-433\",\"XK-434\",\"XK-435\",\"XK-436\",\"XK-437\",\"XK-438\",\"XK-439\",\"XK-440\",\"XK-441\",\"XK-442\",\"XK-443\",\"XK-444\",\"XK-445\",\"XK-446\",\"XK-447\",\"XK-448\",\"XK-449\",\"XK-450\",\"XK-451\",\"XK-452\",\"XK-453\",\"XK-454\",\"XK-455\",\"XK-456\",\"XK-457\",\"XK-458\",\"XK-459\",\"XK-460\",\"XK-461\",\"XK-462\",\"XK-463\",\"XK-464\",\"XK-465\",\"XK-466\",\"XK-467\",\"XK-468\",\"XK-469\",\"XK-470\",\"XK-471\",\"XK-472\",\"XK-473\",\"XK-474\",\"XK-475\",\"XK-476\",\"XK-477\",\"XK-478\",\"XK-479\",\"XK-480\",\"XK-481\",\"XK-482\",\"XK-483\",\"XK-484\",\"XK-485\",\"XK-486\",\"XK-487\",\"XK-488\",\"XK-489\",\"XK-490\",\"XK-491\",\"XK-492\",\"XK-493\",\"XK-494\",\"XK-495\",\"XK-496\",\"XK-497\",\"XK-498\",\"XK-499\",\"XK-500\",\"XK-501\",\"XK-502\",\"XK-503\",\"XK-504\",\"XK-505\",\"XK-506\",\"XK-507\",\"XK-508\",\"XK-509\",\"XK-510\",\"XK-511\",\"XL-000\",\"XL-001\",\"XL-002\",\"XL-003\",\"XL-004\",\"XL-005\",\"XL-006\",\"XL-007\",\"XL-008\",\"XL-009\",\"XL-010\",\"XL-011\",\"XL-012\",\"XL-013\",\"XL-014\",\"XL-015\",\"XL-016\",\"XL-017\",\"XL-018\",\"XL-019\",\"XL-020\",\"XL-021\",\"XL-022\",\"XL-023\",\"XL-024\",\"XL-025\",\"XL-026\",\"XL-027\",\"XL-028\",\"XL-029\",\"XL-030\",\"XL-031\",\"XL-032\",\"XL-033\",\"XL-034\",\"XL-035\",\"XL-036\",\"XL-037\",\"XL-038\",\"XL-039\",\"XL-040\",\"XL-041\",\"XL-042\",\"XL-043\",\"XL-044\",\"XL-045\",\"XL-046\",\"XL-047\",\"XL-048\",\"XL-049\",\"XL-050\",\"XL-051\",\"XL-052\",\"XL-053\",\"XL-054\",\"XL-055\",\"XL-056\",\"XL-057\",\"XL-058\",\"XL-059\",\"XL-060\",\"XL-061\",\"XL-062\",\"XL-063\",\"XL-064\",\"XL-065\",\"XL-066\",\"XL-067\",\"XL-068\",\"XL-069\",\"XL-070\",\"XL-071\",\"XL-072\",\"XL-073\",\"XL-074\",\"XL-075\",\"XL-076\",\"XL-077\",\"XL-078\",\"XL-079\",\"XL-080\",\"XL-081\",\"XL-082\",\"XL-083\",\"XL-084\",\"XL-085\",\"XL-086\",\"XL-087\",\"XL-088\",\"XL-089\",\"XL-090\",\"XL-091\",\"XL-092\",\"XL-093\",\"XL-094\",\"XL-095\",\"XL-096\",\"XL-097\",\"XL-098\",\"XL-099\",\"XL-100\",\"XL-101\",\"XL-102\",\"XL-103\",\"XL-104\",\"XL-105\",\"XL-106\",\"XL-107\",\"XL-108\",\"XL-109\",\"XL-110\",\"XL-111\",\"XL-112\",\"XL-113\",\"XL-114\",\"XL-115\",\"XL-116\",\"XL-117\",\"XL-118\",\"XL-119\",\"XL-120\",\"XL-121\",\"XL-122\",\"XL-123\",\"XL-124\",\"XL-125\",\"XL-126\",\"XL-127\",\"XL-128\",\"XL-129\",\"XL-130\",\"XL-131\",\"XL-132\",\"XL-133\",\"XL-134\",\"XL-135\",\"XL-136\",\"XL-137\",\"XL-138\",\"XL-139\",\"XL-140\",\"XL-141\",\"XL-142\",\"XL-143\",\"XL-144\",\"XL-145\",\"XL-146\",\"XL-147\",\"XL-148\",\"XL-149\",\"XL-150\",\"XL-151\",\"XL-152\",\"XL-153\",\"XL-154\",\"XL-155\",\"XL-156\",\"XL-157\",\"XL-158\",\"XL-159\",\"XL-160\",\"XL-161\",\"XL-162\",\"XL-163\",\"XL-164\",\"XL-165\",\"XL-166\",\"XL-167\",\"XL-168\",\"XL-169\",\"XL-170\",\"XL-171\",\"XL-172\",\"XL-173\",\"XL-174\",\"XL-175\",\"XL-176\",\"XL-177\",\"XL-178\",\"XL-179\",\"XL-180\",\"XL-181\",\"XL-182\",\"XL-183\",\"XL-184\",\"XL-185\",\"XL-186\",\"XL-187\",\"XL-188\",\"XL-189\",\"XL-190\",\"XL-191\",\"XL-192\",\"XL-193\",\"XL-194\",\"XL-195\",\"XL-196\",\"XL-197\",\"XL-198\",\"XL-199\",\"XL-200\",\"XL-201\",\"XL-202\",\"XL-203\",\"XL-204\",\"XL-205\",\"XL-206\",\"XL-207\",\"XL-208\",\"XL-209\",\"XL-210\",\"XL-211\",\"XL-212\",\"XL-213\",\"XL-214\",\"XL-215\",\"XL-216\",\"XL-217\",\"XL-218\",\"XL-219\",\"XL-220\",\"XL-221\",\"XL-222\",\"XL-223\",\"XL-224\",\"XL-225\",\"XL-226\",\"XL-227\",\"XL-228\",\"XL-229\",\"XL-230\",\"XL-231\",\"XL-232\",\"XL-233\",\"XL-234\",\"XL-235\",\"XL-236\",\"XL-237\",\"XL-238\",\"XL-239\",\"XL-240\",\"XL-241\",\"XL-242\",\"XL-243\",\"XL-244\",\"XL-245\",\"XL-246\",\"XL-247\",\"XL-248\",\"XL-249\",\"XL-250\",\"XL-251\",\"XL-252\",\"XL-253\",\"XL-254\",\"XL-255\",\"XL-256\",\"XL-257\",\"XL-258\",\"XL-259\",\"XL-260\",\"XL-261\",\"XL-262\",\"XL-263\",\"XL-264\",\"XL-265\",\"XL-266\",\"XL-267\",\"XL-268\",\"XL-269\",\"XL-270\",\"XL-271\",\"XL-272\",\"XL-273\",\"XL-274\",\"XL-275\",\"XL-276\",\"XL-277\",\"XL-278\",\"XL-279\",\"XL-280\",\"XL-281\",\"XL-282\",\"XL-283\",\"XL-284\",\"XL-285\",\"XL-286\",\"XL-287\",\"XL-288\",\"XL-289\",\"XL-290\",\"XL-291\",\"XL-292\",\"XL-293\",\"XL-294\",\"XL-295\",\"XL-296\",\"XL-297\",\"XL-298\",\"XL-299\",\"XL-300\",\"XL-301\",\"XL-302\",\"XL-303\",\"XL-304\",\"XL-305\",\"XL-306\",\"XL-307\",\"XL-308\",\"XL-309\",\"XL-310\",\"XL-311\",\"XL-312\",\"XL-313\",\"XL-314\",\"XL-315\",\"XL-316\",\"XL-317\",\"XL-318\",\"XL-319\",\"XL-320\",\"XL-321\",\"XL-322\",\"XL-323\",\"XL-324\",\"XL-325\",\"XL-326\",\"XL-327\",\"XL-328\",\"XL-329\",\"XL-330\",\"XL-331\",\"XL-332\",\"XL-333\",\"XL-334\",\"XL-335\",\"XL-336\",\"XL-337\",\"XL-338\",\"XL-339\",\"XL-340\",\"XL-341\",\"XL-342\",\"XL-343\",\"XL-344\",\"XL-345\",\"XL-346\",\"XL-347\",\"XL-348\",\"XL-349\",\"XL-350\",\"XL-351\",\"XL-352\",\"XL-353\",\"XL-354\",\"XL-355\",\"XL-356\",\"XL-357\",\"XL-358\",\"XL-359\",\"XL-360\",\"XL-361\",\"XL-362\",\"XL-363\",\"XL-364\",\"XL-365\",\"XL-366\",\"XL-367\",\"XL-368\",\"XL-369\",\"XL-370\",\"XL-371\",\"XL-372\",\"XL-373\",\"XL-374\",\"XL-375\",\"XL-376\",\"XL-377\",\"XL-378\",\"XL-379\",\"XL-380\",\"XL-381\",\"XL-382\",\"XL-383\",\"XL-384\",\"XL-385\",\"XL-386\",\"XL-387\",\"XL-388\",\"XL-389\",\"XL-390\",\"XL-391\",\"XL-392\",\"XL-393\",\"XL-394\",\"XL-395\",\"XL-396\",\"XL-397\",\"XL-398\",\"XL-399\",\"XL-400\",\"XL-401\",\"XL-402\",\"XL-403\",\"XL-404\",\"XL-405\",\"XL-406\",\"XL-407\",\"XL-408\",\"XL-409\",\"XL-410\",\"XL-411\",\"XL-412\",\"XL-413\",\"XL-414\",\"XL-415\",\"XL-416\",\"XL-417\",\"XL-418\",\"XL-419\",\"XL-420\",\"XL-421\",\"XL-422\",\"XL-423\",\"XL-424\",\"XL-425\",\"XL-426\",\"XL-427\",\"XL-428\",\"XL-429\",\"XL-430\",\"XL-431\",\"XL-432\",\"XL-433\",\"XL-434\",\"XL-435\",\"XL-436\",\"XL-437\",\"XL-438\",\"XL-439\",\"XL-440\",\"XL-441\",\"XL-442\",\"XL-443\",\"XL-444\",\"XL-445\",\"XL-446\",\"XL-447\",\"XL-448\",\"XL-449\",\"XL-450\",\"XL-451\",\"XL-452\",\"XL-453\",\"XL-454\",\"XL-455\",\"XL-456\",\"XL-457\",\"XL-458\",\"XL-459\",\"XL-460\",\"XL-461\",\"XL-462\",\"XL-463\",\"XL-464\",\"XL-465\",\"XL-466\",\"XL-467\",\"XL-468\",\"XL-469\",\"XL-470\",\"XL-471\",\"XL-472\",\"XL-473\",\"XL-474\",\"XL-475\",\"XL-476\",\"XL-477\",\"XL-478\",\"XL-479\",\"XL-480\",\"XL-481\",\"XL-482\",\"XL-483\",\"XL-484\",\"XL-485\",\"XL-486\",\"XL-487\",\"XL-488\",\"XL-489\",\"XL-490\",\"XL-491\",\"XL-492\",\"XL-493\",\"XL-494\",\"XL-495\",\"XL-496\",\"XL-497\",\"XL-498\",\"XL-499\",\"XL-500\",\"XL-501\",\"XL-502\",\"XL-503\",\"XL-504\",\"XL-505\",\"XL-506\",\"XL-507\",\"XL-508\",\"XL-509\",\"XL-510\",\"XL-511\",\"XM-000\",\"XM-001\",\"XM-002\",\"XM-003\",\"XM-004\",\"XM-005\",\"XM-006\",\"XM-007\",\"XM-008\",\"XM-009\",\"XM-010\",\"XM-011\",\"XM-012\",\"XM-013\",\"XM-014\",\"XM-015\",\"XM-016\",\"XM-017\",\"XM-018\",\"XM-019\",\"XM-020\",\"XM-021\",\"XM-022\",\"XM-023\",\"XM-024\",\"XM-025\",\"XM-026\",\"XM-027\",\"XM-028\",\"XM-029\",\"XM-030\",\"XM-031\",\"XM-032\",\"XM-033\",\"XM-034\",\"XM-035\",\"XM-036\",\"XM-037\",\"XM-038\",\"XM-039\",\"XM-040\",\"XM-041\",\"XM-042\",\"XM-043\",\"XM-044\",\"XM-045\",\"XM-046\",\"XM-047\",\"XM-048\",\"XM-049\",\"XM-050\",\"XM-051\",\"XM-052\",\"XM-053\",\"XM-054\",\"XM-055\",\"XM-056\",\"XM-057\",\"XM-058\",\"XM-059\",\"XM-060\",\"XM-061\",\"XM-062\",\"XM-063\",\"XM-064\",\"XM-065\",\"XM-066\",\"XM-067\",\"XM-068\",\"XM-069\",\"XM-070\",\"XM-071\",\"XM-072\",\"XM-073\",\"XM-074\",\"XM-075\",\"XM-076\",\"XM-077\",\"XM-078\",\"XM-079\",\"XM-080\",\"XM-081\",\"XM-082\",\"XM-083\",\"XM-084\",\"XM-085\",\"XM-086\",\"XM-087\",\"XM-088\",\"XM-089\",\"XM-090\",\"XM-091\",\"XM-092\",\"XM-093\",\"XM-094\",\"XM-095\",\"XM-096\",\"XM-097\",\"XM-098\",\"XM-099\",\"XM-100\",\"XM-101\",\"XM-102\",\"XM-103\",\"XM-104\",\"XM-105\",\"XM-106\",\"XM-107\",\"XM-108\",\"XM-109\",\"XM-110\",\"XM-111\",\"XM-112\",\"XM-113\",\"XM-114\",\"XM-115\",\"XM-116\",\"XM-117\",\"XM-118\",\"XM-119\",\"XM-120\",\"XM-121\",\"XM-122\",\"XM-123\",\"XM-124\",\"XM-125\",\"XM-126\",\"XM-127\",\"XM-128\",\"XM-129\",\"XM-130\",\"XM-131\",\"XM-132\",\"XM-133\",\"XM-134\",\"XM-135\",\"XM-136\",\"XM-137\",\"XM-138\",\"XM-139\",\"XM-140\",\"XM-141\",\"XM-142\",\"XM-143\",\"XM-144\",\"XM-145\",\"XM-146\",\"XM-147\",\"XM-148\",\"XM-149\",\"XM-150\",\"XM-151\",\"XM-152\",\"XM-153\",\"XM-154\",\"XM-155\",\"XM-156\",\"XM-157\",\"XM-158\",\"XM-159\",\"XM-160\",\"XM-161\",\"XM-162\",\"XM-163\",\"XM-164\",\"XM-165\",\"XM-166\",\"XM-167\",\"XM-168\",\"XM-169\",\"XM-170\",\"XM-171\",\"XM-172\",\"XM-173\",\"XM-174\",\"XM-175\",\"XM-176\",\"XM-177\",\"XM-178\",\"XM-179\",\"XM-180\",\"XM-181\",\"XM-182\",\"XM-183\",\"XM-184\",\"XM-185\",\"XM-186\",\"XM-187\",\"XM-188\",\"XM-189\",\"XM-190\",\"XM-191\",\"XM-192\",\"XM-193\",\"XM-194\",\"XM-195\",\"XM-196\",\"XM-197\",\"XM-198\",\"XM-199\",\"XM-200\",\"XM-201\",\"XM-202\",\"XM-203\",\"XM-204\",\"XM-205\",\"XM-206\",\"XM-207\",\"XM-208\",\"XM-209\",\"XM-210\",\"XM-211\",\"XM-212\",\"XM-213\",\"XM-214\",\"XM-215\",\"XM-216\",\"XM-217\",\"XM-218\",\"XM-219\",\"XM-220\",\"XM-221\",\"XM-222\",\"XM-223\",\"XM-224\",\"XM-225\",\"XM-226\",\"XM-227\",\"XM-228\",\"XM-229\",\"XM-230\",\"XM-231\",\"XM-232\",\"XM-233\",\"XM-234\",\"XM-235\",\"XM-236\",\"XM-237\",\"XM-238\",\"XM-239\",\"XM-240\",\"XM-241\",\"XM-242\",\"XM-243\",\"XM-244\",\"XM-245\",\"XM-246\",\"XM-247\",\"XM-248\",\"XM-249\",\"XM-250\",\"XM-251\",\"XM-252\",\"XM-253\",\"XM-254\",\"XM-255\",\"XM-256\",\"XM-257\",\"XM-258\",\"XM-259\",\"XM-260\",\"XM-261\",\"XM-262\",\"XM-263\",\"XM-264\",\"XM-265\",\"XM-266\",\"XM-267\",\"XM-268\",\"XM-269\",\"XM-270\",\"XM-271\",\"XM-272\",\"XM-273\",\"XM-274\",\"XM-275\",\"XM-276\",\"XM-277\",\"XM-278\",\"XM-279\",\"XM-280\",\"XM-281\",\"XM-282\",\"XM-283\",\"XM-284\",\"XM-285\",\"XM-286\",\"XM-287\",\"XM-288\",\"XM-289\",\"XM-290\",\"XM-291\",\"XM-292\",\"XM-293\",\"XM-294\",\"XM-295\",\"XM-296\",\"XM-297\",\"XM-298\",\"XM-299\",\"XM-300\",\"XM-301\",\"XM-302\",\"XM-303\",\"XM-304\",\"XM-305\",\"XM-306\",\"XM-307\",\"XM-308\",\"XM-309\",\"XM-310\",\"XM-311\",\"XM-312\",\"XM-313\",\"XM-314\",\"XM-315\",\"XM-316\",\"XM-317\",\"XM-318\",\"XM-319\",\"XM-320\",\"XM-321\",\"XM-322\",\"XM-323\",\"XM-324\",\"XM-325\",\"XM-326\",\"XM-327\",\"XM-328\",\"XM-329\",\"XM-330\",\"XM-331\",\"XM-332\",\"XM-333\",\"XM-334\",\"XM-335\",\"XM-336\",\"XM-337\",\"XM-338\",\"XM-339\",\"XM-340\",\"XM-341\",\"XM-342\",\"XM-343\",\"XM-344\",\"XM-345\",\"XM-346\",\"XM-347\",\"XM-348\",\"XM-349\",\"XM-350\",\"XM-351\",\"XM-352\",\"XM-353\",\"XM-354\",\"XM-355\",\"XM-356\",\"XM-357\",\"XM-358\",\"XM-359\",\"XM-360\",\"XM-361\",\"XM-362\",\"XM-363\",\"XM-364\",\"XM-365\",\"XM-366\",\"XM-367\",\"XM-368\",\"XM-369\",\"XM-370\",\"XM-371\",\"XM-372\",\"XM-373\",\"XM-374\",\"XM-375\",\"XM-376\",\"XM-377\",\"XM-378\",\"XM-379\",\"XM-380\",\"XM-381\",\"XM-382\",\"XM-383\",\"XM-384\",\"XM-385\",\"XM-386\",\"XM-387\",\"XM-388\",\"XM-389\",\"XM-390\",\"XM-391\",\"XM-392\",\"XM-393\",\"XM-394\",\"XM-395\",\"XM-396\",\"XM-397\",\"XM-398\",\"XM-399\",\"XM-400\",\"XM-401\",\"XM-402\",\"XM-403\",\"XM-404\",\"XM-405\",\"XM-406\",\"XM-407\",\"XM-408\",\"XM-409\",\"XM-410\",\"XM-411\",\"XM-412\",\"XM-413\",\"XM-414\",\"XM-415\",\"XM-416\",\"XM-417\",\"XM-418\",\"XM-419\",\"XM-420\",\"XM-421\",\"XM-422\",\"XM-423\",\"XM-424\",\"XM-425\",\"XM-426\",\"XM-427\",\"XM-428\",\"XM-429\",\"XM-430\",\"XM-431\",\"XM-432\",\"XM-433\",\"XM-434\",\"XM-435\",\"XM-436\",\"XM-437\",\"XM-438\",\"XM-439\",\"XM-440\",\"XM-441\",\"XM-442\",\"XM-443\",\"XM-444\",\"XM-445\",\"XM-446\",\"XM-447\",\"XM-448\",\"XM-449\",\"XM-450\",\"XM-451\",\"XM-452\",\"XM-453\",\"XM-454\",\"XM-455\",\"XM-456\",\"XM-457\",\"XM-458\",\"XM-459\",\"XM-460\",\"XM-461\",\"XM-462\",\"XM-463\",\"XM-464\",\"XM-465\",\"XM-466\",\"XM-467\",\"XM-468\",\"XM-469\",\"XM-470\",\"XM-471\",\"XM-472\",\"XM-473\",\"XM-474\",\"XM-475\",\"XM-476\",\"XM-477\",\"XM-478\",\"XM-479\",\"XM-480\",\"XM-481\",\"XM-482\",\"XM-483\",\"XM-484\",\"XM-485\",\"XM-486\",\"XM-487\",\"XM-488\",\"XM-489\",\"XM-490\",\"XM-491\",\"XM-492\",\"XM-493\",\"XM-494\",\"XM-495\",\"XM-496\",\"XM-497\",\"XM-498\",\"XM-499\",\"XM-500\",\"XM-501\",\"XM-502\",\"XM-503\",\"XM-504\",\"XM-505\",\"XM-506\",\"XM-507\",\"XM-508\",\"XM-509\",\"XM-510\",\"XM-511\",\"XN-000\",\"XN-001\",\"XN-002\",\"XN-003\",\"XN-004\",\"XN-005\",\"XN-006\",\"XN-007\",\"XN-008\",\"XN-009\",\"XN-010\",\"XN-011\",\"XN-012\",\"XN-013\",\"XN-014\",\"XN-015\",\"XN-016\",\"XN-017\",\"XN-018\",\"XN-019\",\"XN-020\",\"XN-021\",\"XN-022\",\"XN-023\",\"XN-024\",\"XN-025\",\"XN-026\",\"XN-027\",\"XN-028\",\"XN-029\",\"XN-030\",\"XN-031\",\"XN-032\",\"XN-033\",\"XN-034\",\"XN-035\",\"XN-036\",\"XN-037\",\"XN-038\",\"XN-039\",\"XN-040\",\"XN-041\",\"XN-042\",\"XN-043\",\"XN-044\",\"XN-045\",\"XN-046\",\"XN-047\",\"XN-048\",\"XN-049\",\"XN-050\",\"XN-051\",\"XN-052\",\"XN-053\",\"XN-054\",\"XN-055\",\"XN-056\",\"XN-057\",\"XN-058\",\"XN-059\",\"XN-060\",\"XN-061\",\"XN-062\",\"XN-063\",\"XN-064\",\"XN-065\",\"XN-066\",\"XN-067\",\"XN-068\",\"XN-069\",\"XN-070\",\"XN-071\",\"XN-072\",\"XN-073\",\"XN-074\",\"XN-075\",\"XN-076\",\"XN-077\",\"XN-078\",\"XN-079\",\"XN-080\",\"XN-081\",\"XN-082\",\"XN-083\",\"XN-084\",\"XN-085\",\"XN-086\",\"XN-087\",\"XN-088\",\"XN-089\",\"XN-090\",\"XN-091\",\"XN-092\",\"XN-093\",\"XN-094\",\"XN-095\",\"XN-096\",\"XN-097\",\"XN-098\",\"XN-099\",\"XN-100\",\"XN-101\",\"XN-102\",\"XN-103\",\"XN-104\",\"XN-105\",\"XN-106\",\"XN-107\",\"XN-108\",\"XN-109\",\"XN-110\",\"XN-111\",\"XN-112\",\"XN-113\",\"XN-114\",\"XN-115\",\"XN-116\",\"XN-117\",\"XN-118\",\"XN-119\",\"XN-120\",\"XN-121\",\"XN-122\",\"XN-123\",\"XN-124\",\"XN-125\",\"XN-126\",\"XN-127\",\"XN-128\",\"XN-129\",\"XN-130\",\"XN-131\",\"XN-132\",\"XN-133\",\"XN-134\",\"XN-135\",\"XN-136\",\"XN-137\",\"XN-138\",\"XN-139\",\"XN-140\",\"XN-141\",\"XN-142\",\"XN-143\",\"XN-144\",\"XN-145\",\"XN-146\",\"XN-147\",\"XN-148\",\"XN-149\",\"XN-150\",\"XN-151\",\"XN-152\",\"XN-153\",\"XN-154\",\"XN-155\",\"XN-156\",\"XN-157\",\"XN-158\",\"XN-159\",\"XN-160\",\"XN-161\",\"XN-162\",\"XN-163\",\"XN-164\",\"XN-165\",\"XN-166\",\"XN-167\",\"XN-168\",\"XN-169\",\"XN-170\",\"XN-171\",\"XN-172\",\"XN-173\",\"XN-174\",\"XN-175\",\"XN-176\",\"XN-177\",\"XN-178\",\"XN-179\",\"XN-180\",\"XN-181\",\"XN-182\",\"XN-183\",\"XN-184\",\"XN-185\",\"XN-186\",\"XN-187\",\"XN-188\",\"XN-189\",\"XN-190\",\"XN-191\",\"XN-192\",\"XN-193\",\"XN-194\",\"XN-195\",\"XN-196\",\"XN-197\",\"XN-198\",\"XN-199\",\"XN-200\",\"XN-201\",\"XN-202\",\"XN-203\",\"XN-204\",\"XN-205\",\"XN-206\",\"XN-207\",\"XN-208\",\"XN-209\",\"XN-210\",\"XN-211\",\"XN-212\",\"XN-213\",\"XN-214\",\"XN-215\",\"XN-216\",\"XN-217\",\"XN-218\",\"XN-219\",\"XN-220\",\"XN-221\",\"XN-222\",\"XN-223\",\"XN-224\",\"XN-225\",\"XN-226\",\"XN-227\",\"XN-228\",\"XN-229\",\"XN-230\",\"XN-231\",\"XN-232\",\"XN-233\",\"XN-234\",\"XN-235\",\"XN-236\",\"XN-237\",\"XN-238\",\"XN-239\",\"XN-240\",\"XN-241\",\"XN-242\",\"XN-243\",\"XN-244\",\"XN-245\",\"XN-246\",\"XN-247\",\"XN-248\",\"XN-249\",\"XN-250\",\"XN-251\",\"XN-252\",\"XN-253\",\"XN-254\",\"XN-255\",\"XN-256\",\"XN-257\",\"XN-258\",\"XN-259\",\"XN-260\",\"XN-261\",\"XN-262\",\"XN-263\",\"XN-264\",\"XN-265\",\"XN-266\",\"XN-267\",\"XN-268\",\"XN-269\",\"XN-270\",\"XN-271\",\"XN-272\",\"XN-273\",\"XN-274\",\"XN-275\",\"XN-276\",\"XN-277\",\"XN-278\",\"XN-279\",\"XN-280\",\"XN-281\",\"XN-282\",\"XN-283\",\"XN-284\",\"XN-285\",\"XN-286\",\"XN-287\",\"XN-288\",\"XN-289\",\"XN-290\",\"XN-291\",\"XN-292\",\"XN-293\",\"XN-294\",\"XN-295\",\"XN-296\",\"XN-297\",\"XN-298\",\"XN-299\",\"XN-300\",\"XN-301\",\"XN-302\",\"XN-303\",\"XN-304\",\"XN-305\",\"XN-306\",\"XN-307\",\"XN-308\",\"XN-309\",\"XN-310\",\"XN-311\",\"XN-312\",\"XN-313\",\"XN-314\",\"XN-315\",\"XN-316\",\"XN-317\",\"XN-318\",\"XN-319\",\"XN-320\",\"XN-321\",\"XN-322\",\"XN-323\",\"XN-324\",\"XN-325\",\"XN-326\",\"XN-327\",\"XN-328\",\"XN-329\",\"XN-330\",\"XN-331\",\"XN-332\",\"XN-333\",\"XN-334\",\"XN-335\",\"XN-336\",\"XN-337\",\"XN-338\",\"XN-339\",\"XN-340\",\"XN-341\",\"XN-342\",\"XN-343\",\"XN-344\",\"XN-345\",\"XN-346\",\"XN-347\",\"XN-348\",\"XN-349\",\"XN-350\",\"XN-351\",\"XN-352\",\"XN-353\",\"XN-354\",\"XN-355\",\"XN-356\",\"XN-357\",\"XN-358\",\"XN-359\",\"XN-360\",\"XN-361\",\"XN-362\",\"XN-363\",\"XN-364\",\"XN-365\",\"XN-366\",\"XN-367\",\"XN-368\",\"XN-369\",\"XN-370\",\"XN-371\",\"XN-372\",\"XN-373\",\"XN-374\",\"XN-375\",\"XN-376\",\"XN-377\",\"XN-378\",\"XN-379\",\"XN-380\",\"XN-381\",\"XN-382\",\"XN-383\",\"XN-384\",\"XN-385\",\"XN-386\",\"XN-387\",\"XN-388\",\"XN-389\",\"XN-390\",\"XN-391\",\"XN-392\",\"XN-393\",\"XN-394\",\"XN-395\",\"XN-396\",\"XN-397\",\"XN-398\",\"XN-399\",\"XN-400\",\"XN-401\",\"XN-402\",\"XN-403\",\"XN-404\",\"XN-405\",\"XN-406\",\"XN-407\",\"XN-408\",\"XN-409\",\"XN-410\",\"XN-411\",\"XN-412\",\"XN-413\",\"XN-414\",\"XN-415\",\"XN-416\",\"XN-417\",\"XN-418\",\"XN-419\",\"XN-420\",\"XN-421\",\"XN-422\",\"XN-423\",\"XN-424\",\"XN-425\",\"XN-426\",\"XN-427\",\"XN-428\",\"XN-429\",\"XN-430\",\"XN-431\",\"XN-432\",\"XN-433\",\"XN-434\",\"XN-435\",\"XN-436\",\"XN-437\",\"XN-438\",\"XN-439\",\"XN-440\",\"XN-441\",\"XN-442\",\"XN-443\",\"XN-444\",\"XN-445\",\"XN-446\",\"XN-447\",\"XN-448\",\"XN-449\",\"XN-450\",\"XN-451\",\"XN-452\",\"XN-453\",\"XN-454\",\"XN-455\",\"XN-456\",\"XN-457\",\"XN-458\",\"XN-459\",\"XN-460\",\"XN-461\",\"XN-462\",\"XN-463\",\"XN-464\",\"XN-465\",\"XN-466\",\"XN-467\",\"XN-468\",\"XN-469\",\"XN-470\",\"XN-471\",\"XN-472\",\"XN-473\",\"XN-474\",\"XN-475\",\"XN-476\",\"XN-477\",\"XN-478\",\"XN-479\",\"XN-480\",\"XN-481\",\"XN-482\",\"XN-483\",\"XN-484\",\"XN-485\",\"XN-486\",\"XN-487\",\"XN-488\",\"XN-489\",\"XN-490\",\"XN-491\",\"XN-492\",\"XN-493\",\"XN-494\",\"XN-495\",\"XN-496\",\"XN-497\",\"XN-498\",\"XN-499\",\"XN-500\",\"XN-501\",\"XN-502\",\"XN-503\",\"XN-504\",\"XN-505\",\"XN-506\",\"XN-507\",\"XN-508\",\"XN-509\",\"XN-510\",\"XN-511\",\"XO-000\",\"XO-001\",\"XO-002\",\"XO-003\",\"XO-004\",\"XO-005\",\"XO-006\",\"XO-007\",\"XO-008\",\"XO-009\",\"XO-010\",\"XO-011\",\"XO-012\",\"XO-013\",\"XO-014\",\"XO-015\",\"XO-016\",\"XO-017\",\"XO-018\",\"XO-019\",\"XO-020\",\"XO-021\",\"XO-022\",\"XO-023\",\"XO-024\",\"XO-025\",\"XO-026\",\"XO-027\",\"XO-028\",\"XO-029\",\"XO-030\",\"XO-031\",\"XO-032\",\"XO-033\",\"XO-034\",\"XO-035\",\"XO-036\",\"XO-037\",\"XO-038\",\"XO-039\",\"XO-040\",\"XO-041\",\"XO-042\",\"XO-043\",\"XO-044\",\"XO-045\",\"XO-046\",\"XO-047\",\"XO-048\",\"XO-049\",\"XO-050\",\"XO-051\",\"XO-052\",\"XO-053\",\"XO-054\",\"XO-055\",\"XO-056\",\"XO-057\",\"XO-058\",\"XO-059\",\"XO-060\",\"XO-061\",\"XO-062\",\"XO-063\",\"XO-064\",\"XO-065\",\"XO-066\",\"XO-067\",\"XO-068\",\"XO-069\",\"XO-070\",\"XO-071\",\"XO-072\",\"XO-073\",\"XO-074\",\"XO-075\",\"XO-076\",\"XO-077\",\"XO-078\",\"XO-079\",\"XO-080\",\"XO-081\",\"XO-082\",\"XO-083\",\"XO-084\",\"XO-085\",\"XO-086\",\"XO-087\",\"XO-088\",\"XO-089\",\"XO-090\",\"XO-091\",\"XO-092\",\"XO-093\",\"XO-094\",\"XO-095\",\"XO-096\",\"XO-097\",\"XO-098\",\"XO-099\",\"XO-100\",\"XO-101\",\"XO-102\",\"XO-103\",\"XO-104\",\"XO-105\",\"XO-106\",\"XO-107\",\"XO-108\",\"XO-109\",\"XO-110\",\"XO-111\",\"XO-112\",\"XO-113\",\"XO-114\",\"XO-115\",\"XO-116\",\"XO-117\",\"XO-118\",\"XO-119\",\"XO-120\",\"XO-121\",\"XO-122\",\"XO-123\",\"XO-124\",\"XO-125\",\"XO-126\",\"XO-127\",\"XO-128\",\"XO-129\",\"XO-130\",\"XO-131\",\"XO-132\",\"XO-133\",\"XO-134\",\"XO-135\",\"XO-136\",\"XO-137\",\"XO-138\",\"XO-139\",\"XO-140\",\"XO-141\",\"XO-142\",\"XO-143\",\"XO-144\",\"XO-145\",\"XO-146\",\"XO-147\",\"XO-148\",\"XO-149\",\"XO-150\",\"XO-151\",\"XO-152\",\"XO-153\",\"XO-154\",\"XO-155\",\"XO-156\",\"XO-157\",\"XO-158\",\"XO-159\",\"XO-160\",\"XO-161\",\"XO-162\",\"XO-163\",\"XO-164\",\"XO-165\",\"XO-166\",\"XO-167\",\"XO-168\",\"XO-169\",\"XO-170\",\"XO-171\",\"XO-172\",\"XO-173\",\"XO-174\",\"XO-175\",\"XO-176\",\"XO-177\",\"XO-178\",\"XO-179\",\"XO-180\",\"XO-181\",\"XO-182\",\"XO-183\",\"XO-184\",\"XO-185\",\"XO-186\",\"XO-187\",\"XO-188\",\"XO-189\",\"XO-190\",\"XO-191\",\"XO-192\",\"XO-193\",\"XO-194\",\"XO-195\",\"XO-196\",\"XO-197\",\"XO-198\",\"XO-199\",\"XO-200\",\"XO-201\",\"XO-202\",\"XO-203\",\"XO-204\",\"XO-205\",\"XO-206\",\"XO-207\",\"XO-208\",\"XO-209\",\"XO-210\",\"XO-211\",\"XO-212\",\"XO-213\",\"XO-214\",\"XO-215\",\"XO-216\",\"XO-217\",\"XO-218\",\"XO-219\",\"XO-220\",\"XO-221\",\"XO-222\",\"XO-223\",\"XO-224\",\"XO-225\",\"XO-226\",\"XO-227\",\"XO-228\",\"XO-229\",\"XO-230\",\"XO-231\",\"XO-232\",\"XO-233\",\"XO-234\",\"XO-235\",\"XO-236\",\"XO-237\",\"XO-238\",\"XO-239\",\"XO-240\",\"XO-241\",\"XO-242\",\"XO-243\",\"XO-244\",\"XO-245\",\"XO-246\",\"XO-247\",\"XO-248\",\"XO-249\",\"XO-250\",\"XO-251\",\"XO-252\",\"XO-253\",\"XO-254\",\"XO-255\",\"XO-256\",\"XO-257\",\"XO-258\",\"XO-259\",\"XO-260\",\"XO-261\",\"XO-262\",\"XO-263\",\"XO-264\",\"XO-265\",\"XO-266\",\"XO-267\",\"XO-268\",\"XO-269\",\"XO-270\",\"XO-271\",\"XO-272\",\"XO-273\",\"XO-274\",\"XO-275\",\"XO-276\",\"XO-277\",\"XO-278\",\"XO-279\",\"XO-280\",\"XO-281\",\"XO-282\",\"XO-283\",\"XO-284\",\"XO-285\",\"XO-286\",\"XO-287\",\"XO-288\",\"XO-289\",\"XO-290\",\"XO-291\",\"XO-292\",\"XO-293\",\"XO-294\",\"XO-295\",\"XO-296\",\"XO-297\",\"XO-298\",\"XO-299\",\"XO-300\",\"XO-301\",\"XO-302\",\"XO-303\",\"XO-304\",\"XO-305\",\"XO-306\",\"XO-307\",\"XO-308\",\"XO-309\",\"XO-310\",\"XO-311\",\"XO-312\",\"XO-313\",\"XO-314\",\"XO-315\",\"XO-316\",\"XO-317\",\"XO-318\",\"XO-319\",\"XO-320\",\"XO-321\",\"XO-322\",\"XO-323\",\"XO-324\",\"XO-325\",\"XO-326\",\"XO-327\",\"XO-328\",\"XO-329\",\"XO-330\",\"XO-331\",\"XO-332\",\"XO-333\",\"XO-334\",\"XO-335\",\"XO-336\",\"XO-337\",\"XO-338\",\"XO-339\",\"XO-340\",\"XO-341\",\"XO-342\",\"XO-343\",\"XO-344\",\"XO-345\",\"XO-346\",\"XO-347\",\"XO-348\",\"XO-349\",\"XO-350\",\"XO-351\",\"XO-352\",\"XO-353\",\"XO-354\",\"XO-355\",\"XO-356\",\"XO-357\",\"XO-358\",\"XO-359\",\"XO-360\",\"XO-361\",\"XO-362\",\"XO-363\",\"XO-364\",\"XO-365\",\"XO-366\",\"XO-367\",\"XO-368\",\"XO-369\",\"XO-370\",\"XO-371\",\"XO-372\",\"XO-373\",\"XO-374\",\"XO-375\",\"XO-376\",\"XO-377\",\"XO-378\",\"XO-379\",\"XO-380\",\"XO-381\",\"XO-382\",\"XO-383\",\"XO-384\",\"XO-385\",\"XO-386\",\"XO-387\",\"XO-388\",\"XO-389\",\"XO-390\",\"XO-391\",\"XO-392\",\"XO-393\",\"XO-394\",\"XO-395\",\"XO-396\",\"XO-397\",\"XO-398\",\"XO-399\",\"XO-400\",\"XO-401\",\"XO-402\",\"XO-403\",\"XO-404\",\"XO-405\",\"XO-406\",\"XO-407\",\"XO-408\",\"XO-409\",\"XO-410\",\"XO-411\",\"XO-412\",\"XO-413\",\"XO-414\",\"XO-415\",\"XO-416\",\"XO-417\",\"XO-418\",\"XO-419\",\"XO-420\",\"XO-421\",\"XO-422\",\"XO-423\",\"XO-424\",\"XO-425\",\"XO-426\",\"XO-427\",\"XO-428\",\"XO-429\",\"XO-430\",\"XO-431\",\"XO-432\",\"XO-433\",\"XO-434\",\"XO-435\",\"XO-436\",\"XO-437\",\"XO-438\",\"XO-439\",\"XO-440\",\"XO-441\",\"XO-442\",\"XO-443\",\"XO-444\",\"XO-445\",\"XO-446\",\"XO-447\",\"XO-448\",\"XO-449\",\"XO-450\",\"XO-451\",\"XO-452\",\"XO-453\",\"XO-454\",\"XO-455\",\"XO-456\",\"XO-457\",\"XO-458\",\"XO-459\",\"XO-460\",\"XO-461\",\"XO-462\",\"XO-463\",\"XO-464\",\"XO-465\",\"XO-466\",\"XO-467\",\"XO-468\",\"XO-469\",\"XO-470\",\"XO-471\",\"XO-472\",\"XO-473\",\"XO-474\",\"XO-475\",\"XO-476\",\"XO-477\",\"XO-478\",\"XO-479\",\"XO-480\",\"XO-481\",\"XO-482\",\"XO-483\",\"XO-484\",\"XO-485\",\"XO-486\",\"XO-487\",\"XO-488\",\"XO-489\",\"XO-490\",\"XO-491\",\"XO-492\",\"XO-493\",\"XO-494\",\"XO-495\",\"XO-496\",\"XO-497\",\"XO-498\",\"XO-499\",\"XO-500\",\"XO-501\",\"XO-502\",\"XO-503\",\"XO-504\",\"XO-505\",\"XO-506\",\"XO-507\",\"XO-508\",\"XO-509\",\"XO-510\",\"XO-511\",\"XP-000\",\"XP-001\",\"XP-002\",\"XP-003\",\"XP-004\",\"XP-005\",\"XP-006\",\"XP-007\",\"XP-008\",\"XP-009\",\"XP-010\",\"XP-011\",\"XP-012\",\"XP-013\",\"XP-014\",\"XP-015\",\"XP-016\",\"XP-017\",\"XP-018\",\"XP-019\",\"XP-020\",\"XP-021\",\"XP-022\",\"XP-023\",\"XP-024\",\"XP-025\",\"XP-026\",\"XP-027\",\"XP-028\",\"XP-029\",\"XP-030\",\"XP-031\",\"XP-032\",\"XP-033\",\"XP-034\",\"XP-035\",\"XP-036\",\"XP-037\",\"XP-038\",\"XP-039\",\"XP-040\",\"XP-041\",\"XP-042\",\"XP-043\",\"XP-044\",\"XP-045\",\"XP-046\",\"XP-047\",\"XP-048\",\"XP-049\",\"XP-050\",\"XP-051\",\"XP-052\",\"XP-053\",\"XP-054\",\"XP-055\",\"XP-056\",\"XP-057\",\"XP-058\",\"XP-059\",\"XP-060\",\"XP-061\",\"XP-062\",\"XP-063\",\"XP-064\",\"XP-065\",\"XP-066\",\"XP-067\",\"XP-068\",\"XP-069\",\"XP-070\",\"XP-071\",\"XP-072\",\"XP-073\",\"XP-074\",\"XP-075\",\"XP-076\",\"XP-077\",\"XP-078\",\"XP-079\",\"XP-080\",\"XP-081\",\"XP-082\",\"XP-083\",\"XP-084\",\"XP-085\",\"XP-086\",\"XP-087\",\"XP-088\",\"XP-089\",\"XP-090\",\"XP-091\",\"XP-092\",\"XP-093\",\"XP-094\",\"XP-095\",\"XP-096\",\"XP-097\",\"XP-098\",\"XP-099\",\"XP-100\",\"XP-101\",\"XP-102\",\"XP-103\",\"XP-104\",\"XP-105\",\"XP-106\",\"XP-107\",\"XP-108\",\"XP-109\",\"XP-110\",\"XP-111\",\"XP-112\",\"XP-113\",\"XP-114\",\"XP-115\",\"XP-116\",\"XP-117\",\"XP-118\",\"XP-119\",\"XP-120\",\"XP-121\",\"XP-122\",\"XP-123\",\"XP-124\",\"XP-125\",\"XP-126\",\"XP-127\",\"XP-128\",\"XP-129\",\"XP-130\",\"XP-131\",\"XP-132\",\"XP-133\",\"XP-134\",\"XP-135\",\"XP-136\",\"XP-137\",\"XP-138\",\"XP-139\",\"XP-140\",\"XP-141\",\"XP-142\",\"XP-143\",\"XP-144\",\"XP-145\",\"XP-146\",\"XP-147\",\"XP-148\",\"XP-149\",\"XP-150\",\"XP-151\",\"XP-152\",\"XP-153\",\"XP-154\",\"XP-155\",\"XP-156\",\"XP-157\",\"XP-158\",\"XP-159\",\"XP-160\",\"XP-161\",\"XP-162\",\"XP-163\",\"XP-164\",\"XP-165\",\"XP-166\",\"XP-167\",\"XP-168\",\"XP-169\",\"XP-170\",\"XP-171\",\"XP-172\",\"XP-173\",\"XP-174\",\"XP-175\",\"XP-176\",\"XP-177\",\"XP-178\",\"XP-179\",\"XP-180\",\"XP-181\",\"XP-182\",\"XP-183\",\"XP-184\",\"XP-185\",\"XP-186\",\"XP-187\",\"XP-188\",\"XP-189\",\"XP-190\",\"XP-191\",\"XP-192\",\"XP-193\",\"XP-194\",\"XP-195\",\"XP-196\",\"XP-197\",\"XP-198\",\"XP-199\",\"XP-200\",\"XP-201\",\"XP-202\",\"XP-203\",\"XP-204\",\"XP-205\",\"XP-206\",\"XP-207\",\"XP-208\",\"XP-209\",\"XP-210\",\"XP-211\",\"XP-212\",\"XP-213\",\"XP-214\",\"XP-215\",\"XP-216\",\"XP-217\",\"XP-218\",\"XP-219\",\"XP-220\",\"XP-221\",\"XP-222\",\"XP-223\",\"XP-224\",\"XP-225\",\"XP-226\",\"XP-227\",\"XP-228\",\"XP-229\",\"XP-230\",\"XP-231\",\"XP-232\",\"XP-233\",\"XP-234\",\"XP-235\",\"XP-236\",\"XP-237\",\"XP-238\",\"XP-239\",\"XP-240\",\"XP-241\",\"XP-242\",\"XP-243\",\"XP-244\",\"XP-245\",\"XP-246\",\"XP-247\",\"XP-248\",\"XP-249\",\"XP-250\",\"XP-251\",\"XP-252\",\"XP-253\",\"XP-254\",\"XP-255\",\"XP-256\",\"XP-257\",\"XP-258\",\"XP-259\",\"XP-260\",\"XP-261\",\"XP-262\",\"XP-263\",\"XP-264\",\"XP-265\",\"XP-266\",\"XP-267\",\"XP-268\",\"XP-269\",\"XP-270\",\"XP-271\",\"XP-272\",\"XP-273\",\"XP-274\",\"XP-275\",\"XP-276\",\"XP-277\",\"XP-278\",\"XP-279\",\"XP-280\",\"XP-281\",\"XP-282\",\"XP-283\",\"XP-284\",\"XP-285\",\"XP-286\",\"XP-287\",\"XP-288\",\"XP-289\",\"XP-290\",\"XP-291\",\"XP-292\",\"XP-293\",\"XP-294\",\"XP-295\",\"XP-296\",\"XP-297\",\"XP-298\",\"XP-299\",\"XP-300\",\"XP-301\",\"XP-302\",\"XP-303\",\"XP-304\",\"XP-305\",\"XP-306\",\"XP-307\",\"XP-308\",\"XP-309\",\"XP-310\",\"XP-311\",\"XP-312\",\"XP-313\",\"XP-314\",\"XP-315\",\"XP-316\",\"XP-317\",\"XP-318\",\"XP-319\",\"XP-320\",\"XP-321\",\"XP-322\",\"XP-323\",\"XP-324\",\"XP-325\",\"XP-326\",\"XP-327\",\"XP-328\",\"XP-329\",\"XP-330\",\"XP-331\",\"XP-332\",\"XP-333\",\"XP-334\",\"XP-335\",\"XP-336\",\"XP-337\",\"XP-338\",\"XP-339\",\"XP-340\",\"XP-341\",\"XP-342\",\"XP-343\",\"XP-344\",\"XP-345\",\"XP-346\",\"XP-347\",\"XP-348\",\"XP-349\",\"XP-350\",\"XP-351\",\"XP-352\",\"XP-353\",\"XP-354\",\"XP-355\",\"XP-356\",\"XP-357\",\"XP-358\",\"XP-359\",\"XP-360\",\"XP-361\",\"XP-362\",\"XP-363\",\"XP-364\",\"XP-365\",\"XP-366\",\"XP-367\",\"XP-368\",\"XP-369\",\"XP-370\",\"XP-371\",\"XP-372\",\"XP-373\",\"XP-374\",\"XP-375\",\"XP-376\",\"XP-377\",\"XP-378\",\"XP-379\",\"XP-380\",\"XP-381\",\"XP-382\",\"XP-383\",\"XP-384\",\"XP-385\",\"XP-386\",\"XP-387\",\"XP-388\",\"XP-389\",\"XP-390\",\"XP-391\",\"XP-392\",\"XP-393\",\"XP-394\",\"XP-395\",\"XP-396\",\"XP-397\",\"XP-398\",\"XP-399\",\"XP-400\",\"XP-401\",\"XP-402\",\"XP-403\",\"XP-404\",\"XP-405\",\"XP-406\",\"XP-407\",\"XP-408\",\"XP-409\",\"XP-410\",\"XP-411\",\"XP-412\",\"XP-413\",\"XP-414\",\"XP-415\",\"XP-416\",\"XP-417\",\"XP-418\",\"XP-419\",\"XP-420\",\"XP-421\",\"XP-422\",\"XP-423\",\"XP-424\",\"XP-425\",\"XP-426\",\"XP-427\",\"XP-428\",\"XP-429\",\"XP-430\",\"XP-431\",\"XP-432\",\"XP-433\",\"XP-434\",\"XP-435\",\"XP-436\",\"XP-437\",\"XP-438\",\"XP-439\",\"XP-440\",\"XP-441\",\"XP-442\",\"XP-443\",\"XP-444\",\"XP-445\",\"XP-446\",\"XP-447\",\"XP-448\",\"XP-449\",\"XP-450\",\"XP-451\",\"XP-452\",\"XP-453\",\"XP-454\",\"XP-455\",\"XP-456\",\"XP-457\",\"XP-458\",\"XP-459\",\"XP-460\",\"XP-461\",\"XP-462\",\"XP-463\",\"XP-464\",\"XP-465\",\"XP-466\",\"XP-467\",\"XP-468\",\"XP-469\",\"XP-470\",\"XP-471\",\"XP-472\",\"XP-473\",\"XP-474\",\"XP-475\",\"XP-476\",\"XP-477\",\"XP-478\",\"XP-479\",\"XP-480\",\"XP-481\",\"XP-482\",\"XP-483\",\"XP-484\",\"XP-485\",\"XP-486\",\"XP-487\",\"XP-488\",\"XP-489\",\"XP-490\",\"XP-491\",\"XP-492\",\"XP-493\",\"XP-494\",\"XP-495\",\"XP-496\",\"XP-497\",\"XP-498\",\"XP-499\",\"XP-500\",\"XP-501\",\"XP-502\",\"XP-503\",\"XP-504\",\"XP-505\",\"XP-506\",\"XP-507\",\"XP-508\",\"XP-509\",\"XP-510\",\"XP-511\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\"],\"max_bps\":1,\"price\":4294967295,\"unit\":\"subscriber_us\"}],\"expires\":9007199254740991,\"issued\":0,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"280aea8041bd06247a92a51dcbb154ca5e2cb316f841a56cc707ac7bed69ae636869a1d3c29755807bdfccce8f1e61d41831b7f0b7d7f4edc1c44d8b3093070c\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "0460cdbb475a003285afd9e39c681b5649e99a3319c7e4b943baff9b6ae89c09", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 3 + } + }, + { + "name": "another_member_order", + "description": "unicast_tiers with its members in another order and whitespace added: the same list.", + "text": "{\n \"sig\": \"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\n \"entries\": [\n {\n \"direction\": \"downlink\",\n \"bearer\": \"bidirectional\",\n \"footprint\": [\n \"XA\",\n \"XB\"\n ],\n \"max_bps\": 2000000,\n \"unit\": \"bytes\",\n \"divisor\": 1000000000,\n \"price\": 10000000,\n \"energy_uj\": 300000000,\n \"energy_class\": \"Estimator\",\n \"energy_ppm\": null,\n \"energy_evidence\": null\n },\n {\n \"direction\": \"downlink\",\n \"bearer\": \"bidirectional\",\n \"footprint\": [\n \"XA\",\n \"XB\"\n ],\n \"max_bps\": 8000000,\n \"unit\": \"bytes\",\n \"divisor\": 1000000000,\n \"price\": 20000000,\n \"energy_uj\": 500000000,\n \"energy_class\": \"Estimator\",\n \"energy_ppm\": null,\n \"energy_evidence\": null\n },\n {\n \"direction\": \"downlink\",\n \"bearer\": \"bidirectional\",\n \"footprint\": [\n \"XA\",\n \"XB\"\n ],\n \"max_bps\": 9007199254740991,\n \"unit\": \"bytes\",\n \"divisor\": 1000000000,\n \"price\": 40000000,\n \"energy_uj\": 900000000,\n \"energy_class\": \"Estimator\",\n \"energy_ppm\": null,\n \"energy_evidence\": null\n }\n ],\n \"expires\": 1793750400000000,\n \"issued\": 1793664000000000,\n \"currency\": \"USD\",\n \"seller\": \"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\n \"version\": 1,\n \"kind\": \"wai-rung-prices\"\n}", + "outcome": { + "outcome": "read", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 3 + } + }, + { + "name": "same_body_two_signatures", + "description": "unicast_tiers's body under a second valid signature, made under another nonce: the same digest.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b054a91f279a945e5c8f5adbf3070ac7a3b5d13f22656948b6753fa26192a2cc080c0539c10e2a4ce9c8b9bb4307ad5eb80ad972ec1161d1a82dfacfab22e202\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 3 + } + }, + { + "name": "measured_entries", + "description": "C's bytes at three tiers, calibrated over two records, model-based over one and an estimate, and subscriber_us of a counter over one: records are named, not checked, at reading.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":2000000,\"price\":30000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"OnChipCounter\",\"energy_evidence\":[\"57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf\"],\"energy_ppm\":30000,\"energy_uj\":10000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"0ece9a19bf231f4caa16acdd878f71625e2ba611406843a4e9ce5ff4385e45ee11bdc68f857a365e115f3eec3bb31ffca48ab51c8a088881c78c152f639dcb07\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "f96f4f48110205df86700b9dc642199564669524ef571328b0bdb983b88fb248", + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entries": 4 + } + }, + { + "name": "ppm_bound", + "description": "A calibrated figure declared to 2^32 − 1 ppm.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":4294967295,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"2df1d793cc2e38f83d20b862b0d68abfdbcf2ef3f164e23160defb8803f2b16eb69472a27c07018e30bfbd6787f04a028aa0bc9f8f34183d95c675952974eb01\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "cd721095e92a27ef05f87a467641cc2655a543845e79748bb6b63af5b059a066", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 1 + } + }, + { + "name": "evidence_bound", + "description": "A model-based figure naming 64 records: the SHA-256 digests of the bytes 0 to 63, ascending.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"084fed08b978af4d7d196a7446a86b58009e636b611db16211b65a9aadff29c5\",\"09fc96082d34c2dfc1295d92073b5ea1dc8ef8da95f14dfded011ffb96d3e54b\",\"19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7\",\"1f18d650d205d71d934c3646ff5fac1c096ba52eba4cf758b865364f4167d3cd\",\"265fda17a34611b1533d8a281ff680dc5791b0ce0a11c25b35e11c8e75685509\",\"2b4c342f5433ebe591a1da77e013d1b72475562d48578dca8b84bac6651c3cb9\",\"2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3\",\"2f0fd1e89b8de1d57292742ec380ea47066e307ad645f5bc3adad8a06ff58608\",\"32ebb1abcc1c601ceb9c4e3c4faba0caa5b85bb98c4f1e6612c40faa528a91c9\",\"334359b90efed75da5f0ada1d5e6b256f4a6bd0aee7eb39c0f90182a021ffc8b\",\"36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068\",\"380918b946a526640a40df5dced6516794f3d97bbd9e6bb553d037c4439f31c3\",\"3973e022e93220f9212c18d0d0c543ae7c309e46640da93a4a0314de999f5112\",\"41b805ea7ac014e23556e98bb374702a08344268f92489a02f0880849394a1e4\",\"452ba1ddef80246c48be7690193c76c1d61185906be9401014fe14f1be64b74f\",\"4a64a107f0cb32536e5bce6c98c393db21cca7f4ea187ba8c4dca8b51d4ea80a\",\"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a\",\"4bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a\",\"4d7b3ef7300acf70c892d8327db8272f54434adbc61a4e130a563cb59a0d0f47\",\"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce\",\"58f7b0780592032e4d8602a3e8690fb2c701b2e1dd546e703445aabd6469734d\",\"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9\",\"62b67e1f685b7fef51102005dddd27774be3fee38c42965c53aab035d0b6b221\",\"67586e98fad27da0b9968bc039a1ef34c939b9b8e523a8bef89d478608c5ecf6\",\"684888c0ebb17f374298b65ee2807526c066094c701bcc7ebbe1c1095f494fc1\",\"68aa2e2ee5dff96e3355e6c7ee373e3d6a4e17f75f9518d843709c0c9bc3e3d4\",\"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\",\"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d\",\"77adfc95029e73b173f60e556f915b0cd8850848111358b1c370fb7c154e61fd\",\"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451\",\"7cb7c4547cf2653590d7a9ace60cc623d25148adfbc88a89aeb0ef88da7839ba\",\"83891d7fe85c33e52c8b4e5814c92fb6a3b9467299200538a6babaa8b452d879\",\"8a331fdde7032f33a71e1b2e257d80166e348e00fcb17914f48bdb57a1c63007\",\"8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1\",\"8a8de823d5ed3e12746a62ef169bcf372be0ca44f0a1236abc35df05d96928e1\",\"8f11b05da785e43e713d03774c6bd3405d99cd3024af334ffd68db663aa37034\",\"951dcee3a7a4f3aac67ec76a2ce4469cc76df650f134bf2572bf60a65c982338\",\"9652595f37edd08c51dfa26567e6cd76e6fa2709c3e578478ca398d316837a7a\",\"9d1e0e2d9459d06523ad13e28a4093c2316baafe7aec5b25f30eba2e113599c4\",\"a318c24216defe206feeb73ef5be00033fa9c4a74d0b967f6532a26ca5906d3b\",\"ab897fbdedfa502b2d839b6a56100887dccdc507555c282e59589e06300a62e2\",\"ba5ec51d07a4ac0e951608704431d59a02b21a4e951acc10505a8dc407c501ee\",\"bb7208bc9b5d7c04f1236a82a0093a5e33f40423d5ba8d4266f7092c3ba43b62\",\"bbf3f11cb5b43e700273a78d12de55e4a7eab741ed2abf13787a4d2dc832b8ec\",\"bd4fc42a21f1f860a1030e6eba23d53ecab71bd19297ab6c074381d4ecee0018\",\"beead77994cf573341ec17b58bbf7eb34d2711c993c1d976b128b3188dc1829a\",\"c555eab45d08845ae9f10d452a99bfcb06f74a50b988fe7e48dd323789b88ee3\",\"ca358758f6d27e6cf45272937977a748fd88391db679ceda7dc7bf1f005ee879\",\"cdb4ee2aea69cc6a83331bbe96dc2caa9a299d21329efb0336fc02a82e1839a8\",\"d03502c43d74a30b936740a9517dc4ea2b2ad7168caa0a774cefe793ce0b33e7\",\"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35\",\"dabd3aff769f07eb2965401eb029974ebba3407afd02b26ddb564ea5f8efae72\",\"dbc1b4c900ffe48d575b5da5c638040125f65db0fe3e24494b76ea986457d986\",\"dc0e9c3658a1a3ed1ec94274d8b19925c93e1abb7ddba294923ad9bde30f8cb8\",\"e52d9c508c502347344d8c07ad91cbd6068afc75ff6292f062a09ca381c89e71\",\"e77b9a9ae9e30b0dbdb6f510a264ef9de781501d7b6b92ae89eb059c5ab743db\",\"e7ac0786668e0ff0f02b62bd04f45ff636fd82db63b1104601c975dc005f3a67\",\"e7cf46a078fed4fafd0b5e3aff144802b853f8ae459a4f0c14add3314b7cc3a6\",\"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683\",\"ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d\",\"ef6cbd2161eaea7943ce8693b9824d23d1793ffb1c0fca05b600d3899b44c977\",\"f299791cddd3d6664f6670842812ef6053eb6501bd6282a476bbbf3ee91e750c\",\"ffe679bb831c95b67dc17819c63c5090d221aac6f4c7bf530f594ab43d21fa1e\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"0d96c991c983b7950b022fe73a734bf92c9dd11ee9c1b469edf262c9a1bcb5fc0265b78390284485a0d7bb617860f5d82b6ee011d5e0eef52579af3625784807\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "8793c90b9152e17466aa5431d2acaa65e40174f410c1ffc9e06ffe02123e0b38", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 1 + } + }, + { + "name": "readings_differ_not_mergeable", + "description": "Two entries of one tier over {XA} and {XB}, at one price and one model-based figure over different records: two statements, not one entry.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"23bbdbe67a9748b56646390206896511cc081fa3da499bbf31e537b5250397f89446784832e2dbe011a17d77cc84693f0c7ea4862256bf1a3ed2342b050e9b0d\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "af0e6d80eb1d4ebbd7ff1f35a726526ee81a6bc680dbb111c91ec675f32f756a", + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entries": 2 + } + }, + { + "name": "uncertainty_differs_not_mergeable", + "description": "Two entries of one tier over {XA} and {XB}, at one price and one calibrated figure over the same records, declared to 20,000 and 10,000 ppm: two statements, not one entry.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XA\"],\"max_bps\":2000000,\"price\":30000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":10000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":2000000,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"61a74bdc4f13eeca96a470b607f706853b066cec87cacdd51f29c0a9335d1ef93036a65124422f3b91c248b043385dbe8b3053fdf1522d4ff6cea4728c22bb09\",\"version\":1}", + "outcome": { + "outcome": "read", + "digest": "b7ade8a8bcfe2c2be779219bba4cd3bfee5e4431f4e53ac14b2f0bc197266f8a", + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entries": 2 + } + }, + { + "name": "not_a_document", + "description": "A trailing comma.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1,}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "member_repeated", + "description": "version stated twice.", + "text": "{\"version\":1,\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "number_fraction", + "description": "A price of 1.5.", + "text": "{\"kind\":\"wai-rung-prices\",\"version\":1,\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"currency\":\"USD\",\"issued\":1793664000000000,\"expires\":1793750400000000,\"entries\":[{\"direction\":\"downlink\",\"bearer\":\"bidirectional\",\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"unit\":\"bytes\",\"divisor\":1000000000,\"price\":1.5,\"energy_uj\":300000000,\"energy_class\":\"Estimator\",\"energy_ppm\":null,\"energy_evidence\":null},{\"direction\":\"downlink\",\"bearer\":\"bidirectional\",\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"unit\":\"bytes\",\"divisor\":1000000000,\"price\":20000000,\"energy_uj\":500000000,\"energy_class\":\"Estimator\",\"energy_ppm\":null,\"energy_evidence\":null},{\"direction\":\"downlink\",\"bearer\":\"bidirectional\",\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"unit\":\"bytes\",\"divisor\":1000000000,\"price\":40000000,\"energy_uj\":900000000,\"energy_class\":\"Estimator\",\"energy_ppm\":null,\"energy_evidence\":null}],\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\"}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "number_too_large", + "description": "A price of 2^53.", + "text": "{\"kind\":\"wai-rung-prices\",\"version\":1,\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"currency\":\"USD\",\"issued\":1793664000000000,\"expires\":1793750400000000,\"entries\":[{\"direction\":\"downlink\",\"bearer\":\"bidirectional\",\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"unit\":\"bytes\",\"divisor\":1000000000,\"price\":9007199254740992,\"energy_uj\":300000000,\"energy_class\":\"Estimator\",\"energy_ppm\":null,\"energy_evidence\":null},{\"direction\":\"downlink\",\"bearer\":\"bidirectional\",\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"unit\":\"bytes\",\"divisor\":1000000000,\"price\":20000000,\"energy_uj\":500000000,\"energy_class\":\"Estimator\",\"energy_ppm\":null,\"energy_evidence\":null},{\"direction\":\"downlink\",\"bearer\":\"bidirectional\",\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"unit\":\"bytes\",\"divisor\":1000000000,\"price\":40000000,\"energy_uj\":900000000,\"energy_class\":\"Estimator\",\"energy_ppm\":null,\"energy_evidence\":null}],\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\"}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "kind_other", + "description": "The kind of a route price book.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-route-pricebook\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"8b6b800d83836ccbebdb03803dd69b724d51922f2098aa8c5d23037dd245bf0f29ccb77bd9c9b48d3b2bc003247193cd0cc8fea436951e57e8947af62fab3d06\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "version_2", + "description": "Version 2.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"1734fc4a0d153852c6155380546e82ec6b78b4045e175c240d101ea50b740723d87ad5b67b936401e1ef9efb83e29cf76ef00d6f3156a9faa202668bb4437d0e\",\"version\":2}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "member_missing", + "description": "An entry with no energy_class.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"0b430e9578f40d83dce45d7862d2eebc7eb081670052c0fb65983cfc886066be40bcf9c922df0f15314ae5ebb1fce3b634e5901d0a8544b9bad52a75816f9d06\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "member_added", + "description": "An entry with a deadline: a promise is not a price member.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"deadline_ms\":1000,\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"939a24063079b328b152fabb511fccac8c43dd1f128d7f3cee792a6b7aa94d6ccaba42aa066d75feb2cb151aca7b14ba1ce66a40538f8e15781283aee2bb1609\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "currency_lowercase", + "description": "A currency of usd.", + "text": "{\"currency\":\"usd\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"00a9e5cff6ea5565a371f4b51c786a51276eb0ac2a28ade71b4faf9006aa57266f36d03fefe2698238bea939af812d47bd47bd9dd9f68bb9f568b2dee2e33009\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "seller_not_hex", + "description": "A seller key with a g in it.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"gf06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e485aa17c148a829e8cf769f72d655398f0dac457afb319c9fece0574d88b6739e6a080ec2826aa236c38145f4ad35be5d3bb7dfec59292f3b5d1fae5ada570b\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "sig_uppercase", + "description": "unicast_tiers's signature in uppercase hexadecimal: malformed, since a sig is lowercase digits, and never checked as a signature.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"E381CFD3AEF299397082FA7F2C8D1CC7276CB004CD0E0D97CF7A8B328F6844E828979D44DF4E1BCD3F3F25E4276993C92D0968FD4213F4C75FEB857101FD830D\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "window_empty", + "description": "issued equal to expires.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793664000000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b0847c4709889572c22cc6f8b3342a717307ef6671d1c13f5f569a53e02a8e0ab050f8db676adc3afe6f655b15d9bdcf03534ed398ee4e2e8d2c9ed8a3c14a02\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "no_entries", + "description": "No entry.", + "text": "{\"currency\":\"USD\",\"entries\":[],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"fdd9109532bdbd896468e90a6d35fce3e9b420fd8c4c524502652f45d613431793358a2bf2e21a16f7f2ff6d17bd35fe9b9642abfb2e320626a400683919e10a\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "entries_unordered_rate", + "description": "The 2,000,000 and 8,000,000 tiers in the other order.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"26bbd2ae6f13d25bba1a2bc5f791719ba14a718049272ff1c52cac5cdeb8f34a2439d0a9e564519bbcc712b7226899398ccf7f910e804d7afd6c26223609e702\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "entries_unordered_footprint", + "description": "disjoint_footprints with {XB} before {XA}.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":25000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"d2e17c14b91d3ec5dea7f797e1776b7fc0b161d7d3a5136201e9689adcedd0a42c4aa461e224221d8eebfee1e2a6d3b2ebe9b9ee4d70b476de03297362c7c00c\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "entries_mergeable", + "description": "disjoint_footprints at one price: one entry over {XA, XB} in two.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"f1c4da3c791b3e38862dcd62d319056825fc30acbbefe2f9550a8d6b3b3758e063c920108df4bcb9f2c4d9095b32a7b27a68b34314c9c0dad2fdd864d62ad305\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_empty", + "description": "A footprint of no code.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"bcb82ee9aa8bd11c784752d43cb357542f502e9438a97fcf4e587c134b7f6268ffd288dfd0c4855b5caaf3e0195db202765062b0a658964ac31ac38bd33cc00f\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_unordered", + "description": "{XB, XA}.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\",\"XA\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"2fb3bc5a83f2925adf7ac2262dd3208f2c6551f92e8290060b144564e1ca45b512c2356d495801fd86d29afddeb616ad48630a39ee9a32850c821a07cd4f6707\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_lowercase", + "description": "{XA, xb}: CDNI's case, not WAI's.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"xb\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"ddd36e3600dd30f36a5c60133f266193b90784a1e962fa31a21b411e6598ba486204bbeee1144e7a372792830345cc41d2705e0eb5ac23e079bea9df411ee108\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_alpha3", + "description": "{XA, XBB}: three letters.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XBB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"d7e40d1389de7a80d67eec118b8cb9305c8c102ef0440706228d7eb43a2dc830103d4a19f3b258445321fbc4af754b71d900f4f9480d088689b7e48c721de802\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_subdivision_long", + "description": "{XA, XB-ABCD}: a subdivision part of four.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB-ABCD\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"914a9516f5780aa7f60a05cdf9f80892330eb68843e38a72c30b61efe4f8f49cc617a6004f1cc926180e7abf35141fc64f8ab25415372df69f866942590efd0e\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_country_and_its_subdivision", + "description": "{XA, XB, XB-1}: XB-1 is already held by XB.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\",\"XB-1\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"5f832b9d41d5b462762203cfff8e4338cceb44309afeb53115ce8344e8646fd774ed6e231b2a20da52d570d5effff4b3973fb8527eabaee739c85eedafd6fd01\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "footprint_8193", + "description": "A footprint of 8,193 codes.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA-000\",\"XA-001\",\"XA-002\",\"XA-003\",\"XA-004\",\"XA-005\",\"XA-006\",\"XA-007\",\"XA-008\",\"XA-009\",\"XA-010\",\"XA-011\",\"XA-012\",\"XA-013\",\"XA-014\",\"XA-015\",\"XA-016\",\"XA-017\",\"XA-018\",\"XA-019\",\"XA-020\",\"XA-021\",\"XA-022\",\"XA-023\",\"XA-024\",\"XA-025\",\"XA-026\",\"XA-027\",\"XA-028\",\"XA-029\",\"XA-030\",\"XA-031\",\"XA-032\",\"XA-033\",\"XA-034\",\"XA-035\",\"XA-036\",\"XA-037\",\"XA-038\",\"XA-039\",\"XA-040\",\"XA-041\",\"XA-042\",\"XA-043\",\"XA-044\",\"XA-045\",\"XA-046\",\"XA-047\",\"XA-048\",\"XA-049\",\"XA-050\",\"XA-051\",\"XA-052\",\"XA-053\",\"XA-054\",\"XA-055\",\"XA-056\",\"XA-057\",\"XA-058\",\"XA-059\",\"XA-060\",\"XA-061\",\"XA-062\",\"XA-063\",\"XA-064\",\"XA-065\",\"XA-066\",\"XA-067\",\"XA-068\",\"XA-069\",\"XA-070\",\"XA-071\",\"XA-072\",\"XA-073\",\"XA-074\",\"XA-075\",\"XA-076\",\"XA-077\",\"XA-078\",\"XA-079\",\"XA-080\",\"XA-081\",\"XA-082\",\"XA-083\",\"XA-084\",\"XA-085\",\"XA-086\",\"XA-087\",\"XA-088\",\"XA-089\",\"XA-090\",\"XA-091\",\"XA-092\",\"XA-093\",\"XA-094\",\"XA-095\",\"XA-096\",\"XA-097\",\"XA-098\",\"XA-099\",\"XA-100\",\"XA-101\",\"XA-102\",\"XA-103\",\"XA-104\",\"XA-105\",\"XA-106\",\"XA-107\",\"XA-108\",\"XA-109\",\"XA-110\",\"XA-111\",\"XA-112\",\"XA-113\",\"XA-114\",\"XA-115\",\"XA-116\",\"XA-117\",\"XA-118\",\"XA-119\",\"XA-120\",\"XA-121\",\"XA-122\",\"XA-123\",\"XA-124\",\"XA-125\",\"XA-126\",\"XA-127\",\"XA-128\",\"XA-129\",\"XA-130\",\"XA-131\",\"XA-132\",\"XA-133\",\"XA-134\",\"XA-135\",\"XA-136\",\"XA-137\",\"XA-138\",\"XA-139\",\"XA-140\",\"XA-141\",\"XA-142\",\"XA-143\",\"XA-144\",\"XA-145\",\"XA-146\",\"XA-147\",\"XA-148\",\"XA-149\",\"XA-150\",\"XA-151\",\"XA-152\",\"XA-153\",\"XA-154\",\"XA-155\",\"XA-156\",\"XA-157\",\"XA-158\",\"XA-159\",\"XA-160\",\"XA-161\",\"XA-162\",\"XA-163\",\"XA-164\",\"XA-165\",\"XA-166\",\"XA-167\",\"XA-168\",\"XA-169\",\"XA-170\",\"XA-171\",\"XA-172\",\"XA-173\",\"XA-174\",\"XA-175\",\"XA-176\",\"XA-177\",\"XA-178\",\"XA-179\",\"XA-180\",\"XA-181\",\"XA-182\",\"XA-183\",\"XA-184\",\"XA-185\",\"XA-186\",\"XA-187\",\"XA-188\",\"XA-189\",\"XA-190\",\"XA-191\",\"XA-192\",\"XA-193\",\"XA-194\",\"XA-195\",\"XA-196\",\"XA-197\",\"XA-198\",\"XA-199\",\"XA-200\",\"XA-201\",\"XA-202\",\"XA-203\",\"XA-204\",\"XA-205\",\"XA-206\",\"XA-207\",\"XA-208\",\"XA-209\",\"XA-210\",\"XA-211\",\"XA-212\",\"XA-213\",\"XA-214\",\"XA-215\",\"XA-216\",\"XA-217\",\"XA-218\",\"XA-219\",\"XA-220\",\"XA-221\",\"XA-222\",\"XA-223\",\"XA-224\",\"XA-225\",\"XA-226\",\"XA-227\",\"XA-228\",\"XA-229\",\"XA-230\",\"XA-231\",\"XA-232\",\"XA-233\",\"XA-234\",\"XA-235\",\"XA-236\",\"XA-237\",\"XA-238\",\"XA-239\",\"XA-240\",\"XA-241\",\"XA-242\",\"XA-243\",\"XA-244\",\"XA-245\",\"XA-246\",\"XA-247\",\"XA-248\",\"XA-249\",\"XA-250\",\"XA-251\",\"XA-252\",\"XA-253\",\"XA-254\",\"XA-255\",\"XA-256\",\"XA-257\",\"XA-258\",\"XA-259\",\"XA-260\",\"XA-261\",\"XA-262\",\"XA-263\",\"XA-264\",\"XA-265\",\"XA-266\",\"XA-267\",\"XA-268\",\"XA-269\",\"XA-270\",\"XA-271\",\"XA-272\",\"XA-273\",\"XA-274\",\"XA-275\",\"XA-276\",\"XA-277\",\"XA-278\",\"XA-279\",\"XA-280\",\"XA-281\",\"XA-282\",\"XA-283\",\"XA-284\",\"XA-285\",\"XA-286\",\"XA-287\",\"XA-288\",\"XA-289\",\"XA-290\",\"XA-291\",\"XA-292\",\"XA-293\",\"XA-294\",\"XA-295\",\"XA-296\",\"XA-297\",\"XA-298\",\"XA-299\",\"XA-300\",\"XA-301\",\"XA-302\",\"XA-303\",\"XA-304\",\"XA-305\",\"XA-306\",\"XA-307\",\"XA-308\",\"XA-309\",\"XA-310\",\"XA-311\",\"XA-312\",\"XA-313\",\"XA-314\",\"XA-315\",\"XA-316\",\"XA-317\",\"XA-318\",\"XA-319\",\"XA-320\",\"XA-321\",\"XA-322\",\"XA-323\",\"XA-324\",\"XA-325\",\"XA-326\",\"XA-327\",\"XA-328\",\"XA-329\",\"XA-330\",\"XA-331\",\"XA-332\",\"XA-333\",\"XA-334\",\"XA-335\",\"XA-336\",\"XA-337\",\"XA-338\",\"XA-339\",\"XA-340\",\"XA-341\",\"XA-342\",\"XA-343\",\"XA-344\",\"XA-345\",\"XA-346\",\"XA-347\",\"XA-348\",\"XA-349\",\"XA-350\",\"XA-351\",\"XA-352\",\"XA-353\",\"XA-354\",\"XA-355\",\"XA-356\",\"XA-357\",\"XA-358\",\"XA-359\",\"XA-360\",\"XA-361\",\"XA-362\",\"XA-363\",\"XA-364\",\"XA-365\",\"XA-366\",\"XA-367\",\"XA-368\",\"XA-369\",\"XA-370\",\"XA-371\",\"XA-372\",\"XA-373\",\"XA-374\",\"XA-375\",\"XA-376\",\"XA-377\",\"XA-378\",\"XA-379\",\"XA-380\",\"XA-381\",\"XA-382\",\"XA-383\",\"XA-384\",\"XA-385\",\"XA-386\",\"XA-387\",\"XA-388\",\"XA-389\",\"XA-390\",\"XA-391\",\"XA-392\",\"XA-393\",\"XA-394\",\"XA-395\",\"XA-396\",\"XA-397\",\"XA-398\",\"XA-399\",\"XA-400\",\"XA-401\",\"XA-402\",\"XA-403\",\"XA-404\",\"XA-405\",\"XA-406\",\"XA-407\",\"XA-408\",\"XA-409\",\"XA-410\",\"XA-411\",\"XA-412\",\"XA-413\",\"XA-414\",\"XA-415\",\"XA-416\",\"XA-417\",\"XA-418\",\"XA-419\",\"XA-420\",\"XA-421\",\"XA-422\",\"XA-423\",\"XA-424\",\"XA-425\",\"XA-426\",\"XA-427\",\"XA-428\",\"XA-429\",\"XA-430\",\"XA-431\",\"XA-432\",\"XA-433\",\"XA-434\",\"XA-435\",\"XA-436\",\"XA-437\",\"XA-438\",\"XA-439\",\"XA-440\",\"XA-441\",\"XA-442\",\"XA-443\",\"XA-444\",\"XA-445\",\"XA-446\",\"XA-447\",\"XA-448\",\"XA-449\",\"XA-450\",\"XA-451\",\"XA-452\",\"XA-453\",\"XA-454\",\"XA-455\",\"XA-456\",\"XA-457\",\"XA-458\",\"XA-459\",\"XA-460\",\"XA-461\",\"XA-462\",\"XA-463\",\"XA-464\",\"XA-465\",\"XA-466\",\"XA-467\",\"XA-468\",\"XA-469\",\"XA-470\",\"XA-471\",\"XA-472\",\"XA-473\",\"XA-474\",\"XA-475\",\"XA-476\",\"XA-477\",\"XA-478\",\"XA-479\",\"XA-480\",\"XA-481\",\"XA-482\",\"XA-483\",\"XA-484\",\"XA-485\",\"XA-486\",\"XA-487\",\"XA-488\",\"XA-489\",\"XA-490\",\"XA-491\",\"XA-492\",\"XA-493\",\"XA-494\",\"XA-495\",\"XA-496\",\"XA-497\",\"XA-498\",\"XA-499\",\"XA-500\",\"XA-501\",\"XA-502\",\"XA-503\",\"XA-504\",\"XA-505\",\"XA-506\",\"XA-507\",\"XA-508\",\"XA-509\",\"XA-510\",\"XA-511\",\"XB-000\",\"XB-001\",\"XB-002\",\"XB-003\",\"XB-004\",\"XB-005\",\"XB-006\",\"XB-007\",\"XB-008\",\"XB-009\",\"XB-010\",\"XB-011\",\"XB-012\",\"XB-013\",\"XB-014\",\"XB-015\",\"XB-016\",\"XB-017\",\"XB-018\",\"XB-019\",\"XB-020\",\"XB-021\",\"XB-022\",\"XB-023\",\"XB-024\",\"XB-025\",\"XB-026\",\"XB-027\",\"XB-028\",\"XB-029\",\"XB-030\",\"XB-031\",\"XB-032\",\"XB-033\",\"XB-034\",\"XB-035\",\"XB-036\",\"XB-037\",\"XB-038\",\"XB-039\",\"XB-040\",\"XB-041\",\"XB-042\",\"XB-043\",\"XB-044\",\"XB-045\",\"XB-046\",\"XB-047\",\"XB-048\",\"XB-049\",\"XB-050\",\"XB-051\",\"XB-052\",\"XB-053\",\"XB-054\",\"XB-055\",\"XB-056\",\"XB-057\",\"XB-058\",\"XB-059\",\"XB-060\",\"XB-061\",\"XB-062\",\"XB-063\",\"XB-064\",\"XB-065\",\"XB-066\",\"XB-067\",\"XB-068\",\"XB-069\",\"XB-070\",\"XB-071\",\"XB-072\",\"XB-073\",\"XB-074\",\"XB-075\",\"XB-076\",\"XB-077\",\"XB-078\",\"XB-079\",\"XB-080\",\"XB-081\",\"XB-082\",\"XB-083\",\"XB-084\",\"XB-085\",\"XB-086\",\"XB-087\",\"XB-088\",\"XB-089\",\"XB-090\",\"XB-091\",\"XB-092\",\"XB-093\",\"XB-094\",\"XB-095\",\"XB-096\",\"XB-097\",\"XB-098\",\"XB-099\",\"XB-100\",\"XB-101\",\"XB-102\",\"XB-103\",\"XB-104\",\"XB-105\",\"XB-106\",\"XB-107\",\"XB-108\",\"XB-109\",\"XB-110\",\"XB-111\",\"XB-112\",\"XB-113\",\"XB-114\",\"XB-115\",\"XB-116\",\"XB-117\",\"XB-118\",\"XB-119\",\"XB-120\",\"XB-121\",\"XB-122\",\"XB-123\",\"XB-124\",\"XB-125\",\"XB-126\",\"XB-127\",\"XB-128\",\"XB-129\",\"XB-130\",\"XB-131\",\"XB-132\",\"XB-133\",\"XB-134\",\"XB-135\",\"XB-136\",\"XB-137\",\"XB-138\",\"XB-139\",\"XB-140\",\"XB-141\",\"XB-142\",\"XB-143\",\"XB-144\",\"XB-145\",\"XB-146\",\"XB-147\",\"XB-148\",\"XB-149\",\"XB-150\",\"XB-151\",\"XB-152\",\"XB-153\",\"XB-154\",\"XB-155\",\"XB-156\",\"XB-157\",\"XB-158\",\"XB-159\",\"XB-160\",\"XB-161\",\"XB-162\",\"XB-163\",\"XB-164\",\"XB-165\",\"XB-166\",\"XB-167\",\"XB-168\",\"XB-169\",\"XB-170\",\"XB-171\",\"XB-172\",\"XB-173\",\"XB-174\",\"XB-175\",\"XB-176\",\"XB-177\",\"XB-178\",\"XB-179\",\"XB-180\",\"XB-181\",\"XB-182\",\"XB-183\",\"XB-184\",\"XB-185\",\"XB-186\",\"XB-187\",\"XB-188\",\"XB-189\",\"XB-190\",\"XB-191\",\"XB-192\",\"XB-193\",\"XB-194\",\"XB-195\",\"XB-196\",\"XB-197\",\"XB-198\",\"XB-199\",\"XB-200\",\"XB-201\",\"XB-202\",\"XB-203\",\"XB-204\",\"XB-205\",\"XB-206\",\"XB-207\",\"XB-208\",\"XB-209\",\"XB-210\",\"XB-211\",\"XB-212\",\"XB-213\",\"XB-214\",\"XB-215\",\"XB-216\",\"XB-217\",\"XB-218\",\"XB-219\",\"XB-220\",\"XB-221\",\"XB-222\",\"XB-223\",\"XB-224\",\"XB-225\",\"XB-226\",\"XB-227\",\"XB-228\",\"XB-229\",\"XB-230\",\"XB-231\",\"XB-232\",\"XB-233\",\"XB-234\",\"XB-235\",\"XB-236\",\"XB-237\",\"XB-238\",\"XB-239\",\"XB-240\",\"XB-241\",\"XB-242\",\"XB-243\",\"XB-244\",\"XB-245\",\"XB-246\",\"XB-247\",\"XB-248\",\"XB-249\",\"XB-250\",\"XB-251\",\"XB-252\",\"XB-253\",\"XB-254\",\"XB-255\",\"XB-256\",\"XB-257\",\"XB-258\",\"XB-259\",\"XB-260\",\"XB-261\",\"XB-262\",\"XB-263\",\"XB-264\",\"XB-265\",\"XB-266\",\"XB-267\",\"XB-268\",\"XB-269\",\"XB-270\",\"XB-271\",\"XB-272\",\"XB-273\",\"XB-274\",\"XB-275\",\"XB-276\",\"XB-277\",\"XB-278\",\"XB-279\",\"XB-280\",\"XB-281\",\"XB-282\",\"XB-283\",\"XB-284\",\"XB-285\",\"XB-286\",\"XB-287\",\"XB-288\",\"XB-289\",\"XB-290\",\"XB-291\",\"XB-292\",\"XB-293\",\"XB-294\",\"XB-295\",\"XB-296\",\"XB-297\",\"XB-298\",\"XB-299\",\"XB-300\",\"XB-301\",\"XB-302\",\"XB-303\",\"XB-304\",\"XB-305\",\"XB-306\",\"XB-307\",\"XB-308\",\"XB-309\",\"XB-310\",\"XB-311\",\"XB-312\",\"XB-313\",\"XB-314\",\"XB-315\",\"XB-316\",\"XB-317\",\"XB-318\",\"XB-319\",\"XB-320\",\"XB-321\",\"XB-322\",\"XB-323\",\"XB-324\",\"XB-325\",\"XB-326\",\"XB-327\",\"XB-328\",\"XB-329\",\"XB-330\",\"XB-331\",\"XB-332\",\"XB-333\",\"XB-334\",\"XB-335\",\"XB-336\",\"XB-337\",\"XB-338\",\"XB-339\",\"XB-340\",\"XB-341\",\"XB-342\",\"XB-343\",\"XB-344\",\"XB-345\",\"XB-346\",\"XB-347\",\"XB-348\",\"XB-349\",\"XB-350\",\"XB-351\",\"XB-352\",\"XB-353\",\"XB-354\",\"XB-355\",\"XB-356\",\"XB-357\",\"XB-358\",\"XB-359\",\"XB-360\",\"XB-361\",\"XB-362\",\"XB-363\",\"XB-364\",\"XB-365\",\"XB-366\",\"XB-367\",\"XB-368\",\"XB-369\",\"XB-370\",\"XB-371\",\"XB-372\",\"XB-373\",\"XB-374\",\"XB-375\",\"XB-376\",\"XB-377\",\"XB-378\",\"XB-379\",\"XB-380\",\"XB-381\",\"XB-382\",\"XB-383\",\"XB-384\",\"XB-385\",\"XB-386\",\"XB-387\",\"XB-388\",\"XB-389\",\"XB-390\",\"XB-391\",\"XB-392\",\"XB-393\",\"XB-394\",\"XB-395\",\"XB-396\",\"XB-397\",\"XB-398\",\"XB-399\",\"XB-400\",\"XB-401\",\"XB-402\",\"XB-403\",\"XB-404\",\"XB-405\",\"XB-406\",\"XB-407\",\"XB-408\",\"XB-409\",\"XB-410\",\"XB-411\",\"XB-412\",\"XB-413\",\"XB-414\",\"XB-415\",\"XB-416\",\"XB-417\",\"XB-418\",\"XB-419\",\"XB-420\",\"XB-421\",\"XB-422\",\"XB-423\",\"XB-424\",\"XB-425\",\"XB-426\",\"XB-427\",\"XB-428\",\"XB-429\",\"XB-430\",\"XB-431\",\"XB-432\",\"XB-433\",\"XB-434\",\"XB-435\",\"XB-436\",\"XB-437\",\"XB-438\",\"XB-439\",\"XB-440\",\"XB-441\",\"XB-442\",\"XB-443\",\"XB-444\",\"XB-445\",\"XB-446\",\"XB-447\",\"XB-448\",\"XB-449\",\"XB-450\",\"XB-451\",\"XB-452\",\"XB-453\",\"XB-454\",\"XB-455\",\"XB-456\",\"XB-457\",\"XB-458\",\"XB-459\",\"XB-460\",\"XB-461\",\"XB-462\",\"XB-463\",\"XB-464\",\"XB-465\",\"XB-466\",\"XB-467\",\"XB-468\",\"XB-469\",\"XB-470\",\"XB-471\",\"XB-472\",\"XB-473\",\"XB-474\",\"XB-475\",\"XB-476\",\"XB-477\",\"XB-478\",\"XB-479\",\"XB-480\",\"XB-481\",\"XB-482\",\"XB-483\",\"XB-484\",\"XB-485\",\"XB-486\",\"XB-487\",\"XB-488\",\"XB-489\",\"XB-490\",\"XB-491\",\"XB-492\",\"XB-493\",\"XB-494\",\"XB-495\",\"XB-496\",\"XB-497\",\"XB-498\",\"XB-499\",\"XB-500\",\"XB-501\",\"XB-502\",\"XB-503\",\"XB-504\",\"XB-505\",\"XB-506\",\"XB-507\",\"XB-508\",\"XB-509\",\"XB-510\",\"XB-511\",\"XC-000\",\"XC-001\",\"XC-002\",\"XC-003\",\"XC-004\",\"XC-005\",\"XC-006\",\"XC-007\",\"XC-008\",\"XC-009\",\"XC-010\",\"XC-011\",\"XC-012\",\"XC-013\",\"XC-014\",\"XC-015\",\"XC-016\",\"XC-017\",\"XC-018\",\"XC-019\",\"XC-020\",\"XC-021\",\"XC-022\",\"XC-023\",\"XC-024\",\"XC-025\",\"XC-026\",\"XC-027\",\"XC-028\",\"XC-029\",\"XC-030\",\"XC-031\",\"XC-032\",\"XC-033\",\"XC-034\",\"XC-035\",\"XC-036\",\"XC-037\",\"XC-038\",\"XC-039\",\"XC-040\",\"XC-041\",\"XC-042\",\"XC-043\",\"XC-044\",\"XC-045\",\"XC-046\",\"XC-047\",\"XC-048\",\"XC-049\",\"XC-050\",\"XC-051\",\"XC-052\",\"XC-053\",\"XC-054\",\"XC-055\",\"XC-056\",\"XC-057\",\"XC-058\",\"XC-059\",\"XC-060\",\"XC-061\",\"XC-062\",\"XC-063\",\"XC-064\",\"XC-065\",\"XC-066\",\"XC-067\",\"XC-068\",\"XC-069\",\"XC-070\",\"XC-071\",\"XC-072\",\"XC-073\",\"XC-074\",\"XC-075\",\"XC-076\",\"XC-077\",\"XC-078\",\"XC-079\",\"XC-080\",\"XC-081\",\"XC-082\",\"XC-083\",\"XC-084\",\"XC-085\",\"XC-086\",\"XC-087\",\"XC-088\",\"XC-089\",\"XC-090\",\"XC-091\",\"XC-092\",\"XC-093\",\"XC-094\",\"XC-095\",\"XC-096\",\"XC-097\",\"XC-098\",\"XC-099\",\"XC-100\",\"XC-101\",\"XC-102\",\"XC-103\",\"XC-104\",\"XC-105\",\"XC-106\",\"XC-107\",\"XC-108\",\"XC-109\",\"XC-110\",\"XC-111\",\"XC-112\",\"XC-113\",\"XC-114\",\"XC-115\",\"XC-116\",\"XC-117\",\"XC-118\",\"XC-119\",\"XC-120\",\"XC-121\",\"XC-122\",\"XC-123\",\"XC-124\",\"XC-125\",\"XC-126\",\"XC-127\",\"XC-128\",\"XC-129\",\"XC-130\",\"XC-131\",\"XC-132\",\"XC-133\",\"XC-134\",\"XC-135\",\"XC-136\",\"XC-137\",\"XC-138\",\"XC-139\",\"XC-140\",\"XC-141\",\"XC-142\",\"XC-143\",\"XC-144\",\"XC-145\",\"XC-146\",\"XC-147\",\"XC-148\",\"XC-149\",\"XC-150\",\"XC-151\",\"XC-152\",\"XC-153\",\"XC-154\",\"XC-155\",\"XC-156\",\"XC-157\",\"XC-158\",\"XC-159\",\"XC-160\",\"XC-161\",\"XC-162\",\"XC-163\",\"XC-164\",\"XC-165\",\"XC-166\",\"XC-167\",\"XC-168\",\"XC-169\",\"XC-170\",\"XC-171\",\"XC-172\",\"XC-173\",\"XC-174\",\"XC-175\",\"XC-176\",\"XC-177\",\"XC-178\",\"XC-179\",\"XC-180\",\"XC-181\",\"XC-182\",\"XC-183\",\"XC-184\",\"XC-185\",\"XC-186\",\"XC-187\",\"XC-188\",\"XC-189\",\"XC-190\",\"XC-191\",\"XC-192\",\"XC-193\",\"XC-194\",\"XC-195\",\"XC-196\",\"XC-197\",\"XC-198\",\"XC-199\",\"XC-200\",\"XC-201\",\"XC-202\",\"XC-203\",\"XC-204\",\"XC-205\",\"XC-206\",\"XC-207\",\"XC-208\",\"XC-209\",\"XC-210\",\"XC-211\",\"XC-212\",\"XC-213\",\"XC-214\",\"XC-215\",\"XC-216\",\"XC-217\",\"XC-218\",\"XC-219\",\"XC-220\",\"XC-221\",\"XC-222\",\"XC-223\",\"XC-224\",\"XC-225\",\"XC-226\",\"XC-227\",\"XC-228\",\"XC-229\",\"XC-230\",\"XC-231\",\"XC-232\",\"XC-233\",\"XC-234\",\"XC-235\",\"XC-236\",\"XC-237\",\"XC-238\",\"XC-239\",\"XC-240\",\"XC-241\",\"XC-242\",\"XC-243\",\"XC-244\",\"XC-245\",\"XC-246\",\"XC-247\",\"XC-248\",\"XC-249\",\"XC-250\",\"XC-251\",\"XC-252\",\"XC-253\",\"XC-254\",\"XC-255\",\"XC-256\",\"XC-257\",\"XC-258\",\"XC-259\",\"XC-260\",\"XC-261\",\"XC-262\",\"XC-263\",\"XC-264\",\"XC-265\",\"XC-266\",\"XC-267\",\"XC-268\",\"XC-269\",\"XC-270\",\"XC-271\",\"XC-272\",\"XC-273\",\"XC-274\",\"XC-275\",\"XC-276\",\"XC-277\",\"XC-278\",\"XC-279\",\"XC-280\",\"XC-281\",\"XC-282\",\"XC-283\",\"XC-284\",\"XC-285\",\"XC-286\",\"XC-287\",\"XC-288\",\"XC-289\",\"XC-290\",\"XC-291\",\"XC-292\",\"XC-293\",\"XC-294\",\"XC-295\",\"XC-296\",\"XC-297\",\"XC-298\",\"XC-299\",\"XC-300\",\"XC-301\",\"XC-302\",\"XC-303\",\"XC-304\",\"XC-305\",\"XC-306\",\"XC-307\",\"XC-308\",\"XC-309\",\"XC-310\",\"XC-311\",\"XC-312\",\"XC-313\",\"XC-314\",\"XC-315\",\"XC-316\",\"XC-317\",\"XC-318\",\"XC-319\",\"XC-320\",\"XC-321\",\"XC-322\",\"XC-323\",\"XC-324\",\"XC-325\",\"XC-326\",\"XC-327\",\"XC-328\",\"XC-329\",\"XC-330\",\"XC-331\",\"XC-332\",\"XC-333\",\"XC-334\",\"XC-335\",\"XC-336\",\"XC-337\",\"XC-338\",\"XC-339\",\"XC-340\",\"XC-341\",\"XC-342\",\"XC-343\",\"XC-344\",\"XC-345\",\"XC-346\",\"XC-347\",\"XC-348\",\"XC-349\",\"XC-350\",\"XC-351\",\"XC-352\",\"XC-353\",\"XC-354\",\"XC-355\",\"XC-356\",\"XC-357\",\"XC-358\",\"XC-359\",\"XC-360\",\"XC-361\",\"XC-362\",\"XC-363\",\"XC-364\",\"XC-365\",\"XC-366\",\"XC-367\",\"XC-368\",\"XC-369\",\"XC-370\",\"XC-371\",\"XC-372\",\"XC-373\",\"XC-374\",\"XC-375\",\"XC-376\",\"XC-377\",\"XC-378\",\"XC-379\",\"XC-380\",\"XC-381\",\"XC-382\",\"XC-383\",\"XC-384\",\"XC-385\",\"XC-386\",\"XC-387\",\"XC-388\",\"XC-389\",\"XC-390\",\"XC-391\",\"XC-392\",\"XC-393\",\"XC-394\",\"XC-395\",\"XC-396\",\"XC-397\",\"XC-398\",\"XC-399\",\"XC-400\",\"XC-401\",\"XC-402\",\"XC-403\",\"XC-404\",\"XC-405\",\"XC-406\",\"XC-407\",\"XC-408\",\"XC-409\",\"XC-410\",\"XC-411\",\"XC-412\",\"XC-413\",\"XC-414\",\"XC-415\",\"XC-416\",\"XC-417\",\"XC-418\",\"XC-419\",\"XC-420\",\"XC-421\",\"XC-422\",\"XC-423\",\"XC-424\",\"XC-425\",\"XC-426\",\"XC-427\",\"XC-428\",\"XC-429\",\"XC-430\",\"XC-431\",\"XC-432\",\"XC-433\",\"XC-434\",\"XC-435\",\"XC-436\",\"XC-437\",\"XC-438\",\"XC-439\",\"XC-440\",\"XC-441\",\"XC-442\",\"XC-443\",\"XC-444\",\"XC-445\",\"XC-446\",\"XC-447\",\"XC-448\",\"XC-449\",\"XC-450\",\"XC-451\",\"XC-452\",\"XC-453\",\"XC-454\",\"XC-455\",\"XC-456\",\"XC-457\",\"XC-458\",\"XC-459\",\"XC-460\",\"XC-461\",\"XC-462\",\"XC-463\",\"XC-464\",\"XC-465\",\"XC-466\",\"XC-467\",\"XC-468\",\"XC-469\",\"XC-470\",\"XC-471\",\"XC-472\",\"XC-473\",\"XC-474\",\"XC-475\",\"XC-476\",\"XC-477\",\"XC-478\",\"XC-479\",\"XC-480\",\"XC-481\",\"XC-482\",\"XC-483\",\"XC-484\",\"XC-485\",\"XC-486\",\"XC-487\",\"XC-488\",\"XC-489\",\"XC-490\",\"XC-491\",\"XC-492\",\"XC-493\",\"XC-494\",\"XC-495\",\"XC-496\",\"XC-497\",\"XC-498\",\"XC-499\",\"XC-500\",\"XC-501\",\"XC-502\",\"XC-503\",\"XC-504\",\"XC-505\",\"XC-506\",\"XC-507\",\"XC-508\",\"XC-509\",\"XC-510\",\"XC-511\",\"XD-000\",\"XD-001\",\"XD-002\",\"XD-003\",\"XD-004\",\"XD-005\",\"XD-006\",\"XD-007\",\"XD-008\",\"XD-009\",\"XD-010\",\"XD-011\",\"XD-012\",\"XD-013\",\"XD-014\",\"XD-015\",\"XD-016\",\"XD-017\",\"XD-018\",\"XD-019\",\"XD-020\",\"XD-021\",\"XD-022\",\"XD-023\",\"XD-024\",\"XD-025\",\"XD-026\",\"XD-027\",\"XD-028\",\"XD-029\",\"XD-030\",\"XD-031\",\"XD-032\",\"XD-033\",\"XD-034\",\"XD-035\",\"XD-036\",\"XD-037\",\"XD-038\",\"XD-039\",\"XD-040\",\"XD-041\",\"XD-042\",\"XD-043\",\"XD-044\",\"XD-045\",\"XD-046\",\"XD-047\",\"XD-048\",\"XD-049\",\"XD-050\",\"XD-051\",\"XD-052\",\"XD-053\",\"XD-054\",\"XD-055\",\"XD-056\",\"XD-057\",\"XD-058\",\"XD-059\",\"XD-060\",\"XD-061\",\"XD-062\",\"XD-063\",\"XD-064\",\"XD-065\",\"XD-066\",\"XD-067\",\"XD-068\",\"XD-069\",\"XD-070\",\"XD-071\",\"XD-072\",\"XD-073\",\"XD-074\",\"XD-075\",\"XD-076\",\"XD-077\",\"XD-078\",\"XD-079\",\"XD-080\",\"XD-081\",\"XD-082\",\"XD-083\",\"XD-084\",\"XD-085\",\"XD-086\",\"XD-087\",\"XD-088\",\"XD-089\",\"XD-090\",\"XD-091\",\"XD-092\",\"XD-093\",\"XD-094\",\"XD-095\",\"XD-096\",\"XD-097\",\"XD-098\",\"XD-099\",\"XD-100\",\"XD-101\",\"XD-102\",\"XD-103\",\"XD-104\",\"XD-105\",\"XD-106\",\"XD-107\",\"XD-108\",\"XD-109\",\"XD-110\",\"XD-111\",\"XD-112\",\"XD-113\",\"XD-114\",\"XD-115\",\"XD-116\",\"XD-117\",\"XD-118\",\"XD-119\",\"XD-120\",\"XD-121\",\"XD-122\",\"XD-123\",\"XD-124\",\"XD-125\",\"XD-126\",\"XD-127\",\"XD-128\",\"XD-129\",\"XD-130\",\"XD-131\",\"XD-132\",\"XD-133\",\"XD-134\",\"XD-135\",\"XD-136\",\"XD-137\",\"XD-138\",\"XD-139\",\"XD-140\",\"XD-141\",\"XD-142\",\"XD-143\",\"XD-144\",\"XD-145\",\"XD-146\",\"XD-147\",\"XD-148\",\"XD-149\",\"XD-150\",\"XD-151\",\"XD-152\",\"XD-153\",\"XD-154\",\"XD-155\",\"XD-156\",\"XD-157\",\"XD-158\",\"XD-159\",\"XD-160\",\"XD-161\",\"XD-162\",\"XD-163\",\"XD-164\",\"XD-165\",\"XD-166\",\"XD-167\",\"XD-168\",\"XD-169\",\"XD-170\",\"XD-171\",\"XD-172\",\"XD-173\",\"XD-174\",\"XD-175\",\"XD-176\",\"XD-177\",\"XD-178\",\"XD-179\",\"XD-180\",\"XD-181\",\"XD-182\",\"XD-183\",\"XD-184\",\"XD-185\",\"XD-186\",\"XD-187\",\"XD-188\",\"XD-189\",\"XD-190\",\"XD-191\",\"XD-192\",\"XD-193\",\"XD-194\",\"XD-195\",\"XD-196\",\"XD-197\",\"XD-198\",\"XD-199\",\"XD-200\",\"XD-201\",\"XD-202\",\"XD-203\",\"XD-204\",\"XD-205\",\"XD-206\",\"XD-207\",\"XD-208\",\"XD-209\",\"XD-210\",\"XD-211\",\"XD-212\",\"XD-213\",\"XD-214\",\"XD-215\",\"XD-216\",\"XD-217\",\"XD-218\",\"XD-219\",\"XD-220\",\"XD-221\",\"XD-222\",\"XD-223\",\"XD-224\",\"XD-225\",\"XD-226\",\"XD-227\",\"XD-228\",\"XD-229\",\"XD-230\",\"XD-231\",\"XD-232\",\"XD-233\",\"XD-234\",\"XD-235\",\"XD-236\",\"XD-237\",\"XD-238\",\"XD-239\",\"XD-240\",\"XD-241\",\"XD-242\",\"XD-243\",\"XD-244\",\"XD-245\",\"XD-246\",\"XD-247\",\"XD-248\",\"XD-249\",\"XD-250\",\"XD-251\",\"XD-252\",\"XD-253\",\"XD-254\",\"XD-255\",\"XD-256\",\"XD-257\",\"XD-258\",\"XD-259\",\"XD-260\",\"XD-261\",\"XD-262\",\"XD-263\",\"XD-264\",\"XD-265\",\"XD-266\",\"XD-267\",\"XD-268\",\"XD-269\",\"XD-270\",\"XD-271\",\"XD-272\",\"XD-273\",\"XD-274\",\"XD-275\",\"XD-276\",\"XD-277\",\"XD-278\",\"XD-279\",\"XD-280\",\"XD-281\",\"XD-282\",\"XD-283\",\"XD-284\",\"XD-285\",\"XD-286\",\"XD-287\",\"XD-288\",\"XD-289\",\"XD-290\",\"XD-291\",\"XD-292\",\"XD-293\",\"XD-294\",\"XD-295\",\"XD-296\",\"XD-297\",\"XD-298\",\"XD-299\",\"XD-300\",\"XD-301\",\"XD-302\",\"XD-303\",\"XD-304\",\"XD-305\",\"XD-306\",\"XD-307\",\"XD-308\",\"XD-309\",\"XD-310\",\"XD-311\",\"XD-312\",\"XD-313\",\"XD-314\",\"XD-315\",\"XD-316\",\"XD-317\",\"XD-318\",\"XD-319\",\"XD-320\",\"XD-321\",\"XD-322\",\"XD-323\",\"XD-324\",\"XD-325\",\"XD-326\",\"XD-327\",\"XD-328\",\"XD-329\",\"XD-330\",\"XD-331\",\"XD-332\",\"XD-333\",\"XD-334\",\"XD-335\",\"XD-336\",\"XD-337\",\"XD-338\",\"XD-339\",\"XD-340\",\"XD-341\",\"XD-342\",\"XD-343\",\"XD-344\",\"XD-345\",\"XD-346\",\"XD-347\",\"XD-348\",\"XD-349\",\"XD-350\",\"XD-351\",\"XD-352\",\"XD-353\",\"XD-354\",\"XD-355\",\"XD-356\",\"XD-357\",\"XD-358\",\"XD-359\",\"XD-360\",\"XD-361\",\"XD-362\",\"XD-363\",\"XD-364\",\"XD-365\",\"XD-366\",\"XD-367\",\"XD-368\",\"XD-369\",\"XD-370\",\"XD-371\",\"XD-372\",\"XD-373\",\"XD-374\",\"XD-375\",\"XD-376\",\"XD-377\",\"XD-378\",\"XD-379\",\"XD-380\",\"XD-381\",\"XD-382\",\"XD-383\",\"XD-384\",\"XD-385\",\"XD-386\",\"XD-387\",\"XD-388\",\"XD-389\",\"XD-390\",\"XD-391\",\"XD-392\",\"XD-393\",\"XD-394\",\"XD-395\",\"XD-396\",\"XD-397\",\"XD-398\",\"XD-399\",\"XD-400\",\"XD-401\",\"XD-402\",\"XD-403\",\"XD-404\",\"XD-405\",\"XD-406\",\"XD-407\",\"XD-408\",\"XD-409\",\"XD-410\",\"XD-411\",\"XD-412\",\"XD-413\",\"XD-414\",\"XD-415\",\"XD-416\",\"XD-417\",\"XD-418\",\"XD-419\",\"XD-420\",\"XD-421\",\"XD-422\",\"XD-423\",\"XD-424\",\"XD-425\",\"XD-426\",\"XD-427\",\"XD-428\",\"XD-429\",\"XD-430\",\"XD-431\",\"XD-432\",\"XD-433\",\"XD-434\",\"XD-435\",\"XD-436\",\"XD-437\",\"XD-438\",\"XD-439\",\"XD-440\",\"XD-441\",\"XD-442\",\"XD-443\",\"XD-444\",\"XD-445\",\"XD-446\",\"XD-447\",\"XD-448\",\"XD-449\",\"XD-450\",\"XD-451\",\"XD-452\",\"XD-453\",\"XD-454\",\"XD-455\",\"XD-456\",\"XD-457\",\"XD-458\",\"XD-459\",\"XD-460\",\"XD-461\",\"XD-462\",\"XD-463\",\"XD-464\",\"XD-465\",\"XD-466\",\"XD-467\",\"XD-468\",\"XD-469\",\"XD-470\",\"XD-471\",\"XD-472\",\"XD-473\",\"XD-474\",\"XD-475\",\"XD-476\",\"XD-477\",\"XD-478\",\"XD-479\",\"XD-480\",\"XD-481\",\"XD-482\",\"XD-483\",\"XD-484\",\"XD-485\",\"XD-486\",\"XD-487\",\"XD-488\",\"XD-489\",\"XD-490\",\"XD-491\",\"XD-492\",\"XD-493\",\"XD-494\",\"XD-495\",\"XD-496\",\"XD-497\",\"XD-498\",\"XD-499\",\"XD-500\",\"XD-501\",\"XD-502\",\"XD-503\",\"XD-504\",\"XD-505\",\"XD-506\",\"XD-507\",\"XD-508\",\"XD-509\",\"XD-510\",\"XD-511\",\"XE-000\",\"XE-001\",\"XE-002\",\"XE-003\",\"XE-004\",\"XE-005\",\"XE-006\",\"XE-007\",\"XE-008\",\"XE-009\",\"XE-010\",\"XE-011\",\"XE-012\",\"XE-013\",\"XE-014\",\"XE-015\",\"XE-016\",\"XE-017\",\"XE-018\",\"XE-019\",\"XE-020\",\"XE-021\",\"XE-022\",\"XE-023\",\"XE-024\",\"XE-025\",\"XE-026\",\"XE-027\",\"XE-028\",\"XE-029\",\"XE-030\",\"XE-031\",\"XE-032\",\"XE-033\",\"XE-034\",\"XE-035\",\"XE-036\",\"XE-037\",\"XE-038\",\"XE-039\",\"XE-040\",\"XE-041\",\"XE-042\",\"XE-043\",\"XE-044\",\"XE-045\",\"XE-046\",\"XE-047\",\"XE-048\",\"XE-049\",\"XE-050\",\"XE-051\",\"XE-052\",\"XE-053\",\"XE-054\",\"XE-055\",\"XE-056\",\"XE-057\",\"XE-058\",\"XE-059\",\"XE-060\",\"XE-061\",\"XE-062\",\"XE-063\",\"XE-064\",\"XE-065\",\"XE-066\",\"XE-067\",\"XE-068\",\"XE-069\",\"XE-070\",\"XE-071\",\"XE-072\",\"XE-073\",\"XE-074\",\"XE-075\",\"XE-076\",\"XE-077\",\"XE-078\",\"XE-079\",\"XE-080\",\"XE-081\",\"XE-082\",\"XE-083\",\"XE-084\",\"XE-085\",\"XE-086\",\"XE-087\",\"XE-088\",\"XE-089\",\"XE-090\",\"XE-091\",\"XE-092\",\"XE-093\",\"XE-094\",\"XE-095\",\"XE-096\",\"XE-097\",\"XE-098\",\"XE-099\",\"XE-100\",\"XE-101\",\"XE-102\",\"XE-103\",\"XE-104\",\"XE-105\",\"XE-106\",\"XE-107\",\"XE-108\",\"XE-109\",\"XE-110\",\"XE-111\",\"XE-112\",\"XE-113\",\"XE-114\",\"XE-115\",\"XE-116\",\"XE-117\",\"XE-118\",\"XE-119\",\"XE-120\",\"XE-121\",\"XE-122\",\"XE-123\",\"XE-124\",\"XE-125\",\"XE-126\",\"XE-127\",\"XE-128\",\"XE-129\",\"XE-130\",\"XE-131\",\"XE-132\",\"XE-133\",\"XE-134\",\"XE-135\",\"XE-136\",\"XE-137\",\"XE-138\",\"XE-139\",\"XE-140\",\"XE-141\",\"XE-142\",\"XE-143\",\"XE-144\",\"XE-145\",\"XE-146\",\"XE-147\",\"XE-148\",\"XE-149\",\"XE-150\",\"XE-151\",\"XE-152\",\"XE-153\",\"XE-154\",\"XE-155\",\"XE-156\",\"XE-157\",\"XE-158\",\"XE-159\",\"XE-160\",\"XE-161\",\"XE-162\",\"XE-163\",\"XE-164\",\"XE-165\",\"XE-166\",\"XE-167\",\"XE-168\",\"XE-169\",\"XE-170\",\"XE-171\",\"XE-172\",\"XE-173\",\"XE-174\",\"XE-175\",\"XE-176\",\"XE-177\",\"XE-178\",\"XE-179\",\"XE-180\",\"XE-181\",\"XE-182\",\"XE-183\",\"XE-184\",\"XE-185\",\"XE-186\",\"XE-187\",\"XE-188\",\"XE-189\",\"XE-190\",\"XE-191\",\"XE-192\",\"XE-193\",\"XE-194\",\"XE-195\",\"XE-196\",\"XE-197\",\"XE-198\",\"XE-199\",\"XE-200\",\"XE-201\",\"XE-202\",\"XE-203\",\"XE-204\",\"XE-205\",\"XE-206\",\"XE-207\",\"XE-208\",\"XE-209\",\"XE-210\",\"XE-211\",\"XE-212\",\"XE-213\",\"XE-214\",\"XE-215\",\"XE-216\",\"XE-217\",\"XE-218\",\"XE-219\",\"XE-220\",\"XE-221\",\"XE-222\",\"XE-223\",\"XE-224\",\"XE-225\",\"XE-226\",\"XE-227\",\"XE-228\",\"XE-229\",\"XE-230\",\"XE-231\",\"XE-232\",\"XE-233\",\"XE-234\",\"XE-235\",\"XE-236\",\"XE-237\",\"XE-238\",\"XE-239\",\"XE-240\",\"XE-241\",\"XE-242\",\"XE-243\",\"XE-244\",\"XE-245\",\"XE-246\",\"XE-247\",\"XE-248\",\"XE-249\",\"XE-250\",\"XE-251\",\"XE-252\",\"XE-253\",\"XE-254\",\"XE-255\",\"XE-256\",\"XE-257\",\"XE-258\",\"XE-259\",\"XE-260\",\"XE-261\",\"XE-262\",\"XE-263\",\"XE-264\",\"XE-265\",\"XE-266\",\"XE-267\",\"XE-268\",\"XE-269\",\"XE-270\",\"XE-271\",\"XE-272\",\"XE-273\",\"XE-274\",\"XE-275\",\"XE-276\",\"XE-277\",\"XE-278\",\"XE-279\",\"XE-280\",\"XE-281\",\"XE-282\",\"XE-283\",\"XE-284\",\"XE-285\",\"XE-286\",\"XE-287\",\"XE-288\",\"XE-289\",\"XE-290\",\"XE-291\",\"XE-292\",\"XE-293\",\"XE-294\",\"XE-295\",\"XE-296\",\"XE-297\",\"XE-298\",\"XE-299\",\"XE-300\",\"XE-301\",\"XE-302\",\"XE-303\",\"XE-304\",\"XE-305\",\"XE-306\",\"XE-307\",\"XE-308\",\"XE-309\",\"XE-310\",\"XE-311\",\"XE-312\",\"XE-313\",\"XE-314\",\"XE-315\",\"XE-316\",\"XE-317\",\"XE-318\",\"XE-319\",\"XE-320\",\"XE-321\",\"XE-322\",\"XE-323\",\"XE-324\",\"XE-325\",\"XE-326\",\"XE-327\",\"XE-328\",\"XE-329\",\"XE-330\",\"XE-331\",\"XE-332\",\"XE-333\",\"XE-334\",\"XE-335\",\"XE-336\",\"XE-337\",\"XE-338\",\"XE-339\",\"XE-340\",\"XE-341\",\"XE-342\",\"XE-343\",\"XE-344\",\"XE-345\",\"XE-346\",\"XE-347\",\"XE-348\",\"XE-349\",\"XE-350\",\"XE-351\",\"XE-352\",\"XE-353\",\"XE-354\",\"XE-355\",\"XE-356\",\"XE-357\",\"XE-358\",\"XE-359\",\"XE-360\",\"XE-361\",\"XE-362\",\"XE-363\",\"XE-364\",\"XE-365\",\"XE-366\",\"XE-367\",\"XE-368\",\"XE-369\",\"XE-370\",\"XE-371\",\"XE-372\",\"XE-373\",\"XE-374\",\"XE-375\",\"XE-376\",\"XE-377\",\"XE-378\",\"XE-379\",\"XE-380\",\"XE-381\",\"XE-382\",\"XE-383\",\"XE-384\",\"XE-385\",\"XE-386\",\"XE-387\",\"XE-388\",\"XE-389\",\"XE-390\",\"XE-391\",\"XE-392\",\"XE-393\",\"XE-394\",\"XE-395\",\"XE-396\",\"XE-397\",\"XE-398\",\"XE-399\",\"XE-400\",\"XE-401\",\"XE-402\",\"XE-403\",\"XE-404\",\"XE-405\",\"XE-406\",\"XE-407\",\"XE-408\",\"XE-409\",\"XE-410\",\"XE-411\",\"XE-412\",\"XE-413\",\"XE-414\",\"XE-415\",\"XE-416\",\"XE-417\",\"XE-418\",\"XE-419\",\"XE-420\",\"XE-421\",\"XE-422\",\"XE-423\",\"XE-424\",\"XE-425\",\"XE-426\",\"XE-427\",\"XE-428\",\"XE-429\",\"XE-430\",\"XE-431\",\"XE-432\",\"XE-433\",\"XE-434\",\"XE-435\",\"XE-436\",\"XE-437\",\"XE-438\",\"XE-439\",\"XE-440\",\"XE-441\",\"XE-442\",\"XE-443\",\"XE-444\",\"XE-445\",\"XE-446\",\"XE-447\",\"XE-448\",\"XE-449\",\"XE-450\",\"XE-451\",\"XE-452\",\"XE-453\",\"XE-454\",\"XE-455\",\"XE-456\",\"XE-457\",\"XE-458\",\"XE-459\",\"XE-460\",\"XE-461\",\"XE-462\",\"XE-463\",\"XE-464\",\"XE-465\",\"XE-466\",\"XE-467\",\"XE-468\",\"XE-469\",\"XE-470\",\"XE-471\",\"XE-472\",\"XE-473\",\"XE-474\",\"XE-475\",\"XE-476\",\"XE-477\",\"XE-478\",\"XE-479\",\"XE-480\",\"XE-481\",\"XE-482\",\"XE-483\",\"XE-484\",\"XE-485\",\"XE-486\",\"XE-487\",\"XE-488\",\"XE-489\",\"XE-490\",\"XE-491\",\"XE-492\",\"XE-493\",\"XE-494\",\"XE-495\",\"XE-496\",\"XE-497\",\"XE-498\",\"XE-499\",\"XE-500\",\"XE-501\",\"XE-502\",\"XE-503\",\"XE-504\",\"XE-505\",\"XE-506\",\"XE-507\",\"XE-508\",\"XE-509\",\"XE-510\",\"XE-511\",\"XF-000\",\"XF-001\",\"XF-002\",\"XF-003\",\"XF-004\",\"XF-005\",\"XF-006\",\"XF-007\",\"XF-008\",\"XF-009\",\"XF-010\",\"XF-011\",\"XF-012\",\"XF-013\",\"XF-014\",\"XF-015\",\"XF-016\",\"XF-017\",\"XF-018\",\"XF-019\",\"XF-020\",\"XF-021\",\"XF-022\",\"XF-023\",\"XF-024\",\"XF-025\",\"XF-026\",\"XF-027\",\"XF-028\",\"XF-029\",\"XF-030\",\"XF-031\",\"XF-032\",\"XF-033\",\"XF-034\",\"XF-035\",\"XF-036\",\"XF-037\",\"XF-038\",\"XF-039\",\"XF-040\",\"XF-041\",\"XF-042\",\"XF-043\",\"XF-044\",\"XF-045\",\"XF-046\",\"XF-047\",\"XF-048\",\"XF-049\",\"XF-050\",\"XF-051\",\"XF-052\",\"XF-053\",\"XF-054\",\"XF-055\",\"XF-056\",\"XF-057\",\"XF-058\",\"XF-059\",\"XF-060\",\"XF-061\",\"XF-062\",\"XF-063\",\"XF-064\",\"XF-065\",\"XF-066\",\"XF-067\",\"XF-068\",\"XF-069\",\"XF-070\",\"XF-071\",\"XF-072\",\"XF-073\",\"XF-074\",\"XF-075\",\"XF-076\",\"XF-077\",\"XF-078\",\"XF-079\",\"XF-080\",\"XF-081\",\"XF-082\",\"XF-083\",\"XF-084\",\"XF-085\",\"XF-086\",\"XF-087\",\"XF-088\",\"XF-089\",\"XF-090\",\"XF-091\",\"XF-092\",\"XF-093\",\"XF-094\",\"XF-095\",\"XF-096\",\"XF-097\",\"XF-098\",\"XF-099\",\"XF-100\",\"XF-101\",\"XF-102\",\"XF-103\",\"XF-104\",\"XF-105\",\"XF-106\",\"XF-107\",\"XF-108\",\"XF-109\",\"XF-110\",\"XF-111\",\"XF-112\",\"XF-113\",\"XF-114\",\"XF-115\",\"XF-116\",\"XF-117\",\"XF-118\",\"XF-119\",\"XF-120\",\"XF-121\",\"XF-122\",\"XF-123\",\"XF-124\",\"XF-125\",\"XF-126\",\"XF-127\",\"XF-128\",\"XF-129\",\"XF-130\",\"XF-131\",\"XF-132\",\"XF-133\",\"XF-134\",\"XF-135\",\"XF-136\",\"XF-137\",\"XF-138\",\"XF-139\",\"XF-140\",\"XF-141\",\"XF-142\",\"XF-143\",\"XF-144\",\"XF-145\",\"XF-146\",\"XF-147\",\"XF-148\",\"XF-149\",\"XF-150\",\"XF-151\",\"XF-152\",\"XF-153\",\"XF-154\",\"XF-155\",\"XF-156\",\"XF-157\",\"XF-158\",\"XF-159\",\"XF-160\",\"XF-161\",\"XF-162\",\"XF-163\",\"XF-164\",\"XF-165\",\"XF-166\",\"XF-167\",\"XF-168\",\"XF-169\",\"XF-170\",\"XF-171\",\"XF-172\",\"XF-173\",\"XF-174\",\"XF-175\",\"XF-176\",\"XF-177\",\"XF-178\",\"XF-179\",\"XF-180\",\"XF-181\",\"XF-182\",\"XF-183\",\"XF-184\",\"XF-185\",\"XF-186\",\"XF-187\",\"XF-188\",\"XF-189\",\"XF-190\",\"XF-191\",\"XF-192\",\"XF-193\",\"XF-194\",\"XF-195\",\"XF-196\",\"XF-197\",\"XF-198\",\"XF-199\",\"XF-200\",\"XF-201\",\"XF-202\",\"XF-203\",\"XF-204\",\"XF-205\",\"XF-206\",\"XF-207\",\"XF-208\",\"XF-209\",\"XF-210\",\"XF-211\",\"XF-212\",\"XF-213\",\"XF-214\",\"XF-215\",\"XF-216\",\"XF-217\",\"XF-218\",\"XF-219\",\"XF-220\",\"XF-221\",\"XF-222\",\"XF-223\",\"XF-224\",\"XF-225\",\"XF-226\",\"XF-227\",\"XF-228\",\"XF-229\",\"XF-230\",\"XF-231\",\"XF-232\",\"XF-233\",\"XF-234\",\"XF-235\",\"XF-236\",\"XF-237\",\"XF-238\",\"XF-239\",\"XF-240\",\"XF-241\",\"XF-242\",\"XF-243\",\"XF-244\",\"XF-245\",\"XF-246\",\"XF-247\",\"XF-248\",\"XF-249\",\"XF-250\",\"XF-251\",\"XF-252\",\"XF-253\",\"XF-254\",\"XF-255\",\"XF-256\",\"XF-257\",\"XF-258\",\"XF-259\",\"XF-260\",\"XF-261\",\"XF-262\",\"XF-263\",\"XF-264\",\"XF-265\",\"XF-266\",\"XF-267\",\"XF-268\",\"XF-269\",\"XF-270\",\"XF-271\",\"XF-272\",\"XF-273\",\"XF-274\",\"XF-275\",\"XF-276\",\"XF-277\",\"XF-278\",\"XF-279\",\"XF-280\",\"XF-281\",\"XF-282\",\"XF-283\",\"XF-284\",\"XF-285\",\"XF-286\",\"XF-287\",\"XF-288\",\"XF-289\",\"XF-290\",\"XF-291\",\"XF-292\",\"XF-293\",\"XF-294\",\"XF-295\",\"XF-296\",\"XF-297\",\"XF-298\",\"XF-299\",\"XF-300\",\"XF-301\",\"XF-302\",\"XF-303\",\"XF-304\",\"XF-305\",\"XF-306\",\"XF-307\",\"XF-308\",\"XF-309\",\"XF-310\",\"XF-311\",\"XF-312\",\"XF-313\",\"XF-314\",\"XF-315\",\"XF-316\",\"XF-317\",\"XF-318\",\"XF-319\",\"XF-320\",\"XF-321\",\"XF-322\",\"XF-323\",\"XF-324\",\"XF-325\",\"XF-326\",\"XF-327\",\"XF-328\",\"XF-329\",\"XF-330\",\"XF-331\",\"XF-332\",\"XF-333\",\"XF-334\",\"XF-335\",\"XF-336\",\"XF-337\",\"XF-338\",\"XF-339\",\"XF-340\",\"XF-341\",\"XF-342\",\"XF-343\",\"XF-344\",\"XF-345\",\"XF-346\",\"XF-347\",\"XF-348\",\"XF-349\",\"XF-350\",\"XF-351\",\"XF-352\",\"XF-353\",\"XF-354\",\"XF-355\",\"XF-356\",\"XF-357\",\"XF-358\",\"XF-359\",\"XF-360\",\"XF-361\",\"XF-362\",\"XF-363\",\"XF-364\",\"XF-365\",\"XF-366\",\"XF-367\",\"XF-368\",\"XF-369\",\"XF-370\",\"XF-371\",\"XF-372\",\"XF-373\",\"XF-374\",\"XF-375\",\"XF-376\",\"XF-377\",\"XF-378\",\"XF-379\",\"XF-380\",\"XF-381\",\"XF-382\",\"XF-383\",\"XF-384\",\"XF-385\",\"XF-386\",\"XF-387\",\"XF-388\",\"XF-389\",\"XF-390\",\"XF-391\",\"XF-392\",\"XF-393\",\"XF-394\",\"XF-395\",\"XF-396\",\"XF-397\",\"XF-398\",\"XF-399\",\"XF-400\",\"XF-401\",\"XF-402\",\"XF-403\",\"XF-404\",\"XF-405\",\"XF-406\",\"XF-407\",\"XF-408\",\"XF-409\",\"XF-410\",\"XF-411\",\"XF-412\",\"XF-413\",\"XF-414\",\"XF-415\",\"XF-416\",\"XF-417\",\"XF-418\",\"XF-419\",\"XF-420\",\"XF-421\",\"XF-422\",\"XF-423\",\"XF-424\",\"XF-425\",\"XF-426\",\"XF-427\",\"XF-428\",\"XF-429\",\"XF-430\",\"XF-431\",\"XF-432\",\"XF-433\",\"XF-434\",\"XF-435\",\"XF-436\",\"XF-437\",\"XF-438\",\"XF-439\",\"XF-440\",\"XF-441\",\"XF-442\",\"XF-443\",\"XF-444\",\"XF-445\",\"XF-446\",\"XF-447\",\"XF-448\",\"XF-449\",\"XF-450\",\"XF-451\",\"XF-452\",\"XF-453\",\"XF-454\",\"XF-455\",\"XF-456\",\"XF-457\",\"XF-458\",\"XF-459\",\"XF-460\",\"XF-461\",\"XF-462\",\"XF-463\",\"XF-464\",\"XF-465\",\"XF-466\",\"XF-467\",\"XF-468\",\"XF-469\",\"XF-470\",\"XF-471\",\"XF-472\",\"XF-473\",\"XF-474\",\"XF-475\",\"XF-476\",\"XF-477\",\"XF-478\",\"XF-479\",\"XF-480\",\"XF-481\",\"XF-482\",\"XF-483\",\"XF-484\",\"XF-485\",\"XF-486\",\"XF-487\",\"XF-488\",\"XF-489\",\"XF-490\",\"XF-491\",\"XF-492\",\"XF-493\",\"XF-494\",\"XF-495\",\"XF-496\",\"XF-497\",\"XF-498\",\"XF-499\",\"XF-500\",\"XF-501\",\"XF-502\",\"XF-503\",\"XF-504\",\"XF-505\",\"XF-506\",\"XF-507\",\"XF-508\",\"XF-509\",\"XF-510\",\"XF-511\",\"XG-000\",\"XG-001\",\"XG-002\",\"XG-003\",\"XG-004\",\"XG-005\",\"XG-006\",\"XG-007\",\"XG-008\",\"XG-009\",\"XG-010\",\"XG-011\",\"XG-012\",\"XG-013\",\"XG-014\",\"XG-015\",\"XG-016\",\"XG-017\",\"XG-018\",\"XG-019\",\"XG-020\",\"XG-021\",\"XG-022\",\"XG-023\",\"XG-024\",\"XG-025\",\"XG-026\",\"XG-027\",\"XG-028\",\"XG-029\",\"XG-030\",\"XG-031\",\"XG-032\",\"XG-033\",\"XG-034\",\"XG-035\",\"XG-036\",\"XG-037\",\"XG-038\",\"XG-039\",\"XG-040\",\"XG-041\",\"XG-042\",\"XG-043\",\"XG-044\",\"XG-045\",\"XG-046\",\"XG-047\",\"XG-048\",\"XG-049\",\"XG-050\",\"XG-051\",\"XG-052\",\"XG-053\",\"XG-054\",\"XG-055\",\"XG-056\",\"XG-057\",\"XG-058\",\"XG-059\",\"XG-060\",\"XG-061\",\"XG-062\",\"XG-063\",\"XG-064\",\"XG-065\",\"XG-066\",\"XG-067\",\"XG-068\",\"XG-069\",\"XG-070\",\"XG-071\",\"XG-072\",\"XG-073\",\"XG-074\",\"XG-075\",\"XG-076\",\"XG-077\",\"XG-078\",\"XG-079\",\"XG-080\",\"XG-081\",\"XG-082\",\"XG-083\",\"XG-084\",\"XG-085\",\"XG-086\",\"XG-087\",\"XG-088\",\"XG-089\",\"XG-090\",\"XG-091\",\"XG-092\",\"XG-093\",\"XG-094\",\"XG-095\",\"XG-096\",\"XG-097\",\"XG-098\",\"XG-099\",\"XG-100\",\"XG-101\",\"XG-102\",\"XG-103\",\"XG-104\",\"XG-105\",\"XG-106\",\"XG-107\",\"XG-108\",\"XG-109\",\"XG-110\",\"XG-111\",\"XG-112\",\"XG-113\",\"XG-114\",\"XG-115\",\"XG-116\",\"XG-117\",\"XG-118\",\"XG-119\",\"XG-120\",\"XG-121\",\"XG-122\",\"XG-123\",\"XG-124\",\"XG-125\",\"XG-126\",\"XG-127\",\"XG-128\",\"XG-129\",\"XG-130\",\"XG-131\",\"XG-132\",\"XG-133\",\"XG-134\",\"XG-135\",\"XG-136\",\"XG-137\",\"XG-138\",\"XG-139\",\"XG-140\",\"XG-141\",\"XG-142\",\"XG-143\",\"XG-144\",\"XG-145\",\"XG-146\",\"XG-147\",\"XG-148\",\"XG-149\",\"XG-150\",\"XG-151\",\"XG-152\",\"XG-153\",\"XG-154\",\"XG-155\",\"XG-156\",\"XG-157\",\"XG-158\",\"XG-159\",\"XG-160\",\"XG-161\",\"XG-162\",\"XG-163\",\"XG-164\",\"XG-165\",\"XG-166\",\"XG-167\",\"XG-168\",\"XG-169\",\"XG-170\",\"XG-171\",\"XG-172\",\"XG-173\",\"XG-174\",\"XG-175\",\"XG-176\",\"XG-177\",\"XG-178\",\"XG-179\",\"XG-180\",\"XG-181\",\"XG-182\",\"XG-183\",\"XG-184\",\"XG-185\",\"XG-186\",\"XG-187\",\"XG-188\",\"XG-189\",\"XG-190\",\"XG-191\",\"XG-192\",\"XG-193\",\"XG-194\",\"XG-195\",\"XG-196\",\"XG-197\",\"XG-198\",\"XG-199\",\"XG-200\",\"XG-201\",\"XG-202\",\"XG-203\",\"XG-204\",\"XG-205\",\"XG-206\",\"XG-207\",\"XG-208\",\"XG-209\",\"XG-210\",\"XG-211\",\"XG-212\",\"XG-213\",\"XG-214\",\"XG-215\",\"XG-216\",\"XG-217\",\"XG-218\",\"XG-219\",\"XG-220\",\"XG-221\",\"XG-222\",\"XG-223\",\"XG-224\",\"XG-225\",\"XG-226\",\"XG-227\",\"XG-228\",\"XG-229\",\"XG-230\",\"XG-231\",\"XG-232\",\"XG-233\",\"XG-234\",\"XG-235\",\"XG-236\",\"XG-237\",\"XG-238\",\"XG-239\",\"XG-240\",\"XG-241\",\"XG-242\",\"XG-243\",\"XG-244\",\"XG-245\",\"XG-246\",\"XG-247\",\"XG-248\",\"XG-249\",\"XG-250\",\"XG-251\",\"XG-252\",\"XG-253\",\"XG-254\",\"XG-255\",\"XG-256\",\"XG-257\",\"XG-258\",\"XG-259\",\"XG-260\",\"XG-261\",\"XG-262\",\"XG-263\",\"XG-264\",\"XG-265\",\"XG-266\",\"XG-267\",\"XG-268\",\"XG-269\",\"XG-270\",\"XG-271\",\"XG-272\",\"XG-273\",\"XG-274\",\"XG-275\",\"XG-276\",\"XG-277\",\"XG-278\",\"XG-279\",\"XG-280\",\"XG-281\",\"XG-282\",\"XG-283\",\"XG-284\",\"XG-285\",\"XG-286\",\"XG-287\",\"XG-288\",\"XG-289\",\"XG-290\",\"XG-291\",\"XG-292\",\"XG-293\",\"XG-294\",\"XG-295\",\"XG-296\",\"XG-297\",\"XG-298\",\"XG-299\",\"XG-300\",\"XG-301\",\"XG-302\",\"XG-303\",\"XG-304\",\"XG-305\",\"XG-306\",\"XG-307\",\"XG-308\",\"XG-309\",\"XG-310\",\"XG-311\",\"XG-312\",\"XG-313\",\"XG-314\",\"XG-315\",\"XG-316\",\"XG-317\",\"XG-318\",\"XG-319\",\"XG-320\",\"XG-321\",\"XG-322\",\"XG-323\",\"XG-324\",\"XG-325\",\"XG-326\",\"XG-327\",\"XG-328\",\"XG-329\",\"XG-330\",\"XG-331\",\"XG-332\",\"XG-333\",\"XG-334\",\"XG-335\",\"XG-336\",\"XG-337\",\"XG-338\",\"XG-339\",\"XG-340\",\"XG-341\",\"XG-342\",\"XG-343\",\"XG-344\",\"XG-345\",\"XG-346\",\"XG-347\",\"XG-348\",\"XG-349\",\"XG-350\",\"XG-351\",\"XG-352\",\"XG-353\",\"XG-354\",\"XG-355\",\"XG-356\",\"XG-357\",\"XG-358\",\"XG-359\",\"XG-360\",\"XG-361\",\"XG-362\",\"XG-363\",\"XG-364\",\"XG-365\",\"XG-366\",\"XG-367\",\"XG-368\",\"XG-369\",\"XG-370\",\"XG-371\",\"XG-372\",\"XG-373\",\"XG-374\",\"XG-375\",\"XG-376\",\"XG-377\",\"XG-378\",\"XG-379\",\"XG-380\",\"XG-381\",\"XG-382\",\"XG-383\",\"XG-384\",\"XG-385\",\"XG-386\",\"XG-387\",\"XG-388\",\"XG-389\",\"XG-390\",\"XG-391\",\"XG-392\",\"XG-393\",\"XG-394\",\"XG-395\",\"XG-396\",\"XG-397\",\"XG-398\",\"XG-399\",\"XG-400\",\"XG-401\",\"XG-402\",\"XG-403\",\"XG-404\",\"XG-405\",\"XG-406\",\"XG-407\",\"XG-408\",\"XG-409\",\"XG-410\",\"XG-411\",\"XG-412\",\"XG-413\",\"XG-414\",\"XG-415\",\"XG-416\",\"XG-417\",\"XG-418\",\"XG-419\",\"XG-420\",\"XG-421\",\"XG-422\",\"XG-423\",\"XG-424\",\"XG-425\",\"XG-426\",\"XG-427\",\"XG-428\",\"XG-429\",\"XG-430\",\"XG-431\",\"XG-432\",\"XG-433\",\"XG-434\",\"XG-435\",\"XG-436\",\"XG-437\",\"XG-438\",\"XG-439\",\"XG-440\",\"XG-441\",\"XG-442\",\"XG-443\",\"XG-444\",\"XG-445\",\"XG-446\",\"XG-447\",\"XG-448\",\"XG-449\",\"XG-450\",\"XG-451\",\"XG-452\",\"XG-453\",\"XG-454\",\"XG-455\",\"XG-456\",\"XG-457\",\"XG-458\",\"XG-459\",\"XG-460\",\"XG-461\",\"XG-462\",\"XG-463\",\"XG-464\",\"XG-465\",\"XG-466\",\"XG-467\",\"XG-468\",\"XG-469\",\"XG-470\",\"XG-471\",\"XG-472\",\"XG-473\",\"XG-474\",\"XG-475\",\"XG-476\",\"XG-477\",\"XG-478\",\"XG-479\",\"XG-480\",\"XG-481\",\"XG-482\",\"XG-483\",\"XG-484\",\"XG-485\",\"XG-486\",\"XG-487\",\"XG-488\",\"XG-489\",\"XG-490\",\"XG-491\",\"XG-492\",\"XG-493\",\"XG-494\",\"XG-495\",\"XG-496\",\"XG-497\",\"XG-498\",\"XG-499\",\"XG-500\",\"XG-501\",\"XG-502\",\"XG-503\",\"XG-504\",\"XG-505\",\"XG-506\",\"XG-507\",\"XG-508\",\"XG-509\",\"XG-510\",\"XG-511\",\"XH-000\",\"XH-001\",\"XH-002\",\"XH-003\",\"XH-004\",\"XH-005\",\"XH-006\",\"XH-007\",\"XH-008\",\"XH-009\",\"XH-010\",\"XH-011\",\"XH-012\",\"XH-013\",\"XH-014\",\"XH-015\",\"XH-016\",\"XH-017\",\"XH-018\",\"XH-019\",\"XH-020\",\"XH-021\",\"XH-022\",\"XH-023\",\"XH-024\",\"XH-025\",\"XH-026\",\"XH-027\",\"XH-028\",\"XH-029\",\"XH-030\",\"XH-031\",\"XH-032\",\"XH-033\",\"XH-034\",\"XH-035\",\"XH-036\",\"XH-037\",\"XH-038\",\"XH-039\",\"XH-040\",\"XH-041\",\"XH-042\",\"XH-043\",\"XH-044\",\"XH-045\",\"XH-046\",\"XH-047\",\"XH-048\",\"XH-049\",\"XH-050\",\"XH-051\",\"XH-052\",\"XH-053\",\"XH-054\",\"XH-055\",\"XH-056\",\"XH-057\",\"XH-058\",\"XH-059\",\"XH-060\",\"XH-061\",\"XH-062\",\"XH-063\",\"XH-064\",\"XH-065\",\"XH-066\",\"XH-067\",\"XH-068\",\"XH-069\",\"XH-070\",\"XH-071\",\"XH-072\",\"XH-073\",\"XH-074\",\"XH-075\",\"XH-076\",\"XH-077\",\"XH-078\",\"XH-079\",\"XH-080\",\"XH-081\",\"XH-082\",\"XH-083\",\"XH-084\",\"XH-085\",\"XH-086\",\"XH-087\",\"XH-088\",\"XH-089\",\"XH-090\",\"XH-091\",\"XH-092\",\"XH-093\",\"XH-094\",\"XH-095\",\"XH-096\",\"XH-097\",\"XH-098\",\"XH-099\",\"XH-100\",\"XH-101\",\"XH-102\",\"XH-103\",\"XH-104\",\"XH-105\",\"XH-106\",\"XH-107\",\"XH-108\",\"XH-109\",\"XH-110\",\"XH-111\",\"XH-112\",\"XH-113\",\"XH-114\",\"XH-115\",\"XH-116\",\"XH-117\",\"XH-118\",\"XH-119\",\"XH-120\",\"XH-121\",\"XH-122\",\"XH-123\",\"XH-124\",\"XH-125\",\"XH-126\",\"XH-127\",\"XH-128\",\"XH-129\",\"XH-130\",\"XH-131\",\"XH-132\",\"XH-133\",\"XH-134\",\"XH-135\",\"XH-136\",\"XH-137\",\"XH-138\",\"XH-139\",\"XH-140\",\"XH-141\",\"XH-142\",\"XH-143\",\"XH-144\",\"XH-145\",\"XH-146\",\"XH-147\",\"XH-148\",\"XH-149\",\"XH-150\",\"XH-151\",\"XH-152\",\"XH-153\",\"XH-154\",\"XH-155\",\"XH-156\",\"XH-157\",\"XH-158\",\"XH-159\",\"XH-160\",\"XH-161\",\"XH-162\",\"XH-163\",\"XH-164\",\"XH-165\",\"XH-166\",\"XH-167\",\"XH-168\",\"XH-169\",\"XH-170\",\"XH-171\",\"XH-172\",\"XH-173\",\"XH-174\",\"XH-175\",\"XH-176\",\"XH-177\",\"XH-178\",\"XH-179\",\"XH-180\",\"XH-181\",\"XH-182\",\"XH-183\",\"XH-184\",\"XH-185\",\"XH-186\",\"XH-187\",\"XH-188\",\"XH-189\",\"XH-190\",\"XH-191\",\"XH-192\",\"XH-193\",\"XH-194\",\"XH-195\",\"XH-196\",\"XH-197\",\"XH-198\",\"XH-199\",\"XH-200\",\"XH-201\",\"XH-202\",\"XH-203\",\"XH-204\",\"XH-205\",\"XH-206\",\"XH-207\",\"XH-208\",\"XH-209\",\"XH-210\",\"XH-211\",\"XH-212\",\"XH-213\",\"XH-214\",\"XH-215\",\"XH-216\",\"XH-217\",\"XH-218\",\"XH-219\",\"XH-220\",\"XH-221\",\"XH-222\",\"XH-223\",\"XH-224\",\"XH-225\",\"XH-226\",\"XH-227\",\"XH-228\",\"XH-229\",\"XH-230\",\"XH-231\",\"XH-232\",\"XH-233\",\"XH-234\",\"XH-235\",\"XH-236\",\"XH-237\",\"XH-238\",\"XH-239\",\"XH-240\",\"XH-241\",\"XH-242\",\"XH-243\",\"XH-244\",\"XH-245\",\"XH-246\",\"XH-247\",\"XH-248\",\"XH-249\",\"XH-250\",\"XH-251\",\"XH-252\",\"XH-253\",\"XH-254\",\"XH-255\",\"XH-256\",\"XH-257\",\"XH-258\",\"XH-259\",\"XH-260\",\"XH-261\",\"XH-262\",\"XH-263\",\"XH-264\",\"XH-265\",\"XH-266\",\"XH-267\",\"XH-268\",\"XH-269\",\"XH-270\",\"XH-271\",\"XH-272\",\"XH-273\",\"XH-274\",\"XH-275\",\"XH-276\",\"XH-277\",\"XH-278\",\"XH-279\",\"XH-280\",\"XH-281\",\"XH-282\",\"XH-283\",\"XH-284\",\"XH-285\",\"XH-286\",\"XH-287\",\"XH-288\",\"XH-289\",\"XH-290\",\"XH-291\",\"XH-292\",\"XH-293\",\"XH-294\",\"XH-295\",\"XH-296\",\"XH-297\",\"XH-298\",\"XH-299\",\"XH-300\",\"XH-301\",\"XH-302\",\"XH-303\",\"XH-304\",\"XH-305\",\"XH-306\",\"XH-307\",\"XH-308\",\"XH-309\",\"XH-310\",\"XH-311\",\"XH-312\",\"XH-313\",\"XH-314\",\"XH-315\",\"XH-316\",\"XH-317\",\"XH-318\",\"XH-319\",\"XH-320\",\"XH-321\",\"XH-322\",\"XH-323\",\"XH-324\",\"XH-325\",\"XH-326\",\"XH-327\",\"XH-328\",\"XH-329\",\"XH-330\",\"XH-331\",\"XH-332\",\"XH-333\",\"XH-334\",\"XH-335\",\"XH-336\",\"XH-337\",\"XH-338\",\"XH-339\",\"XH-340\",\"XH-341\",\"XH-342\",\"XH-343\",\"XH-344\",\"XH-345\",\"XH-346\",\"XH-347\",\"XH-348\",\"XH-349\",\"XH-350\",\"XH-351\",\"XH-352\",\"XH-353\",\"XH-354\",\"XH-355\",\"XH-356\",\"XH-357\",\"XH-358\",\"XH-359\",\"XH-360\",\"XH-361\",\"XH-362\",\"XH-363\",\"XH-364\",\"XH-365\",\"XH-366\",\"XH-367\",\"XH-368\",\"XH-369\",\"XH-370\",\"XH-371\",\"XH-372\",\"XH-373\",\"XH-374\",\"XH-375\",\"XH-376\",\"XH-377\",\"XH-378\",\"XH-379\",\"XH-380\",\"XH-381\",\"XH-382\",\"XH-383\",\"XH-384\",\"XH-385\",\"XH-386\",\"XH-387\",\"XH-388\",\"XH-389\",\"XH-390\",\"XH-391\",\"XH-392\",\"XH-393\",\"XH-394\",\"XH-395\",\"XH-396\",\"XH-397\",\"XH-398\",\"XH-399\",\"XH-400\",\"XH-401\",\"XH-402\",\"XH-403\",\"XH-404\",\"XH-405\",\"XH-406\",\"XH-407\",\"XH-408\",\"XH-409\",\"XH-410\",\"XH-411\",\"XH-412\",\"XH-413\",\"XH-414\",\"XH-415\",\"XH-416\",\"XH-417\",\"XH-418\",\"XH-419\",\"XH-420\",\"XH-421\",\"XH-422\",\"XH-423\",\"XH-424\",\"XH-425\",\"XH-426\",\"XH-427\",\"XH-428\",\"XH-429\",\"XH-430\",\"XH-431\",\"XH-432\",\"XH-433\",\"XH-434\",\"XH-435\",\"XH-436\",\"XH-437\",\"XH-438\",\"XH-439\",\"XH-440\",\"XH-441\",\"XH-442\",\"XH-443\",\"XH-444\",\"XH-445\",\"XH-446\",\"XH-447\",\"XH-448\",\"XH-449\",\"XH-450\",\"XH-451\",\"XH-452\",\"XH-453\",\"XH-454\",\"XH-455\",\"XH-456\",\"XH-457\",\"XH-458\",\"XH-459\",\"XH-460\",\"XH-461\",\"XH-462\",\"XH-463\",\"XH-464\",\"XH-465\",\"XH-466\",\"XH-467\",\"XH-468\",\"XH-469\",\"XH-470\",\"XH-471\",\"XH-472\",\"XH-473\",\"XH-474\",\"XH-475\",\"XH-476\",\"XH-477\",\"XH-478\",\"XH-479\",\"XH-480\",\"XH-481\",\"XH-482\",\"XH-483\",\"XH-484\",\"XH-485\",\"XH-486\",\"XH-487\",\"XH-488\",\"XH-489\",\"XH-490\",\"XH-491\",\"XH-492\",\"XH-493\",\"XH-494\",\"XH-495\",\"XH-496\",\"XH-497\",\"XH-498\",\"XH-499\",\"XH-500\",\"XH-501\",\"XH-502\",\"XH-503\",\"XH-504\",\"XH-505\",\"XH-506\",\"XH-507\",\"XH-508\",\"XH-509\",\"XH-510\",\"XH-511\",\"XI-000\",\"XI-001\",\"XI-002\",\"XI-003\",\"XI-004\",\"XI-005\",\"XI-006\",\"XI-007\",\"XI-008\",\"XI-009\",\"XI-010\",\"XI-011\",\"XI-012\",\"XI-013\",\"XI-014\",\"XI-015\",\"XI-016\",\"XI-017\",\"XI-018\",\"XI-019\",\"XI-020\",\"XI-021\",\"XI-022\",\"XI-023\",\"XI-024\",\"XI-025\",\"XI-026\",\"XI-027\",\"XI-028\",\"XI-029\",\"XI-030\",\"XI-031\",\"XI-032\",\"XI-033\",\"XI-034\",\"XI-035\",\"XI-036\",\"XI-037\",\"XI-038\",\"XI-039\",\"XI-040\",\"XI-041\",\"XI-042\",\"XI-043\",\"XI-044\",\"XI-045\",\"XI-046\",\"XI-047\",\"XI-048\",\"XI-049\",\"XI-050\",\"XI-051\",\"XI-052\",\"XI-053\",\"XI-054\",\"XI-055\",\"XI-056\",\"XI-057\",\"XI-058\",\"XI-059\",\"XI-060\",\"XI-061\",\"XI-062\",\"XI-063\",\"XI-064\",\"XI-065\",\"XI-066\",\"XI-067\",\"XI-068\",\"XI-069\",\"XI-070\",\"XI-071\",\"XI-072\",\"XI-073\",\"XI-074\",\"XI-075\",\"XI-076\",\"XI-077\",\"XI-078\",\"XI-079\",\"XI-080\",\"XI-081\",\"XI-082\",\"XI-083\",\"XI-084\",\"XI-085\",\"XI-086\",\"XI-087\",\"XI-088\",\"XI-089\",\"XI-090\",\"XI-091\",\"XI-092\",\"XI-093\",\"XI-094\",\"XI-095\",\"XI-096\",\"XI-097\",\"XI-098\",\"XI-099\",\"XI-100\",\"XI-101\",\"XI-102\",\"XI-103\",\"XI-104\",\"XI-105\",\"XI-106\",\"XI-107\",\"XI-108\",\"XI-109\",\"XI-110\",\"XI-111\",\"XI-112\",\"XI-113\",\"XI-114\",\"XI-115\",\"XI-116\",\"XI-117\",\"XI-118\",\"XI-119\",\"XI-120\",\"XI-121\",\"XI-122\",\"XI-123\",\"XI-124\",\"XI-125\",\"XI-126\",\"XI-127\",\"XI-128\",\"XI-129\",\"XI-130\",\"XI-131\",\"XI-132\",\"XI-133\",\"XI-134\",\"XI-135\",\"XI-136\",\"XI-137\",\"XI-138\",\"XI-139\",\"XI-140\",\"XI-141\",\"XI-142\",\"XI-143\",\"XI-144\",\"XI-145\",\"XI-146\",\"XI-147\",\"XI-148\",\"XI-149\",\"XI-150\",\"XI-151\",\"XI-152\",\"XI-153\",\"XI-154\",\"XI-155\",\"XI-156\",\"XI-157\",\"XI-158\",\"XI-159\",\"XI-160\",\"XI-161\",\"XI-162\",\"XI-163\",\"XI-164\",\"XI-165\",\"XI-166\",\"XI-167\",\"XI-168\",\"XI-169\",\"XI-170\",\"XI-171\",\"XI-172\",\"XI-173\",\"XI-174\",\"XI-175\",\"XI-176\",\"XI-177\",\"XI-178\",\"XI-179\",\"XI-180\",\"XI-181\",\"XI-182\",\"XI-183\",\"XI-184\",\"XI-185\",\"XI-186\",\"XI-187\",\"XI-188\",\"XI-189\",\"XI-190\",\"XI-191\",\"XI-192\",\"XI-193\",\"XI-194\",\"XI-195\",\"XI-196\",\"XI-197\",\"XI-198\",\"XI-199\",\"XI-200\",\"XI-201\",\"XI-202\",\"XI-203\",\"XI-204\",\"XI-205\",\"XI-206\",\"XI-207\",\"XI-208\",\"XI-209\",\"XI-210\",\"XI-211\",\"XI-212\",\"XI-213\",\"XI-214\",\"XI-215\",\"XI-216\",\"XI-217\",\"XI-218\",\"XI-219\",\"XI-220\",\"XI-221\",\"XI-222\",\"XI-223\",\"XI-224\",\"XI-225\",\"XI-226\",\"XI-227\",\"XI-228\",\"XI-229\",\"XI-230\",\"XI-231\",\"XI-232\",\"XI-233\",\"XI-234\",\"XI-235\",\"XI-236\",\"XI-237\",\"XI-238\",\"XI-239\",\"XI-240\",\"XI-241\",\"XI-242\",\"XI-243\",\"XI-244\",\"XI-245\",\"XI-246\",\"XI-247\",\"XI-248\",\"XI-249\",\"XI-250\",\"XI-251\",\"XI-252\",\"XI-253\",\"XI-254\",\"XI-255\",\"XI-256\",\"XI-257\",\"XI-258\",\"XI-259\",\"XI-260\",\"XI-261\",\"XI-262\",\"XI-263\",\"XI-264\",\"XI-265\",\"XI-266\",\"XI-267\",\"XI-268\",\"XI-269\",\"XI-270\",\"XI-271\",\"XI-272\",\"XI-273\",\"XI-274\",\"XI-275\",\"XI-276\",\"XI-277\",\"XI-278\",\"XI-279\",\"XI-280\",\"XI-281\",\"XI-282\",\"XI-283\",\"XI-284\",\"XI-285\",\"XI-286\",\"XI-287\",\"XI-288\",\"XI-289\",\"XI-290\",\"XI-291\",\"XI-292\",\"XI-293\",\"XI-294\",\"XI-295\",\"XI-296\",\"XI-297\",\"XI-298\",\"XI-299\",\"XI-300\",\"XI-301\",\"XI-302\",\"XI-303\",\"XI-304\",\"XI-305\",\"XI-306\",\"XI-307\",\"XI-308\",\"XI-309\",\"XI-310\",\"XI-311\",\"XI-312\",\"XI-313\",\"XI-314\",\"XI-315\",\"XI-316\",\"XI-317\",\"XI-318\",\"XI-319\",\"XI-320\",\"XI-321\",\"XI-322\",\"XI-323\",\"XI-324\",\"XI-325\",\"XI-326\",\"XI-327\",\"XI-328\",\"XI-329\",\"XI-330\",\"XI-331\",\"XI-332\",\"XI-333\",\"XI-334\",\"XI-335\",\"XI-336\",\"XI-337\",\"XI-338\",\"XI-339\",\"XI-340\",\"XI-341\",\"XI-342\",\"XI-343\",\"XI-344\",\"XI-345\",\"XI-346\",\"XI-347\",\"XI-348\",\"XI-349\",\"XI-350\",\"XI-351\",\"XI-352\",\"XI-353\",\"XI-354\",\"XI-355\",\"XI-356\",\"XI-357\",\"XI-358\",\"XI-359\",\"XI-360\",\"XI-361\",\"XI-362\",\"XI-363\",\"XI-364\",\"XI-365\",\"XI-366\",\"XI-367\",\"XI-368\",\"XI-369\",\"XI-370\",\"XI-371\",\"XI-372\",\"XI-373\",\"XI-374\",\"XI-375\",\"XI-376\",\"XI-377\",\"XI-378\",\"XI-379\",\"XI-380\",\"XI-381\",\"XI-382\",\"XI-383\",\"XI-384\",\"XI-385\",\"XI-386\",\"XI-387\",\"XI-388\",\"XI-389\",\"XI-390\",\"XI-391\",\"XI-392\",\"XI-393\",\"XI-394\",\"XI-395\",\"XI-396\",\"XI-397\",\"XI-398\",\"XI-399\",\"XI-400\",\"XI-401\",\"XI-402\",\"XI-403\",\"XI-404\",\"XI-405\",\"XI-406\",\"XI-407\",\"XI-408\",\"XI-409\",\"XI-410\",\"XI-411\",\"XI-412\",\"XI-413\",\"XI-414\",\"XI-415\",\"XI-416\",\"XI-417\",\"XI-418\",\"XI-419\",\"XI-420\",\"XI-421\",\"XI-422\",\"XI-423\",\"XI-424\",\"XI-425\",\"XI-426\",\"XI-427\",\"XI-428\",\"XI-429\",\"XI-430\",\"XI-431\",\"XI-432\",\"XI-433\",\"XI-434\",\"XI-435\",\"XI-436\",\"XI-437\",\"XI-438\",\"XI-439\",\"XI-440\",\"XI-441\",\"XI-442\",\"XI-443\",\"XI-444\",\"XI-445\",\"XI-446\",\"XI-447\",\"XI-448\",\"XI-449\",\"XI-450\",\"XI-451\",\"XI-452\",\"XI-453\",\"XI-454\",\"XI-455\",\"XI-456\",\"XI-457\",\"XI-458\",\"XI-459\",\"XI-460\",\"XI-461\",\"XI-462\",\"XI-463\",\"XI-464\",\"XI-465\",\"XI-466\",\"XI-467\",\"XI-468\",\"XI-469\",\"XI-470\",\"XI-471\",\"XI-472\",\"XI-473\",\"XI-474\",\"XI-475\",\"XI-476\",\"XI-477\",\"XI-478\",\"XI-479\",\"XI-480\",\"XI-481\",\"XI-482\",\"XI-483\",\"XI-484\",\"XI-485\",\"XI-486\",\"XI-487\",\"XI-488\",\"XI-489\",\"XI-490\",\"XI-491\",\"XI-492\",\"XI-493\",\"XI-494\",\"XI-495\",\"XI-496\",\"XI-497\",\"XI-498\",\"XI-499\",\"XI-500\",\"XI-501\",\"XI-502\",\"XI-503\",\"XI-504\",\"XI-505\",\"XI-506\",\"XI-507\",\"XI-508\",\"XI-509\",\"XI-510\",\"XI-511\",\"XJ-000\",\"XJ-001\",\"XJ-002\",\"XJ-003\",\"XJ-004\",\"XJ-005\",\"XJ-006\",\"XJ-007\",\"XJ-008\",\"XJ-009\",\"XJ-010\",\"XJ-011\",\"XJ-012\",\"XJ-013\",\"XJ-014\",\"XJ-015\",\"XJ-016\",\"XJ-017\",\"XJ-018\",\"XJ-019\",\"XJ-020\",\"XJ-021\",\"XJ-022\",\"XJ-023\",\"XJ-024\",\"XJ-025\",\"XJ-026\",\"XJ-027\",\"XJ-028\",\"XJ-029\",\"XJ-030\",\"XJ-031\",\"XJ-032\",\"XJ-033\",\"XJ-034\",\"XJ-035\",\"XJ-036\",\"XJ-037\",\"XJ-038\",\"XJ-039\",\"XJ-040\",\"XJ-041\",\"XJ-042\",\"XJ-043\",\"XJ-044\",\"XJ-045\",\"XJ-046\",\"XJ-047\",\"XJ-048\",\"XJ-049\",\"XJ-050\",\"XJ-051\",\"XJ-052\",\"XJ-053\",\"XJ-054\",\"XJ-055\",\"XJ-056\",\"XJ-057\",\"XJ-058\",\"XJ-059\",\"XJ-060\",\"XJ-061\",\"XJ-062\",\"XJ-063\",\"XJ-064\",\"XJ-065\",\"XJ-066\",\"XJ-067\",\"XJ-068\",\"XJ-069\",\"XJ-070\",\"XJ-071\",\"XJ-072\",\"XJ-073\",\"XJ-074\",\"XJ-075\",\"XJ-076\",\"XJ-077\",\"XJ-078\",\"XJ-079\",\"XJ-080\",\"XJ-081\",\"XJ-082\",\"XJ-083\",\"XJ-084\",\"XJ-085\",\"XJ-086\",\"XJ-087\",\"XJ-088\",\"XJ-089\",\"XJ-090\",\"XJ-091\",\"XJ-092\",\"XJ-093\",\"XJ-094\",\"XJ-095\",\"XJ-096\",\"XJ-097\",\"XJ-098\",\"XJ-099\",\"XJ-100\",\"XJ-101\",\"XJ-102\",\"XJ-103\",\"XJ-104\",\"XJ-105\",\"XJ-106\",\"XJ-107\",\"XJ-108\",\"XJ-109\",\"XJ-110\",\"XJ-111\",\"XJ-112\",\"XJ-113\",\"XJ-114\",\"XJ-115\",\"XJ-116\",\"XJ-117\",\"XJ-118\",\"XJ-119\",\"XJ-120\",\"XJ-121\",\"XJ-122\",\"XJ-123\",\"XJ-124\",\"XJ-125\",\"XJ-126\",\"XJ-127\",\"XJ-128\",\"XJ-129\",\"XJ-130\",\"XJ-131\",\"XJ-132\",\"XJ-133\",\"XJ-134\",\"XJ-135\",\"XJ-136\",\"XJ-137\",\"XJ-138\",\"XJ-139\",\"XJ-140\",\"XJ-141\",\"XJ-142\",\"XJ-143\",\"XJ-144\",\"XJ-145\",\"XJ-146\",\"XJ-147\",\"XJ-148\",\"XJ-149\",\"XJ-150\",\"XJ-151\",\"XJ-152\",\"XJ-153\",\"XJ-154\",\"XJ-155\",\"XJ-156\",\"XJ-157\",\"XJ-158\",\"XJ-159\",\"XJ-160\",\"XJ-161\",\"XJ-162\",\"XJ-163\",\"XJ-164\",\"XJ-165\",\"XJ-166\",\"XJ-167\",\"XJ-168\",\"XJ-169\",\"XJ-170\",\"XJ-171\",\"XJ-172\",\"XJ-173\",\"XJ-174\",\"XJ-175\",\"XJ-176\",\"XJ-177\",\"XJ-178\",\"XJ-179\",\"XJ-180\",\"XJ-181\",\"XJ-182\",\"XJ-183\",\"XJ-184\",\"XJ-185\",\"XJ-186\",\"XJ-187\",\"XJ-188\",\"XJ-189\",\"XJ-190\",\"XJ-191\",\"XJ-192\",\"XJ-193\",\"XJ-194\",\"XJ-195\",\"XJ-196\",\"XJ-197\",\"XJ-198\",\"XJ-199\",\"XJ-200\",\"XJ-201\",\"XJ-202\",\"XJ-203\",\"XJ-204\",\"XJ-205\",\"XJ-206\",\"XJ-207\",\"XJ-208\",\"XJ-209\",\"XJ-210\",\"XJ-211\",\"XJ-212\",\"XJ-213\",\"XJ-214\",\"XJ-215\",\"XJ-216\",\"XJ-217\",\"XJ-218\",\"XJ-219\",\"XJ-220\",\"XJ-221\",\"XJ-222\",\"XJ-223\",\"XJ-224\",\"XJ-225\",\"XJ-226\",\"XJ-227\",\"XJ-228\",\"XJ-229\",\"XJ-230\",\"XJ-231\",\"XJ-232\",\"XJ-233\",\"XJ-234\",\"XJ-235\",\"XJ-236\",\"XJ-237\",\"XJ-238\",\"XJ-239\",\"XJ-240\",\"XJ-241\",\"XJ-242\",\"XJ-243\",\"XJ-244\",\"XJ-245\",\"XJ-246\",\"XJ-247\",\"XJ-248\",\"XJ-249\",\"XJ-250\",\"XJ-251\",\"XJ-252\",\"XJ-253\",\"XJ-254\",\"XJ-255\",\"XJ-256\",\"XJ-257\",\"XJ-258\",\"XJ-259\",\"XJ-260\",\"XJ-261\",\"XJ-262\",\"XJ-263\",\"XJ-264\",\"XJ-265\",\"XJ-266\",\"XJ-267\",\"XJ-268\",\"XJ-269\",\"XJ-270\",\"XJ-271\",\"XJ-272\",\"XJ-273\",\"XJ-274\",\"XJ-275\",\"XJ-276\",\"XJ-277\",\"XJ-278\",\"XJ-279\",\"XJ-280\",\"XJ-281\",\"XJ-282\",\"XJ-283\",\"XJ-284\",\"XJ-285\",\"XJ-286\",\"XJ-287\",\"XJ-288\",\"XJ-289\",\"XJ-290\",\"XJ-291\",\"XJ-292\",\"XJ-293\",\"XJ-294\",\"XJ-295\",\"XJ-296\",\"XJ-297\",\"XJ-298\",\"XJ-299\",\"XJ-300\",\"XJ-301\",\"XJ-302\",\"XJ-303\",\"XJ-304\",\"XJ-305\",\"XJ-306\",\"XJ-307\",\"XJ-308\",\"XJ-309\",\"XJ-310\",\"XJ-311\",\"XJ-312\",\"XJ-313\",\"XJ-314\",\"XJ-315\",\"XJ-316\",\"XJ-317\",\"XJ-318\",\"XJ-319\",\"XJ-320\",\"XJ-321\",\"XJ-322\",\"XJ-323\",\"XJ-324\",\"XJ-325\",\"XJ-326\",\"XJ-327\",\"XJ-328\",\"XJ-329\",\"XJ-330\",\"XJ-331\",\"XJ-332\",\"XJ-333\",\"XJ-334\",\"XJ-335\",\"XJ-336\",\"XJ-337\",\"XJ-338\",\"XJ-339\",\"XJ-340\",\"XJ-341\",\"XJ-342\",\"XJ-343\",\"XJ-344\",\"XJ-345\",\"XJ-346\",\"XJ-347\",\"XJ-348\",\"XJ-349\",\"XJ-350\",\"XJ-351\",\"XJ-352\",\"XJ-353\",\"XJ-354\",\"XJ-355\",\"XJ-356\",\"XJ-357\",\"XJ-358\",\"XJ-359\",\"XJ-360\",\"XJ-361\",\"XJ-362\",\"XJ-363\",\"XJ-364\",\"XJ-365\",\"XJ-366\",\"XJ-367\",\"XJ-368\",\"XJ-369\",\"XJ-370\",\"XJ-371\",\"XJ-372\",\"XJ-373\",\"XJ-374\",\"XJ-375\",\"XJ-376\",\"XJ-377\",\"XJ-378\",\"XJ-379\",\"XJ-380\",\"XJ-381\",\"XJ-382\",\"XJ-383\",\"XJ-384\",\"XJ-385\",\"XJ-386\",\"XJ-387\",\"XJ-388\",\"XJ-389\",\"XJ-390\",\"XJ-391\",\"XJ-392\",\"XJ-393\",\"XJ-394\",\"XJ-395\",\"XJ-396\",\"XJ-397\",\"XJ-398\",\"XJ-399\",\"XJ-400\",\"XJ-401\",\"XJ-402\",\"XJ-403\",\"XJ-404\",\"XJ-405\",\"XJ-406\",\"XJ-407\",\"XJ-408\",\"XJ-409\",\"XJ-410\",\"XJ-411\",\"XJ-412\",\"XJ-413\",\"XJ-414\",\"XJ-415\",\"XJ-416\",\"XJ-417\",\"XJ-418\",\"XJ-419\",\"XJ-420\",\"XJ-421\",\"XJ-422\",\"XJ-423\",\"XJ-424\",\"XJ-425\",\"XJ-426\",\"XJ-427\",\"XJ-428\",\"XJ-429\",\"XJ-430\",\"XJ-431\",\"XJ-432\",\"XJ-433\",\"XJ-434\",\"XJ-435\",\"XJ-436\",\"XJ-437\",\"XJ-438\",\"XJ-439\",\"XJ-440\",\"XJ-441\",\"XJ-442\",\"XJ-443\",\"XJ-444\",\"XJ-445\",\"XJ-446\",\"XJ-447\",\"XJ-448\",\"XJ-449\",\"XJ-450\",\"XJ-451\",\"XJ-452\",\"XJ-453\",\"XJ-454\",\"XJ-455\",\"XJ-456\",\"XJ-457\",\"XJ-458\",\"XJ-459\",\"XJ-460\",\"XJ-461\",\"XJ-462\",\"XJ-463\",\"XJ-464\",\"XJ-465\",\"XJ-466\",\"XJ-467\",\"XJ-468\",\"XJ-469\",\"XJ-470\",\"XJ-471\",\"XJ-472\",\"XJ-473\",\"XJ-474\",\"XJ-475\",\"XJ-476\",\"XJ-477\",\"XJ-478\",\"XJ-479\",\"XJ-480\",\"XJ-481\",\"XJ-482\",\"XJ-483\",\"XJ-484\",\"XJ-485\",\"XJ-486\",\"XJ-487\",\"XJ-488\",\"XJ-489\",\"XJ-490\",\"XJ-491\",\"XJ-492\",\"XJ-493\",\"XJ-494\",\"XJ-495\",\"XJ-496\",\"XJ-497\",\"XJ-498\",\"XJ-499\",\"XJ-500\",\"XJ-501\",\"XJ-502\",\"XJ-503\",\"XJ-504\",\"XJ-505\",\"XJ-506\",\"XJ-507\",\"XJ-508\",\"XJ-509\",\"XJ-510\",\"XJ-511\",\"XK-000\",\"XK-001\",\"XK-002\",\"XK-003\",\"XK-004\",\"XK-005\",\"XK-006\",\"XK-007\",\"XK-008\",\"XK-009\",\"XK-010\",\"XK-011\",\"XK-012\",\"XK-013\",\"XK-014\",\"XK-015\",\"XK-016\",\"XK-017\",\"XK-018\",\"XK-019\",\"XK-020\",\"XK-021\",\"XK-022\",\"XK-023\",\"XK-024\",\"XK-025\",\"XK-026\",\"XK-027\",\"XK-028\",\"XK-029\",\"XK-030\",\"XK-031\",\"XK-032\",\"XK-033\",\"XK-034\",\"XK-035\",\"XK-036\",\"XK-037\",\"XK-038\",\"XK-039\",\"XK-040\",\"XK-041\",\"XK-042\",\"XK-043\",\"XK-044\",\"XK-045\",\"XK-046\",\"XK-047\",\"XK-048\",\"XK-049\",\"XK-050\",\"XK-051\",\"XK-052\",\"XK-053\",\"XK-054\",\"XK-055\",\"XK-056\",\"XK-057\",\"XK-058\",\"XK-059\",\"XK-060\",\"XK-061\",\"XK-062\",\"XK-063\",\"XK-064\",\"XK-065\",\"XK-066\",\"XK-067\",\"XK-068\",\"XK-069\",\"XK-070\",\"XK-071\",\"XK-072\",\"XK-073\",\"XK-074\",\"XK-075\",\"XK-076\",\"XK-077\",\"XK-078\",\"XK-079\",\"XK-080\",\"XK-081\",\"XK-082\",\"XK-083\",\"XK-084\",\"XK-085\",\"XK-086\",\"XK-087\",\"XK-088\",\"XK-089\",\"XK-090\",\"XK-091\",\"XK-092\",\"XK-093\",\"XK-094\",\"XK-095\",\"XK-096\",\"XK-097\",\"XK-098\",\"XK-099\",\"XK-100\",\"XK-101\",\"XK-102\",\"XK-103\",\"XK-104\",\"XK-105\",\"XK-106\",\"XK-107\",\"XK-108\",\"XK-109\",\"XK-110\",\"XK-111\",\"XK-112\",\"XK-113\",\"XK-114\",\"XK-115\",\"XK-116\",\"XK-117\",\"XK-118\",\"XK-119\",\"XK-120\",\"XK-121\",\"XK-122\",\"XK-123\",\"XK-124\",\"XK-125\",\"XK-126\",\"XK-127\",\"XK-128\",\"XK-129\",\"XK-130\",\"XK-131\",\"XK-132\",\"XK-133\",\"XK-134\",\"XK-135\",\"XK-136\",\"XK-137\",\"XK-138\",\"XK-139\",\"XK-140\",\"XK-141\",\"XK-142\",\"XK-143\",\"XK-144\",\"XK-145\",\"XK-146\",\"XK-147\",\"XK-148\",\"XK-149\",\"XK-150\",\"XK-151\",\"XK-152\",\"XK-153\",\"XK-154\",\"XK-155\",\"XK-156\",\"XK-157\",\"XK-158\",\"XK-159\",\"XK-160\",\"XK-161\",\"XK-162\",\"XK-163\",\"XK-164\",\"XK-165\",\"XK-166\",\"XK-167\",\"XK-168\",\"XK-169\",\"XK-170\",\"XK-171\",\"XK-172\",\"XK-173\",\"XK-174\",\"XK-175\",\"XK-176\",\"XK-177\",\"XK-178\",\"XK-179\",\"XK-180\",\"XK-181\",\"XK-182\",\"XK-183\",\"XK-184\",\"XK-185\",\"XK-186\",\"XK-187\",\"XK-188\",\"XK-189\",\"XK-190\",\"XK-191\",\"XK-192\",\"XK-193\",\"XK-194\",\"XK-195\",\"XK-196\",\"XK-197\",\"XK-198\",\"XK-199\",\"XK-200\",\"XK-201\",\"XK-202\",\"XK-203\",\"XK-204\",\"XK-205\",\"XK-206\",\"XK-207\",\"XK-208\",\"XK-209\",\"XK-210\",\"XK-211\",\"XK-212\",\"XK-213\",\"XK-214\",\"XK-215\",\"XK-216\",\"XK-217\",\"XK-218\",\"XK-219\",\"XK-220\",\"XK-221\",\"XK-222\",\"XK-223\",\"XK-224\",\"XK-225\",\"XK-226\",\"XK-227\",\"XK-228\",\"XK-229\",\"XK-230\",\"XK-231\",\"XK-232\",\"XK-233\",\"XK-234\",\"XK-235\",\"XK-236\",\"XK-237\",\"XK-238\",\"XK-239\",\"XK-240\",\"XK-241\",\"XK-242\",\"XK-243\",\"XK-244\",\"XK-245\",\"XK-246\",\"XK-247\",\"XK-248\",\"XK-249\",\"XK-250\",\"XK-251\",\"XK-252\",\"XK-253\",\"XK-254\",\"XK-255\",\"XK-256\",\"XK-257\",\"XK-258\",\"XK-259\",\"XK-260\",\"XK-261\",\"XK-262\",\"XK-263\",\"XK-264\",\"XK-265\",\"XK-266\",\"XK-267\",\"XK-268\",\"XK-269\",\"XK-270\",\"XK-271\",\"XK-272\",\"XK-273\",\"XK-274\",\"XK-275\",\"XK-276\",\"XK-277\",\"XK-278\",\"XK-279\",\"XK-280\",\"XK-281\",\"XK-282\",\"XK-283\",\"XK-284\",\"XK-285\",\"XK-286\",\"XK-287\",\"XK-288\",\"XK-289\",\"XK-290\",\"XK-291\",\"XK-292\",\"XK-293\",\"XK-294\",\"XK-295\",\"XK-296\",\"XK-297\",\"XK-298\",\"XK-299\",\"XK-300\",\"XK-301\",\"XK-302\",\"XK-303\",\"XK-304\",\"XK-305\",\"XK-306\",\"XK-307\",\"XK-308\",\"XK-309\",\"XK-310\",\"XK-311\",\"XK-312\",\"XK-313\",\"XK-314\",\"XK-315\",\"XK-316\",\"XK-317\",\"XK-318\",\"XK-319\",\"XK-320\",\"XK-321\",\"XK-322\",\"XK-323\",\"XK-324\",\"XK-325\",\"XK-326\",\"XK-327\",\"XK-328\",\"XK-329\",\"XK-330\",\"XK-331\",\"XK-332\",\"XK-333\",\"XK-334\",\"XK-335\",\"XK-336\",\"XK-337\",\"XK-338\",\"XK-339\",\"XK-340\",\"XK-341\",\"XK-342\",\"XK-343\",\"XK-344\",\"XK-345\",\"XK-346\",\"XK-347\",\"XK-348\",\"XK-349\",\"XK-350\",\"XK-351\",\"XK-352\",\"XK-353\",\"XK-354\",\"XK-355\",\"XK-356\",\"XK-357\",\"XK-358\",\"XK-359\",\"XK-360\",\"XK-361\",\"XK-362\",\"XK-363\",\"XK-364\",\"XK-365\",\"XK-366\",\"XK-367\",\"XK-368\",\"XK-369\",\"XK-370\",\"XK-371\",\"XK-372\",\"XK-373\",\"XK-374\",\"XK-375\",\"XK-376\",\"XK-377\",\"XK-378\",\"XK-379\",\"XK-380\",\"XK-381\",\"XK-382\",\"XK-383\",\"XK-384\",\"XK-385\",\"XK-386\",\"XK-387\",\"XK-388\",\"XK-389\",\"XK-390\",\"XK-391\",\"XK-392\",\"XK-393\",\"XK-394\",\"XK-395\",\"XK-396\",\"XK-397\",\"XK-398\",\"XK-399\",\"XK-400\",\"XK-401\",\"XK-402\",\"XK-403\",\"XK-404\",\"XK-405\",\"XK-406\",\"XK-407\",\"XK-408\",\"XK-409\",\"XK-410\",\"XK-411\",\"XK-412\",\"XK-413\",\"XK-414\",\"XK-415\",\"XK-416\",\"XK-417\",\"XK-418\",\"XK-419\",\"XK-420\",\"XK-421\",\"XK-422\",\"XK-423\",\"XK-424\",\"XK-425\",\"XK-426\",\"XK-427\",\"XK-428\",\"XK-429\",\"XK-430\",\"XK-431\",\"XK-432\",\"XK-433\",\"XK-434\",\"XK-435\",\"XK-436\",\"XK-437\",\"XK-438\",\"XK-439\",\"XK-440\",\"XK-441\",\"XK-442\",\"XK-443\",\"XK-444\",\"XK-445\",\"XK-446\",\"XK-447\",\"XK-448\",\"XK-449\",\"XK-450\",\"XK-451\",\"XK-452\",\"XK-453\",\"XK-454\",\"XK-455\",\"XK-456\",\"XK-457\",\"XK-458\",\"XK-459\",\"XK-460\",\"XK-461\",\"XK-462\",\"XK-463\",\"XK-464\",\"XK-465\",\"XK-466\",\"XK-467\",\"XK-468\",\"XK-469\",\"XK-470\",\"XK-471\",\"XK-472\",\"XK-473\",\"XK-474\",\"XK-475\",\"XK-476\",\"XK-477\",\"XK-478\",\"XK-479\",\"XK-480\",\"XK-481\",\"XK-482\",\"XK-483\",\"XK-484\",\"XK-485\",\"XK-486\",\"XK-487\",\"XK-488\",\"XK-489\",\"XK-490\",\"XK-491\",\"XK-492\",\"XK-493\",\"XK-494\",\"XK-495\",\"XK-496\",\"XK-497\",\"XK-498\",\"XK-499\",\"XK-500\",\"XK-501\",\"XK-502\",\"XK-503\",\"XK-504\",\"XK-505\",\"XK-506\",\"XK-507\",\"XK-508\",\"XK-509\",\"XK-510\",\"XK-511\",\"XL-000\",\"XL-001\",\"XL-002\",\"XL-003\",\"XL-004\",\"XL-005\",\"XL-006\",\"XL-007\",\"XL-008\",\"XL-009\",\"XL-010\",\"XL-011\",\"XL-012\",\"XL-013\",\"XL-014\",\"XL-015\",\"XL-016\",\"XL-017\",\"XL-018\",\"XL-019\",\"XL-020\",\"XL-021\",\"XL-022\",\"XL-023\",\"XL-024\",\"XL-025\",\"XL-026\",\"XL-027\",\"XL-028\",\"XL-029\",\"XL-030\",\"XL-031\",\"XL-032\",\"XL-033\",\"XL-034\",\"XL-035\",\"XL-036\",\"XL-037\",\"XL-038\",\"XL-039\",\"XL-040\",\"XL-041\",\"XL-042\",\"XL-043\",\"XL-044\",\"XL-045\",\"XL-046\",\"XL-047\",\"XL-048\",\"XL-049\",\"XL-050\",\"XL-051\",\"XL-052\",\"XL-053\",\"XL-054\",\"XL-055\",\"XL-056\",\"XL-057\",\"XL-058\",\"XL-059\",\"XL-060\",\"XL-061\",\"XL-062\",\"XL-063\",\"XL-064\",\"XL-065\",\"XL-066\",\"XL-067\",\"XL-068\",\"XL-069\",\"XL-070\",\"XL-071\",\"XL-072\",\"XL-073\",\"XL-074\",\"XL-075\",\"XL-076\",\"XL-077\",\"XL-078\",\"XL-079\",\"XL-080\",\"XL-081\",\"XL-082\",\"XL-083\",\"XL-084\",\"XL-085\",\"XL-086\",\"XL-087\",\"XL-088\",\"XL-089\",\"XL-090\",\"XL-091\",\"XL-092\",\"XL-093\",\"XL-094\",\"XL-095\",\"XL-096\",\"XL-097\",\"XL-098\",\"XL-099\",\"XL-100\",\"XL-101\",\"XL-102\",\"XL-103\",\"XL-104\",\"XL-105\",\"XL-106\",\"XL-107\",\"XL-108\",\"XL-109\",\"XL-110\",\"XL-111\",\"XL-112\",\"XL-113\",\"XL-114\",\"XL-115\",\"XL-116\",\"XL-117\",\"XL-118\",\"XL-119\",\"XL-120\",\"XL-121\",\"XL-122\",\"XL-123\",\"XL-124\",\"XL-125\",\"XL-126\",\"XL-127\",\"XL-128\",\"XL-129\",\"XL-130\",\"XL-131\",\"XL-132\",\"XL-133\",\"XL-134\",\"XL-135\",\"XL-136\",\"XL-137\",\"XL-138\",\"XL-139\",\"XL-140\",\"XL-141\",\"XL-142\",\"XL-143\",\"XL-144\",\"XL-145\",\"XL-146\",\"XL-147\",\"XL-148\",\"XL-149\",\"XL-150\",\"XL-151\",\"XL-152\",\"XL-153\",\"XL-154\",\"XL-155\",\"XL-156\",\"XL-157\",\"XL-158\",\"XL-159\",\"XL-160\",\"XL-161\",\"XL-162\",\"XL-163\",\"XL-164\",\"XL-165\",\"XL-166\",\"XL-167\",\"XL-168\",\"XL-169\",\"XL-170\",\"XL-171\",\"XL-172\",\"XL-173\",\"XL-174\",\"XL-175\",\"XL-176\",\"XL-177\",\"XL-178\",\"XL-179\",\"XL-180\",\"XL-181\",\"XL-182\",\"XL-183\",\"XL-184\",\"XL-185\",\"XL-186\",\"XL-187\",\"XL-188\",\"XL-189\",\"XL-190\",\"XL-191\",\"XL-192\",\"XL-193\",\"XL-194\",\"XL-195\",\"XL-196\",\"XL-197\",\"XL-198\",\"XL-199\",\"XL-200\",\"XL-201\",\"XL-202\",\"XL-203\",\"XL-204\",\"XL-205\",\"XL-206\",\"XL-207\",\"XL-208\",\"XL-209\",\"XL-210\",\"XL-211\",\"XL-212\",\"XL-213\",\"XL-214\",\"XL-215\",\"XL-216\",\"XL-217\",\"XL-218\",\"XL-219\",\"XL-220\",\"XL-221\",\"XL-222\",\"XL-223\",\"XL-224\",\"XL-225\",\"XL-226\",\"XL-227\",\"XL-228\",\"XL-229\",\"XL-230\",\"XL-231\",\"XL-232\",\"XL-233\",\"XL-234\",\"XL-235\",\"XL-236\",\"XL-237\",\"XL-238\",\"XL-239\",\"XL-240\",\"XL-241\",\"XL-242\",\"XL-243\",\"XL-244\",\"XL-245\",\"XL-246\",\"XL-247\",\"XL-248\",\"XL-249\",\"XL-250\",\"XL-251\",\"XL-252\",\"XL-253\",\"XL-254\",\"XL-255\",\"XL-256\",\"XL-257\",\"XL-258\",\"XL-259\",\"XL-260\",\"XL-261\",\"XL-262\",\"XL-263\",\"XL-264\",\"XL-265\",\"XL-266\",\"XL-267\",\"XL-268\",\"XL-269\",\"XL-270\",\"XL-271\",\"XL-272\",\"XL-273\",\"XL-274\",\"XL-275\",\"XL-276\",\"XL-277\",\"XL-278\",\"XL-279\",\"XL-280\",\"XL-281\",\"XL-282\",\"XL-283\",\"XL-284\",\"XL-285\",\"XL-286\",\"XL-287\",\"XL-288\",\"XL-289\",\"XL-290\",\"XL-291\",\"XL-292\",\"XL-293\",\"XL-294\",\"XL-295\",\"XL-296\",\"XL-297\",\"XL-298\",\"XL-299\",\"XL-300\",\"XL-301\",\"XL-302\",\"XL-303\",\"XL-304\",\"XL-305\",\"XL-306\",\"XL-307\",\"XL-308\",\"XL-309\",\"XL-310\",\"XL-311\",\"XL-312\",\"XL-313\",\"XL-314\",\"XL-315\",\"XL-316\",\"XL-317\",\"XL-318\",\"XL-319\",\"XL-320\",\"XL-321\",\"XL-322\",\"XL-323\",\"XL-324\",\"XL-325\",\"XL-326\",\"XL-327\",\"XL-328\",\"XL-329\",\"XL-330\",\"XL-331\",\"XL-332\",\"XL-333\",\"XL-334\",\"XL-335\",\"XL-336\",\"XL-337\",\"XL-338\",\"XL-339\",\"XL-340\",\"XL-341\",\"XL-342\",\"XL-343\",\"XL-344\",\"XL-345\",\"XL-346\",\"XL-347\",\"XL-348\",\"XL-349\",\"XL-350\",\"XL-351\",\"XL-352\",\"XL-353\",\"XL-354\",\"XL-355\",\"XL-356\",\"XL-357\",\"XL-358\",\"XL-359\",\"XL-360\",\"XL-361\",\"XL-362\",\"XL-363\",\"XL-364\",\"XL-365\",\"XL-366\",\"XL-367\",\"XL-368\",\"XL-369\",\"XL-370\",\"XL-371\",\"XL-372\",\"XL-373\",\"XL-374\",\"XL-375\",\"XL-376\",\"XL-377\",\"XL-378\",\"XL-379\",\"XL-380\",\"XL-381\",\"XL-382\",\"XL-383\",\"XL-384\",\"XL-385\",\"XL-386\",\"XL-387\",\"XL-388\",\"XL-389\",\"XL-390\",\"XL-391\",\"XL-392\",\"XL-393\",\"XL-394\",\"XL-395\",\"XL-396\",\"XL-397\",\"XL-398\",\"XL-399\",\"XL-400\",\"XL-401\",\"XL-402\",\"XL-403\",\"XL-404\",\"XL-405\",\"XL-406\",\"XL-407\",\"XL-408\",\"XL-409\",\"XL-410\",\"XL-411\",\"XL-412\",\"XL-413\",\"XL-414\",\"XL-415\",\"XL-416\",\"XL-417\",\"XL-418\",\"XL-419\",\"XL-420\",\"XL-421\",\"XL-422\",\"XL-423\",\"XL-424\",\"XL-425\",\"XL-426\",\"XL-427\",\"XL-428\",\"XL-429\",\"XL-430\",\"XL-431\",\"XL-432\",\"XL-433\",\"XL-434\",\"XL-435\",\"XL-436\",\"XL-437\",\"XL-438\",\"XL-439\",\"XL-440\",\"XL-441\",\"XL-442\",\"XL-443\",\"XL-444\",\"XL-445\",\"XL-446\",\"XL-447\",\"XL-448\",\"XL-449\",\"XL-450\",\"XL-451\",\"XL-452\",\"XL-453\",\"XL-454\",\"XL-455\",\"XL-456\",\"XL-457\",\"XL-458\",\"XL-459\",\"XL-460\",\"XL-461\",\"XL-462\",\"XL-463\",\"XL-464\",\"XL-465\",\"XL-466\",\"XL-467\",\"XL-468\",\"XL-469\",\"XL-470\",\"XL-471\",\"XL-472\",\"XL-473\",\"XL-474\",\"XL-475\",\"XL-476\",\"XL-477\",\"XL-478\",\"XL-479\",\"XL-480\",\"XL-481\",\"XL-482\",\"XL-483\",\"XL-484\",\"XL-485\",\"XL-486\",\"XL-487\",\"XL-488\",\"XL-489\",\"XL-490\",\"XL-491\",\"XL-492\",\"XL-493\",\"XL-494\",\"XL-495\",\"XL-496\",\"XL-497\",\"XL-498\",\"XL-499\",\"XL-500\",\"XL-501\",\"XL-502\",\"XL-503\",\"XL-504\",\"XL-505\",\"XL-506\",\"XL-507\",\"XL-508\",\"XL-509\",\"XL-510\",\"XL-511\",\"XM-000\",\"XM-001\",\"XM-002\",\"XM-003\",\"XM-004\",\"XM-005\",\"XM-006\",\"XM-007\",\"XM-008\",\"XM-009\",\"XM-010\",\"XM-011\",\"XM-012\",\"XM-013\",\"XM-014\",\"XM-015\",\"XM-016\",\"XM-017\",\"XM-018\",\"XM-019\",\"XM-020\",\"XM-021\",\"XM-022\",\"XM-023\",\"XM-024\",\"XM-025\",\"XM-026\",\"XM-027\",\"XM-028\",\"XM-029\",\"XM-030\",\"XM-031\",\"XM-032\",\"XM-033\",\"XM-034\",\"XM-035\",\"XM-036\",\"XM-037\",\"XM-038\",\"XM-039\",\"XM-040\",\"XM-041\",\"XM-042\",\"XM-043\",\"XM-044\",\"XM-045\",\"XM-046\",\"XM-047\",\"XM-048\",\"XM-049\",\"XM-050\",\"XM-051\",\"XM-052\",\"XM-053\",\"XM-054\",\"XM-055\",\"XM-056\",\"XM-057\",\"XM-058\",\"XM-059\",\"XM-060\",\"XM-061\",\"XM-062\",\"XM-063\",\"XM-064\",\"XM-065\",\"XM-066\",\"XM-067\",\"XM-068\",\"XM-069\",\"XM-070\",\"XM-071\",\"XM-072\",\"XM-073\",\"XM-074\",\"XM-075\",\"XM-076\",\"XM-077\",\"XM-078\",\"XM-079\",\"XM-080\",\"XM-081\",\"XM-082\",\"XM-083\",\"XM-084\",\"XM-085\",\"XM-086\",\"XM-087\",\"XM-088\",\"XM-089\",\"XM-090\",\"XM-091\",\"XM-092\",\"XM-093\",\"XM-094\",\"XM-095\",\"XM-096\",\"XM-097\",\"XM-098\",\"XM-099\",\"XM-100\",\"XM-101\",\"XM-102\",\"XM-103\",\"XM-104\",\"XM-105\",\"XM-106\",\"XM-107\",\"XM-108\",\"XM-109\",\"XM-110\",\"XM-111\",\"XM-112\",\"XM-113\",\"XM-114\",\"XM-115\",\"XM-116\",\"XM-117\",\"XM-118\",\"XM-119\",\"XM-120\",\"XM-121\",\"XM-122\",\"XM-123\",\"XM-124\",\"XM-125\",\"XM-126\",\"XM-127\",\"XM-128\",\"XM-129\",\"XM-130\",\"XM-131\",\"XM-132\",\"XM-133\",\"XM-134\",\"XM-135\",\"XM-136\",\"XM-137\",\"XM-138\",\"XM-139\",\"XM-140\",\"XM-141\",\"XM-142\",\"XM-143\",\"XM-144\",\"XM-145\",\"XM-146\",\"XM-147\",\"XM-148\",\"XM-149\",\"XM-150\",\"XM-151\",\"XM-152\",\"XM-153\",\"XM-154\",\"XM-155\",\"XM-156\",\"XM-157\",\"XM-158\",\"XM-159\",\"XM-160\",\"XM-161\",\"XM-162\",\"XM-163\",\"XM-164\",\"XM-165\",\"XM-166\",\"XM-167\",\"XM-168\",\"XM-169\",\"XM-170\",\"XM-171\",\"XM-172\",\"XM-173\",\"XM-174\",\"XM-175\",\"XM-176\",\"XM-177\",\"XM-178\",\"XM-179\",\"XM-180\",\"XM-181\",\"XM-182\",\"XM-183\",\"XM-184\",\"XM-185\",\"XM-186\",\"XM-187\",\"XM-188\",\"XM-189\",\"XM-190\",\"XM-191\",\"XM-192\",\"XM-193\",\"XM-194\",\"XM-195\",\"XM-196\",\"XM-197\",\"XM-198\",\"XM-199\",\"XM-200\",\"XM-201\",\"XM-202\",\"XM-203\",\"XM-204\",\"XM-205\",\"XM-206\",\"XM-207\",\"XM-208\",\"XM-209\",\"XM-210\",\"XM-211\",\"XM-212\",\"XM-213\",\"XM-214\",\"XM-215\",\"XM-216\",\"XM-217\",\"XM-218\",\"XM-219\",\"XM-220\",\"XM-221\",\"XM-222\",\"XM-223\",\"XM-224\",\"XM-225\",\"XM-226\",\"XM-227\",\"XM-228\",\"XM-229\",\"XM-230\",\"XM-231\",\"XM-232\",\"XM-233\",\"XM-234\",\"XM-235\",\"XM-236\",\"XM-237\",\"XM-238\",\"XM-239\",\"XM-240\",\"XM-241\",\"XM-242\",\"XM-243\",\"XM-244\",\"XM-245\",\"XM-246\",\"XM-247\",\"XM-248\",\"XM-249\",\"XM-250\",\"XM-251\",\"XM-252\",\"XM-253\",\"XM-254\",\"XM-255\",\"XM-256\",\"XM-257\",\"XM-258\",\"XM-259\",\"XM-260\",\"XM-261\",\"XM-262\",\"XM-263\",\"XM-264\",\"XM-265\",\"XM-266\",\"XM-267\",\"XM-268\",\"XM-269\",\"XM-270\",\"XM-271\",\"XM-272\",\"XM-273\",\"XM-274\",\"XM-275\",\"XM-276\",\"XM-277\",\"XM-278\",\"XM-279\",\"XM-280\",\"XM-281\",\"XM-282\",\"XM-283\",\"XM-284\",\"XM-285\",\"XM-286\",\"XM-287\",\"XM-288\",\"XM-289\",\"XM-290\",\"XM-291\",\"XM-292\",\"XM-293\",\"XM-294\",\"XM-295\",\"XM-296\",\"XM-297\",\"XM-298\",\"XM-299\",\"XM-300\",\"XM-301\",\"XM-302\",\"XM-303\",\"XM-304\",\"XM-305\",\"XM-306\",\"XM-307\",\"XM-308\",\"XM-309\",\"XM-310\",\"XM-311\",\"XM-312\",\"XM-313\",\"XM-314\",\"XM-315\",\"XM-316\",\"XM-317\",\"XM-318\",\"XM-319\",\"XM-320\",\"XM-321\",\"XM-322\",\"XM-323\",\"XM-324\",\"XM-325\",\"XM-326\",\"XM-327\",\"XM-328\",\"XM-329\",\"XM-330\",\"XM-331\",\"XM-332\",\"XM-333\",\"XM-334\",\"XM-335\",\"XM-336\",\"XM-337\",\"XM-338\",\"XM-339\",\"XM-340\",\"XM-341\",\"XM-342\",\"XM-343\",\"XM-344\",\"XM-345\",\"XM-346\",\"XM-347\",\"XM-348\",\"XM-349\",\"XM-350\",\"XM-351\",\"XM-352\",\"XM-353\",\"XM-354\",\"XM-355\",\"XM-356\",\"XM-357\",\"XM-358\",\"XM-359\",\"XM-360\",\"XM-361\",\"XM-362\",\"XM-363\",\"XM-364\",\"XM-365\",\"XM-366\",\"XM-367\",\"XM-368\",\"XM-369\",\"XM-370\",\"XM-371\",\"XM-372\",\"XM-373\",\"XM-374\",\"XM-375\",\"XM-376\",\"XM-377\",\"XM-378\",\"XM-379\",\"XM-380\",\"XM-381\",\"XM-382\",\"XM-383\",\"XM-384\",\"XM-385\",\"XM-386\",\"XM-387\",\"XM-388\",\"XM-389\",\"XM-390\",\"XM-391\",\"XM-392\",\"XM-393\",\"XM-394\",\"XM-395\",\"XM-396\",\"XM-397\",\"XM-398\",\"XM-399\",\"XM-400\",\"XM-401\",\"XM-402\",\"XM-403\",\"XM-404\",\"XM-405\",\"XM-406\",\"XM-407\",\"XM-408\",\"XM-409\",\"XM-410\",\"XM-411\",\"XM-412\",\"XM-413\",\"XM-414\",\"XM-415\",\"XM-416\",\"XM-417\",\"XM-418\",\"XM-419\",\"XM-420\",\"XM-421\",\"XM-422\",\"XM-423\",\"XM-424\",\"XM-425\",\"XM-426\",\"XM-427\",\"XM-428\",\"XM-429\",\"XM-430\",\"XM-431\",\"XM-432\",\"XM-433\",\"XM-434\",\"XM-435\",\"XM-436\",\"XM-437\",\"XM-438\",\"XM-439\",\"XM-440\",\"XM-441\",\"XM-442\",\"XM-443\",\"XM-444\",\"XM-445\",\"XM-446\",\"XM-447\",\"XM-448\",\"XM-449\",\"XM-450\",\"XM-451\",\"XM-452\",\"XM-453\",\"XM-454\",\"XM-455\",\"XM-456\",\"XM-457\",\"XM-458\",\"XM-459\",\"XM-460\",\"XM-461\",\"XM-462\",\"XM-463\",\"XM-464\",\"XM-465\",\"XM-466\",\"XM-467\",\"XM-468\",\"XM-469\",\"XM-470\",\"XM-471\",\"XM-472\",\"XM-473\",\"XM-474\",\"XM-475\",\"XM-476\",\"XM-477\",\"XM-478\",\"XM-479\",\"XM-480\",\"XM-481\",\"XM-482\",\"XM-483\",\"XM-484\",\"XM-485\",\"XM-486\",\"XM-487\",\"XM-488\",\"XM-489\",\"XM-490\",\"XM-491\",\"XM-492\",\"XM-493\",\"XM-494\",\"XM-495\",\"XM-496\",\"XM-497\",\"XM-498\",\"XM-499\",\"XM-500\",\"XM-501\",\"XM-502\",\"XM-503\",\"XM-504\",\"XM-505\",\"XM-506\",\"XM-507\",\"XM-508\",\"XM-509\",\"XM-510\",\"XM-511\",\"XN-000\",\"XN-001\",\"XN-002\",\"XN-003\",\"XN-004\",\"XN-005\",\"XN-006\",\"XN-007\",\"XN-008\",\"XN-009\",\"XN-010\",\"XN-011\",\"XN-012\",\"XN-013\",\"XN-014\",\"XN-015\",\"XN-016\",\"XN-017\",\"XN-018\",\"XN-019\",\"XN-020\",\"XN-021\",\"XN-022\",\"XN-023\",\"XN-024\",\"XN-025\",\"XN-026\",\"XN-027\",\"XN-028\",\"XN-029\",\"XN-030\",\"XN-031\",\"XN-032\",\"XN-033\",\"XN-034\",\"XN-035\",\"XN-036\",\"XN-037\",\"XN-038\",\"XN-039\",\"XN-040\",\"XN-041\",\"XN-042\",\"XN-043\",\"XN-044\",\"XN-045\",\"XN-046\",\"XN-047\",\"XN-048\",\"XN-049\",\"XN-050\",\"XN-051\",\"XN-052\",\"XN-053\",\"XN-054\",\"XN-055\",\"XN-056\",\"XN-057\",\"XN-058\",\"XN-059\",\"XN-060\",\"XN-061\",\"XN-062\",\"XN-063\",\"XN-064\",\"XN-065\",\"XN-066\",\"XN-067\",\"XN-068\",\"XN-069\",\"XN-070\",\"XN-071\",\"XN-072\",\"XN-073\",\"XN-074\",\"XN-075\",\"XN-076\",\"XN-077\",\"XN-078\",\"XN-079\",\"XN-080\",\"XN-081\",\"XN-082\",\"XN-083\",\"XN-084\",\"XN-085\",\"XN-086\",\"XN-087\",\"XN-088\",\"XN-089\",\"XN-090\",\"XN-091\",\"XN-092\",\"XN-093\",\"XN-094\",\"XN-095\",\"XN-096\",\"XN-097\",\"XN-098\",\"XN-099\",\"XN-100\",\"XN-101\",\"XN-102\",\"XN-103\",\"XN-104\",\"XN-105\",\"XN-106\",\"XN-107\",\"XN-108\",\"XN-109\",\"XN-110\",\"XN-111\",\"XN-112\",\"XN-113\",\"XN-114\",\"XN-115\",\"XN-116\",\"XN-117\",\"XN-118\",\"XN-119\",\"XN-120\",\"XN-121\",\"XN-122\",\"XN-123\",\"XN-124\",\"XN-125\",\"XN-126\",\"XN-127\",\"XN-128\",\"XN-129\",\"XN-130\",\"XN-131\",\"XN-132\",\"XN-133\",\"XN-134\",\"XN-135\",\"XN-136\",\"XN-137\",\"XN-138\",\"XN-139\",\"XN-140\",\"XN-141\",\"XN-142\",\"XN-143\",\"XN-144\",\"XN-145\",\"XN-146\",\"XN-147\",\"XN-148\",\"XN-149\",\"XN-150\",\"XN-151\",\"XN-152\",\"XN-153\",\"XN-154\",\"XN-155\",\"XN-156\",\"XN-157\",\"XN-158\",\"XN-159\",\"XN-160\",\"XN-161\",\"XN-162\",\"XN-163\",\"XN-164\",\"XN-165\",\"XN-166\",\"XN-167\",\"XN-168\",\"XN-169\",\"XN-170\",\"XN-171\",\"XN-172\",\"XN-173\",\"XN-174\",\"XN-175\",\"XN-176\",\"XN-177\",\"XN-178\",\"XN-179\",\"XN-180\",\"XN-181\",\"XN-182\",\"XN-183\",\"XN-184\",\"XN-185\",\"XN-186\",\"XN-187\",\"XN-188\",\"XN-189\",\"XN-190\",\"XN-191\",\"XN-192\",\"XN-193\",\"XN-194\",\"XN-195\",\"XN-196\",\"XN-197\",\"XN-198\",\"XN-199\",\"XN-200\",\"XN-201\",\"XN-202\",\"XN-203\",\"XN-204\",\"XN-205\",\"XN-206\",\"XN-207\",\"XN-208\",\"XN-209\",\"XN-210\",\"XN-211\",\"XN-212\",\"XN-213\",\"XN-214\",\"XN-215\",\"XN-216\",\"XN-217\",\"XN-218\",\"XN-219\",\"XN-220\",\"XN-221\",\"XN-222\",\"XN-223\",\"XN-224\",\"XN-225\",\"XN-226\",\"XN-227\",\"XN-228\",\"XN-229\",\"XN-230\",\"XN-231\",\"XN-232\",\"XN-233\",\"XN-234\",\"XN-235\",\"XN-236\",\"XN-237\",\"XN-238\",\"XN-239\",\"XN-240\",\"XN-241\",\"XN-242\",\"XN-243\",\"XN-244\",\"XN-245\",\"XN-246\",\"XN-247\",\"XN-248\",\"XN-249\",\"XN-250\",\"XN-251\",\"XN-252\",\"XN-253\",\"XN-254\",\"XN-255\",\"XN-256\",\"XN-257\",\"XN-258\",\"XN-259\",\"XN-260\",\"XN-261\",\"XN-262\",\"XN-263\",\"XN-264\",\"XN-265\",\"XN-266\",\"XN-267\",\"XN-268\",\"XN-269\",\"XN-270\",\"XN-271\",\"XN-272\",\"XN-273\",\"XN-274\",\"XN-275\",\"XN-276\",\"XN-277\",\"XN-278\",\"XN-279\",\"XN-280\",\"XN-281\",\"XN-282\",\"XN-283\",\"XN-284\",\"XN-285\",\"XN-286\",\"XN-287\",\"XN-288\",\"XN-289\",\"XN-290\",\"XN-291\",\"XN-292\",\"XN-293\",\"XN-294\",\"XN-295\",\"XN-296\",\"XN-297\",\"XN-298\",\"XN-299\",\"XN-300\",\"XN-301\",\"XN-302\",\"XN-303\",\"XN-304\",\"XN-305\",\"XN-306\",\"XN-307\",\"XN-308\",\"XN-309\",\"XN-310\",\"XN-311\",\"XN-312\",\"XN-313\",\"XN-314\",\"XN-315\",\"XN-316\",\"XN-317\",\"XN-318\",\"XN-319\",\"XN-320\",\"XN-321\",\"XN-322\",\"XN-323\",\"XN-324\",\"XN-325\",\"XN-326\",\"XN-327\",\"XN-328\",\"XN-329\",\"XN-330\",\"XN-331\",\"XN-332\",\"XN-333\",\"XN-334\",\"XN-335\",\"XN-336\",\"XN-337\",\"XN-338\",\"XN-339\",\"XN-340\",\"XN-341\",\"XN-342\",\"XN-343\",\"XN-344\",\"XN-345\",\"XN-346\",\"XN-347\",\"XN-348\",\"XN-349\",\"XN-350\",\"XN-351\",\"XN-352\",\"XN-353\",\"XN-354\",\"XN-355\",\"XN-356\",\"XN-357\",\"XN-358\",\"XN-359\",\"XN-360\",\"XN-361\",\"XN-362\",\"XN-363\",\"XN-364\",\"XN-365\",\"XN-366\",\"XN-367\",\"XN-368\",\"XN-369\",\"XN-370\",\"XN-371\",\"XN-372\",\"XN-373\",\"XN-374\",\"XN-375\",\"XN-376\",\"XN-377\",\"XN-378\",\"XN-379\",\"XN-380\",\"XN-381\",\"XN-382\",\"XN-383\",\"XN-384\",\"XN-385\",\"XN-386\",\"XN-387\",\"XN-388\",\"XN-389\",\"XN-390\",\"XN-391\",\"XN-392\",\"XN-393\",\"XN-394\",\"XN-395\",\"XN-396\",\"XN-397\",\"XN-398\",\"XN-399\",\"XN-400\",\"XN-401\",\"XN-402\",\"XN-403\",\"XN-404\",\"XN-405\",\"XN-406\",\"XN-407\",\"XN-408\",\"XN-409\",\"XN-410\",\"XN-411\",\"XN-412\",\"XN-413\",\"XN-414\",\"XN-415\",\"XN-416\",\"XN-417\",\"XN-418\",\"XN-419\",\"XN-420\",\"XN-421\",\"XN-422\",\"XN-423\",\"XN-424\",\"XN-425\",\"XN-426\",\"XN-427\",\"XN-428\",\"XN-429\",\"XN-430\",\"XN-431\",\"XN-432\",\"XN-433\",\"XN-434\",\"XN-435\",\"XN-436\",\"XN-437\",\"XN-438\",\"XN-439\",\"XN-440\",\"XN-441\",\"XN-442\",\"XN-443\",\"XN-444\",\"XN-445\",\"XN-446\",\"XN-447\",\"XN-448\",\"XN-449\",\"XN-450\",\"XN-451\",\"XN-452\",\"XN-453\",\"XN-454\",\"XN-455\",\"XN-456\",\"XN-457\",\"XN-458\",\"XN-459\",\"XN-460\",\"XN-461\",\"XN-462\",\"XN-463\",\"XN-464\",\"XN-465\",\"XN-466\",\"XN-467\",\"XN-468\",\"XN-469\",\"XN-470\",\"XN-471\",\"XN-472\",\"XN-473\",\"XN-474\",\"XN-475\",\"XN-476\",\"XN-477\",\"XN-478\",\"XN-479\",\"XN-480\",\"XN-481\",\"XN-482\",\"XN-483\",\"XN-484\",\"XN-485\",\"XN-486\",\"XN-487\",\"XN-488\",\"XN-489\",\"XN-490\",\"XN-491\",\"XN-492\",\"XN-493\",\"XN-494\",\"XN-495\",\"XN-496\",\"XN-497\",\"XN-498\",\"XN-499\",\"XN-500\",\"XN-501\",\"XN-502\",\"XN-503\",\"XN-504\",\"XN-505\",\"XN-506\",\"XN-507\",\"XN-508\",\"XN-509\",\"XN-510\",\"XN-511\",\"XO-000\",\"XO-001\",\"XO-002\",\"XO-003\",\"XO-004\",\"XO-005\",\"XO-006\",\"XO-007\",\"XO-008\",\"XO-009\",\"XO-010\",\"XO-011\",\"XO-012\",\"XO-013\",\"XO-014\",\"XO-015\",\"XO-016\",\"XO-017\",\"XO-018\",\"XO-019\",\"XO-020\",\"XO-021\",\"XO-022\",\"XO-023\",\"XO-024\",\"XO-025\",\"XO-026\",\"XO-027\",\"XO-028\",\"XO-029\",\"XO-030\",\"XO-031\",\"XO-032\",\"XO-033\",\"XO-034\",\"XO-035\",\"XO-036\",\"XO-037\",\"XO-038\",\"XO-039\",\"XO-040\",\"XO-041\",\"XO-042\",\"XO-043\",\"XO-044\",\"XO-045\",\"XO-046\",\"XO-047\",\"XO-048\",\"XO-049\",\"XO-050\",\"XO-051\",\"XO-052\",\"XO-053\",\"XO-054\",\"XO-055\",\"XO-056\",\"XO-057\",\"XO-058\",\"XO-059\",\"XO-060\",\"XO-061\",\"XO-062\",\"XO-063\",\"XO-064\",\"XO-065\",\"XO-066\",\"XO-067\",\"XO-068\",\"XO-069\",\"XO-070\",\"XO-071\",\"XO-072\",\"XO-073\",\"XO-074\",\"XO-075\",\"XO-076\",\"XO-077\",\"XO-078\",\"XO-079\",\"XO-080\",\"XO-081\",\"XO-082\",\"XO-083\",\"XO-084\",\"XO-085\",\"XO-086\",\"XO-087\",\"XO-088\",\"XO-089\",\"XO-090\",\"XO-091\",\"XO-092\",\"XO-093\",\"XO-094\",\"XO-095\",\"XO-096\",\"XO-097\",\"XO-098\",\"XO-099\",\"XO-100\",\"XO-101\",\"XO-102\",\"XO-103\",\"XO-104\",\"XO-105\",\"XO-106\",\"XO-107\",\"XO-108\",\"XO-109\",\"XO-110\",\"XO-111\",\"XO-112\",\"XO-113\",\"XO-114\",\"XO-115\",\"XO-116\",\"XO-117\",\"XO-118\",\"XO-119\",\"XO-120\",\"XO-121\",\"XO-122\",\"XO-123\",\"XO-124\",\"XO-125\",\"XO-126\",\"XO-127\",\"XO-128\",\"XO-129\",\"XO-130\",\"XO-131\",\"XO-132\",\"XO-133\",\"XO-134\",\"XO-135\",\"XO-136\",\"XO-137\",\"XO-138\",\"XO-139\",\"XO-140\",\"XO-141\",\"XO-142\",\"XO-143\",\"XO-144\",\"XO-145\",\"XO-146\",\"XO-147\",\"XO-148\",\"XO-149\",\"XO-150\",\"XO-151\",\"XO-152\",\"XO-153\",\"XO-154\",\"XO-155\",\"XO-156\",\"XO-157\",\"XO-158\",\"XO-159\",\"XO-160\",\"XO-161\",\"XO-162\",\"XO-163\",\"XO-164\",\"XO-165\",\"XO-166\",\"XO-167\",\"XO-168\",\"XO-169\",\"XO-170\",\"XO-171\",\"XO-172\",\"XO-173\",\"XO-174\",\"XO-175\",\"XO-176\",\"XO-177\",\"XO-178\",\"XO-179\",\"XO-180\",\"XO-181\",\"XO-182\",\"XO-183\",\"XO-184\",\"XO-185\",\"XO-186\",\"XO-187\",\"XO-188\",\"XO-189\",\"XO-190\",\"XO-191\",\"XO-192\",\"XO-193\",\"XO-194\",\"XO-195\",\"XO-196\",\"XO-197\",\"XO-198\",\"XO-199\",\"XO-200\",\"XO-201\",\"XO-202\",\"XO-203\",\"XO-204\",\"XO-205\",\"XO-206\",\"XO-207\",\"XO-208\",\"XO-209\",\"XO-210\",\"XO-211\",\"XO-212\",\"XO-213\",\"XO-214\",\"XO-215\",\"XO-216\",\"XO-217\",\"XO-218\",\"XO-219\",\"XO-220\",\"XO-221\",\"XO-222\",\"XO-223\",\"XO-224\",\"XO-225\",\"XO-226\",\"XO-227\",\"XO-228\",\"XO-229\",\"XO-230\",\"XO-231\",\"XO-232\",\"XO-233\",\"XO-234\",\"XO-235\",\"XO-236\",\"XO-237\",\"XO-238\",\"XO-239\",\"XO-240\",\"XO-241\",\"XO-242\",\"XO-243\",\"XO-244\",\"XO-245\",\"XO-246\",\"XO-247\",\"XO-248\",\"XO-249\",\"XO-250\",\"XO-251\",\"XO-252\",\"XO-253\",\"XO-254\",\"XO-255\",\"XO-256\",\"XO-257\",\"XO-258\",\"XO-259\",\"XO-260\",\"XO-261\",\"XO-262\",\"XO-263\",\"XO-264\",\"XO-265\",\"XO-266\",\"XO-267\",\"XO-268\",\"XO-269\",\"XO-270\",\"XO-271\",\"XO-272\",\"XO-273\",\"XO-274\",\"XO-275\",\"XO-276\",\"XO-277\",\"XO-278\",\"XO-279\",\"XO-280\",\"XO-281\",\"XO-282\",\"XO-283\",\"XO-284\",\"XO-285\",\"XO-286\",\"XO-287\",\"XO-288\",\"XO-289\",\"XO-290\",\"XO-291\",\"XO-292\",\"XO-293\",\"XO-294\",\"XO-295\",\"XO-296\",\"XO-297\",\"XO-298\",\"XO-299\",\"XO-300\",\"XO-301\",\"XO-302\",\"XO-303\",\"XO-304\",\"XO-305\",\"XO-306\",\"XO-307\",\"XO-308\",\"XO-309\",\"XO-310\",\"XO-311\",\"XO-312\",\"XO-313\",\"XO-314\",\"XO-315\",\"XO-316\",\"XO-317\",\"XO-318\",\"XO-319\",\"XO-320\",\"XO-321\",\"XO-322\",\"XO-323\",\"XO-324\",\"XO-325\",\"XO-326\",\"XO-327\",\"XO-328\",\"XO-329\",\"XO-330\",\"XO-331\",\"XO-332\",\"XO-333\",\"XO-334\",\"XO-335\",\"XO-336\",\"XO-337\",\"XO-338\",\"XO-339\",\"XO-340\",\"XO-341\",\"XO-342\",\"XO-343\",\"XO-344\",\"XO-345\",\"XO-346\",\"XO-347\",\"XO-348\",\"XO-349\",\"XO-350\",\"XO-351\",\"XO-352\",\"XO-353\",\"XO-354\",\"XO-355\",\"XO-356\",\"XO-357\",\"XO-358\",\"XO-359\",\"XO-360\",\"XO-361\",\"XO-362\",\"XO-363\",\"XO-364\",\"XO-365\",\"XO-366\",\"XO-367\",\"XO-368\",\"XO-369\",\"XO-370\",\"XO-371\",\"XO-372\",\"XO-373\",\"XO-374\",\"XO-375\",\"XO-376\",\"XO-377\",\"XO-378\",\"XO-379\",\"XO-380\",\"XO-381\",\"XO-382\",\"XO-383\",\"XO-384\",\"XO-385\",\"XO-386\",\"XO-387\",\"XO-388\",\"XO-389\",\"XO-390\",\"XO-391\",\"XO-392\",\"XO-393\",\"XO-394\",\"XO-395\",\"XO-396\",\"XO-397\",\"XO-398\",\"XO-399\",\"XO-400\",\"XO-401\",\"XO-402\",\"XO-403\",\"XO-404\",\"XO-405\",\"XO-406\",\"XO-407\",\"XO-408\",\"XO-409\",\"XO-410\",\"XO-411\",\"XO-412\",\"XO-413\",\"XO-414\",\"XO-415\",\"XO-416\",\"XO-417\",\"XO-418\",\"XO-419\",\"XO-420\",\"XO-421\",\"XO-422\",\"XO-423\",\"XO-424\",\"XO-425\",\"XO-426\",\"XO-427\",\"XO-428\",\"XO-429\",\"XO-430\",\"XO-431\",\"XO-432\",\"XO-433\",\"XO-434\",\"XO-435\",\"XO-436\",\"XO-437\",\"XO-438\",\"XO-439\",\"XO-440\",\"XO-441\",\"XO-442\",\"XO-443\",\"XO-444\",\"XO-445\",\"XO-446\",\"XO-447\",\"XO-448\",\"XO-449\",\"XO-450\",\"XO-451\",\"XO-452\",\"XO-453\",\"XO-454\",\"XO-455\",\"XO-456\",\"XO-457\",\"XO-458\",\"XO-459\",\"XO-460\",\"XO-461\",\"XO-462\",\"XO-463\",\"XO-464\",\"XO-465\",\"XO-466\",\"XO-467\",\"XO-468\",\"XO-469\",\"XO-470\",\"XO-471\",\"XO-472\",\"XO-473\",\"XO-474\",\"XO-475\",\"XO-476\",\"XO-477\",\"XO-478\",\"XO-479\",\"XO-480\",\"XO-481\",\"XO-482\",\"XO-483\",\"XO-484\",\"XO-485\",\"XO-486\",\"XO-487\",\"XO-488\",\"XO-489\",\"XO-490\",\"XO-491\",\"XO-492\",\"XO-493\",\"XO-494\",\"XO-495\",\"XO-496\",\"XO-497\",\"XO-498\",\"XO-499\",\"XO-500\",\"XO-501\",\"XO-502\",\"XO-503\",\"XO-504\",\"XO-505\",\"XO-506\",\"XO-507\",\"XO-508\",\"XO-509\",\"XO-510\",\"XO-511\",\"XP-000\",\"XP-001\",\"XP-002\",\"XP-003\",\"XP-004\",\"XP-005\",\"XP-006\",\"XP-007\",\"XP-008\",\"XP-009\",\"XP-010\",\"XP-011\",\"XP-012\",\"XP-013\",\"XP-014\",\"XP-015\",\"XP-016\",\"XP-017\",\"XP-018\",\"XP-019\",\"XP-020\",\"XP-021\",\"XP-022\",\"XP-023\",\"XP-024\",\"XP-025\",\"XP-026\",\"XP-027\",\"XP-028\",\"XP-029\",\"XP-030\",\"XP-031\",\"XP-032\",\"XP-033\",\"XP-034\",\"XP-035\",\"XP-036\",\"XP-037\",\"XP-038\",\"XP-039\",\"XP-040\",\"XP-041\",\"XP-042\",\"XP-043\",\"XP-044\",\"XP-045\",\"XP-046\",\"XP-047\",\"XP-048\",\"XP-049\",\"XP-050\",\"XP-051\",\"XP-052\",\"XP-053\",\"XP-054\",\"XP-055\",\"XP-056\",\"XP-057\",\"XP-058\",\"XP-059\",\"XP-060\",\"XP-061\",\"XP-062\",\"XP-063\",\"XP-064\",\"XP-065\",\"XP-066\",\"XP-067\",\"XP-068\",\"XP-069\",\"XP-070\",\"XP-071\",\"XP-072\",\"XP-073\",\"XP-074\",\"XP-075\",\"XP-076\",\"XP-077\",\"XP-078\",\"XP-079\",\"XP-080\",\"XP-081\",\"XP-082\",\"XP-083\",\"XP-084\",\"XP-085\",\"XP-086\",\"XP-087\",\"XP-088\",\"XP-089\",\"XP-090\",\"XP-091\",\"XP-092\",\"XP-093\",\"XP-094\",\"XP-095\",\"XP-096\",\"XP-097\",\"XP-098\",\"XP-099\",\"XP-100\",\"XP-101\",\"XP-102\",\"XP-103\",\"XP-104\",\"XP-105\",\"XP-106\",\"XP-107\",\"XP-108\",\"XP-109\",\"XP-110\",\"XP-111\",\"XP-112\",\"XP-113\",\"XP-114\",\"XP-115\",\"XP-116\",\"XP-117\",\"XP-118\",\"XP-119\",\"XP-120\",\"XP-121\",\"XP-122\",\"XP-123\",\"XP-124\",\"XP-125\",\"XP-126\",\"XP-127\",\"XP-128\",\"XP-129\",\"XP-130\",\"XP-131\",\"XP-132\",\"XP-133\",\"XP-134\",\"XP-135\",\"XP-136\",\"XP-137\",\"XP-138\",\"XP-139\",\"XP-140\",\"XP-141\",\"XP-142\",\"XP-143\",\"XP-144\",\"XP-145\",\"XP-146\",\"XP-147\",\"XP-148\",\"XP-149\",\"XP-150\",\"XP-151\",\"XP-152\",\"XP-153\",\"XP-154\",\"XP-155\",\"XP-156\",\"XP-157\",\"XP-158\",\"XP-159\",\"XP-160\",\"XP-161\",\"XP-162\",\"XP-163\",\"XP-164\",\"XP-165\",\"XP-166\",\"XP-167\",\"XP-168\",\"XP-169\",\"XP-170\",\"XP-171\",\"XP-172\",\"XP-173\",\"XP-174\",\"XP-175\",\"XP-176\",\"XP-177\",\"XP-178\",\"XP-179\",\"XP-180\",\"XP-181\",\"XP-182\",\"XP-183\",\"XP-184\",\"XP-185\",\"XP-186\",\"XP-187\",\"XP-188\",\"XP-189\",\"XP-190\",\"XP-191\",\"XP-192\",\"XP-193\",\"XP-194\",\"XP-195\",\"XP-196\",\"XP-197\",\"XP-198\",\"XP-199\",\"XP-200\",\"XP-201\",\"XP-202\",\"XP-203\",\"XP-204\",\"XP-205\",\"XP-206\",\"XP-207\",\"XP-208\",\"XP-209\",\"XP-210\",\"XP-211\",\"XP-212\",\"XP-213\",\"XP-214\",\"XP-215\",\"XP-216\",\"XP-217\",\"XP-218\",\"XP-219\",\"XP-220\",\"XP-221\",\"XP-222\",\"XP-223\",\"XP-224\",\"XP-225\",\"XP-226\",\"XP-227\",\"XP-228\",\"XP-229\",\"XP-230\",\"XP-231\",\"XP-232\",\"XP-233\",\"XP-234\",\"XP-235\",\"XP-236\",\"XP-237\",\"XP-238\",\"XP-239\",\"XP-240\",\"XP-241\",\"XP-242\",\"XP-243\",\"XP-244\",\"XP-245\",\"XP-246\",\"XP-247\",\"XP-248\",\"XP-249\",\"XP-250\",\"XP-251\",\"XP-252\",\"XP-253\",\"XP-254\",\"XP-255\",\"XP-256\",\"XP-257\",\"XP-258\",\"XP-259\",\"XP-260\",\"XP-261\",\"XP-262\",\"XP-263\",\"XP-264\",\"XP-265\",\"XP-266\",\"XP-267\",\"XP-268\",\"XP-269\",\"XP-270\",\"XP-271\",\"XP-272\",\"XP-273\",\"XP-274\",\"XP-275\",\"XP-276\",\"XP-277\",\"XP-278\",\"XP-279\",\"XP-280\",\"XP-281\",\"XP-282\",\"XP-283\",\"XP-284\",\"XP-285\",\"XP-286\",\"XP-287\",\"XP-288\",\"XP-289\",\"XP-290\",\"XP-291\",\"XP-292\",\"XP-293\",\"XP-294\",\"XP-295\",\"XP-296\",\"XP-297\",\"XP-298\",\"XP-299\",\"XP-300\",\"XP-301\",\"XP-302\",\"XP-303\",\"XP-304\",\"XP-305\",\"XP-306\",\"XP-307\",\"XP-308\",\"XP-309\",\"XP-310\",\"XP-311\",\"XP-312\",\"XP-313\",\"XP-314\",\"XP-315\",\"XP-316\",\"XP-317\",\"XP-318\",\"XP-319\",\"XP-320\",\"XP-321\",\"XP-322\",\"XP-323\",\"XP-324\",\"XP-325\",\"XP-326\",\"XP-327\",\"XP-328\",\"XP-329\",\"XP-330\",\"XP-331\",\"XP-332\",\"XP-333\",\"XP-334\",\"XP-335\",\"XP-336\",\"XP-337\",\"XP-338\",\"XP-339\",\"XP-340\",\"XP-341\",\"XP-342\",\"XP-343\",\"XP-344\",\"XP-345\",\"XP-346\",\"XP-347\",\"XP-348\",\"XP-349\",\"XP-350\",\"XP-351\",\"XP-352\",\"XP-353\",\"XP-354\",\"XP-355\",\"XP-356\",\"XP-357\",\"XP-358\",\"XP-359\",\"XP-360\",\"XP-361\",\"XP-362\",\"XP-363\",\"XP-364\",\"XP-365\",\"XP-366\",\"XP-367\",\"XP-368\",\"XP-369\",\"XP-370\",\"XP-371\",\"XP-372\",\"XP-373\",\"XP-374\",\"XP-375\",\"XP-376\",\"XP-377\",\"XP-378\",\"XP-379\",\"XP-380\",\"XP-381\",\"XP-382\",\"XP-383\",\"XP-384\",\"XP-385\",\"XP-386\",\"XP-387\",\"XP-388\",\"XP-389\",\"XP-390\",\"XP-391\",\"XP-392\",\"XP-393\",\"XP-394\",\"XP-395\",\"XP-396\",\"XP-397\",\"XP-398\",\"XP-399\",\"XP-400\",\"XP-401\",\"XP-402\",\"XP-403\",\"XP-404\",\"XP-405\",\"XP-406\",\"XP-407\",\"XP-408\",\"XP-409\",\"XP-410\",\"XP-411\",\"XP-412\",\"XP-413\",\"XP-414\",\"XP-415\",\"XP-416\",\"XP-417\",\"XP-418\",\"XP-419\",\"XP-420\",\"XP-421\",\"XP-422\",\"XP-423\",\"XP-424\",\"XP-425\",\"XP-426\",\"XP-427\",\"XP-428\",\"XP-429\",\"XP-430\",\"XP-431\",\"XP-432\",\"XP-433\",\"XP-434\",\"XP-435\",\"XP-436\",\"XP-437\",\"XP-438\",\"XP-439\",\"XP-440\",\"XP-441\",\"XP-442\",\"XP-443\",\"XP-444\",\"XP-445\",\"XP-446\",\"XP-447\",\"XP-448\",\"XP-449\",\"XP-450\",\"XP-451\",\"XP-452\",\"XP-453\",\"XP-454\",\"XP-455\",\"XP-456\",\"XP-457\",\"XP-458\",\"XP-459\",\"XP-460\",\"XP-461\",\"XP-462\",\"XP-463\",\"XP-464\",\"XP-465\",\"XP-466\",\"XP-467\",\"XP-468\",\"XP-469\",\"XP-470\",\"XP-471\",\"XP-472\",\"XP-473\",\"XP-474\",\"XP-475\",\"XP-476\",\"XP-477\",\"XP-478\",\"XP-479\",\"XP-480\",\"XP-481\",\"XP-482\",\"XP-483\",\"XP-484\",\"XP-485\",\"XP-486\",\"XP-487\",\"XP-488\",\"XP-489\",\"XP-490\",\"XP-491\",\"XP-492\",\"XP-493\",\"XP-494\",\"XP-495\",\"XP-496\",\"XP-497\",\"XP-498\",\"XP-499\",\"XP-500\",\"XP-501\",\"XP-502\",\"XP-503\",\"XP-504\",\"XP-505\",\"XP-506\",\"XP-507\",\"XP-508\",\"XP-509\",\"XP-510\",\"XP-511\",\"XQ-000\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b654890b325d326ca19c5bc4dceb5b443fbce1a2452f263dd2c54c346b232c0a9f62665f54d605c54ca7be06795c903bdf312ea54467bf7906085e07b8965404\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "max_bps_zero", + "description": "A ceiling of 0.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":0,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"0e56db2940c5b3c0e29990ab79a955d50e9e0e6d7b10498ebfe4036351db7ba98b28d3c4dc29cc91bbf475cf7c90f9cd5dcc257b7cc95d8b686429e323983e07\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "energy_zero", + "description": "A figure of 0 microjoules: free energy is not a statement.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":0,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"8d0bc413ca2d0cff30092e0244edc388ccd703b674858af81f3c33875bf803a0e0ad1ae5f0ba5e6489900fb876cab5f772215942517d1b07517b3ad30b95fb03\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "energy_class_alone", + "description": "A class with no figure.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b37521db4323fd64a7449d561e00b0e6205b597e91db9c1f4480fa3bdfbaced8d6df7d08b80ef4938fc092ec2a7975bc125de1615e23c6508105cb41bba5f509\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "energy_figure_alone", + "description": "A figure with no class.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"37b845c1a585f7ba36c2ef8ecc9091465d4ba65d963facd98c01840e6dfea966e0176f1bf8873e03fdff83faa5d0cc2c5de2e5b2559210c7c4a48e2f57708809\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "direction_peer", + "description": "A direction of peer: a peer is not a direction.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"peer\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"96a214d90fd8df89b4cdccbc73d77b46a03251a85ae1601298a989f5cf569d4eac6f22d7e9ab0f413fd2bea55db146b698bb58f248d57e3427efc07073a4eb00\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "bearer_other", + "description": "A bearer class of broadcast.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"broadcast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"8a306b269cf63de0a7ab913779595f505ebd41e9cd5b37abd27244d46f93a804b8a3f7ce6372201a0dc980b9ad327cc1238bdc540143a1c4a6f00756a4067f05\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "unit_not_a_unit", + "description": "A unit of Bytes, which is not of route-record's unit form: malformed, rather than a unit §4.3 does not list.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"Bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"c2858e063ef204ef50336b22d65d54d45ef154e40b746ae38e80e396c59b245c3357cf5f884b48868e47e919a5962bf000611a7ae893a6e3378eb4be43ce4d02\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "divisor_zero", + "description": "A divisor of 0, below §4.2's least: malformed, rather than a divisor other than the unit's.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":0,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"779e4e74d18b4241cebd958139e74520e02d328ce9b13cf523963fe3e694c691f913378b7abd5685e6a0d71881141acdf888e2c098b9dd93637eb8ae2ca17509\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "energy_class_unknown", + "description": "A figure of class Measured, which is not one of route-record's classes.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Measured\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"d9b8b0e731f5ce956d5165f7d653cfbde16e34f4cc4b560fecaa3e8e177316ecd32b7dd48db5052aa0145c4aa403bb41c6bc8d5e97b5692200c0e2b90894170b\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "class_without_readings", + "description": "A calibrated figure at 1,000 ppm naming no records: a label alone.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":null,\"energy_ppm\":1000,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"83719bf59580cb3f846766c4396ca25553d685b326b1bee8ce1283240e7a6a71278a7ef90265577acb9bf7a4d7f719084a15ad3d06d53773cd8792cce7b5d30e\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "model_without_readings", + "description": "A model-based figure naming no records.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"446cef7f8abd8435fd6e2e62fe85241a5aa3f4e42812efc555112606c9ff8ba8adab62420f9b5eb4edfbf34aa5c919a816909c547ae67b036c1238c076421004\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "estimator_with_readings", + "description": "An estimator's figure naming a record.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"25905bcad383f13dfc0125bd6417dbf3c69416af08601551deaa467ec5d228a3e80391875da351691537acfb514604d28322c1584c260e8e423212a21aa6b20b\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "readings_without_figure", + "description": "A record named beside no figure and no class.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e0ab82cec5feec93fdd616caca3f9a78649cd7f0f621064f1fdf1d6b89a4a002f08e128c12c65358d35b185e61fcb4a47226a679bdb20d3058a424ffb809be0b\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "ppm_on_model", + "description": "A model-based figure over a record, declared to 1,000 ppm: that class declares none.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":1000,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e8a59303211189f92e117da09c19109c1a7c644041e59c41c0535dc58750439ee5796d8c299c87d252685a8b25b7ba3cf67adbde5f9b9f190a82ab06179cc90b\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "ppm_on_estimator", + "description": "An estimator's figure declared to 1,000 ppm.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":1000,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"c1814bbf1715e8aca5086c0087ba301b4f8fcdae5ba3c9a436f063de3ce24c93e85dd05d5934fb1e26a618838e85dd3eaff1fc6383e9821e13e110a79db98a09\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "hardware_without_ppm", + "description": "A counter's figure over a record with no uncertainty declared.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"OnChipCounter\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"a140f48d03dd7198b3b5a0763a19543a8aef30546e103949974ea77979114c4b33c5ad86e1c2e0f1c22126d865cefab6531911b7238417f1b8bae3e5200f8304\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "ppm_zero", + "description": "A calibrated figure over a record declared to 0 ppm.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":0,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"515364eb04c461f42846330aebe3a878f64beacf569576e920c703479047421597c37face5a740456adf451ef3da4ee2c02ab6258b1df2ca722a08299ca83c05\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "ppm_past_bound", + "description": "A calibrated figure over a record declared to 2^32 ppm.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":4294967296,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"037ed86f501dda5ea8f7864efcc0bd32cc397feaa5a0d9c0336ccb4c9f79b42ee2077d1f0524b1f290bf07a965e040a46139bd579aba711597887cbf5df32d02\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "readings_empty", + "description": "A model-based figure naming an empty list of records.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"3adc9afda2263ef7fe1a5b10a4bfa936538cfdb07a32b450949f1707612d6ac6353d3eed80ea42e69ac66fef1880f8afb0e3e614b50743e0909f446b19970103\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "readings_past_bound", + "description": "A model-based figure naming 65 records: the SHA-256 digests of the bytes 0 to 64, ascending.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"084fed08b978af4d7d196a7446a86b58009e636b611db16211b65a9aadff29c5\",\"09fc96082d34c2dfc1295d92073b5ea1dc8ef8da95f14dfded011ffb96d3e54b\",\"19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7\",\"1f18d650d205d71d934c3646ff5fac1c096ba52eba4cf758b865364f4167d3cd\",\"265fda17a34611b1533d8a281ff680dc5791b0ce0a11c25b35e11c8e75685509\",\"2b4c342f5433ebe591a1da77e013d1b72475562d48578dca8b84bac6651c3cb9\",\"2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3\",\"2f0fd1e89b8de1d57292742ec380ea47066e307ad645f5bc3adad8a06ff58608\",\"32ebb1abcc1c601ceb9c4e3c4faba0caa5b85bb98c4f1e6612c40faa528a91c9\",\"334359b90efed75da5f0ada1d5e6b256f4a6bd0aee7eb39c0f90182a021ffc8b\",\"36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068\",\"380918b946a526640a40df5dced6516794f3d97bbd9e6bb553d037c4439f31c3\",\"3973e022e93220f9212c18d0d0c543ae7c309e46640da93a4a0314de999f5112\",\"41b805ea7ac014e23556e98bb374702a08344268f92489a02f0880849394a1e4\",\"452ba1ddef80246c48be7690193c76c1d61185906be9401014fe14f1be64b74f\",\"4a64a107f0cb32536e5bce6c98c393db21cca7f4ea187ba8c4dca8b51d4ea80a\",\"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a\",\"4bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a\",\"4d7b3ef7300acf70c892d8327db8272f54434adbc61a4e130a563cb59a0d0f47\",\"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce\",\"58f7b0780592032e4d8602a3e8690fb2c701b2e1dd546e703445aabd6469734d\",\"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9\",\"62b67e1f685b7fef51102005dddd27774be3fee38c42965c53aab035d0b6b221\",\"67586e98fad27da0b9968bc039a1ef34c939b9b8e523a8bef89d478608c5ecf6\",\"684888c0ebb17f374298b65ee2807526c066094c701bcc7ebbe1c1095f494fc1\",\"68aa2e2ee5dff96e3355e6c7ee373e3d6a4e17f75f9518d843709c0c9bc3e3d4\",\"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\",\"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d\",\"77adfc95029e73b173f60e556f915b0cd8850848111358b1c370fb7c154e61fd\",\"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451\",\"7cb7c4547cf2653590d7a9ace60cc623d25148adfbc88a89aeb0ef88da7839ba\",\"83891d7fe85c33e52c8b4e5814c92fb6a3b9467299200538a6babaa8b452d879\",\"8a331fdde7032f33a71e1b2e257d80166e348e00fcb17914f48bdb57a1c63007\",\"8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1\",\"8a8de823d5ed3e12746a62ef169bcf372be0ca44f0a1236abc35df05d96928e1\",\"8f11b05da785e43e713d03774c6bd3405d99cd3024af334ffd68db663aa37034\",\"951dcee3a7a4f3aac67ec76a2ce4469cc76df650f134bf2572bf60a65c982338\",\"9652595f37edd08c51dfa26567e6cd76e6fa2709c3e578478ca398d316837a7a\",\"9d1e0e2d9459d06523ad13e28a4093c2316baafe7aec5b25f30eba2e113599c4\",\"a318c24216defe206feeb73ef5be00033fa9c4a74d0b967f6532a26ca5906d3b\",\"ab897fbdedfa502b2d839b6a56100887dccdc507555c282e59589e06300a62e2\",\"ba5ec51d07a4ac0e951608704431d59a02b21a4e951acc10505a8dc407c501ee\",\"bb7208bc9b5d7c04f1236a82a0093a5e33f40423d5ba8d4266f7092c3ba43b62\",\"bbf3f11cb5b43e700273a78d12de55e4a7eab741ed2abf13787a4d2dc832b8ec\",\"bd4fc42a21f1f860a1030e6eba23d53ecab71bd19297ab6c074381d4ecee0018\",\"beead77994cf573341ec17b58bbf7eb34d2711c993c1d976b128b3188dc1829a\",\"c3641f8544d7c02f3580b07c0f9887f0c6a27ff5ab1d4a3e29caf197cfc299ae\",\"c555eab45d08845ae9f10d452a99bfcb06f74a50b988fe7e48dd323789b88ee3\",\"ca358758f6d27e6cf45272937977a748fd88391db679ceda7dc7bf1f005ee879\",\"cdb4ee2aea69cc6a83331bbe96dc2caa9a299d21329efb0336fc02a82e1839a8\",\"d03502c43d74a30b936740a9517dc4ea2b2ad7168caa0a774cefe793ce0b33e7\",\"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35\",\"dabd3aff769f07eb2965401eb029974ebba3407afd02b26ddb564ea5f8efae72\",\"dbc1b4c900ffe48d575b5da5c638040125f65db0fe3e24494b76ea986457d986\",\"dc0e9c3658a1a3ed1ec94274d8b19925c93e1abb7ddba294923ad9bde30f8cb8\",\"e52d9c508c502347344d8c07ad91cbd6068afc75ff6292f062a09ca381c89e71\",\"e77b9a9ae9e30b0dbdb6f510a264ef9de781501d7b6b92ae89eb059c5ab743db\",\"e7ac0786668e0ff0f02b62bd04f45ff636fd82db63b1104601c975dc005f3a67\",\"e7cf46a078fed4fafd0b5e3aff144802b853f8ae459a4f0c14add3314b7cc3a6\",\"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683\",\"ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d\",\"ef6cbd2161eaea7943ce8693b9824d23d1793ffb1c0fca05b600d3899b44c977\",\"f299791cddd3d6664f6670842812ef6053eb6501bd6282a476bbbf3ee91e750c\",\"ffe679bb831c95b67dc17819c63c5090d221aac6f4c7bf530f594ab43d21fa1e\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"6004d34c299976d005c2fb3b021555928c6a735d1c0fe63e112c43518c73317458d7fbf0ef75c68c69481aa92cfe18632d0e4a8d2ded68cad042f3841df80804\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "readings_unordered", + "description": "A model-based figure naming two records in descending order.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b\",\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"ae3c51ca21af9d1589970c7a7565d94305de96ba92d7963a14a07cea8a6ba4bcfb77f35ffb5ab5a97d8204f4a14f3dcd162a11e94968db73fb6a376d8f62680a\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "readings_repeated", + "description": "A model-based figure naming one record twice.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\",\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"74f7e7ca05280608805bdb17dfbfd06ceb5485a206808e9b09b14dd0aee4759249081130acbaa89deb2b6e3abf92479d7a32fcb7e1a355e6dcba8ecf1214ee03\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "readings_digest_form", + "description": "A model-based figure naming a record in uppercase hexadecimal.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"AEE7450795A5A8B5419C3AD7CC80196F23801097426E72E7039DA58138FB7E30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"a05c19fdff6dfb1ad0fc8e94e74e3d3adcb6d322c40d807534b48657d9dad4be9e5710650cc1d6aa369a795bb354f74bc57c61acc56a812f93661499ebbcf607\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "member_missing_ppm", + "description": "An entry with no energy_ppm.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"21e8dc578045d1a38e163ae9a946bcca25881187999bfded2ccd14c1294a371c74422808502d227d8724cd90204051c2060466169d0bee9047d5485c1ca06b02\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "mergeable_with_readings", + "description": "readings_differ_not_mergeable with both entries naming the same record: one entry over {XA, XB} in two.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"37ab7fc19de026385eae40746d06e0b976454da6fd78cc7744f0cab6281d58351c56059b0e3df8585b48c7913000ad8143c15b5e38f94d688509f89979118e0d\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_malformed" + } + }, + { + "name": "unit_unknown", + "description": "A unit of seconds.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"seconds\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"531bb6ba5313706aa187e7da86dbd83dd1d364ba7ae7952d4f0cbaad68581b3f6de76ca90bd0acbfce6e3a114b39364a82f91afbaf466e963aec5250d498fd0b\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "objects_absent", + "description": "A unit of objects, which no record counts.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"objects\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e9368e9109be97a60c4c1fe55bab5a39ce28421b7a3cecb4291651acbcb82fefc69fb8f876c702ca9ec5d3ce29ca5d30d38267163a06150cacc5fc29ccbf7506\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "bytes_sent_two_way", + "description": "bytes_sent on a bidirectional bearer.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b94c412c7187aa65534db528821c1e367d40625f0b26d28faa9ebdedd78e0dd8016a3a066acad97d78a6e8e28971f2d803d62b20aa90ca210decf15a7bf1fc02\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "bytes_on_broadcast", + "description": "bytes on a unidirectional bearer: no sender counts a receiver's bytes there.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"1fa08f35de7be5005c44788afe8d263cc3ea35de253b2b93cd94483f3dc9307629c2fc6111c30f8d99bbc62ec2a10a301d8e0ec9a8ca61aa93a947eab2d74d09\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "bytes_uplink", + "description": "bytes uplink.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"4d0c65f81f113c25f8c7465f6ce729482bcd41d213a6bcbabfe816eb443d74516cb58b35f6fc141116be8be0bbee81b745e4ac774d64dc29ecbd745c121ea502\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "subscriber_us_on_multicast", + "description": "subscriber_us on a multicast bearer.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"c718a4641bf6675a939d4e308c93a1c869da1f0245c719e0a1aacd7c2916d98e9cd8ddf703eea6453ab2b430048102eb156a51e50a9385667e56982f169e0805\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "subscriber_us_uplink", + "description": "subscriber_us uplink.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"uplink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"137927791bc1ddbdd7bff302bf74de489618dd1b9242a59378140638f9038572ca8a98c10433ffc8bbc7be925426039223cf54cdcf60297a863e892012592b01\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "publisher_us_downlink", + "description": "publisher_us downlink.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"publisher_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e5cd3e5d9e5cc36ae3eca29b94774cc0aca3dc181a12d2b79f7233dfcae81050519aeb0f1d1b6367a1360a7d41d303422d275900c5a1fd0f51075d827c634d01\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "divisor_not_the_units", + "description": "bytes per 10^6.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"5c135342639db49916d44fe0814563ee469c5a6a28010b714bbc132eb4b56dd95e17d8c9542c6939d859f4266c7564f6ab7fc1b5f7d3c06fd73b2e036c45ee0c\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "room_price_past_u32", + "description": "A subscriber_us price of 2^32.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":4294967296,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"67325f5ae5cc098624f8230f474a3ff44436aa021a6ac2753d08354ce636e005956591d0f6ba2fefb643f3661c9b4a67b1cddf88dfddadb0145c36265a3c590a\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "readings_on_transmission", + "description": "Unidirectional bytes_sent, a model-based figure over a record: no record a seller signs states a transmission's energy.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"2373a91fc5c1337e19af1f88ca38d734e6782a168264e2fd501ced6bbdbbc4d01ad3afffe32d0b8df1f4af2d6c5b49bf6fc94b929057cf54ed45bc73691a6d02\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "readings_on_publisher_time", + "description": "Bidirectional uplink publisher_us, a model-based figure over a record: no record a seller signs states publisher time beside its energy.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"uplink\",\"divisor\":1000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":1,\"unit\":\"publisher_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"2ec5344a508fe2a5cdd833577936409e435071e81d9077a6644407e3c389ddf72c016b0f2f803559b118ecc9834ac9a8b0309a3c4c9490c2d4034ea6ddd4e801\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_unit_invalid" + } + }, + { + "name": "footprints_overlap", + "description": "{XA, XB} and {XB} at one unit and ceiling: XB at two prices.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":25000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"f993637d6a55ad7b00cb6712bffa73d8f5822404f7e483a3668f1cd5f1207f2339596cebf73b70dd2a43c77fddfaf4e506dae3dc57eff0d493c8d2e49bc9e90c\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_ambiguous" + } + }, + { + "name": "country_and_subdivision_across_entries", + "description": "{XB} at one price and {XB-1} at another, at one unit and ceiling.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB-1\"],\"max_bps\":8000000,\"price\":25000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b4ce310a8b2bfd96d5e394cb91298743a55a85f3694a9cf426a1a136df193267809c5f5e0c1e10382221eadc2d5c263137f7e86eecddbf2bd3a41a6413ea1b00\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_ambiguous" + } + }, + { + "name": "price_changed", + "description": "unicast_tiers's 8,000,000 price one more, its signature over the old body.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000001,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_signature_invalid" + } + }, + { + "name": "small_order_key", + "description": "The seller the identity point, of small order, with (R, S) = (B, 1), which the cofactorless equation accepts over any message.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"0100000000000000000000000000000000000000000000000000000000000000\",\"sig\":\"58666666666666666666666666666666666666666666666666666666666666660100000000000000000000000000000000000000000000000000000000000000\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_signature_invalid" + } + }, + { + "name": "scalar_not_reduced", + "description": "unicast_tiers's signature with S + L in place of S, which verifies reduced mod L but not under the strict rule.", + "text": "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e8156b93a1f9b12d2516dc1c87066372de2d0968fd4213f4c75feb857101fd831d\",\"version\":1}", + "outcome": { + "outcome": "refuse", + "reason": "rung_prices_signature_invalid" + } + } + ], + "verdicts": [ + { + "name": "before_issued", + "description": "A microsecond before issued.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793663999999999, + "outcome": { + "lists": [ + "reject reason=rung_prices_not_yet" + ] + } + }, + { + "name": "at_issued", + "description": "At issued.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793664000000000, + "outcome": { + "lists": [ + "stands" + ] + } + }, + { + "name": "last_instant", + "description": "A microsecond before it expires.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793750399999999, + "outcome": { + "lists": [ + "stands" + ] + } + }, + { + "name": "at_expires", + "description": "At expires.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793750400000000, + "outcome": { + "lists": [ + "reject reason=rung_prices_expired" + ] + } + }, + { + "name": "later_list_stands", + "description": "The seller's list a minute later: the earlier one superseded.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":18000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"45e291f64912e26eb41dcd17db86f6e4226e35d4330b51d8a48361cf0c030385f9d70e2741c903e73618f17f215425603f8c20970214b8bd0bdeed61f019ce02\",\"version\":1}" + ], + "at_us": 1793667600000000, + "outcome": { + "lists": [ + "superseded", + "stands" + ] + } + }, + { + "name": "later_list_not_yet", + "description": "A later list that is not yet supersedes nothing.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":18000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"45e291f64912e26eb41dcd17db86f6e4226e35d4330b51d8a48361cf0c030385f9d70e2741c903e73618f17f215425603f8c20970214b8bd0bdeed61f019ce02\",\"version\":1}" + ], + "at_us": 1793664030000000, + "outcome": { + "lists": [ + "stands", + "reject reason=rung_prices_not_yet" + ] + } + }, + { + "name": "expired_latest_revives_nothing", + "description": "The latest list lapsed: the seller has no standing list, and the earlier one stays superseded.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":15000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793664120000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"82494ca3822c117e5e64475ba7906b2194e46e5e177ddc74e657cd9d07686981d98d7eb7ed1fafc1e54e1ee0ca4125c6af26067d56229cc93c1e81aae0d7a902\",\"version\":1}" + ], + "at_us": 1793664180000000, + "outcome": { + "lists": [ + "superseded", + "reject reason=rung_prices_expired" + ] + } + }, + { + "name": "same_list_twice", + "description": "One list given twice: one list, standing.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "outcome": { + "lists": [ + "stands", + "stands" + ] + } + }, + { + "name": "same_body_two_signatures_stand", + "description": "One body under two signatures: one list, not a contradiction.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"b054a91f279a945e5c8f5adbf3070ac7a3b5d13f22656948b6753fa26192a2cc080c0539c10e2a4ce9c8b9bb4307ad5eb80ad972ec1161d1a82dfacfab22e202\",\"version\":1}" + ], + "at_us": 1793667600000000, + "outcome": { + "lists": [ + "stands", + "stands" + ] + } + }, + { + "name": "same_instant_differ", + "description": "Two lists of one seller at one instant that differ: both set aside.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":18000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"45e291f64912e26eb41dcd17db86f6e4226e35d4330b51d8a48361cf0c030385f9d70e2741c903e73618f17f215425603f8c20970214b8bd0bdeed61f019ce02\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":19000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"1368df3b6aa75e2edec6f33e241da13961bbeb3d4a81ceb694dc3e866b5443f8107fec5ec6b568c5bd8d7738b0feb6766d859ffad4be6a302c053189f1926b01\",\"version\":1}" + ], + "at_us": 1793667600000000, + "outcome": { + "lists": [ + "set-aside reason=rung_prices_contradicted", + "set-aside reason=rung_prices_contradicted" + ] + } + }, + { + "name": "sellers_apart", + "description": "Two sellers' lists: each stands.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "outcome": { + "lists": [ + "stands", + "stands" + ] + } + } + ], + "comparisons": [ + { + "name": "unknown_audience", + "description": "No audience: one receiver bears the whole transmission. A first by price; B's break-even is 5,000.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "6c4a610732ed2d61df8e666d5e53707a9b4114d95ef62b9fe0336eedf178a281", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": 5000, + "rank": 2 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + } + } + }, + { + "name": "audience_at_break_even", + "description": "An audience of 5,000: equal costs per receiver, so energy decides, and B's figure per receiver is the smaller.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":5000,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "32738704fb78a6c70751c6000d0ac4ef9e385ca3faf911989070d82827de41ae", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 5000, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 8000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 10000000, + "energy": 200000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": 5000, + "rank": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 15000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + } + } + }, + { + "name": "audience_below_break_even", + "description": "An audience of 4,999: B's cost per receiver is 10,002,001, rounded up, so A first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":4999,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "76a86ddfc409fedc451faf03b14fa391358faf450db6e3eabf0bf9a3fdf30117", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 4999, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 8001601, + "energy": 150030007, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 10002001, + "energy": 200040009, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": 5000, + "rank": 2 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 15003001, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + } + } + }, + { + "name": "audience_large", + "description": "An audience of 100,000: B first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":100000,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "797944c342fed9e2be17e82c92c5f2f9fcd51379e6d4d4de7b6005a9272256da", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 100000, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 400000, + "energy": 7500000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 500000, + "energy": 10000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": 5000, + "rank": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 750000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + } + } + }, + { + "name": "tier_lowest_that_covers", + "description": "A rung of 3,000,000: 2M is below it, the unbounded tier is removed for 8M, and 8M prices it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "6c4a610732ed2d61df8e666d5e53707a9b4114d95ef62b9fe0336eedf178a281", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "rate_at_ceiling", + "description": "A rung of exactly 8,000,000: 8M covers it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":8000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "64061ce7c8c1463ebf20bc9826c8ac135355762ab083cd74305d273286f8a885", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "rate_unknown", + "description": "No rung rate: only the unbounded tier covers it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":null,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "a6badd3519731b752657b2ed08eb290fdc21c52ea80d03cc4f27f8d302015c48", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 8000000 + } + ], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "pass_rate_is_not_rate", + "description": "A rung of 3,000,000 and passes of 9,000,000: A's 8M tier holds the rung, B's 8M tier is below the passes, and B's unbounded tier prices them.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":9000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "5b2e9b06e3194ce0f8597179ef05ee03920d64e615f8627871b25a2f63b6696b", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + }, + { + "limit": "rate", + "value": 8000000 + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "rate", + "value": 8000000 + } + ], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": 75000000000, + "break_even": 7500, + "rank": 2 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2 + } + } + } + }, + { + "name": "pass_rate_unknown", + "description": "No pass rate: only B's unbounded tier covers the passes.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":null,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "a79e23903cba26372048258a4068bdcdb819f4d434479c34fc050d09bceed476", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + }, + { + "limit": "rate", + "value": 8000000 + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "rate", + "value": 8000000 + } + ], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": 75000000000, + "break_even": 7500, + "rank": 2 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2 + } + } + } + }, + { + "name": "tier_other_direction_ignored", + "description": "Passes of 500,000 downlink: B's uplink tier of 1,000,000 is another direction's, and B's downlink 8M tier prices them.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":500000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "8168572c9e25ebcdc9ffc6e3764e3a32f1664a8ba6118c06c19652b9550fa254", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": null, + "rank": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "region_not_listed", + "description": "To XC, which no footprint holds.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XC\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "854f4e4c3d158afccdd672437590ea9bcf292a2a764fa2821b13239c8a2c3b98", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA", + "XB" + ] + } + ], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA", + "XB" + ] + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + }, + { + "limit": "footprint", + "value": [ + "XA", + "XB" + ] + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA", + "XB" + ] + }, + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA", + "XB" + ] + } + ], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA", + "XB" + ] + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [], + "decision": { + "decided_by": "none", + "runner_up": null + } + } + }, + { + "name": "subdivision_in_its_country", + "description": "To XB-1, against {XA, XB}: held, because the code names its country.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB-1\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "db2d86d87a3487801c26f5a5299c248ab022f672368be29952e193539c83c680", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": 5000, + "rank": 2 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + } + } + }, + { + "name": "country_not_in_its_subdivision", + "description": "To XB, against a peer's {XB-1}: a country is never held by its subdivision.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB-1\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a\",\"sig\":\"58c466b9ec9d6af1c3374c0ce3ac8e03005bd21147b03611d26b43f075e4d687cd8c8208d6e15b4271472db757f57a1ba503ffc8edfe605e4480fd5be0490402\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "fad6dd2c6656748a6bb9e5277bccb92b6c4b62d68a861023ef72681600154f6a", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "ea70b84fe69bc45508747d216510b717e1d252ac819e96efd133eaa662369c1e" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "footprint", + "value": [ + "XB-1" + ] + } + ], + "cost": 15000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [], + "decision": { + "decided_by": "none", + "runner_up": null + } + } + }, + { + "name": "bearer_limited", + "description": "Only bidirectional bearers considered: B's entries removed.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":[\"bidirectional\"],\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "b1ebbce59eeeaee53381c37681a6a8fbf6fa73a178863340fb18f9b1a5b53d0b", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "multicast" + }, + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "unidirectional" + } + ], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "unidirectional" + }, + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "unidirectional" + }, + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "unit_not_stated", + "description": "Only an hour of pass_us asked for: no bytes or bytes_sent entry is priced in it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":3600000000,\"unit\":\"pass_us\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "3ff920693dbba2ea3f6c74b20d7bd5c99faec30952f847f09f0955ea53d5a0cb", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": null, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [], + "cost": 7200000000, + "energy": 144000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 7200000000, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "unit", + "value": "bytes" + }, + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [ + { + "limit": "unit", + "value": "bytes" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "unit", + "value": "bytes" + }, + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "bytes_is_not_bytes_sent", + "description": "Only bytes asked for, with B listed: a byte delivered is not a byte transmitted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "fad6dd2c6656748a6bb9e5277bccb92b6c4b62d68a861023ef72681600154f6a", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": null, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "other_currency", + "description": "A list in EUR, against a request in USD: never converted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"EUR\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":1000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"34b4d9043156cb6dcf0beb0a2949b7559c940d2bcb6dbe8c53a9b30278e3a746\",\"sig\":\"4630f04f3d185df8de83efbcef1c67b2a938039050b274af810f0ca4feb294bf6681bffcb3a1842187c8dcee164c3d316e63af6182fe2c1850cd95ae77ead409\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "fad6dd2c6656748a6bb9e5277bccb92b6c4b62d68a861023ef72681600154f6a", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "7b895298e7aecd89a5a3a4cd044ef094b0ccab9b3cb245e9863ddd9ef0b3eb11" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "34b4d9043156cb6dcf0beb0a2949b7559c940d2bcb6dbe8c53a9b30278e3a746", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "currency", + "value": "EUR" + } + ], + "cost": 500000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "unit_price_cap_across_divisors", + "description": "A cap of 1 per 300,000,000 bytes: 3 per 10^9 is within it, 4 per 10^9 is not.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":3,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"d3d6ed971ae5b961f3caab570ccae784d4abb58e442e03fafb5d6383bbe18d27f52e77212a1c33dd8a77ad17e05d4afc8bcad3edf49e42dd4309f5ec67c01f05\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":4,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"df1382b7fa4a6a9fce9ca9db12baca6ea70e386ff45abea750db784ace04e951a80c836e313ba56e54dc2cb190504e9fb8965919cd5bbd4b09da5053d97eb803\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[{\"divisor\":300000000,\"price\":1,\"unit\":\"bytes\"}],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "e61a9a1d52d6a6eb6477ad1e25ff574980e91daa6f38c229dc23f253a8cf2749", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "918f66fb394947f6ab17b76116274e9de61dffa25c060b81281fe9c03f691ed7" + }, + { + "verdict": "stands", + "digest": "69a493fd0388d3ed245e680c0b5040bdc2b5007a9a8c2fa5671d9f9ea0fde2c2" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "unit_price", + "value": 4 + } + ], + "cost": 2, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 1, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "several_limits_in_order", + "description": "Only bidirectional bearers and bytes, to XB: B's multicast entry is removed by bearer, unit and footprint, in that order.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":[\"bidirectional\"],\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "003db4e2ea9ba04817e1e78e97a5d4bf2243714e0881f48c43ae83d943206a34", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "multicast" + }, + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "unidirectional" + }, + { + "limit": "unit", + "value": "bytes_sent" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "unidirectional" + }, + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": null, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "bearer", + "value": "unidirectional" + }, + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [], + "decision": { + "decided_by": "none", + "runner_up": null + } + } + }, + { + "name": "checked_class_before_figure", + "description": "By energy: a larger calibrated figure its seller's records bear out, under a key confirmed for that class, before a smaller estimate.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + } + } + }, + { + "name": "energy_unknown_last", + "description": "By energy: an entry with no figure after a stated one, though it is cheaper.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"ff76656b2f03a4d1912bdc44a67c38dfcd5315f3357e720584adc3de8f2d7ba5e0b8d7b299cecf6471976f463f4b5b9d1866f7a2b0437cabb1206c9399bfa905\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "f20efd21b709d25a2174777d9a2e87ac3d8e978214ada8f9451b536008231f7c" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 500000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "energy_past_bound_ranks_unknown", + "description": "By energy, for 20,000,000,000 bytes: a checked calibrated figure past 2^53 − 1 is unknown, and ranks after an estimator's.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d6b385e6bd5351228cf9c3e94c574c67dc21de81a1f8d0e17f89ff3fff79fb4a\"],\"energy_ppm\":1000,\"energy_uj\":1000000000000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"5a2e2ffe896fb493c2c4cf9e0e84099cf8d3fe23b01deefad0d70c030344826080baf93c2992b9a4e5f9ff343cfc028347478332c2bf0bec6a781b6061cc5a03\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1000000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\",\"sig\":\"de9a58728a382cfa833c8125afe0144e9a22549f85619101737e83df391c273c1ff8d36b7ad1aa4d37faf8ed3bd7c6a3eb3a7ccdcee54c0632a1a9efc7db8801\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":20000000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000000080c6a47e8d030005000003e800000000d693a4000000000863616c2d30303031010001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b87fb2907b5ef00da9370798e9a257ddf8f0589c431703e2feab959a57abe21ecf0ccb4b8eeb7ca80aee16f694c9c2eb4c4eb4f9b516ec23dec7a5139420e03" + ], + "outcome": { + "outcome": "plan", + "request": "2f393dbf744fb31d92763fdc5d2bf3ea98789abaa95b07ffecbf385459a532ea", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f6b20b869d932441f55407e95959efa8739226bfdc948bf0c761ce2764e29332" + }, + { + "verdict": "stands", + "digest": "673b064bfbf09f74736af8cf3ec47f9d21c147f8261fe1031edf8150c7b4bc32" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "d6b385e6bd5351228cf9c3e94c574c67dc21de81a1f8d0e17f89ff3fff79fb4a" + ], + "audience": 1, + "candidates": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 400000000, + "energy": 20000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 400000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "checked", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "cost_past_bound", + "description": "By price, for 20,000,000,000 bytes: a cost past 2^53 − 1 is unknown, and ranks last.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":100,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000000000000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"fce1c8dab273d294c9e000fff7112674ff560fd94f79cd94facf44c0bcca62c0c6a599cfa55de4a5e8eb99fe526cfdf24bb6897b2c387323afba598cb3980d00\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1000000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\",\"sig\":\"de9a58728a382cfa833c8125afe0144e9a22549f85619101737e83df391c273c1ff8d36b7ad1aa4d37faf8ed3bd7c6a3eb3a7ccdcee54c0632a1a9efc7db8801\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":20000000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "f95f8434735e041bd32e665c9a15e2a738fb1d5896b1b7f576559cfc059b7bc8", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f29fefff544837b3660305ca0978e08d2e2746baddabaa997e5096c4ec80173e" + }, + { + "verdict": "stands", + "digest": "673b064bfbf09f74736af8cf3ec47f9d21c147f8261fe1031edf8150c7b4bc32" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 400000000, + "energy": 20000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": null, + "energy": 2000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "zero_price_break_even", + "description": "A receiver price of 0: no audience makes B's priced transmission no dearer, and its free one is no dearer at one receiver.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":0,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"f68613047245943e9184660b03838cb7344c29d87743d1bfc7eb0007474412fd118f08c8257eaf40df8abbed55e73d902cbb2fb77745029158a8985462484c01\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":0,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"0226adfdfa0465e4e9a6c94dae8926dd4aff7ffbe9af76a4c4967907c13f13d952eb0de8ceecbf8250921ddf723e47d85316004933ca3cee7733b0a3a1aeaa05\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "6c4a610732ed2d61df8e666d5e53707a9b4114d95ef62b9fe0336eedf178a281", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "75ecd3558362434cf8cc4e0687a9ef3ba1b0bc150576140f16cae0bad4207766" + }, + { + "verdict": "stands", + "digest": "08af24cff35ed8381344ecd6d2033a0e3b2428ed4c160f121bbb01c5185b0ce8" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 0, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": 0, + "break_even": 1, + "rank": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": 50000000000, + "break_even": null, + "rank": 3 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 0, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "seller", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "seller_breaks_tie", + "description": "Two sellers at one price and one figure: the smaller key first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"cfde9ebb77ad56f03bf18e56160ece16484d99f0a74f911fcc93713255313f16294159279c48b67a0ea37c01fc103aea932ff340e422e01da9b222074dd52306\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\",\"sig\":\"f64654a88d78743b21623dd6aaee8c17603ac94a81489689d7129006b85f0e843acef53284598fe109d2cd1d44532926f04c6232b867f3aebe66f03a1eec700b\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "fad6dd2c6656748a6bb9e5277bccb92b6c4b62d68a861023ef72681600154f6a", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "895da51950672738943b3320514bb52736b482e21953e1d4d51fc0b49beb62d5" + }, + { + "verdict": "stands", + "digest": "bdaa7ac11946a21d63a410bdc376914e034ce2e4f601ad7b6e80f8496c0049fa" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "seller", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "entry_breaks_tie", + "description": "One seller's receiver and transmission prices costing the same per receiver, with no figure: the earlier entry first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"4af65f741c002fceefed68b9e4b9a2809ecf269c624feec4450bea3836c892ef86781ec8275509b01ac454955758511d94a91835b7d3ed38bd4a8b19fe335300\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "6c4a610732ed2d61df8e666d5e53707a9b4114d95ef62b9fe0336eedf178a281", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "4b01ad6ad7ec9d923faf7ff575e169006c4de3efc3e776ae61172f03649b2b7a" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": 10000000, + "break_even": 1, + "rank": 2 + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 1 + } + ], + "decision": { + "decided_by": "entry", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 1 + } + } + } + }, + { + "name": "label_alone_refused", + "description": "G states a calibrated figure at 1,000 ppm and names no records: its list does not read, and F alone survives.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":null,\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"24fcbd040f1f4125242734af8ad3e55221ba54ab7b732bc11b4ec7c1cc78283279b3f1d27c59e320b5a5fc7968d2f2e0fdf7a5f7c66670e0e97a4b1419e4a30d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "reject reason=rung_prices_malformed", + "digest": null + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "label_with_readings_not_given", + "description": "G's calibrated label names its own record, which it does not give, and its key is confirmed for that class: an estimate.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"de3dd86423e16599d337c78e8af284a1d71980d523b97b1925dc7bc632f052aa9ce03c91afe5ad14430cacdd1b024782eb81e8770805c77494cabeffd8aaa70a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"},{\"class\":\"CalibratedInstrument\",\"key\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c38b1ffd3b0cbf64833e4228ba5b912938785a2dfba79f681ee3f62580e58a02", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "a68e550b47cb3eb7a4107161e6e5d1f8bb8b5f40a2b15818d97a0bf5c515c652" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "label_with_readings_not_given_by_price", + "description": "label_with_readings_not_given by price: the costs are equal, and F's checked figure decides.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"de3dd86423e16599d337c78e8af284a1d71980d523b97b1925dc7bc632f052aa9ce03c91afe5ad14430cacdd1b024782eb81e8770805c77494cabeffd8aaa70a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"},{\"class\":\"CalibratedInstrument\",\"key\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "81109fa2d123b4d79732f8f69f444108a9c0d0622b2bf4b0f1f83cff94411a97", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "a68e550b47cb3eb7a4107161e6e5d1f8bb8b5f40a2b15818d97a0bf5c515c652" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "label_on_own_readings_unconfirmed", + "description": "G's calibrated label over its own record, which bears it out, under a key confirmed only for ModelBased: an estimate, after F's checked model-based figure.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"de3dd86423e16599d337c78e8af284a1d71980d523b97b1925dc7bc632f052aa9ce03c91afe5ad14430cacdd1b024782eb81e8770805c77494cabeffd8aaa70a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"},{\"class\":\"ModelBased\",\"key\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "b3352eb3fc81eb388a5ae5841cd9e9df4fe2ff2ae849bdd7a5da6353bcefa754", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "a68e550b47cb3eb7a4107161e6e5d1f8bb8b5f40a2b15818d97a0bf5c515c652" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "unconfirmed", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "label_on_own_readings_confirmed_as_counter", + "description": "The same, G's key confirmed only for OnChipCounter: a counter's confirmation is not a calibrated instrument's, and G's figure is an estimate.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"de3dd86423e16599d337c78e8af284a1d71980d523b97b1925dc7bc632f052aa9ce03c91afe5ad14430cacdd1b024782eb81e8770805c77494cabeffd8aaa70a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"},{\"class\":\"OnChipCounter\",\"key\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "9244acbe85a20c0d1c3c2febf3a0531d7a390955c9797a91f20492919bcbe4c0", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "a68e550b47cb3eb7a4107161e6e5d1f8bb8b5f40a2b15818d97a0bf5c515c652" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "unconfirmed", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "label_on_borrowed_readings", + "description": "G's calibrated label over C's records, which G did not sign: refuted, and its figure set aside.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"e048f97548f3b1df1d22485f74853408f3dda5cc36b7e4dc058894da9cac5f87b993e9870fa70dfabb9dff6ad77303fcccd43d82b34be9cdf02bdd500367d801\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "6cafe25fc7ca068075eaababcb19db06b74471f9e625ea7ac8a8645f4d55d5e9" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "refuted reason=rung_prices_evidence_signer", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "label_on_readings_of_another_class", + "description": "G's calibrated label over its own counter's record: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"f0ad03e0664a76aacd89b630591182a16625837411391980f836124538885185\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"e5f059d4c3051fcdd6aecb1770cddca62e0f6cd612644cd9104acdf1f35fed5e475b8daa1f5733b2a5bb22470a311179e2093caef713e8c60045ba2f477dec02\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000004000003e800000000d693a4000101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000079b95a3a12fcb311d7cf263ab81f273bf93d7e92812a57d7612a20335044425125f1f3e86fb9d75e692b53d6a558830f10effd7695e9845eedfb31a99997a10b" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "bf631519dfcf7762a73adcbffaafed9ad8c55e35ef46c9c7a4ffc2d4a1f5d56b" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "f0ad03e0664a76aacd89b630591182a16625837411391980f836124538885185" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "readings_unmetered", + "description": "G's model-based figure over its own record that carries the unmetered marker: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"0464f3e1a01f5d9cf96ac7a7d155d242f0b5fc6dcb073532f51acba1c97ce8fb\"],\"energy_ppm\":null,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"4a583ca87a33ec2e61a51540f8b38ec13ea5bf27cb8654214992f9196e3df8f3f0d419122bcd475a5a37e0e9e4949722ab9b597f2e4e4d5f01e836864de57706\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000000000000000000000001000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a02903c193cc0c6745633e1a2964b6ddfc895375f232f4fa9d1c6ce11652c84f63ad16a084503c7a02a946fc5af6856b5511e29a0200916b76ad30b9c89808", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "c36f6547f96eb710283d89e7dd5037f4f5083ff1d4e1f6e392f014fc6a78b4d8" + } + ], + "evidence": [ + "0464f3e1a01f5d9cf96ac7a7d155d242f0b5fc6dcb073532f51acba1c97ce8fb", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "uncertainty_understated", + "description": "G's calibrated figure declared to 500 ppm over its own record declared to 1,000: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":500,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"99ed6332e6d5c52692fbdff9a24cc4304919715e7af9dc04d81fe8e168feba3b8a6144f84424302e63a488c48350f67e07a815ba6dadc7438f0f4de161c9ab08\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "066f34dfbb12cd3e914d8a85d1577d43425bd01f67a70e93a01f8d2545e57e0b" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 500, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "uncertainty_overstated", + "description": "G's calibrated figure declared to 2,000 ppm over its own record declared to 1,000: refuted, for its uncertainty is the largest its records declare, not more.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":2000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"8409783c488114735688caa07274f003c12d1c22ddb2dc7e65fed218931bcc6fafc30ccbeb84314657c91dd3f0c0ffbd5c3e019b12692ac85ce2456622fcec04\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "645033bd272ef405ce4361261d42a2725e4af555c0d1e44982df676f94e59a0f" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 2000, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "largest_uncertainty_first", + "description": "G's calibrated figure declared to 1,000 ppm over two of its records, the first named declared to 50,000 and the second to 1,000: refuted, for the largest is 50,000 wherever it is named.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"9d1157f7400fee5295bec616816cf34d6e623773932711fdad7bfdcc5a27dfaa\",\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"4514becffdb69bd4bbb4db04bf41dd0a8704782344a8cdeda44ebfeff41168c8ca0496e9846055a7387eeeb2f7974042dca97d68b79ac5779c74da03338dbb07\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa0200000000050000c35000000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037f8871c15659899148e212cc672d937bf3e3193f2eb456b2b3eff4ee34732c7958106c505f185173370010935e6df8f52be44c1407d515545d69396ef9e60d", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "b9dc167f6b165e28ed2eed9fdd37f749ea21636361fb81fd18c9cc65219e7923" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "9d1157f7400fee5295bec616816cf34d6e623773932711fdad7bfdcc5a27dfaa", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "figure_below_its_readings", + "description": "G states 100,000,000 per 10^9 over its own record whose rate is 400,000,000: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"19fe86d7455b4e017e6310cdb343b52efb39cff9bf7fdfff4ec5c4fb59fcd532\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"12b20a49e30d829eddd4fd34a62b06eddacf3c49b22ac74682e8a187931af3f2e9809a25efb4d22fb2414e8fd8491c03fd7e5c61ae76ecf71e31d415c6a4de0c\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000000c2eb0b0000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c53365ee370ac297270d603aaeeecbf82c61c6189a419ee3b0c0ef2969d9b5b988e0006e1a6bf8234de0f1c649e060babb6048d2b5c82e5b6262dfba8d8a20b", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "058fa918d24fe30250e2666ac02a650c8940bee57deb32e104d1bfe544eddd53" + } + ], + "evidence": [ + "19fe86d7455b4e017e6310cdb343b52efb39cff9bf7fdfff4ec5c4fb59fcd532", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_figure", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "refuted_before_window", + "description": "figure_below_its_readings relying on records up to 86,400,000,000 µs old: G's records are outside the window too, and the refutation comes first; F's figure, outside it, ranks as an estimate and still first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"19fe86d7455b4e017e6310cdb343b52efb39cff9bf7fdfff4ec5c4fb59fcd532\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"12b20a49e30d829eddd4fd34a62b06eddacf3c49b22ac74682e8a187931af3f2e9809a25efb4d22fb2414e8fd8491c03fd7e5c61ae76ecf71e31d415c6a4de0c\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":86400000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000000c2eb0b0000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c53365ee370ac297270d603aaeeecbf82c61c6189a419ee3b0c0ef2969d9b5b988e0006e1a6bf8234de0f1c649e060babb6048d2b5c82e5b6262dfba8d8a20b", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "a7af98014c0f6fd4934d459608ec82bb856d7a86e5ea67b8161f93df4e6498d4", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "058fa918d24fe30250e2666ac02a650c8940bee57deb32e104d1bfe544eddd53" + } + ], + "evidence": [ + "19fe86d7455b4e017e6310cdb343b52efb39cff9bf7fdfff4ec5c4fb59fcd532", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "outside-window", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_figure", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "uncertainty_before_figure", + "description": "G's calibrated figure of 100,000,000 declared to 500 ppm over its own record of 1,000 ppm whose rate is 400,000,000: rule 4 refutes it before rule 5.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"19fe86d7455b4e017e6310cdb343b52efb39cff9bf7fdfff4ec5c4fb59fcd532\"],\"energy_ppm\":500,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"3aae1453ef57430f671670dc195bc155b2fe2b04722f8beb1a99eb97cac9fc5921456689bb5d348d753561b51f05b731f530c5f7b2cd72420faa0f021b386c0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000000c2eb0b0000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c53365ee370ac297270d603aaeeecbf82c61c6189a419ee3b0c0ef2969d9b5b988e0006e1a6bf8234de0f1c649e060babb6048d2b5c82e5b6262dfba8d8a20b", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "28b90d5a50e71b0ef1fc27e1b52aced1da34a581773665ddcd17994dbf3fc0a2" + } + ], + "evidence": [ + "19fe86d7455b4e017e6310cdb343b52efb39cff9bf7fdfff4ec5c4fb59fcd532", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 500, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "readings_delivered_nothing", + "description": "G's calibrated figure over its own record of no media bytes out, only an events track's: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"6f4a4323708589f2ce26e66580bbc548285a868c1820b8ecc87341a78b252344\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"831be9c6da01e7e64409c7bb91233bd74608b85d276c468ec181c163af9088119b25adc21a2d29c402894ca158fad4fb738774951fdd6a32b3764a62d0028106\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d303030310100020000000000000000000000000000000000000000000000000000000000000000020100000000000000e80300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2b950c17bf078871b1266d1d21e8fcbad373e224cc334df8b69d7ca077ed9a74db7f72dffd2eae22140353e53eed355dbb2be96420e7028bdb575b236b4aa00", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "dfedbc5fecb74fe818346a0d7505eba460fbca069f75064e310e48d27fdff125" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "6f4a4323708589f2ce26e66580bbc548285a868c1820b8ecc87341a78b252344", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_figure", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "readings_not_a_relay", + "description": "G's calibrated figure over its own ingest gateway's record: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"a5fd091f7a40401c4f8c85a40cec2a9ad5f924794991d87f3ffb166d603a2565\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"576a6b8d94507d8eb46b8a2eb32bcef699f941657c7030632331508db99d3200191b9be2b4429f3cd85559961cecaa1593ce754a056c18f50da9db14a180460d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd003000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7c573871507557ae9a8e22a666d037376e95919fddf0b4908e5ef4000b1569a23066a8c204c844e71c71857ebd31b3ebb2300a273a5f99020266d79f3f390d", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "b415fc6fee1f638ffb846af746a4f3f8faaca63690140046a94f88382d1ea4e6" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "a5fd091f7a40401c4f8c85a40cec2a9ad5f924794991d87f3ffb166d603a2565", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_role", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "readings_of_a_compositor", + "description": "G's calibrated figure over its own compositor's record: refuted, for a compositor serves no subscriber.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"42eb869f459206220011adc167551a83e86f4857c048f3d6f692f66f957ddc97\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"997e64435ceb9b80bd73a35603ec19a15af9e7feeeebdc6ec3be3de01a977a6ca4bf97200841641553709765c52faa03f066ea2d2f309e97c4d989daf164d508\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd002000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c629c35b332eb1f65189abd8e026bf82cbe229dc938b91e9b9975be849c6e2e33c666debe84154b2bef1d255625f68ef4dc109382376d7b30bd681d082dc910e", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "c02775c35481a35fbfa5f29b4ff3d7da15e2aaebbd439ef81d68a50127bca118" + } + ], + "evidence": [ + "42eb869f459206220011adc167551a83e86f4857c048f3d6f692f66f957ddc97", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_role", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "role_before_signer_and_class", + "description": "C's model-based figure over G's ingest gateway's calibrated record, which breaks rules 1, 2 and 3: the role refutes it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"a5fd091f7a40401c4f8c85a40cec2a9ad5f924794991d87f3ffb166d603a2565\"],\"energy_ppm\":null,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"8d7827a38720167bbada6a863d25c33926630aec8531c82132506fe286bee20fb64d1efd6ad30b20fb4fd212b92ebbbf8bce86a5e8f13d4d394bb3fd64dab004\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd003000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7c573871507557ae9a8e22a666d037376e95919fddf0b4908e5ef4000b1569a23066a8c204c844e71c71857ebd31b3ebb2300a273a5f99020266d79f3f390d", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "d725989342ac30d1674831ff8b47bf9b96f1a8e158575070f80fd98df4e7744e" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "a5fd091f7a40401c4f8c85a40cec2a9ad5f924794991d87f3ffb166d603a2565", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "refuted reason=rung_prices_evidence_role", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "signer_before_class", + "description": "G's calibrated figure over D's counter record, which breaks rules 2 and 3: the signer refutes it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"0fd46209938d6dfd5904f1a2ed63e9a972cb97dea06c16a74c1e29b7ba201717457cad6477c5085569c1316b5af3d408ff388e117a64cab3aacd508313cf2200\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f65301000000000000000000a493d6000000000051250200000000040000753000000000d693a4000100000100000000000000000000000000000000000000000000000000000000a493d600000000000000000000000000000000000000000000000000000000000000000000000000a493d60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007428900d331731b51de4eaad6ad43af4311f521421fd4f8ec4a6d3c59c404eddd8ad625269194376f3e96fa9fbb1664ec029fb4d3a62d92f1e90f0b628d65f04", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "60d686c8214f90d80b9c2c6488266cefa1cd4ef42545e656bd3043b27696fa2f" + } + ], + "evidence": [ + "57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_signer", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "rules_record_by_record", + "description": "G's calibrated figure over its model-based record, named first, and its ingest gateway's record: the first record's class refutes it, though the second breaks rule 1.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"6c15e39b6e3451b8027305d589ccf42b48bc31fdba18a781eb1019f789b2b2dd\",\"a5fd091f7a40401c4f8c85a40cec2a9ad5f924794991d87f3ffb166d603a2565\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"5b4eec62c34856a9567eb0f5077338752315d0709182d14082d38f6b45b3ff891235a6c5b5a4ccffb933ae19476d3347748bc0931fe1e36446a370c8ef70a306\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa02000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1a3938de27be8d0db9dbaaea2bbc4746538f63a16aa66c179a0616f8bc327fd0bfc576bccedc1401bb2e73bc09c5c7f2308b17b681bf4ca938f7b88a3ba5b0b", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd003000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7c573871507557ae9a8e22a666d037376e95919fddf0b4908e5ef4000b1569a23066a8c204c844e71c71857ebd31b3ebb2300a273a5f99020266d79f3f390d", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "8a2d3783a229b5e7575f815673be44ea14bd650eefe46a1bb207036335c13307" + } + ], + "evidence": [ + "6c15e39b6e3451b8027305d589ccf42b48bc31fdba18a781eb1019f789b2b2dd", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "a5fd091f7a40401c4f8c85a40cec2a9ad5f924794991d87f3ffb166d603a2565", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "refuted_before_absent", + "description": "G's calibrated figure over two of its records, the calibrated one named first and not given, and the counter's one given: the given record's class refutes it, and the missing one does not leave it absent.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\",\"f0ad03e0664a76aacd89b630591182a16625837411391980f836124538885185\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"01a5f680b7a75bc783e936293e3555c370e74bfd6ce5463f6610941b72d69088bd17f69ad6df6a3dba0a74a678faa998e9f46e6d638a8e11a1fa2ac91682ae03\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000004000003e800000000d693a4000101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000079b95a3a12fcb311d7cf263ab81f273bf93d7e92812a57d7612a20335044425125f1f3e86fb9d75e692b53d6a558830f10effd7695e9845eedfb31a99997a10b" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "ad15793f7ce8f60dfd189a4646b3c90ccdac4a708896b6f2e883a22004349c50" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "f0ad03e0664a76aacd89b630591182a16625837411391980f836124538885185" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "refuted reason=rung_prices_evidence_class", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "reading_not_a_hop_record", + "description": "G's calibrated figure naming R1's digest: R1 names that digest but is not a per-hop record, so the record is absent.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"374989d65e1088b7710a87c2f06f2465f36a43a6e2e1d21168919bb535e222cf2eaca9e774ec403b83eee8bccc55649ffa5e359cae22058c653a01ccfc8e8509\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "8bf0ee9d3530f5df96f20e34e91a42934ab3e967d59630e7af0c4acddea881f7" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "unconfirmed_ranks_as_estimate", + "description": "C's records bear its figure out, but the request confirms no key: an estimate, after A's smaller one.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "62db5d1cb056d76800029e44705fdf87618a4802c067da8de1e45dba72ee2dd3", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "unconfirmed", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "confirmed_for_another_class", + "description": "C's records bear its calibrated figure out, but the request confirms C's key only for ModelBased: an estimate, after A's smaller one.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"ModelBased\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "0265dd88eeea73c5aaf8a095f6d4314019938e1f607778ad362fffadde8b3100", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "unconfirmed", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "evidence_of_a_removed_candidate", + "description": "A cap of 25,000,000 per 10^9 bytes removes C's calibrated entry, priced at 30,000,000: its evidence is still checked and its energy rank 0, and A's 8,000,000 tier survives alone.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[{\"divisor\":1000000000,\"price\":25000000,\"unit\":\"bytes\"}],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "12e718f94774973a6ef573308c7c6ec365dd84a1b17b9af07290b638d78006ff", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "unit_price", + "value": 30000000 + } + ], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + }, + { + "limit": "unit_price", + "value": 40000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "readings_at_window_edge", + "description": "C's records' instant is 86,400,000,001 µs before the comparison, and the request relies on records exactly that old: checked.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":86400000001,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "e89a80a3f5aef24bfd9b2de2ba7b0a6b798acc38548cbc9f3e6296e42dba5db4", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + } + } + }, + { + "name": "readings_past_window", + "description": "The same, relying on records up to 86,400,000,000 µs old: outside the window, an estimate.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":86400000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "a7af98014c0f6fd4934d459608ec82bb856d7a86e5ea67b8161f93df4e6498d4", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "outside-window", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "window_before_unconfirmed", + "description": "readings_past_window with no key confirmed: the records are outside the window, which comes first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":86400000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "225bc036db256086ea6dbd8bc9588c3235c8852644f6b5302a52c3a9f1ffa75d", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "outside-window", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "readings_at_comparison_instant", + "description": "C's figure in a list issued two days before the others, compared at its records' instant, 1,793,581,199,999,999: a record is current only before the instant used, so outside the window.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793491200000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"305d017535e8abf09bc2cf1d22167c3ee153e36088df03343692e558944598abfbf9b04a76aa0b1bc6ca2aa3fd2bb33ae9edf97155c14d7d96604fea3941950a\",\"version\":1}" + ], + "at_us": 1793581199999999, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793581199999999, + "lists": [ + { + "verdict": "stands", + "digest": "10d678cabb3914f0e48ecaaa643006a7a697c202343588bde3b71275bd2d0d43" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "outside-window", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "readings_before_comparison_instant", + "description": "The same a microsecond later, at 1,793,581,200,000,000: checked.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793491200000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"305d017535e8abf09bc2cf1d22167c3ee153e36088df03343692e558944598abfbf9b04a76aa0b1bc6ca2aa3fd2bb33ae9edf97155c14d7d96604fea3941950a\",\"version\":1}" + ], + "at_us": 1793581200000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793581200000000, + "lists": [ + { + "verdict": "stands", + "digest": "10d678cabb3914f0e48ecaaa643006a7a697c202343588bde3b71275bd2d0d43" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "stale_record_first", + "description": "C's calibrated figure over a month-old record of R0, named first, and a current one: one record outside the window puts the figure outside it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"6a21b0eaf5f891b08c3410adc057b9faf4805d8b77ad07e764c0a1bc0a709f7f\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"4dae4312befdfa76bdbca4271d2675a6dcdf2ac5f2b2da95351e087a1cb6564c4a63fde0506dcd1d54c63e787e2d4a41e0157b540608d07ae358c35b7941b60c\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500c05372f85c060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000217754974cdaf6ad3873db8ae8e3f6c994073ad0f70807213f3070ee4ac1d6448b7570f60632ab77e54fb73e51979b5f3e96218766ec2129992868d24734de03", + "574d483101526da47530aa7e409ccdefb1a56218b6f772279f0c2cebc3e4447a93f7b3d316a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031010001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ec1afc51e1dfd105f0cc9102604f8ee91da8b7c0f0819bc0c3ddf0aec1b0f12dede159d17e5c039856fe17645b5eb313246226c5c48a46e7f1615ba539db1e06", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "09780e5961e6bd4973c368d877cb5ef986f04bfcdbaf694f90b7417120171b94" + } + ], + "evidence": [ + "526da47530aa7e409ccdefb1a56218b6f772279f0c2cebc3e4447a93f7b3d316", + "6a21b0eaf5f891b08c3410adc057b9faf4805d8b77ad07e764c0a1bc0a709f7f", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "outside-window", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "stale_record_last", + "description": "C's calibrated figure over a current record and a month-old record of R0, named last: outside the window.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"c54c5671c0f104efbc328326b9b7b012434a705808539833dd835e2cbb6283fe\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"36501961ab462f9e6ed8cb8d87ac84a0dad5ac76c0aabff47360fc793caf068b741db361d24b9e207653aedfdb0e64d909d542047c276e259840992bae82150d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500c05372f85c060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000217754974cdaf6ad3873db8ae8e3f6c994073ad0f70807213f3070ee4ac1d6448b7570f60632ab77e54fb73e51979b5f3e96218766ec2129992868d24734de03", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d483101526da47530aa7e409ccdefb1a56218b6f772279f0c2cebc3e4447a93f7b3d316a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004280a69614b8e163070927a345b5e3968e42a1f20faa511d7220aff5e2551ed699781f743224f9e2e60a82dbd5a92a8c8f8cefeba3c9a028eb55f4da4caca70d" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "b3575c251de274d4526d6a3bc33c96a3f42855426b614ed90b59e04d4fb828ac" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "526da47530aa7e409ccdefb1a56218b6f772279f0c2cebc3e4447a93f7b3d316", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "c54c5671c0f104efbc328326b9b7b012434a705808539833dd835e2cbb6283fe" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "outside-window", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "record_not_given", + "description": "Only one of C's two records given: absent.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "absent_before_window", + "description": "record_not_given relying on records up to 86,400,000,000 µs old: the record given is outside the window too, and absent comes first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":86400000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "a7af98014c0f6fd4934d459608ec82bb856d7a86e5ea67b8161f93df4e6498d4", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "room_not_given", + "description": "Both of C's records, without the room descriptor that places them in time: absent.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "record_signature_fails", + "description": "C's second record given only with its last byte changed: its one copy does not verify, so it is absent, and refutes nothing.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230d", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "one_copy_verifies", + "description": "C's second record given twice, once with its last byte changed: the copy that verifies gives it.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230d", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + } + } + }, + { + "name": "room_signature_fails", + "description": "C's records, with the room descriptor's last byte changed: the room is not given, so absent.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0d", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "absent", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "uncertainty_orders_one_class", + "description": "Two checked calibrated figures: E's 455,000,000 at 5,000 ppm (455,000,000 × 1,005,000) before C's 450,000,000 at 20,000 ppm (450,000,000 × 1,020,000).", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"15e9d3cbe4ba4f70fa436666fa8abd41630041c0cd9f9eac2a6e0b2069c3cbc7\"],\"energy_ppm\":5000,\"energy_uj\":910000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\",\"sig\":\"e6f4f871e1e369ade0b0473f35199bd79c4ceeb4c0d484909e2f0a6a08fa728763e1e3fa889920789bd860c63f49ffbf7fbd9c57b65c26e6817cc9ac100e9d02\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da01000000000000000000a493d600000000807f3d3600000000050000138800000000d693a4000000000863616c2d30303031010001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e5487c43c8dd96ceeb6be16839d93062e91225c548caa69bf8a213f97c7f6cf5ac9288faa811a27c9840eb5ea9186b31ec68e888bcd7a9b6b9200b5a8c9e60c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + }, + { + "verdict": "stands", + "digest": "ebe5c9e8fc9ff60a3ba9dbb8c1a2e774862beeca97d3421003211db09c97dbdb" + } + ], + "evidence": [ + "15e9d3cbe4ba4f70fa436666fa8abd41630041c0cd9f9eac2a6e0b2069c3cbc7", + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 455000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 5000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "uncertainty_not_precision_alone", + "description": "Two checked calibrated figures: E's 1,000,000 at 1,000 ppm (1,000,000 × 1,001,000) before C's 100,000,000 at 1 ppm (100,000,000 × 1,000,001): a precise figure a hundred times larger ranks second.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"408a0253416c50cb5d3730544f95b3e79d56b2c893ab5049059d709897c9f182\"],\"energy_ppm\":1,\"energy_uj\":200000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"255b19a830c09ef1e7d82deb1ede085b47f96372d33c6993a97e69eeadab34277210194745b4461b3dfa0b15ee42dabdcc46805c26b5ae00ee5b684c3820940e\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"bcf915b25a2bcca299d735645c7c4f7d2961221268f32863566ddb5097d758c0\"],\"energy_ppm\":1000,\"energy_uj\":2000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\",\"sig\":\"c89e6b8d6798daaee6318ee180cfab029d1b0a2ad7284c66d2be063d8f9a7ed506c8d1a3fc20d06b0f56758edbabca55af541ee47da0adfe364a0ce194d43006\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e1f50500000000050000000100000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e6952687e797965639fbdf1b5c20c398fe567c9c014376f2a3567aecedc02e9f02c05100b7ec7770f63bd0df0cd413879ac30331805e4bee4bdbb60d26149803", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da01000000000000000000a493d60000000040420f000000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b68831f7826d555f5b61a35397509f41a7acdaabb7c51344d78f60c5f30d65a33e00ed4bac022c6fcf9b0a464a26cb262161388dfc84a66406010a20bf20a" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "9a552bdfbbf8dd1da080d4b2381490ebb10d0c7e2e74b947620794b06a0fb406" + }, + { + "verdict": "stands", + "digest": "b989b4aa5fa54c736c75100e373782a8f4d49f783c6d9c24db8accb65540c61c" + } + ], + "evidence": [ + "408a0253416c50cb5d3730544f95b3e79d56b2c893ab5049059d709897c9f182", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bcf915b25a2bcca299d735645c7c4f7d2961221268f32863566ddb5097d758c0" + ], + "audience": 1, + "candidates": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 1000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 100000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "five_sellers_by_energy", + "description": "E and C checked calibrated, F checked model-based, G's label unconfirmed and A's estimate: E, C, F, then G and A by their figures.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"15e9d3cbe4ba4f70fa436666fa8abd41630041c0cd9f9eac2a6e0b2069c3cbc7\"],\"energy_ppm\":5000,\"energy_uj\":910000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\",\"sig\":\"e6f4f871e1e369ade0b0473f35199bd79c4ceeb4c0d484909e2f0a6a08fa728763e1e3fa889920789bd860c63f49ffbf7fbd9c57b65c26e6817cc9ac100e9d02\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"de3dd86423e16599d337c78e8af284a1d71980d523b97b1925dc7bc632f052aa9ce03c91afe5ad14430cacdd1b024782eb81e8770805c77494cabeffd8aaa70a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da01000000000000000000a493d600000000807f3d3600000000050000138800000000d693a4000000000863616c2d30303031010001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e5487c43c8dd96ceeb6be16839d93062e91225c548caa69bf8a213f97c7f6cf5ac9288faa811a27c9840eb5ea9186b31ec68e888bcd7a9b6b9200b5a8c9e60c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "c0063e45d6e0cbf0063870e8c7b11fa95187dd48ea2ba35522fe27f4966c5118", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + }, + { + "verdict": "stands", + "digest": "ebe5c9e8fc9ff60a3ba9dbb8c1a2e774862beeca97d3421003211db09c97dbdb" + }, + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "a68e550b47cb3eb7a4107161e6e5d1f8bb8b5f40a2b15818d97a0bf5c515c652" + } + ], + "evidence": [ + "15e9d3cbe4ba4f70fa436666fa8abd41630041c0cd9f9eac2a6e0b2069c3cbc7", + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 455000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 5000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 3 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 5 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "unconfirmed", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 4 + } + ], + "order": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + } + } + }, + { + "name": "five_sellers_by_price", + "description": "five_sellers_by_energy by price: F, G and A cost the same, and F's checked figure, then G's smaller estimate, decide; then E and C.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"15e9d3cbe4ba4f70fa436666fa8abd41630041c0cd9f9eac2a6e0b2069c3cbc7\"],\"energy_ppm\":5000,\"energy_uj\":910000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\",\"sig\":\"e6f4f871e1e369ade0b0473f35199bd79c4ceeb4c0d484909e2f0a6a08fa728763e1e3fa889920789bd860c63f49ffbf7fbd9c57b65c26e6817cc9ac100e9d02\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30\"],\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"e8a6ae17dee98043f887eb2a0706c675dc05d82703f8bcb9419d0be9058eec28720fabc6257c2f6a1b61bbecd64fbd3202ad5f200e025525ffdf01f7eaf8d507\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d\"],\"energy_ppm\":1000,\"energy_uj\":100000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0\",\"sig\":\"de3dd86423e16599d337c78e8af284a1d71980d523b97b1925dc7bc632f052aa9ce03c91afe5ad14430cacdd1b024782eb81e8770805c77494cabeffd8aaa70a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da01000000000000000000a493d600000000807f3d3600000000050000138800000000d693a4000000000863616c2d30303031010001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e5487c43c8dd96ceeb6be16839d93062e91225c548caa69bf8a213f97c7f6cf5ac9288faa811a27c9840eb5ea9186b31ec68e888bcd7a9b6b9200b5a8c9e60c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d60000000080b2e60e000000000201000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab771f6d26ef9a057dd51eb4d5918701b91ecdf3e996d460e3f0af6554f4b3b626030434ad5067c2e7292c701bcd3d05327ee260d4ff3271c57dbd61d5593209", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afe34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd001000000000000000000a493d60000000080f0fa020000000005000003e800000000d693a4000000000863616c2d3030303101000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed70e8e96d86a651425f9888cac020c8c15affb139af94d7a943b550c7d253eec277339d302d962d2bf6fa74231f1e1a928899eb3af70ea53664453f1d09e90a" + ], + "outcome": { + "outcome": "plan", + "request": "fad6dd2c6656748a6bb9e5277bccb92b6c4b62d68a861023ef72681600154f6a", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + }, + { + "verdict": "stands", + "digest": "ebe5c9e8fc9ff60a3ba9dbb8c1a2e774862beeca97d3421003211db09c97dbdb" + }, + { + "verdict": "stands", + "digest": "f214cf48c0e3ea7954a0ec376ee0253c167d36b19c7763598522cfeed548b446" + }, + { + "verdict": "stands", + "digest": "a68e550b47cb3eb7a4107161e6e5d1f8bb8b5f40a2b15818d97a0bf5c515c652" + } + ], + "evidence": [ + "15e9d3cbe4ba4f70fa436666fa8abd41630041c0cd9f9eac2a6e0b2069c3cbc7", + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "aee7450795a5a8b5419c3ad7cc80196f23801097426e72e7039da58138fb7e30", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0", + "d5fefd6435ba63bec6f65a655e10aee12bb2bc10d40a37d597b5c4ce7db1311d" + ], + "audience": 1, + "candidates": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 455000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 5000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 4 + }, + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 5 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 3 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 50000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 1000, + "evidence": "unconfirmed", + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + }, + { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "e34d3a01b6112e1429ead61668405f4ef4be4f8853abee5079d28ac6c13ffdd0", + "entry": 0 + } + } + } + }, + { + "name": "calibrated_before_counter", + "description": "C's checked calibrated figure of 450,000,000 before D's checked counter figure of 36,000,000 for an hour of subscriber time: ranks are never crossed.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"CalibratedInstrument\",\"energy_evidence\":[\"4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011\",\"bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0\"],\"energy_ppm\":20000,\"energy_uj\":900000000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\",\"sig\":\"955c839ff54b47430acc52e381abc5c9a7f1925b8565de703b948fe7a6bb5a587985e104245ef1678ccf23a9d7acaad15a92f8d9d921ef1b0005676c27d57305\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"OnChipCounter\",\"energy_evidence\":[\"57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf\"],\"energy_ppm\":30000,\"energy_uj\":10000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\",\"sig\":\"1f7d344869d7dd6242829c63e8d84daf576a253cce8531b1c01ab757d37c8e9e43c6910288f5522496c2027c331d86cb06a4d772cb9cdeab44e9d0bdb603a50d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":3600000000,\"unit\":\"subscriber_us\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d60000000000e9a43500000000050000271000000000d693a4000000000863616c2d30303031020001111111111111111111111111111111111111111111111111111111111111111101010000000000000000ca9a3b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111102010000000000000000ca9a3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad39a3dbba4dd27ca0f9cb6d2cd8f092561d0f2b6913604226c1f98be78e8f8d2f5d9fbe63248d2251248f8492843e019ee9175aea6e208f1bdbedbdc94230c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f65301000000000000000000a493d6000000000051250200000000040000753000000000d693a4000100000100000000000000000000000000000000000000000000000000000000a493d600000000000000000000000000000000000000000000000000000000000000000000000000a493d60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007428900d331731b51de4eaad6ad43af4311f521421fd4f8ec4a6d3c59c404eddd8ad625269194376f3e96fa9fbb1664ec029fb4d3a62d92f1e90f0b628d65f04", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369afa7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a998736701000000000000000000a493d6000000008074d21a000000000500004e2000000000d693a4000000000863616c2d3030303102000111111111111111111111111111111111111111111111111111111111111111110201000000000000000065cd1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002010000000000000040420f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab17e7aebdf3ca6fd6a219f47ffdd792f2e3b03d1cfbc9e55d612d5392506c121d8bfd99922b0c73ff27042979094b974c1199c6cf299969cdbed2ab1ed12d0c" + ], + "outcome": { + "outcome": "plan", + "request": "30d60150fdb83da6346fc16ac0df35d569b4e4c669fc33b7644078c705a7490f", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "325e449cb9b94f5e1caf2e387719d79085d9ec24bc1ee3d69912287809e37064" + }, + { + "verdict": "stands", + "digest": "36c893d9542220bc417c479684efc65129c0119aeb2e3ec9f3a2cf60d81a332b" + } + ], + "evidence": [ + "4080659652c8dd57e6859cdbe6520fb66fedf2968d537b16d1fc299c5590c011", + "57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "bf3018fdc2e41667c4364853293526cdff5d6e4d1fbe4f30903a2a69a3c77ad0" + ], + "audience": 1, + "candidates": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0, + "bearer": "bidirectional", + "unit": "subscriber_us", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 3600000, + "energy": 36000000, + "energy_class": "OnChipCounter", + "energy_ppm": 30000, + "evidence": "checked", + "energy_rank": 1, + "transmission_cost": null, + "break_even": null, + "rank": 2 + }, + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": 450000000, + "energy_class": "CalibratedInstrument", + "energy_ppm": 20000, + "evidence": "checked", + "energy_rank": 0, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367", + "entry": 0 + }, + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + } + } + } + }, + { + "name": "subscriber_time_readings", + "description": "D's counter figure over an hour of subscriber time at layer class 3, its record's hour at class 8 not counted: 10,000 per 10^6 µs, checked.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"OnChipCounter\",\"energy_evidence\":[\"57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf\"],\"energy_ppm\":30000,\"energy_uj\":10000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\",\"sig\":\"1f7d344869d7dd6242829c63e8d84daf576a253cce8531b1c01ab757d37c8e9e43c6910288f5522496c2027c331d86cb06a4d772cb9cdeab44e9d0bdb603a50d\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":3600000000,\"unit\":\"subscriber_us\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f65301000000000000000000a493d6000000000051250200000000040000753000000000d693a4000100000100000000000000000000000000000000000000000000000000000000a493d600000000000000000000000000000000000000000000000000000000000000000000000000a493d60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007428900d331731b51de4eaad6ad43af4311f521421fd4f8ec4a6d3c59c404eddd8ad625269194376f3e96fa9fbb1664ec029fb4d3a62d92f1e90f0b628d65f04", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c" + ], + "outcome": { + "outcome": "plan", + "request": "17db0f989e5e6cac4fccdd309b474988329f315be388b902739fbf7a3dd57d69", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "36c893d9542220bc417c479684efc65129c0119aeb2e3ec9f3a2cf60d81a332b" + } + ], + "evidence": [ + "57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af" + ], + "audience": 1, + "candidates": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0, + "bearer": "bidirectional", + "unit": "subscriber_us", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 3600000, + "energy": 36000000, + "energy_class": "OnChipCounter", + "energy_ppm": 30000, + "evidence": "checked", + "energy_rank": 1, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "uncertainty_orders_counters", + "description": "Two checked counter figures for an hour of subscriber time, E's key confirmed for OnChipCounter besides CalibratedInstrument: E's 36,360,000 at 1,000 ppm (36,360,000 × 1,001,000) before D's 36,000,000 at 30,000 ppm (36,000,000 × 1,030,000).", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"OnChipCounter\",\"energy_evidence\":[\"57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf\"],\"energy_ppm\":30000,\"energy_uj\":10000,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\",\"sig\":\"1f7d344869d7dd6242829c63e8d84daf576a253cce8531b1c01ab757d37c8e9e43c6910288f5522496c2027c331d86cb06a4d772cb9cdeab44e9d0bdb603a50d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"OnChipCounter\",\"energy_evidence\":[\"235f750b79d6c7375e4ba9d4f17459ebce83a638bd9338e0c73d3b00447e7dfc\"],\"energy_ppm\":1000,\"energy_uj\":10100,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000,\"unit\":\"subscriber_us\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\",\"sig\":\"f28065b0654d9dcfacd77df59cca50e10957575da1a1f267881401aec46d97c11698fba3005b0c8f65fa50938fcf090644746eacb8c29d6e2233284671987607\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":3600000000,\"unit\":\"subscriber_us\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da01000000000000000000a493d60000000040cf2a020000000004000003e800000000d693a4000100000100000000000000000000000000000000000000000000000000000000a493d600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000353925bae40c2eed43632d55d122657dcd1bcab6383e91e895cd7d88ae2de19dece0f783d2ea692581afc1e26dc45a1971e1725b659c12c2f51fdf2f88aee00d", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f65301000000000000000000a493d6000000000051250200000000040000753000000000d693a4000100000100000000000000000000000000000000000000000000000000000000a493d600000000000000000000000000000000000000000000000000000000000000000000000000a493d60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007428900d331731b51de4eaad6ad43af4311f521421fd4f8ec4a6d3c59c404eddd8ad625269194376f3e96fa9fbb1664ec029fb4d3a62d92f1e90f0b628d65f04", + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c" + ], + "outcome": { + "outcome": "plan", + "request": "78e04aecb263c1785b89873dcfd307cb47750306603d9a71a91980ca19caa6c6", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "36c893d9542220bc417c479684efc65129c0119aeb2e3ec9f3a2cf60d81a332b" + }, + { + "verdict": "stands", + "digest": "ad8d7d34b95b41e619ee0212cccec8c0382ab63ff882ddd270abfa7be0ace2df" + } + ], + "evidence": [ + "235f750b79d6c7375e4ba9d4f17459ebce83a638bd9338e0c73d3b00447e7dfc", + "57908bf5d4bd6d647f9f91cb94939718903aefd7eb34ca2f49228674fa806ecf", + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af" + ], + "audience": 1, + "candidates": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0, + "bearer": "bidirectional", + "unit": "subscriber_us", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 3600000, + "energy": 36360000, + "energy_class": "OnChipCounter", + "energy_ppm": 1000, + "evidence": "checked", + "energy_rank": 1, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0, + "bearer": "bidirectional", + "unit": "subscriber_us", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 3600000, + "energy": 36000000, + "energy_class": "OnChipCounter", + "energy_ppm": 30000, + "evidence": "checked", + "energy_rank": 1, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da", + "entry": 0 + }, + { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + } + ], + "decision": { + "decided_by": "energy", + "runner_up": { + "seller": "2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653", + "entry": 0 + } + } + } + }, + { + "name": "figure_rounded_up", + "description": "F's model-based figure over 1 µJ for 3 bytes: ⌈10^9 / 3⌉ = 333,333,334 per 10^9, checked.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b\"],\"energy_ppm\":null,\"energy_uj\":333333334,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"dbe6b1ac234b0f18b5fc107ca6e3906542ecdbfc78036512f1e0e69cc80a1acc2fe843dccd3fa2b47ee9f04d2b0209d855ed89c172b607d7200311b951bb830c\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":3000000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d6000000000100000000000000020100011111111111111111111111111111111111111111111111111111111111111111020100000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcc0b0211c93d546082bdcf0112d2a69f38dcb3e3dd000ec546867854a8a890cefb25d4443e19f76384ad0caf234891eece2476f998d5ecb1ff3ef3e7a028203" + ], + "outcome": { + "outcome": "plan", + "request": "e24b532e7d0dfe928ec5588146e8f182aba3cc2e9db6b22e89c9a00a46fed07d", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "e6fc2d842909bf9efe37557359d318b81c4ad43b4a7e7fdf0e4baaf5375d6fd8" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 60000000, + "energy": 1000000002, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "checked", + "energy_rank": 2, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "figure_rounded_down", + "description": "The same records under a figure of 333,333,333, a microjoule below their rate rounded up: refuted.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b\"],\"energy_ppm\":null,\"energy_uj\":333333333,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"b6528d6bf948ffd0d19fd5cf2c34d387a11c690965a0a01408a242ccb5dd49ba5b7d80b3f36c604404fe895f7c47ad2ab3ce96f657daa05c970ae309dba22a07\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":3000000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d6000000000100000000000000020100011111111111111111111111111111111111111111111111111111111111111111020100000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcc0b0211c93d546082bdcf0112d2a69f38dcb3e3dd000ec546867854a8a890cefb25d4443e19f76384ad0caf234891eece2476f998d5ecb1ff3ef3e7a028203" + ], + "outcome": { + "outcome": "plan", + "request": "e24b532e7d0dfe928ec5588146e8f182aba3cc2e9db6b22e89c9a00a46fed07d", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "64e3182a707d72fbfacc8b7d6cc5a90145f6a4218c28076a3e22087190e96747" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 60000000, + "energy": null, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "refuted reason=rung_prices_evidence_figure", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "figure_above_its_readings", + "description": "The same records under a figure of 333,333,335, a microjoule above their rate rounded up: refuted, for the figure is their rate, not more.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"ModelBased\",\"energy_evidence\":[\"d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b\"],\"energy_ppm\":null,\"energy_uj\":333333335,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\",\"sig\":\"087ce3c7d28fe4e13e6e29494b65bc25d6def33822a721ef46b27a077f80d6fbe2e3118e77bea068c5460ba2a8ed77d3433e70c71c56ea6a291bbf4422840c0a\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":3000000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"energy\",\"to\":\"XB\"}", + "evidence": [ + "5752443101750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd5750826c281a4f691a41ffb03ef1b4287568ebfc52ec5cca89d953e5a0093abd500a0b9d33f5f060040420f00000000000000080000000200000000005745503101fe1f0000000000000000000000000000000000000000000000000000000000000004f4013200000040420f00000000000100000040420f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036f3ed941408ddeedfe60826c91c7cd4807bbd7eb7c8a3d8f0b9bfb21c2533f664c20e19a69093b4fccf7e5a322e2261f02db80666f69b0234be9c193383be0c", + "574d4831016dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb0507401000000000000000000a493d6000000000100000000000000020100011111111111111111111111111111111111111111111111111111111111111111020100000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcc0b0211c93d546082bdcf0112d2a69f38dcb3e3dd000ec546867854a8a890cefb25d4443e19f76384ad0caf234891eece2476f998d5ecb1ff3ef3e7a028203" + ], + "outcome": { + "outcome": "plan", + "request": "e24b532e7d0dfe928ec5588146e8f182aba3cc2e9db6b22e89c9a00a46fed07d", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "bfda3a3bc1bd2bff27166ec4b52e8ca4bc8aeae8dc7730c52dc825d09c89d433" + } + ], + "evidence": [ + "6dfe77fb960f88f6132c6ebf6cc4d4a36a8aba4ba262d4047864644f17d369af", + "d9fd66ae092430c6608cefad0f61938bfaa2334adddf257b5b6419bf2ef0467b" + ], + "audience": 1, + "candidates": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 60000000, + "energy": null, + "energy_class": "ModelBased", + "energy_ppm": null, + "evidence": "refuted reason=rung_prices_evidence_figure", + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 1 + } + ], + "order": [ + { + "seller": "54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "uplink_contribution", + "description": "Uplink, an hour of publishing: only uplink entries are candidates, and publisher_us is priced.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"uplink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":30000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":500000,\"unit\":\"publisher_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":60000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8\",\"sig\":\"d5c7a148bad628e599a82c77b94874803227676f728973c9d495573d685fb0979f26818f96dce13b1e0529ca9111122ee400e662297930340c7127df19875807\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"uplink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":null,\"quantities\":[{\"quantity\":3600000000,\"unit\":\"publisher_us\"}],\"rate_bps\":2000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "67fca55851907a5ad2f8d4e50af555cc55837470ddb3c5a2665bd5c6079b3990", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + }, + { + "verdict": "stands", + "digest": "86f214c857f64e9d9012c613ba0cd39ccdc43a3b595c5c22880b5232bce3939d" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 4, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 1000000, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + }, + { + "limit": "rate", + "value": 1000000 + } + ], + "cost": null, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8", + "entry": 0, + "bearer": "bidirectional", + "unit": "publisher_us", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 1800000000, + "energy": 108000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "bytes_sent" + } + ], + "cost": null, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "d62f016a1efd1e4fdf793eb42cd84471e1ba9f0cf04d1287b5cc71f616287cb8", + "entry": 0 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "peer_order", + "description": "Five holders' bytes lists, to XB-1: B, C and A are priced, in that order; D's list, the cheapest, lapsed, so D has no standing list; and E's stands but prices only XA. §6.6's neighbour order is B, C, A, then D and E by key: D's is the smaller, though E's list is given first.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB-1\"],\"max_bps\":9007199254740991,\"price\":30000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a\",\"sig\":\"58c466b9ec9d6af1c3374c0ce3ac8e03005bd21147b03611d26b43f075e4d687cd8c8208d6e15b4271472db757f57a1ba503ffc8edfe605e4480fd5be0490402\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":10000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7\",\"sig\":\"9f839993c01df06fa24d91bbd5cf49f7e919607ec69f7a2d93c6ac7ea8fa664cf6549f89d014694c0feceaf22f349167bdce5db39e71a39516a61ef926c0bf08\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB-1\"],\"max_bps\":9007199254740991,\"price\":20000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0\",\"sig\":\"f8d4b5d35eda977a05d4a6cf8a4122acdeba15a437a237f74cb964638a3197c4b696aae7b5858693d9ced109be95dbff053cc50ec6ee8873ed7e8173772bd800\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\"],\"max_bps\":9007199254740991,\"price\":5000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"sig\":\"475c71d2d2e7fadc4baacdbbd603281e1ab867698d7b2fa7cbc267d5d69bca608cf0d345a31ce7de6042849067b3c9f950f5e15a7bf15785698900f7373bed05\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XB\"],\"max_bps\":9007199254740991,\"price\":1000000,\"unit\":\"bytes\"}],\"expires\":1793664060000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"9f49439e9db095bc4111ed25d35795d831bc55a047f4b1d7f6aee3777bb41220\",\"sig\":\"c7cef02d12f3cbd108c1683870422c1b56c0dd21e13603195969358432fd23b76b1c941b5d390c8a0fc1c568ada9df88e562a6c47a9665b2a0d4241090b0ae06\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB-1\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "7b89478f405eaa93d378021c8b909fdac8fef4dc65ff8a919dc4c94e5d650b36", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "ea70b84fe69bc45508747d216510b717e1d252ac819e96efd133eaa662369c1e" + }, + { + "verdict": "stands", + "digest": "b92ea4dff6501df1a452fa1ca3d299d73629271f7714edffaf7c1aecd4945da4" + }, + { + "verdict": "stands", + "digest": "6bbcf9dfebc8faa661fdd1a7f1e05c7479b4d9b12fc2a83a8383dce6a3165371" + }, + { + "verdict": "stands", + "digest": "2b23cf29945e75e3de2ad2053afe93e8e90f1ff24f5caa259c3dc0511203d5ce" + }, + { + "verdict": "reject reason=rung_prices_expired", + "digest": "ab6a3a99803a21fb02628a9771746c2e50a88d86d92de9604d57c8e30063a316" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 5000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 15000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 3 + }, + { + "seller": "c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 2500000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": 2 + } + ], + "order": [ + { + "seller": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "entry": 0 + }, + { + "seller": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0", + "entry": 0 + }, + { + "seller": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "entry": 0 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0", + "entry": 0 + } + } + } + }, + { + "name": "contradicted_seller_offers_nothing", + "description": "A's two latest lists differ: A offers nothing, and B is the only survivor.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":18000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"45e291f64912e26eb41dcd17db86f6e4226e35d4330b51d8a48361cf0c030385f9d70e2741c903e73618f17f215425603f8c20970214b8bd0bdeed61f019ce02\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":19000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"1368df3b6aa75e2edec6f33e241da13961bbeb3d4a81ceb694dc3e866b5443f8107fec5ec6b568c5bd8d7738b0feb6766d859ffad4be6a302c053189f1926b01\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "6c4a610732ed2d61df8e666d5e53707a9b4114d95ef62b9fe0336eedf178a281", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "set-aside reason=rung_prices_contradicted", + "digest": "c3de94223ad54c6f318e7e6aa35f843966f18f86673f3071ee3801d5343ad405" + }, + { + "verdict": "set-aside reason=rung_prices_contradicted", + "digest": "fffe13b2b5404d372a8618100a2a2a41cd102ff2ac6ab9d5362b3ef257ce5bca" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": null, + "rank": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "no_standing_list", + "description": "A's latest list lapsed: no seller stands, and nothing survives.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":15000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793664120000000,\"issued\":1793664060000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"82494ca3822c117e5e64475ba7906b2194e46e5e177ddc74e657cd9d07686981d98d7eb7ed1fafc1e54e1ee0ca4125c6af26067d56229cc93c1e81aae0d7a902\",\"version\":1}" + ], + "at_us": 1793664180000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "6c4a610732ed2d61df8e666d5e53707a9b4114d95ef62b9fe0336eedf178a281", + "at_us": 1793664180000000, + "lists": [ + { + "verdict": "superseded", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "reject reason=rung_prices_expired", + "digest": "4e6c8b41348f1dbd4d21770c83571af880ef8f4d702d33e877564edfb04ea34e" + } + ], + "evidence": [], + "audience": 1, + "candidates": [], + "order": [], + "decision": { + "decided_by": "none", + "runner_up": null + } + } + }, + { + "name": "only_survivor", + "description": "B alone, for bytes_sent.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "8d2e63817ef21973901211a0b7c2bd5e6660c55933dcc8e96155e64ed41967b0", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": null, + "rank": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "only_survivor", + "runner_up": null + } + } + }, + { + "name": "confirmed_at_bound", + "description": "unknown_audience with 256 confirmed keys, each for ModelBased: the SHA-256 digests of the two-byte integers 0 to 255, ascending. The request reads.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"ModelBased\",\"key\":\"0025f5ad5b10a5b949186d49870c4de862edabfdede036ad64ea035fc7b51b03\"},{\"class\":\"ModelBased\",\"key\":\"00bc4b668ccce3ae825dbc18d6ff1dcdd9ec14b284c4f161fa5cfbb2d5069534\"},{\"class\":\"ModelBased\",\"key\":\"022a6979e6dab7aa5ae4c3e5e45f7e977112a7e63593820dbec1ec738a24f93c\"},{\"class\":\"ModelBased\",\"key\":\"0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7\"},{\"class\":\"ModelBased\",\"key\":\"039eb3770b3d1f1a61c6ea162b47ea17b97aed890c18e7857481fdfaba4625e4\"},{\"class\":\"ModelBased\",\"key\":\"0453ff686632d0a42179c939d31728725a35ef229d841846cc18a32fc41b2b85\"},{\"class\":\"ModelBased\",\"key\":\"059efd932f342677da2e960ada869a7c919c33f6914b14b3e89e34ee83b082af\"},{\"class\":\"ModelBased\",\"key\":\"06b6b4095e023805a3cd41879f15ba5ab2f2e33a6f53d916904496062f324995\"},{\"class\":\"ModelBased\",\"key\":\"06eb7d6a69ee19e5fbdf749018d3d2abfa04bcbd1365db312eb86dc7169389b8\"},{\"class\":\"ModelBased\",\"key\":\"085edad400785fca7e7e90b1fac4beb776fc2beee5aa24352d5f39b5d57efcad\"},{\"class\":\"ModelBased\",\"key\":\"08a2afecc9feaef6737f055c177a56a363d28a78d7b259b8c5f66b32174f2e7d\"},{\"class\":\"ModelBased\",\"key\":\"08f16122115bff4739acd4fd8a381ed0f72f4bb220932f7c7c4e3af40a464879\"},{\"class\":\"ModelBased\",\"key\":\"0c55282295f034d7bd4cf5748480dd1a4b6209063a5917e4c09626557425204f\"},{\"class\":\"ModelBased\",\"key\":\"0c85b39d1274655a177d66ec7ccffed81b45d06c4105d61207f36ff51c542499\"},{\"class\":\"ModelBased\",\"key\":\"0cd65a74756f9fd49c3a50100f647a91d9446331e7cc93bc83c0b9ca7e9856ab\"},{\"class\":\"ModelBased\",\"key\":\"0d1abbe3b9da7a48d463edb0a844f3a102dcf7fdea35f9c771d885027b31b322\"},{\"class\":\"ModelBased\",\"key\":\"0d84902cc0f636b02b84346ed79c43d5626284d5baabf7e997a936270680cd2b\"},{\"class\":\"ModelBased\",\"key\":\"0e9354f833bbf16427a9ab9bfc1d3c93f853a71fd2f597ede0b0149028142d2f\"},{\"class\":\"ModelBased\",\"key\":\"0ec4e4f946f1971c04addb3e26d8185eeabfdf4fa6c1f65478a9ba772d825b52\"},{\"class\":\"ModelBased\",\"key\":\"0f2c7f7e50abf7ce2200ae61f3ae429ca9f31d1c7cd57e94248f0b9b5d4fac03\"},{\"class\":\"ModelBased\",\"key\":\"11e1f558223f4c71b6be1cecfd1f0de87146d2594877c27b29ec519f9040213c\"},{\"class\":\"ModelBased\",\"key\":\"12c079387cacd80613d2c658d66a0bd2af145b03d34935b5dab78ce450346699\"},{\"class\":\"ModelBased\",\"key\":\"1321e1ca91757e8c23c934ff4047d69657e9caeed9ce5a29e5fcf94e7e648ca6\"},{\"class\":\"ModelBased\",\"key\":\"13b703597a7d1d3d1b3f85c7b69f03ca47bd97c47fa86613e1f654729d838305\"},{\"class\":\"ModelBased\",\"key\":\"189d4883529028b6aee913d0e17ecb98942e4d1224da8ef14af99a691bf4b003\"},{\"class\":\"ModelBased\",\"key\":\"195f58bc6d6b7b36335c95e08343825a7ae6f30437b4a7e6fa7b89d76907570a\"},{\"class\":\"ModelBased\",\"key\":\"1c9cfb2618360748b0ca7f2bc9829f6a46788ba3adcfdf4b6ae055869b87ae7f\"},{\"class\":\"ModelBased\",\"key\":\"1e3ecb32659377fbd1dfcf173c903f8bd855ad4af0de82a2942b047a50beb9c2\"},{\"class\":\"ModelBased\",\"key\":\"1e6ec1d51d6843b10db10c6efd8260b6ea1cd1f140642c9de593b7b237468713\"},{\"class\":\"ModelBased\",\"key\":\"205022e3428b7c8276cf247b36e4e512db5651e5cb3472c253d9ee893a8ac750\"},{\"class\":\"ModelBased\",\"key\":\"20a656053806b1699d1dd2227d17c50e006e3f0b9af55bb6b525d045ce405de5\"},{\"class\":\"ModelBased\",\"key\":\"20d8479229ae2132eded30fff7493c8e438ab05dd2ff722c59fdf7ea2a00ec3b\"},{\"class\":\"ModelBased\",\"key\":\"20da2faea7f43ac1f0f5de113fbde94c9a8973b2026e3d3f15de0dbba1612964\"},{\"class\":\"ModelBased\",\"key\":\"2215e8ac4e2b871c2a48189e79738c956c081e23ac2f2415bf77da199dfd920c\"},{\"class\":\"ModelBased\",\"key\":\"2334318565750d1aa1d02f22dd12ab5dff3b9c3fbc7a4935bb51d0fa05745ac0\"},{\"class\":\"ModelBased\",\"key\":\"267ff33d242cf99619876d639456f362147845ca99fdd30d4195275ab833c807\"},{\"class\":\"ModelBased\",\"key\":\"27086622d75552b888b6c6464301104655e134b557d986d28e1f02e0aef9c027\"},{\"class\":\"ModelBased\",\"key\":\"274727415b48449789611997233893e017cf76fd40597ef8507cd4441ae11c9d\"},{\"class\":\"ModelBased\",\"key\":\"2824a7ccda2caa720c85c9fba1e8b5b735eecfdb03878e4f8dfe6c3625030bc4\"},{\"class\":\"ModelBased\",\"key\":\"29b40a3da2abf8864c33046251e0d443668771ced2ffe224f8cb14a3e969bc62\"},{\"class\":\"ModelBased\",\"key\":\"2b85c1bb99cea5fef7b3926c4f8035a7b4dd51c80897eb334931cb5586eb789d\"},{\"class\":\"ModelBased\",\"key\":\"2cebe22e5a576eb81b21f9014149af9eba9325612d93591753472ca46538e642\"},{\"class\":\"ModelBased\",\"key\":\"2d0d7c717ba8b0eabd7feb8cb3ea3e0f348173e6adfd32b0de6439166c233620\"},{\"class\":\"ModelBased\",\"key\":\"2e1bdc5ccbe6d31e37d5a82402795ec2d9a6a8a3002d66f1ec7f5c61797a2f7c\"},{\"class\":\"ModelBased\",\"key\":\"2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7\"},{\"class\":\"ModelBased\",\"key\":\"2ed348343ad2d93bbbfc7316cde45c693a36a3d4fde8b39b1449067b1603b90d\"},{\"class\":\"ModelBased\",\"key\":\"2ee788372518190a6ab539cbb20331df1040f21846e3ba836c269aee907c894c\"},{\"class\":\"ModelBased\",\"key\":\"2f01629479bfb3bc9e07b3c050c5728324207a3c19fc1fd5f850cf75cd6a8f9c\"},{\"class\":\"ModelBased\",\"key\":\"2f853830f422d48fce93fe7f13df6cc5a6fe86237c62cf706f5ac6e9fd6bc943\"},{\"class\":\"ModelBased\",\"key\":\"2f9305bb094f7ef24d62ebd93a9db7f73dd4753d14b918680f7f60d4cbaaae5c\"},{\"class\":\"ModelBased\",\"key\":\"319d204b93d0584bd3aa878e2e07d51b06fe3e1d4396fc3293e318677d335524\"},{\"class\":\"ModelBased\",\"key\":\"3340c2cfabca25ae9995c136696909661903c52ec17c0f5f848014606c71039f\"},{\"class\":\"ModelBased\",\"key\":\"34ee08ba62b88a43f6756eb77a5c627dcd34d6810c2e539678df2e0069f69952\"},{\"class\":\"ModelBased\",\"key\":\"3553eb351adac70cf5caa4fefa1caf8cec726403fe4b34c14f1bb8d980c20b95\"},{\"class\":\"ModelBased\",\"key\":\"3639618e90314d0feb7ce289d97468263ca4af996ffc621399d092e1f12aa1dd\"},{\"class\":\"ModelBased\",\"key\":\"366cf04d2c1c031f0c073d87a1effd6d2e2c0868720a7cf41b1261c57e8d37ff\"},{\"class\":\"ModelBased\",\"key\":\"38031a28cee4d129ea4f27e398955b88c6db228b1bb3ba92baa4b4bb7039363a\"},{\"class\":\"ModelBased\",\"key\":\"390400374360c53cad1385d026af51c012f7a8aa7cabdaa2cc6e47ea22b5cb0f\"},{\"class\":\"ModelBased\",\"key\":\"3a7d613e4be9748f7bae02e6537e0f0815ea14b3a96c32b76247127b58a33c91\"},{\"class\":\"ModelBased\",\"key\":\"3b2b7c6ee25e2f28a6235e273eaf13f504bd445024147ebacb878262aae90509\"},{\"class\":\"ModelBased\",\"key\":\"3bf9c81c231cae70b678d3f3038f9f4f6d6b9d7adcf9b378f25919ae53d17686\"},{\"class\":\"ModelBased\",\"key\":\"3c7e9bc930dc93f01fa69985ef242d9f9e861f3c5355aa24ce5ef4b4b8a70ccb\"},{\"class\":\"ModelBased\",\"key\":\"3cf8b42d95b6bd183bfd75c7becce3583f6be3033f31612c5aeeba2555a4643e\"},{\"class\":\"ModelBased\",\"key\":\"3f17bd4e2dadf8c68fa29afddb05faad4e66f536c028c272db9a93f315d2dbd2\"},{\"class\":\"ModelBased\",\"key\":\"40767381548186b93285ab84b0374fb50707c185172a95307e41d5f146111256\"},{\"class\":\"ModelBased\",\"key\":\"40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd\"},{\"class\":\"ModelBased\",\"key\":\"425b04f73bcc6bdb70e201dcfaa1c227e363e0a0dc83025a688baa9e90b91cf2\"},{\"class\":\"ModelBased\",\"key\":\"43679d390fc94be135c5a9e0ae7aa8b1f81575cd5115b574b0c08cc99501fded\"},{\"class\":\"ModelBased\",\"key\":\"43799a4d50e0cb19f37f6ce22b5cbcbf6954f13e9bb4604dca4104ae844374a4\"},{\"class\":\"ModelBased\",\"key\":\"4383b5bf7555c92db4e871928d566f5c93bf0cdd51b042d866921c9ce9b379b3\"},{\"class\":\"ModelBased\",\"key\":\"43f7be3cdc831ed5a0e41257f57341ca64c8f99bd06296bb6089d452d80c7719\"},{\"class\":\"ModelBased\",\"key\":\"453980da5d4136d1db786595046cd791d298d0aeb39702c4a8b8bde1e65352f0\"},{\"class\":\"ModelBased\",\"key\":\"4690c1ed14ac5dd2e529dc29c12bc4561caf27c025346c7e81b28597aeeaa533\"},{\"class\":\"ModelBased\",\"key\":\"47379137e2a09cf9d8a661e81cd6ab06298f64f29ed5f2813291d66e78afe98b\"},{\"class\":\"ModelBased\",\"key\":\"473eeea4328cd254643ad15692bf545cb9e09b6e639aae435bc6e561b9b53671\"},{\"class\":\"ModelBased\",\"key\":\"474f2af47544e9c7ce4338cabd43c5ca1c26432b7300ce387406157ea433891f\"},{\"class\":\"ModelBased\",\"key\":\"478db1c2dda7b9a110a7a576454e4dcf9f3ca3bacbf21f8813de81aaf5619333\"},{\"class\":\"ModelBased\",\"key\":\"48b576dfc3447c7a0e6b513608937a23d02e6330c5ed01b0fc4ca98b2bca1feb\"},{\"class\":\"ModelBased\",\"key\":\"49872216faefd9f8598ee484be55f63c9bf8ffbc4aeddd4902e6e91efff9d1c6\"},{\"class\":\"ModelBased\",\"key\":\"4b68b1d2c747f15d40bcbe9a0a464c9af2e59450ef3e75692993b2bc45289aeb\"},{\"class\":\"ModelBased\",\"key\":\"4c29e9291b4592a31336617153619b7b214090e410aa504efb13631cfc51b161\"},{\"class\":\"ModelBased\",\"key\":\"4cf5af027d9a949a881e505bd7c7b14c5eb61ff47d159b585a331d690501d13d\"},{\"class\":\"ModelBased\",\"key\":\"4d2ae2d6e0000b72a5739078e0e83bc029b6232edabff84d012acd1d4803db51\"},{\"class\":\"ModelBased\",\"key\":\"4daeb7b535a01efb089d2750ed30174df27667c2f3b38dbcd01d91b273f977c4\"},{\"class\":\"ModelBased\",\"key\":\"4e0e3847ad9742d0a217e23b7be39fdba727121b1e6b5a3af80595ba46f34e51\"},{\"class\":\"ModelBased\",\"key\":\"4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4\"},{\"class\":\"ModelBased\",\"key\":\"50370e36b4952b59654148674fafada508972b5c90de162a29ba3383a360a789\"},{\"class\":\"ModelBased\",\"key\":\"505114fe537172ea35e17ca1a7516edac516a89b31f983f7c6387d5d2bb462aa\"},{\"class\":\"ModelBased\",\"key\":\"522346c154e555d752414c3b7fefe9bb50ecb784765663c01225f147de98be8c\"},{\"class\":\"ModelBased\",\"key\":\"52f589c3f47d1f0303379d7cc53ca310ee671b68317db538cc8ffbe8c20c02bb\"},{\"class\":\"ModelBased\",\"key\":\"530e9489c8fc9528fa892c7c5251fdf46874f0abc923c1c11d7255e16e5a9252\"},{\"class\":\"ModelBased\",\"key\":\"53304f5e3fd4bcd20b39abdef2fe118031cc5ae8217bcea008dea7e27869348a\"},{\"class\":\"ModelBased\",\"key\":\"541232e2aa3f8edc67d9f9ea0c39d63311cda71c466343617fd9f6672ffd31a3\"},{\"class\":\"ModelBased\",\"key\":\"548431144999ce11132441250358e8e03153d5cd91cb82cc27a8dbdcf8e1e80d\"},{\"class\":\"ModelBased\",\"key\":\"54b417d0e98392330adc944046dd1a2d2ad064f7165d27b4038cc250e9139af4\"},{\"class\":\"ModelBased\",\"key\":\"5596c327e61728e7985d0860eaca23b2bdee1412a099fa70652235c26468c325\"},{\"class\":\"ModelBased\",\"key\":\"5755b0bb3a2acd4fc75b3821b5c22cc170a55a33b7710757911e9c198f0e803b\"},{\"class\":\"ModelBased\",\"key\":\"57a4b6ef36e20bfd4a3ebbc3fe1aa1e89fdae8d7cfd9b94c833e75fc095978a6\"},{\"class\":\"ModelBased\",\"key\":\"57de14353cddaf79d153b36121937a66cd3dc16722ade6e4b5ecf39d3f0cf2cd\"},{\"class\":\"ModelBased\",\"key\":\"57eb35615d47f34ec714cacdf5fd74608a5e8e102724e80b24b287c0c27b6a31\"},{\"class\":\"ModelBased\",\"key\":\"583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d\"},{\"class\":\"ModelBased\",\"key\":\"587bae728805519c3542d21766295396bd01087b6c47765ae3cadbf679813bbe\"},{\"class\":\"ModelBased\",\"key\":\"58fe086fe8376a7f83e2774a29fb609cde97ea058d84c931194e2b967b79bef3\"},{\"class\":\"ModelBased\",\"key\":\"58fe7f64eb18129d249a9079a86ac69522137605d4ba96d8713fd2d8a0affc9e\"},{\"class\":\"ModelBased\",\"key\":\"597fcb31282d34654c200d3418fca5705c648ebf326ec73d8ddef11841f876d8\"},{\"class\":\"ModelBased\",\"key\":\"59b94638773b642b87af5d2478ec16fbeb99d878d318561ce058787ce46bb46e\"},{\"class\":\"ModelBased\",\"key\":\"59f9518e1ec07eed0a537bbedc5403ae3bea0ea85c8d08f8d035424a10624297\"},{\"class\":\"ModelBased\",\"key\":\"5aeb196e83598231b45c61f3e0c5a0fda49b0d4f86a6db5f893aacccf514fa99\"},{\"class\":\"ModelBased\",\"key\":\"5be983d9750d857dc969b252e272904cdb658e6bd7c41a73c56b75c0e6fd01c7\"},{\"class\":\"ModelBased\",\"key\":\"5c9f0bd1f9192c511175b612afa76fa0d8a93c3f1cec27b3d7a70ffe3986f6c9\"},{\"class\":\"ModelBased\",\"key\":\"5e3af5f08a6a02e96b649336245782fce1990954d3d6a207b486c8c6f64434dc\"},{\"class\":\"ModelBased\",\"key\":\"5e4cd10be9483fe8aa215c7ee1804f7f88c02e22fe5fb0336d297bec998471f8\"},{\"class\":\"ModelBased\",\"key\":\"5f17787e74e8fef8d8d11d583f9bee7c7d078ef24917f11e51861b937959ba68\"},{\"class\":\"ModelBased\",\"key\":\"60174fe3e73cb039dcb0064623d657456d411aa411410b1a6eb2202d63815f1a\"},{\"class\":\"ModelBased\",\"key\":\"61db0e75c411f6f9a471b1f97f729edd79e3586813d5302cee896b095689086a\"},{\"class\":\"ModelBased\",\"key\":\"672d13cb5d3858e576016b27050dfcd5b379ef4f1ce063ad9d2cbc86b172d4d2\"},{\"class\":\"ModelBased\",\"key\":\"672da2c7dfdf211e2998280dba9596bf0ca5cd834654b81cf4b32a2d713dba39\"},{\"class\":\"ModelBased\",\"key\":\"67587acca92f43dc61b4c60e1fe7fb9e4b5820bf2d236de1af052de57219f27f\"},{\"class\":\"ModelBased\",\"key\":\"6775ad8bf1895ff2d867c9008219752f8f42c78b5fd101ace5255283b35145c9\"},{\"class\":\"ModelBased\",\"key\":\"67a88a2dc9a9749ec611eef8f47ef5ffcc335f2950d1bfaaf31169ed01904012\"},{\"class\":\"ModelBased\",\"key\":\"67e9c125c3684fcb8da63c96772bbef781209c9fd74cd528664f91852b4b4176\"},{\"class\":\"ModelBased\",\"key\":\"67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e\"},{\"class\":\"ModelBased\",\"key\":\"6a8fd6b98e6e602358b45ef3d81dd9fab39900137bed7c806a2fd18fd1701ec9\"},{\"class\":\"ModelBased\",\"key\":\"6a9997023a65253995105d37bf8f950a39d5e75667f1b8e0a65bf12f2ddf06c2\"},{\"class\":\"ModelBased\",\"key\":\"6f950d6a7312b4b1012670bd6ae900262c9a0b5f45d14d3f74d4686fad0d5dd2\"},{\"class\":\"ModelBased\",\"key\":\"73426eeba8216248fadd45a4e66d23626206416eaf609ec1fbb091c4d3dba1f1\"},{\"class\":\"ModelBased\",\"key\":\"75f8e0fe5d8f56d466a452cf43a316f11b85eccca065342d65543eef6f8e49cd\"},{\"class\":\"ModelBased\",\"key\":\"774e33e878c3e22aba021f52a92fce5221c8c8e152ce67c08557d23eea236e5d\"},{\"class\":\"ModelBased\",\"key\":\"797427cf8368051fe7b8e3e9d5ade9c5bc9d0cf96f4f3fad2a1e1d7848368188\"},{\"class\":\"ModelBased\",\"key\":\"81904e68a8b9a2427e9e87e2c61b1098057608d18357d70d9281e8513941cf53\"},{\"class\":\"ModelBased\",\"key\":\"81c2a21c99c2e261ad6d91443ffb383b57c321d7e33f09cb64c8b946bb14939b\"},{\"class\":\"ModelBased\",\"key\":\"8244d04eb2c28b0405396ea3e5e38d9553e7f70038f142f56d812b4607792ce0\"},{\"class\":\"ModelBased\",\"key\":\"8286ccbaf7188d5a37e0ab2ee7c8b56c3e552ba52940a7cea4c2b00211143324\"},{\"class\":\"ModelBased\",\"key\":\"85114c2b8aed5b3060379940ef850adc12d88f4158c52f16ebc6326abe1d073a\"},{\"class\":\"ModelBased\",\"key\":\"85224a5c0186b205a3e0a1ac0ac023bfb8cc6f4bf19c90be88fc5f0c2316a9fa\"},{\"class\":\"ModelBased\",\"key\":\"854e043633318e3c0ce1b9c7b963dea640c1dd8f04b45a2708c23bcf920975aa\"},{\"class\":\"ModelBased\",\"key\":\"87afe6086fe4571e37657e76281301f189c75ebae1d2eaafb56d578067a1d95e\"},{\"class\":\"ModelBased\",\"key\":\"88750e24b5bd0a5eae833ab5575f0ddf7722a45323a9d90a600862e5d1644dc9\"},{\"class\":\"ModelBased\",\"key\":\"88f977bcc6548ae0517de2c00bfc3d6be3456a3a41cc015dc9f4775f813b3e31\"},{\"class\":\"ModelBased\",\"key\":\"8b218b1d3c571d7f8f754bcac93c85e9abf4a384dadd24abce3cd2d3755ace66\"},{\"class\":\"ModelBased\",\"key\":\"8b2510f123989961c2fe1ecb448bd4583cd90e050061d58700132c9931dbfb72\"},{\"class\":\"ModelBased\",\"key\":\"8c0e4ed1d0667f60c52c3cdc43e01aec868b140e8c3485e2aada52b5e40859fc\"},{\"class\":\"ModelBased\",\"key\":\"8c8ca8dd8cb2e106e8ccb65ad54edf23964558faea16b2c931a99e5791d779de\"},{\"class\":\"ModelBased\",\"key\":\"8c941a526a0adc76166600d48309556769aac616405011874d3ca7c2048064e7\"},{\"class\":\"ModelBased\",\"key\":\"8f4388bd54af76d42241e925ab25cabc8ab569780c4689f8f441c5ed9d4f278c\"},{\"class\":\"ModelBased\",\"key\":\"8fc124e5c902ae19c32a0828a3a403612989b39257a3b6ab516e0df0bf770709\"},{\"class\":\"ModelBased\",\"key\":\"905240728323dea0e4e49776d3483a2e7e8479f60acf23a6e6002ec87886cbe8\"},{\"class\":\"ModelBased\",\"key\":\"906c5d2485cae722073a430f4d04fe1767507592cef226629aeadb85a2ec909d\"},{\"class\":\"ModelBased\",\"key\":\"922f68aaa72f5c7ae62eff5c06ecb72ba11ff7d66891cb6a9fcff8bb1a639338\"},{\"class\":\"ModelBased\",\"key\":\"939f0c2ca1e11562ae0c6d13bc1ce970ebe707781525d7c0248da39d1f896d7b\"},{\"class\":\"ModelBased\",\"key\":\"951a1df7a5c3342f71d0948488b0aad2eafe46ade463e06b95fb037bf75b7b24\"},{\"class\":\"ModelBased\",\"key\":\"95811f41d3d5c58240be155bb7d1dcb8f47add7e3417c24e1d52d41653013926\"},{\"class\":\"ModelBased\",\"key\":\"96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7\"},{\"class\":\"ModelBased\",\"key\":\"96b193fd411f87dce674b30927ff71d65c01d74a6ae8f6bc38d1a4717e8587f8\"},{\"class\":\"ModelBased\",\"key\":\"96ed520f5948ca82194267414b0b0cd4df82fe3f16dfdcf53d3c9a7dc6284821\"},{\"class\":\"ModelBased\",\"key\":\"980adce75321f8d5d389d264a9dee43477124db6634468452addff7e2902750e\"},{\"class\":\"ModelBased\",\"key\":\"99d024a68d4d9728c47928d959ebd3bc621782c9d5fb3a1f7db35c4423fb97e7\"},{\"class\":\"ModelBased\",\"key\":\"9c2b74eae791604e9030f55fa83b75939d4be3ba86751bdad4ca63ba7fe33666\"},{\"class\":\"ModelBased\",\"key\":\"9e69b3fca10e27258f71975f88c318d2207fece018127198dd2376c2c7474d28\"},{\"class\":\"ModelBased\",\"key\":\"9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d\"},{\"class\":\"ModelBased\",\"key\":\"9f4917386c45e2c0da0d9b475f1a19cf2db1e929195c6a9f4966ca0d2105b196\"},{\"class\":\"ModelBased\",\"key\":\"a0f0e5927a4de4f5f340c279dd347f10dd88adebfbaa84961700c132ec37c366\"},{\"class\":\"ModelBased\",\"key\":\"a1f386a0ecb061b3c46a038616212779858ba7258b2eccb818a64986c97282da\"},{\"class\":\"ModelBased\",\"key\":\"a3ae56bff4748ead212a8a8917fce300e25dc7a7bf377bc00de81ccf148a6922\"},{\"class\":\"ModelBased\",\"key\":\"a4316811b0707cdb5408fa54f3ec2d71f0ec0deb0cb3448fdcecb203a5e852e1\"},{\"class\":\"ModelBased\",\"key\":\"a4c851fbf3189e47aba2bd90b69036406538b25d92bffbf2ff12267bbea9f023\"},{\"class\":\"ModelBased\",\"key\":\"a70f494fdb32576884b209bd845113ab3798d80d85673145267af07c2c196e2e\"},{\"class\":\"ModelBased\",\"key\":\"a87c740bfc85616e795d7fedb284d79d11b2c47b844d80c1a126acaf33438d9e\"},{\"class\":\"ModelBased\",\"key\":\"a96fe66c56d3260e6203d8389086e84b06d36c719f27ce3cbd94d6a84084dd4f\"},{\"class\":\"ModelBased\",\"key\":\"ae8ccb6a9d27d7ccb1c5304d6cef9023a9f60a88712b00a247c1af87398bb825\"},{\"class\":\"ModelBased\",\"key\":\"aed9f5e8dedf580817cc0d9a2c1bba0cfffe9fc607e6caedc8011cfc80fe0dd4\"},{\"class\":\"ModelBased\",\"key\":\"b12a1042f422760824da8ff63c055c93d0adce8db676f9471e0bfc81b26b588d\"},{\"class\":\"ModelBased\",\"key\":\"b35429818002e6e8ced180b98b8273bd2fc11f8ed0b0ff54eade7a5920a15ed4\"},{\"class\":\"ModelBased\",\"key\":\"b35d9708f364a8e3b09f1ef3af3f2c36be29f3007e28cca15ab51a5161d276a0\"},{\"class\":\"ModelBased\",\"key\":\"b3fe2f9bd5354b63ae8d0df01e7ad3074f42cbc1ac1f693b64d76ab5e0806587\"},{\"class\":\"ModelBased\",\"key\":\"b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2\"},{\"class\":\"ModelBased\",\"key\":\"b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315\"},{\"class\":\"ModelBased\",\"key\":\"b5609376c87f00c645433e48648cb02e6a3f83467f2c827194de5d58f971c8f0\"},{\"class\":\"ModelBased\",\"key\":\"b563a5e69628743929eddec0ccfeb0745c39577e12a72e84915edd6633cb97f2\"},{\"class\":\"ModelBased\",\"key\":\"b5abc189b59946dbef079123d866f2e750cfcf34bd2f0483d779ac237ea29561\"},{\"class\":\"ModelBased\",\"key\":\"b6abf59c886a792f14e966807e13fed55278f4578fec073751bbf01c2d7390a8\"},{\"class\":\"ModelBased\",\"key\":\"b722899d0815e94bdac59d8262239a4073f9055b28c8d4b80c7e7443f3c45810\"},{\"class\":\"ModelBased\",\"key\":\"b8811852747cfa3620c3dd2af5d59498c240f208e689b4052bac934c29faf094\"},{\"class\":\"ModelBased\",\"key\":\"b894c5014be1934ed94625d131254ba84e97a2115ac9a697b680fe256f50e5cc\"},{\"class\":\"ModelBased\",\"key\":\"b8a7fa77eb1a802d69cd0c68721cb9fe2cd8470cde5d595a4b48eb14cfee429e\"},{\"class\":\"ModelBased\",\"key\":\"bb9a1a47cf5d03dcccf22a8c8b315c3bb423241698d4189e83b460c8da346d03\"},{\"class\":\"ModelBased\",\"key\":\"bbdd1a6d40d4470f372a17524a0f6eaafef967d98b497e3ca9c5cd5d62aca063\"},{\"class\":\"ModelBased\",\"key\":\"bd767b4aa0cdb6b8e4e62761c3e9744353845698ca9aa44f7a1ffb525cdf5cb8\"},{\"class\":\"ModelBased\",\"key\":\"c00b4d3c929cb5cc316691ed4636f634576f2c9b2954767234c5274e9dde185d\"},{\"class\":\"ModelBased\",\"key\":\"c02b4bb4ab96197a9a5a4537d8b87f27c1c8f3f9572d215c505c5f3339ee4399\"},{\"class\":\"ModelBased\",\"key\":\"c233262dd1d49aadacbfa8fee4bd9444d21a81695d2444dfa404f9f64c877a9f\"},{\"class\":\"ModelBased\",\"key\":\"c2af00bc5d44fe76903249463ab0adddccd15e53e0c0ee77e0eecc1649dc9e3b\"},{\"class\":\"ModelBased\",\"key\":\"c35b3663679c2afed64f24926fcf70b5a86227a0781add50ad8c9e8b86c7d739\"},{\"class\":\"ModelBased\",\"key\":\"c493f6f146685f76b44f0c77ca88120cb8bc89f534fe69b6828827b974e68849\"},{\"class\":\"ModelBased\",\"key\":\"c723228fbe3cf04cdf49e61f3e13fc0c407d2e1ff23d6eaa1b4299e7cbb418a1\"},{\"class\":\"ModelBased\",\"key\":\"c7444fd381d99cf179d6321734ddd5c6edcc2698cac879995bf92c0a975e28d0\"},{\"class\":\"ModelBased\",\"key\":\"c7b08e75a630238103aacaeed3ba2916f44aabd177e281567d3c0bd3f141ede9\"},{\"class\":\"ModelBased\",\"key\":\"c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4\"},{\"class\":\"ModelBased\",\"key\":\"c8a92a085a96156d5b09fa436daeed615fa1aa40cc224033b325faeda0f06fd2\"},{\"class\":\"ModelBased\",\"key\":\"c8d4f509baf51eddf1028d6a1eb27c44046ec1db82d3b795fd123607277068e8\"},{\"class\":\"ModelBased\",\"key\":\"cae1ee347b61bbbf3fb9150be2d64d9b5453333932b5865886c14d6e0428eb05\"},{\"class\":\"ModelBased\",\"key\":\"cc08d3882726102fb4e66705442b987ebaeca2ea8d9dea101229cd1dff302b06\"},{\"class\":\"ModelBased\",\"key\":\"ccc8d23f6a9c081d9e23e9eb44497d762eecbf192b1a3e663c1c1bfc47cd155f\"},{\"class\":\"ModelBased\",\"key\":\"d021c38903eefed7e83e17fe8b952f0102a1109da26f83d16f90c2bb219114f4\"},{\"class\":\"ModelBased\",\"key\":\"d070dc5b8da9aea7dc0f5ad4c29d89965200059c9a0ceca3abd5da2492dcb71d\"},{\"class\":\"ModelBased\",\"key\":\"d2bdec3101eb836b1a87afbc37e20aafbbd9c77d2e146dda4c732d44c0bf4515\"},{\"class\":\"ModelBased\",\"key\":\"d2c79d9973bfdaa70e406338d4f4b77e4941dbf90fa84bbbe6769808587528ad\"},{\"class\":\"ModelBased\",\"key\":\"d30068c9fb005848bec75f08e75736b955a28503d20dc3cfbbf389b1477f1389\"},{\"class\":\"ModelBased\",\"key\":\"d63ddb2bdab1f3ff8d05c2e27b763c45e9aecc16dfa5265d4825d9e2fbc2e229\"},{\"class\":\"ModelBased\",\"key\":\"d872141b23150a94829e19f9d874fb1e8204f25c5172dd3bfc440dddd2c11f21\"},{\"class\":\"ModelBased\",\"key\":\"d877a5674d893efd846208dbd80db16fca065c907405986f233d76c3fdb936a2\"},{\"class\":\"ModelBased\",\"key\":\"d8f7720bd76b8e048289b3eeebc5d41e20c35822d4652364a429ab7cb7ea6b1f\"},{\"class\":\"ModelBased\",\"key\":\"d96bdf2090bd7dafe1ab0d9f7ffc4720d002c07abbf48df3969af497b1edbfb9\"},{\"class\":\"ModelBased\",\"key\":\"d9feacea96faa0720f9a24827e7a7f3c9510e32de8985908b7938b6ce0fdc926\"},{\"class\":\"ModelBased\",\"key\":\"dacb71d692a7da361ef755444c7573d5e3451d7e77f2997dd659687118766a0c\"},{\"class\":\"ModelBased\",\"key\":\"daf2fa39d5f4c9f163af42d12e51bfea0d318ed9ad764b905e60bc15b8ba6760\"},{\"class\":\"ModelBased\",\"key\":\"db3426e878068d28d269b6c87172322ce5372b65756d0789001d34835f601c03\"},{\"class\":\"ModelBased\",\"key\":\"db6720693775da968cf808a341b199ebb6826fd3a94c666f3d81273cef90c967\"},{\"class\":\"ModelBased\",\"key\":\"dc2c7a7769a112d344c00361fa09941de6812da7bf0c7e7d83e47ec0618cc530\"},{\"class\":\"ModelBased\",\"key\":\"dca3a52b1c1a5f4353d608a0e3fd9b09ce38799a353badbd7fa0eac8b7e08593\"},{\"class\":\"ModelBased\",\"key\":\"dcc3494d498009f15481bc423aeabcc2f8f5b0e6109192491eda8458032c8db6\"},{\"class\":\"ModelBased\",\"key\":\"de491b86b68fa1c865616d081ca4209851640c8cf8f9ca95932f39ec2d8128f3\"},{\"class\":\"ModelBased\",\"key\":\"deec6e140d80ed38e9d322ee06654112251bd1218af56e7a8466a1e33e835023\"},{\"class\":\"ModelBased\",\"key\":\"df43c7b495c27e782821685017da9a06ddb941f27371f965fbd6cfe24f2a1ae4\"},{\"class\":\"ModelBased\",\"key\":\"df7a5c37b4339eb1f1f2704963660dcbf28558d08f48d32047584ff0a2d6c618\"},{\"class\":\"ModelBased\",\"key\":\"e593490a360ac8104e842141c4059603e0d90b79de99e5b6b6f05afe14945659\"},{\"class\":\"ModelBased\",\"key\":\"e597e908430a1debb48b82c49cb702af9fb5ddd525431fc8ae5199e9c02ba5d9\"},{\"class\":\"ModelBased\",\"key\":\"e6b5b9aa68c49e8650b6545dd8019754b2c1c1f850e94e6e08ae12e88cc121f6\"},{\"class\":\"ModelBased\",\"key\":\"e837a6633f8a90c0344289a211e59f807ab8ea4fa3f2f154a880c3b9a5a6e8b1\"},{\"class\":\"ModelBased\",\"key\":\"e8f1a7e7bd2af4cff5632d7d3b8863078bc4c7ea28064115144916dc63ac8c8a\"},{\"class\":\"ModelBased\",\"key\":\"e916f3568f5f422b77334ed032cb53b37f6286b6ddfdf824bfc304c7d14aaa68\"},{\"class\":\"ModelBased\",\"key\":\"eaf132c40462dd25ee5be6c7944953c92f544953f110bb3a6630b9cb34f13e17\"},{\"class\":\"ModelBased\",\"key\":\"eb01a2cd00007e2524d03e1a8ce3e40655ab71b6f917292a5468b52f563cda65\"},{\"class\":\"ModelBased\",\"key\":\"eb397f6553d3485bc197003a6be3e81c6f696675467b648f0791a8be05de1230\"},{\"class\":\"ModelBased\",\"key\":\"eb58a298566237e5fc4c5a0c879bb9e1537019391ec06968e498290fb82938b7\"},{\"class\":\"ModelBased\",\"key\":\"ebd20c41d4a39831b36b4f82cbbb061a05e1ae2ced7d8f63240cc63a02c73099\"},{\"class\":\"ModelBased\",\"key\":\"f09a7a12954169ae595d12d870e69a4c0092003157d72523d626d2a3990241e2\"},{\"class\":\"ModelBased\",\"key\":\"f3a5441d11e0c900d8957d0e72f4a82f1490c4a0a4d9e1c0f3b29328e3898ed0\"},{\"class\":\"ModelBased\",\"key\":\"f431a7f47862c05a44c40ef1f447d207ba15d339cef1fb9357564974137c1673\"},{\"class\":\"ModelBased\",\"key\":\"f4650993be925273354130913e887edb32422c7616a2c514a40a8a36e5937bfe\"},{\"class\":\"ModelBased\",\"key\":\"f488f2198758b459828f25c4d4429b6507bca1a21349edf8e1005eb9aa4ce637\"},{\"class\":\"ModelBased\",\"key\":\"f5a06d3c52937089c51b7c6c1cc1948ccdc5581328b2ebb578e8cca66a7b5221\"},{\"class\":\"ModelBased\",\"key\":\"f5bba10f36a72d4f8952644f71cb9004a85ae3cf67b9e6ab60b8c4c38230ee8e\"},{\"class\":\"ModelBased\",\"key\":\"f65adc50d592c45d758f22edb9205067031a4f770e11856e9de25bd04341f380\"},{\"class\":\"ModelBased\",\"key\":\"f66d0942831c3fc3a5d7b1399bc2f9027f95f8d735ae2a78f2240c7cefde526b\"},{\"class\":\"ModelBased\",\"key\":\"f6dc1034b093dd79d1b96f328cb1e489ff00868c9a1fdb2f1f929e5bf31f9e51\"},{\"class\":\"ModelBased\",\"key\":\"f7a129689befc9cf8d659378b73025ce18e91e1450c50e8e88bda1e1bb70d377\"},{\"class\":\"ModelBased\",\"key\":\"fa61e3dec3439589f4784c893bf321d0084f04c572c7af2b68e3f3360a35b486\"},{\"class\":\"ModelBased\",\"key\":\"fb0cb7fdcb04f366c6c6d6ace09ea91405874e817a421144a25b7d720da1ee8c\"},{\"class\":\"ModelBased\",\"key\":\"fb13e8eb4ee0b20345624f1ad3a29eb8e4c09ca68f5ae26f2dcfd0edf81ab81c\"},{\"class\":\"ModelBased\",\"key\":\"fca780663c6e21689cad37c3a42e755804e0ed9162a4ce08e2dc08b19ccaae80\"},{\"class\":\"ModelBased\",\"key\":\"fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f\"},{\"class\":\"ModelBased\",\"key\":\"fe251e4dd034dcf589c84794120c85d6015d65ca7d9a2c2ec73c9ecb5e33d83b\"},{\"class\":\"ModelBased\",\"key\":\"fee1814d14723b1df8bdf4fd9f01717f842289bb76bf75645b81448d483cbe2c\"},{\"class\":\"ModelBased\",\"key\":\"ff4771871ba1b9673c682c97a2e167cef8ace5b8a14d75e57f1cfe841fbb33df\"},{\"class\":\"ModelBased\",\"key\":\"ffced6fcdf0897783a7375b2a3475ffc744fbff9599fbc1571a5a62c090ccd3d\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "plan", + "request": "70d34df20fb9eeb91303ec214e1a87dd3c437146b12fddd6b019309c15c30555", + "at_us": 1793667600000000, + "lists": [ + { + "verdict": "stands", + "digest": "f7230a5ed5092650becdd13a5c3bb2c15910d4466496dc765c2fee470f33dd7a" + }, + { + "verdict": "stands", + "digest": "551d0b99a56f41ec34a363a6db95411cf9b3a6e1f0144d70c10e2351e16efe97" + } + ], + "evidence": [], + "audience": 1, + "candidates": [ + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 0, + "bearer": "multicast", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [ + { + "limit": "footprint", + "value": [ + "XA" + ] + } + ], + "cost": 40000000000, + "energy": 750000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 8000000, + "basis": "transmission", + "removed": [], + "cost": 50000000000, + "energy": 1000000000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": 50000000000, + "break_even": 5000, + "rank": 2 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 2, + "bearer": "unidirectional", + "unit": "bytes_sent", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 75000000000, + "energy": null, + "energy_class": null, + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 3, + "bearer": "unidirectional", + "unit": "pass_us", + "max_bps": 9007199254740991, + "basis": "transmission", + "removed": [ + { + "limit": "unit", + "value": "pass_us" + } + ], + "cost": null, + "energy": null, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 4, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 0, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 2000000, + "basis": "receiver", + "removed": [ + { + "limit": "rate", + "value": 2000000 + } + ], + "cost": 5000000, + "energy": 150000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 8000000, + "basis": "receiver", + "removed": [], + "cost": 10000000, + "energy": 250000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": 1 + }, + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 2, + "bearer": "bidirectional", + "unit": "bytes", + "max_bps": 9007199254740991, + "basis": "receiver", + "removed": [ + { + "limit": "tier", + "value": 8000000 + } + ], + "cost": 20000000, + "energy": 450000000, + "energy_class": "Estimator", + "energy_ppm": null, + "evidence": null, + "energy_rank": 3, + "transmission_cost": null, + "break_even": null, + "rank": null + } + ], + "order": [ + { + "seller": "af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d", + "entry": 1 + }, + { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + ], + "decision": { + "decided_by": "price", + "runner_up": { + "seller": "2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6", + "entry": 1 + } + } + } + }, + { + "name": "request_not_a_document", + "description": "A trailing comma.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\",}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_member_added", + "description": "A deadline: a request states none.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"deadline_ms\":1000,\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_kind_other", + "description": "The kind of a route request.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-route-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_direction_other", + "description": "A direction of peer.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"peer\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_to_missing", + "description": "No region delivered to.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_to_lowercase", + "description": "To xb.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"xb\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_rate_zero", + "description": "A rung rate of 0.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":0,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_pass_rate_zero", + "description": "A pass rate of 0.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":0,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_audience_zero", + "description": "An audience of 0.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":0,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_bearers_unordered", + "description": "Bearer classes not in ascending order.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":[\"unidirectional\",\"bidirectional\"],\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_bearer_unknown", + "description": "A bearer class of broadcast.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":[\"bidirectional\",\"broadcast\"],\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_currency_lowercase", + "description": "A currency of usd.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"usd\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_quantities_unordered", + "description": "Quantities not in ascending order of unit.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":1,\"unit\":\"bytes_sent\"},{\"quantity\":1,\"unit\":\"bytes\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_max_price_malformed", + "description": "A cap on bytes per a divisor of 0: a divisor is at least 1.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[{\"divisor\":0,\"price\":1,\"unit\":\"bytes\"}],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_sort_other", + "description": "A sort of ttfb.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"ttfb\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_without_confirmed", + "description": "No confirmed member.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "confirmed_unordered", + "description": "The four confirmed keys in descending order.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "confirmed_repeated", + "description": "The first confirmed key and class twice.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "confirmed_estimator", + "description": "D confirmed for Estimator, which names no records.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"Estimator\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "confirmed_key_form", + "description": "The first confirmed key cut to 63 digits.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1d\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "confirmed_past_bound", + "description": "257 confirmed keys, each for ModelBased: the SHA-256 digests of the two-byte integers 0 to 256, ascending.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"ModelBased\",\"key\":\"0025f5ad5b10a5b949186d49870c4de862edabfdede036ad64ea035fc7b51b03\"},{\"class\":\"ModelBased\",\"key\":\"00bc4b668ccce3ae825dbc18d6ff1dcdd9ec14b284c4f161fa5cfbb2d5069534\"},{\"class\":\"ModelBased\",\"key\":\"022a6979e6dab7aa5ae4c3e5e45f7e977112a7e63593820dbec1ec738a24f93c\"},{\"class\":\"ModelBased\",\"key\":\"0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7\"},{\"class\":\"ModelBased\",\"key\":\"039eb3770b3d1f1a61c6ea162b47ea17b97aed890c18e7857481fdfaba4625e4\"},{\"class\":\"ModelBased\",\"key\":\"0453ff686632d0a42179c939d31728725a35ef229d841846cc18a32fc41b2b85\"},{\"class\":\"ModelBased\",\"key\":\"059efd932f342677da2e960ada869a7c919c33f6914b14b3e89e34ee83b082af\"},{\"class\":\"ModelBased\",\"key\":\"06b6b4095e023805a3cd41879f15ba5ab2f2e33a6f53d916904496062f324995\"},{\"class\":\"ModelBased\",\"key\":\"06eb7d6a69ee19e5fbdf749018d3d2abfa04bcbd1365db312eb86dc7169389b8\"},{\"class\":\"ModelBased\",\"key\":\"085edad400785fca7e7e90b1fac4beb776fc2beee5aa24352d5f39b5d57efcad\"},{\"class\":\"ModelBased\",\"key\":\"08a2afecc9feaef6737f055c177a56a363d28a78d7b259b8c5f66b32174f2e7d\"},{\"class\":\"ModelBased\",\"key\":\"08f16122115bff4739acd4fd8a381ed0f72f4bb220932f7c7c4e3af40a464879\"},{\"class\":\"ModelBased\",\"key\":\"0c55282295f034d7bd4cf5748480dd1a4b6209063a5917e4c09626557425204f\"},{\"class\":\"ModelBased\",\"key\":\"0c85b39d1274655a177d66ec7ccffed81b45d06c4105d61207f36ff51c542499\"},{\"class\":\"ModelBased\",\"key\":\"0cd65a74756f9fd49c3a50100f647a91d9446331e7cc93bc83c0b9ca7e9856ab\"},{\"class\":\"ModelBased\",\"key\":\"0d1abbe3b9da7a48d463edb0a844f3a102dcf7fdea35f9c771d885027b31b322\"},{\"class\":\"ModelBased\",\"key\":\"0d84902cc0f636b02b84346ed79c43d5626284d5baabf7e997a936270680cd2b\"},{\"class\":\"ModelBased\",\"key\":\"0e9354f833bbf16427a9ab9bfc1d3c93f853a71fd2f597ede0b0149028142d2f\"},{\"class\":\"ModelBased\",\"key\":\"0ec4e4f946f1971c04addb3e26d8185eeabfdf4fa6c1f65478a9ba772d825b52\"},{\"class\":\"ModelBased\",\"key\":\"0f2c7f7e50abf7ce2200ae61f3ae429ca9f31d1c7cd57e94248f0b9b5d4fac03\"},{\"class\":\"ModelBased\",\"key\":\"11e1f558223f4c71b6be1cecfd1f0de87146d2594877c27b29ec519f9040213c\"},{\"class\":\"ModelBased\",\"key\":\"12c079387cacd80613d2c658d66a0bd2af145b03d34935b5dab78ce450346699\"},{\"class\":\"ModelBased\",\"key\":\"1321e1ca91757e8c23c934ff4047d69657e9caeed9ce5a29e5fcf94e7e648ca6\"},{\"class\":\"ModelBased\",\"key\":\"13b703597a7d1d3d1b3f85c7b69f03ca47bd97c47fa86613e1f654729d838305\"},{\"class\":\"ModelBased\",\"key\":\"189d4883529028b6aee913d0e17ecb98942e4d1224da8ef14af99a691bf4b003\"},{\"class\":\"ModelBased\",\"key\":\"195f58bc6d6b7b36335c95e08343825a7ae6f30437b4a7e6fa7b89d76907570a\"},{\"class\":\"ModelBased\",\"key\":\"1c9cfb2618360748b0ca7f2bc9829f6a46788ba3adcfdf4b6ae055869b87ae7f\"},{\"class\":\"ModelBased\",\"key\":\"1e3ecb32659377fbd1dfcf173c903f8bd855ad4af0de82a2942b047a50beb9c2\"},{\"class\":\"ModelBased\",\"key\":\"1e6ec1d51d6843b10db10c6efd8260b6ea1cd1f140642c9de593b7b237468713\"},{\"class\":\"ModelBased\",\"key\":\"205022e3428b7c8276cf247b36e4e512db5651e5cb3472c253d9ee893a8ac750\"},{\"class\":\"ModelBased\",\"key\":\"20a656053806b1699d1dd2227d17c50e006e3f0b9af55bb6b525d045ce405de5\"},{\"class\":\"ModelBased\",\"key\":\"20d8479229ae2132eded30fff7493c8e438ab05dd2ff722c59fdf7ea2a00ec3b\"},{\"class\":\"ModelBased\",\"key\":\"20da2faea7f43ac1f0f5de113fbde94c9a8973b2026e3d3f15de0dbba1612964\"},{\"class\":\"ModelBased\",\"key\":\"2215e8ac4e2b871c2a48189e79738c956c081e23ac2f2415bf77da199dfd920c\"},{\"class\":\"ModelBased\",\"key\":\"2334318565750d1aa1d02f22dd12ab5dff3b9c3fbc7a4935bb51d0fa05745ac0\"},{\"class\":\"ModelBased\",\"key\":\"267ff33d242cf99619876d639456f362147845ca99fdd30d4195275ab833c807\"},{\"class\":\"ModelBased\",\"key\":\"27086622d75552b888b6c6464301104655e134b557d986d28e1f02e0aef9c027\"},{\"class\":\"ModelBased\",\"key\":\"274727415b48449789611997233893e017cf76fd40597ef8507cd4441ae11c9d\"},{\"class\":\"ModelBased\",\"key\":\"2824a7ccda2caa720c85c9fba1e8b5b735eecfdb03878e4f8dfe6c3625030bc4\"},{\"class\":\"ModelBased\",\"key\":\"29b40a3da2abf8864c33046251e0d443668771ced2ffe224f8cb14a3e969bc62\"},{\"class\":\"ModelBased\",\"key\":\"2b85c1bb99cea5fef7b3926c4f8035a7b4dd51c80897eb334931cb5586eb789d\"},{\"class\":\"ModelBased\",\"key\":\"2cebe22e5a576eb81b21f9014149af9eba9325612d93591753472ca46538e642\"},{\"class\":\"ModelBased\",\"key\":\"2d0d7c717ba8b0eabd7feb8cb3ea3e0f348173e6adfd32b0de6439166c233620\"},{\"class\":\"ModelBased\",\"key\":\"2e1bdc5ccbe6d31e37d5a82402795ec2d9a6a8a3002d66f1ec7f5c61797a2f7c\"},{\"class\":\"ModelBased\",\"key\":\"2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7\"},{\"class\":\"ModelBased\",\"key\":\"2ed348343ad2d93bbbfc7316cde45c693a36a3d4fde8b39b1449067b1603b90d\"},{\"class\":\"ModelBased\",\"key\":\"2ee788372518190a6ab539cbb20331df1040f21846e3ba836c269aee907c894c\"},{\"class\":\"ModelBased\",\"key\":\"2f01629479bfb3bc9e07b3c050c5728324207a3c19fc1fd5f850cf75cd6a8f9c\"},{\"class\":\"ModelBased\",\"key\":\"2f853830f422d48fce93fe7f13df6cc5a6fe86237c62cf706f5ac6e9fd6bc943\"},{\"class\":\"ModelBased\",\"key\":\"2f9305bb094f7ef24d62ebd93a9db7f73dd4753d14b918680f7f60d4cbaaae5c\"},{\"class\":\"ModelBased\",\"key\":\"319d204b93d0584bd3aa878e2e07d51b06fe3e1d4396fc3293e318677d335524\"},{\"class\":\"ModelBased\",\"key\":\"3340c2cfabca25ae9995c136696909661903c52ec17c0f5f848014606c71039f\"},{\"class\":\"ModelBased\",\"key\":\"34ee08ba62b88a43f6756eb77a5c627dcd34d6810c2e539678df2e0069f69952\"},{\"class\":\"ModelBased\",\"key\":\"3553eb351adac70cf5caa4fefa1caf8cec726403fe4b34c14f1bb8d980c20b95\"},{\"class\":\"ModelBased\",\"key\":\"3639618e90314d0feb7ce289d97468263ca4af996ffc621399d092e1f12aa1dd\"},{\"class\":\"ModelBased\",\"key\":\"366cf04d2c1c031f0c073d87a1effd6d2e2c0868720a7cf41b1261c57e8d37ff\"},{\"class\":\"ModelBased\",\"key\":\"38031a28cee4d129ea4f27e398955b88c6db228b1bb3ba92baa4b4bb7039363a\"},{\"class\":\"ModelBased\",\"key\":\"390400374360c53cad1385d026af51c012f7a8aa7cabdaa2cc6e47ea22b5cb0f\"},{\"class\":\"ModelBased\",\"key\":\"3a7d613e4be9748f7bae02e6537e0f0815ea14b3a96c32b76247127b58a33c91\"},{\"class\":\"ModelBased\",\"key\":\"3b2b7c6ee25e2f28a6235e273eaf13f504bd445024147ebacb878262aae90509\"},{\"class\":\"ModelBased\",\"key\":\"3bf9c81c231cae70b678d3f3038f9f4f6d6b9d7adcf9b378f25919ae53d17686\"},{\"class\":\"ModelBased\",\"key\":\"3c7e9bc930dc93f01fa69985ef242d9f9e861f3c5355aa24ce5ef4b4b8a70ccb\"},{\"class\":\"ModelBased\",\"key\":\"3cf8b42d95b6bd183bfd75c7becce3583f6be3033f31612c5aeeba2555a4643e\"},{\"class\":\"ModelBased\",\"key\":\"3f17bd4e2dadf8c68fa29afddb05faad4e66f536c028c272db9a93f315d2dbd2\"},{\"class\":\"ModelBased\",\"key\":\"40767381548186b93285ab84b0374fb50707c185172a95307e41d5f146111256\"},{\"class\":\"ModelBased\",\"key\":\"40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd\"},{\"class\":\"ModelBased\",\"key\":\"425b04f73bcc6bdb70e201dcfaa1c227e363e0a0dc83025a688baa9e90b91cf2\"},{\"class\":\"ModelBased\",\"key\":\"43679d390fc94be135c5a9e0ae7aa8b1f81575cd5115b574b0c08cc99501fded\"},{\"class\":\"ModelBased\",\"key\":\"43799a4d50e0cb19f37f6ce22b5cbcbf6954f13e9bb4604dca4104ae844374a4\"},{\"class\":\"ModelBased\",\"key\":\"4383b5bf7555c92db4e871928d566f5c93bf0cdd51b042d866921c9ce9b379b3\"},{\"class\":\"ModelBased\",\"key\":\"43f7be3cdc831ed5a0e41257f57341ca64c8f99bd06296bb6089d452d80c7719\"},{\"class\":\"ModelBased\",\"key\":\"453980da5d4136d1db786595046cd791d298d0aeb39702c4a8b8bde1e65352f0\"},{\"class\":\"ModelBased\",\"key\":\"4690c1ed14ac5dd2e529dc29c12bc4561caf27c025346c7e81b28597aeeaa533\"},{\"class\":\"ModelBased\",\"key\":\"47379137e2a09cf9d8a661e81cd6ab06298f64f29ed5f2813291d66e78afe98b\"},{\"class\":\"ModelBased\",\"key\":\"473eeea4328cd254643ad15692bf545cb9e09b6e639aae435bc6e561b9b53671\"},{\"class\":\"ModelBased\",\"key\":\"474f2af47544e9c7ce4338cabd43c5ca1c26432b7300ce387406157ea433891f\"},{\"class\":\"ModelBased\",\"key\":\"478db1c2dda7b9a110a7a576454e4dcf9f3ca3bacbf21f8813de81aaf5619333\"},{\"class\":\"ModelBased\",\"key\":\"47dc540c94ceb704a23875c11273e16bb0b8a87aed84de911f2133568115f254\"},{\"class\":\"ModelBased\",\"key\":\"48b576dfc3447c7a0e6b513608937a23d02e6330c5ed01b0fc4ca98b2bca1feb\"},{\"class\":\"ModelBased\",\"key\":\"49872216faefd9f8598ee484be55f63c9bf8ffbc4aeddd4902e6e91efff9d1c6\"},{\"class\":\"ModelBased\",\"key\":\"4b68b1d2c747f15d40bcbe9a0a464c9af2e59450ef3e75692993b2bc45289aeb\"},{\"class\":\"ModelBased\",\"key\":\"4c29e9291b4592a31336617153619b7b214090e410aa504efb13631cfc51b161\"},{\"class\":\"ModelBased\",\"key\":\"4cf5af027d9a949a881e505bd7c7b14c5eb61ff47d159b585a331d690501d13d\"},{\"class\":\"ModelBased\",\"key\":\"4d2ae2d6e0000b72a5739078e0e83bc029b6232edabff84d012acd1d4803db51\"},{\"class\":\"ModelBased\",\"key\":\"4daeb7b535a01efb089d2750ed30174df27667c2f3b38dbcd01d91b273f977c4\"},{\"class\":\"ModelBased\",\"key\":\"4e0e3847ad9742d0a217e23b7be39fdba727121b1e6b5a3af80595ba46f34e51\"},{\"class\":\"ModelBased\",\"key\":\"4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4\"},{\"class\":\"ModelBased\",\"key\":\"50370e36b4952b59654148674fafada508972b5c90de162a29ba3383a360a789\"},{\"class\":\"ModelBased\",\"key\":\"505114fe537172ea35e17ca1a7516edac516a89b31f983f7c6387d5d2bb462aa\"},{\"class\":\"ModelBased\",\"key\":\"522346c154e555d752414c3b7fefe9bb50ecb784765663c01225f147de98be8c\"},{\"class\":\"ModelBased\",\"key\":\"52f589c3f47d1f0303379d7cc53ca310ee671b68317db538cc8ffbe8c20c02bb\"},{\"class\":\"ModelBased\",\"key\":\"530e9489c8fc9528fa892c7c5251fdf46874f0abc923c1c11d7255e16e5a9252\"},{\"class\":\"ModelBased\",\"key\":\"53304f5e3fd4bcd20b39abdef2fe118031cc5ae8217bcea008dea7e27869348a\"},{\"class\":\"ModelBased\",\"key\":\"541232e2aa3f8edc67d9f9ea0c39d63311cda71c466343617fd9f6672ffd31a3\"},{\"class\":\"ModelBased\",\"key\":\"548431144999ce11132441250358e8e03153d5cd91cb82cc27a8dbdcf8e1e80d\"},{\"class\":\"ModelBased\",\"key\":\"54b417d0e98392330adc944046dd1a2d2ad064f7165d27b4038cc250e9139af4\"},{\"class\":\"ModelBased\",\"key\":\"5596c327e61728e7985d0860eaca23b2bdee1412a099fa70652235c26468c325\"},{\"class\":\"ModelBased\",\"key\":\"5755b0bb3a2acd4fc75b3821b5c22cc170a55a33b7710757911e9c198f0e803b\"},{\"class\":\"ModelBased\",\"key\":\"57a4b6ef36e20bfd4a3ebbc3fe1aa1e89fdae8d7cfd9b94c833e75fc095978a6\"},{\"class\":\"ModelBased\",\"key\":\"57de14353cddaf79d153b36121937a66cd3dc16722ade6e4b5ecf39d3f0cf2cd\"},{\"class\":\"ModelBased\",\"key\":\"57eb35615d47f34ec714cacdf5fd74608a5e8e102724e80b24b287c0c27b6a31\"},{\"class\":\"ModelBased\",\"key\":\"583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d\"},{\"class\":\"ModelBased\",\"key\":\"587bae728805519c3542d21766295396bd01087b6c47765ae3cadbf679813bbe\"},{\"class\":\"ModelBased\",\"key\":\"58fe086fe8376a7f83e2774a29fb609cde97ea058d84c931194e2b967b79bef3\"},{\"class\":\"ModelBased\",\"key\":\"58fe7f64eb18129d249a9079a86ac69522137605d4ba96d8713fd2d8a0affc9e\"},{\"class\":\"ModelBased\",\"key\":\"597fcb31282d34654c200d3418fca5705c648ebf326ec73d8ddef11841f876d8\"},{\"class\":\"ModelBased\",\"key\":\"59b94638773b642b87af5d2478ec16fbeb99d878d318561ce058787ce46bb46e\"},{\"class\":\"ModelBased\",\"key\":\"59f9518e1ec07eed0a537bbedc5403ae3bea0ea85c8d08f8d035424a10624297\"},{\"class\":\"ModelBased\",\"key\":\"5aeb196e83598231b45c61f3e0c5a0fda49b0d4f86a6db5f893aacccf514fa99\"},{\"class\":\"ModelBased\",\"key\":\"5be983d9750d857dc969b252e272904cdb658e6bd7c41a73c56b75c0e6fd01c7\"},{\"class\":\"ModelBased\",\"key\":\"5c9f0bd1f9192c511175b612afa76fa0d8a93c3f1cec27b3d7a70ffe3986f6c9\"},{\"class\":\"ModelBased\",\"key\":\"5e3af5f08a6a02e96b649336245782fce1990954d3d6a207b486c8c6f64434dc\"},{\"class\":\"ModelBased\",\"key\":\"5e4cd10be9483fe8aa215c7ee1804f7f88c02e22fe5fb0336d297bec998471f8\"},{\"class\":\"ModelBased\",\"key\":\"5f17787e74e8fef8d8d11d583f9bee7c7d078ef24917f11e51861b937959ba68\"},{\"class\":\"ModelBased\",\"key\":\"60174fe3e73cb039dcb0064623d657456d411aa411410b1a6eb2202d63815f1a\"},{\"class\":\"ModelBased\",\"key\":\"61db0e75c411f6f9a471b1f97f729edd79e3586813d5302cee896b095689086a\"},{\"class\":\"ModelBased\",\"key\":\"672d13cb5d3858e576016b27050dfcd5b379ef4f1ce063ad9d2cbc86b172d4d2\"},{\"class\":\"ModelBased\",\"key\":\"672da2c7dfdf211e2998280dba9596bf0ca5cd834654b81cf4b32a2d713dba39\"},{\"class\":\"ModelBased\",\"key\":\"67587acca92f43dc61b4c60e1fe7fb9e4b5820bf2d236de1af052de57219f27f\"},{\"class\":\"ModelBased\",\"key\":\"6775ad8bf1895ff2d867c9008219752f8f42c78b5fd101ace5255283b35145c9\"},{\"class\":\"ModelBased\",\"key\":\"67a88a2dc9a9749ec611eef8f47ef5ffcc335f2950d1bfaaf31169ed01904012\"},{\"class\":\"ModelBased\",\"key\":\"67e9c125c3684fcb8da63c96772bbef781209c9fd74cd528664f91852b4b4176\"},{\"class\":\"ModelBased\",\"key\":\"67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e\"},{\"class\":\"ModelBased\",\"key\":\"6a8fd6b98e6e602358b45ef3d81dd9fab39900137bed7c806a2fd18fd1701ec9\"},{\"class\":\"ModelBased\",\"key\":\"6a9997023a65253995105d37bf8f950a39d5e75667f1b8e0a65bf12f2ddf06c2\"},{\"class\":\"ModelBased\",\"key\":\"6f950d6a7312b4b1012670bd6ae900262c9a0b5f45d14d3f74d4686fad0d5dd2\"},{\"class\":\"ModelBased\",\"key\":\"73426eeba8216248fadd45a4e66d23626206416eaf609ec1fbb091c4d3dba1f1\"},{\"class\":\"ModelBased\",\"key\":\"75f8e0fe5d8f56d466a452cf43a316f11b85eccca065342d65543eef6f8e49cd\"},{\"class\":\"ModelBased\",\"key\":\"774e33e878c3e22aba021f52a92fce5221c8c8e152ce67c08557d23eea236e5d\"},{\"class\":\"ModelBased\",\"key\":\"797427cf8368051fe7b8e3e9d5ade9c5bc9d0cf96f4f3fad2a1e1d7848368188\"},{\"class\":\"ModelBased\",\"key\":\"81904e68a8b9a2427e9e87e2c61b1098057608d18357d70d9281e8513941cf53\"},{\"class\":\"ModelBased\",\"key\":\"81c2a21c99c2e261ad6d91443ffb383b57c321d7e33f09cb64c8b946bb14939b\"},{\"class\":\"ModelBased\",\"key\":\"8244d04eb2c28b0405396ea3e5e38d9553e7f70038f142f56d812b4607792ce0\"},{\"class\":\"ModelBased\",\"key\":\"8286ccbaf7188d5a37e0ab2ee7c8b56c3e552ba52940a7cea4c2b00211143324\"},{\"class\":\"ModelBased\",\"key\":\"85114c2b8aed5b3060379940ef850adc12d88f4158c52f16ebc6326abe1d073a\"},{\"class\":\"ModelBased\",\"key\":\"85224a5c0186b205a3e0a1ac0ac023bfb8cc6f4bf19c90be88fc5f0c2316a9fa\"},{\"class\":\"ModelBased\",\"key\":\"854e043633318e3c0ce1b9c7b963dea640c1dd8f04b45a2708c23bcf920975aa\"},{\"class\":\"ModelBased\",\"key\":\"87afe6086fe4571e37657e76281301f189c75ebae1d2eaafb56d578067a1d95e\"},{\"class\":\"ModelBased\",\"key\":\"88750e24b5bd0a5eae833ab5575f0ddf7722a45323a9d90a600862e5d1644dc9\"},{\"class\":\"ModelBased\",\"key\":\"88f977bcc6548ae0517de2c00bfc3d6be3456a3a41cc015dc9f4775f813b3e31\"},{\"class\":\"ModelBased\",\"key\":\"8b218b1d3c571d7f8f754bcac93c85e9abf4a384dadd24abce3cd2d3755ace66\"},{\"class\":\"ModelBased\",\"key\":\"8b2510f123989961c2fe1ecb448bd4583cd90e050061d58700132c9931dbfb72\"},{\"class\":\"ModelBased\",\"key\":\"8c0e4ed1d0667f60c52c3cdc43e01aec868b140e8c3485e2aada52b5e40859fc\"},{\"class\":\"ModelBased\",\"key\":\"8c8ca8dd8cb2e106e8ccb65ad54edf23964558faea16b2c931a99e5791d779de\"},{\"class\":\"ModelBased\",\"key\":\"8c941a526a0adc76166600d48309556769aac616405011874d3ca7c2048064e7\"},{\"class\":\"ModelBased\",\"key\":\"8f4388bd54af76d42241e925ab25cabc8ab569780c4689f8f441c5ed9d4f278c\"},{\"class\":\"ModelBased\",\"key\":\"8fc124e5c902ae19c32a0828a3a403612989b39257a3b6ab516e0df0bf770709\"},{\"class\":\"ModelBased\",\"key\":\"905240728323dea0e4e49776d3483a2e7e8479f60acf23a6e6002ec87886cbe8\"},{\"class\":\"ModelBased\",\"key\":\"906c5d2485cae722073a430f4d04fe1767507592cef226629aeadb85a2ec909d\"},{\"class\":\"ModelBased\",\"key\":\"922f68aaa72f5c7ae62eff5c06ecb72ba11ff7d66891cb6a9fcff8bb1a639338\"},{\"class\":\"ModelBased\",\"key\":\"939f0c2ca1e11562ae0c6d13bc1ce970ebe707781525d7c0248da39d1f896d7b\"},{\"class\":\"ModelBased\",\"key\":\"951a1df7a5c3342f71d0948488b0aad2eafe46ade463e06b95fb037bf75b7b24\"},{\"class\":\"ModelBased\",\"key\":\"95811f41d3d5c58240be155bb7d1dcb8f47add7e3417c24e1d52d41653013926\"},{\"class\":\"ModelBased\",\"key\":\"96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7\"},{\"class\":\"ModelBased\",\"key\":\"96b193fd411f87dce674b30927ff71d65c01d74a6ae8f6bc38d1a4717e8587f8\"},{\"class\":\"ModelBased\",\"key\":\"96ed520f5948ca82194267414b0b0cd4df82fe3f16dfdcf53d3c9a7dc6284821\"},{\"class\":\"ModelBased\",\"key\":\"980adce75321f8d5d389d264a9dee43477124db6634468452addff7e2902750e\"},{\"class\":\"ModelBased\",\"key\":\"99d024a68d4d9728c47928d959ebd3bc621782c9d5fb3a1f7db35c4423fb97e7\"},{\"class\":\"ModelBased\",\"key\":\"9c2b74eae791604e9030f55fa83b75939d4be3ba86751bdad4ca63ba7fe33666\"},{\"class\":\"ModelBased\",\"key\":\"9e69b3fca10e27258f71975f88c318d2207fece018127198dd2376c2c7474d28\"},{\"class\":\"ModelBased\",\"key\":\"9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d\"},{\"class\":\"ModelBased\",\"key\":\"9f4917386c45e2c0da0d9b475f1a19cf2db1e929195c6a9f4966ca0d2105b196\"},{\"class\":\"ModelBased\",\"key\":\"a0f0e5927a4de4f5f340c279dd347f10dd88adebfbaa84961700c132ec37c366\"},{\"class\":\"ModelBased\",\"key\":\"a1f386a0ecb061b3c46a038616212779858ba7258b2eccb818a64986c97282da\"},{\"class\":\"ModelBased\",\"key\":\"a3ae56bff4748ead212a8a8917fce300e25dc7a7bf377bc00de81ccf148a6922\"},{\"class\":\"ModelBased\",\"key\":\"a4316811b0707cdb5408fa54f3ec2d71f0ec0deb0cb3448fdcecb203a5e852e1\"},{\"class\":\"ModelBased\",\"key\":\"a4c851fbf3189e47aba2bd90b69036406538b25d92bffbf2ff12267bbea9f023\"},{\"class\":\"ModelBased\",\"key\":\"a70f494fdb32576884b209bd845113ab3798d80d85673145267af07c2c196e2e\"},{\"class\":\"ModelBased\",\"key\":\"a87c740bfc85616e795d7fedb284d79d11b2c47b844d80c1a126acaf33438d9e\"},{\"class\":\"ModelBased\",\"key\":\"a96fe66c56d3260e6203d8389086e84b06d36c719f27ce3cbd94d6a84084dd4f\"},{\"class\":\"ModelBased\",\"key\":\"ae8ccb6a9d27d7ccb1c5304d6cef9023a9f60a88712b00a247c1af87398bb825\"},{\"class\":\"ModelBased\",\"key\":\"aed9f5e8dedf580817cc0d9a2c1bba0cfffe9fc607e6caedc8011cfc80fe0dd4\"},{\"class\":\"ModelBased\",\"key\":\"b12a1042f422760824da8ff63c055c93d0adce8db676f9471e0bfc81b26b588d\"},{\"class\":\"ModelBased\",\"key\":\"b35429818002e6e8ced180b98b8273bd2fc11f8ed0b0ff54eade7a5920a15ed4\"},{\"class\":\"ModelBased\",\"key\":\"b35d9708f364a8e3b09f1ef3af3f2c36be29f3007e28cca15ab51a5161d276a0\"},{\"class\":\"ModelBased\",\"key\":\"b3fe2f9bd5354b63ae8d0df01e7ad3074f42cbc1ac1f693b64d76ab5e0806587\"},{\"class\":\"ModelBased\",\"key\":\"b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2\"},{\"class\":\"ModelBased\",\"key\":\"b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315\"},{\"class\":\"ModelBased\",\"key\":\"b5609376c87f00c645433e48648cb02e6a3f83467f2c827194de5d58f971c8f0\"},{\"class\":\"ModelBased\",\"key\":\"b563a5e69628743929eddec0ccfeb0745c39577e12a72e84915edd6633cb97f2\"},{\"class\":\"ModelBased\",\"key\":\"b5abc189b59946dbef079123d866f2e750cfcf34bd2f0483d779ac237ea29561\"},{\"class\":\"ModelBased\",\"key\":\"b6abf59c886a792f14e966807e13fed55278f4578fec073751bbf01c2d7390a8\"},{\"class\":\"ModelBased\",\"key\":\"b722899d0815e94bdac59d8262239a4073f9055b28c8d4b80c7e7443f3c45810\"},{\"class\":\"ModelBased\",\"key\":\"b8811852747cfa3620c3dd2af5d59498c240f208e689b4052bac934c29faf094\"},{\"class\":\"ModelBased\",\"key\":\"b894c5014be1934ed94625d131254ba84e97a2115ac9a697b680fe256f50e5cc\"},{\"class\":\"ModelBased\",\"key\":\"b8a7fa77eb1a802d69cd0c68721cb9fe2cd8470cde5d595a4b48eb14cfee429e\"},{\"class\":\"ModelBased\",\"key\":\"bb9a1a47cf5d03dcccf22a8c8b315c3bb423241698d4189e83b460c8da346d03\"},{\"class\":\"ModelBased\",\"key\":\"bbdd1a6d40d4470f372a17524a0f6eaafef967d98b497e3ca9c5cd5d62aca063\"},{\"class\":\"ModelBased\",\"key\":\"bd767b4aa0cdb6b8e4e62761c3e9744353845698ca9aa44f7a1ffb525cdf5cb8\"},{\"class\":\"ModelBased\",\"key\":\"c00b4d3c929cb5cc316691ed4636f634576f2c9b2954767234c5274e9dde185d\"},{\"class\":\"ModelBased\",\"key\":\"c02b4bb4ab96197a9a5a4537d8b87f27c1c8f3f9572d215c505c5f3339ee4399\"},{\"class\":\"ModelBased\",\"key\":\"c233262dd1d49aadacbfa8fee4bd9444d21a81695d2444dfa404f9f64c877a9f\"},{\"class\":\"ModelBased\",\"key\":\"c2af00bc5d44fe76903249463ab0adddccd15e53e0c0ee77e0eecc1649dc9e3b\"},{\"class\":\"ModelBased\",\"key\":\"c35b3663679c2afed64f24926fcf70b5a86227a0781add50ad8c9e8b86c7d739\"},{\"class\":\"ModelBased\",\"key\":\"c493f6f146685f76b44f0c77ca88120cb8bc89f534fe69b6828827b974e68849\"},{\"class\":\"ModelBased\",\"key\":\"c723228fbe3cf04cdf49e61f3e13fc0c407d2e1ff23d6eaa1b4299e7cbb418a1\"},{\"class\":\"ModelBased\",\"key\":\"c7444fd381d99cf179d6321734ddd5c6edcc2698cac879995bf92c0a975e28d0\"},{\"class\":\"ModelBased\",\"key\":\"c7b08e75a630238103aacaeed3ba2916f44aabd177e281567d3c0bd3f141ede9\"},{\"class\":\"ModelBased\",\"key\":\"c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4\"},{\"class\":\"ModelBased\",\"key\":\"c8a92a085a96156d5b09fa436daeed615fa1aa40cc224033b325faeda0f06fd2\"},{\"class\":\"ModelBased\",\"key\":\"c8d4f509baf51eddf1028d6a1eb27c44046ec1db82d3b795fd123607277068e8\"},{\"class\":\"ModelBased\",\"key\":\"cae1ee347b61bbbf3fb9150be2d64d9b5453333932b5865886c14d6e0428eb05\"},{\"class\":\"ModelBased\",\"key\":\"cc08d3882726102fb4e66705442b987ebaeca2ea8d9dea101229cd1dff302b06\"},{\"class\":\"ModelBased\",\"key\":\"ccc8d23f6a9c081d9e23e9eb44497d762eecbf192b1a3e663c1c1bfc47cd155f\"},{\"class\":\"ModelBased\",\"key\":\"d021c38903eefed7e83e17fe8b952f0102a1109da26f83d16f90c2bb219114f4\"},{\"class\":\"ModelBased\",\"key\":\"d070dc5b8da9aea7dc0f5ad4c29d89965200059c9a0ceca3abd5da2492dcb71d\"},{\"class\":\"ModelBased\",\"key\":\"d2bdec3101eb836b1a87afbc37e20aafbbd9c77d2e146dda4c732d44c0bf4515\"},{\"class\":\"ModelBased\",\"key\":\"d2c79d9973bfdaa70e406338d4f4b77e4941dbf90fa84bbbe6769808587528ad\"},{\"class\":\"ModelBased\",\"key\":\"d30068c9fb005848bec75f08e75736b955a28503d20dc3cfbbf389b1477f1389\"},{\"class\":\"ModelBased\",\"key\":\"d63ddb2bdab1f3ff8d05c2e27b763c45e9aecc16dfa5265d4825d9e2fbc2e229\"},{\"class\":\"ModelBased\",\"key\":\"d872141b23150a94829e19f9d874fb1e8204f25c5172dd3bfc440dddd2c11f21\"},{\"class\":\"ModelBased\",\"key\":\"d877a5674d893efd846208dbd80db16fca065c907405986f233d76c3fdb936a2\"},{\"class\":\"ModelBased\",\"key\":\"d8f7720bd76b8e048289b3eeebc5d41e20c35822d4652364a429ab7cb7ea6b1f\"},{\"class\":\"ModelBased\",\"key\":\"d96bdf2090bd7dafe1ab0d9f7ffc4720d002c07abbf48df3969af497b1edbfb9\"},{\"class\":\"ModelBased\",\"key\":\"d9feacea96faa0720f9a24827e7a7f3c9510e32de8985908b7938b6ce0fdc926\"},{\"class\":\"ModelBased\",\"key\":\"dacb71d692a7da361ef755444c7573d5e3451d7e77f2997dd659687118766a0c\"},{\"class\":\"ModelBased\",\"key\":\"daf2fa39d5f4c9f163af42d12e51bfea0d318ed9ad764b905e60bc15b8ba6760\"},{\"class\":\"ModelBased\",\"key\":\"db3426e878068d28d269b6c87172322ce5372b65756d0789001d34835f601c03\"},{\"class\":\"ModelBased\",\"key\":\"db6720693775da968cf808a341b199ebb6826fd3a94c666f3d81273cef90c967\"},{\"class\":\"ModelBased\",\"key\":\"dc2c7a7769a112d344c00361fa09941de6812da7bf0c7e7d83e47ec0618cc530\"},{\"class\":\"ModelBased\",\"key\":\"dca3a52b1c1a5f4353d608a0e3fd9b09ce38799a353badbd7fa0eac8b7e08593\"},{\"class\":\"ModelBased\",\"key\":\"dcc3494d498009f15481bc423aeabcc2f8f5b0e6109192491eda8458032c8db6\"},{\"class\":\"ModelBased\",\"key\":\"de491b86b68fa1c865616d081ca4209851640c8cf8f9ca95932f39ec2d8128f3\"},{\"class\":\"ModelBased\",\"key\":\"deec6e140d80ed38e9d322ee06654112251bd1218af56e7a8466a1e33e835023\"},{\"class\":\"ModelBased\",\"key\":\"df43c7b495c27e782821685017da9a06ddb941f27371f965fbd6cfe24f2a1ae4\"},{\"class\":\"ModelBased\",\"key\":\"df7a5c37b4339eb1f1f2704963660dcbf28558d08f48d32047584ff0a2d6c618\"},{\"class\":\"ModelBased\",\"key\":\"e593490a360ac8104e842141c4059603e0d90b79de99e5b6b6f05afe14945659\"},{\"class\":\"ModelBased\",\"key\":\"e597e908430a1debb48b82c49cb702af9fb5ddd525431fc8ae5199e9c02ba5d9\"},{\"class\":\"ModelBased\",\"key\":\"e6b5b9aa68c49e8650b6545dd8019754b2c1c1f850e94e6e08ae12e88cc121f6\"},{\"class\":\"ModelBased\",\"key\":\"e837a6633f8a90c0344289a211e59f807ab8ea4fa3f2f154a880c3b9a5a6e8b1\"},{\"class\":\"ModelBased\",\"key\":\"e8f1a7e7bd2af4cff5632d7d3b8863078bc4c7ea28064115144916dc63ac8c8a\"},{\"class\":\"ModelBased\",\"key\":\"e916f3568f5f422b77334ed032cb53b37f6286b6ddfdf824bfc304c7d14aaa68\"},{\"class\":\"ModelBased\",\"key\":\"eaf132c40462dd25ee5be6c7944953c92f544953f110bb3a6630b9cb34f13e17\"},{\"class\":\"ModelBased\",\"key\":\"eb01a2cd00007e2524d03e1a8ce3e40655ab71b6f917292a5468b52f563cda65\"},{\"class\":\"ModelBased\",\"key\":\"eb397f6553d3485bc197003a6be3e81c6f696675467b648f0791a8be05de1230\"},{\"class\":\"ModelBased\",\"key\":\"eb58a298566237e5fc4c5a0c879bb9e1537019391ec06968e498290fb82938b7\"},{\"class\":\"ModelBased\",\"key\":\"ebd20c41d4a39831b36b4f82cbbb061a05e1ae2ced7d8f63240cc63a02c73099\"},{\"class\":\"ModelBased\",\"key\":\"f09a7a12954169ae595d12d870e69a4c0092003157d72523d626d2a3990241e2\"},{\"class\":\"ModelBased\",\"key\":\"f3a5441d11e0c900d8957d0e72f4a82f1490c4a0a4d9e1c0f3b29328e3898ed0\"},{\"class\":\"ModelBased\",\"key\":\"f431a7f47862c05a44c40ef1f447d207ba15d339cef1fb9357564974137c1673\"},{\"class\":\"ModelBased\",\"key\":\"f4650993be925273354130913e887edb32422c7616a2c514a40a8a36e5937bfe\"},{\"class\":\"ModelBased\",\"key\":\"f488f2198758b459828f25c4d4429b6507bca1a21349edf8e1005eb9aa4ce637\"},{\"class\":\"ModelBased\",\"key\":\"f5a06d3c52937089c51b7c6c1cc1948ccdc5581328b2ebb578e8cca66a7b5221\"},{\"class\":\"ModelBased\",\"key\":\"f5bba10f36a72d4f8952644f71cb9004a85ae3cf67b9e6ab60b8c4c38230ee8e\"},{\"class\":\"ModelBased\",\"key\":\"f65adc50d592c45d758f22edb9205067031a4f770e11856e9de25bd04341f380\"},{\"class\":\"ModelBased\",\"key\":\"f66d0942831c3fc3a5d7b1399bc2f9027f95f8d735ae2a78f2240c7cefde526b\"},{\"class\":\"ModelBased\",\"key\":\"f6dc1034b093dd79d1b96f328cb1e489ff00868c9a1fdb2f1f929e5bf31f9e51\"},{\"class\":\"ModelBased\",\"key\":\"f7a129689befc9cf8d659378b73025ce18e91e1450c50e8e88bda1e1bb70d377\"},{\"class\":\"ModelBased\",\"key\":\"fa61e3dec3439589f4784c893bf321d0084f04c572c7af2b68e3f3360a35b486\"},{\"class\":\"ModelBased\",\"key\":\"fb0cb7fdcb04f366c6c6d6ace09ea91405874e817a421144a25b7d720da1ee8c\"},{\"class\":\"ModelBased\",\"key\":\"fb13e8eb4ee0b20345624f1ad3a29eb8e4c09ca68f5ae26f2dcfd0edf81ab81c\"},{\"class\":\"ModelBased\",\"key\":\"fca780663c6e21689cad37c3a42e755804e0ed9162a4ce08e2dc08b19ccaae80\"},{\"class\":\"ModelBased\",\"key\":\"fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f\"},{\"class\":\"ModelBased\",\"key\":\"fe251e4dd034dcf589c84794120c85d6015d65ca7d9a2c2ec73c9ecb5e33d83b\"},{\"class\":\"ModelBased\",\"key\":\"fee1814d14723b1df8bdf4fd9f01717f842289bb76bf75645b81448d483cbe2c\"},{\"class\":\"ModelBased\",\"key\":\"ff4771871ba1b9673c682c97a2e167cef8ace5b8a14d75e57f1cfe841fbb33df\"},{\"class\":\"ModelBased\",\"key\":\"ffced6fcdf0897783a7375b2a3475ffc744fbff9599fbc1571a5a62c090ccd3d\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":604800000000,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "evidence_age_zero", + "description": "An evidence age of 0.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":0,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "evidence_age_null", + "description": "An evidence age of null.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"evidence_age_us\":null,\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + }, + { + "name": "request_without_evidence_age", + "description": "No evidence_age_us member.", + "texts": [ + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":300000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":2000000,\"price\":10000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":500000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":20000000,\"unit\":\"bytes\"},{\"bearer\":\"bidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":900000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":40000000,\"unit\":\"bytes\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d\",\"sig\":\"e381cfd3aef299397082fa7f2c8d1cc7276cb004cd0e0d97cf7a8b328f6844e828979d44df4e1bcd3f3f25e4276993c92d0968fd4213f4c75feb857101fd830d\",\"version\":1}", + "{\"currency\":\"USD\",\"entries\":[{\"bearer\":\"multicast\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":1500000000,\"footprint\":[\"XA\"],\"max_bps\":8000000,\"price\":80000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":2000000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":8000000,\"price\":100000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":150000000,\"unit\":\"bytes_sent\"},{\"bearer\":\"unidirectional\",\"direction\":\"downlink\",\"divisor\":1000000,\"energy_class\":\"Estimator\",\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":40000000,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":9007199254740991,\"price\":2000000,\"unit\":\"pass_us\"},{\"bearer\":\"unidirectional\",\"direction\":\"uplink\",\"divisor\":1000000000,\"energy_class\":null,\"energy_evidence\":null,\"energy_ppm\":null,\"energy_uj\":null,\"footprint\":[\"XA\",\"XB\"],\"max_bps\":1000000,\"price\":50000000,\"unit\":\"bytes_sent\"}],\"expires\":1793750400000000,\"issued\":1793664000000000,\"kind\":\"wai-rung-prices\",\"seller\":\"2df04125f0015afb47ce853aef8772094ff9498c14cb1b9e12973c2927da0fa6\",\"sig\":\"32afc65dfbcc701cf2bf1203fe0456ae8e152ba859a4789924e473f918b45baae0ddd9b2ef5568bf288e77ec4aced90c5ece127364a765847d75f0c7011bcf0f\",\"version\":1}" + ], + "at_us": 1793667600000000, + "request": "{\"audience\":null,\"bearers\":null,\"confirmed\":[{\"class\":\"CalibratedInstrument\",\"key\":\"12a41592c8b7c17d4059e7b29b61e8ff96c7415f2f803348f2f017e05b9ea1da\"},{\"class\":\"OnChipCounter\",\"key\":\"2bc2800b3316e009209ffd757dab19ccf0ae84bc7ae90654e1e81712d270f653\"},{\"class\":\"ModelBased\",\"key\":\"54b0d81d0fa7d00e4a7d600dfaba6f2b22035b22fe335e17edf5f9aa5bb05074\"},{\"class\":\"CalibratedInstrument\",\"key\":\"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367\"}],\"currency\":\"USD\",\"direction\":\"downlink\",\"kind\":\"wai-rung-request\",\"max_price\":[],\"pass_rate_bps\":6000000,\"quantities\":[{\"quantity\":500000000,\"unit\":\"bytes\"},{\"quantity\":500000000000,\"unit\":\"bytes_sent\"}],\"rate_bps\":3000000,\"sort\":\"price\",\"to\":\"XB\"}", + "evidence": [], + "outcome": { + "outcome": "refuse", + "reason": "rung_request_invalid" + } + } + ] +} diff --git a/wai/live-conformance/rung_price_verify.py b/wai/live-conformance/rung_price_verify.py new file mode 100644 index 000000000..d26dd2b6b --- /dev/null +++ b/wai/live-conformance/rung_price_verify.py @@ -0,0 +1,1310 @@ +#!/usr/bin/env python3 +"""Independent verifier of the rung price corpus (extensions/rung-price.md). + +Written from the extension's text. It shares no code with wai-rs, which generates the corpus, and +never runs it. It takes from the second implementations of the texts this extension builds on +what they define: documents, their canonical form and digest, and a request's quantities from +route-record's (`route_record_verify.py`, route-record §2 and §3.1), per-hop records from +live-metering's (`live_metering_verify.py`, live-metering §3.6), room descriptors from fleet's +(`fleet_verify.py`, fleet §4.4), and Ed25519 verification as SPEC §7 *Signatures* states it from +the routine every Python verifier of WAI's corpora shares (`../claim-conformance/_ed25519.py`). +Everything this extension adds is written here: §2's region code, its country and *holds* (WAI's +one definition, which other verifiers import from here as `region_code`, `country` and `holds`); +the list's members, rules, digest and signature (§4); the evidence an energy figure names, the +texts that give it and the rules that refute it (§4.6); its verdict at an instant (§5); a request, +the records and rooms the evidence texts give, its candidates and removals, cost and energy per +receiver, each candidate's evidence and energy rank, ranking, decision and break-even audience +(§6); and §7.2's pass rate with the tier that prices it (`pass_rate`, `tier`). + +For every case it requires the outcome the corpus states, member for member; that every reason of +§8's table appears in the corpus and that the corpus states no other; that every limit of §6.2, +every decision of §6.5, every evidence of §6.4 and every energy rank occurs; and that no outcome +depends on the order the lists or the evidence are given in, beyond the positions of the lists' +verdicts, nor on the order of a request's members, nor on a list or a text being given twice. It +checks what no vector carries: the bounds of a text, a list, a request and an evidence text, the +ceiling the `tier` limit reads when two lower ones cover a rung, and §7.2's pass rate. Then it +mutates copies of the corpus, one defect each, and requires every copy to fail; and it drops each +of its own checks in turn and requires the corpus to catch the weakened verifier. + + python3 -I rung_price_verify.py + +Exit status 0 only if every case verifies, every mutated copy fails and every weakened verifier is +caught. Python 3.8 or later and the standard library. +""" + +import copy +import functools +import hashlib +import json +import os +import re +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +sys.path.insert(0, os.path.join(HERE, "..", "claim-conformance")) +import _ed25519 as ED # noqa: E402 +import route_record_verify as RR # noqa: E402 +import live_metering_verify as LMV # noqa: E402 +import fleet_verify as FV # noqa: E402 + +EXTENSION = os.path.join(HERE, "..", "extensions", "rung-price.md") +KIND = "wai-rung-prices" # §4.1 +REQUEST_KIND = "wai-rung-request" # §6.1 +DOMAIN = b"wai:rung-prices\x01" # §4.4 +MAX = (1 << 53) - 1 +MAX_TEXT = 1 << 20 # §4.5: 1,048,576 bytes +MAX_REQUEST = 1 << 16 # §6.1: 65,536 bytes +MAX_ENTRIES = 1024 # §4.1 +MAX_FOOTPRINT = 8192 # §4.2 +U32 = (1 << 32) - 1 +DIRECTIONS = ("downlink", "uplink") # §2 +BEARERS = ("bidirectional", "multicast", "unidirectional") # bearer-receipts §2 +CLASSES = ("CalibratedInstrument", "OnChipCounter", "ModelBased", "Estimator") # route-record §2's classes: rule 1's form +SHARED = ("multicast", "unidirectional") +# §4.3: unit -> (bearers, directions, divisor, the most a price may be). +UNITS = { + "bytes": (("bidirectional",), ("downlink",), 10 ** 9, MAX), + "subscriber_us": (("bidirectional",), ("downlink",), 10 ** 6, U32), + "publisher_us": (("bidirectional",), ("uplink",), 10 ** 6, U32), + "bytes_sent": (SHARED, DIRECTIONS, 10 ** 9, MAX), + "pass_us": (SHARED, DIRECTIONS, 10 ** 6, MAX), +} +LIST = ["kind", "version", "seller", "currency", "issued", "expires", "entries", "sig"] # §4.1 +ENTRY = ["direction", "bearer", "footprint", "max_bps", "unit", "divisor", "price", "energy_uj", "energy_class", + "energy_ppm", "energy_evidence"] # §4.2 +REQUEST = ["kind", "direction", "to", "rate_bps", "pass_rate_bps", "bearers", "currency", "quantities", "max_price", + "audience", "sort", "confirmed", "evidence_age_us"] # §6.1 +DECISIONS = ["none", "only_survivor", "price", "energy", "seller", "entry"] # §6.5 +MAX_READINGS = 64 # §4.2 +MAX_CONFIRMED = 256 # §6.1 +READ_TAGS = {"CalibratedInstrument": 5, "OnChipCounter": 4, "ModelBased": 2} # §4.6 rule 3, in §6.4's rank order +HARDWARE = ("CalibratedInstrument", "OnChipCounter") # §4.2: the classes that declare an uncertainty +READ_UNITS = ("bytes", "subscriber_us") # §4.5 rule 5 +EVIDENCE = ["checked", "absent", "outside-window", "unconfirmed"] # §6.4, besides `refuted reason=…` +CURRENCY = re.compile(r"\A[A-Z]{3}\Z") + +# A weakened run drops one of these checks (see `WEAKENINGS`); None checks everything. +DROPPED = None + + +def drops(name): + return DROPPED == name + + +def section(heading): + text = open(EXTENSION, encoding="utf-8").read() + at = text.index("\n" + heading) + end = text.find("\n#", at + 1) + return text[at:end if end >= 0 else len(text)] + + +def reasons_table(): + """§8's codes, in order.""" + return [r.split("`")[1] for r in section("## 8. Reasons").splitlines() if r.startswith("| `")] + + +def limits_table(): + """§6.2's limits, in its table's order.""" + return [r.split("`")[1] for r in section("### 6.2 Candidates and removals").splitlines() if r.startswith("| `")] + + +class Refused(Exception): + def __init__(self, reason): + super().__init__(reason) + self.reason = reason + + +# ------------------------------------------------------------------ §2: the region code + +REGION = re.compile(r"\A[A-Z]{2}(?:-[A-Z0-9]{1,3})?\Z") +LENIENT = re.compile(r"\A[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,3})?\Z") + + +def region_code(v): + """§2 *Region code*: an ISO 3166-1 alpha-2 code (two capitals), or an ISO 3166-2 code (one, `-`, + then 1 to 3 capitals or digits). Whether ISO assigns it is not checked.""" + rx = LENIENT if drops("region_grammar") else REGION + return isinstance(v, str) and rx.match(v) is not None + + +def country(r): + """§2: a code's country is its first two characters.""" + return r[:2] + + +def holds(codes, r): + """§2 *Holds*: `codes` lists `r`, or `r` is an ISO 3166-2 code whose country `codes` lists. Never a + country because a subdivision of it is listed. Codes are compared byte for byte.""" + if r in codes: + return True + if len(r) > 2 and country(r) in codes and not drops("footprint_exact"): + return True + return drops("footprint_upward") and any(len(c) > 2 and country(c) == r for c in codes) + + +# ------------------------------------------------------------------ §4: the list + +class PriceList: + def __init__(self, doc, digest): + self.doc, self.digest = doc, digest + self.seller, self.currency = doc["seller"], doc["currency"] + self.issued, self.expires, self.entries = doc["issued"], doc["expires"], doc["entries"] + + +def members(v, names): + """Exactly `names`; a verifier without its `members` check admits more.""" + if drops("members"): + return isinstance(v, dict) and set(names) <= set(v) + return RR.exactly(v, names) + + +def entry_form(e): + """§4.2, each member of its form (rule 1). The footprint's order is rule 3's.""" + if not members(e, ENTRY): + return False + if not (isinstance(e["direction"], str) and e["direction"] in DIRECTIONS) and not drops("direction_form"): + return False + if not (isinstance(e["bearer"], str) and e["bearer"] in BEARERS) and not drops("bearer_form"): + return False + fp = e["footprint"] + if not isinstance(fp, list) or not all(region_code(c) for c in fp): + return False + if not fp and not drops("footprint_empty"): + return False + if len(fp) > MAX_FOOTPRINT and not drops("footprint_bound"): + return False + if not RR.is_int(e["max_bps"], 0 if drops("max_bps_form") else 1, MAX): + return False + if not (RR.is_unit(e["unit"]) or (drops("unit_form") and isinstance(e["unit"], str))): + return False + if not (RR.is_int(e["divisor"], 0 if drops("divisor_form") else 1) and RR.is_int(e["price"])): + return False + if not RR.null_or(e["energy_uj"], lambda x: RR.is_int(x, 0 if drops("energy_zero") else 1)): + return False + if not RR.null_or(e["energy_class"], lambda c: isinstance(c, str) and (c in CLASSES or drops("energy_class"))): + return False + if not RR.null_or(e["energy_ppm"], lambda p: RR.is_int(p, 0, MAX) if drops("ppm_bound") else RR.is_int(p, 1, U32)): + return False + if not RR.null_or(e["energy_evidence"], readings_form): + return False + if (e["energy_ppm"] is not None) != (e["energy_class"] in HARDWARE) and not drops("ppm_pair"): + return False + if (e["energy_evidence"] is not None) != (e["energy_class"] in READ_TAGS) and not drops("readings_pair"): + return False + return (e["energy_uj"] is None) == (e["energy_class"] is None) or drops("energy_pair") + + +def readings_form(v): + """§4.2 `energy_evidence`: 1 to 64 digests, each 64 lowercase hexadecimal digits, strictly + ascending.""" + if not isinstance(v, list): + return False + if (not v or len(v) > MAX_READINGS) and not drops("readings_bound"): + return False + if not all(RR.is_hex(d, 64) or (drops("readings_digest") and isinstance(d, str) and len(d) == 64) for d in v): + return False + return ascending(v) or drops("readings_order") + + +def list_form(v): + """§4.1 and §4.2: rule 1.""" + if not members(v, LIST): + return False + if not (v["kind"] == KIND or drops("kind")): + return False + if not (RR.is_int(v["version"]) and (v["version"] == 1 or drops("version"))): + return False + if not (RR.is_hex(v["seller"], 64) or (drops("seller_form") and isinstance(v["seller"], str) and len(v["seller"]) == 64)): + return False + if not (isinstance(v["currency"], str) and (CURRENCY.match(v["currency"]) or drops("currency_form"))): + return False + if not (RR.is_int(v["issued"]) and RR.is_int(v["expires"])): + return False + if not (RR.is_hex(v["sig"], 128) or (drops("sig_form") and isinstance(v["sig"], str) and len(v["sig"]) == 128)): + return False + es = v["entries"] + if not isinstance(es, list) or len(es) > MAX_ENTRIES or (not es and not drops("entries_empty")): + return False + return all(entry_form(e) for e in es) + + +def tier_key(e): + return e["direction"], e["bearer"], e["unit"], e["max_bps"] + + +def order_key(e): + """Rule 4's order: strings by their bytes, integers by value.""" + return (e["direction"].encode(), e["bearer"].encode(), e["unit"].encode(), e["max_bps"], + e["footprint"][0].encode() if e["footprint"] else b"") + + +def ascending(xs): + return all(xs[i].encode() < xs[i + 1].encode() for i in range(len(xs) - 1)) + + +_VERIFIED = {} + + +def signature_ok(seller, body, sig): + k = (seller, hashlib.sha256(body).digest(), sig) + if k not in _VERIFIED: + try: + _VERIFIED[k] = ED.verify(bytes.fromhex(seller), DOMAIN + body, bytes.fromhex(sig)) is None + except ValueError: + _VERIFIED[k] = False + return _VERIFIED[k] + + +def read_list(text): + """§4.5: rules 1 to 4 (`rung_prices_malformed`), then rule 5, rule 6 and the signature. A + PriceList, or Refused.""" + bad = Refused("rung_prices_malformed") + if not isinstance(text, str) or len(text.encode("utf-8", "surrogatepass")) > MAX_TEXT: + raise bad + v = RR.read_document(text) + # Rule 1. + if v is None or not list_form(v): + raise bad + es = v["entries"] + # Rule 2. + if v["issued"] >= v["expires"] and not drops("window"): + raise bad + # Rule 3. + for e in es: + fp = e["footprint"] + if not ascending(fp) and not drops("footprint_order"): + raise bad + listed = set(fp) + if any(len(c) > 2 and country(c) in listed for c in fp) and not drops("footprint_redundant"): + raise bad + # Rule 4. + keys = [order_key(e) for e in es] + if any(keys[i] >= keys[i + 1] for i in range(len(keys) - 1)) and not drops("order"): + raise bad + seen = set() + for e in es: + k = tier_key(e) + (e["price"], e["energy_uj"], e["energy_class"]) \ + + (() if drops("mergeable_ppm") else (e["energy_ppm"],)) \ + + (() if drops("mergeable_readings") else + (None if e["energy_evidence"] is None else tuple(e["energy_evidence"]),)) + if k in seen and not drops("mergeable"): + raise bad + seen.add(k) + # Rule 5. + for e in es: + if e["unit"] not in UNITS: + if drops("unit_known"): + continue + raise Refused("rung_prices_unit_invalid") + bearers, directions, divisor, bound = UNITS[e["unit"]] + if (e["bearer"] not in bearers or e["direction"] not in directions) and not drops("unit_basis"): + raise Refused("rung_prices_unit_invalid") + if e["divisor"] != divisor and not drops("fixed_divisor"): + raise Refused("rung_prices_unit_invalid") + if e["price"] > bound and not drops("room_price_bound"): + raise Refused("rung_prices_unit_invalid") + if e["energy_evidence"] is not None and e["unit"] not in READ_UNITS and not drops("readings_unit"): + raise Refused("rung_prices_unit_invalid") + # Rule 6. + groups = {} + for i, e in enumerate(es): + groups.setdefault(tier_key(e), []).append(i) + for idx in groups.values(): + owner = {} + for i in idx: + for c in es[i]["footprint"]: + if c in owner and owner[c] != i and not drops("ambiguous"): + raise Refused("rung_prices_ambiguous") + owner[c] = i + for i in idx: + for c in es[i]["footprint"]: + o = owner.get(country(c)) if len(c) > 2 else None + if o is not None and o != i and not drops("ambiguous_containment"): + raise Refused("rung_prices_ambiguous") + # §4.4: the body is the list without `sig`, in its canonical form. + body = {k: x for k, x in v.items() if k != "sig"} + canon = RR.canonical(body).encode("utf-8") + signed = json.dumps(body, ensure_ascii=False, separators=(",", ":")).encode("utf-8") if drops("canonical") else canon + if not drops("signature") and not signature_ok(v["seller"], signed, v["sig"]): + raise Refused("rung_prices_signature_invalid") + named = RR.canonical(v).encode("utf-8") if drops("body_digest") else canon + return PriceList(v, hashlib.sha256(named).hexdigest()) + + +def list_outcome(text): + try: + p = read_list(text) + except Refused as r: + return {"outcome": "refuse", "reason": r.reason} + return {"outcome": "read", "digest": p.digest, "seller": p.seller, "entries": len(p.entries)} + + +# ------------------------------------------------------------------ §5: verdicts + +def verdicts(texts, at_us): + """§5: for each text, in order, [label, PriceList or None, digest or None]. The digest is None + for a list refused at reading (§4.5).""" + out = [] + for t in texts: + try: + p = read_list(t) + except Refused as r: + out.append(["reject reason=" + r.reason, None, None]) + continue + # §5.1. + if at_us < p.issued and not drops("not_yet"): + out.append(["reject reason=rung_prices_not_yet", None, p.digest]) + continue + out.append([None, p, p.digest]) + # §5.2: of each seller's lists not refused, the greatest `issued` is the latest. + by_seller = {} + for k, (_, p, _) in enumerate(out): + if p is not None: + by_seller.setdefault(p.seller, []).append(k) + for ks in by_seller.values(): + lapsed = [] + while True: + live = [k for k in ks if k not in lapsed] + latest = max(out[k][1].issued for k in live) + at_latest = [k for k in live if out[k][1].issued == latest] + contradicted = len({out[k][2] for k in at_latest}) > 1 and not drops("contradiction") + gone = [k for k in at_latest if out[k][1].expires <= at_us] + # A weakened verifier lets an earlier list stand when the latest lapsed; the text + # never revives one. + if drops("no_revive") and gone and not contradicted and len(live) > len(at_latest): + lapsed += gone + continue + break + for k in ks: + p = out[k][1] + if k in lapsed: + out[k][0] = "reject reason=rung_prices_expired" + elif p.issued < latest and not drops("supersede"): + out[k][0] = "superseded" + elif p.issued == latest and contradicted: + out[k][0] = "set-aside reason=rung_prices_contradicted" + elif p.expires <= at_us and not drops("expired"): + out[k][0] = "reject reason=rung_prices_expired" + else: + out[k][0] = "stands" + return out + + +# ------------------------------------------------------------------ §6: comparing + +def max_price_ok(v): + """route-record §3.1's `max_price`: 0 to 16 objects of exactly `unit`, `price` and `divisor` (at + least 1), in strictly ascending order of `unit`.""" + return (isinstance(v, list) and len(v) <= 16 + and all(RR.exactly(m, ["unit", "price", "divisor"]) and RR.is_unit(m["unit"]) and RR.is_int(m["price"]) + and RR.is_int(m["divisor"], 1) for m in v) + and ascending([m["unit"] for m in v])) + + +def confirmed_ok(v): + """§6.1 `confirmed`: 0 to 256 objects of exactly `key` and `class`, strictly ascending by + (`key`, `class`), each by its bytes.""" + if not isinstance(v, list) or len(v) > MAX_CONFIRMED: + return False + if not all(RR.exactly(c, ["key", "class"]) and RR.is_hex(c["key"], 64) and isinstance(c["class"], str) + and c["class"] in READ_TAGS for c in v): + return False + ks = [(c["key"].encode(), c["class"].encode()) for c in v] + return all(ks[i] < ks[i + 1] for i in range(len(ks) - 1)) + + +def request_form(r): + """§6.1's table, each member of its form.""" + if not (RR.exactly(r, REQUEST) or (drops("request_members") and isinstance(r, dict) and set(REQUEST) <= set(r))): + return False + rate = lambda x: RR.is_int(x, 0 if drops("request_rate") else 1, MAX) # noqa: E731 + pass_rate = lambda x: RR.is_int(x, 0 if drops("request_pass_rate") else 1, MAX) # noqa: E731 + bs = r["bearers"] + bearers_ok = bs is None or (isinstance(bs, list) and 1 <= len(bs) <= 3 + and all(isinstance(b, str) and (b in BEARERS or drops("request_bearer_class")) for b in bs) + and (ascending(bs) or drops("request_bearers"))) + return ((r["kind"] == REQUEST_KIND or drops("request_kind")) + and (isinstance(r["direction"], str) and r["direction"] in DIRECTIONS or drops("request_direction")) + and (region_code(r["to"]) or (drops("request_to") and isinstance(r["to"], str))) + and RR.null_or(r["rate_bps"], rate) and RR.null_or(r["pass_rate_bps"], pass_rate) and bearers_ok + and isinstance(r["currency"], str) and (CURRENCY.match(r["currency"]) is not None or drops("request_currency")) + and (RR.quantities_ok(r["quantities"]) or drops("request_quantities")) + and (max_price_ok(r["max_price"]) or drops("request_max_price")) + and RR.null_or(r["audience"], lambda n: RR.is_int(n, 0 if drops("request_audience") else 1)) + and (r["sort"] in ("price", "energy") or (drops("request_sort") and isinstance(r["sort"], str))) + and (confirmed_ok(r["confirmed"]) or drops("request_confirmed")) + and (RR.is_int(r["evidence_age_us"], 1, MAX) or drops("request_evidence_age"))) + + +def read_request(text): + """§6.1: the request, or None (`rung_request_invalid`).""" + if not isinstance(text, str) or len(text.encode("utf-8", "surrogatepass")) > MAX_REQUEST: + return None + v = RR.read_document(text) + return v if v is not None and request_form(v) else None + + +def quantity(req, unit): + for q in req["quantities"]: + if q["unit"] == unit: + return q["quantity"] + if drops("units_never_converted") and unit == "bytes_sent": + return quantity(req, "bytes") + return None + + +def basis(e): + """§4.3, §6.3: a `bidirectional` bearer reaches each receiver; the others transmit once.""" + return "receiver" if e["bearer"] == "bidirectional" else "transmission" + + +def rate_of(req, e): + """§6.2: the rung's rate for a receiver-basis entry, the pass rate for a transmission-basis one; + `null` stands for 2^53 - 1.""" + r = req["rate_bps"] if basis(e) == "receiver" or drops("pass_rate") else req["pass_rate_bps"] + return MAX if r is None else r + + +def tier(entries, direction, bearer, unit, to, rate): + """§6.2 `tier` (and §7.2's *a pass rate above every ceiling has no price*): the position, in a + list's `entries`, of the entry of (`direction`, `bearer`, `unit`) whose footprint holds `to` with + the least ceiling at least `rate` (None: 2^53 - 1); None when no ceiling covers it.""" + rate = MAX if rate is None else rate + best = None + for i, e in enumerate(entries): + if (e["direction"], e["bearer"], e["unit"]) == (direction, bearer, unit) and holds(e["footprint"], to) \ + and e["max_bps"] >= rate and (best is None or e["max_bps"] < entries[best]["max_bps"]): + best = i + return best + + +def pass_rate(bytes_sent, count, duration_ms): + """§7.2: P = `bytes_sent` / `count` octets a pass, a division that is exact, and the pass rate + ⌈8000 × P / `duration_ms`⌉ bits per second.""" + if count < 1 or duration_ms < 1 or bytes_sent % count: + raise ValueError("not a schedule entry's figures") + return -(-8000 * (bytes_sent // count) // duration_ms) + + +def figure(q, x, d, unbounded=False): + """§6.3: ⌊q × x / d⌋, None past 2^53 - 1 or when either is None.""" + if q is None or x is None: + return None + v = q * x // d + return v if v <= MAX or unbounded else None + + +def per_receiver(t, n): + if t is None: + return None + return t // n if drops("ceiling") else -(-t // n) + + +def removals(req, p, e): + """§6.2, in its order: (limit, value).""" + out = [] + if p.currency != req["currency"] and not drops("currency"): + out.append(("currency", p.currency)) + if req["bearers"] is not None and e["bearer"] not in req["bearers"] and not drops("bearer"): + out.append(("bearer", e["bearer"])) + if quantity(req, e["unit"]) is None and not drops("unit"): + out.append(("unit", e["unit"])) + if not holds(e["footprint"], req["to"]) and not drops("footprint"): + out.append(("footprint", list(e["footprint"]))) + rate = rate_of(req, e) + if e["max_bps"] < rate and not drops("rate"): + out.append(("rate", e["max_bps"])) + lower = [o["max_bps"] for o in p.entries + if o is not e and (o["direction"] == e["direction"] or drops("tier_direction")) + and o["bearer"] == e["bearer"] and o["unit"] == e["unit"] + and (holds(o["footprint"], req["to"]) or drops("tier_holds")) and rate <= o["max_bps"] < e["max_bps"]] + if lower and not drops("tier"): + out.append(("tier", min(lower))) + for m in req["max_price"]: + if m["unit"] == e["unit"] and e["price"] * m["divisor"] > m["price"] * e["divisor"] and not drops("unit_price"): + out.append(("unit_price", e["price"])) + return out + + +_HOPS, _ROOMS = {}, {} + + +def hop_of(b): + """live-metering §3.5 and §3.6: the per-hop record a text holds, of the room its own `room` + names, or None; remembered by its bytes. The run that drops `evidence_signature` leaves its + signature unchecked.""" + k = (b, drops("evidence_signature")) + if k not in _HOPS: + check = LMV.check_sig + if drops("evidence_signature"): + LMV.check_sig = lambda *a: None + try: + _HOPS[k] = LMV.read_hop(b, b[5:37]) + except LMV.Refuse: + _HOPS[k] = None + finally: + LMV.check_sig = check + return _HOPS[k] + + +def room_of(b): + """fleet §4.4: the `t0` of the room descriptor a text holds, or None. The run that drops + `evidence_room_signature` leaves its signature unchecked.""" + k = (b, drops("evidence_room_signature")) + if k not in _ROOMS: + if drops("evidence_room_signature"): + FV.SKIP.add("descriptor-signature") + try: + _ROOMS[k] = FV.read_descriptor(b)["t0"] + except FV.Refuse: + _ROOMS[k] = None + finally: + FV.SKIP.discard("descriptor-signature") + return _ROOMS[k] + + +def named(hex_texts): + """§4.6: the texts given, by the digest each names: SHA-256 over all but the last 64 bytes of a + text of 64 to 1,048,576 bytes.""" + out = {} + for h in hex_texts: + b = bytes.fromhex(h) + if 64 <= len(b) <= MAX_TEXT: + out.setdefault(hashlib.sha256(b[:-64]).hexdigest(), []).append(b) + return out + + +def given(hex_texts): + """§4.6: the records, and the rooms' `t0`, that the texts give, by digest: each by a text naming + it that reads and verifies.""" + records, rooms = {}, {} + for d, bs in named(hex_texts).items(): + hs = [hop_of(b) for b in bs] + ok = [x for x in hs if x is not None] + if ok and (len(ok) == len(hs) or not drops("evidence_any_copy")): + records[d] = ok[0] + ts = [t for t in map(room_of, bs) if t is not None] + if ts: + rooms[d] = ts[0] + return records, rooms + + +def quantity_of(x, unit): + """§4.6 rule 5: media bytes out, or subscriber time of layer classes 0 to 7.""" + if unit == "bytes": + return sum(t["bytes"] for t in x["tracks"] if (t["kind"] == 1 or drops("evidence_media_only")) + and (t["dir"] == 2 or drops("evidence_media_out"))) + return sum(x["sub"] if drops("evidence_layer_8") else x["sub"][:8]) + + +def breaks(x, rule, seller, cls): + """§4.6 rules 1 to 3: whether the given record `x` breaks `rule` for an entry of `cls`.""" + if rule == "role": + return x["role"] != 1 and not drops("evidence_role") and not (drops("evidence_role_compositor") and x["role"] == 2) + if rule == "signer": + return x["hop"].hex() != seller and not drops("evidence_signer") + tag = 0 if x["class"] is None else x["class"][0] + return tag != READ_TAGS[cls] and not (drops("evidence_class") and tag != 0) \ + and not (drops("evidence_unmetered") and tag == 0) + + +def rules_1_to_3(xs, seller, cls): + """§6.4 item 1: the reason of the first of rules 1 to 3 that a given record breaks, its records + taken in the order named (None where a record is not given); None when none breaks one.""" + rules = ("role", "signer", "class") + if drops("evidence_rules_reversed"): + rules = ("class", "signer", "role") + elif drops("evidence_class_before_signer"): + rules = ("role", "class", "signer") + if drops("evidence_rule_major"): + pairs = [(x, r) for r in rules for x in xs] + else: + pairs = [(x, r) for x in xs for r in rules] + for x, r in pairs: + if x is None: + if drops("evidence_first_missing"): + return "absent" + continue + if breaks(x, r, seller, cls): + return "refuted reason=rung_prices_evidence_" + r + return None + + +def rules_4_and_5(e, read): + """§4.6 rules 4 and 5 over the records together, in order: the reason of the first that fails, + or None.""" + def rule_4(): + # The largest declared uncertainty. + ppms = [x["class"][1] for x, _ in read if x["class"] is not None and x["class"][0] in (4, 5)] + if not ppms: + want = None + elif drops("evidence_ppm_last"): + want = ppms[-1] + else: + want = (min if drops("evidence_ppm_max") else max)(ppms) + if e["energy_ppm"] is None or drops("evidence_ppm"): + return None + wrong = e["energy_ppm"] < want if drops("evidence_ppm_over") and want is not None else e["energy_ppm"] != want + return "refuted reason=rung_prices_evidence_class" if wrong else None + + def rule_5(): + # The records' rate per `divisor` units, rounded up. + if drops("evidence_figure"): + return None + j = sum(x["joules"] for x, _ in read) + q = sum(quantity_of(x, e["unit"]) for x, _ in read) + rate = None if q == 0 else (j * e["divisor"] // q if drops("evidence_round") else -(-j * e["divisor"] // q)) + wrong = rate is None or (e["energy_uj"] < rate if drops("evidence_figure_over") else rate != e["energy_uj"]) + return "refuted reason=rung_prices_evidence_figure" if wrong else None + for rule in ((rule_5, rule_4) if drops("evidence_figure_before_ppm") else (rule_4, rule_5)): + r = rule() + if r: + return r + return None + + +def window(read, req, at_us): + """§6.4 item 4: `outside-window` when a record's instant is below `at_us` - `evidence_age_us`, or at + or after `at_us`; None otherwise.""" + age = req["evidence_age_us"] + held = read[:1] if drops("evidence_window_first") else read[-1:] if drops("evidence_window_last") else read + for x, t0 in held: + if t0 is None: + continue # only in the run that drops evidence_room_given + i = t0 + x["end"] - 1 + low = (i > at_us - age) if drops("evidence_window_edge") else (i >= at_us - age) + if not (low and (i < at_us or drops("evidence_window_upper"))) and not drops("evidence_window"): + return "outside-window" + return None + + +def evidence_of(p, e, g, req, at_us): + """§4.6 and §6.4: a candidate's evidence, or None when its entry names no records.""" + names = e["energy_evidence"] + if names is None: + return None + records, rooms = g + if drops("evidence_precedence") and any(d not in records for d in names): + return "absent" + cls = e["energy_class"] + xs = [records.get(d) for d in names] + refuted = rules_1_to_3(xs, p.seller, cls) + # The records given, each with its room's `t0`; absent when a record, or the room of one, is not. + read, absent = [], any(x is None for x in xs) + for x in xs: + if x is None: + continue + t0 = rooms.get(x["room"].hex()) + if t0 is None and not drops("evidence_room_given"): + absent = True + continue + read.append((x, t0)) + absent = absent and not drops("evidence_given") + + def unconfirmed(): + # §6.1: `confirmed` holds the seller's key with the entry's class; a weakened run matches + # the key alone. + held = any(c["key"] == p.seller and (c["class"] == cls or drops("evidence_confirmed_class")) + for c in req["confirmed"]) + return None if held or drops("evidence_confirmed") else "unconfirmed" + steps = { + "rules 1 to 3": lambda: refuted, + "absent": lambda: "absent" if absent else None, + "rules 4 and 5": lambda: rules_4_and_5(e, read), + "window": lambda: window(read, req, at_us), + "confirmed": unconfirmed, + } + # §6.4's order, or the order of a weakened run that moves one step ahead of another. + order = ("rules 1 to 3", "absent", "rules 4 and 5", "window", "confirmed") + if drops("evidence_window_before_figure"): + order = ("rules 1 to 3", "absent", "window", "rules 4 and 5", "confirmed") + elif drops("evidence_confirmed_before_window"): + order = ("rules 1 to 3", "absent", "rules 4 and 5", "confirmed", "window") + elif drops("evidence_window_before_absent"): + order = ("rules 1 to 3", "window", "absent", "rules 4 and 5", "confirmed") + for step in order: + r = steps[step]() + if r: + return r + return "checked" + + +def energy_rank(c): + """§6.4: 4 when the energy is `null`; 0, 1 or 2 by class when the evidence is checked; 3 + otherwise.""" + if c["energy"] is None and not drops("energy_null_rank"): + return 4 + if (c["evidence"] == "checked" or drops("label_decides")) and c["energy_class"] in READ_TAGS: + return 0 if drops("class_first") else list(READ_TAGS).index(c["energy_class"]) + return 3 if c["energy_class"] is not None else 4 + + +def nulls_last(a, b): + if a is None and b is None: + return 0 + if a is None or b is None: + return 1 if a is None else -1 + return (a > b) - (a < b) + + +def compare_by(key, a, b): + """-1 when `a` comes first under `key`, 1 when `b` does, 0 when they do not differ.""" + if key == "price": + zero = (lambda x: 0 if x is None else x) if drops("null_last") else (lambda x: x) + return nulls_last(zero(a["cost"]), zero(b["cost"])) + if key == "energy": + ra, rb = a["energy_rank"], b["energy_rank"] + if ra != rb: + return -1 if ra < rb else 1 + if ra == 4 or drops("energy_figure"): + return 0 + if ra <= 1 and not drops("uncertainty") and not (ra == 1 and drops("uncertainty_counter")): + # One declared standard uncertainty above each figure: a comparison, never stated. + def raised(c): + if c["energy"] is None: + return None + if drops("uncertainty_product"): + return c["energy"] * (c["energy_ppm"] or 0) + if drops("uncertainty_ppm_first"): + return (c["energy_ppm"] or 0, c["energy"]) + return c["energy"] * (10 ** 6 + (c["energy_ppm"] or 0)) + return nulls_last(raised(a), raised(b)) + return nulls_last(a["energy"], b["energy"]) + if key == "seller": + sa, sb = bytes.fromhex(a["seller"]), bytes.fromhex(b["seller"]) + return (sa > sb) - (sa < sb) + return (a["entry"] > b["entry"]) - (a["entry"] < b["entry"]) + + +def break_even(t, c_star): + """§6.5: the least audience at which a transmission's cost per receiver is no more than c*.""" + if t is None or c_star is None: + return None + if c_star == 0: + return 1 if t == 0 or drops("break_even_zero") else None + return max(1, -(-t // c_star)) + + +def compare(texts, evidence, at_us, request_text): + """§6: the refusal, or the plan of §6.6, with the texts `evidence` given as lowercase + hexadecimal (§4.6). A list refused at reading (§4.5) is stated in `lists` with its verdict and a + `null` digest.""" + req = read_request(request_text) + if req is None: + return {"outcome": "refuse", "reason": "rung_request_invalid"} + vs = verdicts(texts, at_us) + g = given(evidence) + standing = {} + for label, p, _ in vs: + # Two latest lists with one digest are one list (§5.2). + if label == "stands" and p.seller not in standing: + standing[p.seller] = p + n = req["audience"] if req["audience"] is not None else (1000 if drops("audience_default") else 1) + cands = [] + for seller in (list(standing) if drops("candidate_order") else sorted(standing, key=bytes.fromhex)): + p = standing[seller] + for i, e in enumerate(p.entries): + if e["direction"] != req["direction"] and not drops("direction"): + continue + q = quantity(req, e["unit"]) + t = figure(q, e["price"], e["divisor"], drops("cost_bound")) + en = figure(q, e["energy_uj"], e["divisor"], drops("energy_bound")) + shared = basis(e) == "transmission" + removed = removals(req, p, e) + # §6.6: every candidate's evidence, a removed one's too. + ev = None if removed and drops("evidence_survivors_only") else evidence_of(p, e, g, req, at_us) + refuted = ev is not None and ev.startswith("refuted") and not drops("refuted_kept") + cands.append({ + "seller": seller, "entry": i, "bearer": e["bearer"], "unit": e["unit"], "max_bps": e["max_bps"], + "basis": basis(e), + "removed": [{"limit": lim, "value": val} for lim, val in removed], + "cost": per_receiver(t, n) if shared else t, + "energy": None if refuted else (per_receiver(en, n) if shared and not drops("energy_share") else en), + "energy_class": e["energy_class"], "energy_ppm": e["energy_ppm"], "evidence": ev, "energy_rank": None, + "transmission_cost": None, "break_even": None, "rank": None, + "_t": t, + }) + for c in cands: + c["energy_rank"] = energy_rank(c) + survivors = [c for c in cands if not c["removed"]] + keys = [req["sort"], "energy" if req["sort"] == "price" else "price", "seller", "entry"] + keys = [k for k in keys if not drops(k + "_key")] + + def first(a, b): + for k in keys: + r = compare_by(k, a, b) + if r: + return r, k + return 0, None + order = sorted(survivors, key=functools.cmp_to_key(lambda a, b: first(a, b)[0])) + for r, c in enumerate(order): + c["rank"] = r + 1 + pool = cands if drops("c_star_survivors") else survivors + stated = [c["cost"] for c in pool if c["basis"] == "receiver" and c["cost"] is not None] + c_star = min(stated) if stated else None + for c in (cands if drops("break_even_survivors") else survivors): + if c["basis"] == "transmission": + c["transmission_cost"] = c["_t"] + c["break_even"] = break_even(c["_t"], c_star) + for c in cands: + del c["_t"] + if not order: + decision = {"decided_by": "none", "runner_up": None} + elif len(order) == 1: + decision = {"decided_by": "only_survivor", "runner_up": None} + else: + decision = {"decided_by": first(order[0], order[1])[1], + "runner_up": {"seller": order[1]["seller"], "entry": order[1]["entry"]}} + return { + "outcome": "plan", + "request": RR.digest(req), + "at_us": at_us, + "lists": [{"verdict": label, "digest": dg} for label, _, dg in vs], + # §6.6: the digests of the records and rooms the evidence texts gave, ascending. + "evidence": sorted(set(g[0]) | set(g[1])), + "audience": n, + "candidates": cands, + "order": [{"seller": c["seller"], "entry": c["entry"]} for c in order], + "decision": decision, + } + + +# ------------------------------------------------------------------ the corpus + +KINDS = ("lists", "verdicts", "comparisons") +# A verifier that crashes on a case has not given it its outcome. +ERRORS = (Refused, KeyError, TypeError, ValueError, IndexError, AttributeError, ArithmeticError) + + +def run(kind, c): + if kind == "lists": + return list_outcome(c["text"]) + if kind == "verdicts": + return {"lists": [v[0] for v in verdicts(c["texts"], c["at_us"])]} + return compare(c["texts"], c["evidence"], c["at_us"], c["request"]) + + +def same(a, b): + """One JSON value, member for member: `1` is not `true`.""" + return RR.canonical(a) == RR.canonical(b) + + +def strings(v, out): + if isinstance(v, str): + out.append(v) + elif isinstance(v, list): + for x in v: + strings(x, out) + elif isinstance(v, dict): + for x in v.values(): + strings(x, out) + + +def members_reversed(text): + """The same document with every object's members in the reverse order, indented.""" + def rev(v): + if isinstance(v, dict): + return {k: rev(v[k]) for k in reversed(list(v))} + if isinstance(v, list): + return [rev(x) for x in v] + return v + return json.dumps(rev(json.loads(text)), ensure_ascii=False, indent=1) + + +def check(doc, quiet=False, full=True): + """The failures of a corpus document: each case's outcome, §8's codes, §6.2's limits and §6.5's + decisions; and in a full run, the invariances of §6 and `tier` against every survivor, which + are properties of this verifier rather than of the corpus, so a weakened verifier is held to + the corpus alone.""" + fails = [] + + def fail(what): + fails.append(what) + if not quiet: + print("FAIL", what) + got_of = {} + for kind in KINDS: + for c in doc[kind]: + try: + got = run(kind, c) + except ERRORS as e: + got = {"error": repr(e)} + got_of[c["name"]] = got + if not same(got, c["outcome"]): + fails.append(c["name"]) + if not quiet: + print(f"FAIL {c['name']}\n stated {json.dumps(c['outcome'])}\n got {json.dumps(got)}") + # §8: every code appears, and the corpus states no other. + stated = [] + for kind in KINDS: + for c in doc[kind]: + strings(c["outcome"], stated) + codes = reasons_table() + for code in codes: + if not any(s == code or s.endswith("reason=" + code) for s in stated): + fail("no case gives " + code) + raised = set() + for kind in KINDS: + for c in doc[kind]: + o = c["outcome"] + if isinstance(o, dict) and "reason" in o: + raised.add(o["reason"]) + labels = o.get("lists", []) if isinstance(o, dict) else [] + for x in labels: + lab = x if isinstance(x, str) else (x or {}).get("verdict", "") + if isinstance(lab, str) and "reason=" in lab: + raised.add(lab.split("reason=", 1)[1]) + for cd in (o.get("candidates", []) if isinstance(o, dict) else []): + ev = cd.get("evidence") if isinstance(cd, dict) else None + if isinstance(ev, str) and "reason=" in ev: + raised.add(ev.split("reason=", 1)[1]) + for r in sorted(raised - set(codes)): + fail(f"§8 does not list {r}, which the corpus states") + # §6.2 and §6.5: every limit and every decision occurs. + plans = [c["outcome"] for c in doc["comparisons"] if c["outcome"].get("outcome") == "plan"] + limits = {x["limit"] for o in plans for cd in o["candidates"] for x in cd["removed"]} + for lim in limits_table(): + if lim not in limits: + fail("no candidate is removed by " + lim) + decided = {o["decision"]["decided_by"] for o in plans} + for d in DECISIONS: + if d not in decided: + fail("no plan is decided by " + d) + # §6.4: every evidence and every energy rank occurs. + seen = {cd.get("evidence") for o in plans for cd in o["candidates"] if cd.get("evidence")} + for ev in EVIDENCE: + if ev not in seen: + fail("no candidate's evidence is " + ev) + ranks = {cd.get("energy_rank") for o in plans for cd in o["candidates"]} + for r in range(5): + if r not in ranks: + fail(f"no candidate has energy rank {r}") + if full: + invariances(doc, got_of, fail) + return fails + + +def invariances(doc, got_of, fail): + """§6: the order the lists and the evidence are given in decides nothing but the positions of + the lists' verdicts, and neither the order of a request's members nor a list or a text given + twice (§5.2, §4.6) decides anything; and each survivor is the entry `tier` names for its rung.""" + for c in doc["verdicts"]: + got = got_of[c["name"]] + try: + back = run("verdicts", dict(c, texts=list(reversed(c["texts"])))) + except ERRORS as e: + back = {"error": repr(e)} + if "lists" in got and not same(back, {"lists": list(reversed(got["lists"]))}): + fail(f"{c['name']}: the verdicts depend on the order of the lists") + for c in doc["comparisons"]: + got = got_of[c["name"]] + try: + back = run("comparisons", dict(c, texts=list(reversed(c["texts"])), evidence=list(reversed(c["evidence"])))) + moved = run("comparisons", dict(c, request=members_reversed(c["request"]))) \ + if RR.read_document(c["request"]) is not None else got + except ERRORS as e: + back = moved = {"error": repr(e)} + if "lists" in got: + back = dict(back, lists=list(reversed(back.get("lists", [])))) + if not same(back, got): + fail(f"{c['name']}: the plan depends on the order of the lists") + if not same(moved, got): + fail(f"{c['name']}: the plan depends on the order of the request's members") + # §5.2: two latest lists with one digest are one list, so each list given twice offers + # its entries once; and a text given twice gives what it gives once (§4.6). + try: + twice = run("comparisons", dict(c, texts=c["texts"] + c["texts"], evidence=c["evidence"] + c["evidence"])) + except ERRORS as e: + twice = {"error": repr(e)} + if "lists" in got: + twice = dict(twice, lists=twice.get("lists", [])[:len(c["texts"])]) + if not same(twice, got): + fail(f"{c['name']}: the plan changes when each list is given twice") + if got.get("outcome") != "plan": + continue + try: + req = RR.read_document(c["request"]) + by_digest = {} + for t in c["texts"]: + try: + p = read_list(t) + by_digest[p.digest] = p + except Refused: + pass + standing = {by_digest[x["digest"]].seller: by_digest[x["digest"]] for x in got["lists"] if x["verdict"] == "stands"} + for cd in got["candidates"]: + if cd["rank"] is None: + continue + es = standing[cd["seller"]].entries + e = es[cd["entry"]] + if tier(es, e["direction"], e["bearer"], e["unit"], req["to"], rate_of(req, e)) != cd["entry"]: + fail(f"{c['name']}: the survivor {cd['seller']} {cd['entry']} is not the entry its tier names") + except ERRORS as e: + fail(f"{c['name']}: {e!r}") + + +def mutations(doc): + """Copies of the corpus, one defect each, every one of which must fail.""" + def case(d, name): + return next(c for k in KINDS for c in d[k] if c["name"] == name) + + def m_price_unsigned(d): + c = case(d, "unicast_tiers") + c["text"] = c["text"].replace('"price":10000000', '"price":10000001', 1) + + def m_digest(d): + case(d, "unicast_tiers")["outcome"]["digest"] = "00" * 32 + + def m_twin_digest(d): + c = case(d, "same_body_two_signatures") + c["outcome"]["digest"] = hashlib.sha256(RR.canonical(json.loads(c["text"])).encode()).hexdigest() + + def m_entries(d): + case(d, "broadcast_capacity")["outcome"]["entries"] -= 1 + + def m_instant(d): + case(d, "last_instant")["at_us"] += 1 + + def m_revive(d): + case(d, "expired_latest_revives_nothing")["outcome"]["lists"][0] = "stands" + + def m_texts_order(d): + c = case(d, "later_list_stands") + c["texts"] = list(reversed(c["texts"])) + + def m_audience(d): + c = case(d, "audience_below_break_even") + c["request"] = c["request"].replace('"audience":4999', '"audience":5000', 1) + + def m_rate(d): + c = case(d, "rate_at_ceiling") + c["request"] = c["request"].replace('"rate_bps":8000000', '"rate_bps":8000001', 1) + + def m_pass_rate(d): + c = case(d, "pass_rate_is_not_rate") + c["request"] = c["request"].replace('"pass_rate_bps":9000000', '"pass_rate_bps":3000000', 1) + + def m_containment(d): + c = case(d, "subdivision_in_its_country") + s = next(x for x in c["outcome"]["candidates"] if not x["removed"]) + s["removed"] = [{"limit": "footprint", "value": ["XA", "XB"]}] + + def m_tier_direction(d): + c = case(d, "tier_other_direction_ignored") + s = next(x for x in c["outcome"]["candidates"] if not x["removed"]) + s["removed"] = [{"limit": "tier", "value": 1000000}] + + def m_break_even(d): + c = case(d, "unknown_audience") + next(x for x in c["outcome"]["candidates"] if x["break_even"] is not None)["break_even"] -= 1 + + def m_removal_value(d): + c = case(d, "unknown_audience") + next(r for x in c["outcome"]["candidates"] for r in x["removed"] if r["limit"] == "tier")["value"] += 1 + + def m_decided_by(d): + case(d, "audience_at_break_even")["outcome"]["decision"]["decided_by"] = "price" + + def m_request_digest(d): + case(d, "unknown_audience")["outcome"]["request"] = "00" * 32 + + def m_unit_basis(d): + case(d, "bytes_sent_two_way")["outcome"] = {"outcome": "read", "digest": "00" * 32, "seller": "00" * 32, "entries": 1} + + def m_reason_gone(d): + d["lists"].remove(case(d, "footprints_overlap")) + d["lists"].remove(case(d, "country_and_subdivision_across_entries")) + + def m_decision_gone(d): + d["comparisons"].remove(case(d, "entry_breaks_tie")) + + def evidence_text(c, magic): + return next(i for i, t in enumerate(c["evidence"]) if t.startswith(magic)) + + def flip(t, at): + b = bytearray(bytes.fromhex(t)) + b[at] ^= 1 + return b.hex() + + def m_record_body(d): + c = case(d, "checked_class_before_figure") + i = evidence_text(c, "574d4831") + c["evidence"][i] = flip(c["evidence"][i], 100) + + def m_record_sig(d): + c = case(d, "checked_class_before_figure") + i = evidence_text(c, "574d4831") + c["evidence"][i] = flip(c["evidence"][i], len(c["evidence"][i]) // 2 - 1) + + def m_room_gone(d): + c = case(d, "checked_class_before_figure") + del c["evidence"][evidence_text(c, "57524431")] + + def m_verdict(d): + c = case(d, "label_on_borrowed_readings") + next(x for x in c["outcome"]["candidates"] if x["evidence"] and x["evidence"].startswith("refuted"))["evidence"] = "absent" + + def m_rank(d): + c = case(d, "checked_class_before_figure") + next(x for x in c["outcome"]["candidates"] if x["energy_rank"] == 0)["energy_rank"] = 2 + + def m_damaged_gives(d): + # A plan that states the record a damaged copy names as given. + c = case(d, "record_signature_fails") + named_by = [hashlib.sha256(bytes.fromhex(t)[:-64]).hexdigest() for t in c["evidence"]] + c["outcome"]["evidence"] = sorted(set(named_by)) + + return [m_price_unsigned, m_digest, m_twin_digest, m_entries, m_instant, m_revive, m_texts_order, m_audience, m_rate, + m_pass_rate, m_containment, m_tier_direction, m_break_even, m_removal_value, m_decided_by, m_request_digest, + m_unit_basis, m_reason_gone, m_decision_gone, m_record_body, m_record_sig, m_room_gone, m_verdict, m_rank, + m_damaged_gives] + + +WEAKENINGS = [ + # §2 and the list's form (§4.1, §4.2, rules 1 to 4). + "region_grammar", "members", "kind", "version", "seller_form", "currency_form", "sig_form", "entries_empty", + "direction_form", "bearer_form", "footprint_empty", "footprint_bound", "max_bps_form", "unit_form", "divisor_form", + "energy_zero", "energy_class", "energy_pair", "window", "footprint_order", "footprint_redundant", "order", "mergeable", + "ppm_pair", "ppm_bound", "readings_pair", "readings_bound", "readings_order", "readings_digest", "mergeable_readings", + "mergeable_ppm", + # Rules 5 and 6. + "unit_known", "unit_basis", "fixed_divisor", "room_price_bound", "readings_unit", "ambiguous", "ambiguous_containment", + # §4.4. + "canonical", "signature", "body_digest", + # §5. + "not_yet", "expired", "supersede", "contradiction", "no_revive", + # §6.1. + "request_members", "request_kind", "request_direction", "request_to", "request_rate", "request_pass_rate", + "request_bearers", "request_bearer_class", "request_currency", "request_quantities", "request_max_price", + "request_audience", "request_sort", "request_confirmed", "request_evidence_age", + # §6.2. + "direction", "candidate_order", "currency", "bearer", "unit", "units_never_converted", "footprint", "footprint_exact", + "footprint_upward", "rate", "pass_rate", "tier", "tier_direction", "tier_holds", "unit_price", + # §6.3. + "audience_default", "ceiling", "cost_bound", "energy_bound", "energy_share", + # §6.4. + "price_key", "energy_key", "seller_key", "entry_key", "class_first", "energy_null_rank", "energy_figure", "null_last", + "label_decides", "uncertainty", "uncertainty_product", "uncertainty_ppm_first", "uncertainty_counter", + "refuted_kept", + # §4.6 and §6.4's evidence. + "evidence_given", "evidence_room_given", "evidence_signature", "evidence_any_copy", "evidence_room_signature", + "evidence_role", "evidence_role_compositor", "evidence_signer", "evidence_class", "evidence_unmetered", + "evidence_rules_reversed", "evidence_class_before_signer", "evidence_rule_major", "evidence_first_missing", + "evidence_ppm", "evidence_ppm_max", "evidence_ppm_last", "evidence_ppm_over", "evidence_figure", "evidence_round", + "evidence_figure_over", "evidence_figure_before_ppm", "evidence_media_only", "evidence_media_out", + "evidence_layer_8", "evidence_window", "evidence_window_edge", "evidence_window_upper", "evidence_window_first", + "evidence_window_last", "evidence_confirmed", "evidence_confirmed_class", "evidence_precedence", + "evidence_window_before_figure", "evidence_confirmed_before_window", "evidence_window_before_absent", + "evidence_survivors_only", + # §6.5. + "c_star_survivors", "break_even_survivors", "break_even_zero", +] + + +# ------------------------------------------------------------------ what no vector carries + +def direct(doc): + """§4.5's text of 1,048,577 bytes, §4.1's list of 1,025 entries, §6.1's request of 65,537 bytes + and §4.6's evidence text of 1,048,577 bytes, each against the largest that is admitted; the + `tier` limit's value with two lower ceilings that cover a rung; and §7.2's pass rate.""" + fails = [] + base = next(c for c in doc["lists"] if c["name"] == "unicast_tiers") + comp = next(c for c in doc["comparisons"] if c["name"] == "unknown_audience") + text = base["text"] + pad = MAX_TEXT - len(text.encode("utf-8")) + at_bound = list_outcome(text + " " * pad) + if not same(at_bound, base["outcome"]): + fails.append("a list of 1,048,576 bytes, whitespace added, did not read as itself: " + json.dumps(at_bound)) + past = list_outcome(text + " " * (pad + 1)) + if past != {"outcome": "refuse", "reason": "rung_prices_malformed"}: + fails.append("a list of 1,048,577 bytes was not refused malformed: " + json.dumps(past)) + + def many(n): + v = json.loads(text) + e = v["entries"][0] + codes = [f"X{chr(65 + i // 676 % 26)}-{chr(65 + i // 26 % 26)}{chr(65 + i % 26)}" for i in range(n)] + # Rule 4: one tier, ordered by footprint, each entry at its own price. + v["entries"] = [dict(e, footprint=[c], price=k + 1) for k, c in enumerate(codes)] + return json.dumps(v) + # Unsigned, so a list that is not malformed is refused for its signature and nothing else. + if list_outcome(many(MAX_ENTRIES)) != {"outcome": "refuse", "reason": "rung_prices_signature_invalid"}: + fails.append("a list of 1,024 entries was refused before its signature") + if list_outcome(many(MAX_ENTRIES + 1)) != {"outcome": "refuse", "reason": "rung_prices_malformed"}: + fails.append("a list of 1,025 entries was not refused malformed") + req = comp["request"] + pad = MAX_REQUEST - len(req.encode("utf-8")) + at_bound = compare(comp["texts"], comp["evidence"], comp["at_us"], req + " " * pad) + if not same(at_bound, comp["outcome"]): + fails.append("a request of 65,536 bytes, whitespace added, did not give its plan") + past = compare(comp["texts"], comp["evidence"], comp["at_us"], req + " " * (pad + 1)) + if past != {"outcome": "refuse", "reason": "rung_request_invalid"}: + fails.append("a request of 65,537 bytes was not refused: " + json.dumps(past)) + # §6.2 `tier`'s value, which no vector distinguishes: with two lower ceilings covering a rung + # of 1,000,000, each entry above them is removed at the least, 2,000,000, which survives. + lists = [base["text"]] + req = json.loads(comp["request"]) + req.update(rate_bps=1000000, quantities=[{"quantity": 500000000, "unit": "bytes"}]) + plan = compare(lists, [], comp["at_us"], json.dumps(req)) + got = [(c["max_bps"], [(x["limit"], x["value"]) for x in c["removed"]]) for c in plan.get("candidates", [])] + want = [(2000000, []), (8000000, [("tier", 2000000)]), (MAX, [("tier", 2000000)])] + if got != want: + fails.append("§6.2's tier value is not the least ceiling that covers the rung: " + json.dumps(got)) + if tier(json.loads(base["text"])["entries"], "downlink", "bidirectional", "bytes", "XB", 1000000) != 0: + fails.append("`tier` does not name the least ceiling that covers a rung of 1,000,000") + # §7.2, which no vector carries: a pass rate rounded up, from an exact division. + if pass_rate(3, 3, 3) != 2667 or pass_rate(1000, 2, 1000) != 4000: + fails.append("§7.2's pass rate") + try: + pass_rate(1001, 2, 1000) + fails.append("§7.2's division of bytes_sent by count is exact, and 1001 / 2 was taken") + except ValueError: + pass + # §4.6: a text of 64 to 1,048,576 bytes names a digest, and no other. + if named(["00" * (MAX_TEXT + 1)]) != {} or len(named(["00" * MAX_TEXT])) != 1 or named(["00" * 63]) != {} \ + or len(named(["00" * 64])) != 1: + fails.append("an evidence text of 1,048,577 bytes, or of 63, named a digest, or one of 1,048,576 or 64 named none") + return fails + + +def main(argv): + global DROPPED + if len(argv) != 2: + print(__doc__) + return 2 + doc = json.load(open(os.path.join(argv[1], "vectors.json"), encoding="utf-8")) + extra = sorted(set(os.listdir(argv[1])) - {"vectors.json", "README.md"}) + fails = check(doc) + if extra: + fails.append(f"files the corpus does not hold: {extra}") + print(f"{sum(len(doc[k]) for k in KINDS)} cases ({', '.join(f'{len(doc[k])} {k}' for k in KINDS)}): {len(fails)} failure(s)") + b = direct(doc) + print(f"what no vector carries: {len(b)} failure(s)") + fails += b + caught = 0 + for m in mutations(doc): + d = copy.deepcopy(doc) + m(d) + if check(d, quiet=True): + caught += 1 + else: + fails.append(f"mutation {m.__name__} was not caught") + print(f"{caught} of {len(mutations(doc))} mutated copies fail") + weak = 0 + for w in WEAKENINGS: + DROPPED = w + try: + if check(doc, quiet=True, full=False): + weak += 1 + else: + fails.append(f"a verifier without its {w} check passes the corpus") + finally: + DROPPED = None + print(f"{weak} of {len(WEAKENINGS)} weakened verifiers are caught") + for f in fails: + print("FAIL", f) + return 1 if fails else 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/wai/live-conformance/stitched_presentation_verify.py b/wai/live-conformance/stitched_presentation_verify.py index 5070938be..5c79cd795 100644 --- a/wai/live-conformance/stitched_presentation_verify.py +++ b/wai/live-conformance/stitched_presentation_verify.py @@ -765,8 +765,9 @@ def creative_digest(objects): return APV.creative_digest(objects) -def verify(inp): - """§7: what a verification states, as the corpus writes it.""" +def verify(inp, through_attestation=True): + """§7: what a verification states, as the corpus writes it. With `through_attestation` false, + §7.3 step 11 is not run (impression-aggregates §6.2 step 4 judges claims through step 10).""" accepted, rfacts, stated = [], [], [] for b in inp["records"]: f = {"digest": None, "verdict": "accepted"} @@ -858,7 +859,7 @@ def verify(inp): raise Bad("claim_frame_mismatch") if run < 2000 and "viewable" not in SKIP: raise Bad("claim_not_viewable") - if rec["terms"]["require"] & ATTEST and "attest" not in SKIP: + if through_attestation and rec["terms"]["require"] & ATTEST and "attest" not in SKIP: why = attestation(c, rec["terms"], inp["issuers"]) if why: raise Bad(why) diff --git a/wai/live-conformance/takedown/README.md b/wai/live-conformance/takedown/README.md index b2c21e995..6b2a68a18 100644 --- a/wai/live-conformance/takedown/README.md +++ b/wai/live-conformance/takedown/README.md @@ -10,16 +10,18 @@ as the repository publishes it), the service's `policy`, the derivation `records `claims`, all as JSON texts, the delivery `receipts` of the two groups, as JSON values, and the `acknowledgements` (settlement §3), each its `record` and the `items` list of each of its entries, in hexadecimal. A -case holds the members it sets (`notices`, `takedown`, `matches` and `purges` as texts, and -`as_of` as a time) and any member of the world it replaces; the case a verifier is given is the +case holds the members it sets (`notices`, `takedown`, `matches`, `purges` and +`cache_transmissions`, the cache-transmission claims of +[cache-authority](../../extensions/cache-authority.md) §5, as texts, and `as_of` as a time) and any +member of the world it replaces; the case a verifier is given is the world's members with the case's in their place. **Takedown equivalence.** For each case, a conforming verifier reaches the outcome it states: - `refuse`: the `reason` and its place, `at` (§8.2): `["registry"]`, `["policy"]`, `["notice", i]`, `["takedown"]`, `["record", i]`, `["claim", i]`, `["match", i]`, - `["acknowledgement", i]`, `["purge", i]`, `["group", g]`, `["exact", k]`, `["closure", k]` or - `["matched", k]`; + `["acknowledgement", i]`, `["cache_transmission", i]`, `["purge", i]`, `["group", g]`, + `["exact", k]`, `["closure", k]` or `["matched", k]`; - `accept`, `pending`, or `missed` with its `reason`: the `facts` of §8.3, every member of them, each time as its value in seconds from 1970-01-01T00:00:00Z. diff --git a/wai/live-conformance/takedown/vectors.json b/wai/live-conformance/takedown/vectors.json index 2f1daf306..b68a36f7d 100644 --- a/wai/live-conformance/takedown/vectors.json +++ b/wai/live-conformance/takedown/vectors.json @@ -895,6 +895,303 @@ } } }, + { + "name": "cache-transmitted-purged", + "description": "The request of request-48h-met, with the cache's claim that it sent the source over a multicast instance of its own; the cache purges the source beside what it received and served: accept", + "case": { + "notices": [ + "{\"contact\":\"Submitter, submitter@example.net\",\"ground\":\"illegal\",\"ground_ref\":\"\",\"issued_at\":\"2026-10-21T08:00:00Z\",\"kind\":\"wai-takedown-notice\",\"sig\":\"ad959ee3bef413b627b6a42ab92fb1feb5d72f8ea0c78b073c79bc14fd61a9f59bb2cd54517b5b504e396d0828d61a39629e19f7aa5cc3158f47cecdafb94208\",\"signer_pubkey\":\"a99871bf596cb20db46c57507dfa4dcf0593ef0ed194f84a85c3b3907dd74d64\",\"statement\":\"The location named shows the submitter without consent.\",\"targets\":[{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"type\":\"request\"}" + ], + "takedown": "{\"automated\":{\"decision\":\"partially\",\"detection\":\"yes\"},\"category\":3,\"clock\":\"us-pl-119-12-s3-a-3\",\"clock_start\":\"2026-10-21T08:05:00Z\",\"decided_at\":\"2026-10-21T09:00:00Z\",\"exact\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"explanation\":\"The item is a depiction of an identifiable person published without that person's consent.\",\"facts\":\"A notice located the item by its content hash; the service compared the notice with the item and removed it.\",\"ground\":\"illegal\",\"kind\":\"wai-takedown\",\"matched\":[{\"candidate\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"match\":\"ef4d9d6607a8ba4f100ea843bc18e939f804b0385c9d4535e4570bbc30df6494\"}],\"notice\":\"6ee97e5d08ba81c873975fe5baf2bc5bbda42c384276f139ef255846c9162690\",\"policy\":\"f64a50351a627636b363eb8d63e25194a74263f2b05039dd7faf597d67f946c4\",\"reply_at\":null,\"sig\":\"96f52c0912833c6a42ab6fce7523c5ba2923bea5842f90177763b28eaf0e562f451b9ec44a9c05083f5efdaaa18c48cc5c0184e1d1b09f89f7e8121665f83509\",\"signer_pubkey\":\"e9e0cbabbdd1b0307e1d97595e7bcfea8cb43ae78cfb78580a422d5f3fef293d\",\"targets\":[{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"verdict\":\"remove\"}", + "matches": [ + "{\"candidate\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"distance\":6,\"issued_at\":\"2026-10-21T07:00:00Z\",\"kind\":\"wai-takedown-match\",\"method\":\"wai-takedown:example-perceptual-hash\",\"sig\":\"db17bc1852808da8498440a6d50488cfde41d0377b7407f3673661720433f0bbc118b09d3ee69f5af63b0454f5f957497e0ab4ee2235f73cdd9e667072f73a02\",\"signer_pubkey\":\"903a2dcf9da77b1117c9f29c5e9d95c3578eac3514eade0df652ca4566b4be90\",\"source\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"threshold\":10}" + ], + "purges": [ + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T10:00:00Z\",\"sig\":\"275859283c3e388a680ea5e308d8ce925852b5e928178adcee148bff28cc4e8d7bac46ecb538354cdf757d0221f35dac96a02a1d50b3b74fafbe9f34cdb6780c\",\"signer_pubkey\":\"d174dd8b7c789e94a6617313ea5c712c82c8bd2e72c93d60e19b313e8f6eb308\",\"subjects\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"content_hash\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T12:00:00Z\",\"sig\":\"602e01802dca912905712a596ec04da856506196350912cc5c0134840422e472055d77f807c56dae60b0cfc5d76a0dbac3dfd684f3fed607c1632cbb2d8cff02\",\"signer_pubkey\":\"c8fee39620f9f0aebedb2b4bce0ca94033a46d4d92fe1c2d26322c58f1524c13\",\"subjects\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"content_hash\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T14:00:00Z\",\"sig\":\"b60c19264df6491f0793dd9fbe800367e5c6d16c7007efa0205ab243e288beac655c0b09a14c6a2d466f3dc554f8f3e5280f059dc01341b427bc4f147d8e1708\",\"signer_pubkey\":\"36fb75567322347105ae69c22b4aef9307ae5edc22f88fb20a0816359e6d9b08\",\"subjects\":[{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T16:00:00Z\",\"sig\":\"cc7a0cac728c11d43966d92b8b771b80b9fbded603471319d080fa711ab6432dff6fd234901565424c0b23cdb77f9c06e42e1856a976b5e2d1ec1341928c3d05\",\"signer_pubkey\":\"103b452f8f9638d714aefc83544a2d7c605d67d379294627316ff2290755a3b4\",\"subjects\":[{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T18:00:00Z\",\"sig\":\"d2f4598aaf742fb97dfff6617bc2a196f768492e0cbad613651bf1340e44dec74f2891168a085fe519316eee709f3fbbadc49864ea68f9b8f9e099dbd32eb907\",\"signer_pubkey\":\"43441b8c2f91e6e9f60e7ebf2827f809695a5f410c85feea484ee41b04743db9\",\"subjects\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T20:00:00Z\",\"sig\":\"d3502bb148fa740208f2d4c9450058763a6427defd27f5fb9497f2aafecdd0f99d50c6cc25f2c7d255573757adb79bd9ac4c722a373eac73ed6955487268950e\",\"signer_pubkey\":\"b8bf46d82e7ba37e4731fdc33df7282ac9ac6371780c9794d80659b8aecd0b26\",\"subjects\":[{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T22:00:00Z\",\"sig\":\"b39048cd7a5dd7d53d014c07c99faebc43d1502cc8693aaefd4236a78ab186db76435e822ef4e0a8cde32fa8239c32281103466437f6b4ef7790dbef14636f04\",\"signer_pubkey\":\"c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e\",\"subjects\":[{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}" + ], + "cache_transmissions": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"urn:example:wai-bearer:cache-mesh\",\"energy\":null,\"leaf_count\":2,\"sent\":\"80\",\"sent_root\":\"0910fab3ef9042775b1056dafb4c469c60871d2ae2a29d665eaec7bed2cf0d11\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-10-21T07:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2a16e21f2cef0735446b99afea213c26d9f9f848b383ee9337ae2bc49a0d99b799e4f94d879a287548e3a8dad760ddbd0995f750820497ae53332e94f9134603\",\"signer_id\":\"did:key:z6MksctQULaYQDJmDMKBe8vep2zMFrwEDiuEEoBXxiPDWxgd\",\"signer_pubkey\":\"c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e\",\"subject\":\"64ed8925ac7eafd98980dcb81ba39edac6e372810c1573cfe27bb3c83a553c30\",\"subject_type\":\"receipt\"}" + ], + "as_of": "2026-10-24T08:00:00Z" + }, + "expect": { + "outcome": "accept", + "facts": { + "closure": [ + { + "type": "object", + "content_hash": "0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf" + }, + { + "type": "object", + "content_hash": "2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a" + }, + { + "type": "object", + "content_hash": "46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088" + }, + { + "type": "object", + "content_hash": "5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df" + }, + { + "type": "object", + "content_hash": "92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b" + }, + { + "type": "object", + "content_hash": "975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f" + }, + { + "type": "object", + "content_hash": "dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58" + }, + { + "type": "object", + "content_hash": "dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4" + }, + { + "type": "track", + "track": "30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2", + "from_group": 5 + }, + { + "type": "group", + "receipt": "edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2" + } + ], + "holders": [ + { + "key": "103b452f8f9638d714aefc83544a2d7c605d67d379294627316ff2290755a3b4", + "roles": [ + "deriver" + ], + "required": 3 + }, + { + "key": "36fb75567322347105ae69c22b4aef9307ae5edc22f88fb20a0816359e6d9b08", + "roles": [ + "deriver" + ], + "required": 2 + }, + { + "key": "43441b8c2f91e6e9f60e7ebf2827f809695a5f410c85feea484ee41b04743db9", + "roles": [ + "claimant" + ], + "required": 6 + }, + { + "key": "b8bf46d82e7ba37e4731fdc33df7282ac9ac6371780c9794d80659b8aecd0b26", + "roles": [ + "publisher" + ], + "required": 1 + }, + { + "key": "c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e", + "roles": [ + "received", + "served" + ], + "required": 4 + }, + { + "key": "c8fee39620f9f0aebedb2b4bce0ca94033a46d4d92fe1c2d26322c58f1524c13", + "roles": [ + "served", + "store" + ], + "required": 10 + }, + { + "key": "d174dd8b7c789e94a6617313ea5c712c82c8bd2e72c93d60e19b313e8f6eb308", + "roles": [ + "store" + ], + "required": 10 + } + ], + "missing": [], + "uncounted": [], + "clock": "us-pl-119-12-s3-a-3", + "start": 1792569900, + "deadline": 1792742700, + "window_end": null, + "first_purge": 1792576800, + "last_purge": 1792620000, + "time_to_removal_s": 50100, + "verdict": "met", + "matched": { + "candidates": [ + "eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030" + ], + "missing": [], + "last_purge": 1792584000 + } + } + } + }, + { + "name": "cache-transmitted-not-purged", + "description": "The same, verified after its deadline, with the cache's purge naming only what it received and served: the source it sent is not purged, purge_missing", + "case": { + "notices": [ + "{\"contact\":\"Submitter, submitter@example.net\",\"ground\":\"illegal\",\"ground_ref\":\"\",\"issued_at\":\"2026-10-21T08:00:00Z\",\"kind\":\"wai-takedown-notice\",\"sig\":\"ad959ee3bef413b627b6a42ab92fb1feb5d72f8ea0c78b073c79bc14fd61a9f59bb2cd54517b5b504e396d0828d61a39629e19f7aa5cc3158f47cecdafb94208\",\"signer_pubkey\":\"a99871bf596cb20db46c57507dfa4dcf0593ef0ed194f84a85c3b3907dd74d64\",\"statement\":\"The location named shows the submitter without consent.\",\"targets\":[{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"type\":\"request\"}" + ], + "takedown": "{\"automated\":{\"decision\":\"partially\",\"detection\":\"yes\"},\"category\":3,\"clock\":\"us-pl-119-12-s3-a-3\",\"clock_start\":\"2026-10-21T08:05:00Z\",\"decided_at\":\"2026-10-21T09:00:00Z\",\"exact\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"explanation\":\"The item is a depiction of an identifiable person published without that person's consent.\",\"facts\":\"A notice located the item by its content hash; the service compared the notice with the item and removed it.\",\"ground\":\"illegal\",\"kind\":\"wai-takedown\",\"matched\":[{\"candidate\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"match\":\"ef4d9d6607a8ba4f100ea843bc18e939f804b0385c9d4535e4570bbc30df6494\"}],\"notice\":\"6ee97e5d08ba81c873975fe5baf2bc5bbda42c384276f139ef255846c9162690\",\"policy\":\"f64a50351a627636b363eb8d63e25194a74263f2b05039dd7faf597d67f946c4\",\"reply_at\":null,\"sig\":\"96f52c0912833c6a42ab6fce7523c5ba2923bea5842f90177763b28eaf0e562f451b9ec44a9c05083f5efdaaa18c48cc5c0184e1d1b09f89f7e8121665f83509\",\"signer_pubkey\":\"e9e0cbabbdd1b0307e1d97595e7bcfea8cb43ae78cfb78580a422d5f3fef293d\",\"targets\":[{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"verdict\":\"remove\"}", + "matches": [ + "{\"candidate\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"distance\":6,\"issued_at\":\"2026-10-21T07:00:00Z\",\"kind\":\"wai-takedown-match\",\"method\":\"wai-takedown:example-perceptual-hash\",\"sig\":\"db17bc1852808da8498440a6d50488cfde41d0377b7407f3673661720433f0bbc118b09d3ee69f5af63b0454f5f957497e0ab4ee2235f73cdd9e667072f73a02\",\"signer_pubkey\":\"903a2dcf9da77b1117c9f29c5e9d95c3578eac3514eade0df652ca4566b4be90\",\"source\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"threshold\":10}" + ], + "purges": [ + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T10:00:00Z\",\"sig\":\"275859283c3e388a680ea5e308d8ce925852b5e928178adcee148bff28cc4e8d7bac46ecb538354cdf757d0221f35dac96a02a1d50b3b74fafbe9f34cdb6780c\",\"signer_pubkey\":\"d174dd8b7c789e94a6617313ea5c712c82c8bd2e72c93d60e19b313e8f6eb308\",\"subjects\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"content_hash\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T12:00:00Z\",\"sig\":\"602e01802dca912905712a596ec04da856506196350912cc5c0134840422e472055d77f807c56dae60b0cfc5d76a0dbac3dfd684f3fed607c1632cbb2d8cff02\",\"signer_pubkey\":\"c8fee39620f9f0aebedb2b4bce0ca94033a46d4d92fe1c2d26322c58f1524c13\",\"subjects\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"content_hash\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T14:00:00Z\",\"sig\":\"b60c19264df6491f0793dd9fbe800367e5c6d16c7007efa0205ab243e288beac655c0b09a14c6a2d466f3dc554f8f3e5280f059dc01341b427bc4f147d8e1708\",\"signer_pubkey\":\"36fb75567322347105ae69c22b4aef9307ae5edc22f88fb20a0816359e6d9b08\",\"subjects\":[{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T16:00:00Z\",\"sig\":\"cc7a0cac728c11d43966d92b8b771b80b9fbded603471319d080fa711ab6432dff6fd234901565424c0b23cdb77f9c06e42e1856a976b5e2d1ec1341928c3d05\",\"signer_pubkey\":\"103b452f8f9638d714aefc83544a2d7c605d67d379294627316ff2290755a3b4\",\"subjects\":[{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T18:00:00Z\",\"sig\":\"d2f4598aaf742fb97dfff6617bc2a196f768492e0cbad613651bf1340e44dec74f2891168a085fe519316eee709f3fbbadc49864ea68f9b8f9e099dbd32eb907\",\"signer_pubkey\":\"43441b8c2f91e6e9f60e7ebf2827f809695a5f410c85feea484ee41b04743db9\",\"subjects\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T20:00:00Z\",\"sig\":\"d3502bb148fa740208f2d4c9450058763a6427defd27f5fb9497f2aafecdd0f99d50c6cc25f2c7d255573757adb79bd9ac4c722a373eac73ed6955487268950e\",\"signer_pubkey\":\"b8bf46d82e7ba37e4731fdc33df7282ac9ac6371780c9794d80659b8aecd0b26\",\"subjects\":[{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}", + "{\"kind\":\"wai-takedown-purge\",\"purged_at\":\"2026-10-21T22:00:00Z\",\"sig\":\"a4a629278da0b0ba968f4bb9b6d4cd522ee16da728add83526eba5f4869eb55f4264ac598131a694d244db36db16ed4b77217cfd34d388f9f57859eae9cc6d09\",\"signer_pubkey\":\"c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e\",\"subjects\":[{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"}],\"takedown\":\"b2c787c8814d4f600b229b2dc02d9f12a2efcb065d15b28e1262db8d1ab53c67\"}" + ], + "cache_transmissions": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"urn:example:wai-bearer:cache-mesh\",\"energy\":null,\"leaf_count\":2,\"sent\":\"80\",\"sent_root\":\"0910fab3ef9042775b1056dafb4c469c60871d2ae2a29d665eaec7bed2cf0d11\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-10-21T07:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2a16e21f2cef0735446b99afea213c26d9f9f848b383ee9337ae2bc49a0d99b799e4f94d879a287548e3a8dad760ddbd0995f750820497ae53332e94f9134603\",\"signer_id\":\"did:key:z6MksctQULaYQDJmDMKBe8vep2zMFrwEDiuEEoBXxiPDWxgd\",\"signer_pubkey\":\"c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e\",\"subject\":\"64ed8925ac7eafd98980dcb81ba39edac6e372810c1573cfe27bb3c83a553c30\",\"subject_type\":\"receipt\"}" + ], + "as_of": "2026-10-24T08:00:00Z" + }, + "expect": { + "outcome": "missed", + "reason": "purge_missing", + "facts": { + "closure": [ + { + "type": "object", + "content_hash": "0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf" + }, + { + "type": "object", + "content_hash": "2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a" + }, + { + "type": "object", + "content_hash": "46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088" + }, + { + "type": "object", + "content_hash": "5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df" + }, + { + "type": "object", + "content_hash": "92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b" + }, + { + "type": "object", + "content_hash": "975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f" + }, + { + "type": "object", + "content_hash": "dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58" + }, + { + "type": "object", + "content_hash": "dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4" + }, + { + "type": "track", + "track": "30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2", + "from_group": 5 + }, + { + "type": "group", + "receipt": "edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2" + } + ], + "holders": [ + { + "key": "103b452f8f9638d714aefc83544a2d7c605d67d379294627316ff2290755a3b4", + "roles": [ + "deriver" + ], + "required": 3 + }, + { + "key": "36fb75567322347105ae69c22b4aef9307ae5edc22f88fb20a0816359e6d9b08", + "roles": [ + "deriver" + ], + "required": 2 + }, + { + "key": "43441b8c2f91e6e9f60e7ebf2827f809695a5f410c85feea484ee41b04743db9", + "roles": [ + "claimant" + ], + "required": 6 + }, + { + "key": "b8bf46d82e7ba37e4731fdc33df7282ac9ac6371780c9794d80659b8aecd0b26", + "roles": [ + "publisher" + ], + "required": 1 + }, + { + "key": "c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e", + "roles": [ + "received", + "served" + ], + "required": 4 + }, + { + "key": "c8fee39620f9f0aebedb2b4bce0ca94033a46d4d92fe1c2d26322c58f1524c13", + "roles": [ + "served", + "store" + ], + "required": 10 + }, + { + "key": "d174dd8b7c789e94a6617313ea5c712c82c8bd2e72c93d60e19b313e8f6eb308", + "roles": [ + "store" + ], + "required": 10 + } + ], + "missing": [ + { + "holder": "c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e", + "subject": { + "type": "object", + "content_hash": "dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58" + } + } + ], + "uncounted": [], + "clock": "us-pl-119-12-s3-a-3", + "start": 1792569900, + "deadline": 1792742700, + "window_end": null, + "first_purge": 1792576800, + "last_purge": 1792620000, + "time_to_removal_s": null, + "verdict": "missed", + "matched": { + "candidates": [ + "eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030" + ], + "missing": [], + "last_purge": 1792584000 + } + } + } + }, { "name": "stranger-purge-not-counted", "description": "As request-48h-purge-missing, with a purge of the thumbnail, the rung and the component signed by a party that never held them: its subjects are uncounted and the edge's purge is still missing", @@ -2263,6 +2560,32 @@ ] } }, + { + "name": "cache-transmission-invalid", + "description": "A cache-transmission claim whose signature does not cover what it states", + "case": { + "notices": [ + "{\"contact\":\"Submitter, submitter@example.net\",\"ground\":\"illegal\",\"ground_ref\":\"\",\"issued_at\":\"2026-10-21T08:00:00Z\",\"kind\":\"wai-takedown-notice\",\"sig\":\"ad959ee3bef413b627b6a42ab92fb1feb5d72f8ea0c78b073c79bc14fd61a9f59bb2cd54517b5b504e396d0828d61a39629e19f7aa5cc3158f47cecdafb94208\",\"signer_pubkey\":\"a99871bf596cb20db46c57507dfa4dcf0593ef0ed194f84a85c3b3907dd74d64\",\"statement\":\"The location named shows the submitter without consent.\",\"targets\":[{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"type\":\"request\"}" + ], + "takedown": "{\"automated\":{\"decision\":\"partially\",\"detection\":\"yes\"},\"category\":3,\"clock\":\"us-pl-119-12-s3-a-3\",\"clock_start\":\"2026-10-21T08:05:00Z\",\"decided_at\":\"2026-10-21T09:00:00Z\",\"exact\":[{\"content_hash\":\"0810f6c136790c08eaf99e8805e05237793be3f794af8eda2ea2750dc544e9cf\",\"type\":\"object\"},{\"content_hash\":\"2e745f40f6477b92cf7e6721536b4e24ac2aeb0058fa4735d4eafa3a2af5cb6a\",\"type\":\"object\"},{\"content_hash\":\"46a5043c50dbf90ae1ec2952ecd402f09fae39dc9e6e138e120dce7a770a5088\",\"type\":\"object\"},{\"content_hash\":\"5a13b782b85579d57d6547967cf70151b96a8d1fddd23951c85a582236e3c6df\",\"type\":\"object\"},{\"content_hash\":\"92c9d560804549d5e5978c40ed1c28285739c3325000c427edeba13f0e7d995b\",\"type\":\"object\"},{\"content_hash\":\"975c675d46575ec70ef57678bbb3080d5c3416ca3633de39195fc3664d65988f\",\"type\":\"object\"},{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"},{\"content_hash\":\"dd572a12932a13c25259b5f03590cd802a1a3a21ba6e630c8e3050b4d2248ec4\",\"type\":\"object\"},{\"from_group\":5,\"track\":\"30ee90ff4071ee3057366a408a3bc82ef395811195763fac6d338ee9988b03e2\",\"type\":\"track\"},{\"receipt\":\"edea69fd50ffa2262e9c7bda6aab8e50b012199976b8b10abd4c4e598263b4d2\",\"type\":\"group\"}],\"explanation\":\"The item is a depiction of an identifiable person published without that person's consent.\",\"facts\":\"A notice located the item by its content hash; the service compared the notice with the item and removed it.\",\"ground\":\"illegal\",\"kind\":\"wai-takedown\",\"matched\":[{\"candidate\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"match\":\"ef4d9d6607a8ba4f100ea843bc18e939f804b0385c9d4535e4570bbc30df6494\"}],\"notice\":\"6ee97e5d08ba81c873975fe5baf2bc5bbda42c384276f139ef255846c9162690\",\"policy\":\"f64a50351a627636b363eb8d63e25194a74263f2b05039dd7faf597d67f946c4\",\"reply_at\":null,\"sig\":\"96f52c0912833c6a42ab6fce7523c5ba2923bea5842f90177763b28eaf0e562f451b9ec44a9c05083f5efdaaa18c48cc5c0184e1d1b09f89f7e8121665f83509\",\"signer_pubkey\":\"e9e0cbabbdd1b0307e1d97595e7bcfea8cb43ae78cfb78580a422d5f3fef293d\",\"targets\":[{\"content_hash\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"type\":\"object\"}],\"verdict\":\"remove\"}", + "matches": [ + "{\"candidate\":\"eac0d7665177bfb1a8abd47c8aed0a8a68d76691670cba4bcc18ac071b6d0030\",\"distance\":6,\"issued_at\":\"2026-10-21T07:00:00Z\",\"kind\":\"wai-takedown-match\",\"method\":\"wai-takedown:example-perceptual-hash\",\"sig\":\"db17bc1852808da8498440a6d50488cfde41d0377b7407f3673661720433f0bbc118b09d3ee69f5af63b0454f5f957497e0ab4ee2235f73cdd9e667072f73a02\",\"signer_pubkey\":\"903a2dcf9da77b1117c9f29c5e9d95c3578eac3514eade0df652ca4566b4be90\",\"source\":\"dc3f88f4a51fe009d3c9d5f0bd42481b6f783333667748f4c5d8d00590dd9b58\",\"threshold\":10}" + ], + "purges": [], + "as_of": "2026-10-24T08:00:00Z", + "cache_transmissions": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"multicast\",\"bearer_id\":\"urn:example:wai-bearer:cache-mesh\",\"energy\":null,\"leaf_count\":2,\"sent\":\"80\",\"sent_root\":\"0910fab3ef9042775b1056dafb4c469c60871d2ae2a29d665eaec7bed2cf0d11\"},\"class\":\"cache-transmission\",\"issued_at\":\"2026-10-21T07:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2a16e21f2cef0735446b99afea213c26d9f9f848b383ee9337ae2bc49a0d99b799e4f94d879a287548e3a8dad760ddbd0995f750820497ae53332e94f9134603\",\"signer_id\":\"did:key:z6MksctQULaYQDJmDMKBe8vep2zMFrwEDiuEEoBXxiPDWxgd\",\"signer_pubkey\":\"c39f450caea2a00608a21c64dbbdaa2181a2727d27e9c9ef838e9666eb105e7e\",\"subject\":\"64ed8925ac7eafd98980dcb81ba39edac6e372810c1573cfe27bb3c83a553c30\",\"subject_type\":\"receipt\"}" + ] + }, + "expect": { + "outcome": "refuse", + "reason": "evidence_invalid", + "at": [ + "cache_transmission", + 0 + ] + } + }, { "name": "group-unexpanded", "description": "The generated group's second object receipt is not given, so the group cannot be expanded", diff --git a/wai/live-conformance/takedown_verify.py b/wai/live-conformance/takedown_verify.py index c4d5250d9..66c2f8f32 100644 --- a/wai/live-conformance/takedown_verify.py +++ b/wai/live-conformance/takedown_verify.py @@ -5,9 +5,11 @@ Written from the extension's text, sharing no code with wai-rs. It reads every r under §2's encodings, computes the derivation closure of §6 from the derivation records (read with the deriving-edge corpus's second implementation, edge-conformance/edge_verify.py), the origin claims (read with the synthesis corpus's, live-conformance/synthesis_verify.py), the -delivery receipts of the groups it reaches (read with edge_verify.py too) and the +delivery receipts of the groups it reaches (read with edge_verify.py too), the acknowledgements that show who served or received an object (read with the settlement corpus's, -live-conformance/settlement_verify.py), holds the takedown's +live-conformance/settlement_verify.py) and the cache-transmission claims that show what a node sent +from what it held (read through jwp-receipts §3.1 steps 1 to 4 with the claim corpus's, +claim-conformance/claim_verify.py), holds the takedown's stated set to it, finds the holders and the purges that cover them (§7), computes the time to removal against the clock the registry gives (§4, §7.3), and recomputes the counts (§9). Every signature is checked with WAI's strict Ed25519 rule (claim-conformance/_ed25519.py). @@ -17,7 +19,8 @@ dropped in turn, requires the corpus to catch the weakened verifier. python3 -I takedown_verify.py -Standard library only. Exit status 0 when everything holds, 1 otherwise. +The standard library and the `cryptography` package, which the claim verifier imports. Exit +status 0 when everything holds, 1 otherwise. """ import calendar import copy @@ -35,6 +38,7 @@ from _blake3 import blake3 # noqa: E402 import edge_verify as EV # noqa: E402 import synthesis_verify as SYV # noqa: E402 import settlement_verify as SEV # noqa: E402 +import claim_verify as CV # noqa: E402 EXTENSION = os.path.join(HERE, "..", "extensions", "takedown.md") PUBLISHED = os.path.join(HERE, "..", "registry", "takedown-clocks.json") @@ -47,9 +51,10 @@ ROLES = ("origin", "store", "relay", "cache", "edge") CHECKS = ( "registry-shape", "signature", "registry-link", "policy-clocks", "takedown-policy", "takedown-signer", "notice-held", "notice-targets", "clock-in-policy", "clock-consistent", "records", "claims", "acknowledgements", + "cache-transmissions", "purge-takedown", "rule-group", "rule-derivation", "rule-claim", "group-expanded", "exact-supported", "match-not-exact", "exact-complete", "match-held", "match-anchored", - "store-holders", "deriver-holders", "claimant-holders", "publisher-holders", "served-holders", + "store-holders", "deriver-holders", "claimant-holders", "publisher-holders", "served-holders", "sent-holders", "holder-only", "group-coverage", "deadline", "purges-complete", "window", "counts-as-of", "counts-rows", ) @@ -433,6 +438,19 @@ def evaluate(case, as_of): except (SEV.Refuse, Bad, ValueError, KeyError, TypeError): if on("acknowledgements"): raise Refuse("evidence_invalid", ["acknowledgement", i]) + # The cache-transmission claims (cache-authority §5): each of that class and through + # jwp-receipts §3.1 steps 1 to 4; what each shows, (signer, group, positions sent). + sent = [] + for i, t in enumerate(case.get("cache_transmissions", [])): + try: + c = CV.verify_claim(t) + need(c["class"] == "cache-transmission") + except (CV.Reject, Bad): + if on("cache-transmissions"): + raise Refuse("evidence_invalid", ["cache_transmission", i]) + continue + bits = bytes.fromhex(c["body"]["sent"]) + sent.append((c["signer_pubkey"], c["subject"], [p for p in range(8 * len(bits)) if bits[p // 8] & (0x80 >> (p % 8))])) matches = [read_signed(t, "wai-takedown-match", ["kind", "source", "candidate", "method", "distance", "threshold", "issued_at", "signer_pubkey", "sig"], match_fields, ["match", i]) for i, t in enumerate(case.get("matches", []))] @@ -541,6 +559,16 @@ def evaluate(case, as_of): needs(up, obj(h), "served") if hop is not None: needs(hop, obj(h), "received") + if on("sent-holders"): + # A node's own word that it sent objects of a group, read by position through the group's + # object receipts (§6.3); a group not among the receipts names no object. + for signer, g, pos in sent: + e = expand(case.get("receipts", []), g) + if e is None: + continue + for p in pos: + if p < len(e[1]) and e[1][p] in objects: + needs(signer, obj(e[1][p]), "served") matched_required = {} cands = {e["candidate"] for e in td["matched"]} for k in pol["stores"]: @@ -796,6 +824,8 @@ def mutations(doc): mutate("the cache's acknowledgement of the thumbnail withheld", lambda d: d["world"]["acknowledgements"].pop(0)), mutate("a byte of an acknowledgement's signature", lambda d: d["world"]["acknowledgements"][1].update(record=flip_hex_digit(d["world"]["acknowledgements"][1]["record"], len(d["world"]["acknowledgements"][1]["record"]) - 9))), + mutate("the cache's claim that it sent the source withheld", + lambda d: case(d, "cache-transmitted-not-purged")["case"]["cache_transmissions"].pop()), mutate("the unfixed request stated met", lambda d: facts(d, "request-unfixed").update(verdict="met")), mutate("the reply window's end moved", lambda d: facts(d, "own-reply-early").update(window_end=facts(d, "own-reply-early")["window_end"] + 1)), mutate("a refused case's place moved", lambda d: case(d, "derivative-left-out")["expect"].update(at=["closure", 5])), diff --git a/wai/live-conformance/telemetry_aggregate_verify.py b/wai/live-conformance/telemetry_aggregate_verify.py index fc5abae21..b27ddbdc4 100644 --- a/wai/live-conformance/telemetry_aggregate_verify.py +++ b/wai/live-conformance/telemetry_aggregate_verify.py @@ -1041,7 +1041,8 @@ def u64(x): # cells (§9.2). FLOOR = 50 -MEASURES = {1: "outcomes", 2: "stalls", 3: "durations", 4: "start_time"} +# Measure 5's configuration is impression-aggregates §5.3's, against a catalogue (§4.3 rule 3). +MEASURES = {1: "outcomes", 2: "stalls", 3: "durations", 4: "start_time", 5: "impressions"} START_EDGES = [250, 500, 1000, 2000, 4000, 8000] @@ -1089,8 +1090,8 @@ def task_id(cfg): return sha256(b"wai:telemetry-aggregate/task\x00" + cfg) -def check_task(cfg_bytes): - """§4.3, in order: the task's fields, its info and its Prio3.""" +def task_fields(cfg_bytes): + """§4.3 rule 1: the task's fields and its info.""" try: r = Rd(cfg_bytes) t = read_task(r) @@ -1104,11 +1105,24 @@ def check_task(cfg_bytes): types = [e[0] for e in t["extensions"]] if any(e[0] != 1 or len(e[1]) != 16 for e in t["extensions"]) or types != sorted(set(types)): raise Refuse("task_invalid", "task") + return t, info + + +def check_task(cfg_bytes, measure5=None): + """§4.3, in order: the task's fields, its info and its Prio3. For measure 5, rule 3 is + impression-aggregates §5.3 steps 2 to 4, given as `measure5(t, info)`, which returns the + task's Prio3 or refuses; given none, the task is refused `catalogue_mismatch`.""" + t, info = task_fields(cfg_bytes) if info is None or info["measure"] not in MEASURES: raise Refuse("measure_unknown", "task") - p = measure_vdaf(info["measure"]) - if "measure" not in SKIP and (t["vdaf_type"] != p.v.ID or t["vdaf_config"] != dap_config(p)): - raise Refuse("measure_mismatch", "task") + if info["measure"] == 5: + if measure5 is None: + raise Refuse("catalogue_mismatch", "task") + p = measure5(t, info) + else: + p = measure_vdaf(info["measure"]) + if "measure" not in SKIP and (t["vdaf_type"] != p.v.ID or t["vdaf_config"] != dap_config(p)): + raise Refuse("measure_mismatch", "task") if "floor-rule" not in SKIP and t["min_batch_size"] < FLOOR: raise Refuse("floor_too_low", "task") if "one-key" not in SKIP and info["leader"] == info["helper"]: @@ -1159,10 +1173,10 @@ def sig_check(key, domain, body, sig, at): raise Refuse(e, at) -def verify_receipt(b, reports): - """§8.1, in order.""" +def verify_receipt(b, reports, task_check=check_task): + """§8.1, in order; step 2 is `task_check` (impression-aggregates §8.1 gives its own).""" rc = read_receipt(b) - t, info, p, tid = check_task(rc["task"]) + t, info, p, tid = task_check(rc["task"]) if "collector-signer" not in SKIP and rc["signer"] != info["collector"]: raise Refuse("wrong_signer", "receipt") if "collector-sig" not in SKIP: diff --git a/wai/live-conformance/timeliness/README.md b/wai/live-conformance/timeliness/README.md new file mode 100644 index 000000000..52805bc71 --- /dev/null +++ b/wai/live-conformance/timeliness/README.md @@ -0,0 +1,63 @@ +# live-conformance/timeliness — when an object is of use, and whether it was held in time + +The corpus of [`extensions/timeliness.md`](../../extensions/timeliness.md) §10, in one file, +`vectors.json`. + +**Provenance.** Generated here by `wai_timeliness_vectors gen` (`wai-rs`, feature `timeliness`), +from Ed25519 keys on fixed 32-byte seeds, constant instants, and envelopes whose payloads are +opaque test bytes written by the generator; no media and no input from outside this repository. + +`keys` names every key by its role, as 64 lowercase hexadecimal digits: the publisher's +(`did:web:publisher.example#d1`), another of its origin's (`publisher_other`, +`did:web:publisher.example#d2`), and three holders' (`holder_a`, `holder_b`, `holder_c`). +`groups` names the link hash of each group the cases use, all the publisher's, all starting at +2026-11-03T00:00:00.500Z: **G**, three bases and a layer of `wai.image.int_refine` (object 3); +**F**, a floor of each of G's objects, its manifest's `derived_from.motif` the content hash of G's +object at the same position; **F_other**, F with object 2's floor derived from G's object 1; and +**H**, two objects, the second a `WAI2`. G's entries, used throughout, have `from_ms` +1,793,664,000,000 (2026-11-03T00:00:00Z) and `by_ms` a minute later: entry 0 falls to 600,000 two +seconds after its deadline and to 0 ten seconds after, with F's object 0 at 400,000 as its +fallback; entry 1 is a hard deadline with no fallback; entry 2 holds 700,000 from one to five +seconds after, and 0 a second later, with F's object 2 at 1,000,000. + +- `claims` (§4.1, §4.2; jwp-receipts §3.1 steps 1 to 4) are each a claim's wire form, `claim`, + and its `outcome`: `accept`, or `reject step=N reason=R`. +- `values` (§5) are each an `entry` read alone and an instant `at_ms`; `outcome` gives the entry's + `value_ppm` at that instant and its `end_ms` (§5.2). No value case's entry has a fallback. +- `verdicts` (§6) are each the `groups` given, in order, each its `group` receipt and its + `objects`, a `receipt` and its `envelope` in hexadecimal or `null`; the `claims`, in order; the + holdings `records` in hexadecimal; and a `statement` offered (§6.4), `{group, index, holder}`, or + `null`. `outcome` is `refuse reason=R` when a group fails jwp-receipts §3 steps 1 and 2, and + otherwise gives: `objects`, each group's object verdicts (`delivered-verified`, + `inclusion-verified`, `reject reason=…`); `claims` (`accepted`, or `reject step=N reason=R`); + `records` (`stands`, `set-aside reason=holdings_contradicted`, `reject reason=…`); `intents`, + in the order of the groups given and then of `leaf_index`, each with its `group`, `leaf_index`, + `intent` (`stands`, or `set-aside reason=timeliness_contradicted`), `end_ms` (`null` for one set + aside) and `lines`, in increasing order of the holder's key bytes, each its `holder`, `held_ms` + (*p*), `fallback_ms` (*f*), `outcome` and `value_ppm`; and `statement`, `{outcome, value_ppm}`, + `reject reason=deadline_not_stated`, or `null`. +- `plans` (§7) are each a verdict's `groups`, `claims` (timeliness, transmission and schedule) and + `records`; `loss_ppm` and `overhead`, both integers or both `null`; `at_ms`, an instant or the + string `from_ms`; the `sources` in the asker's order, each exactly `{kind: "bearer", bearer_id}`, + `{kind: "holder", holder, fetch_ms}` or `{kind: "origin", fetch_ms}`; and the `wanted` objects, + each `{group, index}`. `outcome` is `refuse reason=R`, or gives `claims` (`accepted`, + `declared`, `stands`, `set-aside reason=…`, `reject step=N reason=R`), `records` as a verdict's, + and `choices`, one for each wanted object: `{outcome, object, source, arrival_ms, value_ppm}`, + with `object` `primary`, `fallback` or `null` and `source` an index into `sources` or `null`, or + `reject reason=deadline_not_stated`. + +The plans' schedules are G's objects 0 to 2 on `urn:example:bearer:b1` and F's objects on `b1` and +on `urn:example:bearer:b3`, each declared `unidirectional`: RaptorQ, one source block of eight +symbols of 128 octets and two repair symbols a pass, `advance`, ten passes of a second every ten +seconds from 2026-11-03T00:00:00Z. At the plans' loss bound of 500,000 and overhead of 2 a receiver +gets 5 symbols a pass and needs 12, so it holds an object at the end of its third pass. +`urn:example:bearer:b2` is declared `bidirectional`. + +Everything is synthetic: keys attest nothing, the publisher's origin is a reserved example domain, +and bearer instances use the example URN namespace. Each case states the outcome it was written to +have, declared in the generator, never copied from a verifier. + +`wai_timeliness_vectors verify` and `tests/timeliness.rs` check that the file regenerates byte for +byte and that `wai-rs` reaches every stated outcome. `../timeliness_verify.py` is the second +implementation, written from the extension's text, which also mutates copies of the corpus and +drops each of its own checks in turn and requires each to be caught. diff --git a/wai/live-conformance/timeliness/vectors.json b/wai/live-conformance/timeliness/vectors.json new file mode 100644 index 000000000..1299b5c79 --- /dev/null +++ b/wai/live-conformance/timeliness/vectors.json @@ -0,0 +1,23550 @@ +{ + "about": "Conformance corpus of extensions/timeliness.md (wai.delivery.timeliness): the timeliness claim (jwp-receipts §2.4.17) through steps 1 to 4, an entry's value at an instant (§5), the judgement of delivery from holdings records (§6) and an asker's plan over carousel passes, neighbours and the origin (§7). Every key is Ed25519 from a fixed 32-byte seed and attests nothing; envelopes carry opaque test payloads no case decodes; bearer instances use the example URN namespace and origins reserved example domains. Each case states the outcome it was written to have, declared in the generator. Regenerate with `wai_timeliness_vectors gen`.", + "keys": { + "publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "publisher_other": "204040e364c10f2bec9c1fe500a1cd4c247c89d650a01ed7e82caba867877c21", + "holder_a": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "holder_b": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "holder_c": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0" + }, + "groups": { + "G": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "F": "acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6", + "F_other": "798c667d2c26c41b9668557c217df6c3751bc7a57448be893ef0d0cee83be7ab", + "H": "9bd7476b1a0202aae27e9877864137c6a71e4cfceb2cd34075ab321eabdbd2ca" + }, + "claims": [ + { + "name": "minimal_hard_deadline", + "description": "One entry, a hard deadline, no fallback.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7e291d13122323d9e90573d5e4fcab274c06e8b93d43f53c771c65d49ac6e1a585ad48527f4bd8c4dc0583aeb71b262809559be696393ac0c52be0207ce1b008\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "full_entry", + "description": "Entry 0: two points and a fallback.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "window_one_instant", + "description": "of use from its deadline: a window of one instant.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664060000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"97c7dbb0f616f815f4a5d57960de6d36fd3b3c04aca45cfe610ee3a0b4b576c3a70c20e00a2292eb3ec9cb3c350e18f6cf7c12d8b79b501ca8f70ac2f539d601\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "by_before_last_instant", + "description": "A deadline a millisecond before the last instant, its one point at it.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":253402300799998,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":253402300799999,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fbcfac493e2bb1593aca0752d3550bc3974fda708a2334b0b853ab03c22928f6ecd14a34cd38aa61e588a9011f67bf6e2e48ac074bcf3169da542f2a3d77d10e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "decay_one_point_ramp", + "description": "One point: a fall to 0 over ten seconds.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1cf1fc0987e102778689f19c8108f3065ab7f258d32382a1a5466addf0da0547cf2dc8000d284579de51e75b5e0fc1fa1cf0596746049c67af4eaf8fca55fc06\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "decay_sixteen_points", + "description": "Sixteen points on a convex fall.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":878906},{\"at_ms\":1793664062000,\"value_ppm\":765625},{\"at_ms\":1793664063000,\"value_ppm\":660156},{\"at_ms\":1793664064000,\"value_ppm\":562500},{\"at_ms\":1793664065000,\"value_ppm\":472656},{\"at_ms\":1793664066000,\"value_ppm\":390625},{\"at_ms\":1793664067000,\"value_ppm\":316406},{\"at_ms\":1793664068000,\"value_ppm\":250000},{\"at_ms\":1793664069000,\"value_ppm\":191406},{\"at_ms\":1793664070000,\"value_ppm\":140625},{\"at_ms\":1793664071000,\"value_ppm\":97656},{\"at_ms\":1793664072000,\"value_ppm\":62500},{\"at_ms\":1793664073000,\"value_ppm\":35156},{\"at_ms\":1793664074000,\"value_ppm\":15625},{\"at_ms\":1793664075000,\"value_ppm\":3906},{\"at_ms\":1793664076000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"88de39b578022f719a0b2035a6013380bad0cb705b4a5df14af0c26811a953d95a4d6db3ff7fc745afb839798cce102074c80761b3a8c27b2038c119f01fd50e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "decay_step", + "description": "A fall to half over a millisecond, then to 0 over three seconds.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":500000},{\"at_ms\":1793664063001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"30d5ed7a29b4e8510f2174967692a266e9b997427c1be3ebf90c4d483846fe74d9db38af3ef038977a69ced5644e3d85047bd4ae9802922b28d9f984546af407\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "decay_plateau", + "description": "700,000 held for four seconds, then 0.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d4b1268b5cce2ec302e115fbe34c36de105d1ca1ec660def23eb0b3c16c42bf837e624efa7eb2dfb3a2296ea13231cf234e05e639c4c6c8dbd74f866085f0b02\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "decay_near_collinear", + "description": "A part per million off the line through its neighbours.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":500001},{\"at_ms\":1793664062000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a1df086e7c0890c0d4c856729819ee5523de6d456e7f574e594e3e2e7f6fcc9cb8ce006c6634ab1c347b5d43b886b2b7ed7e657f7f6f430bea3934868628e10d\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "decay_last_at_last_instant", + "description": "The last point at the last instant.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":253402300799999,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc4015430d1ad4c67bceda2fe82f870b3a7764e51882840539da6c1790eeab9a9d846ecd418d6149999f89e0485a44d161db7dd7cb0b2fb851268bdd90ed9502\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "fallback_value_one", + "description": "A fallback valued at 1.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":1},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2ec6e511cb76596d0553d439dcb7385db4aa6d7f30c14057adc9a2cc2ed3127f9fbfe3a6bac2afd92c8f22da2552ee8ae5177e2cb0b27009cc9ae5479c878908\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "fallback_value_full", + "description": "A fallback valued at full.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"da6a8889991ab0aa13e9485de06cd1f9981eacd79632731ee54aa4cdefffb590b44a057e87943e49325dd03b44a0a02c718f7ab3657a3872aeeac70354e9cd0d\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "fallback_same_group_other_leaf", + "description": "A fallback in the claim's own group, at another position.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"group\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"leaf_index\":2,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"de9539de3e7c0e9a117f34a318afbcff92e3c82fb3f6031dfadaf75f8677a733a7b45d92c10b3a652de0b4504de991b3f89df0486fab96c54bb08b61311af60d\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "accept" + }, + { + "name": "window_inverted", + "description": "of use from a millisecond after its deadline.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664060001,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1fb06849606b2d3fe4563aa1b185c545fef8eb87eed582f199df82320605f5d97a7f3c4a94c559486e5a964914c4c887a19a8cac171b9d0b242b66ee6081ab0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_window_invalid" + }, + { + "name": "by_at_last_instant", + "description": "A deadline at the last instant.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":253402300799999,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":253402300799999,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"493d84ef80fc39ba1002e9be6d25b40942cecc0202a9970c8681a2c11a55728a3c80d5cfd5ab64050862cd086cefee150745b05523b784282488cdee29c8cc0e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_window_invalid" + }, + { + "name": "not_valued", + "description": "attests `delivered`.", + "claim": "{\"body\":{\"attests\":\"delivered\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"77eb0d6d4c471d8118b99656c82ae153bc5585b48a53bf6f2966f2a29cc783c14274b2399092a5c433d32cf50caa4e55ba4e7da182220edf5c48a2a764bb9b0b\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_not_valued" + }, + { + "name": "no_objects", + "description": "No entry.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ebfcabc250bcc3094bc27090ed56bd66f5a3e9b0bcd03b9bfb1ff497be4a7dc531cfbd0b6b8ea7243395b7a2dee33afb5467612a44e231732ea1ab6653326900\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_objects_malformed" + }, + { + "name": "objects_unordered", + "description": "Object 1 before object 0.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c631b70ec252ccab74dd01da20cab7112bbd8a6371aab2b8d5bc5b21d67da38adf5d522d4613ccbaf03a3e208724d547fe1963c5e17b794cceb132a5957a8a07\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_objects_malformed" + }, + { + "name": "objects_repeated", + "description": "Object 2 twice.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e86b5e15cccaa6394c6f68c352c3e7313bffb9a3b70d6c3ceb100f176878ebdab143289595a455d51a17b717b93b9eeea7549dced3160abd7ae3c73e9021540f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_objects_malformed" + }, + { + "name": "decay_empty", + "description": "No point.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f92dca94881c3e9901e8003596fd4c80b7b7473086f3b47078bfb77bb19496aa9ff4c8a39df40335f153a6f421d9c029620fe169b79a36b87d9e42246132b90a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_seventeen_points", + "description": "Seventeen points on a convex fall.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":885813},{\"at_ms\":1793664062000,\"value_ppm\":778546},{\"at_ms\":1793664063000,\"value_ppm\":678200},{\"at_ms\":1793664064000,\"value_ppm\":584775},{\"at_ms\":1793664065000,\"value_ppm\":498269},{\"at_ms\":1793664066000,\"value_ppm\":418685},{\"at_ms\":1793664067000,\"value_ppm\":346020},{\"at_ms\":1793664068000,\"value_ppm\":280276},{\"at_ms\":1793664069000,\"value_ppm\":221453},{\"at_ms\":1793664070000,\"value_ppm\":169550},{\"at_ms\":1793664071000,\"value_ppm\":124567},{\"at_ms\":1793664072000,\"value_ppm\":86505},{\"at_ms\":1793664073000,\"value_ppm\":55363},{\"at_ms\":1793664074000,\"value_ppm\":31141},{\"at_ms\":1793664075000,\"value_ppm\":13840},{\"at_ms\":1793664076000,\"value_ppm\":3460},{\"at_ms\":1793664077000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"06797009db89ac4fc95c0b2f53d08a0895d6405132da0165993bf3c6ce617573984b91003a2f928dcf4939fdcc92e190ea43b6377eed8ac507850ef1b98d1808\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_first_at_deadline", + "description": "The first point at the deadline.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8cee35d3e71a8eb75f79181635ad2358bd157123bba9dcb0c1af4941e07e1b23250e8d8a25b11daf8d66dd83a2c8a34f95f76d58483648921765ab4623b53103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_point_full", + "description": "A point at full value, a second after the deadline.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":1000000},{\"at_ms\":1793664062000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3132ae9992520ea8de9943e07b185c9640d17c7b67dfa5586b85cdf82898038e99241a74a5e6dc4684a813794841efd8bc4e40090bb2cb00f3def1171385bc04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_instants_equal", + "description": "Two points at one instant.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":500000},{\"at_ms\":1793664061000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e1bb351fa94f9cfc0b7bbf28dd88149fa7ad8e200a19b7fd7b70a07cb62daa37f98e8b6fc415fea252fb6dd764c0d663246c76f9191d0b9f882be0be04ecf802\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_rises", + "description": "400,000, then 500,000.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":400000},{\"at_ms\":1793664062000,\"value_ppm\":500000},{\"at_ms\":1793664063000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3485883d6e02674cec46f0c467f148daa63207977fe868af180a9cab1221067aff1ffcdc211250b3b1980dc0410e67bf2aefb214702e2e67131fe8a38c1afb0d\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_plateau_interior", + "description": "700,000 three times: the middle point is on its neighbours' line.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664063000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e7cb1450a3c539f96f8bf99a7d6f7db7f5105354ae0c0ae2b18292ea071a5974586e90a52029f38672efc78d6b5a875864f518897ef12463d20ca59d940f4606\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_collinear", + "description": "Half at one second and 0 at two: on the line from the deadline.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":500000},{\"at_ms\":1793664062000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8b36654ea5b5d03ea206b6a2ac855b2edd0daa3fdd764016e0702de103787db131186437c84fa0a2800bed5c7f5ae8430df3cf7368b569ea01124c299a2b890c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_not_to_zero", + "description": "The last point at 1.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":500000},{\"at_ms\":1793664062000,\"value_ppm\":1}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a97db0d289b316a91652437eba7e240064f3a3f259da9a87f5d02f32e6cab161d29a08d597b6f7cf9aaf9498bbae7050d459f9d259bf17fb82b7198ffb55b600\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_zero_before_last", + "description": "0, then 0.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":0},{\"at_ms\":1793664062000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"13478a4a01ed1e046a3bb7c984ec249e94d756a599670bfd1800de268337220d83b262082f4551f073af90bceaa77a5c33ad3cce4261fb9d88c31e0602d86b0d\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "decay_past_last_instant", + "description": "The last point a millisecond past the last instant.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":253402300800000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f233f530d4b909d843bc67c2a5b094a38345b18475b579545e6d6add9f4c63881daa3ff3d723e55d0dc36ba9607883a517fdc5859316711719b7ff294c386002\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "fallback_value_zero", + "description": "A fallback valued at 0.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":0},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fba5287b1333e18c28557bcd6cf78c1391fdaec9dfe02a16d93b5cf94e46297502111a08a2ecdbf2b78aa1f1c9dcd3ff970144d3872f146668338a0e06f75706\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_fallback_invalid" + }, + { + "name": "fallback_value_above_full", + "description": "A fallback valued at 1,000,001.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":1000001},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3ab72849689aba4b61fcea22dfa968239f9a59aa9852cae19cf73c15dd90be6eb50a8f8f83b9a050c1430411022362f9fcc14953c2ced94213eb9987782b100e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_fallback_invalid" + }, + { + "name": "fallback_is_primary_hash", + "description": "A fallback with the primary's content hash.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"616cad9d968d014e3e89f03d150b82c1135068d9a35239db96d25eaf10e37fa48b9c5bb86b3db1e231d20f7873a86dabd894639c603bde4a59ddd6b12ae4a207\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_fallback_invalid" + }, + { + "name": "fallback_is_primary_position", + "description": "A fallback at the primary's own group and position.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"35731adf2ea5110638d6abaf5a106a2436d97abc8c6bb674134310b4ab3c2cc2d204128c2d6e047c91fce6881565bd603e6289b6479b71ec179054a0d37e9608\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_fallback_invalid" + }, + { + "name": "rule_order_within_entry", + "description": "An inverted window and no point in one entry: the window first.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[],\"fallback\":null,\"from_ms\":1793664060001,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8ed850560aae9086c4d66457fadd2d608f26b1af13e172b47c14be0e1233b825edf421366c822e5ff141b3f8972a4fa07ea5238749c761dd608e58d2e26e0d0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_window_invalid" + }, + { + "name": "entry_order", + "description": "Entry 0 with no point and entry 1 with an inverted window: entry 0 first.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664060001,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"381e2b4b1baac4c2831328a74ae6d52db68a36955f5b100139dd4f4c4bdf481c7da89fec97f417f10cccd554d7829fb5d2a8d0a8d4cbb2bb7ea829ded29a6908\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=4 reason=timeliness_decay_invalid" + }, + { + "name": "subject_type_object", + "description": "subject_type `object`: a statement of timeliness is about a group.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cd3033a00583712ae8c14f33830bcf415efba32c70be75f97b3c5e7c6b2fa8038a83d533affa5a910ab9863194c030da459c7bc3aeb28a1baad5b22d9958b100\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"subject_type\":\"object\"}", + "outcome": "reject step=1 reason=subject_type_not_admitted" + }, + { + "name": "body_missing_decay", + "description": "An entry with no `decay`.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=2 reason=missing_required_field" + }, + { + "name": "body_extra_member", + "description": "A body with a `bearer_id`.", + "claim": "{\"body\":{\"attests\":\"valued\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=2 reason=unknown_member" + }, + { + "name": "point_extra_member", + "description": "A point with a `unit`.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"unit\":\"ms\",\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=2 reason=unknown_member" + }, + { + "name": "point_value_string", + "description": "A point's `value_ppm` as a string.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":\"5\"},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=2 reason=field_type" + }, + { + "name": "fallback_not_object", + "description": "A `fallback` of 5.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":5,\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=2 reason=field_type" + }, + { + "name": "fallback_member_missing", + "description": "A fallback with no `value_ppm`.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ea32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=2 reason=missing_required_field" + }, + { + "name": "signature_flipped", + "description": "A bit of the signature flipped.", + "claim": "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4fa32ff2be96ac53c9d8ae2e3a9720450e650b51217c188908654155f6a7aae68bf22a672874fc7108d89a6f2dd59f9d9cedf1c94410d686e089240a9a83670c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "outcome": "reject step=3 reason=signature_verify_failed" + } + ], + "values": [ + { + "name": "example_before_deadline", + "description": "§5.4's entry a minute before its deadline: full.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664000000, + "outcome": { + "value_ppm": 1000000, + "end_ms": 1793664070000 + } + }, + { + "name": "example_at_deadline", + "description": "At the deadline: full.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060000, + "outcome": { + "value_ppm": 1000000, + "end_ms": 1793664070000 + } + }, + { + "name": "example_one_ms", + "description": "A millisecond after: (1,000,000 · 1999 + 600,000) / 2000.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060001, + "outcome": { + "value_ppm": 999800, + "end_ms": 1793664070000 + } + }, + { + "name": "example_1000", + "description": "A second after: halfway to 600,000.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664061000, + "outcome": { + "value_ppm": 800000, + "end_ms": 1793664070000 + } + }, + { + "name": "example_on_point", + "description": "On the first point.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664062000, + "outcome": { + "value_ppm": 600000, + "end_ms": 1793664070000 + } + }, + { + "name": "example_mid", + "description": "Halfway between the points.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664066000, + "outcome": { + "value_ppm": 300000, + "end_ms": 1793664070000 + } + }, + { + "name": "example_last_ms", + "description": "A millisecond before the end: 600,000 / 8000.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664069999, + "outcome": { + "value_ppm": 75, + "end_ms": 1793664070000 + } + }, + { + "name": "example_end", + "description": "At the end.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664070000, + "outcome": { + "value_ppm": 0, + "end_ms": 1793664070000 + } + }, + { + "name": "example_past_end", + "description": "Ten seconds past the end.", + "entry": { + "leaf_index": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664062000, + "value_ppm": 600000 + }, + { + "at_ms": 1793664070000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664080000, + "outcome": { + "value_ppm": 0, + "end_ms": 1793664070000 + } + }, + { + "name": "hard_at_deadline", + "description": "A hard deadline, at it.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060001, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060000, + "outcome": { + "value_ppm": 1000000, + "end_ms": 1793664060001 + } + }, + { + "name": "hard_one_ms", + "description": "A hard deadline, a millisecond after: 0, its end.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060001, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060001, + "outcome": { + "value_ppm": 0, + "end_ms": 1793664060001 + } + }, + { + "name": "step_one_ms", + "description": "A step to half, a millisecond after.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060001, + "value_ppm": 500000 + }, + { + "at_ms": 1793664063001, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060001, + "outcome": { + "value_ppm": 500000, + "end_ms": 1793664063001 + } + }, + { + "name": "step_mid", + "description": "A second into the fall from half: 333,333.3… floored.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060001, + "value_ppm": 500000 + }, + { + "at_ms": 1793664063001, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664061001, + "outcome": { + "value_ppm": 333333, + "end_ms": 1793664063001 + } + }, + { + "name": "step_last_ms", + "description": "A millisecond before the end: 500,000 / 3000 floored.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060001, + "value_ppm": 500000 + }, + { + "at_ms": 1793664063001, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664063000, + "outcome": { + "value_ppm": 166, + "end_ms": 1793664063001 + } + }, + { + "name": "zero_before_end_one", + "description": "Points (D + 3, 2) and (D + 13, 0), at D + 4: 1.8 floored.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060003, + "value_ppm": 2 + }, + { + "at_ms": 1793664060013, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060004, + "outcome": { + "value_ppm": 1, + "end_ms": 1793664060013 + } + }, + { + "name": "zero_before_end", + "description": "At D + 9: 0.8 floored to 0, before the end at D + 13.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664060003, + "value_ppm": 2 + }, + { + "at_ms": 1793664060013, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664060009, + "outcome": { + "value_ppm": 0, + "end_ms": 1793664060013 + } + }, + { + "name": "plateau_mid", + "description": "On the plateau.", + "entry": { + "leaf_index": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664061000, + "value_ppm": 700000 + }, + { + "at_ms": 1793664065000, + "value_ppm": 700000 + }, + { + "at_ms": 1793664066000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664063000, + "outcome": { + "value_ppm": 700000, + "end_ms": 1793664066000 + } + }, + { + "name": "plateau_fall", + "description": "Halfway down from the plateau.", + "entry": { + "leaf_index": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "from_ms": 1793664000000, + "by_ms": 1793664060000, + "decay": [ + { + "at_ms": 1793664061000, + "value_ppm": 700000 + }, + { + "at_ms": 1793664065000, + "value_ppm": 700000 + }, + { + "at_ms": 1793664066000, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 1793664065500, + "outcome": { + "value_ppm": 350000, + "end_ms": 1793664066000 + } + }, + { + "name": "wide_span", + "description": "A deadline of 1 and one point at the last instant, at its half: products past 2^64.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1, + "by_ms": 1, + "decay": [ + { + "at_ms": 253402300799999, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 126701150399999, + "outcome": { + "value_ppm": 500000, + "end_ms": 253402300799999 + } + }, + { + "name": "wide_span_near", + "description": "The same, a millisecond after the deadline: 999,999.99… floored.", + "entry": { + "leaf_index": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "from_ms": 1, + "by_ms": 1, + "decay": [ + { + "at_ms": 253402300799999, + "value_ppm": 0 + } + ], + "fallback": null + }, + "at_ms": 2, + "outcome": { + "value_ppm": 999999, + "end_ms": 253402300799999 + } + } + ], + "verdicts": [ + { + "name": "holder_on_time", + "description": "holder_a holds G whole half a minute before the deadline: every object on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "holder_at_deadline", + "description": "Held at the deadline itself: on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a60000001a19eec78e0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401b4d749b8a1e177fcf4278e7b60469f83e4f6569f930dc6e7b2895affecb6bba6bf814322b6cf967f6ba198579962e075099f30f18ad023eca118af1781760707" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "holder_one_ms_after", + "description": "A millisecond after: entry 0 at 999,800 (1,000,000 · 1999/2000 + 600,000 · 1/2000), entry 1's hard deadline at 0, entry 2 at 999,700.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a61000001a19eec78e1000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401166e306ca1140918713e5b630dfe54a763bff4bbf776354d83dd5daa2c30d29c8fcd169699a4fdfa3624d8303a18c6fae3572ab560ad26d7b0a48c0fde83020d" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060001, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 999800 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060001, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060001, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 999700 + } + ] + } + ], + "statement": null + } + }, + { + "name": "holder_after_deadline", + "description": "A second after: 800,000, 0 and 700,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58e48000001a19eec7cc8000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401d53d460ba28ac43221db1a7e3fd97ec2b57336da9cffe9af2b5fe3ee11492277136c2437de370bc8a379a50f87d7c1a7eda605af0963c53d9d7b5f103d6e4703" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 800000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 700000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "holder_after_end", + "description": "At entry 0's end: held after the deadline, at 0.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb5b170000001a19eec9ff0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040160627e173d0020592823a8e9a2188005d87c620feab08e919c0216ba43efb90443d53a4a40760b03a40d59a0f40bf4c879d4ad2a64f31c099fdf74f93bd3730e" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664070000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664070000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664070000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "holder_not_shown", + "description": "holder_a's record has G without object 0: object 0 not shown, the others on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000400609a92de730cd8fdd8a8483062edbc34427a0b75e3e17cae3ea70898c4e4b0888dc1b97ae08698f282628d1c6e829825cea88e9524f4232b40d2125c255c203a09" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "hard_deadline_after", + "description": "Object 1, a hard deadline, held a millisecond after it: after the deadline at 0.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a61000001a19eec78e1000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000004004032f5d551e3d1b68b6256f5b151b7d2aeffa6f955d937f27c656a9603559e93a3203e75683d32543478d29729cb105a9a26bef9a579fc19cf732c552049c2f409" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060001, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "plateau_after_deadline", + "description": "Object 2 three seconds after its deadline, on its plateau, its floor not held: 700,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb59618000001a19eec8498000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000400207e76ded79d95a9939ac0f1c15fdeb8223890fd0d42a405f70f314bf7f498eb4528ce3981b1874a93026d7148e0ec4467251a4194eca38a14ae26fe9b9f12460b" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664063000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 700000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_replaces", + "description": "F's object 0 held a second before the deadline, the primary not held: replaced, at the fallback's 400,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58678000001a19eec74f800000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf600000000000000040080279ba015c6029c2c6d40988ad645c1dc5fa768c69cdcd7a7c055b35cc932eed39cc0c4a2c98dab6b9fe45c556e39c62657d967f5c120b49862873fdd93a9f40f" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": 1793664059000, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_at_deadline", + "description": "The fallback held at the deadline: replaced.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a60000001a19eec78e000000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf600000000000000040080358713378db99fe1f4988aaee3683a90781aaca69a4efb2408a4ccf50e4c8548b9328687b60aac8016cd21240d5f78a5314de823e9ee38eea7157c5f07716303" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": 1793664060000, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_after_deadline", + "description": "The fallback held only a millisecond after the deadline: it stands in for nothing, not shown.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a61000001a19eec78e100000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf600000000000000040080ac19916c2a54c0b34ac3801df9001ce635d7e41640e4e13f5da09a964a2356862851305f18ac216b5c8e557c0ac1ef658107e9bd361e5f0ce0d30e305de6c900" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": 1793664060001, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_beats_late", + "description": "The fallback by the deadline and the primary six seconds after it (300,000): replaced at 400,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb5886c000001a19eec76ec00000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf60000000000000004008086fd92f75f8dc4ee9ed24ce334a6276644ad0f455d5fe320587cf6d3f6a60f56e22606e06b932ce1af19310d681ca968bcb90dc0e0663c6f70e7d8c48fb86207", + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb5a1d0000001a19eec9050000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000004008086cc07466b1056a9fd7b5d91d061d279b94d115965f38350fb4daef43dc9ccbb87a8972a4117ee4f05474d90ff1841ac2222abb54f572b3415292d2ed9c82400" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664066000, + "fallback_ms": 1793664059500, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "late_primary_after_fallback", + "description": "The fallback by the deadline and the primary a second after it, worth 800,000 then: replaced at 400,000, since at the deadline the sink held the fallback (§5.3).", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb5886c000001a19eec76ec00000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf60000000000000004008086fd92f75f8dc4ee9ed24ce334a6276644ad0f455d5fe320587cf6d3f6a60f56e22606e06b932ce1af19310d681ca968bcb90dc0e0663c6f70e7d8c48fb86207", + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58e48000001a19eec7cc8000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040080ab9d0b2241a7fe25903a8bc9189081900ec1fe95c0ed6b5faa589b30f65c2ab8038f8621a99899010cc7115eee23975b1fe8135f2424d24861b0f8b1d8bf0f07" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": 1793664059500, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_full_value", + "description": "Object 2: its floor, valued at full, by the deadline, the primary a millisecond after: replaced at 1,000,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a60000001a19eec78e000000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6000000000000000400207dad445647c57fbb9a81faa80c888cee6a83b96f5d02586db431859c3bc324996c8af371bef8a244b4977d093c9ca38e26691b595933b6662b28fb14d38c5b06", + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a61000001a19eec78e1000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000004002085118ff552c5783fa433323973e6d7d9de717afe9386983648879adee721bdf0087c98f37c61d7a7a05346b2db8e327c3fe66ff1cb6aa32ef16cfe403c0a7e03" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664060001, + "fallback_ms": 1793664060000, + "outcome": "replaced", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_late_primary_late", + "description": "The fallback a millisecond after the deadline and the primary two seconds after: after the deadline at 600,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58a61000001a19eec78e100000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf600000000000000040080ac19916c2a54c0b34ac3801df9001ce635d7e41640e4e13f5da09a964a2356862851305f18ac216b5c8e557c0ac1ef658107e9bd361e5f0ce0d30e305de6c900", + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb59230000001a19eec80b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040080ee7b4fa7beadcbecdd444c6cb196b29b8d7476e1cd3ab6ed4a67f6a8eb8b196a24064b47f1e5cebd8131db1d09b2373b0445353f06bce4e9c30ea42fbf1a5e03" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664062000, + "fallback_ms": 1793664060001, + "outcome": "after_deadline", + "value_ppm": 600000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_group_not_given", + "description": "F's object 0 held by the deadline, F's receipt not given: the record's entry for F is not checked, and replaced.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58678000001a19eec74f800000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf600000000000000040080279ba015c6029c2c6d40988ad645c1dc5fa768c69cdcd7a7c055b35cc932eed39cc0c4a2c98dab6b9fe45c556e39c62657d967f5c120b49862873fdd93a9f40f" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": 1793664059000, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "earliest_record_counts", + "description": "holder_b's records a second before and five seconds after the deadline: the earlier counts, on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "57484431012012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7000001a19eb58678000001a19eec74f8000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000004008066cac38385096e7610c2a70f4a4ee6a1b7ac8451f1fd869aba7a415a4bb92ced90ec9e8b6a62493c0d131c00d3c0de703925500b90ab777ead3bf183a40d160e", + "57484431012012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7000001a19eb59de8000001a19eec8c68000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040080ccc046e81e888bd3cb722292cabce67bd351526f2587a2436cd1a75b605d39cda5e37306f1a566ef9f5bb7a0179e296466a7906df9d09b3252038f91b4334000" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "held_ms": 1793664059000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "fallback_earliest_counts", + "description": "holder_a's record five seconds after the deadline holds G's object 0 and F's object 0, and its record a second before the deadline F's object 0, given in that order: f is the earlier, by the deadline, so replaced at 400,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb59de8000001a19eec8c68000000020fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040080acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf60000000000000004008051a251e0bc45ef807385ea167e8e8fe25181fbcf3fc3a9647d49a6aa633875ac0130bf5a632e2753775238e0d472e5348bd1ea4ea27be88c01283f3782b94f0e", + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58678000001a19eec74f800000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf600000000000000040080279ba015c6029c2c6d40988ad645c1dc5fa768c69cdcd7a7c055b35cc932eed39cc0c4a2c98dab6b9fe45c556e39c62657d967f5c120b49862873fdd93a9f40f" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664065000, + "fallback_ms": 1793664059000, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "lines_by_key", + "description": "holder_a holds G a second after the deadline, holder_c F's object 0 two seconds before it, and holder_b G's objects 0 and 2 a second before it, the records given in that order: holder_b on time, holder_a after the deadline (800,000, 0 and 700,000) and holder_c replaced for object 0, in key order.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb58e48000001a19eec7cc8000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401d53d460ba28ac43221db1a7e3fd97ec2b57336da9cffe9af2b5fe3ee11492277136c2437de370bc8a379a50f87d7c1a7eda605af0963c53d9d7b5f103d6e4703", + "5748443101f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0000001a19eb58290000001a19eec711000000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf60000000000000004008001513710ea073ca5868c3983e12aaa604d573efe7dd15dd0f11d58bcfa33fe735c217e1bd9ec4d5aa0b5910116ebdbf5a64b92ff5b9f8fc4728c9d4a690a8b0e", + "57484431012012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7000001a19eb58678000001a19eec74f8000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000400a06626cf58bacf16226a6870e21e09828561c8244b92318eadf37b0ac3d5cabf8d33a53992da1ccf41ce4546987190b0694dd685864fe675a847d59eac417e360f" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "stands", + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "held_ms": 1793664059000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + }, + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 800000 + }, + { + "holder": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0", + "held_ms": null, + "fallback_ms": 1793664058000, + "outcome": "replaced", + "value_ppm": 400000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + }, + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 0 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "2012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7", + "held_ms": 1793664059000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + }, + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664061000, + "fallback_ms": null, + "outcome": "after_deadline", + "value_ppm": 700000 + }, + { + "holder": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0", + "held_ms": null, + "fallback_ms": null, + "outcome": "not_shown", + "value_ppm": 0 + } + ] + } + ], + "statement": null + } + }, + { + "name": "records_contradict", + "description": "holder_c's two records at one instant that differ: both set aside, and holder_c has no line.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02", + "5748443101f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0000001a19eb576d8000001a19eec6558000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000400808ce474aa4b0e6a4b3f94932b8baff0894db0411d917ce1935ed0831c7d577c75be09b8f413d5ae941d9ec4b2b233aa5ca2ad353ba8cfa657c88a4bfee1f82304", + "5748443101f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0000001a19eb576d8000001a19eec6558000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000004004090c4feea0c443cc7f97908abdf0d8532e9511965c84982520f2102022d5aee3bac20cd8d6ab428e00505bafc6a4fc271872ccda1444fd1fe12c5da32da754000" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands", + "set-aside reason=holdings_contradicted", + "set-aside reason=holdings_contradicted" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "record_leaf_count_mismatch", + "description": "A record stating G with five objects, G's receipt given: refused whole, and no line.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000005018ff7c800376d01196e553d8f35c9498f71a23b2f8127a93c570a4684c5b5871758231f68ac8a1645988615381da1b4cf3a84bb8d86254dcd210e89163fb5d80d" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "reject reason=holdings_leaf_count_mismatch" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "record_signature_invalid", + "description": "A bit of the record's signature flipped: refused, and no line.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d03" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "reject reason=holdings_signature_invalid" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "record_at_group_second", + "description": "A record at T0, the start of the second G starts in (T0 + 500 ms): not before it, and on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664000000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664000000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664000000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "record_before_group", + "description": "A record a millisecond before T0, a second before G began: refused whole, and no line.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb49fff000001a19eeb8e7f000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401cfcda120259370381f62de76e2337cd476c8eb91c55e23aacd9cd9987c8a8bb433921455a5ebe3fa2461ea14920107e819b1ad02952bf6a88665724de0063f03" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "reject reason=held_before_group" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "intents_contradict", + "description": "A second claim states object 0 with no fallback and object 1 as the first does: object 0 set aside, object 1 one intent.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"10ba351048ed2a4aba4d743c46caf3da4a10acd87da6712d6099370599ef3b7f\",\"seq\":1,\"sig\":\"62262ca7810a768cc2ec563bbc500dd2752db7c2bc6c8aec7c8af7501ee04d6784e5b10e22ac391c34930697f6ec89840ed76dfe22372c746ebfdbbf0f44da00\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted", + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "set-aside reason=timeliness_contradicted", + "end_ms": null, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "intent_repeated", + "description": "A second claim repeats entry 0: one intent, standing.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"10ba351048ed2a4aba4d743c46caf3da4a10acd87da6712d6099370599ef3b7f\",\"seq\":1,\"sig\":\"f94b1a982fbe4357f102c7ac2daf6b300413cf66e56605ed7b85e1a20caf581247d39c90d5f4922d7e389a0bdd27ad4a4f4f8c3c62b9b7d31e58ed277dbf8f0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted", + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "schedule_not_evidence", + "description": "A schedule of G among the claims: a plan, which this verdict reads nowhere, context_mismatch.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"10ba351048ed2a4aba4d743c46caf3da4a10acd87da6712d6099370599ef3b7f\",\"seq\":1,\"sig\":\"a804292225ee822a30b17df2a92b27f87077568c4ab5aec85873137965b8f2706491859ab9564582fbd55e5ff1621ba89dc4f1fb20943cc591d22b1f61bcc902\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted", + "reject step=6 reason=context_mismatch" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": null + } + }, + { + "name": "statement_line", + "description": "Object 0 for holder_a: its line.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0, + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a" + }, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": { + "outcome": "on_time", + "value_ppm": 1000000 + } + } + }, + { + "name": "statement_no_line", + "description": "Object 0 for holder_c, which has no record: not shown.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0, + "holder": "f80cccdce4ae1c07ae208a2adf99a310ae4207e0306fa0236110b06827bbb8d0" + }, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": { + "outcome": "not_shown", + "value_ppm": 0 + } + } + }, + { + "name": "statement_no_intent", + "description": "Object 3, which no entry states: never on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 3, + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a" + }, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": "reject reason=deadline_not_stated" + } + }, + { + "name": "statement_contradicted", + "description": "Object 0 of intents_contradict: its intents set aside, so no deadline is stated.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"10ba351048ed2a4aba4d743c46caf3da4a10acd87da6712d6099370599ef3b7f\",\"seq\":1,\"sig\":\"62262ca7810a768cc2ec563bbc500dd2752db7c2bc6c8aec7c8af7501ee04d6784e5b10e22ac391c34930697f6ec89840ed76dfe22372c746ebfdbbf0f44da00\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb51530000001a19eec03b0000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401f0474d7f6b4f05ec0233da2a7a891cdb3f967bca5dc0672edb4cf7e028ccbe0cb1b3a375c57d752aee42a7dd9613b94eb5185ffc3b51f76a7532249844de6d02" + ], + "statement": { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0, + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a" + }, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted", + "accepted" + ], + "records": [ + "stands" + ], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "set-aside reason=timeliness_contradicted", + "end_ms": null, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [ + { + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "held_ms": 1793664030000, + "fallback_ms": null, + "outcome": "on_time", + "value_ppm": 1000000 + } + ] + } + ], + "statement": "reject reason=deadline_not_stated" + } + }, + { + "name": "subject_mismatch", + "description": "A statement about H, which is not given: checked against G, the first group.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"620de962df5bf68195104b2dcad70438274e2ee3bff14186f50abccc97141c3f\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3f301f016a07ab7d81621efbd0f785d6ab192b3442bc19b2b2a396db50a994ef2e76015f4ef26c5d762d7c37ac001ff8c6a7aca463371bbfaecdb0f616b9f504\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"9bd7476b1a0202aae27e9877864137c6a71e4cfceb2cd34075ab321eabdbd2ca\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_subject_mismatch" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "signer_mismatch", + "description": "Entries 0 to 2 signed by another of the origin's keys.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"76e5000683f4d658275285f1f4e2c3c6b538cdaa596e891749345c811384874e4b0f65c23564fe544000b5c917d3bd83945b98b7ce11ad6ee584ad6dffd84904\",\"signer_id\":\"did:web:publisher.example#d2\",\"signer_pubkey\":\"204040e364c10f2bec9c1fe500a1cd4c247c89d650a01ed7e82caba867877c21\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_signer_mismatch" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "leaf_last", + "description": "An entry for object 3, the last of four, its envelope not held: accepted.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":3}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"db4f74634e623f802b605b2feaa1f282ec4edc93b2496d1f76ebc8b962c5602cf8aaac8a570114061006739a6ecf7cf362369207f08dbf66a3d0cc0be9a04807\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 3, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "leaf_out_of_range", + "description": "An entry for object 4 of a group of four.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":4}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"08214e6501723df98c5a101c5727b667a98d668574f46d3fc8225d488615e59a5a88c0ca0855e2895c6f98be8ced8b7c6a51fcc8aa346522fff4b1451c101004\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_leaf_out_of_range" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "from_in_group_start_second", + "description": "Entry 1, of use from T0, in the second G starts in (T0 + 500 ms): not before it.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7e291d13122323d9e90573d5e4fcab274c06e8b93d43f53c771c65d49ac6e1a585ad48527f4bd8c4dc0583aeb71b262809559be696393ac0c52be0207ce1b008\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "before_group", + "description": "Of use from a millisecond before T0, a second before G began.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793663999999,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c7ab4a1b5906a67491fe0c533e8b1615040eab417e2a3625743553da266b237bb9a79e40d695e718a8bb527078f106472fa92b0d23586bab953f05851d5ad808\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_before_group" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "content_unchecked", + "description": "Entry 1 with object 2's content hash, object 1's receipt not held: the publisher's word stands.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4dbcc02b7d38d08b98e3b4b020a376bb1070976c7538304bb9cc76549c1b5c0bd72f6e326e872d8d259d2d3e90f85dc614a953b041a345669fd6d7da87946c06\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "content_mismatch", + "description": "The same entry, object 1's receipt held.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4dbcc02b7d38d08b98e3b4b020a376bb1070976c7538304bb9cc76549c1b5c0bd72f6e326e872d8d259d2d3e90f85dc614a953b041a345669fd6d7da87946c06\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_content_mismatch" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "layer_envelope_not_held", + "description": "An entry for object 3, a layer, the envelopes of objects 0 to 2 held and not its: accepted.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d6203000029ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":3}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"db4f74634e623f802b605b2feaa1f282ec4edc93b2496d1f76ebc8b962c5602cf8aaac8a570114061006739a6ecf7cf362369207f08dbf66a3d0cc0be9a04807\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "delivered-verified", + "delivered-verified", + "delivered-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 3, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "on_layer", + "description": "The same entry with object 3's envelope held: a refinement-only capability, refused.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d6203000029ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e696d6167652e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22726566696e6573223a7b2262617365223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c2270726576223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c226c61796572223a317d2c22746172676574223a6e756c6c7db10200003abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74a" + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":3}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"db4f74634e623f802b605b2feaa1f282ec4edc93b2496d1f76ebc8b962c5602cf8aaac8a570114061006739a6ecf7cf362369207f08dbf66a3d0cc0be9a04807\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "delivered-verified", + "delivered-verified", + "delivered-verified", + "delivered-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_on_layer" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "fallback_on_layer", + "description": "Entry 0's fallback object 3 of G, a layer whose envelope is held.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d6203000029ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e696d6167652e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22726566696e6573223a7b2262617365223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c2270726576223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c226c61796572223a317d2c22746172676574223a6e756c6c7db10200003abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74a" + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c\",\"group\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"leaf_index\":3,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b3e5c66f8e36bcc96edb7e985037fb005bdf487470e4608d609ff2940b8fe0fbff23815d30b11748c339917e64cc356dddcb5436c3bc102876efbb405d019a0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "delivered-verified", + "delivered-verified", + "delivered-verified", + "delivered-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_on_layer" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "fallback_group_not_held", + "description": "Entries 0 to 2 with F not given: their fallbacks are not checked, and the publisher's word stands.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "fallback_out_of_range", + "description": "A fallback at position 4 of F, a group of four.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":4,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4be5bdbb546df86d4aaad35438a6fd441066aa7fa6a681409130d66448cbe5358524407fc43bae3237d6bba73a0b6240a6cbaca7db2bc88152482596fc098804\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_fallback_mismatch" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "fallback_mismatch", + "description": "A fallback at F's position 1 with the content hash of F's object 0, F's object 1's receipt held.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":1,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a9bfbe58bdacf329577054b2720596652cbcd6d55e91263d5c9a99d47e7bac32aa7d01800c2a37d19f1220053088d5524b061c71111493c57cd0b7b014c20306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_fallback_mismatch" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "fallback_derived", + "description": "Entries 0 to 2 with F's envelopes held, each derived from G's object at its position: accepted.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000b134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b4" + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2231353035303934353333363832656264663334613735616437383835633264343762373633333839336163613535313864386132383363613736326138666462222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000c245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c5" + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2236303430383431366562373435323465323636373762393561623836393164393330343539326336633132653533616533333562656433633634326138636464222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d6" + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2238626234646130633263623432366264333435383737323565666632623734646536343734613937633839633638366336346461333766643738616333383163222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e7" + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "delivered-verified", + "delivered-verified", + "delivered-verified", + "delivered-verified" + ] + ], + "claims": [ + "accepted" + ], + "records": [], + "intents": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 0, + "intent": "stands", + "end_ms": 1793664070000, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 1, + "intent": "stands", + "end_ms": 1793664060001, + "lines": [] + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "leaf_index": 2, + "intent": "stands", + "end_ms": 1793664066000, + "lines": [] + } + ], + "statement": null + } + }, + { + "name": "fallback_not_derived", + "description": "Entry 2's fallback object 2 of F′, whose envelope derives from G's object 1.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 3, + "group_id": 1, + "root_hash": "a0618c1578c46280203a697b0a52d451548d0e1ce87dfdeeb24088821f672d21", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "3199c43203b85080b7683507d5bdb6e45f7b6e6efdb5d385f4715a93ecd3390d1e667b967a579a97094a0ebf5c08b8c5b1d727fcce02982d4804d6110981a609", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "55df7da454518840dd6fffcea1652432035995be51c58d32c6daf152e83e9311" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000b134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b4" + }, + { + "receipt": { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "55df7da454518840dd6fffcea1652432035995be51c58d32c6daf152e83e9311" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2231353035303934353333363832656264663334613735616437383835633264343762373633333839336163613535313864386132383363613736326138666462222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000c245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c5" + }, + { + "receipt": { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 2, + "content_hash": "b6ee5fd46ae2079600e5df26077fd524482a940c5653d40ee491a4bdc1514e49", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2231353035303934353333363832656264663334613735616437383835633264343762373633333839336163613535313864386132383363613736326138666462222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d6" + }, + { + "receipt": { + "kind": "object", + "track_alias": 3, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ddc685d86977bb09191041e07b15fb79b50ba2cd4f199145c488e184f8f3353c", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": "57414931720100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22646572697665645f66726f6d223a7b226d6f746966223a2238626234646130633263623432366264333435383737323565666632623734646536343734613937633839633638366336346461333766643738616333383163222c226d6f7469665f6361706162696c697479223a227761692e746578742e7a737464222c2272656e6465726572223a22666c6f6f72222c2273657474696e6773223a2233313130636462306463363230633463663639646464366461303038626532396665633131663330333738653937616534356161343639653235346237623764227d2c22746172676574223a6e756c6c7d82020000e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e7" + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"b6ee5fd46ae2079600e5df26077fd524482a940c5653d40ee491a4bdc1514e49\",\"group\":\"798c667d2c26c41b9668557c217df6c3751bc7a57448be893ef0d0cee83be7ab\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e797fbdce101ce7bfce5daac7337b914d40ea02888d8fca50e9d6cbf48da821ac743aa87f1a46f5d44810949b0413b985cbd7db1b11f39a188e85a3122b7bb01\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "delivered-verified", + "delivered-verified", + "delivered-verified", + "delivered-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_fallback_not_derived" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "fallback_no_derived_from", + "description": "Entry 0's fallback G's object 1, whose envelope has no derived_from.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d62030000189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d6203000029ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc" + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e696d6167652e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22726566696e6573223a7b2262617365223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c2270726576223a2266616536633461356166383666396562356339653436666337306463623534653534303535393733323333643439346335326138313464626339363664363831222c226c61796572223a317d2c22746172676574223a6e756c6c7db10200003abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74acd50d356d95cdf62e568eb6ef174f77afd800386098c0f9215981b9e21a427aa2db033b639bc3fc245c84bce51d457da5de063e669ec6ff275f87bfe8104870a8d109316991c9f22a528ab2eb134b73abd40c346c94ccf52d558db5ee164e76aed70f376f97cff8205880b8e1194179a1da023a629ac2fb235b83bbe41c447ca4dd053d659dc5fe265e86bee71f477fa7d008306890c8f1295189b1ea124a72aad30b336b93cbf42c548cb4ed154d75add60e366e96cef72f578fb7e0184078a0d901396199c1fa225a82bae31b437ba3dc043c649cc4fd255d85bde61e467ea6df073f679fc7f0285088b0e9114971a9d20a326a92caf32b538bb3ec144c74a" + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"group\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"leaf_index\":1,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"49f956ca375a9beff3936ae4dd81225b1e6ba5dc9f32886bcbd0e7fe1b65c76085b6c0d64b1d1554625348a3a8877db629998b2a76a75a20c0db63744fedad08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "delivered-verified", + "delivered-verified", + "delivered-verified", + "delivered-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_fallback_not_derived" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "fallback_wai2", + "description": "Entry 0's fallback H's object 1, a WAI2 envelope: renditions a sink selects among, no one rendition valued.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 4, + "group_id": 1, + "root_hash": "f6721d11134309904e0e9b7f4b26c1a6510ff99e8a7f247236a1da4698cedd1d", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "b7ba37ac48040a5d68a31dc11b168b3274043c56d9d6b1c4d879df05d0ce66cf9544d3ecacada89e79fe82ac77dee1a83e0353325fba7789721b138a9cef8e0e", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 4, + "group_id": 1, + "object_id": 0, + "content_hash": "620de962df5bf68195104b2dcad70438274e2ee3bff14186f50abccc97141c3f", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "e5b7b3704b76950f1c753bc425fe757b5c4f93c65e99250c908313e06500c267" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": "57414931920000007b22776169223a22312e30222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e746578742e7a737464227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226279746573227d2c22746172676574223a6e756c6c7d1500000074696d656c696e65737320737472616e6765722030" + }, + { + "receipt": { + "kind": "object", + "track_alias": 4, + "group_id": 1, + "object_id": 1, + "content_hash": "fa59eda649f4da9201e42ea293b1c2bfa6ed294ad78a49906c94fb10a10fafba", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "23f389687ce6ee1a3c992e619aa2f833ac69028edb2b280ad887c2b6c7bad82b" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": "574149327c0000007b22776169223a22312e31222c226d65646961223a2262696e617279222c22696e74656e74223a22696d70726f7665222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e746578742e7a737464222c226b696e64223a226279746573227d5d2c22746172676574223a6e756c6c7d0100000000001500000074696d656c696e65737320737472616e6765722031" + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"fa59eda649f4da9201e42ea293b1c2bfa6ed294ad78a49906c94fb10a10fafba\",\"group\":\"9bd7476b1a0202aae27e9877864137c6a71e4cfceb2cd34075ab321eabdbd2ca\",\"leaf_index\":1,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8242dde59b83aaa12f35084033f957fb3af29c12e6e6405cb8bb2e05cee7fc78906f92f1ba89e8fbb6182264a6e255b81f12037fb8728e369ffeca25a3f7930c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": { + "objects": [ + [ + "inclusion-verified", + "inclusion-verified", + "inclusion-verified", + "inclusion-verified" + ], + [ + "delivered-verified", + "delivered-verified" + ] + ], + "claims": [ + "reject step=6 reason=timeliness_fallback_not_derived" + ], + "records": [], + "intents": [], + "statement": null + } + }, + { + "name": "group_invalid", + "description": "F's signature with a bit flipped: the verdict is refused with jwp-receipts §3.3's reason.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f0fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"340acdaa101c2e355ff07dc660514c971c2de49b9544e7a3cf2d1cef897d7656aadc7d3dce551acac9f6efa567df75e10086d34ae1d9d02c3f21db1bc5284d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [], + "statement": null, + "outcome": "refuse reason=signature_verify_failed" + } + ], + "plans": [ + { + "name": "on_time_first_in_order", + "description": "From T0 over b1, holder_a and the origin: b1's third pass ends at T0 + 21 s, by the deadline, and b1 is first.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + }, + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "order_over_earliest", + "description": "holder_a would deliver at T0 + 100 ms, sooner, but b1 is first in the asker's order and on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "on_time_at_deadline", + "description": "The origin arriving at the deadline itself.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664055000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664060000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "one_ms_late", + "description": "The origin a millisecond late, no source of the fallback by the deadline: 999,800.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664055001, + "sources": [ + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "after_deadline", + "object": "primary", + "source": 0, + "arrival_ms": 1793664060001, + "value_ppm": 999800 + } + ] + } + }, + { + "name": "neighbour_when_carousel_late", + "description": "From T0 + 45 s b1's next three passes are 6 to 8, the last ending at T0 + 71 s, late; holder_a delivers in 100 ms.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664045000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 1, + "arrival_ms": 1793664045100, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "holder_record_expired", + "description": "holder_a's record expires at the planning instant: not a source; the origin.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eb51530000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd0000000000000004013350b331245bab198ac41887c60bcb667d291ecfbb231baeeca322697789ff5c1cc5c919e0c8812a3148e14669e86fdf05908583ea716a884cc659d49b563e04" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664030000, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + }, + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 1, + "arrival_ms": 1793664035000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "holder_record_not_yet", + "description": "holder_a's record is of a millisecond after the planning instant: not yet a source.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4c710000001a19eebb590000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040167bb2fcb65dc49a391aab91ddb876b378dfa74b1d24eca408296d389569a62ae06ff04b5c9d5e056daed95a90521fd4c7c1d4f3dde6a8bfdc9f00d1030f3190f" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664009999, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + }, + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 1, + "arrival_ms": 1793664014999, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "fallback_from_carousel", + "description": "The primary only from the origin six seconds late (300,000); b3 carries F, whose object 0 it delivers by T0 + 21 s: replaced, at 400,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b3" + }, + { + "kind": "origin", + "fetch_ms": 66000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "replaced", + "object": "fallback", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 400000 + } + ] + } + }, + { + "name": "late_primary_beats_fallback", + "description": "The primary a second late from the origin (800,000), the fallback in time on b3: the late primary, and no fallback fetched.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 61000 + }, + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b3" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "after_deadline", + "object": "primary", + "source": 0, + "arrival_ms": 1793664061000, + "value_ppm": 800000 + } + ] + } + }, + { + "name": "late_choice_by_value", + "description": "Two late sources: the origin first in order at 300,000, holder_a later in order at 800,000: holder_a.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 66000 + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 61000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "after_deadline", + "object": "primary", + "source": 1, + "arrival_ms": 1793664061000, + "value_ppm": 800000 + } + ] + } + }, + { + "name": "late_tie_by_order", + "description": "Two late sources at one instant: the first in order.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 61000 + }, + { + "kind": "origin", + "fetch_ms": 61000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "after_deadline", + "object": "primary", + "source": 0, + "arrival_ms": 1793664061000, + "value_ppm": 800000 + } + ] + } + }, + { + "name": "holder_other_record", + "description": "holder_a is asked, and the only record that holds G is holder_b's: holder_a is not a source, and the origin is taken.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "57484431012012cb90ca60e8e5d8daf66e2272d2233e0486d557e8c66141ed8920177d7eb7000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd00000000000000040143d8100db024ccd7bcfba783c828a7d9f72f94b6ade012004451632ad81b0558300aedf73ca0007dfb2904b930c000d72f0995a09f69f232c695561018dfc805" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + }, + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 1, + "arrival_ms": 1793664005000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "fallback_value_tie", + "description": "Entry 0 with its fallback at 600,000, the primary two seconds late from the origin, worth 600,000 then, and the fallback in time on b3: the fallback's value is at least the late primary's, so replaced.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":600000},\"from_ms\":1793664000000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"3fc950efb2cd17b560dc65eb95ce5d02a654e0021aedb88f3a7d7fcd727ad1f58866656a6a33de877da42c89d9854cdd5061dd72b81e1190d73df08a6318a80e\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 62000 + }, + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b3" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "replaced", + "object": "fallback", + "source": 1, + "arrival_ms": 1793664021000, + "value_ppm": 600000 + } + ] + } + }, + { + "name": "fallback_first_in_order", + "description": "The primary only from the origin six seconds late (300,000); the fallback from b3 at T0 + 21 s and from holder_a, later in order, at T0 + 100 ms: b3, the first in order.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e8000000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6000000000000000401fcfa310c5f8ef02dd66fba7c83febe2a3670da8a6ecc148b5f9bdff6f13f95bcb317728a5701b144d95e6a09738a86e7a1241dffa56b7c2c428f9801ee71c106" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b3" + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 100 + }, + { + "kind": "origin", + "fetch_ms": 66000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "replaced", + "object": "fallback", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 400000 + } + ] + } + }, + { + "name": "plan_fallback_at_deadline", + "description": "The primary only from the origin six seconds late (300,000), the fallback from holder_a at the deadline itself: in time, replaced.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e8000000001acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6000000000000000401fcfa310c5f8ef02dd66fba7c83febe2a3670da8a6ecc148b5f9bdff6f13f95bcb317728a5701b144d95e6a09738a86e7a1241dffa56b7c2c428f9801ee71c106" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 66000 + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 60000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "replaced", + "object": "fallback", + "source": 1, + "arrival_ms": 1793664060000, + "value_ppm": 400000 + } + ] + } + }, + { + "name": "arrival_after_end", + "description": "Object 1's hard deadline, the origin a millisecond after it: worth 0, no source.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664055001, + "sources": [ + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 1 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "no_source", + "object": null, + "source": null, + "arrival_ms": null, + "value_ppm": 0 + } + ] + } + }, + { + "name": "no_return_path_no_source", + "description": "Object 1 over b1 alone from T0 + 80.001 s: one pass left of the three needed.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664080001, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 1 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "no_source", + "object": null, + "source": null, + "arrival_ms": null, + "value_ppm": 0 + } + ] + } + }, + { + "name": "origin_alone", + "description": "The origin alone, from T0.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664005000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "every_pass_from_first", + "description": "Object 0 over b1 from its first pass: held after pass 3, at T0 + 21 s.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "publisher_check_passes", + "description": "Each object over b1 from its own from_ms, T0: each on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": "from_ms", + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 1 + }, + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 2 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + }, + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + }, + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "publisher_check_fails", + "description": "Object 0 of use from T0 + 40 s: passes 5 to 7, the last ending at D + 1 s, so a receiver that tunes in then is served late, at 800,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664040000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"677d24ee7fe742a82a453f766dfae5993f6dda5ffc5b55bf99f07ef061a8cfaaeaaa57ac2cb5ff8384384822cb1cbc4f21b1cd53d025b7255afe4204c4e92b0c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": "from_ms", + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "after_deadline", + "object": "primary", + "source": 0, + "arrival_ms": 1793664061000, + "value_ppm": 800000 + } + ] + } + }, + { + "name": "publisher_check_from_t0", + "description": "The same entry planned from T0: a receiver that heard from the first pass is on time.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664040000,\"leaf_index\":0}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"677d24ee7fe742a82a453f766dfae5993f6dda5ffc5b55bf99f07ef061a8cfaaeaaa57ac2cb5ff8384384822cb1cbc4f21b1cd53d025b7255afe4204c4e92b0c\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 0, + "arrival_ms": 1793664021000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "at_after_deadline", + "description": "Planned 999 ms after the deadline, the origin in a millisecond: 800,000.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664060999, + "sources": [ + { + "kind": "origin", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "after_deadline", + "object": "primary", + "source": 0, + "arrival_ms": 1793664061000, + "value_ppm": 800000 + } + ] + } + }, + { + "name": "plan_bearer_undeclared", + "description": "G's schedule on b1 with no transmission claim: set aside, so b1 delivers nothing and the origin is taken.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"383814686d81dca42f2e928df57301ec8015256b404549ac3ff24021c1e6a87e868025e2d304ee29c804aadb46fa8d23d3a5b5ca4bc8fa0b179d7ef9d6af5a0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fa3ebbd87f3f05d7ed41416e97a365c8ce09e174d758c013e91ca18b28290dbf\",\"seq\":1,\"sig\":\"3f9054051ef1ea53bd43c8b3e3f95281006bec7ebf05882ffbae5eaeabd7b09addc1e4c54007cc437ef60d6dd989a8decbafb1bf5a64f6bff7dfb9fc43de9904\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + }, + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "set-aside reason=bearer_not_declared", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "on_time", + "object": "primary", + "source": 1, + "arrival_ms": 1793664005000, + "value_ppm": 1000000 + } + ] + } + }, + { + "name": "plan_bearer_bidirectional", + "description": "A schedule on b2, a two-way instance: set aside, and no source.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"bidirectional\",\"bearer_id\":\"urn:example:bearer:b2\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f1372373e296bc2cc30f4c086705629ab3bb35f4992f6e1daa506db2281953774be4596c9c20773250625ebaf2c2b0024b0f3fa539d39805f90a8fb59e8f4f08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b2\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f1906327f40ac0acfe5111b145e469898f316e47e3db05705c854404df63f93\",\"seq\":1,\"sig\":\"cf0fd457b9bbb4c808572e7e1b334edc9c01384b339ac1556983c2d768d4b63a3c08ce7d0e3624832705118cafd3a025026b2d48e8fa6388a354b71946915d0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"c16297c3a6248198e4f5c2d48be6fd0b431394cf8abcbc486d6c8c909bcafc4a\",\"seq\":2,\"sig\":\"ba7f95438a7c86b93375d27f53a5426a2c37907383f1ef680d2e8ef4a679d037e2ba1a9f83adb03fd07a133d50543b559c4072f67c75ccb63f7979832f7bcb0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b2" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "set-aside reason=schedule_on_bidirectional", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "no_source", + "object": null, + "source": null, + "arrival_ms": null, + "value_ppm": 0 + } + ] + } + }, + { + "name": "wanted_without_intent", + "description": "Object 3, which no entry states.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 5000 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 3 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + "reject reason=deadline_not_stated" + ] + } + }, + { + "name": "plan_at_last_instant", + "description": "Planned at the last instant, the origin a millisecond later: worth 0, no source.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 253402300799999, + "sources": [ + { + "kind": "origin", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": { + "claims": [ + "declared", + "stands", + "declared", + "stands", + "declared", + "stands", + "accepted" + ], + "records": [ + "stands" + ], + "choices": [ + { + "outcome": "no_source", + "object": null, + "source": null, + "arrival_ms": null, + "value_ppm": 0 + } + ] + } + }, + { + "name": "plan_past_last_instant", + "description": "Planned a millisecond past the last instant.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 253402300800000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=instant_invalid" + }, + { + "name": "sources_empty", + "description": "No source.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_bearer_twice", + "description": "b1 twice.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + }, + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_two_origins", + "description": "Two origins.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 1 + }, + { + "kind": "origin", + "fetch_ms": 2 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_holder_twice", + "description": "holder_a twice.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 1 + }, + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 2 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_holder_without_fetch", + "description": "A holder with no fetch_ms.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_fetch_zero", + "description": "A holder with a fetch_ms of 0.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "holder", + "holder": "c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a", + "fetch_ms": 0 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_fetch_past_bound", + "description": "The origin with a fetch_ms of 2^53.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 9007199254740992 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_key_not_hex", + "description": "A holder's key in capitals.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "holder", + "holder": "C050C5637A44FA8629FFF3CCCCE2300CB362A63D99D95FC54145266F4332445A", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_bearer_not_uri", + "description": "A bearer_id with no scheme.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_kind_unknown", + "description": "A source of kind `peer`.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "peer", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "sources_bearer_without_loss_bound", + "description": "b1 with no loss bound or overhead.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": null, + "overhead": null, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "bearer", + "bearer_id": "urn:example:bearer:b1" + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=sources_invalid" + }, + { + "name": "plan_loss_bound_invalid", + "description": "A loss bound of a million parts per million.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 1000000, + "overhead": 2, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=loss_bound_invalid" + }, + { + "name": "plan_overhead_invalid", + "description": "An overhead of 3.", + "groups": [ + { + "group": { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "5116003ac503950c81dfc052a39bc612253c26c47365002c7e8cc4417d832854", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "d98365c5b17c464dd12fd265dafafd865e6bdb35cb2c8c74edde350141351b3d339fd1c0335284d8de6c732470a25fb50c3ba9de7e162fad3cbf27de2787ab0b", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "b6cff9df0cc7e095f5a791af0005891f729d2ba6653329d54e43a50ee727dc2a", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "ebb41fe2c242ef9ac96097b604f21edf4909c38c59de8acb7ee5ba3bf0a10f84", + "44947b3c416d6c6c25df1a61644b6e0f5c17e3dcb0656158148246f84ad6bfc6" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 2, + "content_hash": "60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "9ed9722b13b5e402b6cf5470334373c69e98b67ec6585699bac138556185a676", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 3, + "content_hash": "8bb4da0c2cb426bd34587725eff2b74de6474a97c89c686c64da37fd78ac381c", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "a74ab6d28619c8f9e790515335203449d15bca68790a4f5f391948802c880598", + "5321faf206eaac0f5311329de0719e62ad6f251872273fb558699b4ab5c5d501" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + }, + { + "group": { + "kind": "group", + "track_alias": 2, + "group_id": 1, + "root_hash": "ba334ac4d539a1c0427a40d60a74c810f49bd442713792413c3c548daa737895", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-11-03T00:00:00.500Z", + "group_end": "2026-11-03T00:01:00Z", + "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", + "signer_id": "did:web:publisher.example#d1", + "sig": "f1fc64ae9d0c7e2ec48c7014bde8b3b2ae74534aa95a9b8f3425d7ed2b4cc9c48c22f38752768d20df46af61ea41af2d7db4d88723cb23092a05fb3728a8550f", + "parent_receipt_hash": null + }, + "objects": [ + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 0, + "content_hash": "88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "03f962e3d88a5020626189c6859faead4fff1e8aed23da07dc3cca73b9f9164c", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 1, + "content_hash": "e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d64c0598e9d303636a1027130702454185ec050052bafbad19832de1609fd519", + "12e951cc2da4d22bc13d31e861bd1ea3c1dd7d609de2b974727d382fb973e4bc" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 2, + "content_hash": "72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "d01cb552784a637f37f219adb1df04092b137f8cdc114c77500a71bdd3fcf1ab", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + "envelope": null + }, + { + "receipt": { + "kind": "object", + "track_alias": 2, + "group_id": 1, + "object_id": 3, + "content_hash": "fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468", + "joules_micro": 0, + "origin": "", + "merkle_proof": { + "siblings": [ + "16b40b2636aa92631fc390988fde3d962498778aad3f5aa24e65df9e5488e442", + "7acc29c87b1f779c5086302849936c6a73fbe7ef78a815ab69617032265f301b" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + "envelope": null + } + ] + } + ], + "claims": [ + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"378a41dba9899dfb65cd0447119c51084d7ef202782801592077139cd631bbf590ebdc3914008223fb4688594ba0f4eb9cd4467c78ec17333c5e73f2737e0c0f\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"fcbe9897a9b52d44bc1849c3dd89e7ee5d9ffe9d8fd8656c4b3757aec31a6f1f\",\"seq\":1,\"sig\":\"e3e36022b5d6299d726faeec0b00e0f4da050e4d46cd5d0c847cf2ad91203c7cca9dded7fb3c7bd67e81d72fd51ec9b58234dddd75aa8703f7033a5c882eec0a\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b1\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"2f9e2fad9f6522ea7509a3c4d50127a116f633e744a67f5a886fe26aac6972e6\",\"seq\":2,\"sig\":\"212a33b2db61bdce2b2d141877042b50e06432efd4679749195f72bd4f4cf79ffccaf772e9414b00a7fc6f253e06c19cb854ac60ebfa24789775093a00e1e103\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b1\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"1f4811e2fc9cbe8800639eb35dc569fa533fa9f0c4fd820a0c28e3d7684396e1\",\"seq\":3,\"sig\":\"eaff8e659e3ec69be7c4b816ed50751574d07f4aa85871de4e148ea9fcb3be8d3588104538a3c6a0cfdd19d1703a89d5368177f2d8c023914c60ad87c42c9803\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"transmitted\",\"bearer\":\"unidirectional\",\"bearer_id\":\"urn:example:bearer:b3\",\"energy\":null},\"class\":\"transmission\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"72c2fc2d4d41a2a332cc6eccc4686276373f1c5f41769e547f76f55d16f2de06\",\"seq\":4,\"sig\":\"6117eb8057409efad1e605fc488e7174df3b163c70fa65da0d41053986ba76665580428119307b7a7efd935c69651685fdb079ca854ec3c8a0221485b90a6c04\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"scheduled\",\"bearer_id\":\"urn:example:bearer:b3\",\"objects\":[{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":0,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"e47047301c6d03c8d51af5ba2e548f8cef04e1546166f3a379f338f1fb524233\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":1,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":2,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2},{\"content_hash\":\"fc2a85938172f09d90f53b6e69972be4355e6d6589bd8234e66256a481c4a468\",\"count\":10,\"duration_ms\":1000,\"esi\":\"advance\",\"fec\":\"raptorq\",\"first_ms\":1793664000000,\"leaf_index\":3,\"oti\":{\"alignment\":4,\"source_blocks\":1,\"sub_blocks\":1,\"symbol_size\":128,\"transfer_length\":1024},\"period_ms\":10000,\"repair\":2}]},\"class\":\"schedule\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"472e141e68e160818024a150486d12e640a81aee7f55204827a39e2235c73bcd\",\"seq\":5,\"sig\":\"44cf19edf1e5282a715351e37aa2e584eec780867ba5f6cdfe155f8f20e8e524039d2836930893a14117155c81bf10a34e5b5ee02223339f5704b8a0fee06d08\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"subject_type\":\"receipt\"}", + "{\"body\":{\"attests\":\"valued\",\"objects\":[{\"by_ms\":1793664060000,\"content_hash\":\"fae6c4a5af86f9eb5c9e46fc70dcb54e54055973233d494c52a814dbc966d681\",\"decay\":[{\"at_ms\":1793664062000,\"value_ppm\":600000},{\"at_ms\":1793664070000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"88f129f8f4f586ce7c9f41e523f9da5b845184b140f834197163cbe4769f398b\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":0,\"value_ppm\":400000},\"from_ms\":1793664000000,\"leaf_index\":0},{\"by_ms\":1793664060000,\"content_hash\":\"1505094533682ebdf34a75ad7885c2d47b7633893aca5518d8a283ca762a8fdb\",\"decay\":[{\"at_ms\":1793664060001,\"value_ppm\":0}],\"fallback\":null,\"from_ms\":1793664000000,\"leaf_index\":1},{\"by_ms\":1793664060000,\"content_hash\":\"60408416eb74524e26677b95ab8691d9304592c6c12e53ae335bed3c642a8cdd\",\"decay\":[{\"at_ms\":1793664061000,\"value_ppm\":700000},{\"at_ms\":1793664065000,\"value_ppm\":700000},{\"at_ms\":1793664066000,\"value_ppm\":0}],\"fallback\":{\"content_hash\":\"72af9b34c7bb604b4cb1b2de435852b7e7102a478a10bf49b6d0fcb44ebe196a\",\"group\":\"acad230ea19b86961195637127157e6eebff5603d0d5472c4df37f238045fcf6\",\"leaf_index\":2,\"value_ppm\":1000000},\"from_ms\":1793664000000,\"leaf_index\":2}]},\"class\":\"timeliness\",\"issued_at\":\"2026-11-03T00:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"78753867a6bef2b1fb8393e46c63e2e2251f617b17986e9111557d6eefdd1b4a\",\"seq\":6,\"sig\":\"4a11577c8baecfe06eb8c906e7e441f4fab0b6226d5f609251fee357bf56f859526be8e24a7cc7b93aab9f33bf123a809983c7e4729d42d5f87c23e755805306\",\"signer_id\":\"did:web:publisher.example#d1\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd\",\"subject_type\":\"receipt\"}" + ], + "records": [ + "5748443101c050c5637a44fa8629fff3cccce2300cb362a63d99d95fc54145266f4332445a000001a19eb4a000000001a19eeb8e80000000010fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd000000000000000401e2cbf64f5bfcb254418b4aa615fa7ce4527285eeacb78f979bcd787e6ff469cc7b4a2997f7d225529191f11ad500e2a486ea46bb377a966cc1cacf768a75eb01" + ], + "loss_ppm": 500000, + "overhead": 3, + "at_ms": 1793664000000, + "sources": [ + { + "kind": "origin", + "fetch_ms": 1 + } + ], + "wanted": [ + { + "group": "0fcab9a35f1480c3e84a4db478f3a6a69ebba9b0ef8541fe395c1382ede498bd", + "index": 0 + } + ], + "outcome": "refuse reason=overhead_invalid" + } + ] +} diff --git a/wai/live-conformance/timeliness_verify.py b/wai/live-conformance/timeliness_verify.py new file mode 100644 index 000000000..0367b6c62 --- /dev/null +++ b/wai/live-conformance/timeliness_verify.py @@ -0,0 +1,871 @@ +#!/usr/bin/env python3 +"""Independent verifier of the timeliness corpus (extensions/timeliness.md). + +Written from the extension's text. It shares no code with wai-rs, which generates the corpus, +and never runs it. It takes from the second implementations of the texts this extension builds +on what they define: group and object receipts from the JWP corpus's +(`../jwp-conformance/jwp_verify.py`, jwp-receipts §2.2, §3); a claim's steps 1 to 5 from the +claim corpus's (`../claim-conformance/claim_verify.py`, jwp-receipts §3.1), whose step 4 holds +§4.2's rules; a transmission claim's step 6, a schedule's, and a receiver's passes from the +carousel corpus's (`carousel_verify.py`: bearer-receipts §4.3, carousel §4.3 and §7); a holdings +record's form, signature and holdings from the holdings corpus's (`holdings_verify.py`, holdings +§4.4, §5.4); and a WAI1 envelope's manifest from the staged corpus's reader (SPEC §2, §3). +Everything else this extension adds is written here: + +- §4.3: a timeliness claim against its group, the object receipts and envelopes held, and each + fallback's group and object receipt; +- §5: an entry's value at an instant, and its end; +- §6: the intents that stand, the records that stand and the held-at statements they give + (`held_from_records`, with §2's `before_group`), each intent's lines (`lines`), and a + statement offered; +- §7: the plan's inputs, each source's arrival, and the choice. + +For every case it requires the outcome the corpus states, field for field; that every reason +of §9's table and every outcome of §6.3's appears in the corpus; then it mutates copies of the +corpus, one defect each, and requires every copy to fail; and it drops each of its own checks in +turn and requires the corpus to catch the weakened verifier. A bound no vector carries is checked +directly. + + python3 timeliness_verify.py + +Exit status 0 only if every case verifies, every mutated copy fails, every weakened verifier is +caught and every direct check holds. Python 3.8 or later; the `cryptography` package, which the +claim verifier imports. +""" + +import copy +import json +import os +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +for d in ("claim-conformance", "jwp-conformance"): + sys.path.insert(0, os.path.join(HERE, "..", d)) +import claim_verify as CV # noqa: E402 +import jwp_verify as JV # noqa: E402 +import carousel_verify as KV # noqa: E402 +import holdings_verify as HV # noqa: E402 + +SV = CV.SV # the staged corpus's strict WAI1 reader, which the claim verifier loads + +EXTENSION = os.path.join(HERE, "..", "extensions", "timeliness.md") +SPEC = os.path.join(HERE, "..", "SPEC.md") +JWP_RECEIPTS = os.path.join(HERE, "..", "extensions", "jwp-receipts.md") +TELEMETRY = os.path.join(HERE, "..", "extensions", "delivery-telemetry.md") +FULL = 1_000_000 # §2: a value in parts per million of the full value +LAST_INSTANT = 253_402_300_799_999 # §2: 9999-12-31T23:59:59.999Z +MAX_INT = (1 << 53) - 1 + +# A weakened run drops one of these checks (see `WEAKENINGS`); None checks everything. +DROPPED = None + + +def drops(name): + return DROPPED == name + + +def text_of(path): + with open(path, encoding="utf-8") as f: + return f.read() + + +def table_rows(text, heading): + """The first backticked cell of each row of the table under `heading`, up to the next heading + of its level or above.""" + at = text.index("\n" + heading) + level = heading.split(" ")[0] + ends = [text.find("\n" + h + " ", at + 1) for h in ("#" * n for n in range(2, len(level) + 1))] + ends = [e for e in ends if e >= 0] + rows = text[at:min(ends) if ends else len(text)].splitlines() + return [r.split("`")[1] for r in rows if r.startswith("| `")] + + +def reasons_table(): + """§9's codes, in order, each with the section the table says raises it.""" + text = text_of(EXTENSION) + at = text.index("\n## 9. Reasons") + end = text.find("\n## ", at + 1) + rows = text[at:end].splitlines() + return [(r.split("`")[1], r.split("|")[2].strip()) for r in rows if r.startswith("| `")] + + +def outcomes_table(): + """§6.3's outcomes, in order.""" + return table_rows(text_of(EXTENSION), "### 6.3 Lines") + + +def refinement_only(): + """SPEC §5, *Refinement capabilities*: the capabilities that are refinement-only.""" + return set(table_rows(text_of(SPEC), "### Refinement capabilities (staged delivery)")) + + +REFINEMENT_ONLY = refinement_only() + + +def need(ok, reason): + """jwp-receipts §3.1 step 6.""" + if not ok: + raise CV.Reject(6, reason) + + +# ------------------------------------------------------------------ what the verifier holds + +# Steps 1 to 4 of a claim, a group's steps 1 and 2 with its objects', and a record's reading are +# pure in their bytes: each is computed once and kept, which nothing a weakened run drops reads. +_CLAIMS, _GROUPS, _RECORDS = {}, {}, {} + + +def claim_steps(wire): + """jwp-receipts §3.1 steps 1 to 4 (claim_verify.py). Returns the claim; raises CV.Reject.""" + if wire not in _CLAIMS: + try: + _CLAIMS[wire] = CV.verify_claim(wire) + except CV.Reject as r: + _CLAIMS[wire] = r + v = _CLAIMS[wire] + if isinstance(v, CV.Reject): + raise v + return v + + +def read_record(b): + """holdings §4.4 (holdings_verify.py). Returns the record; raises HV.Refused.""" + if b not in _RECORDS: + try: + _RECORDS[b] = HV.read(b) + except HV.Refused as r: + _RECORDS[b] = r + v = _RECORDS[b] + if isinstance(v, HV.Refused): + raise v + return v + + +class Group: + """A group given, after jwp-receipts §3 steps 1 and 2, with its object receipts and envelopes.""" + + def __init__(self, item): + self.receipt = JV.read_group(item["group"]) + JV.verify_group(self.receipt) + self.link = JV.link(self.receipt).hex() + self.count = self.receipt["leaf_count"] + self.signer = self.receipt["signer_pubkey"] + self.start = JV.seconds(self.receipt["group_start"]) + self.verdicts = [] # bearer-receipts §6.2 step 2, one for each object receipt given + self.pairs = [] # [(object receipt, envelope or None)] for each that reads + self.included = {} # position -> content hash of each object receipt that passes step 5 + self.envelopes = {} # content hash -> envelope bytes held + for o in item["objects"]: + try: + ob = JV.read_object(o["receipt"]) + except JV.Refuse as r: + self.verdicts.append("reject reason=" + r.reason) + continue + env = None if o["envelope"] is None else bytes.fromhex(o["envelope"]) + self.pairs.append((ob, env)) + try: + if env is None: + JV.inclusion(ob, self.receipt) + self.verdicts.append("inclusion-verified") + else: + JV.accept(ob, self.receipt, env) + self.verdicts.append("delivered-verified") + except JV.Refuse as r: + self.verdicts.append("reject reason=" + r.reason) + try: + JV.inclusion(ob, self.receipt) + self.included[ob["object_id"]] = ob["content_hash"].hex() + except JV.Refuse: + pass + if env is not None: + self.envelopes[JV.blake3(JV.OBJECT + env).hex()] = env + + +def read_groups(items): + """§6.2 step 1: each group under jwp-receipts §3 steps 1 and 2, and each of its object receipts + as bearer-receipts §6.2 step 2 checks it. Raises JV.Refuse for a group that fails.""" + out = [] + for item in items: + key = json.dumps(item, sort_keys=True) + if key not in _GROUPS: + try: + _GROUPS[key] = Group(item) + except JV.Refuse as r: + _GROUPS[key] = r + g = _GROUPS[key] + if isinstance(g, JV.Refuse): + raise g + out.append(g) + return out + + +def manifest(env): + """A WAI1 envelope's manifest (SPEC §2, §3), or None for bytes that are not one.""" + try: + m, _, _ = SV.read_wai1(env) + except SV.NotWai1: + return None + return m + + +def is_layer(env): + """§4.3 step 6: a WAI1 whose capability is refinement-only (SPEC §5).""" + m = manifest(env) + return m is not None and m["model_requirement"]["capability"] in REFINEMENT_ONLY + + +def derived_from(env, motif): + """§4.3 step 8: a WAI1 whose manifest carries `derived_from` (SPEC §7.1, *Derived renditions*: + its four members in their forms) with `motif` the primary's content hash. A WAI2 is none.""" + m = manifest(env) + df = None if m is None else m.get("derived_from") + return (isinstance(df, dict) and all(isinstance(df.get(k), str) and df[k] for k in + ("motif", "motif_capability", "renderer", "settings")) + and CV.is_hex(df["motif"], 32) and CV.is_hex(df["settings"], 32) and df["motif"] == motif) + + +# ------------------------------------------------------------------ §2: the held-at statement + +def before_group(word_s, start): + """§2: a held-at statement is before its group when the whole seconds of the time its word + states, any fraction dropped (`word_s`), are below the seconds jwp-receipts §2.4.3 reads from + the group's `group_start` (`start`, None where it is not a date-time, which nothing is before). + §4.3 step 4 reads an entry's `from_ms` by the same rule.""" + if start is None: + return False + return word_s <= start if drops("same_second") else word_s < start + + +# ------------------------------------------------------------------ §4.3: step 6 + +def check_timeliness(c, g, groups): + """§4.3 against the group `g` the claim is checked against, which passed jwp-receipts §3 steps + 1 and 2, and every group given (`groups`, by link hash) with the object receipts and envelopes + held under it.""" + need(g.start is not None, "context_invalid") + entries = c["body"]["objects"] + fallbacks = [e["fallback"] for e in entries if e["fallback"] is not None] + envelopes = {} + for x in groups.values(): + envelopes.update(x.envelopes) + need(drops("subject") or g.link == c["subject"], "timeliness_subject_mismatch") + need(drops("signer") or g.signer == c["signer_pubkey"], "timeliness_signer_mismatch") + need(drops("range") or all(e["leaf_index"] < g.count for e in entries), "timeliness_leaf_out_of_range") + need(drops("before") or not any(before_group(e["from_ms"] // 1000, g.start) for e in entries), + "timeliness_before_group") + need(drops("content") or all(g.included.get(e["leaf_index"], e["content_hash"]) == e["content_hash"] + for e in entries), "timeliness_content_mismatch") + named = [e["content_hash"] for e in entries] + [f["content_hash"] for f in fallbacks] + need(drops("layer") or not any(h in envelopes and is_layer(envelopes[h]) for h in named), "timeliness_on_layer") + for f in fallbacks: + fg = groups.get(f["group"]) + if fg is not None and not drops("fallback_position"): + need(f["leaf_index"] < fg.count and fg.included.get(f["leaf_index"], f["content_hash"]) == f["content_hash"], + "timeliness_fallback_mismatch") + for e in entries: + f = e["fallback"] + if f is not None and f["content_hash"] in envelopes and not drops("derived"): + need(derived_from(envelopes[f["content_hash"]], e["content_hash"]), "timeliness_fallback_not_derived") + + +# ------------------------------------------------------------------ §5: value over time + +def value(entry, h): + """§5.1: the entry's value at the instant h, floored.""" + by = entry["by_ms"] + if h <= by: + return FULL + pts = [(by, FULL)] + [(p["at_ms"], p["value_ppm"]) for p in entry["decay"]] + for (ta, va), (tb, vb) in zip(pts, pts[1:]): + if ta < h <= tb: + num, den = va * (tb - h) + vb * (h - ta), tb - ta + return (2 * num + den) // (2 * den) if drops("floor") else num // den + return 0 + + +def end(entry): + """§5.2: the `at_ms` of its last point.""" + return entry["decay"][-1]["at_ms"] + + +# ------------------------------------------------------------------ §6: judging delivery + +def claims_step(wires, groups, plan): + """§6.2 step 2, and §7.2's (`plan`): each claim under jwp-receipts §3.1 steps 1 to 5, each + signer's previous claim the last of its claims held before it, then step 6 against the group + whose link hash is its subject, or the first group. Returns each claim's label, and each + claim accepted (None for one refused).""" + by_link = {} + for g in groups: + by_link.setdefault(g.link, g) + held, labels, accepted = {}, [], [] + for wire in wires: + try: + c = claim_steps(wire) + except CV.Reject as r: + labels.append(f"reject step={r.step} reason={r.reason}") + accepted.append(None) + continue + previous = held.get(c["signer_pubkey"]) + held[c["signer_pubkey"]] = c + try: + CV.check_chain(c, previous) + g = by_link.get(c["subject"], groups[0] if groups else None) + if c["class"] == "timeliness": + need(g is not None, "timeliness_subject_mismatch") + check_timeliness(c, g, by_link) + elif plan and c["class"] == "transmission" and g is not None: + KV.check_transmission(c, g.receipt) + elif plan and c["class"] == "schedule" and g is not None: + KV.check_schedule(c, g.receipt, g.pairs) + elif not drops("context"): + raise CV.Reject(6, "context_mismatch") + except CV.Reject as r: + labels.append(f"reject step={r.step} reason={r.reason}") + accepted.append(None) + continue + labels.append("accepted") + accepted.append(c) + return labels, accepted + + +def intents_step(accepted, groups): + """§6.2 step 3: the entries of the accepted claims by group and `leaf_index`, in the order of + the groups given and then of `leaf_index`: [(group, leaf_index, entry, or None when set + aside)].""" + stated = {} + for c in accepted: + if c is not None and c["class"] == "timeliness": + for e in c["body"]["objects"]: + stated.setdefault((c["subject"], e["leaf_index"]), []).append(e) + out, seen = [], set() + for g in groups: + if g.link in seen: + continue + seen.add(g.link) + for i in sorted(i for link, i in stated if link == g.link): + es = stated[(g.link, i)] + stands = drops("intent_contradiction") or all(e == es[0] for e in es) + out.append((g.link, i, es[0] if stands else None)) + return out + + +def records_step(records, groups): + """§6.2 step 4: each record as holdings §4.4 reads and verifies it, refused whole when its + entry for a group given misstates the leaf count or is before the group, two of one holder at + one `as_of_ms` that differ set aside. Returns each record's label and the records that are + not refused (index -> record).""" + by_link = {g.link: g for g in groups} + labels, kept = [], {} + for k, hexed in enumerate(records): + try: + rec = read_record(bytes.fromhex(hexed)) + mine = [(by_link[g.hex()], n) for g, n, _ in rec[3] if g.hex() in by_link] + if not drops("leaf_count") and any(g.count != n for g, n in mine): + raise HV.Refused("holdings_leaf_count_mismatch") + if not drops("held_before") and any(before_group(rec[1] // 1000, g.start) for g, _ in mine): + raise HV.Refused("held_before_group") + kept[k] = rec + labels.append("stands") + except HV.Refused as r: + labels.append("reject reason=" + r.reason) + at = {} + for k, rec in kept.items(): + at.setdefault((rec[0], rec[1]), []).append(k) + for ks in at.values(): + if len({HV.digest(kept[k]) for k in ks}) > 1 and not drops("record_contradiction"): + for k in ks: + labels[k] = "set-aside reason=holdings_contradicted" + return labels, kept + + +def held_from_records(standing, group, index): + """§6.2 step 5: the held-at statements the records that stand give for object `index` of + `group` (a link hash in hexadecimal): (holder, group, index, instant) for each record that holds + it (holdings §5.4), its instant the record's `as_of_ms`.""" + g = bytes.fromhex(group) + return [(rec[0].hex(), group, index, rec[1]) for rec in standing if HV.holds(rec, g, index) is None] + + +def has_entry(rec, group): + return any(g.hex() == group for g, _, _ in rec[3]) + + +def line_holders(group, entry, standing): + """§6.3: the holders with a record that stands and has an entry for the intent's group or its + fallback's group, in the order of their first such record.""" + fb = entry["fallback"] + out = [] + for rec in standing: + h = rec[0].hex() + if h not in out and (drops("line_holders") or has_entry(rec, group) + or (fb is not None and has_entry(rec, fb["group"]))): + out.append(h) + return out + + +def grade(entry, p, f): + """§6.3's table, the first outcome that holds, for a holder whose least instants for the + primary and the fallback are p and f (None where none).""" + by, fb = entry["by_ms"], entry["fallback"] + if p is not None and (p < by if drops("deadline_inclusive") else p <= by): + return "on_time", FULL + # §5.3: what arrived after the deadline grades nothing, so a later primary of more value + # does not displace a fallback held by then. + graded_late = drops("sink_rule") and None not in (p, fb) and value(entry, p) > fb["value_ppm"] + if f is not None and (f <= by or drops("fallback_deadline")) and not graded_late: + return "replaced", fb["value_ppm"] + if p is not None: + return "after_deadline", value(entry, p) + return "not_shown", 0 + + +def lines(entry, holders, primary, fallback): + """§6.3: an intent's line for each of `holders` (keys in hexadecimal), in increasing order of + key bytes, from that holder's own held-at statements for its primary and its fallback.""" + def least(statements, holder, latest=False): + instants = [s[3] for s in statements if drops("own_statements") or s[0] == holder] + if not instants: + return None + return max(instants) if latest or drops("least") else min(instants) + + out = [] + for h in (holders if drops("key_order") else sorted(holders, key=bytes.fromhex)): + p, f = least(primary, h), least(fallback, h, drops("least_fallback")) + outcome, v = grade(entry, p, f) + out.append({"holder": h, "held_ms": p, "fallback_ms": f, "outcome": outcome, "value_ppm": v}) + return out + + +def intent_lines(link, entry, standing): + fb = entry["fallback"] + primary = held_from_records(standing, link, entry["leaf_index"]) + fallback = [] if fb is None else held_from_records(standing, fb["group"], fb["leaf_index"]) + return lines(entry, line_holders(link, entry, standing), primary, fallback) + + +def verdict(case): + """§6: the verdict, or `refuse reason=R` for a group that fails.""" + try: + groups = read_groups(case["groups"]) + except JV.Refuse as r: + return "refuse reason=" + r.reason + labels, accepted = claims_step(case["claims"], groups, plan=False) + intents = intents_step(accepted, groups) + rlabels, kept = records_step(case["records"], groups) + standing = [kept[k] for k in sorted(kept) if rlabels[k] == "stands"] + out, found = [], {} + for link, i, entry in intents: + ls = [] if entry is None else intent_lines(link, entry, standing) + found[(link, i)] = (entry, ls) + out.append({"group": link, "leaf_index": i, + "intent": "stands" if entry is not None else "set-aside reason=timeliness_contradicted", + "end_ms": None if entry is None else end(entry), "lines": ls}) + statement = None + s = case["statement"] + if s is not None: + entry, ls = found.get((s["group"], s["index"]), (None, [])) + if entry is None and not drops("no_intent"): + statement = "reject reason=deadline_not_stated" + else: + line = next((x for x in ls if x["holder"] == s["holder"]), None) + statement = ({"outcome": "not_shown", "value_ppm": 0} if line is None + else {"outcome": line["outcome"], "value_ppm": line["value_ppm"]}) + return {"objects": [g.verdicts for g in groups], "claims": labels, "records": rlabels, "intents": out, + "statement": statement} + + +# ------------------------------------------------------------------ §7: planning + +def sources_valid(sources, loss, h): + """§7.1: the sources, each exactly a bearer instance, a holder or the origin.""" + if not isinstance(sources, list) or (not sources and not drops("sources_empty")): + return False + bearers, holders, origins = set(), set(), 0 + for s in sources: + if not isinstance(s, dict): + return False + kind = s.get("kind") + fetch = s.get("fetch_ms") + if kind != "bearer" and not (drops("sources_fetch") or (CV.is_int(fetch) and fetch >= 1)): + return False + if kind == "bearer": + if set(s) != {"kind", "bearer_id"} or not (drops("sources_uri") or CV.is_uri(s["bearer_id"])): + return False + if s["bearer_id"] in bearers and not drops("sources_twice"): + return False + bearers.add(s["bearer_id"]) + elif kind == "holder": + if set(s) != {"kind", "holder", "fetch_ms"} or not (drops("sources_key") or CV.is_hex(s["holder"], 32)): + return False + if s["holder"] in holders and not drops("sources_twice"): + return False + holders.add(s["holder"]) + elif kind == "origin": + if set(s) != {"kind", "fetch_ms"}: + return False + origins += 1 + elif not drops("sources_kind"): + return False + if origins > 1 and not drops("sources_twice"): + return False + return not (bearers and (loss is None or h is None)) or drops("sources_loss") + + +def plan_inputs(loss, h, t, sources): + """§7.1's checks, in their order: the reason the plan is refused, or None.""" + if loss is not None and not drops("loss_bound") and not (CV.is_int(loss) and loss <= 999_999): + return "loss_bound_invalid" + if h is not None and not drops("overhead") and not (CV.is_int(h) and h <= 2): + return "overhead_invalid" + if t != "from_ms" and not drops("instant") and not (CV.is_int(t) and t <= LAST_INSTANT): + return "instant_invalid" + if not sources_valid(sources, loss, h): + return "sources_invalid" + return None + + +def schedules_step(labels, accepted): + """§7.2: the declarations (bearer-receipts §6.2 step 4) and the schedules (carousel §6.2 step + 4), each of its group. Relabels the claims; returns the schedules that stand, by (group, + bearer_id).""" + def key(c): + return c["body"]["bearer_id"] if drops("per_group") else (c["subject"], c["body"]["bearer_id"]) + + def by_instance(cls): + out = {} + for i, c in enumerate(accepted): + if c is not None and c["class"] == cls: + out.setdefault(key(c), []).append(i) + return out + + declared, contradicted = {}, set() + for k, idx in by_instance("transmission").items(): + bodies = [accepted[i]["body"] for i in idx] + same = all(b == bodies[0] for b in bodies) + if same: + declared[k] = bodies[0]["bearer"] + else: + contradicted.add(k) + for i in idx: + labels[i] = "declared" if same else "set-aside reason=bearer_contradicted" + schedules = {} + for k, idx in by_instance("schedule").items(): + bodies = [accepted[i]["body"] for i in idx] + if any(b != bodies[0] for b in bodies): + aside = "schedule_contradicted" + elif k in contradicted: + aside = "bearer_contradicted" + elif k not in declared and not drops("undeclared"): + aside = "bearer_not_declared" + elif declared.get(k) == "bidirectional" and not drops("bidirectional"): + aside = "schedule_on_bidirectional" + else: + aside = None + for i in idx: + labels[i] = "stands" if aside is None else "set-aside reason=" + aside + if aside is None: + schedules[(accepted[i]["subject"], accepted[i]["body"]["bearer_id"])] = bodies[0] + return schedules + + +def standing_at(kept, rlabels, s): + """§7.2: the records that stand at s, by holdings §5.1 to §5.3 over those §6.2 step 4 did not + refuse, and not set aside there.""" + live = [rec for k, rec in kept.items() if drops("record_at_s") or rec[1] <= s < rec[2]] + out = [] + for holder in {rec[0] for rec in live}: + mine = [rec for rec in live if rec[0] == holder] + latest = max(rec[1] for rec in mine) + top = [rec for rec in mine if rec[1] == latest] + if len({HV.digest(rec) for rec in top}) == 1: + out.append(top[0]) + aside = {HV.digest(kept[k]) for k in kept if rlabels[k] != "stands"} + return [rec for rec in out if HV.digest(rec) not in aside] + + +def arrival(src, group, index, s, ctx): + """§7.2: a source's arrival of object `index` of `group` planned from s, or None.""" + kind = src["kind"] + if kind == "origin": + return s + src["fetch_ms"] + if kind == "holder": + recs = standing_at(ctx["kept"], ctx["rlabels"], s) + held = any((drops("holder_record") or rec[0].hex() == src["holder"]) + and HV.holds(rec, bytes.fromhex(group), index) is None for rec in recs) + return s + src["fetch_ms"] if held else None + if kind != "bearer": + return None + body = ctx["schedules"].get((group, src["bearer_id"])) + e = None if body is None else next((x for x in body["objects"] if x["leaf_index"] == index), None) + if e is None: + return None + blocks = sum(n for _, n in CV.schedule_blocks(e)) + p = KV.plan({"entry": e, "loss_ppm": ctx["loss"], "overhead": ctx["h"], "at_ms": s, "held": [0] * blocks}) + return p["complete_ms"] + + +def choose(entry, primary, fallback): + """§7.3 for an object whose intent stands, from each source's arrivals.""" + by, fb = entry["by_ms"], entry["fallback"] + + def choice(outcome, obj, i, arrived, v): + return {"outcome": outcome, "object": obj, "source": i, "arrival_ms": arrived, "value_ppm": v} + + timely = [i for i, a in enumerate(primary) if a is not None and a <= by] + if timely: + i = min(timely, key=lambda j: (primary[j], j)) if drops("plan_order") else timely[0] + return choice("on_time", "primary", i, primary[i], FULL) + late = [(value(entry, a), i) for i, a in enumerate(primary) if a is not None] + best = max((v for v, _ in late), default=0) + # Rule 2: a fallback of at least the best late value, by the deadline, first in the asker's order. + at_least = fb is not None and (fb["value_ppm"] > best if drops("fallback_tie") else fb["value_ppm"] >= best) + if fb is not None and (at_least or drops("fallback_value")): + in_time = [i for i, a in enumerate(fallback) + if a is not None and (a < by if drops("plan_fallback_deadline") else a <= by)] + if in_time and drops("fallback_order"): + in_time.sort(key=lambda j: (fallback[j], j)) + i = in_time[0] if in_time else None + if i is not None: + return choice("replaced", "fallback", i, fallback[i], fb["value_ppm"]) + if late and (best >= 1 or drops("late_zero")): + ties = [i for v, i in late if v == best] + i = ties[-1] if drops("late_tie") else ties[0] + return choice("after_deadline", "primary", i, primary[i], best) + return choice("no_source", None, None, None, 0) + + +def plan(case): + """§7: the plan, or `refuse reason=R`.""" + loss, h, t, sources = case["loss_ppm"], case["overhead"], case["at_ms"], case["sources"] + bad = plan_inputs(loss, h, t, sources) + if bad: + return "refuse reason=" + bad + try: + groups = read_groups(case["groups"]) + except JV.Refuse as r: + return "refuse reason=" + r.reason + labels, accepted = claims_step(case["claims"], groups, plan=True) + intents = {(link, i): entry for link, i, entry in intents_step(accepted, groups)} + rlabels, kept = records_step(case["records"], groups) + ctx = {"kept": kept, "rlabels": rlabels, "schedules": schedules_step(labels, accepted), "loss": loss, "h": h} + choices = [] + for w in case["wanted"]: + entry = intents.get((w["group"], w["index"])) + if entry is None: + choices.append("reject reason=deadline_not_stated") + continue + s = entry["from_ms"] if t == "from_ms" else t + fb = entry["fallback"] + primary = [arrival(src, w["group"], w["index"], s, ctx) for src in sources] + fallback = [None if fb is None else arrival(src, fb["group"], fb["leaf_index"], s, ctx) for src in sources] + choices.append(choose(entry, primary, fallback)) + return {"claims": labels, "records": rlabels, "choices": choices} + + +# ------------------------------------------------------------------ the corpus + +def claim_outcome(c): + try: + claim_steps(c["claim"]) + return "accept" + except CV.Reject as r: + return f"reject step={r.step} reason={r.reason}" + + +def value_outcome(c): + """§5 for an entry read alone, as §3.1 steps 2 and 4 read an entry.""" + e = c["entry"] + CV.timeliness_entry_body(e) + CV.timeliness_entry_rules(e, None) + return {"value_ppm": value(e, c["at_ms"]), "end_ms": end(e)} + + +RUNS = (("claims", claim_outcome), ("values", value_outcome), ("verdicts", verdict), ("plans", plan)) +KINDS = tuple(k for k, _ in RUNS) + + +def strings(v, out): + if isinstance(v, str): + out.append(v) + elif isinstance(v, list): + for x in v: + strings(x, out) + elif isinstance(v, dict): + for x in v.values(): + strings(x, out) + + +def check(doc, quiet=False): + """The failures of a corpus document: each case's outcome, every reason of §9 and every + outcome of §6.3.""" + fails = [] + for kind, run in RUNS: + for c in doc[kind]: + try: + got = run(c) + except CV.Reject as r: + got = {"error": f"reject step={r.step} reason={r.reason}"} + except (KeyError, TypeError, ValueError, IndexError, AttributeError, StopIteration, + ZeroDivisionError) as e: + got = {"error": repr(e)} + if got != c["outcome"]: + fails.append(c["name"]) + if not quiet: + print(f"FAIL {c['name']}\n stated {json.dumps(c['outcome'])}\n got {json.dumps(got)}") + stated = [] + for kind in KINDS: + for c in doc[kind]: + strings(c["outcome"], stated) + for code, _ in reasons_table(): + if not any(s == code or s.endswith("reason=" + code) for s in stated): + fails.append("no case gives " + code) + for outcome in outcomes_table(): + if outcome not in stated: + fails.append("no case gives the outcome " + outcome) + return fails + + +def mutations(doc): + """Copies of the corpus, one defect each, every one of which must fail.""" + def case(d, name): + return next(c for k in KINDS for c in d[k] if c["name"] == name) + + def m_instant(d): + # A millisecond before the end is 75; at the end, 0. + case(d, "example_last_ms")["at_ms"] += 1 + + def m_end(d): + case(d, "hard_one_ms")["outcome"]["end_ms"] -= 1 + + def m_floor(d): + case(d, "step_mid")["outcome"]["value_ppm"] += 1 + + def m_accept(d): + case(d, "decay_near_collinear")["outcome"] = "reject step=4 reason=timeliness_decay_invalid" + + def m_line(d): + case(d, "holder_one_ms_after")["outcome"]["intents"][0]["lines"][0]["value_ppm"] = 999_801 + + def m_earliest(d): + c = case(d, "earliest_record_counts") + c["records"] = c["records"][1:] + + def m_statement(d): + case(d, "statement_line")["statement"]["holder"] = d["keys"]["holder_c"] + + def m_envelope(d): + c = case(d, "on_layer") + c["groups"][0]["objects"][3]["envelope"] = None + + def m_order(d): + c = case(d, "order_over_earliest") + c["sources"] = list(reversed(c["sources"])) + + def m_deadline(d): + case(d, "on_time_at_deadline")["at_ms"] += 1 + + def m_fetch(d): + # Both late sources at 300,000: the first in order, the origin. + case(d, "late_choice_by_value")["sources"][1]["fetch_ms"] = 66_000 + + def m_loss(d): + # 70%: 3 symbols a pass of the 12 needed, a fourth pass. + case(d, "every_pass_from_first")["loss_ppm"] = 700_000 + + def m_from_ms(d): + case(d, "publisher_check_fails")["at_ms"] = d["plans"][0]["at_ms"] + + def m_object(d): + case(d, "fallback_from_carousel")["outcome"]["choices"][0]["object"] = "primary" + + def m_reason_gone(d): + d["verdicts"].remove(case(d, "record_before_group")) + + return [m_instant, m_end, m_floor, m_accept, m_line, m_earliest, m_statement, m_envelope, m_order, m_deadline, + m_fetch, m_loss, m_from_ms, m_object, m_reason_gone] + + +WEAKENINGS = ["subject", "signer", "range", "before", "same_second", "content", "layer", "fallback_position", "derived", + "context", "intent_contradiction", "leaf_count", "held_before", "record_contradiction", "line_holders", + "least", "least_fallback", "own_statements", "key_order", "deadline_inclusive", "fallback_deadline", + "sink_rule", "floor", "no_intent", "loss_bound", + "overhead", "instant", "sources_empty", "sources_kind", "sources_uri", "sources_key", "sources_fetch", + "sources_twice", "sources_loss", "per_group", "undeclared", "bidirectional", "record_at_s", + "holder_record", "plan_order", "fallback_value", "fallback_tie", "fallback_order", + "plan_fallback_deadline", "late_zero", "late_tie"] + + +def direct_checks(): + """What no vector carries, and what this text states of the texts beside it.""" + fails = [] + # §7.1: the greatest fetch estimate is admitted; the corpus carries only the one past it. + if not sources_valid([{"kind": "origin", "fetch_ms": MAX_INT}], None, None): + fails.append("a fetch_ms of 2^53 - 1 is refused") + # §4.2 rule 3.2 where the products pass 2^64: three points on one line are refused, and a + # part per million off it is not. A float of 64 bits cannot tell them apart. + half = (LAST_INSTANT - 1) // 2 + for v1, ok in ((500_000, False), (500_001, True)): + e = {"leaf_index": 0, "content_hash": "00" * 32, "from_ms": 0, "by_ms": 0, "fallback": None, + "decay": [{"at_ms": half, "value_ppm": v1}, {"at_ms": 2 * half, "value_ppm": 0}]} + try: + CV.timeliness_entry_rules(e, None) + got = True + except CV.Reject: + got = False + if got != ok: + fails.append(f"a point of {v1} at {half} is {'refused' if ok else 'accepted'}") + # jwp-receipts §3.1 lists §4.2's codes at step 4 and §4.3's at step 6; delivery-telemetry §5.1 + # lists §8.6's switch reason. + jwp = text_of(JWP_RECEIPTS) + for code, where in reasons_table(): + step = {"§4.2": 4, "§4.3": 6}.get(where.split(" ")[0]) + if step is not None and f"| {step} | `{code}` |" not in jwp: + fails.append(f"jwp-receipts §3.1 does not list {code} at step {step}") + if "- `not-held-by-deadline`:" not in text_of(TELEMETRY): + fails.append("delivery-telemetry §5.1 does not list not-held-by-deadline") + if REFINEMENT_ONLY != {"wai.image.int_refine", "wai.video.int_refine", "wai.audio.int_refine", + "wai.splat.int_refine"}: + fails.append(f"SPEC §5's refinement capabilities read as {sorted(REFINEMENT_ONLY)}") + return fails + + +def main(argv): + global DROPPED + if len(argv) != 2: + print(__doc__) + return 2 + doc = json.load(open(os.path.join(argv[1], "vectors.json"), encoding="utf-8")) + extra = sorted(set(os.listdir(argv[1])) - {"vectors.json", "README.md"}) + fails = check(doc) + if extra: + fails.append(f"files the corpus does not hold: {extra}") + fails += direct_checks() + print(f"{sum(len(doc[k]) for k in KINDS)} cases ({', '.join(f'{len(doc[k])} {k}' for k in KINDS)}): " + f"{len(fails)} failure(s)") + caught = 0 + for m in mutations(doc): + d = copy.deepcopy(doc) + m(d) + if check(d, quiet=True): + caught += 1 + else: + fails.append(f"mutation {m.__name__} was not caught") + print(f"{caught} of {len(mutations(doc))} mutated copies fail") + weak = 0 + for w in WEAKENINGS: + DROPPED = w + if check(doc, quiet=True): + weak += 1 + else: + fails.append(f"a verifier without its {w} check passes the corpus") + DROPPED = None + print(f"{weak} of {len(WEAKENINGS)} weakened verifiers are caught") + for f in fails: + print("FAIL", f) + return 1 if fails else 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/wai/registry/capabilities.json b/wai/registry/capabilities.json index 18c3d268a..82c8abbfd 100644 --- a/wai/registry/capabilities.json +++ b/wai/registry/capabilities.json @@ -390,6 +390,20 @@ "edition": null, "registered": "2026-10-25" }, + { + "capability": "wai.delivery.cache", + "kind": "record", + "status": "registered", + "media": null, + "role": null, + "tier": null, + "licence": null, + "replicate": null, + "sets": [], + "spec_section": "§5 Interactive, temporal & computed content", + "edition": null, + "registered": "2026-11-03" + }, { "capability": "wai.delivery.fleet", "kind": "record", @@ -418,6 +432,20 @@ "edition": null, "registered": "2026-11-03" }, + { + "capability": "wai.delivery.impressions", + "kind": "record", + "status": "registered", + "media": null, + "role": null, + "tier": null, + "licence": null, + "replicate": null, + "sets": [], + "spec_section": "§5 Interactive, temporal & computed content", + "edition": null, + "registered": "2026-11-03" + }, { "capability": "wai.delivery.ledger", "kind": "record", @@ -460,6 +488,20 @@ "edition": null, "registered": "2026-10-29" }, + { + "capability": "wai.delivery.rung_price", + "kind": "record", + "status": "registered", + "media": null, + "role": null, + "tier": null, + "licence": null, + "replicate": null, + "sets": [], + "spec_section": "§5 Interactive, temporal & computed content", + "edition": null, + "registered": "2026-11-03" + }, { "capability": "wai.delivery.settlement", "kind": "record", @@ -474,6 +516,20 @@ "edition": null, "registered": "2026-10-21" }, + { + "capability": "wai.delivery.timeliness", + "kind": "record", + "status": "registered", + "media": null, + "role": null, + "tier": null, + "licence": null, + "replicate": null, + "sets": [], + "spec_section": "§5 Interactive, temporal & computed content", + "edition": null, + "registered": "2026-11-03" + }, { "capability": "wai.derive.crop", "kind": "derivation", @@ -2961,6 +3017,27 @@ "section": "§6.2", "status": "defined" }, + { + "name": "WIC1", + "kind": "magic", + "document": "extensions/impression-aggregates.md", + "section": "§4.1", + "status": "defined" + }, + { + "name": "WIT1", + "kind": "magic", + "document": "extensions/impression-aggregates.md", + "section": "§5.4", + "status": "defined" + }, + { + "name": "WIU1", + "kind": "magic", + "document": "extensions/impression-aggregates.md", + "section": "§6.4", + "status": "defined" + }, { "name": "WJR1", "kind": "magic", @@ -4074,6 +4151,20 @@ "section": "§6.2", "status": "defined" }, + { + "name": "wai-rung-prices", + "kind": "document-kind", + "document": "extensions/rung-price.md", + "section": "§4.1", + "status": "defined" + }, + { + "name": "wai-rung-request", + "kind": "document-kind", + "document": "extensions/rung-price.md", + "section": "§6.1", + "status": "defined" + }, { "name": "wai-scene/1", "kind": "scheme", @@ -4291,6 +4382,13 @@ "section": "§4", "status": "defined" }, + { + "name": "wai_impression_token", + "kind": "dap-report-extension", + "document": "extensions/impression-aggregates.md", + "section": "§7.2", + "status": "proposed" + }, { "name": "wai_machine_generated", "kind": "catalog", diff --git a/wai/registry/capabilities.schema.json b/wai/registry/capabilities.schema.json index 0f5894db2..92bacddfa 100644 --- a/wai/registry/capabilities.schema.json +++ b/wai/registry/capabilities.schema.json @@ -323,7 +323,8 @@ "http-header", "frame-metadata", "gltf-extension", - "telemetry-key" + "telemetry-key", + "dap-report-extension" ] }, "document": { diff --git a/wai/signer-conformance/signer_verify.py b/wai/signer-conformance/signer_verify.py index 58d54a56b..13e8ffd4c 100644 --- a/wai/signer-conformance/signer_verify.py +++ b/wai/signer-conformance/signer_verify.py @@ -34,7 +34,7 @@ D_GRANT, D_STATUS = b"wai:module-grant\x01", b"wai:key-status\x01" GRANT_CEILING, STATUS_CEILING = 86400, 3600 HARDWARE = {"CalibratedInstrument", "OnChipCounter", "HwShunt"} PINNED_ONLY = {"energy/CalibratedInstrument", "energy/OnChipCounter", "energy/HwShunt", - "lawful-basis/declaration", "lawful-basis/decision"} + "lawful-basis/declaration", "lawful-basis/decision", "aggregate/task"} REVISION = ["kind", "origin", "seq", "prev", "issued_at", "root", "next_root", "keys", "revoked_modules", "grant_max_s", "status_max_age_s", "sig"] ENTRY = ["id", "key", "may_sign", "status", "until", "compromised_since"] diff --git a/wai/vocab/v2.ttl b/wai/vocab/v2.ttl index 9dce00401..dbf7b5704 100644 --- a/wai/vocab/v2.ttl +++ b/wai/vocab/v2.ttl @@ -366,6 +366,13 @@ wai:wai.delivery.audit a wai:Capability ; wai:specSection "§5 Interactive, temporal & computed content" ; wai:registeredOn "2026-10-25"^^xsd:date . +wai:wai.delivery.cache a wai:Capability ; + rdfs:label "wai.delivery.cache" ; + wai:kind wai:kind-record ; + wai:status wai:status-registered ; + wai:specSection "§5 Interactive, temporal & computed content" ; + wai:registeredOn "2026-11-03"^^xsd:date . + wai:wai.delivery.fleet a wai:Capability ; rdfs:label "wai.delivery.fleet" ; wai:kind wai:kind-record ; @@ -380,6 +387,13 @@ wai:wai.delivery.holdings a wai:Capability ; wai:specSection "§5 Interactive, temporal & computed content" ; wai:registeredOn "2026-11-03"^^xsd:date . +wai:wai.delivery.impressions a wai:Capability ; + rdfs:label "wai.delivery.impressions" ; + wai:kind wai:kind-record ; + wai:status wai:status-registered ; + wai:specSection "§5 Interactive, temporal & computed content" ; + wai:registeredOn "2026-11-03"^^xsd:date . + wai:wai.delivery.ledger a wai:Capability ; rdfs:label "wai.delivery.ledger" ; wai:kind wai:kind-record ; @@ -401,6 +415,13 @@ wai:wai.delivery.revenue_share a wai:Capability ; wai:specSection "§5 Interactive, temporal & computed content" ; wai:registeredOn "2026-10-29"^^xsd:date . +wai:wai.delivery.rung_price a wai:Capability ; + rdfs:label "wai.delivery.rung_price" ; + wai:kind wai:kind-record ; + wai:status wai:status-registered ; + wai:specSection "§5 Interactive, temporal & computed content" ; + wai:registeredOn "2026-11-03"^^xsd:date . + wai:wai.delivery.settlement a wai:Capability ; rdfs:label "wai.delivery.settlement" ; wai:kind wai:kind-record ; @@ -408,6 +429,13 @@ wai:wai.delivery.settlement a wai:Capability ; wai:specSection "§5 Interactive, temporal & computed content" ; wai:registeredOn "2026-10-21"^^xsd:date . +wai:wai.delivery.timeliness a wai:Capability ; + rdfs:label "wai.delivery.timeliness" ; + wai:kind wai:kind-record ; + wai:status wai:status-registered ; + wai:specSection "§5 Interactive, temporal & computed content" ; + wai:registeredOn "2026-11-03"^^xsd:date . + wai:wai.derive.crop a wai:Capability ; rdfs:label "wai.derive.crop" ; wai:kind wai:kind-derivation ; diff --git a/wai/wai-rs/Cargo.toml b/wai/wai-rs/Cargo.toml index 8cc3bcd14..8761f2a8b 100644 --- a/wai/wai-rs/Cargo.toml +++ b/wai/wai-rs/Cargo.toml @@ -620,6 +620,42 @@ carousel = ["bearer_receipts"] # and to the group receipts a verifier has, queries, and an asker's plan of who holds what. SHA-256 # and Ed25519 only; no new dependency. holdings = ["receipt_claims", "ed25519"] +# Timeliness (extensions/timeliness.md): `wai.delivery.timeliness` — a publisher's signed statement of +# when each object of a group is of use: from when, by when, how its value falls after, and the +# rendition a receiver presents in its place. The jwp-receipts `timeliness` claim (its body is +# claim_receipt's), the judgement of delivery from holdings records, and an asker's plan over +# carousel passes, neighbours and the origin. Integer arithmetic only; no new dependency. +timeliness = ["carousel", "holdings"] +# Rung price (extensions/rung-price.md): `wai.delivery.rung_price` — a seller's signed list of +# delivery prices (`wai-rung-prices`: per direction, bearer class, region in ISO 3166 capitals, +# rate ceiling and unit, each unit at its ledger field's divisor, with the energy the seller states), +# held to an instant (a seller's latest list stands alone and a lapsed one revives none), and the +# comparison of delivery options under a request: a shared transmission's cost per receiver over a +# stated audience or one, held to its pass rate, with its break-even audience; an energy figure +# ranked by its class only when the seller's own per-hop records, read through live_metering and +# placed in time through fleet's room descriptor, bear it out under a key the comparer confirmed. +# route-record's document reader and canonical form, SHA-256 and Ed25519; `ed25519-dalek/hazmat` +# signs the corpus's second signature of one body. No new dependency. +rung_price = ["route_record", "fleet", "ed25519-dalek/hazmat"] +# Cache authority (extensions/cache-authority.md): `wai.delivery.cache` — the authorities +# `cache/serve` (a node that serves, from what it holds, objects of groups another key signed, +# placed in its operator's key log) and `cache-transmission`; the jwp-receipts +# `cache-transmission` claim (its body is claim_receipt's) by which such a node declares a bearer +# instance of its own; the bearer verdict with those instances beside the publisher's; and the +# count of a stated population's receivers that held an object by a deadline, held to a miss +# target in parts per million, over timeliness' held-at statements (holdings records, and the +# acknowledgements and reconciliations this module adds). Reuses bearer_receipts, settlement and +# timeliness (which brings carousel and holdings); region codes are crate::region. No new dependency. +cache_authority = ["bearer_receipts", "settlement", "timeliness"] +# Impression aggregates (extensions/impression-aggregates.md): `wai.delivery.impressions` — ad +# presentations counted over a bearer with no return path: a receiver judges each shared stitched +# ad by stitched-presentation's rules and reports it once to a DAP task of telemetry-aggregation's +# measure 5, `impressions`, as a Prio3Histogram report (creative × region × quartile in the vector, +# time in DAP's bucket); the catalogue (WIC1) the task's scope names, the task file (WIT1) whose +# signer is confirmed with the pinned-only authority `aggregate/task`, the upload file relays +# forward (WIU1), a Privacy Pass token per report in a private report extension, and the table a +# reader recomputes from telemetry-aggregation's signed shares and receipt. No new dependency. +impression_aggregate = ["telemetry_aggregate", "stitched_presentation", "key_discovery"] # Platform and hardware encoding (extensions/platform-encode): `wai.video.encode` — AVC and HEVC # through the encoders a device already has (the operating system's media framework, the video # acceleration API's driver, a GPU driver's encode interface, or a software AVC library loaded at @@ -1424,6 +1460,26 @@ name = "wai_holdings_vectors" path = "src/bin/wai_holdings_vectors.rs" required-features = ["holdings"] +[[bin]] +name = "wai_timeliness_vectors" +path = "src/bin/wai_timeliness_vectors.rs" +required-features = ["timeliness"] + +[[bin]] +name = "wai_rung_price_vectors" +path = "src/bin/wai_rung_price_vectors.rs" +required-features = ["rung_price"] + +[[bin]] +name = "wai_cache_authority_vectors" +path = "src/bin/wai_cache_authority_vectors.rs" +required-features = ["cache_authority"] + +[[bin]] +name = "wai_impression_aggregate_vectors" +path = "src/bin/wai_impression_aggregate_vectors.rs" +required-features = ["impression_aggregate"] + [[bin]] name = "wai_telemetry_aggregate_vectors" path = "src/bin/wai_telemetry_aggregate_vectors.rs" @@ -2501,6 +2557,26 @@ name = "holdings" path = "tests/holdings.rs" required-features = ["holdings"] +[[test]] +name = "timeliness" +path = "tests/timeliness.rs" +required-features = ["timeliness"] + +[[test]] +name = "rung_price" +path = "tests/rung_price.rs" +required-features = ["rung_price"] + +[[test]] +name = "cache_authority" +path = "tests/cache_authority.rs" +required-features = ["cache_authority"] + +[[test]] +name = "impression_aggregate" +path = "tests/impression_aggregate.rs" +required-features = ["impression_aggregate"] + [[test]] name = "telemetry_aggregate" path = "tests/telemetry_aggregate.rs" diff --git a/wai/wai-rs/src/bearer_receipts.rs b/wai/wai-rs/src/bearer_receipts.rs index e53f77514..cf97379dc 100644 --- a/wai/wai-rs/src/bearer_receipts.rs +++ b/wai/wai-rs/src/bearer_receipts.rs @@ -183,16 +183,115 @@ fn bit(bits: &[bool], i: usize) -> bool { bits.get(i).copied().unwrap_or(false) } -/// §6.2: the verdict over one group. A group that fails jwp-receipts §3 steps 1–2 is the -/// error, and nothing is derived from it. -pub fn verdict(inp: &Inputs) -> Result { +/// A bearer instance that stands, as §6.2 step 5 counts reconciliations over it: a publisher's +/// declaration, which sends every object, or an instance another extension adds beside them +/// (cache-authority §7.2 step 4), which sends the objects it names. +#[derive(Clone, Debug)] +pub(crate) struct Instance { + pub bearer: Bearer, + /// The key that sent over it. A reconciliation over an instance signed by this key is set + /// aside `self_acknowledged` (settlement §3.6); a publisher's own is refused before, at + /// jwp-receipts §3.1 step 6. + pub transmitter: [u8; 32], +} + +/// §6.2 steps 5 and 6: what became of each accepted reconciliation, the bits each counted key +/// holds over each instance, and the counts joined per key. +#[derive(Clone, Debug, Default)] +pub(crate) struct Count { + /// For each accepted reconciliation, by its position among the claims: counted, joined, or + /// set aside. + pub verdicts: Vec<(usize, ClaimVerdict)>, + /// The bits each counted key holds, per instance: (key, `bearer_id`). + pub bits: BTreeMap<([u8; 32], String), Vec>, + /// Distinct keys counted, over every instance. + pub sinks: u64, + /// Keys whose bits, joined across every instance, hold every object. + pub whole: u64, + /// For each object, the distinct keys whose joined bits hold it. + pub received_by: Vec, +} + +impl Count { + /// Distinct keys counted for the instance `id`. + pub fn instance_sinks(&self, id: &str) -> u64 { + self.bits.keys().filter(|(_, bid)| bid == id).count() as u64 + } + + /// The distinct keys whose bits over the instance `id` alone hold object `j`. + #[cfg(feature = "cache_authority")] + pub fn instance_received(&self, id: &str, j: u64) -> u64 { + self.bits.iter().filter(|((_, bid), b)| bid == id && bit(b, j as usize)).count() as u64 + } +} + +/// §6.2 steps 5 and 6 over the accepted claims of a group of `n` objects: the instances that +/// stand by `bearer_id`, and those whose declarations were set aside (`contradicted`). A +/// reconciliation over a contradicted instance, over none that stands, of another class than its +/// instance's, signed by its instance's transmitter, or by a key outside `count_only` when that is +/// given, is set aside; otherwise it is counted, and a key's second over one instance is joined. +pub(crate) fn count( + n: u64, + accepted: &[Option], + standing: &BTreeMap, + contradicted: &BTreeSet, + count_only: Option<&[[u8; 32]]>, +) -> Count { + let n = n as usize; + let mut out = Count::default(); + for (i, c) in accepted.iter().enumerate() { + let Some(c) = c else { continue }; + let Some(r) = c.reconciliation() else { continue }; + let aside = if contradicted.contains(&r.bearer_id) { + Some(BEARER_CONTRADICTED) + } else { + match standing.get(&r.bearer_id) { + None => Some(BEARER_NOT_DECLARED), + Some(d) if d.bearer != r.bearer => Some(BEARER_CONTRADICTED), + Some(d) if d.transmitter == c.signer_pubkey => Some(SELF_ACKNOWLEDGED), + Some(_) => match count_only { + Some(keys) if !keys.contains(&c.signer_pubkey) => Some(SINK_NOT_CONFIRMED), + _ => None, + }, + } + }; + if let Some(reason) = aside { + out.verdicts.push((i, ClaimVerdict::SetAside(reason))); + continue; + } + let k = (c.signer_pubkey, r.bearer_id.clone()); + out.verdicts.push((i, if out.bits.contains_key(&k) { ClaimVerdict::Joined } else { ClaimVerdict::Counted })); + let b = out.bits.entry(k).or_insert_with(|| vec![false; n]); + for j in r.indices() { + b[j as usize] = true; + } + } + let mut joined: BTreeMap<[u8; 32], Vec> = BTreeMap::new(); + for ((key, _), b) in &out.bits { + let into = joined.entry(*key).or_insert_with(|| vec![false; n]); + for (x, y) in into.iter_mut().zip(b) { + *x |= *y; + } + } + out.sinks = joined.len() as u64; + out.whole = joined.values().filter(|b| b.iter().all(|x| *x)).count() as u64; + out.received_by = (0..n).map(|j| joined.values().filter(|b| bit(b, j)).count() as u64).collect(); + out +} + +/// settlement §3.6's code: a party's statement that it received what it sent. +pub(crate) const SELF_ACKNOWLEDGED: &str = "self_acknowledged"; + +/// §6.2 steps 1 and 2: the group under jwp-receipts §3 steps 1–2 (the error, when it fails), +/// the object receipts that read, and each object's verdict in the order given, the same +/// whatever the bearer. +pub(crate) fn group_and_objects(group: &Value, held: &[HeldObject]) -> Result<(GroupReceipt, Vec, Vec), DeliveryError> { // Step 1. - let group = GroupReceipt::from_json(&inp.group)?; + let group = GroupReceipt::from_json(group)?; group.verify()?; // Step 2: the same whatever the bearer. let mut receipts: Vec = Vec::new(); - let objects: Vec = inp - .objects + let objects: Vec = held .iter() .map(|o| { let r = match ObjectReceipt::from_json(&o.receipt) { @@ -207,6 +306,13 @@ pub fn verdict(inp: &Inputs) -> Result { } }) .collect(); + Ok((group, receipts, objects)) +} + +/// §6.2: the verdict over one group. A group that fails jwp-receipts §3 steps 1–2 is the +/// error, and nothing is derived from it. +pub fn verdict(inp: &Inputs) -> Result { + let (group, receipts, objects) = group_and_objects(&inp.group, &inp.objects)?; let refs: Vec<&ObjectReceipt> = receipts.iter().collect(); // Step 3. @@ -260,49 +366,24 @@ pub fn verdict(inp: &Inputs) -> Result { } let declaration = |id: &str| standing.get(id).and_then(|&i| accepted[i].as_ref()).and_then(ClaimReceipt::transmission); - // Step 5: the reconciliations, in order. - let n = group.leaf_count as usize; - let mut bits: BTreeMap<[u8; 32], Vec> = BTreeMap::new(); - let mut counted: BTreeSet<([u8; 32], String)> = BTreeSet::new(); - for (i, c) in accepted.iter().enumerate() { - let Some(c) = c else { continue }; - let Some(r) = c.reconciliation() else { continue }; - let aside = if contradicted.contains(&r.bearer_id) { - Some(BEARER_CONTRADICTED) - } else { - match declaration(&r.bearer_id) { - None => Some(BEARER_NOT_DECLARED), - Some(d) if d.bearer != r.bearer => Some(BEARER_CONTRADICTED), - Some(_) => match &inp.count_only { - Some(keys) if !keys.contains(&c.signer_pubkey) => Some(SINK_NOT_CONFIRMED), - _ => None, - }, - } - }; - if let Some(reason) = aside { - claims[i] = ClaimVerdict::SetAside(reason); - continue; - } - claims[i] = if counted.insert((c.signer_pubkey, r.bearer_id.clone())) { - ClaimVerdict::Counted - } else { - ClaimVerdict::Joined - }; - let b = bits.entry(c.signer_pubkey).or_insert_with(|| vec![false; n]); - for j in r.indices() { - b[j as usize] = true; - } + // Steps 5 and 6: the reconciliations, in order, and the counts. + let instances: BTreeMap = standing + .keys() + .map(|id| { + let d = declaration(id).expect("a declaration that stands"); + (id.clone(), Instance { bearer: d.bearer, transmitter: group.signer_pubkey }) + }) + .collect(); + let counted = count(group.leaf_count, &accepted, &instances, &contradicted, inp.count_only.as_deref()); + for (i, v) in &counted.verdicts { + claims[*i] = v.clone(); } - - // Step 6. - let sinks = bits.len() as u64; - let whole = bits.values().filter(|b| b.iter().all(|x| *x)).count() as u64; - let received_by = (0..n).map(|j| bits.values().filter(|b| bit(b, j)).count() as u64).collect(); + let (sinks, whole, received_by) = (counted.sinks, counted.whole, counted.received_by.clone()); let bearers = standing .iter() .map(|(id, &i)| { let t = accepted[i].as_ref().and_then(ClaimReceipt::transmission).expect("a transmission"); - let k = counted.iter().filter(|(_, bid)| bid == id).count() as u64; + let k = counted.instance_sinks(id); let energy = t.energy.as_ref().map(|e| (e.joules_micro, e.energy_provenance.clone())); BearerLine { bearer_id: id.clone(), diff --git a/wai/wai-rs/src/bin/wai_cache_authority_vectors.rs b/wai/wai-rs/src/bin/wai_cache_authority_vectors.rs new file mode 100644 index 000000000..9a0e8208f --- /dev/null +++ b/wai/wai-rs/src/bin/wai_cache_authority_vectors.rs @@ -0,0 +1,75 @@ +//! Conformance corpus for cache authority (`live-conformance/cache-authority/`, +//! extensions/cache-authority.md §12). +//! +//! wai_cache_authority_vectors gen write vectors.json, from fixed seeds +//! wai_cache_authority_vectors verify every file regenerates byte for byte, no +//! other file but README.md is there, and +//! every case gets the outcome it states +//! +//! The generator and this verifier are one implementation. The corpus's second +//! implementation is `live-conformance/cache_authority_verify.py`, written from the extension's +//! text and sharing no code with this binary. + +use std::collections::BTreeMap; +use std::path::Path; +use wai::cache_authority::corpus; + +fn main() { + let a: Vec = std::env::args().collect(); + match (a.get(1).map(String::as_str), a.get(2)) { + (Some("gen"), Some(d)) => { + if let Err(e) = std::fs::create_dir_all(d) { + eprintln!("create {d}: {e}"); + std::process::exit(1); + } + for (name, body) in corpus::generate() { + let p = Path::new(d).join(&name); + if let Err(e) = std::fs::write(&p, body) { + eprintln!("write {}: {e}", p.display()); + std::process::exit(1); + } + } + println!("wrote {d}"); + } + (Some("verify"), Some(d)) => std::process::exit(verify(Path::new(d))), + _ => { + eprintln!("usage: wai_cache_authority_vectors gen|verify "); + std::process::exit(2); + } + } +} + +fn verify(dir: &Path) -> i32 { + let mut files = BTreeMap::new(); + let entries = match std::fs::read_dir(dir) { + Ok(e) => e, + Err(e) => { + eprintln!("read {}: {e}", dir.display()); + return 1; + } + }; + for e in entries.flatten() { + let name = e.file_name().to_string_lossy().into_owned(); + if name == "README.md" { + continue; + } + match std::fs::read_to_string(e.path()) { + Ok(s) => { + files.insert(name, s); + } + Err(err) => { + eprintln!("read {name}: {err}"); + return 1; + } + } + } + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let same = files == generated; + println!("{} every file regenerates byte for byte from its seeds, and no other file is there", if same { "PASS" } else { "FAIL" }); + let fails = corpus::verify(&files); + for f in &fails { + println!("FAIL {f}"); + } + println!("{} every case gets the outcome the corpus states", if fails.is_empty() { "PASS" } else { "FAIL" }); + (!same || !fails.is_empty()) as i32 +} diff --git a/wai/wai-rs/src/bin/wai_impression_aggregate_vectors.rs b/wai/wai-rs/src/bin/wai_impression_aggregate_vectors.rs new file mode 100644 index 000000000..a3187b584 --- /dev/null +++ b/wai/wai-rs/src/bin/wai_impression_aggregate_vectors.rs @@ -0,0 +1,76 @@ +//! Conformance corpus for impression aggregates (`live-conformance/impressions/`, +//! extensions/impression-aggregates.md §11). +//! +//! wai_impression_aggregate_vectors gen write vectors.json, from fixed seeds +//! wai_impression_aggregate_vectors verify every file regenerates byte for byte, +//! no other file but README.md is there, +//! and every case gets the outcome it +//! states +//! +//! The generator and this verifier are one implementation. The corpus's second implementation +//! is `live-conformance/impression_aggregate_verify.py`, written from the extension's text and +//! sharing no code with this binary. + +use std::collections::BTreeMap; +use std::path::Path; +use wai::impression_aggregate::corpus; + +fn main() { + let a: Vec = std::env::args().collect(); + match (a.get(1).map(String::as_str), a.get(2)) { + (Some("gen"), Some(d)) => { + if let Err(e) = std::fs::create_dir_all(d) { + eprintln!("create {d}: {e}"); + std::process::exit(1); + } + for (name, body) in corpus::generate() { + let p = Path::new(d).join(&name); + if let Err(e) = std::fs::write(&p, body) { + eprintln!("write {}: {e}", p.display()); + std::process::exit(1); + } + } + println!("wrote {d}"); + } + (Some("verify"), Some(d)) => std::process::exit(verify(Path::new(d))), + _ => { + eprintln!("usage: wai_impression_aggregate_vectors gen|verify "); + std::process::exit(2); + } + } +} + +fn verify(dir: &Path) -> i32 { + let mut files = BTreeMap::new(); + let entries = match std::fs::read_dir(dir) { + Ok(e) => e, + Err(e) => { + eprintln!("read {}: {e}", dir.display()); + return 1; + } + }; + for e in entries.flatten() { + let name = e.file_name().to_string_lossy().into_owned(); + if name == "README.md" { + continue; + } + match std::fs::read_to_string(e.path()) { + Ok(s) => { + files.insert(name, s); + } + Err(err) => { + eprintln!("read {name}: {err}"); + return 1; + } + } + } + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let same = files == generated; + println!("{} every file regenerates byte for byte from its seeds, and no other file is there", if same { "PASS" } else { "FAIL" }); + let fails = corpus::verify(&files); + for f in &fails { + println!("FAIL {f}"); + } + println!("{} every case gets the outcome the corpus states", if fails.is_empty() { "PASS" } else { "FAIL" }); + (!same || !fails.is_empty()) as i32 +} diff --git a/wai/wai-rs/src/bin/wai_rung_price_vectors.rs b/wai/wai-rs/src/bin/wai_rung_price_vectors.rs new file mode 100644 index 000000000..55eda5db4 --- /dev/null +++ b/wai/wai-rs/src/bin/wai_rung_price_vectors.rs @@ -0,0 +1,74 @@ +//! Conformance corpus for rung price (`live-conformance/prices/`, extensions/rung-price.md §9). +//! +//! wai_rung_price_vectors gen write vectors.json, from fixed seeds +//! wai_rung_price_vectors verify every file regenerates byte for byte, no other +//! file but README.md is there, and every case +//! gets the outcome it states +//! +//! The generator and this verifier are one implementation. The corpus's second +//! implementation is `live-conformance/rung_price_verify.py`, written from the extension's +//! text and sharing no code with this binary. + +use std::collections::BTreeMap; +use std::path::Path; +use wai::rung_price::corpus; + +fn main() { + let a: Vec = std::env::args().collect(); + match (a.get(1).map(String::as_str), a.get(2)) { + (Some("gen"), Some(d)) => { + if let Err(e) = std::fs::create_dir_all(d) { + eprintln!("create {d}: {e}"); + std::process::exit(1); + } + for (name, body) in corpus::generate() { + let p = Path::new(d).join(&name); + if let Err(e) = std::fs::write(&p, body) { + eprintln!("write {}: {e}", p.display()); + std::process::exit(1); + } + } + println!("wrote {d}"); + } + (Some("verify"), Some(d)) => std::process::exit(verify(Path::new(d))), + _ => { + eprintln!("usage: wai_rung_price_vectors gen|verify "); + std::process::exit(2); + } + } +} + +fn verify(dir: &Path) -> i32 { + let mut files = BTreeMap::new(); + let entries = match std::fs::read_dir(dir) { + Ok(e) => e, + Err(e) => { + eprintln!("read {}: {e}", dir.display()); + return 1; + } + }; + for e in entries.flatten() { + let name = e.file_name().to_string_lossy().into_owned(); + if name == "README.md" { + continue; + } + match std::fs::read_to_string(e.path()) { + Ok(s) => { + files.insert(name, s); + } + Err(err) => { + eprintln!("read {name}: {err}"); + return 1; + } + } + } + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let same = files == generated; + println!("{} every file regenerates byte for byte from its seeds, and no other file is there", if same { "PASS" } else { "FAIL" }); + let fails = corpus::verify(&files); + for f in &fails { + println!("FAIL {f}"); + } + println!("{} every case gets the outcome the corpus states", if fails.is_empty() { "PASS" } else { "FAIL" }); + (!same || !fails.is_empty()) as i32 +} diff --git a/wai/wai-rs/src/bin/wai_timeliness_vectors.rs b/wai/wai-rs/src/bin/wai_timeliness_vectors.rs new file mode 100644 index 000000000..e59b33f36 --- /dev/null +++ b/wai/wai-rs/src/bin/wai_timeliness_vectors.rs @@ -0,0 +1,74 @@ +//! Conformance corpus for timeliness (`live-conformance/timeliness/`, extensions/timeliness.md §10). +//! +//! wai_timeliness_vectors gen write vectors.json, from fixed seeds +//! wai_timeliness_vectors verify every file regenerates byte for byte, no other +//! file but README.md is there, and every case +//! gets the outcome it states +//! +//! The generator and this verifier are one implementation. The corpus's second +//! implementation is `live-conformance/timeliness_verify.py`, written from the extension's +//! text and sharing no code with this binary. + +use std::collections::BTreeMap; +use std::path::Path; +use wai::timeliness::corpus; + +fn main() { + let a: Vec = std::env::args().collect(); + match (a.get(1).map(String::as_str), a.get(2)) { + (Some("gen"), Some(d)) => { + if let Err(e) = std::fs::create_dir_all(d) { + eprintln!("create {d}: {e}"); + std::process::exit(1); + } + for (name, body) in corpus::generate() { + let p = Path::new(d).join(&name); + if let Err(e) = std::fs::write(&p, body) { + eprintln!("write {}: {e}", p.display()); + std::process::exit(1); + } + } + println!("wrote {d}"); + } + (Some("verify"), Some(d)) => std::process::exit(verify(Path::new(d))), + _ => { + eprintln!("usage: wai_timeliness_vectors gen|verify "); + std::process::exit(2); + } + } +} + +fn verify(dir: &Path) -> i32 { + let mut files = BTreeMap::new(); + let entries = match std::fs::read_dir(dir) { + Ok(e) => e, + Err(e) => { + eprintln!("read {}: {e}", dir.display()); + return 1; + } + }; + for e in entries.flatten() { + let name = e.file_name().to_string_lossy().into_owned(); + if name == "README.md" { + continue; + } + match std::fs::read_to_string(e.path()) { + Ok(s) => { + files.insert(name, s); + } + Err(err) => { + eprintln!("read {name}: {err}"); + return 1; + } + } + } + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let same = files == generated; + println!("{} every file regenerates byte for byte from its seeds, and no other file is there", if same { "PASS" } else { "FAIL" }); + let fails = corpus::verify(&files); + for f in &fails { + println!("FAIL {f}"); + } + println!("{} every case gets the outcome the corpus states", if fails.is_empty() { "PASS" } else { "FAIL" }); + (!same || !fails.is_empty()) as i32 +} diff --git a/wai/wai-rs/src/cache_authority.rs b/wai/wai-rs/src/cache_authority.rs new file mode 100644 index 000000000..a9c3d2fc4 --- /dev/null +++ b/wai/wai-rs/src/cache_authority.rs @@ -0,0 +1,1072 @@ +//! Cache authority — `extensions/cache-authority.md`, the record `wai.delivery.cache`: who served +//! what a node holds, and on whose authority. +//! +//! A node that serves, from what it holds, objects of groups another key signed holds the role +//! `cache/serve` in its operator's key log, and a node that declares a bearer instance of its own +//! holds the class authority `cache-transmission`. This module places a server key by the heads a +//! relying party names, in jwp-receipts' three levels ([`place`], §4.4); derives the bearer +//! verdict with the caches' instances beside the publisher's ([`verdict`], §7), the +//! `cache-transmission` claim's body and context checks being `crate::claim_receipt::bearer`'s; +//! and counts, of a population of receiver keys stated for a region, how many held an object by a +//! deadline on their own signed word ([`tally`], §8), read as timeliness' held-at statements. +//! +//! # Rules enforced here rather than only documented +//! +//! - A placement labels a server and never changes a verdict or a hit. +//! - A cache's instance never makes a group `transmitted`, and a cache is credited per instance, +//! only for the objects it says it sent. +//! - Every instant a held-at statement gives is the latest its signed word allows, rounded up to +//! the millisecond; a statement before its group is set aside, so a receiver whose clock was +//! never set is never on time. +//! - Every unknown is a miss, and the miss rate is rounded up. + +use std::collections::{BTreeMap, BTreeSet}; + +use serde_json::Value; +use sha2::{Digest, Sha256}; + +use crate::bearer_receipts::{ + self, per_receiver_upper_bound, Assertion, BearerLine, ClaimVerdict as BearerVerdict, Instance, Status, BEARER_CONTRADICTED, + BEARER_NOT_DECLARED, DELIVERY_EXCEEDS_RECONCILED, DELIVERY_NOT_RECONCILED, +}; +use crate::claim_receipt::schedule::LAST_INSTANT_MS; +use crate::claim_receipt::{hex, Bearer, ClaimBody, ClaimReceipt, HeldGroup, Reason as ClaimReason, Rejection, TimelinessEntry}; +use crate::holdings::{self, Holdings, RecordVerdict}; +use crate::jwp_delivery::{DeliveryError, GroupReceipt, ObjectReceipt}; +use crate::key_log::{log_seconds, EntryStatus, Revision}; +use crate::settlement; +use crate::timeliness::{self, HeldAt, Line}; + +pub mod corpus; + +/// The codes cache-authority §11 lists, in its order. +pub const CODES: &[&str] = &[ + SERVER_NOT_LISTED, + "cache_transmission_not_transmitted", + "cache_transmission_on_bidirectional", + "cache_transmission_bitmap_malformed", + "cache_transmission_subject_mismatch", + "cache_transmission_by_publisher", + "cache_transmission_leaf_count_mismatch", + "cache_transmission_objects_not_held", + "cache_transmission_root_mismatch", + POPULATION_INVALID, + TARGET_INVALID, + OBJECT_NOT_VERIFIED, + MISS_TARGET_EXCEEDED, +]; + +pub const SERVER_NOT_LISTED: &str = "server_not_listed"; +pub const POPULATION_INVALID: &str = "population_invalid"; +pub const TARGET_INVALID: &str = "target_invalid"; +pub const OBJECT_NOT_VERIFIED: &str = "object_not_verified"; +pub const MISS_TARGET_EXCEEDED: &str = "miss_target_exceeded"; + +/// The codes of other texts this one raises (§11's last paragraph) that this module names. +pub const KEY_REVOKED: &str = "key_revoked"; +pub const KEY_RETIRED: &str = "key_retired"; +pub const AUTHORITY_NOT_GRANTED: &str = "authority_not_granted"; +pub const KEY_LOG_NOT_HELD: &str = "key_log_not_held"; +pub const CONTEXT_INVALID: &str = "context_invalid"; +pub const RECORD_MISSING: &str = "record_missing"; + +/// The role a node that serves from what it holds signs under (§4.1). +pub const AUTHORITY: &str = "cache/serve"; +/// The class authority of a `cache-transmission` claim: its class name (jwp-receipts §7.5). +pub const CLASS_AUTHORITY: &str = "cache-transmission"; +/// `cache/serve`, then `live_metering::HOP_AUTHORITIES`: the roles §4.4 places a server by, in +/// the order a confirmed placement names the first it holds. +pub const SERVING_ROLES: [&str; 4] = + [AUTHORITY, crate::live_metering::HOP_AUTHORITIES[0], crate::live_metering::HOP_AUTHORITIES[1], crate::live_metering::HOP_AUTHORITIES[2]]; + +/// §8.1: the population digest's hash domain. +pub const POPULATION_DOMAIN: &[u8] = b"wai:cache-population\x01"; +/// §8.1: the most keys a population holds. +pub const MAX_POPULATION: usize = 1 << 20; +/// §8.2: the greatest miss target. +pub const MAX_TARGET_PPM: u64 = 999_999; +const MILLION: u64 = 1_000_000; + +// ───────────────────────────── §4.4: placing a server key ───────────────────────────── + +/// How a server key is placed (§4.4), in jwp-receipts §7's three levels. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Placement { + /// A held head lists the key with a serving role, active or retired with the item's instant + /// not later than its `until`. + Confirmed { origin: String, key_id: String, role: &'static str, until: Option }, + /// `server_not_listed` (origin `None`) or `key_log_not_held`. + Unconfirmed { reason: &'static str, origin: Option }, + /// `key_revoked` (with `compromised_since`), `key_retired` (with `until`) or + /// `authority_not_granted`. + Refused { reason: &'static str, origin: String, time: Option }, +} + +impl Placement { + pub fn label(&self) -> String { + match self { + Placement::Confirmed { origin, key_id, role, until } => { + let mut s = format!("confirmed origin={origin} key_id={key_id} role={role}"); + if let Some(u) = until { + s.push_str(&format!(" until={u}")); + } + s + } + Placement::Unconfirmed { reason, origin: None } => format!("unconfirmed reason={reason}"), + Placement::Unconfirmed { reason, origin: Some(o) } => format!("unconfirmed reason={reason} origin={o}"), + Placement::Refused { reason, origin, time } => { + let mut s = format!("refused reason={reason} origin={origin}"); + match (*reason, time) { + (KEY_REVOKED, Some(t)) => s.push_str(&format!(" compromised_since={t}")), + (KEY_RETIRED, Some(t)) => s.push_str(&format!(" until={t}")), + _ => {} + } + s + } + } + } +} + +/// Whether `at_ms` is later than a retired entry's `until` (jwp-receipts §7.4 step 5): `until` +/// read as seconds since 1970, and `at_ms` later when it is above `until` × 1000. An `until` +/// that is not a log date-time is earlier than every instant. +fn past_until(at_ms: u64, until: Option<&str>) -> bool { + match until.and_then(log_seconds) { + Some(u) if u >= 0 => at_ms > (u as u64) * 1000, + _ => true, + } +} + +/// §4.4: place the server key `key` for an item at `at_ms` by the heads given, keyed by origin. +/// Never an error: a head that is not held leaves a key unconfirmed. +pub fn place(key: &[u8; 32], at_ms: u64, heads: &BTreeMap) -> Placement { + // Heads in ascending order of origin, each held or not (jwp-receipts §7.2 rules 1–3). + let read: Vec<(&String, Option)> = + heads.iter().map(|(o, t)| (o, Revision::from_json(t).ok().filter(|r| r.check_held(o).is_ok()))).collect(); + let held = || read.iter().filter_map(|(o, r)| r.as_ref().map(|r| (*o, r))); + let entry = |r: &Revision| r.keys.iter().find(|e| e.key == *key).cloned(); + let serving = |e: &crate::key_log::KeyEntry| SERVING_ROLES.iter().copied().find(|role| e.may_sign.iter().any(|a| a == role)); + // Step 1: a held head revokes the key, under any role. + for (o, r) in held() { + if let Some(e) = entry(r).filter(|e| e.status == EntryStatus::Revoked) { + return Placement::Refused { reason: KEY_REVOKED, origin: o.clone(), time: e.compromised_since }; + } + } + // Step 2: a head that is not held might revoke it. + if let Some((o, _)) = read.iter().find(|(_, r)| r.is_none()) { + return Placement::Unconfirmed { reason: KEY_LOG_NOT_HELD, origin: Some((*o).clone()) }; + } + // Step 3: a serving role, active or retired with the instant not past `until`. + for (o, r) in held() { + let Some(e) = entry(r) else { continue }; + let Some(role) = serving(&e) else { continue }; + match e.status { + EntryStatus::Active => return Placement::Confirmed { origin: o.clone(), key_id: e.id, role, until: None }, + EntryStatus::Retired if !past_until(at_ms, e.until.as_deref()) => { + return Placement::Confirmed { origin: o.clone(), key_id: e.id, role, until: e.until }; + } + _ => {} + } + } + // Step 4: every serving entry retired before the instant. + for (o, r) in held() { + if let Some(e) = entry(r).filter(|e| serving(e).is_some()) { + return Placement::Refused { reason: KEY_RETIRED, origin: o.clone(), time: e.until }; + } + } + // Step 5: listed with no serving role. + if let Some((o, _)) = held().find(|(_, r)| entry(r).is_some()) { + return Placement::Refused { reason: AUTHORITY_NOT_GRANTED, origin: o.clone(), time: None }; + } + // Step 6. + Placement::Unconfirmed { reason: SERVER_NOT_LISTED, origin: None } +} + +// ───────────────────────────── instants (§8.3) ───────────────────────────── + +/// A date-time read as jwp-receipts §2.4.3 reads one (offset applied, second 60 read as the next +/// minute's first): its whole seconds since 1970, the fraction dropped, and its instant in +/// milliseconds rounded up, 1000 × the seconds + ⌈*f* × 1000⌉ with *f* the written fraction. +/// `None` for a time that is not a date-time or is before 1970. +pub fn issued_instant(s: &str) -> Option<(u64, u64)> { + let seconds = u64::try_from(crate::claim_receipt::rfc3339_seconds(s)?).ok()?; + let b = s.as_bytes(); + let mut ms = 0u64; + if b.get(19) == Some(&b'.') { + let digits: Vec = b[20..].iter().take_while(|c| c.is_ascii_digit()).map(|c| u64::from(c - b'0')).collect(); + ms = digits.iter().take(3).enumerate().map(|(k, d)| d * [100, 10, 1][k]).sum(); + if digits.iter().skip(3).any(|d| *d != 0) { + ms += 1; + } + } + Some((seconds * 1000 + ms, seconds)) +} + +/// An acknowledgement window's held-at instant (§8.3): its last microsecond, `end` − 1 +/// (settlement §2: `end` is excluded), rounded up to the millisecond; and its whole seconds. +pub fn window_instant(end_us: u64) -> (u64, u64) { + let last = end_us.saturating_sub(1); + (last.div_ceil(1000), last / MILLION) +} + +// ───────────────────────────── §7: the verdict ───────────────────────────── + +/// The inputs of §7.1: bearer-receipts §6.1's, with cache-transmission claims among the claims, +/// and the heads of §4.4, keyed by origin. +#[derive(Clone, Debug, Default)] +pub struct Inputs { + pub bearer: bearer_receipts::Inputs, + pub heads: BTreeMap, +} + +/// What became of one claim (§7.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum ClaimVerdict { + /// As bearer-receipts §6.2 gives it. + Bearer(BearerVerdict), + /// A cache-transmission claim whose instance stands. + CacheDeclared, +} + +impl ClaimVerdict { + pub fn label(&self) -> String { + match self { + ClaimVerdict::Bearer(v) => v.label(), + ClaimVerdict::CacheDeclared => "cache-declared".into(), + } + } +} + +/// A cache's instance that stands (§7.2 steps 4 and 6, §7.4). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CacheInstance { + pub bearer_id: String, + pub bearer: Bearer, + pub server: [u8; 32], + pub placement: Placement, + /// The objects it says it sent, in order. + pub sent: Vec, + /// Distinct keys counted for it. + pub sinks: u64, + /// For each object it sent: (object, distinct keys whose bits over this instance alone hold + /// it). + pub received_by: Vec<(u64, u64)>, + /// Its figure and its class's label, where it was metered. + pub energy: Option<(u64, String)>, + /// ⌈joules_micro / max(1, sinks)⌉, where it was metered. + pub per_receiver_upper_bound: Option, +} + +/// §7's verdict over one group. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Verdict { + pub objects: Vec, + pub claims: Vec, + /// bearer-receipts §6.3's, over the publisher's declarations and every counted + /// reconciliation. + pub status: Status, + pub sinks: u64, + pub whole: u64, + pub received_by: Vec, + /// The publisher's declarations that stand. + pub bearers: Vec, + /// The caches' instances that stand, by `bearer_id`. + pub caches: Vec, + /// §7.3, for a verifier that is a sink. + pub sink: Option<&'static str>, + /// bearer-receipts §6.4: `Ok` when the statement holds. + pub assertion: Option>, +} + +/// What [`judge`] keeps for the tally: the group, the accepted claims and the instances. +struct Judged { + group: GroupReceipt, + accepted: Vec>, + /// The instances step 5 counts over, by `bearer_id`: the publisher's that stand and the + /// caches' that stand, with the objects each sent (`None`: every object). + instances: BTreeMap>)>, + count: bearer_receipts::Count, + verdict: Verdict, +} + +/// jwp-receipts §3.1 steps 1 to 5 on each claim in order, each signer's chain held as it goes, +/// then step 6 by `check`. A claim refused at a step takes no further part. +fn check_claims(claims: &[String], mut check: F) -> Vec> +where + F: FnMut(&ClaimReceipt) -> Result<(), Rejection>, +{ + let mut held: BTreeMap<[u8; 32], ClaimReceipt> = BTreeMap::new(); + claims + .iter() + .map(|wire| { + let c = ClaimReceipt::from_json(wire)?; + c.verify()?; + let previous = held.insert(c.signer_pubkey, c.clone()); + c.check_parent(previous.as_ref())?; + check(&c)?; + Ok(c) + }) + .collect() +} + +/// The latest instant any of `claims`' `issued_at` allows, in milliseconds (§4.4 *Which +/// instant*); 0 when none reads. +fn latest_issued(claims: &[&ClaimReceipt]) -> u64 { + claims.iter().filter_map(|c| issued_instant(&c.issued_at)).map(|(ms, _)| ms).max().unwrap_or(0) +} + +fn judge(inp: &Inputs, count_only: Option<&[[u8; 32]]>) -> Result { + let b = &inp.bearer; + // Step 1. + let (group, receipts, objects) = bearer_receipts::group_and_objects(&b.group, &b.objects)?; + let refs: Vec<&ObjectReceipt> = receipts.iter().collect(); + // Step 2. + let checked = check_claims(&b.claims, |c| match &c.body { + ClaimBody::Transmission(_) => c.check_transmission_against(&group), + ClaimBody::Reconciliation(_) => c.check_reconciliation_against(&group, &refs), + ClaimBody::CacheTransmission(_) => c.check_cache_transmission_against(&group, &refs), + _ => Err(Rejection { step: 6, reason: ClaimReason::ContextMismatch }), + }); + let mut claims: Vec = Vec::with_capacity(checked.len()); + let mut accepted: Vec> = Vec::with_capacity(checked.len()); + for c in checked { + match c { + Ok(c) => { + claims.push(match &c.body { + ClaimBody::CacheTransmission(_) => ClaimVerdict::CacheDeclared, + _ => ClaimVerdict::Bearer(BearerVerdict::Declared), + }); + accepted.push(Some(c)); + } + Err(r) => { + claims.push(ClaimVerdict::Bearer(BearerVerdict::Refused(r))); + accepted.push(None); + } + } + } + + // Step 3: the publisher's declarations, by instance (bearer-receipts §6.2 step 4). + let mut by_instance: BTreeMap> = BTreeMap::new(); + for (i, c) in accepted.iter().enumerate() { + if let Some(t) = c.as_ref().and_then(ClaimReceipt::transmission) { + by_instance.entry(t.bearer_id.clone()).or_default().push(i); + } + } + let mut standing: BTreeMap = BTreeMap::new(); + let mut contradicted: BTreeSet = BTreeSet::new(); + for (id, idx) in &by_instance { + let first = accepted[idx[0]].as_ref().and_then(ClaimReceipt::transmission); + if idx.iter().all(|&i| accepted[i].as_ref().and_then(ClaimReceipt::transmission) == first) { + standing.insert(id.clone(), idx[0]); + } else { + contradicted.insert(id.clone()); + for &i in idx { + claims[i] = ClaimVerdict::Bearer(BearerVerdict::SetAside(BEARER_CONTRADICTED)); + } + } + } + + // Step 4: the caches' instances. + let mut caches_by: BTreeMap> = BTreeMap::new(); + for (i, c) in accepted.iter().enumerate() { + if let Some(t) = c.as_ref().and_then(ClaimReceipt::cache_transmission) { + caches_by.entry(t.bearer_id.clone()).or_default().push(i); + } + } + let mut cache_standing: BTreeMap> = BTreeMap::new(); + for (id, idx) in &caches_by { + let first = accepted[idx[0]].as_ref().expect("an accepted claim"); + let one = idx.iter().all(|&i| { + let c = accepted[i].as_ref().expect("an accepted claim"); + c.signer_pubkey == first.signer_pubkey && c.cache_transmission() == first.cache_transmission() + }); + if by_instance.contains_key(id) || !one { + for &i in idx { + claims[i] = ClaimVerdict::Bearer(BearerVerdict::SetAside(BEARER_CONTRADICTED)); + } + // An instance a transmission claim names is the publisher's, and its declarations + // keep what step 3 gave them; one whose own claims disagree is contradicted. + if !by_instance.contains_key(id) { + contradicted.insert(id.clone()); + } + } else { + cache_standing.insert(id.clone(), idx.clone()); + } + } + + // Step 5: the reconciliations, over the instances that stand. + let mut instances: BTreeMap>)> = BTreeMap::new(); + for (id, &i) in &standing { + let t = accepted[i].as_ref().and_then(ClaimReceipt::transmission).expect("a transmission"); + instances.insert(id.clone(), (Instance { bearer: t.bearer, transmitter: group.signer_pubkey }, None)); + } + for (id, idx) in &cache_standing { + let c = accepted[idx[0]].as_ref().expect("an accepted claim"); + let t = c.cache_transmission().expect("a cache-transmission"); + instances.insert(id.clone(), (Instance { bearer: t.bearer, transmitter: c.signer_pubkey }, Some(t.indices()))); + } + let plain: BTreeMap = instances.iter().map(|(k, (v, _))| (k.clone(), v.clone())).collect(); + let count = bearer_receipts::count(group.leaf_count, &accepted, &plain, &contradicted, count_only); + for (i, v) in &count.verdicts { + claims[*i] = ClaimVerdict::Bearer(v.clone()); + } + + // Step 6: the counts. + let bearers: Vec = standing + .iter() + .map(|(id, &i)| { + let t = accepted[i].as_ref().and_then(ClaimReceipt::transmission).expect("a transmission"); + let k = count.instance_sinks(id); + let energy = t.energy.as_ref().map(|e| (e.joules_micro, e.energy_provenance.clone())); + BearerLine { + bearer_id: id.clone(), + bearer: t.bearer, + sinks: k, + per_receiver_upper_bound: energy.as_ref().map(|(j, _)| per_receiver_upper_bound(*j, k)), + energy, + } + }) + .collect(); + let caches: Vec = cache_standing + .iter() + .map(|(id, idx)| { + let of: Vec<&ClaimReceipt> = idx.iter().map(|&i| accepted[i].as_ref().expect("an accepted claim")).collect(); + let t = of[0].cache_transmission().expect("a cache-transmission"); + let server = of[0].signer_pubkey; + let sent = t.indices(); + let k = count.instance_sinks(id); + let energy = t.energy.as_ref().map(|e| (e.joules_micro, e.energy_provenance.clone())); + CacheInstance { + bearer_id: id.clone(), + bearer: t.bearer, + server, + placement: place(&server, latest_issued(&of), &inp.heads), + received_by: sent.iter().map(|&j| (j, count.instance_received(id, j))).collect(), + sent, + sinks: k, + per_receiver_upper_bound: energy.as_ref().map(|(j, _)| per_receiver_upper_bound(*j, k)), + energy, + } + }) + .collect(); + let status = if count.sinks > 0 { + Status::Reconciled + } else if !standing.is_empty() { + Status::Transmitted + } else { + Status::Published + }; + + // §7.3: a sink's own instance. + // An instance whose declarations or cache claims were set aside is contradicted; one a + // declaration names is the publisher's; one a cache's claims name stands as the cache's. + let sink = b.sink.as_ref().map(|(bearer, id)| { + if contradicted.contains(id) { + return BEARER_CONTRADICTED; + } + match (standing.contains_key(id), instances.get(id)) { + (true, Some((inst, _))) => if inst.bearer == *bearer { "declared" } else { BEARER_CONTRADICTED }, + (false, Some((inst, _))) => if inst.bearer == *bearer { "cache-declared" } else { BEARER_CONTRADICTED }, + (_, None) => BEARER_NOT_DECLARED, + } + }); + // Statements (bearer-receipts §6.4): a publisher's declaration alone transmits. + let assertion = b.assertion.map(|a| match a { + Assertion::Transmitted(c) => { + if bearers.iter().any(|l| l.bearer == c) { + Ok(()) + } else { + Err(BEARER_NOT_DECLARED) + } + } + Assertion::Delivered(k) => { + if count.whole == 0 { + Err(DELIVERY_NOT_RECONCILED) + } else if count.whole < k { + Err(DELIVERY_EXCEEDS_RECONCILED) + } else { + Ok(()) + } + } + }); + let verdict = Verdict { + objects, + claims, + status, + sinks: count.sinks, + whole: count.whole, + received_by: count.received_by.clone(), + bearers, + caches, + sink, + assertion, + }; + Ok(Judged { group, accepted, instances, count, verdict }) +} + +/// §7.2: the verdict over one group with the caches' instances beside the publisher's. Only the +/// group can refuse it. +pub fn verdict(inp: &Inputs) -> Result { + judge(inp, inp.bearer.count_only.as_deref()).map(|j| j.verdict) +} + +/// One claim through jwp-receipts §3.1 steps 1 to 6 (§5): `accept`, `unchecked` when no group is +/// held (it stops at step 5), or `reject step=N reason=…`. `earlier` are its signer's claims +/// before it, in chain order, each held only if it passes steps 1 to 4; `context` is the receipt +/// it is checked against, and `objects` the object receipts held under it. +pub fn check_claim(earlier: &[String], wire: &str, context: Option<&Value>, objects: &[Value]) -> String { + let reject = |r: Rejection| format!("reject step={} reason={}", r.step, r.reason.label()); + let mut held: BTreeMap<[u8; 32], ClaimReceipt> = BTreeMap::new(); + for w in earlier { + if let Ok(c) = crate::claim_receipt::verify_claim_json(w) { + held.insert(c.signer_pubkey, c); + } + } + let c = match crate::claim_receipt::verify_claim_json(wire) { + Ok(c) => c, + Err(r) => return reject(r), + }; + if let Err(r) = c.check_parent(held.get(&c.signer_pubkey)) { + return reject(r); + } + let Some(ctx) = context else { return "unchecked".into() }; + let step6 = |reason| reject(Rejection { step: 6, reason }); + if ctx.get("kind").and_then(Value::as_str) != Some("group") { + return step6(ClaimReason::ContextMismatch); + } + let group = match GroupReceipt::from_json(ctx) { + Ok(g) if g.verify().is_ok() => g, + _ => return step6(ClaimReason::ContextInvalid), + }; + let receipts: Vec = objects.iter().filter_map(|o| ObjectReceipt::from_json(o).ok()).collect(); + let refs: Vec<&ObjectReceipt> = receipts.iter().collect(); + match c.check_cache_transmission_against(&group, &refs) { + Ok(()) => "accept".into(), + Err(r) => reject(r), + } +} + +// ───────────────────────────── §8: held by a deadline ───────────────────────────── + +/// §8.1: the population digest, SHA-256 over the domain, the region's length and bytes, and the +/// count and bytes of the keys in order. +pub fn population_digest(region: &str, keys: &[[u8; 32]]) -> [u8; 32] { + let mut h = Sha256::new(); + h.update(POPULATION_DOMAIN); + h.update([region.len() as u8]); + h.update(region.as_bytes()); + h.update((keys.len() as u32).to_be_bytes()); + for k in keys { + h.update(k); + } + h.finalize().into() +} + +/// §8.1: whether a population is well formed: a region code, 1 to 2^20 keys, strictly +/// increasing. +pub fn population_ok(region: &str, keys: &[[u8; 32]]) -> bool { + crate::region::code(region.as_bytes()) + && (1..=MAX_POPULATION).contains(&keys.len()) + && keys.windows(2).all(|w| w[0] < w[1]) +} + +/// The deadline of §8.2. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Deadline { + /// An instant the relying party states. + Stated(u64), + /// A timeliness claim's text, whose standing entry for the object supplies `by_ms`. + Timeliness(String), +} + +/// What is tallied (§8.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Target { + pub index: u64, + pub deadline: Deadline, + pub region: String, + pub population: Vec<[u8; 32]>, + pub miss_target_ppm: u64, +} + +/// An acknowledgement given (§8.2): its record's bytes and the item list of each of its +/// entries. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Given { + pub record: Vec, + pub items: Vec>, +} + +/// One server credited by the tally (§8.4). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Server { + pub key: [u8; 32], + /// `None`: the group's own key, the publisher. + pub placement: Option, + pub hits: u64, + pub sole: u64, +} + +/// §8.4 and §8.5. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Tally { + pub region: String, + pub population_digest: [u8; 32], + pub deadline_ms: u64, + /// The timeliness claim's link hash, when the deadline came from one. + pub deadline_claim: Option<[u8; 32]>, + /// Each holdings record's label, in order. + pub records: Vec, + pub n: u64, + pub hits: u64, + pub misses: u64, + pub miss_ppm: u64, + pub missing: Vec<[u8; 32]>, + /// (key, `reconciliation` or a record's digest, reason), in order of key then source. + pub set_aside: Vec<([u8; 32], String, &'static str)>, + pub servers: Vec, + pub unattributed: u64, + /// Each given acknowledgement's label, in order: `read`, `declaration`, `before-group` or + /// `reject reason=…`. + pub acknowledgements: Vec, + /// Each claim's label under the verdict that counts the population's keys (§7.2). + pub claims: Vec, + pub met: bool, +} + +/// Why no tally was derived (§8.2). +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Refusal { + Group(DeliveryError), + Input(&'static str), +} + +impl Refusal { + pub fn label(&self) -> &'static str { + match self { + Refusal::Group(e) => e.reason.label(), + Refusal::Input(r) => r, + } + } +} + +/// A held-at statement of §8.3, with the servers it credits. +#[derive(Clone, Debug)] +struct Evidence { + held: HeldAt, + servers: Vec<[u8; 32]>, +} + +/// An object of the group the evidence is read for: its position, content hash and envelope +/// length. +#[derive(Clone, Copy, Debug)] +struct Wanted { + index: u64, + hash: [u8; 32], + len: u64, +} + +/// What §8.3 reads from the given evidence. +struct Read { + /// The held-at statements of acknowledgements and counted reconciliations. + evidence: Vec, + set_aside: Vec<([u8; 32], String, &'static str)>, + acknowledgements: Vec, + records: Vec, + /// The holdings records that stand, held to the group as timeliness §6.2 step 4 holds them: + /// the held-at statements of the third kind are theirs (timeliness §6.2 step 5). + standing: Vec, +} + +/// An acknowledgement read under settlement §3.6, with every entry's item list read and +/// recomputing. +fn read_ack(g: &Given) -> Result<(settlement::Ack, Vec), &'static str> { + let a = settlement::Ack::parse(&g.record).map_err(|r| r.code())?; + if a.mode == settlement::mode::DECLARATION { + return Ok((a, Vec::new())); + } + if g.items.len() != a.entries.len() { + return Err(RECORD_MISSING); + } + let mut items = Vec::new(); + for (e, l) in a.entries.iter().zip(&g.items) { + let list = settlement::read_items(l).map_err(|r| r.code())?; + if !e.recomputes(&list) { + return Err(settlement::Reason::ItemsMismatch.code()); + } + items.extend(list); + } + Ok((a, items)) +} + +/// §8.3 over the judged group, for the keys `keys` (every key when `None`): the held-at +/// statements of acknowledgements and counted reconciliations for the objects `wanted`, and the +/// holdings records that stand, whose statements the caller derives for the objects it asks +/// about. +fn read_evidence(j: &Judged, acks: &[Given], records: &[Vec], wanted: &[Wanted], keys: Option<&BTreeSet<[u8; 32]>>) -> Read { + let group = &j.group; + let link = group.link_hash(); + let start = crate::claim_receipt::rfc3339_seconds(&group.group_start).unwrap_or(i64::MIN); + let before = |seconds: u64| timeliness::before_group(&HeldAt { key: [0; 32], group: link, index: 0, instant_ms: 0, seconds }, start); + let counts = |k: &[u8; 32]| keys.is_none_or(|ks| ks.contains(k)); + let mut evidence = Vec::new(); + let mut set_aside = Vec::new(); + + // Reconciliations counted at §7.2 step 5. + let counted: BTreeSet = + j.count.verdicts.iter().filter(|(_, v)| matches!(v, BearerVerdict::Counted | BearerVerdict::Joined)).map(|(i, _)| *i).collect(); + for &i in &counted { + let c = j.accepted[i].as_ref().expect("a counted claim"); + let r = c.reconciliation().expect("a reconciliation"); + if !counts(&c.signer_pubkey) { + continue; + } + let seconds = crate::claim_receipt::rfc3339_seconds(&c.issued_at).unwrap_or(i64::MIN); + for w in wanted.iter().filter(|w| r.has(w.index)) { + if seconds < start { + set_aside.push((c.signer_pubkey, "reconciliation".to_string(), timeliness::HELD_BEFORE_GROUP)); + continue; + } + let Some((ms, seconds)) = issued_instant(&c.issued_at) else { continue }; + let servers = match j.instances.get(&r.bearer_id) { + Some((inst, None)) => vec![inst.transmitter], + Some((inst, Some(sent))) if sent.contains(&w.index) => vec![inst.transmitter], + _ => vec![], + }; + evidence.push(Evidence { held: HeldAt { key: c.signer_pubkey, group: link, index: w.index, instant_ms: ms, seconds }, servers }); + } + } + + // Acknowledgements. + let mut acknowledgements = Vec::with_capacity(acks.len()); + let mut readable: Vec<(settlement::Ack, Vec)> = Vec::new(); + for g in acks { + match read_ack(g) { + Err(r) => acknowledgements.push(format!("reject reason={r}")), + Ok((a, _)) if a.mode == settlement::mode::DECLARATION => acknowledgements.push("declaration".into()), + Ok((a, items)) => { + acknowledgements.push(if before(window_instant(a.end).1) { "before-group".into() } else { "read".into() }); + readable.push((a, items)); + } + } + } + let downstreams: BTreeSet<[u8; 32]> = readable.iter().map(|(a, _)| a.downstream).filter(|k| counts(k)).collect(); + for k in &downstreams { + for w in wanted { + let mut of: Vec> = Vec::new(); + for (a, items) in readable.iter().filter(|(a, _)| a.downstream == *k) { + let ranges: Vec<(u64, u64)> = items.iter().filter(|x| x.content_hash == w.hash).map(|x| (x.start, x.end)).collect(); + if ranges.is_empty() { + continue; + } + if before(window_instant(a.end).1) { + set_aside.push((*k, hex(&a.digest()), timeliness::HELD_BEFORE_GROUP)); + continue; + } + of.push(Part { ack: a, ranges, digest: a.digest() }); + } + of.sort_by_key(|p| (p.ack.end, p.digest)); + let mut union: Vec<(u64, u64)> = Vec::new(); + let mut servers: Vec<[u8; 32]> = Vec::new(); + for p in &of { + union.extend(p.ranges.iter().copied()); + if !servers.contains(&p.ack.upstream) { + servers.push(p.ack.upstream); + } + if covers(&mut union, w.len) { + let (ms, seconds) = window_instant(p.ack.end); + servers.sort(); + evidence.push(Evidence { held: HeldAt { key: *k, group: link, index: w.index, instant_ms: ms, seconds }, servers }); + break; + } + } + } + } + + // Holdings records, held to the group as timeliness §6.2 step 4 holds them. + let mut verdicts: Vec = Vec::with_capacity(records.len()); + let mut read: BTreeMap = BTreeMap::new(); + for (k, bytes) in records.iter().enumerate() { + let v = Holdings::read(bytes).and_then(|h| { + match h.entry(&link) { + Some(e) if e.leaf_count != group.leaf_count => return Err(holdings::LEAF_COUNT_MISMATCH), + Some(_) if before(h.as_of_ms / 1000) => return Err(timeliness::HELD_BEFORE_GROUP), + _ => {} + } + Ok(h) + }); + match v { + Ok(h) => { + read.insert(k, h); + verdicts.push(RecordVerdict::Stands); + } + Err(r) => verdicts.push(RecordVerdict::Refused(r)), + } + } + let mut at_instant: BTreeMap<([u8; 32], u64), Vec> = BTreeMap::new(); + for (k, h) in &read { + at_instant.entry((h.holder, h.as_of_ms)).or_default().push(*k); + } + for ks in at_instant.values() { + if ks.iter().any(|k| read[k].digest() != read[&ks[0]].digest()) { + for k in ks { + verdicts[*k] = RecordVerdict::SetAside(holdings::CONTRADICTED); + } + } + } + let records_read: Vec = verdicts.iter().map(RecordVerdict::label).collect(); + let standing: Vec = + read.into_iter().filter(|(k, _)| verdicts[*k] == RecordVerdict::Stands).map(|(_, h)| h).filter(|h| counts(&h.holder)).collect(); + set_aside.sort(); + Read { evidence, set_aside, acknowledgements, records: records_read, standing } +} + +/// An acknowledgement that holds an item of the object, with that object's byte ranges in it and +/// the record's digest (settlement §3.5), which orders records of one `end`. +struct Part<'a> { + ack: &'a settlement::Ack, + ranges: Vec<(u64, u64)>, + digest: [u8; 32], +} + +/// Whether the union of `ranges` covers [0, `len`): sorted and merged in place. +fn covers(ranges: &mut Vec<(u64, u64)>, len: u64) -> bool { + ranges.sort(); + let mut merged: Vec<(u64, u64)> = Vec::new(); + for &(s, e) in ranges.iter() { + match merged.last_mut() { + Some(last) if s <= last.1 => last.1 = last.1.max(e), + _ => merged.push((s, e)), + } + } + *ranges = merged; + ranges.first().is_some_and(|&(s, e)| s == 0 && e >= len) +} + +/// The objects of the judged group whose receipts and envelopes the verifier holds +/// `delivered-verified`, with their envelope lengths (§8.2 step 5). +fn verified(inp: &Inputs, j: &Judged) -> Vec { + let mut out: Vec = Vec::new(); + for (o, label) in inp.bearer.objects.iter().zip(&j.verdict.objects) { + if label != "delivered-verified" { + continue; + } + let (Ok(r), Some(env)) = (ObjectReceipt::from_json(&o.receipt), o.envelope.as_ref()) else { continue }; + if !out.iter().any(|w| w.index == r.object_id) { + out.push(Wanted { index: r.object_id, hash: r.content_hash, len: env.len() as u64 }); + } + } + out.sort_by_key(|w| w.index); + out +} + +/// A timeliness claim's standing entry for object `index` of the judged group (timeliness §4.3, +/// §6.2 steps 2 and 3), with the claim's link hash; `deadline_not_stated` otherwise. The claim is +/// checked against the group, the object receipts held under it and their envelopes where held, +/// as timeliness §6.2 step 1 holds them, so its checks of envelopes (timeliness §4.3 steps 6 and +/// 8) run. +fn deadline_entry(inp: &Inputs, j: &Judged, claim: &str, index: u64) -> Result<(TimelinessEntry, [u8; 32]), &'static str> { + let c = crate::claim_receipt::verify_claim_json(claim).map_err(|_| timeliness::DEADLINE_NOT_STATED)?; + c.check_parent(None).map_err(|_| timeliness::DEADLINE_NOT_STATED)?; + let receipts: Vec<(ObjectReceipt, Option<&[u8]>)> = inp + .bearer + .objects + .iter() + .filter_map(|o| ObjectReceipt::from_json(&o.receipt).ok().map(|r| (r, o.envelope.as_deref()))) + .collect(); + let held = [HeldGroup { group: &j.group, objects: receipts.iter().map(|(r, b)| (r, *b)).collect() }]; + c.check_timeliness_against(&j.group, &held).map_err(|_| timeliness::DEADLINE_NOT_STATED)?; + let e = c.timeliness().and_then(|t| t.entry(index)).ok_or(timeliness::DEADLINE_NOT_STATED)?; + Ok((e.clone(), c.link_hash())) +} + +/// §8: the tally of `t` over the verdict's inputs, the acknowledgements and the holdings records +/// given. +pub fn tally(inp: &Inputs, acks: &[Given], records: &[Vec], t: &Target) -> Result { + // Steps 1 and 2. + if !population_ok(&t.region, &t.population) { + return Err(Refusal::Input(POPULATION_INVALID)); + } + if matches!(t.deadline, Deadline::Stated(d) if d > LAST_INSTANT_MS) || t.miss_target_ppm > MAX_TARGET_PPM { + return Err(Refusal::Input(TARGET_INVALID)); + } + // Step 3: the verdict, counting the population's keys. + let j = judge(inp, Some(&t.population)).map_err(Refusal::Group)?; + if crate::claim_receipt::rfc3339_seconds(&j.group.group_start).is_none() { + return Err(Refusal::Input(CONTEXT_INVALID)); + } + // Step 4. + if t.index >= j.group.leaf_count { + return Err(Refusal::Input(holdings::OBJECT_OUT_OF_RANGE)); + } + // Step 5. + let Some(w) = verified(inp, &j).into_iter().find(|w| w.index == t.index) else { + return Err(Refusal::Input(OBJECT_NOT_VERIFIED)); + }; + // Step 6. + let (deadline_ms, deadline_claim) = match &t.deadline { + Deadline::Stated(d) => (*d, None), + Deadline::Timeliness(claim) => { + let (e, link) = deadline_entry(inp, &j, claim, t.index).map_err(Refusal::Input)?; + (e.by_ms, Some(link)) + } + }; + + // §8.3. + let keys: BTreeSet<[u8; 32]> = t.population.iter().copied().collect(); + let mut read = read_evidence(&j, acks, records, &[w], Some(&keys)); + let standing: Vec<&Holdings> = read.standing.iter().collect(); + for held in timeliness::held_from_records(&standing, &[(j.group.link_hash(), w.index)]) { + read.evidence.push(Evidence { held, servers: vec![] }); + } + let on_time: Vec<&Evidence> = read.evidence.iter().filter(|e| e.held.instant_ms <= deadline_ms).collect(); + + // §8.4. + let mut hits = 0u64; + let mut missing = Vec::new(); + let mut credit: BTreeMap<[u8; 32], (BTreeSet<[u8; 32]>, bool)> = BTreeMap::new(); + for k in &t.population { + let of: Vec<&&Evidence> = on_time.iter().filter(|e| e.held.key == *k).collect(); + if of.is_empty() { + missing.push(*k); + continue; + } + hits += 1; + let servers: BTreeSet<[u8; 32]> = of.iter().flat_map(|e| e.servers.iter().copied()).collect(); + let none = of.iter().any(|e| e.servers.is_empty()); + credit.insert(*k, (servers, none)); + } + let n = t.population.len() as u64; + let misses = n - hits; + let miss_ppm = (misses * MILLION).div_ceil(n); + let all: BTreeSet<[u8; 32]> = credit.values().flat_map(|(s, _)| s.iter().copied()).collect(); + let servers: Vec = all + .iter() + .map(|s| { + let placement = (*s != j.group.signer_pubkey).then(|| { + let at = on_time.iter().filter(|e| e.servers.contains(s)).map(|e| e.held.instant_ms).max().unwrap_or(0); + place(s, at, &inp.heads) + }); + Server { + key: *s, + placement, + hits: credit.values().filter(|(set, _)| set.contains(s)).count() as u64, + sole: credit.values().filter(|(set, none)| set.len() == 1 && set.contains(s) && !none).count() as u64, + } + }) + .collect(); + let unattributed = credit.values().filter(|(set, _)| set.is_empty()).count() as u64; + Ok(Tally { + region: t.region.clone(), + population_digest: population_digest(&t.region, &t.population), + deadline_ms, + deadline_claim, + records: read.records, + n, + hits, + misses, + miss_ppm, + missing, + set_aside: read.set_aside, + servers, + unattributed, + acknowledgements: read.acknowledgements, + claims: j.verdict.claims.iter().map(ClaimVerdict::label).collect(), + met: miss_ppm <= t.miss_target_ppm, + }) +} + +/// §9: timeliness §6.3's lines for the timeliness claim's entry for object `index` of the group, +/// from held-at statements of the three kinds. The holdings records' are read exactly as +/// timeliness §6.2 step 5 and §6.3 read them: for the primary and its fallback, whatever +/// envelopes are held, with a line for each holder with a record that stands and has an entry for +/// the group or the fallback's group. Those of acknowledgements and counted reconciliations +/// (§8.3) are read for every object of the group held `delivered-verified`, with a line for each +/// key with one; a fallback in another group is held by records alone. +pub fn timeliness_lines(inp: &Inputs, acks: &[Given], records: &[Vec], claim: &str, index: u64) -> Result, Refusal> { + let j = judge(inp, inp.bearer.count_only.as_deref()).map_err(Refusal::Group)?; + let (entry, _) = deadline_entry(inp, &j, claim, index).map_err(Refusal::Input)?; + let link = j.group.link_hash(); + let read = read_evidence(&j, acks, records, &verified(inp, &j), None); + let standing: Vec<&Holdings> = read.standing.iter().collect(); + let groups: Vec<[u8; 32]> = std::iter::once(link).chain(entry.fallback.as_ref().map(|f| f.group)).collect(); + let asked: Vec<([u8; 32], u64)> = + std::iter::once((link, entry.leaf_index)).chain(entry.fallback.as_ref().map(|f| (f.group, f.leaf_index))).collect(); + let mut held: Vec = timeliness::held_from_records(&standing, &asked); + let mut holders: BTreeSet<[u8; 32]> = + standing.iter().filter(|h| groups.iter().any(|g| h.entry(g).is_some())).map(|h| h.holder).collect(); + for e in &read.evidence { + holders.insert(e.held.key); + held.push(e.held); + } + Ok(timeliness::lines(&link, &entry, &holders, &held)) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn instants_round_up_to_the_millisecond() { + let d = 1_793_707_200_000; // 2026-11-03T12:00:00Z + assert_eq!(issued_instant("2026-11-03T12:00:00Z"), Some((d, d / 1000))); + assert_eq!(issued_instant("2026-11-03T12:00:00.000001Z"), Some((d + 1, d / 1000))); + assert_eq!(issued_instant("2026-11-03T12:00:00.2Z"), Some((d + 200, d / 1000))); + assert_eq!(issued_instant("2026-11-03T12:00:00.999000Z"), Some((d + 999, d / 1000))); + assert_eq!(issued_instant("2026-11-03T12:00:00.9991Z"), Some((d + 1_000, d / 1000)), "into the next second"); + assert_eq!(issued_instant("2026-11-03T14:00:00+02:00"), Some((d, d / 1000)), "the offset applied"); + assert_eq!(issued_instant("2026-11-03T11:59:60Z"), Some((d, d / 1000)), "second 60 is the next minute's first"); + assert_eq!(issued_instant("1969-12-31T23:59:59Z"), None); + assert_eq!(window_instant(d * 1000), (d, d / 1000 - 1), "the last microsecond of a window ending at D is before D"); + assert_eq!(window_instant(d * 1000 + 1), (d, d / 1000)); + assert_eq!(window_instant(d * 1000 + 2), (d + 1, d / 1000)); + } + + #[test] + fn coverage_is_the_union_from_zero() { + assert!(covers(&mut vec![(1000, 2000), (0, 1000)], 2000)); + assert!(covers(&mut vec![(0, 1500), (500, 2000)], 2000), "overlapping parts"); + assert!(!covers(&mut vec![(0, 1999)], 2000)); + assert!(!covers(&mut vec![(1, 2000)], 2000)); + assert!(!covers(&mut vec![(0, 900), (1000, 2000)], 2000), "a gap"); + } + + #[test] + fn a_population_has_one_form_and_its_digest_binds_the_region() { + let (a, b) = ([1u8; 32], [2u8; 32]); + assert!(population_ok("XA-1", &[a, b])); + assert!(population_ok("XA", &[a])); + assert!(population_ok("XA-ABC", &[a])); + assert!(!population_ok("xa-1", &[a])); + assert!(!population_ok("XA-ABCD", &[a])); + assert!(!population_ok("XA", &[])); + assert!(!population_ok("XA", &[b, a])); + assert!(!population_ok("XA", &[a, a])); + assert_ne!(population_digest("XA-1", &[a, b]), population_digest("XA-2", &[a, b])); + assert_ne!(population_digest("XA-1", &[a, b]), population_digest("XA-1", &[a])); + let mut want = Sha256::new(); + want.update(b"wai:cache-population\x01"); + want.update([4u8]); + want.update(b"XA-1"); + want.update(2u32.to_be_bytes()); + want.update(a); + want.update(b); + assert_eq!(population_digest("XA-1", &[a, b]), <[u8; 32]>::from(want.finalize())); + } + + #[test] + fn a_retired_key_is_placed_against_its_until() { + let until = Some("2026-11-03T12:00:00Z"); + assert!(!past_until(1_793_707_200_000, until)); + assert!(past_until(1_793_707_200_001, until)); + assert!(past_until(0, Some("not a time"))); + } + + #[test] + fn the_codes_are_listed_once_and_the_roles_are_settlements() { + let set: BTreeSet<&str> = CODES.iter().copied().collect(); + assert_eq!(set.len(), CODES.len()); + assert_eq!(SERVING_ROLES, ["cache/serve", "live/relay", "live/compositor", "live/ingest"]); + assert!(crate::key_log::authority_ok(AUTHORITY) && crate::key_log::authority_ok(CLASS_AUTHORITY)); + } +} diff --git a/wai/wai-rs/src/cache_authority/corpus.rs b/wai/wai-rs/src/cache_authority/corpus.rs new file mode 100644 index 000000000..8fdb371af --- /dev/null +++ b/wai/wai-rs/src/cache_authority/corpus.rs @@ -0,0 +1,2162 @@ +//! The conformance corpus of extensions/cache-authority.md §12: `live-conformance/cache-authority/`. +//! +//! [`generate`] writes `vectors.json` from fixed seeds: every key is an Ed25519 key from a seed of +//! one byte repeated 32 times, every instant a constant, every envelope is written here to an exact +//! length, and Ed25519 signing is deterministic (RFC 8032), so the file is the same bytes on every +//! machine. Each case states the outcome it was written to have, declared here and never copied +//! from [`super::place`], [`super::verdict`] or [`super::tally`]: every count, rate and label is +//! written out by hand. [`verify`] requires the module to reach every outcome, and the corpus to +//! give every reason of §11. `live-conformance/cache_authority_verify.py` checks the same file from +//! the extension's text, sharing no code with this module. + +use super::*; +use crate::bearer_receipts::HeldObject; +use crate::claim_receipt::bearer::{ATTESTS_RECEIVED, ATTESTS_TRANSMITTED}; +use crate::claim_receipt::timeliness::ATTESTS_VALUED; +use crate::claim_receipt::{ + unhex, CacheTransmissionClaim, DecayPoint, Fallback, ReconciliationClaim, SessionEnergy, SubjectType, TimelinessClaim, + TransmissionClaim, +}; +use crate::container::{Conditioning, DerivedFrom, Manifest, ModelRequirement, Wai}; +use crate::energy_class::{CounterFiltering, EnergyProvenance, Uncertainty}; +use crate::jwp_delivery::{root as merkle_root, GroupBuilder, ObjectLabel}; +use crate::key_log::{commitment, KeyEntry}; +use crate::settlement::{class, item_list, mode, role, Ack, Entry as AckEntry, Item}; +use ed25519_dalek::SigningKey; +use serde_json::{json, Map}; + +const P: u8 = 0x11; +const C1: u8 = 0x21; +const C2: u8 = 0x22; +const C3: u8 = 0x23; +const C4: u8 = 0x24; +const C5: u8 = 0x25; +const C6: u8 = 0x26; +const C7: u8 = 0x27; +const C8: u8 = 0x28; +const R1: u8 = 0x31; +const R2: u8 = 0x32; +const R3: u8 = 0x33; +const R4: u8 = 0x34; +const R9: u8 = 0x39; +const OP_ROOT: u8 = 0x71; +const OP_NEXT: u8 = 0x72; +const OTHER_ROOT: u8 = 0x73; +const OTHER_NEXT: u8 = 0x74; + +const OP: &str = "https://operator.example"; +const OTHER: &str = "https://other.example"; +const D1: &str = "did:web:publisher.example#d1"; +const LOG_TIME: &str = "2026-11-01T00:00:00Z"; +const COMPROMISED: &str = "2026-11-01T06:00:00Z"; +const UNTIL: &str = "2026-11-03T12:00:00Z"; + +const GROUP_START: &str = "2026-11-03T10:00:00Z"; +const GROUP_END: &str = "2026-11-03T10:00:10Z"; +const TRANSMITTED: &str = "2026-11-03T10:00:30Z"; +const CACHE_SENT: &str = "2026-11-03T11:00:05Z"; +const RECONCILED: &str = "2026-11-03T11:30:00Z"; +/// 2026-11-03T12:00:00Z, the deadline of the tallies. +const D: u64 = 1_793_707_200_000; +/// 2026-11-03T10:00:00Z, the groups' start. +const START_MS: u64 = D - 7_200_000; +/// Every envelope of G is this long. +const LENGTH: u64 = 2_000; +const HOUR: u64 = 3_600_000; +/// 9999-12-31T23:59:59.999Z. +const LAST: u64 = LAST_INSTANT_MS; + +const SAT: &str = "https://bearer.example/sat"; +const MESH_C1: &str = "https://bearer.example/mesh-c1"; +const MESH_C2: &str = "https://bearer.example/mesh-c2"; +const MESH_C3: &str = "https://bearer.example/mesh-c3"; +const MESH_C4: &str = "https://bearer.example/mesh-c4"; +const MESH_X: &str = "https://bearer.example/mesh-x"; +const UNKNOWN: &str = "https://bearer.example/unknown"; + +const IV: &str = "inclusion-verified"; + +fn key(seed: u8) -> SigningKey { + SigningKey::from_bytes(&[seed; 32]) +} + +fn pk(seed: u8) -> [u8; 32] { + key(seed).verifying_key().to_bytes() +} + +fn h(seed: u8) -> String { + hex(&pk(seed)) +} + +/// A signer's identifier: the publisher's and the operator's nodes' origin-bound names, and a +/// `did:key` for every other key (the fresh C2 and the receivers). +fn sid(seed: u8) -> String { + match seed { + P => D1.into(), + C1 | C3 | C4 | C5 | C6 | C7 | C8 => format!("did:web:operator.example#c{}", seed - 0x20), + s => crate::signer_id::did_key(&pk(s)), + } +} + +// ───────────────────────────── groups ───────────────────────────── + +const CAP: &str = "wai.text.zstd"; + +fn base_manifest() -> Manifest { + Manifest::new("binary", "improve", ModelRequirement::new(CAP), Conditioning::new("bytes")) +} + +/// A `WAI1` envelope of exactly `len` octets, its payload a fixed pattern no case decodes. +fn sized(len: u64, tag: u64) -> Vec { + sized_under(base_manifest(), len, tag) +} + +/// A floor object of [`LENGTH`] octets: a rendition derived from `motif`, as packaging §7.2 +/// writes one. +fn floor(motif: &[u8; 32], tag: u64) -> Vec { + let settings = blake3::hash(&[DerivedFrom::SETTINGS_DOMAIN, b"{}"].concat()); + let d = DerivedFrom { motif: hex(motif), motif_capability: CAP.into(), renderer: "floor".into(), settings: hex(settings.as_bytes()) }; + sized_under(base_manifest().with_derived_from(&d), LENGTH, tag) +} + +/// A `WAI1` envelope of exactly `len` octets under `manifest`. +fn sized_under(manifest: Manifest, len: u64, tag: u64) -> Vec { + let make = |n: usize| { + let payload: Vec = (0..n).map(|j| (j as u64 * 131 + tag * 17 + 7) as u8).collect(); + Wai::new(manifest.clone(), payload).to_bytes().expect("a small envelope writes") + }; + let e = make(len as usize - make(0).len()); + assert_eq!(e.len() as u64, len); + e +} + +/// A group and its objects: (envelope, receipt). +#[derive(Clone)] +struct Publication { + group: GroupReceipt, + objects: Vec<(Vec, ObjectReceipt)>, +} + +impl Publication { + fn link(&self) -> [u8; 32] { + self.group.link_hash() + } + fn n(&self) -> u64 { + self.group.leaf_count + } + /// Every object receipt, and the envelopes of the positions in `bytes`. + fn held(&self, bytes: &[usize]) -> Vec { + self.objects + .iter() + .enumerate() + .map(|(i, (e, r))| HeldObject { receipt: r.to_json(), envelope: bytes.contains(&i).then(|| e.clone()) }) + .collect() + } + fn receipts(&self, idx: &[usize]) -> Vec { + idx.iter().map(|&i| self.objects[i].1.to_json()).collect() + } + fn leaf(&self, i: u64) -> [u8; 32] { + self.objects[i as usize].1.leaf() + } + /// A bitmap of `idx` and the root over their leaves. + fn commitment(&self, idx: &[u64]) -> (Vec, [u8; 32]) { + let leaves: Vec<[u8; 32]> = idx.iter().map(|&i| self.leaf(i)).collect(); + (ReconciliationClaim::bitmap(self.n(), idx), merkle_root(&leaves)) + } +} + +fn publish(track: u64, n: u64, start: &str, labelled: bool) -> Publication { + compose(track, (0..n).map(|i| sized(LENGTH, track * 100 + i)).collect(), start, labelled) +} + +fn compose(track: u64, envelopes: Vec>, start: &str, labelled: bool) -> Publication { + let mut b = GroupBuilder::default(); + for (i, e) in envelopes.iter().enumerate() { + let c = crate::jwp_hash::content_hash(e); + if labelled { + let class = EnergyProvenance::OnChipCounter { + uncertainty: Uncertainty { relative_ppm: 20_000, window_us: 1_000_000 }, + filtering: CounterFiltering::Unknown, + }; + b.add(c, 100_000 + 10_000 * i as u64, "edge-1", Some(ObjectLabel::Class(class))); + } else { + b.add(c, 0, "", None); + } + } + let (group, receipts) = b.finish(&key(P), D1, track, 1, start, GROUP_END, None, labelled).expect("the corpus's objects compose"); + Publication { group, objects: envelopes.into_iter().zip(receipts).collect() } +} + +/// G, the tallied group of four; G9 of nine; GL with labelled leaves; GX as G with a `group_start` +/// that is not a date-time, validly signed; GF of four, whose object 2 is a floor derived from its +/// object 1, a fallback in the primary's own group. +struct Groups { + g: Publication, + g9: Publication, + gl: Publication, + gx: Publication, + gf: Publication, +} + +fn groups() -> Groups { + let mut f: Vec> = (0..4).map(|i| sized(LENGTH, 500 + i)).collect(); + f[2] = floor(&crate::jwp_hash::content_hash(&f[1]), 502); + Groups { + g: publish(1, 4, GROUP_START, false), + g9: publish(2, 9, GROUP_START, false), + gl: publish(3, 4, GROUP_START, true), + gx: publish(4, 4, "not a time", false), + gf: compose(5, f, GROUP_START, false), + } +} + +/// `p`'s group receipt with its signature broken. +fn broken_group(p: &Publication) -> Value { + let mut g = p.group.clone(); + g.sig[0] ^= 1; + g.to_json() +} + +// ───────────────────────────── heads ───────────────────────────── + +fn revision(origin: &str, root: u8, next: u8, keys: Vec) -> Revision { + let r = Revision { + origin: origin.into(), + seq: 0, + prev: None, + issued_at: LOG_TIME.into(), + root: [0; 32], + next_root: commitment(&pk(next)), + keys, + revoked_modules: vec![], + grant_max_s: 86_400, + status_max_age_s: 3_600, + sig: [0; 64], + hybrid: None, + }; + Revision::seal(&key(root), r).expect("a well-formed revision") +} + +fn revoked(id: &str, seed: u8, may_sign: &[&str]) -> KeyEntry { + KeyEntry { status: EntryStatus::Revoked, compromised_since: Some(COMPROMISED.into()), ..KeyEntry::active(id, pk(seed), may_sign) } +} + +/// The operator's log: C1 active, C3 revoked, C4 retired at [`UNTIL`], C5 a relay, C6 and C7 +/// revoked, C8 with `delivery-gap` alone. C2 is in no log. +fn operator() -> Revision { + let retired = KeyEntry { status: EntryStatus::Retired, until: Some(UNTIL.into()), ..KeyEntry::active("c4", pk(C4), &[AUTHORITY, CLASS_AUTHORITY]) }; + revision( + OP, + OP_ROOT, + OP_NEXT, + vec![ + KeyEntry::active("c1", pk(C1), &[AUTHORITY, CLASS_AUTHORITY]), + revoked("c3", C3, &[AUTHORITY]), + retired, + KeyEntry::active("c5", pk(C5), &["live/relay"]), + revoked("c6", C6, &[AUTHORITY]), + revoked("c7", C7, &["live/relay"]), + KeyEntry::active("c8", pk(C8), &["delivery-gap"]), + ], + ) +} + +/// The other origin's log: C1, C6 and C7 active with `cache/serve`. +fn other() -> Revision { + revision( + OTHER, + OTHER_ROOT, + OTHER_NEXT, + vec![ + KeyEntry::active("c1", pk(C1), &[AUTHORITY]), + KeyEntry::active("c6", pk(C6), &[AUTHORITY]), + KeyEntry::active("c7", pk(C7), &[AUTHORITY]), + ], + ) +} + +fn broken(r: Revision) -> String { + let mut r = r; + r.sig[0] ^= 1; + r.to_json() +} + +fn heads(list: &[(&str, String)]) -> BTreeMap { + list.iter().map(|(o, t)| ((*o).to_owned(), t.clone())).collect() +} + +fn both() -> BTreeMap { + heads(&[(OP, operator().to_json()), (OTHER, other().to_json())]) +} + +fn heads_value(hs: &BTreeMap) -> Value { + Value::Object(hs.iter().map(|(o, t)| (o.clone(), Value::String(t.clone()))).collect()) +} + +// ───────────────────────────── claims ───────────────────────────── + +fn estimator(joules_micro: u64) -> SessionEnergy { + SessionEnergy::new(joules_micro, &EnergyProvenance::Estimator) +} + +fn cache(p: &Publication, bearer: Bearer, id: &str, idx: &[u64], energy: Option) -> ClaimBody { + let (sent, sent_root) = p.commitment(idx); + ClaimBody::CacheTransmission(CacheTransmissionClaim { + bearer, + bearer_id: id.into(), + leaf_count: p.n(), + sent, + sent_root, + energy, + attests: ATTESTS_TRANSMITTED.into(), + }) +} + +fn raw_cache(bearer: Bearer, leaf_count: u64, sent: Vec, sent_root: [u8; 32], attests: &str) -> ClaimBody { + ClaimBody::CacheTransmission(CacheTransmissionClaim { + bearer, + bearer_id: MESH_C1.into(), + leaf_count, + sent, + sent_root, + energy: None, + attests: attests.into(), + }) +} + +fn transmission(bearer: Bearer, id: &str) -> ClaimBody { + ClaimBody::Transmission(TransmissionClaim { bearer, bearer_id: id.into(), energy: None, attests: ATTESTS_TRANSMITTED.into() }) +} + +fn reconciliation(p: &Publication, bearer: Bearer, id: &str, idx: &[u64]) -> ClaimBody { + let (received, received_root) = p.commitment(idx); + ClaimBody::Reconciliation(ReconciliationClaim { + bearer, + bearer_id: id.into(), + leaf_count: p.n(), + received, + received_root, + attests: ATTESTS_RECEIVED.into(), + }) +} + +/// P's timeliness claim about G: entries for `objects`, each of use from the group's start, by +/// `by_ms`, a hard deadline. +fn timeliness_claim(g: &Publication, objects: &[usize], by_ms: u64) -> String { + timeliness_claim_of(g, objects.iter().map(|&i| entry(g, i, by_ms, None)).collect()) +} + +/// An entry for object `i` of `g`, of use from the group's start, by `by_ms`, a hard deadline. +fn entry(g: &Publication, i: usize, by_ms: u64, fallback: Option) -> TimelinessEntry { + TimelinessEntry { + leaf_index: i as u64, + content_hash: g.objects[i].1.content_hash, + from_ms: START_MS, + by_ms, + decay: vec![DecayPoint { at_ms: by_ms + 1, value_ppm: 0 }], + fallback, + } +} + +/// Object `j` of `f` as a fallback, at 400,000. +fn fallback(f: &Publication, j: usize) -> Option { + Some(Fallback { group: f.link(), leaf_index: j as u64, content_hash: f.objects[j].1.content_hash, value_ppm: 400_000 }) +} + +/// P's timeliness claim about `g` with `entries`. +fn timeliness_claim_of(g: &Publication, entries: Vec) -> String { + let body = ClaimBody::Timeliness(TimelinessClaim { objects: entries, attests: ATTESTS_VALUED.into() }); + ClaimReceipt::seal(&key(P), D1, SubjectType::Receipt, g.link(), 0, TRANSMITTED, body, None).expect("a timeliness claim").to_json() +} + +/// Each signer's claims of one case, chained in the order they are signed. +#[derive(Default)] +struct Chains { + last: BTreeMap, +} + +impl Chains { + fn time(body: &ClaimBody) -> &'static str { + match body { + ClaimBody::Transmission(_) => TRANSMITTED, + ClaimBody::CacheTransmission(_) => CACHE_SENT, + _ => RECONCILED, + } + } + + fn next(&self, seed: u8) -> (u64, Option<[u8; 32]>) { + match self.last.get(&seed) { + Some((s, l)) => (s + 1, Some(*l)), + None => (0, None), + } + } + + /// A claim a verifier accepts at steps 1–4, chained to the signer's previous one, at the + /// time its class is signed at here. + fn sign(&mut self, seed: u8, subject: [u8; 32], body: ClaimBody) -> String { + let at = Self::time(&body); + self.sign_at(seed, subject, body, at) + } + + fn sign_at(&mut self, seed: u8, subject: [u8; 32], body: ClaimBody, at: &str) -> String { + let (seq, parent) = self.next(seed); + let c = ClaimReceipt::seal(&key(seed), sid(seed), SubjectType::Receipt, subject, seq, at, body, parent) + .expect("a claim the corpus means to pass steps 1-4"); + self.last.insert(seed, (seq, c.link_hash())); + c.to_json() + } + + /// A claim that breaks a rule of step 4; not held, so the chain does not move. + fn sign_unchecked(&mut self, seed: u8, subject: [u8; 32], body: ClaimBody) -> String { + let (seq, parent) = self.next(seed); + let at = Self::time(&body); + ClaimReceipt::seal_unchecked(&key(seed), sid(seed), SubjectType::Receipt, subject, seq, at, body, parent) + .expect("a canonical form") + .to_json() + } +} + +// ───────────────────────────── claim cases (§5) ───────────────────────────── + +struct ClaimCase { + name: &'static str, + description: &'static str, + earlier: Vec, + claim: String, + context: Value, + objects: Vec, + outcome: String, +} + +fn claim_cases(g: &Groups) -> Vec { + let mut out = Vec::new(); + let all = |p: &Publication| p.receipts(&(0..p.n() as usize).collect::>()); + let mut push = |name, description, earlier: Vec, claim: String, context: Value, objects: Vec, outcome: &str| { + out.push(ClaimCase { name, description, earlier, claim, context, objects, outcome: outcome.to_owned() }) + }; + let one = |seed: u8, p: &Publication, body: ClaimBody| Chains::default().sign(seed, p.link(), body); + let bad = |seed: u8, p: &Publication, body: ClaimBody| Chains::default().sign_unchecked(seed, p.link(), body); + let ctx = |p: &Publication| p.group.to_json(); + let mc = Bearer::Multicast; + + push( + "sent_partial", + "C1 sent objects 1 and 3 of G over its multicast instance: a root over two leaves.", + vec![], + one(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], None)), + ctx(&g.g), + all(&g.g), + "accept", + ); + push( + "sent_whole", + "Every object of G over a unidirectional instance: `sent_root` is the group's root, and no object receipt is needed.", + vec![], + one(C1, &g.g, cache(&g.g, Bearer::Unidirectional, MESH_C1, &[0, 1, 2, 3], None)), + ctx(&g.g), + vec![], + "accept", + ); + push( + "sent_last_of_nine", + "G9's object 8 alone: the last bitmap byte's first bit.", + vec![], + one(C1, &g.g9, cache(&g.g9, mc, MESH_C1, &[8], None)), + ctx(&g.g9), + all(&g.g9), + "accept", + ); + push( + "sent_labelled", + "GL's objects 0 and 2, a root over their labelled leaves.", + vec![], + one(C1, &g.gl, cache(&g.gl, mc, MESH_C1, &[0, 2], None)), + ctx(&g.gl), + all(&g.gl), + "accept", + ); + push( + "energy_metered", + "The instance's figure, 10,000,000 µJ of class Estimator.", + vec![], + one(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], Some(estimator(10_000_000)))), + ctx(&g.g), + all(&g.g), + "accept", + ); + let mut ch = Chains::default(); + let first = ch.sign(C1, g.g.link(), cache(&g.g, mc, MESH_C1, &[1, 3], None)); + let second = ch.sign(C1, g.g.link(), cache(&g.g, mc, MESH_C2, &[1], None)); + push("chain_second", "C1's second claim, its parent the first's link hash, `seq` 1.", vec![first.clone()], second.clone(), ctx(&g.g), all(&g.g), "accept"); + push("parent_not_held", "C1's second claim given without its first.", vec![], second, ctx(&g.g), all(&g.g), "reject step=5 reason=parent_not_held"); + let wrong_parent = ClaimReceipt::seal(&key(C1), sid(C1), SubjectType::Receipt, g.g.link(), 1, CACHE_SENT, cache(&g.g, mc, MESH_C2, &[1], None), Some(g.g9.link())) + .expect("a claim") + .to_json(); + push("chain_break", "A second claim whose parent names another claim than the first.", vec![first], wrong_parent, ctx(&g.g), all(&g.g), "reject step=5 reason=chain_break"); + let (sent, root) = g.g.commitment(&[1, 3]); + push( + "not_transmitted", + "`attests` \"served\".", + vec![], + bad(C1, &g.g, raw_cache(mc, 4, sent.clone(), root, "served")), + ctx(&g.g), + all(&g.g), + "reject step=4 reason=cache_transmission_not_transmitted", + ); + push( + "on_bidirectional", + "A `bidirectional` instance: its receivers acknowledge instead.", + vec![], + bad(C1, &g.g, raw_cache(Bearer::Bidirectional, 4, sent.clone(), root, ATTESTS_TRANSMITTED)), + ctx(&g.g), + all(&g.g), + "reject step=4 reason=cache_transmission_on_bidirectional", + ); + // Step 2: a signed claim whose body is then changed; step 2 refuses it before step 3. + let signed = one(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], None)); + for (name, description, reason) in [ + ("bearer_unknown", "`bearer` \"broadcast\", outside bearer-receipts' enumeration.", "field_type"), + ("member_extra", "A body with a `region` member.", "unknown_member"), + ] { + let mut v: Value = serde_json::from_str(&signed).expect("json"); + let m = v["body"].as_object_mut().expect("a body"); + if name == "bearer_unknown" { + m.insert("bearer".into(), "broadcast".into()); + } else { + m.insert("region".into(), "XA".into()); + } + let claim = crate::jcs::jcs(&v).expect("canonical"); + push(name, description, vec![], claim, ctx(&g.g), all(&g.g), &format!("reject step=2 reason={reason}")); + } + let malformed = "reject step=4 reason=cache_transmission_bitmap_malformed"; + push("bitmap_none", "No bit set: a node that sent nothing has nothing to declare.", vec![], bad(C1, &g.g, raw_cache(mc, 4, vec![0x00], g.g.group.root_hash, ATTESTS_TRANSMITTED)), ctx(&g.g), all(&g.g), malformed); + push("bitmap_past_count", "G9 with bit 9 set, past its nine objects.", vec![], bad(C1, &g.g9, raw_cache(mc, 9, vec![0x80, 0x40], g.g9.group.root_hash, ATTESTS_TRANSMITTED)), ctx(&g.g9), all(&g.g9), malformed); + push("bitmap_short", "One byte for a leaf count of 9.", vec![], bad(C1, &g.g9, raw_cache(mc, 9, vec![0x80], g.g9.group.root_hash, ATTESTS_TRANSMITTED)), ctx(&g.g9), all(&g.g9), malformed); + push("leaf_count_zero", "`leaf_count` 0 and `sent` empty.", vec![], bad(C1, &g.g, raw_cache(mc, 0, vec![], g.g.group.root_hash, ATTESTS_TRANSMITTED)), ctx(&g.g), all(&g.g), malformed); + push( + "energy_zero", + "A figure of 0 µJ: an instance not metered states `null`.", + vec![], + bad(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], Some(estimator(0)))), + ctx(&g.g), + all(&g.g), + "reject step=4 reason=energy_zero_figure", + ); + push( + "subject_other_group", + "A claim about G9 checked against G.", + vec![], + one(C1, &g.g9, cache(&g.g, mc, MESH_C1, &[1, 3], None)), + ctx(&g.g), + all(&g.g), + "reject step=6 reason=cache_transmission_subject_mismatch", + ); + push( + "by_publisher", + "Signed by P, the group's key: its own sending is a transmission.", + vec![], + one(P, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], None)), + ctx(&g.g), + all(&g.g), + "reject step=6 reason=cache_transmission_by_publisher", + ); + push( + "leaf_count_wrong", + "`leaf_count` 8 for G9.", + vec![], + one(C1, &g.g9, raw_cache(mc, 8, vec![0x80], g.g9.leaf(0), ATTESTS_TRANSMITTED)), + ctx(&g.g9), + all(&g.g9), + "reject step=6 reason=cache_transmission_leaf_count_mismatch", + ); + push( + "objects_not_held", + "Objects 1 and 3, with only object 1's receipt held.", + vec![], + one(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], None)), + ctx(&g.g), + g.g.receipts(&[1]), + "reject step=6 reason=cache_transmission_objects_not_held", + ); + let foreign = merkle_root(&[g.g.leaf(1), g.g9.leaf(3)]); + push( + "root_foreign_leaf", + "Objects 1 and 3 with a root over G's leaf 1 and G9's leaf 3, a hash not in G at that position.", + vec![], + one(C1, &g.g, raw_cache(mc, 4, sent.clone(), foreign, ATTESTS_TRANSMITTED)), + ctx(&g.g), + all(&g.g), + "reject step=6 reason=cache_transmission_root_mismatch", + ); + push( + "context_not_group", + "Checked against G's object receipt 1 in place of the group receipt.", + vec![], + one(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], None)), + g.g.objects[1].1.to_json(), + all(&g.g), + "reject step=6 reason=context_mismatch", + ); + push( + "without_group", + "No group held: steps 1 to 5 pass and the claim stops there, counted nowhere.", + vec![], + one(C1, &g.g, cache(&g.g, mc, MESH_C1, &[1, 3], None)), + Value::Null, + vec![], + "unchecked", + ); + out +} + +// ───────────────────────────── placement cases (§4.4) ───────────────────────────── + +struct PlacementCase { + name: &'static str, + description: &'static str, + key: u8, + at_ms: u64, + heads: BTreeMap, + outcome: String, +} + +fn placement_cases() -> Vec { + let op_only = || heads(&[(OP, operator().to_json())]); + let confirmed = |id: &str, role: &str| format!("confirmed origin={OP} key_id={id} role={role}"); + let revoked_at = |o: &str| format!("refused reason=key_revoked origin={o} compromised_since={COMPROMISED}"); + let c = |name, description, key, at_ms, heads, outcome: String| PlacementCase { name, description, key, at_ms, heads, outcome }; + vec![ + c("confirmed_active", "C1 under the operator's head.", C1, D, op_only(), confirmed("c1", AUTHORITY)), + c("confirmed_least_origin", "C1, listed under both heads: the least origin in byte order.", C1, D, both(), confirmed("c1", AUTHORITY)), + c("confirmed_relay", "C5 holds `live/relay`, a serving role settlement places.", C5, D, op_only(), confirmed("c5", "live/relay")), + c("retired_at_until", "C4, retired, for an item at its `until`.", C4, D, op_only(), format!("{} until={UNTIL}", confirmed("c4", AUTHORITY))), + c("retired_past_until", "C4 for an item a millisecond past its `until`.", C4, D + 1, op_only(), format!("refused reason=key_retired origin={OP} until={UNTIL}")), + c("revoked", "C3 is revoked.", C3, D, op_only(), revoked_at(OP)), + c("revoked_beats_confirmed", "C6: revoked in one head, active in the other.", C6, D, both(), revoked_at(OP)), + c("revoked_other_role", "C7: revoked under `live/relay`, active with `cache/serve` elsewhere: no role outlives a revocation.", C7, D, both(), revoked_at(OP)), + c("not_granted", "C8 holds `delivery-gap` alone.", C8, D, op_only(), format!("refused reason=authority_not_granted origin={OP}")), + c("not_listed", "C2, the fresh key, is in no log.", C2, D, both(), "unconfirmed reason=server_not_listed".into()), + c("no_heads", "C1, and no head named.", C1, D, BTreeMap::new(), "unconfirmed reason=server_not_listed".into()), + c( + "head_not_held", + "C1; the operator's head with a broken signature, the other listing C1 active: it might revoke C1.", + C1, + D, + heads(&[(OP, broken(operator())), (OTHER, other().to_json())]), + format!("unconfirmed reason=key_log_not_held origin={OP}"), + ), + c( + "head_other_origin", + "The other origin's revision given as the operator's head.", + C1, + D, + heads(&[(OP, other().to_json())]), + format!("unconfirmed reason=key_log_not_held origin={OP}"), + ), + c( + "revoked_beside_unheld", + "C6; the other head broken, the operator's held and revoking C6: step 1 before step 2.", + C6, + D, + heads(&[(OP, operator().to_json()), (OTHER, broken(other()))]), + revoked_at(OP), + ), + ] +} + +// ───────────────────────────── verdict cases (§7) ───────────────────────────── + +/// A publisher's line as a case states it: (bearer_id, bearer, sinks, energy, bound). +type BLine = (&'static str, Bearer, u64, Option<(u64, &'static str)>, Option); + +/// A cache instance as a case states it. +struct CLine { + id: &'static str, + bearer: Bearer, + server: u8, + placement: String, + sent: Vec, + sinks: u64, + received_by: Vec<(u64, u64)>, + energy: Option<(u64, &'static str)>, + bound: Option, +} + +fn cline(id: &'static str, bearer: Bearer, server: u8, placement: String, sent: &[u64], sinks: u64, received_by: &[(u64, u64)]) -> CLine { + CLine { id, bearer, server, placement, sent: sent.to_vec(), sinks, received_by: received_by.to_vec(), energy: None, bound: None } +} + +/// What a verdict case was written to give, declared here. +struct Exp { + claims: Vec<&'static str>, + status: &'static str, + sinks: u64, + whole: u64, + received_by: [u64; 4], + bearers: Vec, + caches: Vec, + sink: Option<&'static str>, + assertion: Option<&'static str>, +} + +fn exp(claims: &[&'static str], status: &'static str) -> Exp { + Exp { claims: claims.to_vec(), status, sinks: 0, whole: 0, received_by: [0; 4], bearers: vec![], caches: vec![], sink: None, assertion: None } +} + +impl Exp { + fn counts(mut self, sinks: u64, whole: u64, received_by: [u64; 4]) -> Exp { + self.sinks = sinks; + self.whole = whole; + self.received_by = received_by; + self + } + fn bearer(mut self, l: BLine) -> Exp { + self.bearers.push(l); + self + } + fn cache(mut self, l: CLine) -> Exp { + self.caches.push(l); + self + } + fn value(&self) -> Value { + json!({ + "objects": [IV, IV, IV, IV], + "claims": self.claims, + "status": self.status, + "sinks": self.sinks, + "whole": self.whole, + "received_by": self.received_by, + "bearers": self.bearers.iter().map(|(id, b, k, e, bound)| json!({ + "bearer_id": id, "bearer": b.label(), "sinks": k, + "energy": e.map(|(j, c)| json!({"joules_micro": j, "class": c})), "per_receiver_upper_bound": bound, + })).collect::>(), + "caches": self.caches.iter().map(|c| json!({ + "bearer_id": c.id, "bearer": c.bearer.label(), "server": h(c.server), "placement": c.placement, + "sent": c.sent, "sinks": c.sinks, + "received_by": c.received_by.iter().map(|(o, k)| json!([o, k])).collect::>(), + "energy": c.energy.map(|(j, cl)| json!({"joules_micro": j, "class": cl})), "per_receiver_upper_bound": c.bound, + })).collect::>(), + "sink": self.sink, + "assertion": self.assertion, + }) + } +} + +struct VerdictCase { + name: &'static str, + description: &'static str, + inputs: Inputs, + outcome: Value, +} + +fn c1_confirmed() -> String { + format!("confirmed origin={OP} key_id=c1 role={AUTHORITY}") +} + +fn verdict_cases(g: &Groups) -> Vec { + let mut out = Vec::new(); + let gg = &g.g; + let link = gg.link(); + let inputs = |claims: Vec| Inputs { + bearer: bearer_receipts::Inputs { group: gg.group.to_json(), objects: gg.held(&[]), claims, ..Default::default() }, + heads: both(), + }; + let mut push = |name, description, inputs: Inputs, outcome: Value| out.push(VerdictCase { name, description, inputs, outcome }); + let (mc, uni) = (Bearer::Multicast, Bearer::Unidirectional); + let sat = |ch: &mut Chains| ch.sign(P, link, transmission(uni, SAT)); + let mesh = |ch: &mut Chains, idx: &[u64]| ch.sign(C1, link, cache(gg, mc, MESH_C1, idx, None)); + let rec = |ch: &mut Chains, seed: u8, b: Bearer, id: &str, idx: &[u64]| ch.sign(seed, link, reconciliation(gg, b, id, idx)); + + let mut ch = Chains::default(); + let claims = vec![ + sat(&mut ch), + mesh(&mut ch, &[1, 3]), + rec(&mut ch, R1, uni, SAT, &[0, 2]), + rec(&mut ch, R2, mc, MESH_C1, &[1, 3]), + rec(&mut ch, R3, uni, SAT, &[0, 2]), + rec(&mut ch, R3, mc, MESH_C1, &[1, 3]), + ]; + push( + "publisher_and_cache", + "P declares sat, C1 its multicast mesh-c1 with objects 1 and 3. R1 reconciles over sat, R2 over mesh-c1, R3 over both: R3 alone holds the group whole, and C1 is credited for objects 1 and 3 only.", + inputs(claims), + exp(&["declared", "cache-declared", "counted", "counted", "counted", "counted"], "reconciled") + .counts(3, 1, [2, 2, 2, 2]) + .bearer((SAT, uni, 2, None, None)) + .cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 2, &[(1, 2), (3, 2)])) + .value(), + ); + let mut ch = Chains::default(); + let claims = vec![sat(&mut ch), mesh(&mut ch, &[1, 3]), rec(&mut ch, R3, mc, MESH_C1, &[1]), rec(&mut ch, R3, uni, SAT, &[3])]; + push( + "per_instance_credit", + "R3 holds object 1 over mesh-c1 and object 3 over sat: C1 is credited for object 1, not for 3, which R3 received over another instance.", + inputs(claims), + exp(&["declared", "cache-declared", "counted", "counted"], "reconciled") + .counts(1, 0, [0, 1, 0, 1]) + .bearer((SAT, uni, 1, None, None)) + .cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 1, &[(1, 1), (3, 0)])) + .value(), + ); + let mut ch = Chains::default(); + let claims = vec![sat(&mut ch), mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, mc, MESH_C1, &[1, 3]), rec(&mut ch, R2, mc, MESH_C1, &[1])]; + push( + "cache_only_reconciled", + "Reconciliations only over the cache's instance: counted for it, and the group is reconciled.", + inputs(claims), + exp(&["declared", "cache-declared", "counted", "counted"], "reconciled") + .counts(2, 0, [0, 2, 0, 1]) + .bearer((SAT, uni, 0, None, None)) + .cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 2, &[(1, 2), (3, 1)])) + .value(), + ); + let only = || vec![Chains::default().sign(C1, link, cache(gg, mc, MESH_C1, &[1, 3], None))]; + push( + "cache_declared_only", + "No declaration of P's; C1's instance stands and no one reconciles: the group is published, the instance beside it.", + inputs(only()), + exp(&["cache-declared"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])).value(), + ); + let mut i = inputs(only()); + i.bearer.assertion = Some(Assertion::Transmitted(mc)); + let mut e = exp(&["cache-declared"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])); + e.assertion = Some("reject reason=bearer_not_declared"); + push( + "statement_transmitted_cache_only", + "\"Transmitted over multicast\" offered when only a cache's multicast instance stands: refused, as the publisher sent nothing over it.", + i, + e.value(), + ); + let mut ch = Chains::default(); + let claims = vec![sat(&mut ch), ch.sign(C1, link, cache(gg, uni, SAT, &[1, 3], None)), rec(&mut ch, R1, uni, SAT, &[0])]; + push( + "instance_taken", + "C1 names sat, P's instance: C1's claim is set aside, and P's declaration and the reconciliation over it stand.", + inputs(claims), + exp(&["declared", "set-aside reason=bearer_contradicted", "counted"], "reconciled").counts(1, 0, [1, 0, 0, 0]).bearer((SAT, uni, 1, None, None)).value(), + ); + let mut ch = Chains::default(); + let claims = vec![ + sat(&mut ch), + ch.sign(P, link, transmission(mc, SAT)), + ch.sign(C1, link, cache(gg, uni, SAT, &[1, 3], None)), + ]; + push( + "instance_taken_contradicted", + "P's two declarations of sat differ and are both set aside; C1's claim of sat is set aside too.", + inputs(claims), + exp(&["set-aside reason=bearer_contradicted", "set-aside reason=bearer_contradicted", "set-aside reason=bearer_contradicted"], "published").value(), + ); + let mut ch = Chains::default(); + let claims = vec![ + ch.sign(C1, link, cache(gg, mc, MESH_X, &[1, 3], None)), + ch.sign(C2, link, cache(gg, mc, MESH_X, &[1, 3], None)), + rec(&mut ch, R1, mc, MESH_X, &[1]), + ]; + push( + "two_caches_one_instance", + "C1 and C2 name one instance: both set aside, and a reconciliation over it is contradicted, not undeclared.", + inputs(claims), + exp(&["set-aside reason=bearer_contradicted", "set-aside reason=bearer_contradicted", "set-aside reason=bearer_contradicted"], "published").value(), + ); + let mut ch = Chains::default(); + let claims = vec![ + ch.sign_at(C1, link, cache(gg, mc, MESH_C1, &[1, 3], None), CACHE_SENT), + ch.sign_at(C1, link, cache(gg, mc, MESH_C1, &[1, 3], None), "2026-11-03T11:05:00Z"), + ]; + push( + "same_claim_twice", + "C1's two claims of mesh-c1 with one body and different `issued_at`: one instance.", + inputs(claims), + exp(&["cache-declared", "cache-declared"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])).value(), + ); + let mut ch = Chains::default(); + let claims = vec![mesh(&mut ch, &[1]), mesh(&mut ch, &[1, 3])]; + push( + "cache_contradicts_itself", + "C1 states mesh-c1 sent object 1, then 1 and 3: both set aside.", + inputs(claims), + exp(&["set-aside reason=bearer_contradicted", "set-aside reason=bearer_contradicted"], "published").value(), + ); + let mut ch = Chains::default(); + let claims = vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, mc, UNKNOWN, &[1])]; + push( + "undeclared_instance", + "A reconciliation over an instance nobody declared.", + inputs(claims), + exp(&["cache-declared", "set-aside reason=bearer_not_declared"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])).value(), + ); + let mut ch = Chains::default(); + let claims = vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, uni, MESH_C1, &[1])]; + push( + "bearer_class_differs", + "R1 says unidirectional over C1's multicast instance.", + inputs(claims), + exp(&["cache-declared", "set-aside reason=bearer_contradicted"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])).value(), + ); + let mut ch = Chains::default(); + let claims = vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, C1, mc, MESH_C1, &[1])]; + push( + "self_reconciled", + "C1 reconciles over its own instance: a party's statement that it received what it sent.", + inputs(claims), + exp(&["cache-declared", "set-aside reason=self_acknowledged"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])).value(), + ); + let mut ch = Chains::default(); + let claims = vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, mc, MESH_C1, &[1]), rec(&mut ch, R1, mc, MESH_C1, &[3])]; + push( + "duplicate_sink", + "R1 reconciles twice over mesh-c1: one sink, its bits joined.", + inputs(claims), + exp(&["cache-declared", "counted", "joined reason=reconciliation_duplicate_sink"], "reconciled") + .counts(1, 0, [0, 1, 0, 1]) + .cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 1, &[(1, 1), (3, 1)])) + .value(), + ); + let mut ch = Chains::default(); + let mut i = inputs(vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, mc, MESH_C1, &[1]), rec(&mut ch, R2, mc, MESH_C1, &[3])]); + i.bearer.count_only = Some(vec![pk(R1)]); + push( + "confirmed_keys_only", + "`count_only` holds R1 alone: R2's reconciliation is not counted.", + i, + exp(&["cache-declared", "counted", "set-aside reason=sink_not_confirmed"], "reconciled") + .counts(1, 0, [0, 1, 0, 0]) + .cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 1, &[(1, 1), (3, 0)])) + .value(), + ); + let mut ch = Chains::default(); + let claims = vec![ + ch.sign(C2, link, cache(gg, mc, MESH_C2, &[1], None)), + ch.sign(C3, link, cache(gg, mc, MESH_C3, &[1], None)), + ch.sign_at(C4, link, cache(gg, mc, MESH_C4, &[1], None), "2026-11-03T12:00:01Z"), + rec(&mut ch, R1, mc, MESH_C3, &[1]), + ]; + push( + "servers_placed", + "Instances of C2 (in no log), C3 (revoked) and C4 (its claim a second past its `until`) stand: each placement is reported and the counts are unchanged.", + inputs(claims), + exp(&["cache-declared", "cache-declared", "cache-declared", "counted"], "reconciled") + .counts(1, 0, [0, 1, 0, 0]) + .cache(cline(MESH_C2, mc, C2, "unconfirmed reason=server_not_listed".into(), &[1], 0, &[(1, 0)])) + .cache(cline(MESH_C3, mc, C3, format!("refused reason=key_revoked origin={OP} compromised_since={COMPROMISED}"), &[1], 1, &[(1, 1)])) + .cache(cline(MESH_C4, mc, C4, format!("refused reason=key_retired origin={OP} until={UNTIL}"), &[1], 0, &[(1, 0)])) + .value(), + ); + let mut ch = Chains::default(); + let claims = vec![ + ch.sign_at(C4, link, cache(gg, mc, MESH_C4, &[1], None), "2026-11-03T11:59:00Z"), + ch.sign_at(C4, link, cache(gg, mc, MESH_C4, &[1], None), "2026-11-03T12:00:01Z"), + ]; + push( + "retired_cache_latest_claim", + "C4 states mesh-c4 twice with one body, a minute before its `until` and a second past it: one instance, placed at the later claim's `issued_at` (§4.4), so refused.", + inputs(claims), + exp(&["cache-declared", "cache-declared"], "published") + .cache(cline(MESH_C4, mc, C4, format!("refused reason=key_retired origin={OP} until={UNTIL}"), &[1], 0, &[(1, 0)])) + .value(), + ); + let mut ch = Chains::default(); + let mut i = inputs(vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, mc, MESH_C1, &[1])]); + i.heads = heads(&[(OP, broken(operator())), (OTHER, other().to_json())]); + push( + "head_not_held", + "The operator's head does not verify: the cache's placement is unconfirmed, and nothing else changes.", + i, + exp(&["cache-declared", "counted"], "reconciled") + .counts(1, 0, [0, 1, 0, 0]) + .cache(cline(MESH_C1, mc, C1, format!("unconfirmed reason=key_log_not_held origin={OP}"), &[1, 3], 1, &[(1, 1), (3, 0)])) + .value(), + ); + let mut i = inputs(only()); + i.bearer.sink = Some((mc, MESH_C1.into())); + let mut e = exp(&["cache-declared"], "published").cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 0, &[(1, 0), (3, 0)])); + e.sink = Some("cache-declared"); + push("sink_own_cache_instance", "The verifier is a sink on mesh-c1, which only C1's claim declares.", i, e.value()); + let metered = |n: usize| { + let mut ch = Chains::default(); + let mut claims = vec![ch.sign(C1, link, cache(gg, mc, MESH_C1, &[1, 3], Some(estimator(10_000_000))))]; + for seed in [R1, R2, R3].into_iter().take(n) { + claims.push(rec(&mut ch, seed, mc, MESH_C1, &[1, 3])); + } + inputs(claims) + }; + let metered_line = |k: u64, bound: u64| CLine { + energy: Some((10_000_000, "Estimator")), + bound: Some(bound), + ..cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], k, &[(1, k), (3, k)]) + }; + push( + "energy_bound_before", + "C1's instance metered at 10,000,000 µJ with no key counted: the bound is the whole figure.", + metered(0), + exp(&["cache-declared"], "published").cache(metered_line(0, 10_000_000)).value(), + ); + push( + "energy_bound_after", + "The same with three keys counted: ⌈10,000,000 / 3⌉ = 3,333,334.", + metered(3), + exp(&["cache-declared", "counted", "counted", "counted"], "reconciled").counts(3, 0, [0, 3, 0, 3]).cache(metered_line(3, 3_333_334)).value(), + ); + let mut ch = Chains::default(); + let claims = vec![mesh(&mut ch, &[1, 3]), rec(&mut ch, R1, mc, MESH_C1, &[1, 3])]; + push( + "energy_unmetered", + "`energy` null: no bound, never 0.", + inputs(claims), + exp(&["cache-declared", "counted"], "reconciled").counts(1, 0, [0, 1, 0, 1]).cache(cline(MESH_C1, mc, C1, c1_confirmed(), &[1, 3], 1, &[(1, 1), (3, 1)])).value(), + ); + push( + "other_class", + "A timeliness claim among the verdict's claims: checked against nothing here.", + inputs(vec![timeliness_claim(gg, &[1], D)]), + exp(&["reject step=6 reason=context_mismatch"], "published").value(), + ); + let mut i = inputs(only()); + i.bearer.group = broken_group(gg); + push("group_refused", "The group's signature is broken: nothing is derived.", i, json!("refuse reason=signature_verify_failed")); + out +} + +// ───────────────────────────── tally cases (§8) ───────────────────────────── + +/// The end of an acknowledgement window ten minutes before the deadline, in µs. +const E: u64 = (D - 600_000) * 1000; + +fn ack_with(upstream: u8, downstream: u8, start: u64, end: u64, entry_class: u8, items: &[Item]) -> (Ack, Given) { + let a = Ack { + mode: mode::ACK, + role: role::SINK, + upstream: pk(upstream), + downstream: pk(downstream), + start, + end, + prev: [0; 32], + entries: vec![AckEntry::of(entry_class, [0; 32], [0; 32], items)], + sig: [0; 64], + } + .sign(&key(downstream)); + let given = Given { record: a.to_bytes(), items: vec![item_list(items)] }; + (a, given) +} + +/// `downstream`'s acknowledgement of G's object 1, whole, from `upstream`, its window ending at +/// `end`. +fn ack(g: &Publication, upstream: u8, downstream: u8, end: u64) -> Given { + ack_of(g, 1, upstream, downstream, end) +} + +/// The same for object `i` of `g`. +fn ack_of(g: &Publication, i: usize, upstream: u8, downstream: u8, end: u64) -> Given { + ack_with(upstream, downstream, end - 1_000_000, end, class::LIVE, &[Item::whole(&g.objects[i].0)]).1 +} + +fn ack_part(g: &Publication, upstream: u8, downstream: u8, end: u64, start: u64, stop: u64) -> Given { + let c = g.objects[1].1.content_hash; + ack_with(upstream, downstream, end - 1_000_000, end, class::LIVE, &[Item { content_hash: c, start, end: stop }]).1 +} + +/// A holdings record of `holder` at `as_of`, holding `held` of G. +fn record(g: &Publication, holder: u8, as_of: u64, held: &[u64]) -> Vec { + let e = holdings::Entry::of(g.link(), g.n(), held).expect("an entry that holds something"); + Holdings::seal(&key(holder), as_of, as_of + HOUR, vec![e]).to_bytes() +} + +/// The population's keys from their seeds, in increasing order of their bytes. +fn population(seeds: &[u8]) -> Vec<[u8; 32]> { + let mut v: Vec<[u8; 32]> = seeds.iter().map(|s| pk(*s)).collect(); + v.sort(); + v +} + +/// §8.1's digest, written out here from the text. +fn digest(region: &str, keys: &[[u8; 32]]) -> String { + let mut s = Sha256::new(); + s.update(b"wai:cache-population\x01"); + s.update([region.len() as u8]); + s.update(region.as_bytes()); + s.update((keys.len() as u32).to_be_bytes()); + for k in keys { + s.update(k); + } + hex(&<[u8; 32]>::from(s.finalize())) +} + +struct TallyCase { + name: &'static str, + description: &'static str, + inputs: Inputs, + acks: Vec, + records: Vec>, + target: Target, + outcome: Value, +} + +/// A tally's stated figures. +struct Fig { + met: bool, + region: &'static str, + population: Vec<[u8; 32]>, + deadline_ms: u64, + deadline_claim: Option<[u8; 32]>, + missing: Vec, + miss_ppm: u64, + set_aside: Vec, + /// (server, placement, hits, sole), put in key order here. + servers: Vec<(u8, String, u64, u64)>, + unattributed: u64, + acknowledgements: Vec<&'static str>, + records: Vec<&'static str>, + claims: Vec<&'static str>, +} + +impl Fig { + fn value(&self) -> Value { + let n = self.population.len() as u64; + let misses = self.missing.len() as u64; + let mut missing: Vec<[u8; 32]> = self.missing.iter().map(|s| pk(*s)).collect(); + missing.sort(); + let mut servers: Vec<&(u8, String, u64, u64)> = self.servers.iter().collect(); + servers.sort_by_key(|s| pk(s.0)); + json!({ + "outcome": if self.met { "met".to_string() } else { format!("refuse reason={MISS_TARGET_EXCEEDED}") }, + "region": self.region, + "population_digest": digest(self.region, &self.population), + "deadline_ms": self.deadline_ms, + "deadline_claim": self.deadline_claim.map(|c| hex(&c)), + "n": n, + "hits": n - misses, + "misses": misses, + "miss_ppm": self.miss_ppm, + "missing": missing.iter().map(|k| hex(k)).collect::>(), + "set_aside": self.set_aside, + "servers": servers.iter().map(|(s, p, k, sole)| json!({"key": h(*s), "placement": p, "hits": k, "sole": sole})).collect::>(), + "unattributed": self.unattributed, + "acknowledgements": self.acknowledgements, + "records": self.records, + "claims": self.claims, + }) + } +} + +fn tally_cases(g: &Groups) -> Vec { + let mut out = Vec::new(); + let gg = &g.g; + let link = gg.link(); + let (mc, uni) = (Bearer::Multicast, Bearer::Unidirectional); + let four = population(&[R1, R2, R3, R4]); + let inputs = |claims: Vec| Inputs { + bearer: bearer_receipts::Inputs { group: gg.group.to_json(), objects: gg.held(&[1]), claims, ..Default::default() }, + heads: both(), + }; + let target = |pop: &[[u8; 32]], region: &str, deadline: u64, miss: u64| Target { + index: 1, + deadline: Deadline::Stated(deadline), + region: region.into(), + population: pop.to_vec(), + miss_target_ppm: miss, + }; + let fig = |met: bool, pop: &[[u8; 32]], missing: &[u8], miss_ppm: u64| Fig { + met, + region: "XA-1", + population: pop.to_vec(), + deadline_ms: D, + deadline_claim: None, + missing: missing.to_vec(), + miss_ppm, + set_aside: vec![], + servers: vec![], + unattributed: 0, + acknowledgements: vec![], + records: vec![], + claims: vec![], + }; + let publisher = || "publisher".to_string(); + let c1 = c1_confirmed; + let not_listed = || "unconfirmed reason=server_not_listed".to_string(); + + // The evidence of `met_by_bearer_and_peers`: R1 over sat (P), R2 over mesh-c1 (C1), R3's + // acknowledgement of C1 and R4's of C2. + let base_claims = || { + let mut ch = Chains::default(); + vec![ + ch.sign(P, link, transmission(uni, SAT)), + ch.sign(C1, link, cache(gg, mc, MESH_C1, &[1, 3], None)), + ch.sign(R1, link, reconciliation(gg, uni, SAT, &[1])), + ch.sign(R2, link, reconciliation(gg, mc, MESH_C1, &[1])), + ] + }; + let base_claim_labels = vec!["declared", "cache-declared", "counted", "counted"]; + let base_acks = || vec![ack(gg, C1, R3, E), ack(gg, C2, R4, E)]; + let base_fig = |met: bool| Fig { + servers: vec![(P, publisher(), 1, 1), (C1, c1(), 2, 2), (C2, not_listed(), 1, 1)], + acknowledgements: vec!["read", "read"], + claims: base_claim_labels.clone(), + ..fig(met, &four, &[], 0) + }; + let mut push = |name, description, inputs: Inputs, acks: Vec, records: Vec>, target: Target, outcome: Value| { + out.push(TallyCase { name, description, inputs, acks, records, target, outcome }) + }; + + push( + "met_by_bearer_and_peers", + "R1 reconciled over sat, P's; R2 over mesh-c1, C1's; R3 acknowledges C1 and R4 the fresh C2. Every key held object 1 by the deadline.", + inputs(base_claims()), + base_acks(), + vec![], + target(&four, "XA-1", D, 0), + base_fig(true).value(), + ); + let three_acks = || vec![ack(gg, C1, R3, E)]; + let at_target_fig = |met: bool| Fig { + servers: vec![(P, publisher(), 1, 1), (C1, c1(), 2, 2)], + acknowledgements: vec!["read"], + claims: base_claim_labels.clone(), + ..fig(met, &four, &[R4], 250_000) + }; + push("at_target", "R4 has no evidence: 250,000 ppm against a target of 250,000.", inputs(base_claims()), three_acks(), vec![], target(&four, "XA-1", D, 250_000), at_target_fig(true).value()); + push("one_ppm_over", "The same against 249,999.", inputs(base_claims()), three_acks(), vec![], target(&four, "XA-1", D, 249_999), at_target_fig(false).value()); + let r123 = population(&[R1, R2, R3]); + push( + "rounded_up", + "Population R1–R3 with R3 missing: ⌈1,000,000 / 3⌉ = 333,334, above a target of 333,333.", + inputs(base_claims()), + vec![], + vec![], + target(&r123, "XA-1", D, 333_333), + Fig { servers: vec![(P, publisher(), 1, 1), (C1, c1(), 1, 1)], claims: base_claim_labels.clone(), ..fig(false, &r123, &[R3], 333_334) }.value(), + ); + + // One receiver, R1, against a target of 0: met is a hit, exceeded a miss. + let r1 = population(&[R1]); + let hit_ack = |acks: &[&'static str]| Fig { servers: vec![(C1, c1(), 1, 1)], acknowledgements: acks.to_vec(), ..fig(true, &r1, &[], 0) }; + let miss = |acks: &[&'static str]| Fig { acknowledgements: acks.to_vec(), ..fig(false, &r1, &[R1], 1_000_000) }; + let one_ack = |a: Given| (inputs(vec![]), vec![a]); + let dus = D * 1000; + for (name, description, end, hit) in [ + ("ack_end_at_deadline", "R1's window ends at the deadline; its last microsecond is before it.", dus, true), + ("ack_last_us_at_deadline", "The window ends a microsecond after the deadline: its last microsecond, `end` − 1, is the deadline itself (settlement §2: `end` is excluded).", dus + 1, true), + ("ack_end_two_past", "The window ends two microseconds after: its last microsecond rounds up to the deadline's next millisecond.", dus + 2, false), + ] { + let (i, acks) = one_ack(ack(gg, C1, R1, end)); + let f = if hit { hit_ack(&["read"]) } else { miss(&["read"]) }; + push(name, description, i, acks, vec![], target(&r1, "XA-1", D, 0), f.value()); + } + let over_sat = |at: &str| { + let mut ch = Chains::default(); + vec![ch.sign(P, link, transmission(uni, SAT)), ch.sign_at(R1, link, reconciliation(gg, uni, SAT, &[1]), at)] + }; + let hit_rec = || Fig { servers: vec![(P, publisher(), 1, 1)], claims: vec!["declared", "counted"], ..fig(true, &r1, &[], 0) }; + let miss_rec = || Fig { claims: vec!["declared", "counted"], ..fig(false, &r1, &[R1], 1_000_000) }; + for (name, description, at, deadline, hit) in [ + ("issued_at_at_deadline", "R1's reconciliation signed at the deadline.", "2026-11-03T12:00:00Z", D, true), + ("issued_at_fraction_past", "Signed a microsecond after: rounded up to the next millisecond.", "2026-11-03T12:00:00.000001Z", D, false), + ("issued_at_sub_second", "Signed at .2 s against a deadline at .5 s: read at 200 ms, not at the next second.", "2026-11-03T12:00:00.2Z", D + 500, true), + ("issued_at_offset", "Signed at the deadline written with an offset of +02:00.", "2026-11-03T14:00:00+02:00", D, true), + ("issued_at_leap", "Signed at second 60 of the minute before: the deadline itself.", "2026-11-03T11:59:60Z", D, true), + ] { + let mut f = if hit { hit_rec() } else { miss_rec() }; + f.deadline_ms = deadline; + push(name, description, inputs(over_sat(at)), vec![], vec![], target(&r1, "XA-1", deadline, 0), f.value()); + } + push( + "clock_unset", + "R1's reconciliation signed at 1970-01-01T00:00:00Z, before the group: set aside, and a miss.", + inputs(over_sat("1970-01-01T00:00:00Z")), + vec![], + vec![], + target(&r1, "XA-1", D, 0), + Fig { set_aside: vec![json!({"key": h(R1), "source": "reconciliation", "reason": "held_before_group"})], ..miss_rec() }.value(), + ); + push( + "reconciliation_rounds_to_start", + "R1's reconciliation signed at 09:59:59.9995Z, against G's start at 10:00:00Z: its instant rounds up to the start, but its whole seconds are before it (timeliness §2), so it is set aside, and a miss.", + inputs(over_sat("2026-11-03T09:59:59.9995Z")), + vec![], + vec![], + target(&r1, "XA-1", D, 0), + Fig { set_aside: vec![json!({"key": h(R1), "source": "reconciliation", "reason": "held_before_group"})], ..miss_rec() }.value(), + ); + let r3 = population(&[R3]); + let (before_ack, before_given) = ack_with(C1, R3, START_MS * 1000 - 1_000_000, START_MS * 1000, class::LIVE, &[Item::whole(&gg.objects[1].0)]); + push( + "ack_before_group", + "R3's window ends at the group's start: its last microsecond is before the group.", + inputs(vec![]), + vec![before_given], + vec![], + target(&r3, "XA-1", D, 0), + Fig { + set_aside: vec![json!({"key": h(R3), "source": hex(&before_ack.digest()), "reason": "held_before_group"})], + acknowledgements: vec!["before-group"], + ..fig(false, &r3, &[R3], 1_000_000) + } + .value(), + ); + let (e1, e2) = (E, E + 60_000_000); + push( + "two_peers_complete", + "R1 holds bytes [0, 1000) from C1 and [1000, 2000) from C2, both windows before the deadline: a hit credited to both, sole to neither.", + inputs(vec![]), + vec![ack_part(gg, C1, R1, e1, 0, 1000), ack_part(gg, C2, R1, e2, 1000, 2000)], + vec![], + target(&r1, "XA-1", D, 0), + Fig { servers: vec![(C1, c1(), 1, 0), (C2, not_listed(), 1, 0)], acknowledgements: vec!["read", "read"], ..fig(true, &r1, &[], 0) }.value(), + ); + push( + "two_peers_late", + "The same with the second window's last microsecond past the deadline.", + inputs(vec![]), + vec![ack_part(gg, C1, R1, e1, 0, 1000), ack_part(gg, C2, R1, dus + 2, 1000, 2000)], + vec![], + target(&r1, "XA-1", D, 0), + miss(&["read", "read"]).value(), + ); + push( + "two_peers_late_reversed", + "two_peers_late with its records given latest first: read in order of `end`, the late window completes the object and R1 misses; read as given, the earlier window would.", + inputs(vec![]), + vec![ack_part(gg, C2, R1, dus + 2, 1000, 2000), ack_part(gg, C1, R1, e1, 0, 1000)], + vec![], + target(&r1, "XA-1", D, 0), + miss(&["read", "read"]).value(), + ); + // Two records of one `end`, each of object 1 whole, from C1 and from C2: settlement §3.5's + // digest orders them, and the record of the lesser digest completes the object alone. They are + // given with the greater digest first. + let whole1 = [Item::whole(&gg.objects[1].0)]; + let (a1, g1) = ack_with(C1, R1, E - 1_000_000, E, class::LIVE, &whole1); + let (a2, g2) = ack_with(C2, R1, E - 1_000_000, E, class::LIVE, &whole1); + let (first, given) = if a1.digest() < a2.digest() { ((C1, c1()), vec![g2, g1]) } else { ((C2, not_listed()), vec![g1, g2]) }; + push( + "ack_tie_by_digest", + "R1 acknowledges object 1 whole from C1 and from C2 in windows of one `end`, the record of the greater digest given first: ordered by digest, the lesser completes the object and its upstream alone is credited.", + inputs(vec![]), + given, + vec![], + target(&r1, "XA-1", D, 0), + Fig { servers: vec![(first.0, first.1, 1, 1)], acknowledgements: vec!["read", "read"], ..fig(true, &r1, &[], 0) }.value(), + ); + push( + "partial_never_whole", + "R1 acknowledges bytes [0, 1999) only: a part is not the object.", + inputs(vec![]), + vec![ack_part(gg, C1, R1, E, 0, 1999)], + vec![], + target(&r1, "XA-1", D, 0), + miss(&["read"]).value(), + ); + let declaration = { + let items = [Item::whole(&gg.objects[1].0)]; + let a = Ack { + mode: mode::DECLARATION, + role: role::SINK, + upstream: pk(C1), + downstream: pk(R1), + start: E - 1_000_000, + end: E, + prev: [0; 32], + entries: vec![AckEntry::of(class::LIVE, [0; 32], [0; 32], &items)], + sig: [0; 64], + } + .sign(&key(C1)); + Given { record: a.to_bytes(), items: vec![item_list(&items)] } + }; + push( + "declaration_not_evidence", + "C1's declaration naming R1: the server's word, never the receiver's.", + inputs(vec![]), + vec![declaration], + vec![], + target(&r1, "XA-1", D, 0), + miss(&["declaration"]).value(), + ); + let mut with_r9 = base_claims(); + let mut ch = Chains::default(); + with_r9.push(ch.sign(R9, link, reconciliation(gg, uni, SAT, &[1]))); + push( + "outside_population", + "R9, outside the population, acknowledges and reconciles: the figures are unchanged and its reconciliation is not counted.", + inputs(with_r9), + vec![ack(gg, C1, R3, E), ack(gg, C2, R4, E), ack(gg, C1, R9, E)], + vec![], + target(&four, "XA-1", D, 0), + Fig { + acknowledgements: vec!["read", "read", "read"], + claims: vec!["declared", "cache-declared", "counted", "counted", "set-aside reason=sink_not_confirmed"], + ..base_fig(true) + } + .value(), + ); + let mut bad_sig = ack(gg, C1, R1, E); + let last = bad_sig.record.len() - 1; + bad_sig.record[last] ^= 1; + push("ack_bad_signature", "R1's record with a broken signature.", inputs(vec![]), vec![bad_sig], vec![], target(&r1, "XA-1", D, 0), miss(&["reject reason=bad_signature"]).value()); + let mut mismatch = ack(gg, C1, R1, E); + mismatch.items = vec![item_list(&[Item { content_hash: gg.objects[1].1.content_hash, start: 0, end: 1999 }])]; + push( + "ack_items_mismatch", + "An item list that does not recompute against its entry.", + inputs(vec![]), + vec![mismatch], + vec![], + target(&r1, "XA-1", D, 0), + miss(&["reject reason=items_mismatch"]).value(), + ); + let mut no_list = ack(gg, C1, R1, E); + no_list.items.clear(); + push("ack_items_missing", "An entry's item list not given.", inputs(vec![]), vec![no_list], vec![], target(&r1, "XA-1", D, 0), miss(&["reject reason=record_missing"]).value()); + // Each other way settlement §3.6 refuses a record, and an item list that does not read: R1's + // record of `ack_bad_signature`, each with one defect. + let whole = [Item::whole(&gg.objects[1].0)]; + let mut cut = ack(gg, C1, R1, E); + cut.record.pop(); + let mut trailing = ack(gg, C1, R1, E); + trailing.record.push(0); + let mut version = ack(gg, C1, R1, E); + version.record[4] = 2; + let empty_window = ack_with(C1, R1, E, E, class::LIVE, &whole).1; + let own = ack_with(R1, R1, E - 1_000_000, E, class::LIVE, &whole).1; + let small_order = { + let a = Ack { + mode: mode::ACK, + role: role::SINK, + upstream: pk(C1), + downstream: crate::sig::IDENTITY, + start: E - 1_000_000, + end: E, + prev: [0; 32], + entries: vec![AckEntry::of(class::LIVE, [0; 32], [0; 32], &whole)], + sig: [0; 64], + } + .sign(&key(R1)); + Given { record: a.to_bytes(), items: vec![item_list(&whole)] } + }; + let mut short_list = ack(gg, C1, R1, E); + short_list.items[0].pop(); + for (name, description, given, label) in [ + ("ack_truncated", "R1's record a byte short.", cut, "reject reason=truncated"), + ("ack_trailing_byte", "R1's record with a byte after its signature.", trailing, "reject reason=malformed"), + ("ack_unknown_version", "R1's record with a version byte of 2.", version, "reject reason=unknown_version"), + ("ack_window_empty", "R1's record whose window starts at its end, signed.", empty_window, "reject reason=ack_invalid"), + ("ack_self", "R1's record naming R1 as its own upstream, signed.", own, "reject reason=self_acknowledged"), + ("ack_key_small_order", "A record whose downstream is the identity point, a key of small order.", small_order, "reject reason=bad_key"), + ("ack_items_invalid", "R1's item list a byte short of a whole item.", short_list, "reject reason=items_invalid"), + ] { + push(name, description, inputs(vec![]), vec![given], vec![], target(&r1, "XA-1", D, 0), miss(&[label]).value()); + } + push( + "ack_any_class", + "R1's item of object 1 in an ancillary entry: the tally reads content hashes and ranges, whatever the class.", + inputs(vec![]), + vec![ack_with(C1, R1, E - 1_000_000, E, class::ANCILLARY, &[Item::whole(&gg.objects[1].0)]).1], + vec![], + target(&r1, "XA-1", D, 0), + hit_ack(&["read"]).value(), + ); + let mut ch = Chains::default(); + let not_sent = vec![ch.sign(C1, link, cache(gg, mc, MESH_C1, &[3], None)), ch.sign(R1, link, reconciliation(gg, mc, MESH_C1, &[1]))]; + push( + "bit_not_sent", + "R1 holds object 1 over mesh-c1, which C1 says sent object 3 only: a hit, credited to no server.", + inputs(not_sent), + vec![], + vec![], + target(&r1, "XA-1", D, 0), + Fig { unattributed: 1, claims: vec!["cache-declared", "counted"], ..fig(true, &r1, &[], 0) }.value(), + ); + let mut ch = Chains::default(); + let undeclared = vec![ch.sign(R1, link, reconciliation(gg, mc, UNKNOWN, &[1]))]; + push( + "set_aside_not_evidence", + "R1's reconciliation over an instance nobody declared is counted nowhere, and is no evidence.", + inputs(undeclared), + vec![], + vec![], + target(&r1, "XA-1", D, 0), + Fig { claims: vec!["set-aside reason=bearer_not_declared"], ..fig(false, &r1, &[R1], 1_000_000) }.value(), + ); + for (name, description, server, placement) in [ + ("revoked_server", "R1 acknowledges C3, whose key is revoked: a hit, and C3 refused.", C3, format!("refused reason=key_revoked origin={OP} compromised_since={COMPROMISED}")), + ("relay_server", "R1 acknowledges C5, a relay.", C5, format!("confirmed origin={OP} key_id=c5 role=live/relay")), + ("publisher_direct", "R1 acknowledges P itself.", P, publisher()), + ( + "not_granted_server", + "R1 acknowledges C8, which the operator's head lists with `delivery-gap` alone: a hit, and C8 refused.", + C8, + format!("refused reason=authority_not_granted origin={OP}"), + ), + ( + "retired_server_in_time", + "R1 acknowledges C4 with a window ending ten minutes before C4's `until`: a hit, and C4 confirmed until then.", + C4, + format!("confirmed origin={OP} key_id=c4 role={AUTHORITY} until={UNTIL}"), + ), + ] { + let (i, acks) = one_ack(ack(gg, server, R1, E)); + push(name, description, i, acks, vec![], target(&r1, "XA-1", D, 0), Fig { servers: vec![(server, placement, 1, 1)], acknowledgements: vec!["read"], ..fig(true, &r1, &[], 0) }.value()); + } + let late = (D + 30_000) * 1000; + let (i, acks) = one_ack(ack(gg, C4, R1, late)); + push( + "retired_server", + "R1 acknowledges C4 with a window ending thirty seconds past C4's `until`, against a deadline a minute past it: a hit, and C4 refused.", + i, + acks, + vec![], + target(&r1, "XA-1", D + 60_000, 0), + Fig { + deadline_ms: D + 60_000, + servers: vec![(C4, format!("refused reason=key_retired origin={OP} until={UNTIL}"), 1, 1)], + acknowledgements: vec!["read"], + ..fig(true, &r1, &[], 0) + } + .value(), + ); + let r12 = population(&[R1, R2]); + push( + "retired_server_latest", + "R1 acknowledges C4 in a window ending ten minutes before C4's `until`, R2 in one ending thirty seconds past it, against a deadline a minute past it: two hits, and C4 placed at the later, refused.", + inputs(vec![]), + vec![ack(gg, C4, R1, E), ack(gg, C4, R2, late)], + vec![], + target(&r12, "XA-1", D + 60_000, 0), + Fig { + deadline_ms: D + 60_000, + servers: vec![(C4, format!("refused reason=key_retired origin={OP} until={UNTIL}"), 2, 2)], + acknowledgements: vec!["read", "read"], + ..fig(true, &r12, &[], 0) + } + .value(), + ); + let mut i = inputs(base_claims()); + i.heads = heads(&[(OP, broken(operator())), (OTHER, other().to_json())]); + let unheld = || format!("unconfirmed reason=key_log_not_held origin={OP}"); + push( + "head_not_held", + "The operator's head does not verify: the figures of met_by_bearer_and_peers, every node's placement unconfirmed.", + i, + base_acks(), + vec![], + target(&four, "XA-1", D, 0), + Fig { servers: vec![(P, publisher(), 1, 1), (C1, unheld(), 2, 2), (C2, unheld(), 1, 1)], ..base_fig(true) }.value(), + ); + push( + "single_receiver_missed", + "One key, a miss: 1,000,000 ppm, above the greatest target.", + inputs(vec![]), + vec![], + vec![], + target(&r1, "XA-1", D, MAX_TARGET_PPM), + fig(false, &r1, &[R1], 1_000_000).value(), + ); + push("target_zero_met", "Every key a hit against a target of 0.", inputs(base_claims()), base_acks(), vec![], target(&four, "XA-1", D, 0), base_fig(true).value()); + let refuse = |r: &str| json!(format!("refuse reason={r}")); + push("target_million", "A miss target of 1,000,000.", inputs(base_claims()), base_acks(), vec![], target(&four, "XA-1", D, 1_000_000), refuse(TARGET_INVALID)); + push( + "deadline_max", + "The deadline at the last instant.", + inputs(base_claims()), + base_acks(), + vec![], + target(&four, "XA-1", LAST, 0), + Fig { deadline_ms: LAST, ..base_fig(true) }.value(), + ); + push("deadline_past_max", "A deadline a millisecond past the last instant.", inputs(base_claims()), base_acks(), vec![], target(&four, "XA-1", LAST + 1, 0), refuse(TARGET_INVALID)); + for (name, description, region) in [ + ("region_country", "The region a country code.", "XA"), + ("region_two_char", "A subdivision of two characters.", "XA-AB"), + ("region_three_char", "A subdivision of three characters.", "XA-ABC"), + ("same_keys_other_region", "met_by_bearer_and_peers's keys stated for XA-2: another digest.", "XA-2"), + ] { + push(name, description, inputs(base_claims()), base_acks(), vec![], target(&four, region, D, 0), Fig { region, ..base_fig(true) }.value()); + } + for (name, description, region, pop) in [ + ("region_lowercase", "The region in lowercase.", "xa-1", four.clone()), + ("region_no_subdivision", "A country code and a hyphen, with no subdivision.", "XA-", four.clone()), + ("region_four_char", "A subdivision of four characters.", "XA-ABCD", four.clone()), + ("population_empty", "No key.", "XA-1", vec![]), + ("population_unsorted", "The first two keys swapped.", "XA-1", { + let mut p = four.clone(); + p.swap(0, 1); + p + }), + ("population_duplicate", "A key twice.", "XA-1", { + let mut p = four.clone(); + p.insert(1, p[0]); + p + }), + ] { + push(name, description, inputs(base_claims()), base_acks(), vec![], target(&pop, region, D, 0), refuse(POPULATION_INVALID)); + } + push( + "object_out_of_range", + "Object 4 of a group of four.", + inputs(base_claims()), + base_acks(), + vec![], + Target { index: 4, ..target(&four, "XA-1", D, 0) }, + refuse(holdings::OBJECT_OUT_OF_RANGE), + ); + let mut i = inputs(base_claims()); + i.bearer.objects = gg.held(&[]); + push("object_not_verified", "No envelope for object 1: its length is unknown.", i, base_acks(), vec![], target(&four, "XA-1", D, 0), refuse(OBJECT_NOT_VERIFIED)); + let mut i = inputs(vec![]); + i.bearer.group = g.gx.group.to_json(); + i.bearer.objects = g.gx.held(&[1]); + push("group_start_unreadable", "GX, whose `group_start` is not a date-time.", i, vec![], vec![], target(&four, "XA-1", D, 0), refuse(CONTEXT_INVALID)); + let mut i = inputs(base_claims()); + i.bearer.group = broken_group(gg); + push("group_refused", "The group's signature is broken.", i, base_acks(), vec![], target(&four, "XA-1", D, 0), refuse("signature_verify_failed")); + + let r4 = population(&[R4]); + push( + "holdings_record_hit", + "R4's holdings record of G a second before the deadline, holding object 1, and no other evidence: a hit no server is credited for.", + inputs(vec![]), + vec![], + vec![record(gg, R4, D - 1_000, &[1])], + target(&r4, "XA-1", D, 0), + Fig { unattributed: 1, records: vec!["stands"], ..fig(true, &r4, &[], 0) }.value(), + ); + push( + "holdings_record_before_group", + "R4's record dated a second before G's start.", + inputs(vec![]), + vec![], + vec![record(gg, R4, START_MS - 1_000, &[1])], + target(&r4, "XA-1", D, 0), + Fig { records: vec!["reject reason=held_before_group"], ..fig(false, &r4, &[R4], 1_000_000) }.value(), + ); + push( + "holdings_record_contradicted", + "R4's two records at one instant with different digests.", + inputs(vec![]), + vec![], + vec![record(gg, R4, D - 1_000, &[1]), record(gg, R4, D - 1_000, &[1, 2])], + target(&r4, "XA-1", D, 0), + Fig { records: vec!["set-aside reason=holdings_contradicted", "set-aside reason=holdings_contradicted"], ..fig(false, &r4, &[R4], 1_000_000) }.value(), + ); + let claim = timeliness_claim(gg, &[0, 1], D); + let claim_link = ClaimReceipt::from_json(&claim).expect("the timeliness claim reads").link_hash(); + push( + "deadline_from_timeliness", + "The deadline given as P's timeliness claim, whose entry for object 1 has `by_ms` at D.", + inputs(base_claims()), + base_acks(), + vec![], + Target { deadline: Deadline::Timeliness(claim), ..target(&four, "XA-1", 0, 0) }, + Fig { deadline_claim: Some(claim_link), ..base_fig(true) }.value(), + ); + push( + "deadline_claim_no_entry", + "P's timeliness claim with an entry for object 0 alone.", + inputs(base_claims()), + base_acks(), + vec![], + Target { deadline: Deadline::Timeliness(timeliness_claim(gg, &[0], D)), ..target(&four, "XA-1", 0, 0) }, + refuse(timeliness::DEADLINE_NOT_STATED), + ); + push( + "deadline_claim_other_group", + "P's timeliness claim about G9, refused against G at jwp-receipts §3.1 step 6.", + inputs(base_claims()), + base_acks(), + vec![], + Target { deadline: Deadline::Timeliness(timeliness_claim(&g.g9, &[1], D)), ..target(&four, "XA-1", 0, 0) }, + refuse(timeliness::DEADLINE_NOT_STATED), + ); + let mut i = inputs(base_claims()); + i.bearer.objects = gg.held(&[1, 2]); + push( + "deadline_claim_fallback_not_derived", + "P's timeliness claim whose entry for object 1 falls back to G's object 2, whose envelope is held and is not derived from object 1: refused at timeliness §4.3 step 8 against what the verifier holds.", + i, + base_acks(), + vec![], + Target { deadline: Deadline::Timeliness(timeliness_claim_of(gg, vec![entry(gg, 1, D, fallback(gg, 2))])), ..target(&four, "XA-1", 0, 0) }, + refuse(timeliness::DEADLINE_NOT_STATED), + ); + out +} + +// ───────────────────────────── timeliness lines (§9) ───────────────────────────── + +struct LinesCase { + name: &'static str, + description: &'static str, + inputs: Inputs, + acks: Vec, + records: Vec>, + claim: String, + outcome: Value, +} + +/// Lines, each a key and its line, in increasing order of key bytes (timeliness §6.3). +fn in_key_order(mut lines: Vec<(u8, Value)>) -> Value { + lines.sort_by_key(|(seed, _)| pk(*seed)); + Value::Array(lines.into_iter().map(|(_, l)| l).collect()) +} + +fn lines_cases(g: &Groups) -> Vec { + let gg = &g.g; + let link = gg.link(); + let inputs = |claims: Vec| Inputs { + bearer: bearer_receipts::Inputs { group: gg.group.to_json(), objects: gg.held(&[1]), claims, ..Default::default() }, + heads: both(), + }; + let on_time = |seed: u8, at: u64| json!({"holder": h(seed), "held_ms": at, "fallback_ms": null, "outcome": "on_time", "value_ppm": 1_000_000}); + let replaced = |seed: u8, at: u64| json!({"holder": h(seed), "held_ms": null, "fallback_ms": at, "outcome": "replaced", "value_ppm": 400_000}); + let mut ch = Chains::default(); + let claims = vec![ + ch.sign(P, link, transmission(Bearer::Unidirectional, SAT)), + ch.sign(R1, link, reconciliation(gg, Bearer::Unidirectional, SAT, &[1])), + ch.sign(R2, link, reconciliation(gg, Bearer::Multicast, UNKNOWN, &[1])), + ]; + let gf = &g.gf; + let mut ch = Chains::default(); + let gf_claims = vec![ + ch.sign(P, gf.link(), transmission(Bearer::Unidirectional, SAT)), + ch.sign(R1, gf.link(), reconciliation(gf, Bearer::Unidirectional, SAT, &[1, 2])), + ]; + vec![ + LinesCase { + name: "timeliness_line_from_ack", + description: "timeliness §6.3's lines for object 1, with R3's acknowledgement of C1 given: on time, at its window's last microsecond rounded up.", + inputs: inputs(vec![]), + acks: vec![ack(gg, C1, R3, E)], + records: vec![], + claim: timeliness_claim(gg, &[1], D), + outcome: json!([on_time(R3, D - 600_000)]), + }, + LinesCase { + name: "timeliness_line_from_reconciliation", + description: "The same from R1's counted reconciliation over sat, at its `issued_at`; R2's over an instance nobody declared gives no line.", + inputs: inputs(claims), + acks: vec![], + records: vec![], + claim: timeliness_claim(gg, &[1], D), + outcome: json!([on_time(R1, D - 1_800_000)]), + }, + LinesCase { + name: "timeliness_line_record_without_envelope", + description: "No envelope held: R4's holdings record of object 1, a second before the deadline, is on time, as timeliness §6 reads it; R3's acknowledgement of object 1 gives no statement, the object's length unknown.", + inputs: Inputs { bearer: bearer_receipts::Inputs { objects: gg.held(&[]), ..inputs(vec![]).bearer }, heads: both() }, + acks: vec![ack(gg, C1, R3, E)], + records: vec![record(gg, R4, D - 1_000, &[1])], + claim: timeliness_claim(gg, &[1], D), + outcome: json!([on_time(R4, D - 1_000)]), + }, + LinesCase { + name: "timeliness_line_fallback_other_group", + description: "Object 1's entry falls back to G9's object 1. R3 acknowledges the primary; R4's only record is of G9, holding the fallback a second before the deadline: R4 has a line, replaced.", + inputs: inputs(vec![]), + acks: vec![ack(gg, C1, R3, E)], + records: vec![record(&g.g9, R4, D - 1_000, &[1])], + claim: timeliness_claim_of(gg, vec![entry(gg, 1, D, fallback(&g.g9, 1))]), + outcome: in_key_order(vec![(R3, on_time(R3, D - 600_000)), (R4, replaced(R4, D - 1_000))]), + }, + LinesCase { + name: "timeliness_line_fallback_same_group", + description: "GF's object 1 falls back to its object 2, a floor of it, both envelopes held. R1 reconciles both over sat; R3 acknowledges the fallback alone: R1 on time with both held, R3 replaced.", + inputs: Inputs { + bearer: bearer_receipts::Inputs { group: gf.group.to_json(), objects: gf.held(&[1, 2]), claims: gf_claims, ..Default::default() }, + heads: both(), + }, + acks: vec![ack_of(gf, 2, C1, R3, E)], + records: vec![], + claim: timeliness_claim_of(gf, vec![entry(gf, 1, D, fallback(gf, 2))]), + outcome: in_key_order(vec![ + (R1, json!({"holder": h(R1), "held_ms": D - 1_800_000, "fallback_ms": D - 1_800_000, "outcome": "on_time", "value_ppm": 1_000_000})), + (R3, replaced(R3, D - 600_000)), + ]), + }, + ] +} + +// ───────────────────────────── writing it ───────────────────────────── + +fn inputs_value(i: &Inputs) -> Map { + let b = &i.bearer; + let mut m = Map::new(); + m.insert("group".into(), b.group.clone()); + m.insert( + "objects".into(), + b.objects.iter().map(|o| json!({"receipt": o.receipt, "envelope": o.envelope.as_ref().map(|e| hex(e))})).collect::>().into(), + ); + m.insert("claims".into(), json!(b.claims)); + m.insert("sink".into(), b.sink.as_ref().map_or(Value::Null, |(bearer, id)| json!({"bearer": bearer.label(), "bearer_id": id}))); + m.insert( + "assertion".into(), + match b.assertion { + None => Value::Null, + Some(Assertion::Transmitted(c)) => json!({"transmitted": c.label()}), + Some(Assertion::Delivered(k)) => json!({"delivered": k}), + }, + ); + m.insert("count_only".into(), b.count_only.as_ref().map_or(Value::Null, |ks| json!(ks.iter().map(|k| hex(k)).collect::>()))); + m.insert("heads".into(), heads_value(&i.heads)); + m +} + +fn acks_value(acks: &[Given]) -> Value { + json!(acks.iter().map(|a| json!({"record": hex(&a.record), "items": a.items.iter().map(|l| hex(l)).collect::>()})).collect::>()) +} + +pub fn generate() -> Vec<(String, String)> { + let g = groups(); + let mut keys = Map::new(); + for (name, seed) in [ + ("P", P), + ("C1", C1), + ("C2", C2), + ("C3", C3), + ("C4", C4), + ("C5", C5), + ("C6", C6), + ("C7", C7), + ("C8", C8), + ("R1", R1), + ("R2", R2), + ("R3", R3), + ("R4", R4), + ("R9", R9), + ] { + keys.insert(name.into(), h(seed).into()); + } + let mut group_links = Map::new(); + for (name, p) in [("G", &g.g), ("G9", &g.g9), ("GL", &g.gl), ("GX", &g.gx), ("GF", &g.gf)] { + group_links.insert(name.into(), hex(&p.link()).into()); + } + let doc = json!({ + "about": "Conformance corpus of extensions/cache-authority.md (wai.delivery.cache): the cache-transmission claim \ + (jwp-receipts §2.4.18) through jwp-receipts §3.1 steps 1 to 6, placing a server key by the heads named (§4.4), \ + the bearer verdict with a cache's instances beside the publisher's (§7), the count of a stated population that \ + held an object by a deadline (§8), and timeliness lines from acknowledgements and reconciliations (§9). Every \ + key is Ed25519 from a published seed of one byte repeated 32 times and attests nothing, and both key logs are \ + test logs; envelopes carry opaque test payloads no case decodes; bearer instances and origins use reserved \ + example domains, and regions ISO 3166-1's user-assigned codes. Each case states the outcome it was written to \ + have, declared in the generator. Regenerate with `wai_cache_authority_vectors gen`.", + "keys": keys, + "groups": group_links, + "heads": { "operator": operator().to_json(), "other": other().to_json() }, + "claims": claim_cases(&g).iter().map(|c| json!({ + "name": c.name, + "description": c.description, + "earlier": c.earlier, + "claim": c.claim, + "context": c.context, + "objects": c.objects, + "outcome": c.outcome, + })).collect::>(), + "placements": placement_cases().iter().map(|c| json!({ + "name": c.name, + "description": c.description, + "key": h(c.key), + "at_ms": c.at_ms, + "heads": heads_value(&c.heads), + "outcome": c.outcome, + })).collect::>(), + "verdicts": verdict_cases(&g).iter().map(|c| { + let mut m = Map::new(); + m.insert("name".into(), c.name.into()); + m.insert("description".into(), c.description.into()); + m.extend(inputs_value(&c.inputs)); + m.insert("outcome".into(), c.outcome.clone()); + Value::Object(m) + }).collect::>(), + "tallies": tally_cases(&g).iter().map(|c| { + let mut m = Map::new(); + m.insert("name".into(), c.name.into()); + m.insert("description".into(), c.description.into()); + m.extend(inputs_value(&c.inputs)); + m.insert("acknowledgements".into(), acks_value(&c.acks)); + m.insert("records".into(), json!(c.records.iter().map(|r| hex(r)).collect::>())); + m.insert("index".into(), c.target.index.into()); + match &c.target.deadline { + Deadline::Stated(d) => { + m.insert("deadline_ms".into(), (*d).into()); + m.insert("deadline_claim".into(), Value::Null); + } + Deadline::Timeliness(t) => { + m.insert("deadline_ms".into(), Value::Null); + m.insert("deadline_claim".into(), t.clone().into()); + } + } + m.insert("region".into(), c.target.region.clone().into()); + m.insert("population".into(), json!(c.target.population.iter().map(|k| hex(k)).collect::>())); + m.insert("miss_target_ppm".into(), c.target.miss_target_ppm.into()); + m.insert("outcome".into(), c.outcome.clone()); + Value::Object(m) + }).collect::>(), + "lines": lines_cases(&g).iter().map(|c| { + let mut m = Map::new(); + m.insert("name".into(), c.name.into()); + m.insert("description".into(), c.description.into()); + m.extend(inputs_value(&c.inputs)); + m.insert("acknowledgements".into(), acks_value(&c.acks)); + m.insert("records".into(), json!(c.records.iter().map(|r| hex(r)).collect::>())); + m.insert("claim".into(), c.claim.clone().into()); + m.insert("index".into(), 1.into()); + m.insert("outcome".into(), c.outcome.clone()); + Value::Object(m) + }).collect::>(), + }); + let mut s = serde_json::to_string_pretty(&doc).expect("serialises"); + s.push('\n'); + vec![("vectors.json".into(), s)] +} + +// ───────────────────────────── reading it back ───────────────────────────── + +fn bytes_of(v: &Value) -> Result, String> { + v.as_str().and_then(unhex).ok_or_else(|| format!("not hex: {v}")) +} + +fn key_of(v: &Value) -> Result<[u8; 32], String> { + bytes_of(v)?.try_into().map_err(|_| format!("not a key: {v}")) +} + +fn heads_of(v: &Value) -> Result, String> { + v.as_object() + .ok_or("heads")? + .iter() + .map(|(o, t)| Ok((o.clone(), t.as_str().ok_or("a head")?.to_owned()))) + .collect() +} + +/// A case's verdict inputs, as the corpus writes them. +pub fn inputs_of(c: &Value) -> Result { + let objects = c["objects"] + .as_array() + .ok_or("objects")? + .iter() + .map(|o| { + let envelope = match &o["envelope"] { + Value::Null => None, + v => Some(bytes_of(v)?), + }; + Ok(HeldObject { receipt: o["receipt"].clone(), envelope }) + }) + .collect::, String>>()?; + let claims = c["claims"].as_array().ok_or("claims")?.iter().map(|w| w.as_str().map(str::to_owned).ok_or_else(|| "claim".to_string())).collect::>()?; + let sink = match &c["sink"] { + Value::Null => None, + s => Some((Bearer::from_label(s["bearer"].as_str().unwrap_or("")).ok_or("sink bearer")?, s["bearer_id"].as_str().ok_or("sink id")?.to_owned())), + }; + let assertion = match &c["assertion"] { + Value::Null => None, + a => match (a.get("transmitted"), a.get("delivered")) { + (Some(t), None) => Some(Assertion::Transmitted(Bearer::from_label(t.as_str().unwrap_or("")).ok_or("assertion bearer")?)), + (None, Some(k)) => Some(Assertion::Delivered(k.as_u64().ok_or("delivered")?)), + _ => return Err("assertion".into()), + }, + }; + let count_only = match &c["count_only"] { + Value::Null => None, + v => Some(v.as_array().ok_or("count_only")?.iter().map(key_of).collect::>()?), + }; + Ok(Inputs { + bearer: bearer_receipts::Inputs { group: c["group"].clone(), objects, claims, sink, assertion, count_only }, + heads: heads_of(&c["heads"])?, + }) +} + +fn acks_of(v: &Value) -> Result, String> { + v.as_array() + .ok_or("acknowledgements")? + .iter() + .map(|a| { + let items = a["items"].as_array().ok_or("items")?.iter().map(bytes_of).collect::>()?; + Ok(Given { record: bytes_of(&a["record"])?, items }) + }) + .collect() +} + +fn records_of(v: &Value) -> Result>, String> { + v.as_array().ok_or("records")?.iter().map(bytes_of).collect() +} + +/// A tally case's target, as the corpus writes it. +pub fn target_of(c: &Value) -> Result { + let deadline = match (&c["deadline_ms"], &c["deadline_claim"]) { + (Value::Null, t) => Deadline::Timeliness(t.as_str().ok_or("deadline_claim")?.to_owned()), + (d, Value::Null) => Deadline::Stated(d.as_u64().ok_or("deadline_ms")?), + _ => return Err("both deadlines".into()), + }; + Ok(Target { + index: c["index"].as_u64().ok_or("index")?, + deadline, + region: c["region"].as_str().ok_or("region")?.to_owned(), + population: c["population"].as_array().ok_or("population")?.iter().map(key_of).collect::>()?, + miss_target_ppm: c["miss_target_ppm"].as_u64().ok_or("miss_target_ppm")?, + }) +} + +fn energy_value(e: &Option<(u64, String)>) -> Value { + e.as_ref().map_or(Value::Null, |(j, c)| json!({"joules_micro": j, "class": c})) +} + +/// The outcome [`verdict`] gives, written as a case states one. +fn verdict_outcome(v: &Result) -> Value { + match v { + Err(e) => json!(format!("refuse reason={}", e.reason.label())), + Ok(v) => json!({ + "objects": v.objects, + "claims": v.claims.iter().map(ClaimVerdict::label).collect::>(), + "status": v.status.label(), + "sinks": v.sinks, + "whole": v.whole, + "received_by": v.received_by, + "bearers": v.bearers.iter().map(|l| json!({ + "bearer_id": l.bearer_id, "bearer": l.bearer.label(), "sinks": l.sinks, + "energy": energy_value(&l.energy), "per_receiver_upper_bound": l.per_receiver_upper_bound, + })).collect::>(), + "caches": v.caches.iter().map(|c| json!({ + "bearer_id": c.bearer_id, "bearer": c.bearer.label(), "server": hex(&c.server), "placement": c.placement.label(), + "sent": c.sent, "sinks": c.sinks, + "received_by": c.received_by.iter().map(|(o, k)| json!([o, k])).collect::>(), + "energy": energy_value(&c.energy), "per_receiver_upper_bound": c.per_receiver_upper_bound, + })).collect::>(), + "sink": v.sink, + "assertion": v.assertion.map(|a| match a { + Ok(()) => "holds".to_string(), + Err(r) => format!("reject reason={r}"), + }), + }), + } +} + +/// The outcome [`tally`] gives, written as a case states one. +fn tally_outcome(t: &Result) -> Value { + match t { + Err(r) => json!(format!("refuse reason={}", r.label())), + Ok(t) => json!({ + "outcome": if t.met { "met".to_string() } else { format!("refuse reason={MISS_TARGET_EXCEEDED}") }, + "region": t.region, + "population_digest": hex(&t.population_digest), + "deadline_ms": t.deadline_ms, + "deadline_claim": t.deadline_claim.map(|c| hex(&c)), + "n": t.n, + "hits": t.hits, + "misses": t.misses, + "miss_ppm": t.miss_ppm, + "missing": t.missing.iter().map(|k| hex(k)).collect::>(), + "set_aside": t.set_aside.iter().map(|(k, s, r)| json!({"key": hex(k), "source": s, "reason": r})).collect::>(), + "servers": t.servers.iter().map(|s| json!({ + "key": hex(&s.key), + "placement": s.placement.as_ref().map_or_else(|| "publisher".to_string(), Placement::label), + "hits": s.hits, + "sole": s.sole, + })).collect::>(), + "unattributed": t.unattributed, + "acknowledgements": t.acknowledgements, + "records": t.records, + "claims": t.claims, + }), + } +} + +fn lines_outcome(l: &Result, Refusal>) -> Value { + match l { + Err(r) => json!(format!("refuse reason={}", r.label())), + Ok(ls) => json!(ls + .iter() + .map(|l| json!({"holder": hex(&l.holder), "held_ms": l.held_ms, "fallback_ms": l.fallback_ms, "outcome": l.outcome.label(), "value_ppm": l.value_ppm})) + .collect::>()), + } +} + +fn claim_outcome(c: &Value) -> Result { + let earlier: Vec = c["earlier"].as_array().ok_or("earlier")?.iter().map(|w| w.as_str().unwrap_or("").to_owned()).collect(); + let context = (!c["context"].is_null()).then_some(&c["context"]); + let objects = c["objects"].as_array().ok_or("objects")?; + Ok(json!(check_claim(&earlier, c["claim"].as_str().ok_or("claim")?, context, objects))) +} + +fn placement_outcome(c: &Value) -> Result { + Ok(json!(place(&key_of(&c["key"])?, c["at_ms"].as_u64().ok_or("at_ms")?, &heads_of(&c["heads"])?).label())) +} + +fn strings(v: &Value, out: &mut Vec) { + match v { + Value::String(s) => out.push(s.clone()), + Value::Array(a) => a.iter().for_each(|x| strings(x, out)), + Value::Object(m) => m.values().for_each(|x| strings(x, out)), + _ => {} + } +} + +/// Check a corpus's files against this module: each case's outcome, and every reason of §11. +/// Returns the failures. +pub fn verify(files: &BTreeMap) -> Vec { + let mut fails = Vec::new(); + let Some(text) = files.get("vectors.json") else { return vec!["no vectors.json".into()] }; + let doc: Value = match serde_json::from_str(text) { + Ok(d) => d, + Err(e) => return vec![format!("vectors.json: {e}")], + }; + let empty = Vec::new(); + let mut stated = Vec::new(); + let mut check = |kind: &str, run: &dyn Fn(&Value) -> Result| { + let cases = doc[kind].as_array().unwrap_or(&empty); + if cases.is_empty() { + fails.push(format!("no {kind} cases")); + } + for c in cases { + let name = c["name"].as_str().unwrap_or("?"); + match run(c) { + Err(e) => fails.push(format!("{kind} {name}: {e}")), + Ok(got) if got != c["outcome"] => fails.push(format!("{kind} {name}: stated {} got {got}", c["outcome"])), + Ok(_) => {} + } + strings(&c["outcome"], &mut stated); + } + }; + check("claims", &claim_outcome); + check("placements", &placement_outcome); + check("verdicts", &|c| Ok(verdict_outcome(&verdict(&inputs_of(c)?)))); + check("tallies", &|c| Ok(tally_outcome(&tally(&inputs_of(c)?, &acks_of(&c["acknowledgements"])?, &records_of(&c["records"])?, &target_of(c)?)))); + check("lines", &|c| { + let i = inputs_of(c)?; + Ok(lines_outcome(&timeliness_lines(&i, &acks_of(&c["acknowledgements"])?, &records_of(&c["records"])?, c["claim"].as_str().ok_or("claim")?, c["index"].as_u64().ok_or("index")?))) + }); + for code in CODES { + let r = format!("reason={code}"); + if !stated.iter().any(|s| s.split(' ').any(|w| w == r)) { + fails.push(format!("no case gives {code}")); + } + } + fails +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn the_corpus_reaches_every_stated_outcome() { + let files: BTreeMap = generate().into_iter().collect(); + let fails = verify(&files); + assert!(fails.is_empty(), "{}", fails.join("\n")); + } + + #[test] + fn a_changed_outcome_fails_verification() { + let mut files: BTreeMap = generate().into_iter().collect(); + let text = files["vectors.json"].replacen("\"miss_ppm\": 333334", "\"miss_ppm\": 333333", 1); + assert_ne!(text, files["vectors.json"], "the corpus states rounded_up's rate"); + files.insert("vectors.json".into(), text); + assert!(!verify(&files).is_empty()); + } + + #[test] + fn envelopes_are_their_stated_lengths() { + let g = groups(); + for p in [&g.g, &g.g9, &g.gl, &g.gx, &g.gf] { + for (e, _) in &p.objects { + assert_eq!(e.len() as u64, LENGTH); + } + } + } +} diff --git a/wai/wai-rs/src/carousel.rs b/wai/wai-rs/src/carousel.rs index e6bebbd71..0df893602 100644 --- a/wai/wai-rs/src/carousel.rs +++ b/wai/wai-rs/src/carousel.rs @@ -336,6 +336,69 @@ impl Refusal { } } +/// §6.2 steps 3 and 4 over the claims accepted about one group, each at its position (`None` +/// for one refused): the declarations by instance (bearer-receipts §6.2 step 4), then the +/// schedules by instance. Returns the reason each claim set aside is set aside for, by its +/// position, and the position of each standing schedule by its `bearer_id`. A timeliness plan +/// (`crate::timeliness`) reads the schedules that stand here. +pub(crate) fn standing(accepted: &[Option]) -> (BTreeMap, BTreeMap) { + let mut aside: BTreeMap = BTreeMap::new(); + // Step 3: the declarations, by instance (bearer-receipts §6.2 step 4). + let mut declared: BTreeMap> = BTreeMap::new(); + for (i, c) in accepted.iter().enumerate() { + if let Some(t) = c.as_ref().and_then(ClaimReceipt::transmission) { + declared.entry(t.bearer_id.clone()).or_default().push(i); + } + } + let mut declaration: BTreeMap = BTreeMap::new(); + let mut contradicted: BTreeSet = BTreeSet::new(); + for (id, idx) in &declared { + let first = accepted[idx[0]].as_ref().and_then(ClaimReceipt::transmission); + if idx.iter().all(|&i| accepted[i].as_ref().and_then(ClaimReceipt::transmission) == first) { + declaration.insert(id.clone(), first.expect("a transmission").bearer); + } else { + contradicted.insert(id.clone()); + for &i in idx { + aside.insert(i, BEARER_CONTRADICTED); + } + } + } + + // Step 4: the schedules, by instance. + let mut scheduled: BTreeMap> = BTreeMap::new(); + for (i, c) in accepted.iter().enumerate() { + if let Some(s) = c.as_ref().and_then(ClaimReceipt::schedule) { + scheduled.entry(s.bearer_id.clone()).or_default().push(i); + } + } + let mut standing: BTreeMap = BTreeMap::new(); + for (id, idx) in &scheduled { + let first = accepted[idx[0]].as_ref().and_then(ClaimReceipt::schedule); + let reason = if idx.iter().any(|&i| accepted[i].as_ref().and_then(ClaimReceipt::schedule) != first) { + Some(SCHEDULE_CONTRADICTED) + } else if contradicted.contains(id) { + Some(BEARER_CONTRADICTED) + } else { + match declaration.get(id) { + None => Some(BEARER_NOT_DECLARED), + Some(Bearer::Bidirectional) => Some(SCHEDULE_ON_BIDIRECTIONAL), + Some(_) => None, + } + }; + match reason { + Some(reason) => { + for &i in idx { + aside.insert(i, reason); + } + } + None => { + standing.insert(id.clone(), idx[0]); + } + } + } + (aside, standing) +} + /// §6.2: the verdict over one group. pub fn verdict(inp: &Inputs) -> Result { check_bounds(inp.loss_ppm, inp.overhead).map_err(Refusal::Input)?; @@ -390,58 +453,10 @@ pub fn verdict(inp: &Inputs) -> Result { } } - // Step 3: the declarations, by instance (bearer-receipts §6.2 step 4). - let mut declared: BTreeMap> = BTreeMap::new(); - for (i, c) in accepted.iter().enumerate() { - if let Some(t) = c.as_ref().and_then(ClaimReceipt::transmission) { - declared.entry(t.bearer_id.clone()).or_default().push(i); - } - } - let mut declaration: BTreeMap = BTreeMap::new(); - let mut contradicted: BTreeSet = BTreeSet::new(); - for (id, idx) in &declared { - let first = accepted[idx[0]].as_ref().and_then(ClaimReceipt::transmission); - if idx.iter().all(|&i| accepted[i].as_ref().and_then(ClaimReceipt::transmission) == first) { - declaration.insert(id.clone(), first.expect("a transmission").bearer); - } else { - contradicted.insert(id.clone()); - for &i in idx { - claims[i] = ClaimVerdict::SetAside(BEARER_CONTRADICTED); - } - } - } - - // Step 4: the schedules, by instance. - let mut scheduled: BTreeMap> = BTreeMap::new(); - for (i, c) in accepted.iter().enumerate() { - if let Some(s) = c.as_ref().and_then(ClaimReceipt::schedule) { - scheduled.entry(s.bearer_id.clone()).or_default().push(i); - } - } - let mut standing: BTreeMap = BTreeMap::new(); - for (id, idx) in &scheduled { - let first = accepted[idx[0]].as_ref().and_then(ClaimReceipt::schedule); - let aside = if idx.iter().any(|&i| accepted[i].as_ref().and_then(ClaimReceipt::schedule) != first) { - Some(SCHEDULE_CONTRADICTED) - } else if contradicted.contains(id) { - Some(BEARER_CONTRADICTED) - } else { - match declaration.get(id) { - None => Some(BEARER_NOT_DECLARED), - Some(Bearer::Bidirectional) => Some(SCHEDULE_ON_BIDIRECTIONAL), - Some(_) => None, - } - }; - match aside { - Some(reason) => { - for &i in idx { - claims[i] = ClaimVerdict::SetAside(reason); - } - } - None => { - standing.insert(id.clone(), idx[0]); - } - } + // Steps 3 and 4. + let (aside, standing) = self::standing(&accepted); + for (&i, &reason) in &aside { + claims[i] = ClaimVerdict::SetAside(reason); } // Step 5. diff --git a/wai/wai-rs/src/claim_receipt.rs b/wai/wai-rs/src/claim_receipt.rs index 6a5cbdf36..0d91b5ef7 100644 --- a/wai/wai-rs/src/claim_receipt.rs +++ b/wai/wai-rs/src/claim_receipt.rs @@ -133,11 +133,14 @@ pub use crate::jwp_hash::{content_hash as object_content_hash, DOMAIN_OBJECT}; /// cbindgen:ignore pub mod bearer; -pub use bearer::{Bearer, ReconciliationClaim, TransmissionClaim}; +pub use bearer::{Bearer, CacheTransmissionClaim, ReconciliationClaim, TransmissionClaim}; /// cbindgen:ignore pub mod schedule; pub use schedule::{BlockSize, Esi, Fec, Oti, ScheduleClaim, ScheduleEntry}; /// cbindgen:ignore +pub mod timeliness; +pub use timeliness::{DecayPoint, Fallback, HeldGroup, TimelinessClaim, TimelinessEntry}; +/// cbindgen:ignore pub mod consumption; pub use consumption::{ConsumptionClaim, UsageEntry, Vocabulary}; pub mod session; @@ -494,6 +497,54 @@ pub enum Reason { ScheduleContentMismatch, /// A `schedule` entry whose transfer length is not its object's length. ScheduleLengthMismatch, + /// A `timeliness` claim whose `attests` is not `valued`. + TimelinessNotValued, + /// A `timeliness` claim with no entry, or entries not in strictly increasing `leaf_index`. + TimelinessObjectsMalformed, + /// A `timeliness` entry whose `from_ms` is after its `by_ms`, or whose `by_ms` is not below + /// the last instant. + TimelinessWindowInvalid, + /// A `timeliness` entry whose decay is not well formed. + TimelinessDecayInvalid, + /// A `timeliness` entry whose fallback is not well formed. + TimelinessFallbackInvalid, + /// A `timeliness` claim whose subject is not the link hash of the group it is checked + /// against. + TimelinessSubjectMismatch, + /// A `timeliness` claim not signed by the group's key. + TimelinessSignerMismatch, + /// A `timeliness` entry naming an object past the group's leaf count. + TimelinessLeafOutOfRange, + /// A `timeliness` entry of use before the group begins. + TimelinessBeforeGroup, + /// A `timeliness` entry whose content hash is not that of the object receipt at its + /// position. + TimelinessContentMismatch, + /// A `timeliness` entry, or its fallback, that is a staged layer. + TimelinessOnLayer, + /// A `timeliness` fallback whose position or content hash its group's receipts contradict. + TimelinessFallbackMismatch, + /// A `timeliness` fallback whose envelope does not derive from the entry's object. + TimelinessFallbackNotDerived, + /// A `cache-transmission` claim whose `attests` is not `transmitted`. + CacheTransmissionNotTransmitted, + /// A `cache-transmission` claim over a `bidirectional` bearer instance. + CacheTransmissionOnBidirectional, + /// A `cache-transmission` claim with no object, a bitmap of another length than its leaf + /// count gives, a bit at or past its leaf count, or no bit set. + CacheTransmissionBitmapMalformed, + /// A `cache-transmission` claim whose subject is not the link hash of the group it is + /// checked against. + CacheTransmissionSubjectMismatch, + /// A `cache-transmission` claim signed by the group's key. + CacheTransmissionByPublisher, + /// A `cache-transmission` claim whose leaf count is not the group's. + CacheTransmissionLeafCountMismatch, + /// A `cache-transmission` claim naming an object whose receipt the verifier does not hold. + /// Recoverable by obtaining it; never accepted silently. + CacheTransmissionObjectsNotHeld, + /// A `cache-transmission` claim whose root is not the root over the leaves it names. + CacheTransmissionRootMismatch, /// A reason of pq-signatures §8: a hybrid claim's members (step 1), its post-quantum /// half or the verifier's requirement of one (step 3). #[cfg(feature = "pq_signatures")] @@ -640,6 +691,27 @@ impl Reason { Reason::ScheduleBeforeGroup => "schedule_before_group", Reason::ScheduleContentMismatch => "schedule_content_mismatch", Reason::ScheduleLengthMismatch => "schedule_length_mismatch", + Reason::TimelinessNotValued => "timeliness_not_valued", + Reason::TimelinessObjectsMalformed => "timeliness_objects_malformed", + Reason::TimelinessWindowInvalid => "timeliness_window_invalid", + Reason::TimelinessDecayInvalid => "timeliness_decay_invalid", + Reason::TimelinessFallbackInvalid => "timeliness_fallback_invalid", + Reason::TimelinessSubjectMismatch => "timeliness_subject_mismatch", + Reason::TimelinessSignerMismatch => "timeliness_signer_mismatch", + Reason::TimelinessLeafOutOfRange => "timeliness_leaf_out_of_range", + Reason::TimelinessBeforeGroup => "timeliness_before_group", + Reason::TimelinessContentMismatch => "timeliness_content_mismatch", + Reason::TimelinessOnLayer => "timeliness_on_layer", + Reason::TimelinessFallbackMismatch => "timeliness_fallback_mismatch", + Reason::TimelinessFallbackNotDerived => "timeliness_fallback_not_derived", + Reason::CacheTransmissionNotTransmitted => "cache_transmission_not_transmitted", + Reason::CacheTransmissionOnBidirectional => "cache_transmission_on_bidirectional", + Reason::CacheTransmissionBitmapMalformed => "cache_transmission_bitmap_malformed", + Reason::CacheTransmissionSubjectMismatch => "cache_transmission_subject_mismatch", + Reason::CacheTransmissionByPublisher => "cache_transmission_by_publisher", + Reason::CacheTransmissionLeafCountMismatch => "cache_transmission_leaf_count_mismatch", + Reason::CacheTransmissionObjectsNotHeld => "cache_transmission_objects_not_held", + Reason::CacheTransmissionRootMismatch => "cache_transmission_root_mismatch", #[cfg(feature = "pq_signatures")] Reason::Pq(r) => r.label(), } @@ -717,6 +789,8 @@ pub enum ClaimClass { Transmission, Reconciliation, Schedule, + Timeliness, + CacheTransmission, } /// The class of `group` and `object` receipts. A claim naming it is rejected. @@ -740,6 +814,8 @@ impl ClaimClass { ClaimClass::Transmission => "transmission", ClaimClass::Reconciliation => "reconciliation", ClaimClass::Schedule => "schedule", + ClaimClass::Timeliness => "timeliness", + ClaimClass::CacheTransmission => "cache-transmission", } } @@ -760,6 +836,8 @@ impl ClaimClass { "transmission" => Some(ClaimClass::Transmission), "reconciliation" => Some(ClaimClass::Reconciliation), "schedule" => Some(ClaimClass::Schedule), + "timeliness" => Some(ClaimClass::Timeliness), + "cache-transmission" => Some(ClaimClass::CacheTransmission), _ => None, } } @@ -773,11 +851,15 @@ impl ClaimClass { /// object. pub fn admits(self, t: SubjectType) -> bool { match self { - // A declaration of a transmission, a reconciliation and a schedule are about a - // group: its link hash (bearer-receipts §4, §5; carousel §4). - ClaimClass::LogInclusion | ClaimClass::Transmission | ClaimClass::Reconciliation | ClaimClass::Schedule => { - t == SubjectType::Receipt - } + // A declaration of a transmission, a reconciliation, a schedule, a statement of + // timeliness and a cache's declaration of its own instance are about a group: its link + // hash (bearer-receipts §4, §5; carousel §4; timeliness §4; cache-authority §5). + ClaimClass::LogInclusion + | ClaimClass::Transmission + | ClaimClass::Reconciliation + | ClaimClass::Schedule + | ClaimClass::Timeliness + | ClaimClass::CacheTransmission => t == SubjectType::Receipt, ClaimClass::LawfulBasis | ClaimClass::Measurement | ClaimClass::OperatingPoint => true, ClaimClass::Energy | ClaimClass::SoftBinding @@ -1945,6 +2027,8 @@ pub enum ClaimBody { Transmission(TransmissionClaim), Reconciliation(ReconciliationClaim), Schedule(ScheduleClaim), + Timeliness(TimelinessClaim), + CacheTransmission(CacheTransmissionClaim), } /// The energy body's members, in the order step 2 reads them. @@ -2107,6 +2191,8 @@ impl ClaimBody { ClaimBody::Transmission(_) => ClaimClass::Transmission, ClaimBody::Reconciliation(_) => ClaimClass::Reconciliation, ClaimBody::Schedule(_) => ClaimClass::Schedule, + ClaimBody::Timeliness(_) => ClaimClass::Timeliness, + ClaimBody::CacheTransmission(_) => ClaimClass::CacheTransmission, } } @@ -2273,6 +2359,8 @@ impl ClaimBody { ClaimBody::Transmission(c) => return c.to_value(), ClaimBody::Reconciliation(c) => return c.to_value(), ClaimBody::Schedule(c) => return c.to_value(), + ClaimBody::Timeliness(c) => return c.to_value(), + ClaimBody::CacheTransmission(c) => return c.to_value(), } Value::Object(m) } @@ -2508,6 +2596,8 @@ impl ClaimBody { ClaimClass::Transmission => ClaimBody::Transmission(TransmissionClaim::read(m)?), ClaimClass::Reconciliation => ClaimBody::Reconciliation(ReconciliationClaim::read(m)?), ClaimClass::Schedule => ClaimBody::Schedule(ScheduleClaim::read(m)?), + ClaimClass::Timeliness => ClaimBody::Timeliness(TimelinessClaim::read(m)?), + ClaimClass::CacheTransmission => ClaimBody::CacheTransmission(CacheTransmissionClaim::read(m)?), ClaimClass::BindingRecovery => { members(m, RECOVERY_MEMBERS)?; ClaimBody::BindingRecovery(BindingRecoveryClaim { @@ -2665,6 +2755,8 @@ impl ClaimBody { ClaimBody::Transmission(c) => c.check_values(), ClaimBody::Reconciliation(c) => c.check_values(), ClaimBody::Schedule(c) => c.check_values(), + ClaimBody::Timeliness(c) => c.check_values(), + ClaimBody::CacheTransmission(c) => c.check_values(), } } @@ -2781,6 +2873,8 @@ impl ClaimBody { ClaimBody::Transmission(c) => c.rules(), ClaimBody::Reconciliation(c) => c.rules(), ClaimBody::Schedule(c) => c.rules(), + ClaimBody::Timeliness(c) => c.rules(subject), + ClaimBody::CacheTransmission(c) => c.rules(), } } } @@ -3222,10 +3316,10 @@ impl ClaimReceipt { if e.joules_micro != object_joules_micro { return Err(Rejection::at(6, Reason::EnergyDisagreesWithDelivery)); } - if let Some(label) = object_class { - if e.acquisition_class().ok().as_ref() != Some(label) { - return Err(Rejection::at(6, Reason::EnergyClassDisagreesWithDelivery)); - } + if let Some(label) = object_class + && e.acquisition_class().ok().as_ref() != Some(label) + { + return Err(Rejection::at(6, Reason::EnergyClassDisagreesWithDelivery)); } Ok(()) } @@ -4140,7 +4234,7 @@ pub(crate) fn term_ok(s: &str) -> Result<(), Reason> { } /// An absolute URI: `scheme ":" rest`, scheme per RFC 3986 §3.1. -fn uri_ok(s: &str) -> Result<(), Reason> { +pub(crate) fn uri_ok(s: &str) -> Result<(), Reason> { token_ok(s)?; let Some((scheme, rest)) = s.split_once(':') else { return Err(Reason::FieldType); @@ -4261,7 +4355,7 @@ pub(crate) fn rfc3339(s: &str) -> bool { /// fails instead of passing on nothing. (A function rather than a public constant so /// cbindgen does not export it into the C header.) pub fn corpus_vector_count() -> usize { - 653 + 654 } /// The conformance corpus (`claim-conformance/vectors.json`), regenerated. Ed25519 @@ -5505,6 +5599,8 @@ mod corpus { v.extend(fabric_vectors()); // §2.4.12's decode path (rules 13 and 14, and a stage hash), appended the same way. v.extend(session::decode_path_vectors()); + // The switch reason timeliness §8.6 adds to delivery-telemetry §5, appended the same way. + v.extend(session::timeliness_vectors()); v } @@ -7529,6 +7625,18 @@ mod tests { assert_eq!(hex(digest.as_bytes()), "885e3ab74f416f9f8a0ef560dca930b31e430aa2b06a0d3bb126ab95fed841f0"); } + /// The vectors the corpus held before the switch reason timeliness §8.6 adds (all 653), + /// pinned as the tests above pin theirs. The digest was computed from the committed corpus + /// before the reason's vector was added and must never be edited to make the test pass. + #[test] + fn the_vectors_before_the_timeliness_switch_reason_are_unchanged() { + let doc: Value = crate::oer::load(conformance_vectors().as_bytes()).unwrap(); + let vs = doc["vectors"].as_array().unwrap(); + let first = Value::Array(vs[..653].to_vec()); + let digest = blake3::hash(serde_json::to_string(&first).unwrap().as_bytes()); + assert_eq!(hex(digest.as_bytes()), "6bdb6fbcdbef0af171aceab06c302318d11f396c2d657567665c5adfb9b8dc47"); + } + /// A session claim's grammars (§2.4.12): `media`, a decoder identifier, and the /// rounding of its worker count. #[test] diff --git a/wai/wai-rs/src/claim_receipt/bearer.rs b/wai/wai-rs/src/claim_receipt/bearer.rs index b4fdb480d..0bc1ca119 100644 --- a/wai/wai-rs/src/claim_receipt/bearer.rs +++ b/wai/wai-rs/src/claim_receipt/bearer.rs @@ -1,11 +1,15 @@ -//! `transmission` and `reconciliation` (jwp-receipts §2.4.14, §2.4.15; -//! `extensions/bearer-receipts.md` §4, §5): a publisher's declaration of the bearer a group -//! was sent over, and a sink's later statement of the objects of a group it received. +//! `transmission`, `reconciliation` and `cache-transmission` (jwp-receipts §2.4.14, §2.4.15, +//! §2.4.18; `extensions/bearer-receipts.md` §4, §5; `extensions/cache-authority.md` §5): a +//! publisher's declaration of the bearer a group was sent over, a sink's later statement of the +//! objects of a group it received, and a node's declaration of the objects of a group another key +//! signed that it sent again, from what it held, over a bearer instance of its own. //! -//! This file holds steps 2 and 4 of jwp-receipts §3.1 for both classes — their bodies' -//! members and types, and bearer-receipts §4.2 and §5.2 — and step 6, their checks against -//! the group receipt (§4.3) and the object receipts (§5.3). The verdict a verifier derives -//! for a group from them is `crate::bearer_receipts`'s. +//! This file holds steps 2 and 4 of jwp-receipts §3.1 for the three classes — their bodies' +//! members and types, bearer-receipts §4.2 and §5.2 and cache-authority §5.2 — and step 6, their +//! checks against the group receipt (§4.3) and the object receipts (§5.3; cache-authority §5.3). +//! A reconciliation and a cache-transmission claim share one bitmap rule and one root check. The +//! verdict a verifier derives for a group from them is `crate::bearer_receipts`'s, and with the +//! caches' instances `crate::cache_authority`'s. use super::*; use crate::jwp_delivery::{root as merkle_root, GroupReceipt, ObjectReceipt}; @@ -47,6 +51,8 @@ pub const ATTESTS_RECEIVED: &str = "received"; const TRANSMISSION_MEMBERS: &[&str] = &["bearer", "bearer_id", "energy", "attests"]; /// A reconciliation body's members (bearer-receipts §5.1), in the order step 2 reads them. const RECONCILIATION_MEMBERS: &[&str] = &["bearer", "bearer_id", "leaf_count", "received", "received_root", "attests"]; +/// A cache-transmission body's members (cache-authority §5.1), in the order step 2 reads them. +const CACHE_TRANSMISSION_MEMBERS: &[&str] = &["bearer", "bearer_id", "leaf_count", "sent", "sent_root", "energy", "attests"]; /// The members of a transmission's `energy`, as jwp-receipts §2.4.12 writes a session's. const ENERGY_MEMBERS: &[&str] = &["joules_micro", "energy_provenance", "energy_uncertainty", "energy_counter_filtering", "energy_calibration_ref"]; @@ -66,6 +72,26 @@ pub struct TransmissionClaim { pub attests: String, } +/// `cache-transmission` (cache-authority §5): a node's declaration that it sent, from what it +/// held, the objects of the group its subject names whose bits are set, over a `multicast` or +/// `unidirectional` bearer instance of its own. Signed by the node's key, never the group's. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CacheTransmissionClaim { + pub bearer: Bearer, + /// The node's own instance, an absolute URI compared byte for byte. + pub bearer_id: String, + /// The group's leaf count. + pub leaf_count: u64, + /// ⌈leaf_count / 8⌉ bytes, object *i* at bit `0x80 >> (i % 8)` of byte `i / 8`. + pub sent: Vec, + /// The jwp-receipts §2.2 root over the sent objects' leaves, in object order. + pub sent_root: [u8; 32], + /// What the instance spent sending these objects; `None` when it was not metered. + pub energy: Option, + /// MUST be `"transmitted"`. + pub attests: String, +} + /// `reconciliation` (bearer-receipts §5): a sink's statement of the objects of the group its /// subject names that it received. #[derive(Clone, Debug, PartialEq, Eq)] @@ -109,6 +135,62 @@ fn bitmap_len(leaf_count: u64) -> u64 { leaf_count.div_ceil(8) } +/// Whether bit `i` of a bitmap is set. +fn bit_set(bits: &[u8], i: u64) -> bool { + bits.get((i / 8) as usize).is_some_and(|b| b & (0x80 >> (i % 8)) != 0) +} + +/// The positions set in a bitmap, in order. +fn bits_set(bits: &[u8]) -> Vec { + (0..bits.len() as u64 * 8).filter(|&i| bit_set(bits, i)).collect() +} + +/// A bitmap's one form (bearer-receipts §5.2 rule 2; cache-authority §5.2 rule 3): at least one +/// object, exactly ⌈`leaf_count` / 8⌉ bytes, no bit at or past the leaf count, and a bit set. +fn bitmap_well_formed(leaf_count: u64, bits: &[u8]) -> bool { + if leaf_count == 0 || bits.len() as u64 != bitmap_len(leaf_count) { + return false; + } + // No bit at or past the leaf count: the last byte's unused low bits are clear. + let used = (leaf_count % 8) as u32; + if used != 0 && bits.last().is_some_and(|b| b & (0xffu8 >> used) != 0) { + return false; + } + bits.iter().any(|b| *b != 0) +} + +/// Why a bitmap's root is not the claim's. +enum RootFault { + /// A set position whose object receipt the verifier does not hold. + NotHeld, + /// The root over the leaves is another. + Mismatch, +} + +/// The root check of bearer-receipts §5.3 and cache-authority §5.3 step 4: with every bit set, +/// the group's own root; otherwise the root over the leaves at the set positions, each of whose +/// object receipts the verifier holds and verifies by inclusion. +fn root_holds(group: &GroupReceipt, objects: &[&ObjectReceipt], bits: &[u8], leaf_count: u64, root: &[u8; 32]) -> Result<(), RootFault> { + let whole = (0..leaf_count).all(|i| bit_set(bits, i)); + let computed = if whole { + group.root_hash + } else { + let mut leaves = Vec::new(); + for i in bits_set(bits) { + let held = objects.iter().find(|o| o.object_id == i && o.verify_inclusion(group).is_ok()); + match held { + Some(o) => leaves.push(o.leaf()), + None => return Err(RootFault::NotHeld), + } + } + merkle_root(&leaves) + }; + if computed != *root { + return Err(RootFault::Mismatch); + } + Ok(()) +} + impl TransmissionClaim { pub(super) fn to_value(&self) -> Value { let mut m = Map::new(); @@ -125,20 +207,7 @@ impl TransmissionClaim { members(m, TRANSMISSION_MEMBERS)?; let bearer = get_bearer(m)?; let bearer_id = get_bearer_id(m)?; - let energy = match &m["energy"] { - Value::Null => None, - Value::Object(o) => { - members(o, ENERGY_MEMBERS)?; - Some(SessionEnergy { - joules_micro: get_int(o, "joules_micro")?, - energy_provenance: get_str(o, "energy_provenance")?, - energy_uncertainty: get_uncertainty(o)?, - energy_counter_filtering: get_opt_str(o, "energy_counter_filtering")?, - energy_calibration_ref: get_opt_str(o, "energy_calibration_ref")?, - }) - } - _ => return Err(Reason::FieldType), - }; + let energy = read_energy(&m["energy"])?; let attests = get_str(m, "attests")?; Ok(TransmissionClaim { bearer, bearer_id, energy, attests }) } @@ -146,14 +215,7 @@ impl TransmissionClaim { /// Step 2's checks for a body built field by field. pub(super) fn check_values(&self) -> Result<(), Reason> { uri_ok(&self.bearer_id)?; - if let Some(e) = &self.energy { - int_ok(e.joules_micro)?; - if let Some(u) = e.energy_uncertainty { - int_ok(u.relative_ppm)?; - int_ok(u.window_us)?; - } - } - Ok(()) + energy_ints(&self.energy) } /// Step 4: bearer-receipts §4.2, in its order. @@ -161,16 +223,51 @@ impl TransmissionClaim { if self.attests != ATTESTS_TRANSMITTED { return Err(Reason::TransmissionNotTransmitted); } - if let Some(e) = &self.energy { - if e.joules_micro == 0 { - return Err(Reason::EnergyZeroFigure); - } - e.acquisition_class()?; - } - Ok(()) + energy_rules(&self.energy) } } +/// Step 2: an `energy` member, `null` or an object with a session's energy members and types. +fn read_energy(v: &Value) -> Result, Reason> { + match v { + Value::Null => Ok(None), + Value::Object(o) => { + members(o, ENERGY_MEMBERS)?; + Ok(Some(SessionEnergy { + joules_micro: get_int(o, "joules_micro")?, + energy_provenance: get_str(o, "energy_provenance")?, + energy_uncertainty: get_uncertainty(o)?, + energy_counter_filtering: get_opt_str(o, "energy_counter_filtering")?, + energy_calibration_ref: get_opt_str(o, "energy_calibration_ref")?, + })) + } + _ => Err(Reason::FieldType), + } +} + +/// Step 2's integer checks of an energy figure built field by field. +fn energy_ints(e: &Option) -> Result<(), Reason> { + if let Some(e) = e { + int_ok(e.joules_micro)?; + if let Some(u) = e.energy_uncertainty { + int_ok(u.relative_ppm)?; + int_ok(u.window_us)?; + } + } + Ok(()) +} + +/// Step 4: bearer-receipts §4.2 rule 2 on an energy figure that is not `null`. +fn energy_rules(e: &Option) -> Result<(), Reason> { + if let Some(e) = e { + if e.joules_micro == 0 { + return Err(Reason::EnergyZeroFigure); + } + e.acquisition_class()?; + } + Ok(()) +} + impl ReconciliationClaim { /// The bitmap of `leaf_count` objects with the objects `indices` set. pub fn bitmap(leaf_count: u64, indices: &[u64]) -> Vec { @@ -183,13 +280,13 @@ impl ReconciliationClaim { /// Whether object `i` is set. pub fn has(&self, i: u64) -> bool { - self.received.get((i / 8) as usize).is_some_and(|b| b & (0x80 >> (i % 8)) != 0) + bit_set(&self.received, i) } /// The objects set, in order. Only for a body that passed step 4, whose bits lie below /// its leaf count. pub fn indices(&self) -> Vec { - (0..self.received.len() as u64 * 8).filter(|&i| self.has(i)).collect() + bits_set(&self.received) } /// Whether every object of the group is set. @@ -232,22 +329,73 @@ impl ReconciliationClaim { if self.attests != ATTESTS_RECEIVED { return Err(Reason::ReconciliationNotReceived); } - let malformed = Err(Reason::ReconciliationBitmapMalformed); - if self.leaf_count == 0 || self.received.len() as u64 != bitmap_len(self.leaf_count) { - return malformed; - } - // No bit at or past the leaf count: the last byte's unused low bits are clear. - let used = (self.leaf_count % 8) as u32; - if used != 0 && self.received.last().is_some_and(|b| b & (0xffu8 >> used) != 0) { - return malformed; - } - if self.received.iter().all(|b| *b == 0) { - return malformed; + if !bitmap_well_formed(self.leaf_count, &self.received) { + return Err(Reason::ReconciliationBitmapMalformed); } Ok(()) } } +impl CacheTransmissionClaim { + /// Whether object `i` is set. + pub fn has(&self, i: u64) -> bool { + bit_set(&self.sent, i) + } + + /// The objects set, in order. Only for a body that passed step 4, whose bits lie below + /// its leaf count. + pub fn indices(&self) -> Vec { + bits_set(&self.sent) + } + + pub(super) fn to_value(&self) -> Value { + let mut m = Map::new(); + m.insert("bearer".into(), self.bearer.label().into()); + m.insert("bearer_id".into(), self.bearer_id.clone().into()); + m.insert("leaf_count".into(), self.leaf_count.into()); + m.insert("sent".into(), hex(&self.sent).into()); + m.insert("sent_root".into(), hex(&self.sent_root).into()); + m.insert("energy".into(), energy_value(&self.energy)); + m.insert("attests".into(), self.attests.clone().into()); + Value::Object(m) + } + + /// Step 2: the members, then each member's type in the table's order, `energy`'s members + /// and types where the table reaches it. `sent` is a byte string of any length here; its + /// length is a class rule (step 4). + pub(super) fn read(m: &Map) -> Result { + members(m, CACHE_TRANSMISSION_MEMBERS)?; + let bearer = get_bearer(m)?; + let bearer_id = get_bearer_id(m)?; + let leaf_count = get_int(m, "leaf_count")?; + let sent = get_bytes(m, "sent")?; + let sent_root = get_hash(m, "sent_root")?; + let energy = read_energy(&m["energy"])?; + let attests = get_str(m, "attests")?; + Ok(CacheTransmissionClaim { bearer, bearer_id, leaf_count, sent, sent_root, energy, attests }) + } + + pub(super) fn check_values(&self) -> Result<(), Reason> { + uri_ok(&self.bearer_id)?; + int_ok(self.leaf_count)?; + energy_ints(&self.energy) + } + + /// Step 4: cache-authority §5.2, in its order. + pub(super) fn rules(&self) -> Result<(), Reason> { + if self.attests != ATTESTS_TRANSMITTED { + return Err(Reason::CacheTransmissionNotTransmitted); + } + if self.bearer == Bearer::Bidirectional { + return Err(Reason::CacheTransmissionOnBidirectional); + } + if !bitmap_well_formed(self.leaf_count, &self.sent) { + return Err(Reason::CacheTransmissionBitmapMalformed); + } + energy_rules(&self.energy) + } +} + impl ClaimReceipt { /// Step 6 (bearer-receipts §4.3): a `transmission` claim against the group receipt its /// subject names. In order: the claim is a transmission (`context_mismatch`); the group @@ -296,23 +444,45 @@ impl ClaimReceipt { if group.leaf_count != r.leaf_count { return at(Reason::ReconciliationLeafCountMismatch); } - let root = if r.whole() { - group.root_hash - } else { - let mut leaves = Vec::new(); - for i in r.indices() { - let held = objects.iter().find(|o| o.object_id == i && o.verify_inclusion(group).is_ok()); - match held { - Some(o) => leaves.push(o.leaf()), - None => return at(Reason::ReconciliationObjectsNotHeld), - } - } - merkle_root(&leaves) + match root_holds(group, objects, &r.received, r.leaf_count, &r.received_root) { + Ok(()) => Ok(()), + Err(RootFault::NotHeld) => at(Reason::ReconciliationObjectsNotHeld), + Err(RootFault::Mismatch) => at(Reason::ReconciliationRootMismatch), + } + } + + /// Step 6 (cache-authority §5.3): a `cache-transmission` claim against the group receipt its + /// subject names and the object receipts the verifier holds under it, of which only those + /// that pass jwp-receipts §3 step 5 against the group are used. In order: the claim is a + /// cache-transmission (`context_mismatch`); the group passes §3 steps 1 and 2 + /// (`context_invalid`); its link hash is the subject (`cache_transmission_subject_mismatch`); + /// its key did not sign the claim (`cache_transmission_by_publisher`); its leaf count is the + /// claim's (`cache_transmission_leaf_count_mismatch`); and the root — the group's own where + /// every object is set, else the root over the leaves of the objects set, each of whose + /// receipts the verifier holds (`cache_transmission_objects_not_held`) — is the claim's + /// (`cache_transmission_root_mismatch`). + pub fn check_cache_transmission_against(&self, group: &GroupReceipt, objects: &[&ObjectReceipt]) -> Result<(), Rejection> { + let ClaimBody::CacheTransmission(t) = &self.body else { + return Err(Rejection::at(6, Reason::ContextMismatch)); }; - if root != r.received_root { - return at(Reason::ReconciliationRootMismatch); + let at = |reason| Err(Rejection::at(6, reason)); + if group.verify().is_err() { + return at(Reason::ContextInvalid); + } + if group.link_hash() != self.subject { + return at(Reason::CacheTransmissionSubjectMismatch); + } + if group.signer_pubkey == self.signer_pubkey { + return at(Reason::CacheTransmissionByPublisher); + } + if group.leaf_count != t.leaf_count { + return at(Reason::CacheTransmissionLeafCountMismatch); + } + match root_holds(group, objects, &t.sent, t.leaf_count, &t.sent_root) { + Ok(()) => Ok(()), + Err(RootFault::NotHeld) => at(Reason::CacheTransmissionObjectsNotHeld), + Err(RootFault::Mismatch) => at(Reason::CacheTransmissionRootMismatch), } - Ok(()) } /// The bearer body of a transmission claim, if this is one. @@ -330,6 +500,14 @@ impl ClaimReceipt { _ => None, } } + + /// The body of a cache-transmission claim, if this is one. + pub fn cache_transmission(&self) -> Option<&CacheTransmissionClaim> { + match &self.body { + ClaimBody::CacheTransmission(t) => Some(t), + _ => None, + } + } } #[cfg(test)] @@ -371,6 +549,37 @@ mod tests { assert_eq!(r.rules(), Err(Reason::ReconciliationNotReceived)); } + fn cache(bearer: Bearer, leaf_count: u64, sent: Vec) -> CacheTransmissionClaim { + CacheTransmissionClaim { + bearer, + bearer_id: "urn:example:bearer".into(), + leaf_count, + sent, + sent_root: [0; 32], + energy: None, + attests: ATTESTS_TRANSMITTED.into(), + } + } + + #[test] + fn a_cache_transmission_is_held_to_its_rules_in_order() { + assert_eq!(cache(Bearer::Multicast, 4, vec![0x50]).rules(), Ok(())); + assert_eq!(cache(Bearer::Multicast, 4, vec![0x50]).indices(), vec![1, 3]); + assert_eq!(cache(Bearer::Unidirectional, 9, vec![0x00, 0x80]).rules(), Ok(()), "the last of nine"); + let bad = Err(Reason::CacheTransmissionBitmapMalformed); + assert_eq!(cache(Bearer::Multicast, 0, vec![]).rules(), bad, "no object"); + assert_eq!(cache(Bearer::Multicast, 9, vec![0x80]).rules(), bad, "too short"); + assert_eq!(cache(Bearer::Multicast, 9, vec![0x00, 0x40]).rules(), bad, "a bit past the leaf count"); + assert_eq!(cache(Bearer::Multicast, 4, vec![0x00]).rules(), bad, "nothing sent"); + let mut c = cache(Bearer::Bidirectional, 0, vec![]); + assert_eq!(c.rules(), Err(Reason::CacheTransmissionOnBidirectional), "the bearer before the bitmap"); + c.attests = "served".into(); + assert_eq!(c.rules(), Err(Reason::CacheTransmissionNotTransmitted), "attests first"); + let mut e = cache(Bearer::Multicast, 4, vec![0x50]); + e.energy = Some(SessionEnergy::new(0, &crate::energy_class::EnergyProvenance::Estimator)); + assert_eq!(e.rules(), Err(Reason::EnergyZeroFigure)); + } + #[test] fn bearers_read_their_labels() { for b in Bearer::ALL { diff --git a/wai/wai-rs/src/claim_receipt/corpus/session.rs b/wai/wai-rs/src/claim_receipt/corpus/session.rs index 804fa6cad..af16d7387 100644 --- a/wai/wai-rs/src/claim_receipt/corpus/session.rs +++ b/wai/wai-rs/src/claim_receipt/corpus/session.rs @@ -1408,6 +1408,20 @@ pub(super) fn vectors() -> Vec { v } +/// The switch reason timeliness §8.6 adds to delivery-telemetry §5: the model session switching +/// to its fallback because its primary was not held by its deadline, against every context. +/// Appended after every other vector, so the corpus before it is an unchanged prefix. +pub(super) fn timeliness_vectors() -> Vec { + let mut s = model(); + s.switches[0].reason = "not-held-by-deadline".into(); + vec![with_model_contexts(claim( + "session_switch_not_held_by_deadline_accept", + "the model session switching to the fallback because the primary was not held by its deadline, the reason timeliness section 8.6 adds to delivery-telemetry section 5", + sealed(s).to_json(), + Ok(()), + ))] +} + /// The `record_budget` case of `staged-conformance/` (staged-delivery §14): its first base, /// refined at stage 1 by its first layer, then forgotten under the record budget and /// decoded again with no layer sent again. diff --git a/wai/wai-rs/src/claim_receipt/session.rs b/wai/wai-rs/src/claim_receipt/session.rs index 53fc6bea6..2784fb74e 100644 --- a/wai/wai-rs/src/claim_receipt/session.rs +++ b/wai/wai-rs/src/claim_receipt/session.rs @@ -791,8 +791,8 @@ pub fn classical_rendition(w: &crate::container::WaiMulti) -> Option { /// An envelope a verifier holding the `envelopes` context holds (§2.4.12). enum HeldEnvelope { - One(crate::container::Wai), - Multi(crate::container::WaiMulti), + One(Box), + Multi(Box), } /// `bytes` as a held envelope (§2.4.12): one that reads as a `WAI1` or `WAI2` envelope @@ -807,14 +807,14 @@ fn read_held(bytes: &[u8]) -> Option<(HeldEnvelope, bool)> { Some(b"WAI2") => { let w = WaiMulti::from_bytes(bytes).ok()?; match crate::container::manifest_v2_security(&w.manifest) { - Ok(s) => Some((HeldEnvelope::Multi(w), s.as_ref().is_some_and(|x| !x.is_plaintext()))), + Ok(s) => Some((HeldEnvelope::Multi(Box::new(w)), s.as_ref().is_some_and(|x| !x.is_plaintext()))), Err(_) => None, } } Some(b"WAI1") => { let w = Wai::from_bytes(bytes).ok()?; let sealed = w.manifest.security.as_ref().is_some_and(|x| !x.is_plaintext()); - Some((HeldEnvelope::One(w), sealed)) + Some((HeldEnvelope::One(Box::new(w)), sealed)) } _ => None, } @@ -1217,7 +1217,8 @@ impl ClaimReceipt { }; // The names of a base: its content hashes (a WAI1 base's, a rendition's exploded // envelope's) and its (envelope, rendition) pairs. - let names_of = |hash_form: Option<[u8; 32]>, pair: Option<([u8; 32], u64)>| -> (Vec<[u8; 32]>, Vec<([u8; 32], u64)>) { + type Names = (Vec<[u8; 32]>, Vec<([u8; 32], u64)>); + let names_of = |hash_form: Option<[u8; 32]>, pair: Option<([u8; 32], u64)>| -> Names { let mut hashes: Vec<[u8; 32]> = hash_form.into_iter().collect(); let mut pairs: Vec<([u8; 32], u64)> = pair.into_iter().collect(); for &(x, w, j) in &exploded { @@ -1238,7 +1239,7 @@ impl ClaimReceipt { } // A layer of capability `cap` over the base `b` (where held) named by `names`, with // `r` its refines and `payload` its WIR1 payload: what a sink applies, or nothing. - let layer_of = |cap: &str, r: &Refines, b: Option, names: (Vec<[u8; 32]>, Vec<([u8; 32], u64)>), payload: Option<&[u8]>| -> Gives { + let layer_of = |cap: &str, r: &Refines, b: Option, names: Names, payload: Option<&[u8]>| -> Gives { let n = match &b { Some(b) if !b.is_base || !crate::codecs::admits(cap, &b.capability) => return Gives::NotApplicable, Some(b) => b.units, @@ -1495,14 +1496,15 @@ impl ClaimReceipt { Ok(()) } - /// The authorities the energy figure of a `reconstruct-session` or a `transmission` - /// claim needs, as an item of its own (§7.5): the class's authority and + /// The authorities the energy figure of a `reconstruct-session`, a `transmission` or a + /// `cache-transmission` claim needs, as an item of its own (§7.5): the class's authority and /// `energy/`. `None` for a claim of another class, or one whose `energy` is /// `null`. pub fn figure_authorities(&self) -> Option> { let e = match &self.body { ClaimBody::ReconstructSession(s) => s.energy.as_ref()?, ClaimBody::Transmission(t) => t.energy.as_ref()?, + ClaimBody::CacheTransmission(t) => t.energy.as_ref()?, _ => return None, }; Some(vec![self.class().label().to_owned(), format!("energy/{}", e.energy_provenance)]) diff --git a/wai/wai-rs/src/claim_receipt/timeliness.rs b/wai/wai-rs/src/claim_receipt/timeliness.rs new file mode 100644 index 000000000..de8f0b903 --- /dev/null +++ b/wai/wai-rs/src/claim_receipt/timeliness.rs @@ -0,0 +1,502 @@ +//! `timeliness` (jwp-receipts §2.4.17; `extensions/timeliness.md` §4, §5): a publisher's +//! statement of when each object of a group is of use — the instant it is useful from, the +//! deadline by which a receiver must hold it for its full value, how that value falls after the +//! deadline, and the rendition a receiver presents in its place. +//! +//! This file holds steps 2 and 4 of jwp-receipts §3.1 for the class — its body's members and +//! types, and timeliness §4.2 — an entry's value at an instant (§5.1), and step 6, its checks +//! against the group receipts, object receipts and envelopes a verifier holds (§4.3). What a +//! verifier judges and an asker plans from it is `crate::timeliness`'s. + +use super::schedule::LAST_INSTANT_MS; +use super::*; +use crate::container::{DerivedFrom, Wai}; +use crate::jwp_delivery::{GroupReceipt, ObjectReceipt}; + +/// What a timeliness claim attests, in-band (timeliness §4.2 rule 1). +pub const ATTESTS_VALUED: &str = "valued"; +/// An object's full value, in parts per million (timeliness §2). +pub const FULL_PPM: u64 = 1_000_000; +/// The most points a decay has (timeliness §4.2 rule 3.2). +pub const MAX_POINTS: usize = 16; + +/// A timeliness body's members (timeliness §4.1), in the order step 2 reads them. +const TIMELINESS_MEMBERS: &[&str] = &["objects", "attests"]; +/// An entry's members, in the order step 2 reads them. +const ENTRY_MEMBERS: &[&str] = &["leaf_index", "content_hash", "from_ms", "by_ms", "decay", "fallback"]; +const POINT_MEMBERS: &[&str] = &["at_ms", "value_ppm"]; +const FALLBACK_MEMBERS: &[&str] = &["group", "leaf_index", "content_hash", "value_ppm"]; + +/// One point of a decay: the object's value at an instant after its deadline. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct DecayPoint { + pub at_ms: u64, + pub value_ppm: u64, +} + +/// The object a receiver presents in the primary's place (timeliness §4.1 `fallback`). +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Fallback { + /// The link hash of its group receipt. + pub group: [u8; 32], + pub leaf_index: u64, + pub content_hash: [u8; 32], + /// The value of presenting it in the primary's place. + pub value_ppm: u64, +} + +/// One object's statement (timeliness §4.1). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct TimelinessEntry { + pub leaf_index: u64, + pub content_hash: [u8; 32], + /// The instant from which the object is of use. + pub from_ms: u64, + /// The last instant at which a receiver that first holds the object has it at full value. + pub by_ms: u64, + pub decay: Vec, + pub fallback: Option, +} + +impl TimelinessEntry { + /// Timeliness §5.2: the `at_ms` of the last point, from which an object first held is of no + /// value. For an entry with no point, its deadline's next instant. + pub fn end_ms(&self) -> u64 { + self.decay.last().map_or(self.by_ms.saturating_add(1), |p| p.at_ms) + } + + /// Timeliness §5.1: the value at instant `h`, in parts per million, the line between the + /// two points about `h` floored, with (`by_ms`, 1,000,000) before the first point. The + /// products are taken in 128 bits: they reach 2^68. + pub fn value_at(&self, h: u64) -> u64 { + if h <= self.by_ms { + return FULL_PPM; + } + let (mut ta, mut va) = (self.by_ms, FULL_PPM); + for p in &self.decay { + if h <= p.at_ms { + // ta < h ≤ tb, so tb − ta is at least 1. + let (tb, vb) = (p.at_ms, p.value_ppm); + let num = u128::from(va) * u128::from(tb - h) + u128::from(vb) * u128::from(h - ta); + return (num / u128::from(tb - ta)) as u64; + } + (ta, va) = (p.at_ms, p.value_ppm); + } + 0 + } + + /// Timeliness §4.2 rule 3 for this entry, in its order, `subject` being the claim's. + pub fn check(&self, subject: &[u8; 32]) -> Result<(), Reason> { + if self.from_ms > self.by_ms || self.by_ms >= LAST_INSTANT_MS { + return Err(Reason::TimelinessWindowInvalid); + } + if !self.decay_formed() { + return Err(Reason::TimelinessDecayInvalid); + } + if let Some(f) = &self.fallback + && (!(1..=FULL_PPM).contains(&f.value_ppm) + || f.content_hash == self.content_hash + || (f.group == *subject && f.leaf_index == self.leaf_index)) + { + return Err(Reason::TimelinessFallbackInvalid); + } + Ok(()) + } + + /// Rule 3.2: 1 to 16 points, their instants strictly increasing from after `by_ms` to at + /// most the last instant, their values below full, none above the one before it, the last 0 + /// and every other at least 1, and no point but the last on the line through its + /// neighbours, with (`by_ms`, 1,000,000) before the first. + fn decay_formed(&self) -> bool { + let d = &self.decay; + let (Some(first), Some(last)) = (d.first(), d.last()) else { return false }; + if d.len() > MAX_POINTS + || first.at_ms <= self.by_ms + || last.at_ms > LAST_INSTANT_MS + || d.windows(2).any(|w| w[0].at_ms >= w[1].at_ms) + || d.iter().any(|p| p.value_ppm >= FULL_PPM) + || d.windows(2).any(|w| w[1].value_ppm > w[0].value_ppm) + || last.value_ppm != 0 + || d[..d.len() - 1].iter().any(|p| p.value_ppm == 0) + { + return false; + } + let points: Vec<(u64, u64)> = + std::iter::once((self.by_ms, FULL_PPM)).chain(d.iter().map(|p| (p.at_ms, p.value_ppm))).collect(); + // Times strictly increase and values do not, so every difference is non-negative. + points.windows(3).all(|w| { + let ((t0, v0), (t1, v1), (t2, v2)) = (w[0], w[1], w[2]); + u128::from(v0 - v1) * u128::from(t2 - t1) != u128::from(v1 - v2) * u128::from(t1 - t0) + }) + } + + fn to_value(&self) -> Value { + let mut m = Map::new(); + m.insert("leaf_index".into(), self.leaf_index.into()); + m.insert("content_hash".into(), hex(&self.content_hash).into()); + m.insert("from_ms".into(), self.from_ms.into()); + m.insert("by_ms".into(), self.by_ms.into()); + let points = self.decay.iter().map(|p| { + let mut q = Map::new(); + q.insert("at_ms".into(), p.at_ms.into()); + q.insert("value_ppm".into(), p.value_ppm.into()); + Value::Object(q) + }); + m.insert("decay".into(), Value::Array(points.collect())); + let fallback = match &self.fallback { + None => Value::Null, + Some(f) => { + let mut q = Map::new(); + q.insert("group".into(), hex(&f.group).into()); + q.insert("leaf_index".into(), f.leaf_index.into()); + q.insert("content_hash".into(), hex(&f.content_hash).into()); + q.insert("value_ppm".into(), f.value_ppm.into()); + Value::Object(q) + } + }; + m.insert("fallback".into(), fallback); + Value::Object(m) + } + + /// The entry in its JSON form (timeliness §4.1). + pub fn to_json(&self) -> Value { + self.to_value() + } + + /// One entry as a reader holds it apart from its claim: step 2's reading of it, then §4.2 + /// rule 3 with `subject` the claim's. + pub fn from_value(v: &Value, subject: &[u8; 32]) -> Result { + let e = TimelinessEntry::read(v)?; + e.check_values()?; + e.check(subject)?; + Ok(e) + } + + /// Step 2: the members, then each one's type in the table's order, each point's and the + /// fallback's members and types where the table reaches them. + fn read(v: &Value) -> Result { + let m = v.as_object().ok_or(Reason::FieldType)?; + members(m, ENTRY_MEMBERS)?; + let leaf_index = get_int(m, "leaf_index")?; + let content_hash = get_hash(m, "content_hash")?; + let from_ms = get_int(m, "from_ms")?; + let by_ms = get_int(m, "by_ms")?; + let decay = m["decay"] + .as_array() + .ok_or(Reason::FieldType)? + .iter() + .map(|p| { + let p = p.as_object().ok_or(Reason::FieldType)?; + members(p, POINT_MEMBERS)?; + Ok(DecayPoint { at_ms: get_int(p, "at_ms")?, value_ppm: get_int(p, "value_ppm")? }) + }) + .collect::>()?; + let fallback = match &m["fallback"] { + Value::Null => None, + Value::Object(f) => { + members(f, FALLBACK_MEMBERS)?; + Some(Fallback { + group: get_hash(f, "group")?, + leaf_index: get_int(f, "leaf_index")?, + content_hash: get_hash(f, "content_hash")?, + value_ppm: get_int(f, "value_ppm")?, + }) + } + _ => return Err(Reason::FieldType), + }; + Ok(TimelinessEntry { leaf_index, content_hash, from_ms, by_ms, decay, fallback }) + } + + fn check_values(&self) -> Result<(), Reason> { + for n in [self.leaf_index, self.from_ms, self.by_ms] { + int_ok(n)?; + } + for p in &self.decay { + int_ok(p.at_ms)?; + int_ok(p.value_ppm)?; + } + if let Some(f) = &self.fallback { + int_ok(f.leaf_index)?; + int_ok(f.value_ppm)?; + } + Ok(()) + } +} + +/// `timeliness` (timeliness §4): the publisher's statement of when each object it names, of the +/// group its subject names, is of use. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct TimelinessClaim { + /// One entry for each object stated, in increasing `leaf_index`. + pub objects: Vec, + /// MUST be `"valued"`. + pub attests: String, +} + +impl TimelinessClaim { + pub(super) fn to_value(&self) -> Value { + let mut m = Map::new(); + m.insert("objects".into(), Value::Array(self.objects.iter().map(TimelinessEntry::to_value).collect())); + m.insert("attests".into(), self.attests.clone().into()); + Value::Object(m) + } + + /// Step 2: the members — missing, then unknown — then each member's type in the table's + /// order, each entry's in its own. + pub(super) fn read(m: &Map) -> Result { + members(m, TIMELINESS_MEMBERS)?; + let objects = + m["objects"].as_array().ok_or(Reason::FieldType)?.iter().map(TimelinessEntry::read).collect::>()?; + Ok(TimelinessClaim { objects, attests: get_str(m, "attests")? }) + } + + /// Step 2's checks for a body built field by field. + pub(super) fn check_values(&self) -> Result<(), Reason> { + self.objects.iter().try_for_each(TimelinessEntry::check_values) + } + + /// Step 4: timeliness §4.2, in its order, with the claim's `subject` for rule 3.3. + pub(super) fn rules(&self, subject: &[u8; 32]) -> Result<(), Reason> { + if self.attests != ATTESTS_VALUED { + return Err(Reason::TimelinessNotValued); + } + if self.objects.is_empty() || self.objects.windows(2).any(|w| w[0].leaf_index >= w[1].leaf_index) { + return Err(Reason::TimelinessObjectsMalformed); + } + self.objects.iter().try_for_each(|e| e.check(subject)) + } + + /// The entry for object `i`, if the claim has one. + pub fn entry(&self, i: u64) -> Option<&TimelinessEntry> { + self.objects.iter().find(|e| e.leaf_index == i) + } +} + +/// A group receipt a verifier holds, with the object receipts it holds under it and the +/// envelope bytes of those whose bytes it holds (timeliness §4.3). +#[derive(Clone, Debug)] +pub struct HeldGroup<'a> { + pub group: &'a GroupReceipt, + pub objects: Vec<(&'a ObjectReceipt, Option<&'a [u8]>)>, +} + +impl ClaimReceipt { + /// Step 6 (timeliness §4.3): a `timeliness` claim against the group receipt its subject + /// names and what else the verifier holds: the groups in `held` that pass jwp-receipts §3 + /// steps 1 and 2, each with the object receipts held under it that pass §3 step 5, and every + /// envelope held, known by its content hash. In order: the claim is a statement of + /// timeliness (`context_mismatch`); the group passes §3 steps 1 and 2 and its `group_start` + /// reads as an RFC 3339 date-time (`context_invalid`); its link hash is the subject + /// (`timeliness_subject_mismatch`); its key signed the claim (`timeliness_signer_mismatch`); + /// every entry's object is in it (`timeliness_leaf_out_of_range`); none is of use before + /// it begins (`timeliness_before_group`); each entry's object receipt, where held, has the + /// entry's content hash (`timeliness_content_mismatch`); no envelope held of an entry or a + /// fallback is a layer (`timeliness_on_layer`); each fallback is where it says, where its + /// group and object receipts are held (`timeliness_fallback_mismatch`); and each fallback's + /// envelope held derives from its primary (`timeliness_fallback_not_derived`). + pub fn check_timeliness_against(&self, group: &GroupReceipt, held: &[HeldGroup<'_>]) -> Result<(), Rejection> { + let ClaimBody::Timeliness(t) = &self.body else { + return Err(Rejection::at(6, Reason::ContextMismatch)); + }; + let at = |reason| Err(Rejection::at(6, reason)); + let start = match group.verify() { + Ok(()) => rfc3339_seconds(&group.group_start), + Err(_) => None, + }; + let Some(start) = start else { return at(Reason::ContextInvalid) }; + if group.link_hash() != self.subject { + return at(Reason::TimelinessSubjectMismatch); + } + if group.signer_pubkey != self.signer_pubkey { + return at(Reason::TimelinessSignerMismatch); + } + if t.objects.iter().any(|e| e.leaf_index >= group.leaf_count) { + return at(Reason::TimelinessLeafOutOfRange); + } + if t.objects.iter().any(|e| ((e.from_ms / 1000) as i64) < start) { + return at(Reason::TimelinessBeforeGroup); + } + // The object receipt held at position `i` of the group `g` whose link hash is `link`, + // each passing §3 step 5 against it. + let receipts = |link: &[u8; 32], g: &GroupReceipt, i: u64| -> Vec<[u8; 32]> { + held.iter() + .filter(|h| h.group.link_hash() == *link) + .flat_map(|h| h.objects.iter().map(|(o, _)| *o)) + .filter(|o| o.object_id == i && o.verify_inclusion(g).is_ok()) + .map(|o| o.content_hash) + .collect() + }; + let link = group.link_hash(); + if t.objects.iter().any(|e| receipts(&link, group, e.leaf_index).iter().any(|h| *h != e.content_hash)) { + return at(Reason::TimelinessContentMismatch); + } + // Every envelope held, by its content hash. + let envelopes: Vec<([u8; 32], &[u8])> = held + .iter() + .flat_map(|h| h.objects.iter().filter_map(|(_, b)| *b)) + .map(|b| (crate::jwp_hash::content_hash(b), b)) + .collect(); + let bytes_of = |hash: &[u8; 32]| -> Vec<&[u8]> { envelopes.iter().filter(|(h, _)| h == hash).map(|(_, b)| *b).collect() }; + let is_layer = |b: &&[u8]| Wai::from_bytes(b).is_ok_and(|w| crate::codecs::is_refinement_only(w.capability())); + for e in &t.objects { + if bytes_of(&e.content_hash).iter().any(is_layer) + || e.fallback.as_ref().is_some_and(|f| bytes_of(&f.content_hash).iter().any(is_layer)) + { + return at(Reason::TimelinessOnLayer); + } + } + for f in t.objects.iter().filter_map(|e| e.fallback.as_ref()) { + let Some(g) = held.iter().map(|h| h.group).find(|g| g.link_hash() == f.group && g.verify().is_ok()) else { continue }; + if f.leaf_index >= g.leaf_count || receipts(&f.group, g, f.leaf_index).iter().any(|h| *h != f.content_hash) { + return at(Reason::TimelinessFallbackMismatch); + } + } + for e in &t.objects { + let Some(f) = &e.fallback else { continue }; + let motif = hex(&e.content_hash); + let derived = |b: &&[u8]| { + Wai::from_bytes(b).ok().and_then(|w| w.manifest.derived_from.as_ref().and_then(|v| DerivedFrom::from_value(v).ok())).is_some_and(|d| d.motif == motif) + }; + if bytes_of(&f.content_hash).iter().any(|b| !derived(b)) { + return at(Reason::TimelinessFallbackNotDerived); + } + } + Ok(()) + } + + /// The body of a timeliness claim, if this is one. + pub fn timeliness(&self) -> Option<&TimelinessClaim> { + match &self.body { + ClaimBody::Timeliness(t) => Some(t), + _ => None, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + const D: u64 = 1_793_664_060_000; + + fn entry(by_ms: u64, decay: &[(u64, u64)]) -> TimelinessEntry { + TimelinessEntry { + leaf_index: 0, + content_hash: [1; 32], + from_ms: by_ms.min(1_000), + by_ms, + decay: decay.iter().map(|&(at_ms, value_ppm)| DecayPoint { at_ms, value_ppm }).collect(), + fallback: None, + } + } + + /// §5.1 with exact rationals: ⌊(va·(tb − h) + vb·(h − ta)) / (tb − ta)⌋ by repeated + /// subtraction of whole parts, not by the 128-bit product the reference takes. + fn reference(e: &TimelinessEntry, h: u64) -> u64 { + if h <= e.by_ms { + return FULL_PPM; + } + let mut points = vec![(e.by_ms, FULL_PPM)]; + points.extend(e.decay.iter().map(|p| (p.at_ms, p.value_ppm))); + for w in points.windows(2) { + let ((ta, va), (tb, vb)) = (w[0], w[1]); + if ta < h && h <= tb { + // va − (va − vb)·(h − ta)/(tb − ta), the fraction's ceiling taken off. + let (fall, span, gone) = (va - vb, tb - ta, h - ta); + let whole = fall / span * gone + (fall % span) * (gone / span); + let rest = (fall % span) as u128 * (gone % span) as u128; + let lost = u128::from(whole) + rest.div_ceil(u128::from(span)); + return (u128::from(va) - lost) as u64; + } + } + 0 + } + + #[test] + fn the_value_is_the_stated_line_floored() { + let e = entry(D, &[(D + 2_000, 600_000), (D + 10_000, 0)]); + for (h, v) in [(D, 1_000_000), (D + 1, 999_800), (D + 1_000, 800_000), (D + 2_000, 600_000), (D + 6_000, 300_000), (D + 9_999, 75), (D + 10_000, 0), (D + 10_001, 0)] { + assert_eq!(e.value_at(h), v, "at D + {}", h - D); + } + assert_eq!(e.end_ms(), D + 10_000); + let hard = entry(D, &[(D + 1, 0)]); + assert_eq!((hard.value_at(D), hard.value_at(D + 1), hard.end_ms()), (1_000_000, 0, D + 1)); + let wide = entry(1, &[(LAST_INSTANT_MS, 0)]); + assert_eq!(wide.value_at(LAST_INSTANT_MS / 2), 500_000, "products past 2^64"); + assert_eq!(wide.value_at(2), 999_999); + } + + #[test] + fn the_value_agrees_with_an_exact_reference_and_never_increases() { + let entries = [ + entry(D, &[(D + 2_000, 600_000), (D + 10_000, 0)]), + entry(D, &[(D + 1, 500_000), (D + 3_001, 0)]), + entry(D, &[(D + 3, 2), (D + 13, 0)]), + entry(D, &[(D + 1_000, 700_000), (D + 5_000, 700_000), (D + 6_000, 0)]), + entry(1, &[(LAST_INSTANT_MS, 0)]), + entry(1, &[(7, 999_999), (LAST_INSTANT_MS - 1, 1), (LAST_INSTANT_MS, 0)]), + ]; + // A fixed linear congruential sequence of instants: no randomness in a test. + let mut x: u64 = 0x2545_f491_4f6c_dd1d; + for e in &entries { + let mut previous = FULL_PPM; + let span = e.end_ms() + 2 - e.by_ms; + let mut hs: Vec = (0..2_000) + .map(|_| { + x = x.wrapping_mul(6_364_136_223_846_793_005).wrapping_add(1_442_695_040_888_963_407); + e.by_ms - 1 + (x >> 11) % span + }) + .collect(); + hs.extend(e.decay.iter().flat_map(|p| [p.at_ms - 1, p.at_ms, p.at_ms + 1])); + hs.sort_unstable(); + for h in hs { + let v = e.value_at(h); + assert_eq!(v, reference(e, h), "at {h}"); + assert!(v <= previous, "rises at {h}"); + previous = v; + } + } + } + + #[test] + fn collinearity_is_exact() { + let subject = [9; 32]; + let ok = |d: &[(u64, u64)]| entry(D, d).check(&subject); + assert_eq!(ok(&[(D + 1_000, 500_000), (D + 2_000, 0)]), Err(Reason::TimelinessDecayInvalid), "on one line"); + assert_eq!(ok(&[(D + 1_000, 500_001), (D + 2_000, 0)]), Ok(()), "a part per million off it"); + assert_eq!(ok(&[(D + 1_000, 499_999), (D + 2_000, 0)]), Ok(())); + assert_eq!(ok(&[(D + 1_000, 700_000), (D + 5_000, 700_000), (D + 6_000, 0)]), Ok(()), "a plateau"); + assert_eq!(ok(&[(D + 1_000, 700_000), (D + 3_000, 700_000), (D + 5_000, 700_000), (D + 6_000, 0)]), Err(Reason::TimelinessDecayInvalid)); + // Products past 2^64: half the value over 10^14 ms twice is one line, and a part per + // million off it is not; a fall of 999,999 over nearly the widest span is no line. + let s = 100_000_000_000_000; + assert_eq!(entry(1, &[(1 + s, 500_000), (1 + 2 * s, 0)]).check(&subject), Err(Reason::TimelinessDecayInvalid)); + assert_eq!(entry(1, &[(1 + s, 500_001), (1 + 2 * s, 0)]).check(&subject), Ok(())); + assert_eq!(entry(1, &[(LAST_INSTANT_MS - 1, 999_999), (LAST_INSTANT_MS, 0)]).check(&subject), Ok(())); + } + + #[test] + fn each_rule_refuses() { + let subject = [9; 32]; + let base = entry(D, &[(D + 1, 0)]); + let with = |f: &dyn Fn(&mut TimelinessEntry)| { + let mut e = base.clone(); + f(&mut e); + e.check(&subject) + }; + assert_eq!(with(&|_| ()), Ok(())); + assert_eq!(with(&|e| e.from_ms = D + 1), Err(Reason::TimelinessWindowInvalid)); + assert_eq!(with(&|e| e.by_ms = LAST_INSTANT_MS), Err(Reason::TimelinessWindowInvalid)); + assert_eq!(with(&|e| e.decay.clear()), Err(Reason::TimelinessDecayInvalid)); + assert_eq!(with(&|e| e.decay[0].at_ms = D), Err(Reason::TimelinessDecayInvalid)); + assert_eq!(with(&|e| e.decay[0].value_ppm = 1), Err(Reason::TimelinessDecayInvalid)); + assert_eq!(with(&|e| e.decay[0].at_ms = LAST_INSTANT_MS + 1), Err(Reason::TimelinessDecayInvalid)); + let fallback = Fallback { group: [7; 32], leaf_index: 0, content_hash: [2; 32], value_ppm: 1 }; + assert_eq!(with(&|e| e.fallback = Some(fallback)), Ok(())); + assert_eq!(with(&|e| e.fallback = Some(Fallback { value_ppm: 0, ..fallback })), Err(Reason::TimelinessFallbackInvalid)); + assert_eq!(with(&|e| e.fallback = Some(Fallback { value_ppm: FULL_PPM + 1, ..fallback })), Err(Reason::TimelinessFallbackInvalid)); + assert_eq!(with(&|e| e.fallback = Some(Fallback { content_hash: [1; 32], ..fallback })), Err(Reason::TimelinessFallbackInvalid)); + assert_eq!(with(&|e| e.fallback = Some(Fallback { group: subject, ..fallback })), Err(Reason::TimelinessFallbackInvalid)); + assert_eq!(with(&|e| e.fallback = Some(Fallback { group: subject, leaf_index: 1, ..fallback })), Ok(())); + } +} diff --git a/wai/wai-rs/src/codecs/registry.rs b/wai/wai-rs/src/codecs/registry.rs index b3bc263f2..b2fc5d174 100644 --- a/wai/wai-rs/src/codecs/registry.rs +++ b/wai/wai-rs/src/codecs/registry.rs @@ -250,6 +250,10 @@ pub const CAP_MEDIA_DIRECTION: &str = "wai.media.direction"; pub const CAP_BEARER_RECEIPTS: &str = "wai.bearer.receipts"; pub const CAP_BEARER_CAROUSEL: &str = "wai.bearer.carousel"; pub const CAP_DELIVERY_HOLDINGS: &str = "wai.delivery.holdings"; +pub const CAP_DELIVERY_TIMELINESS: &str = "wai.delivery.timeliness"; +pub const CAP_DELIVERY_RUNG_PRICE: &str = "wai.delivery.rung_price"; +pub const CAP_DELIVERY_CACHE: &str = "wai.delivery.cache"; +pub const CAP_DELIVERY_IMPRESSIONS: &str = "wai.delivery.impressions"; pub const CAP_ACCESS_SERVICES: &str = "wai.access.services"; pub const CAP_AGE_ASSURANCE: &str = "wai.age.assurance"; pub const CAP_MEDIA_EXPLORATION: &str = "wai.media.exploration"; @@ -382,6 +386,10 @@ const ROWS: &[(&str, &str, Option<&str>, &str)] = &[ (CAP_BEARER_RECEIPTS, S_INTERACTIVE, None, "2026-10-21"), (CAP_BEARER_CAROUSEL, S_INTERACTIVE, None, "2026-11-02"), (CAP_DELIVERY_HOLDINGS, S_INTERACTIVE, None, "2026-11-03"), + (CAP_DELIVERY_TIMELINESS, S_INTERACTIVE, None, "2026-11-03"), + (CAP_DELIVERY_RUNG_PRICE, S_INTERACTIVE, None, "2026-11-03"), + (CAP_DELIVERY_CACHE, S_INTERACTIVE, None, "2026-11-03"), + (CAP_DELIVERY_IMPRESSIONS, S_INTERACTIVE, None, "2026-11-03"), (CAP_ACCESS_SERVICES, S_INTERACTIVE, None, "2026-10-21"), (CAP_AGE_ASSURANCE, S_INTERACTIVE, None, "2026-10-21"), (CAP_MEDIA_EXPLORATION, S_INTERACTIVE, None, "2026-10-21"), @@ -481,6 +489,10 @@ const RECORDS: &[&str] = &[ CAP_BEARER_RECEIPTS, CAP_BEARER_CAROUSEL, CAP_DELIVERY_HOLDINGS, + CAP_DELIVERY_TIMELINESS, + CAP_DELIVERY_RUNG_PRICE, + CAP_DELIVERY_CACHE, + CAP_DELIVERY_IMPRESSIONS, CAP_ACCESS_SERVICES, CAP_AGE_ASSURANCE, CAP_MEDIA_EXPLORATION, @@ -567,16 +579,20 @@ pub enum WireKind { GltfExtension, /// A custom key of a CMCD (CTA-5004-B) or CMSD (CTA-5006) report. TelemetryKey, + /// A report extension type of the Distributed Aggregation Protocol + /// (`draft-ietf-ppm-dap-20` §4.4.2, its registry §9.2.4). + DapReportExtension, } impl WireKind { /// Every kind, in declaration order. - pub const fn all() -> [Self; 17] { + pub const fn all() -> [Self; 18] { [ Self::MediaType, Self::CodecsPrefix, Self::FourCc, Self::Magic, Self::DataId, Self::Scheme, Self::Path, Self::WellKnown, Self::PlaylistTag, Self::PlaylistAttribute, Self::DocumentKind, Self::Catalog, Self::SetupOption, Self::HttpHeader, Self::FrameMetadata, Self::GltfExtension, Self::TelemetryKey, + Self::DapReportExtension, ] } /// The label the export uses. @@ -599,6 +615,7 @@ impl WireKind { Self::FrameMetadata => "frame-metadata", Self::GltfExtension => "gltf-extension", Self::TelemetryKey => "telemetry-key", + Self::DapReportExtension => "dap-report-extension", } } } @@ -687,6 +704,7 @@ const AGE_ASSURANCE: &str = "extensions/age-assurance.md"; const EXPLORATION: &str = "extensions/exploration.md"; const EXACT_UPSCALE: &str = "extensions/exact-upscale.md"; const TELEMETRY_AGGREGATION: &str = "extensions/telemetry-aggregation.md"; +const IMPRESSIONS: &str = "extensions/impression-aggregates.md"; const EXACT_TONEMAP: &str = "extensions/exact-tonemap.md"; const ROBUSTNESS: &str = "extensions/robustness-evidence.md"; const SPLAT_EXACT: &str = "extensions/splat-exact.md"; @@ -699,6 +717,7 @@ const LOC_CARRIAGE: &str = "extensions/loc-carriage.md"; const STREAM_TERMINATION: &str = "extensions/stream-termination.md"; const KEY_RELEASE: &str = "extensions/key-release.md"; const CONFORMANCE_RESULTS: &str = "extensions/conformance-results.md"; +const RUNG_PRICE: &str = "extensions/rung-price.md"; const ROUTE_RECORD: &str = "extensions/route-record.md"; const fn wire(name: &'static str, kind: WireKind, document: &'static str, section: &'static str, @@ -860,6 +879,8 @@ pub const WIRE_IDENTIFIERS: &[WireIdentifier] = &[ wire("WFR1", WireKind::Magic, FLEET, "§6.1", WireStatus::Defined), wire("wai-fleet-bundle", WireKind::DocumentKind, FLEET, "§7.1", WireStatus::Defined), wire(".wai-fleet.json", WireKind::Path, FLEET, "§7.1", WireStatus::Defined), + wire("wai-rung-prices", WireKind::DocumentKind, RUNG_PRICE, "§4.1", WireStatus::Defined), + wire("wai-rung-request", WireKind::DocumentKind, RUNG_PRICE, "§6.1", WireStatus::Defined), wire("wai-route-request", WireKind::DocumentKind, ROUTE_RECORD, "§3.1", WireStatus::Defined), wire("wai-route-pricebook", WireKind::DocumentKind, ROUTE_RECORD, "§3.2", WireStatus::Defined), wire("wai-route-policy", WireKind::DocumentKind, ROUTE_RECORD, "§3.3", WireStatus::Defined), @@ -918,6 +939,10 @@ pub const WIRE_IDENTIFIERS: &[WireIdentifier] = &[ wire("wai-pick", WireKind::DocumentKind, EXPLORATION, "§10.2", WireStatus::Defined), wire("WQS1", WireKind::Magic, TELEMETRY_AGGREGATION, "§6.1", WireStatus::Defined), wire("WQA1", WireKind::Magic, TELEMETRY_AGGREGATION, "§7.1", WireStatus::Defined), + wire("WIC1", WireKind::Magic, IMPRESSIONS, "§4.1", WireStatus::Defined), + wire("WIT1", WireKind::Magic, IMPRESSIONS, "§5.4", WireStatus::Defined), + wire("WIU1", WireKind::Magic, IMPRESSIONS, "§6.4", WireStatus::Defined), + wire("wai_impression_token", WireKind::DapReportExtension, IMPRESSIONS, "§7.2", WireStatus::Proposed), wire("WGM1", WireKind::Magic, EXACT_TONEMAP, "§4.1", WireStatus::Defined), wire("WD50", WireKind::Magic, EXACT_TONEMAP, "§5.1", WireStatus::Defined), wire("wai-tonemap", WireKind::DocumentKind, EXACT_TONEMAP, "§7.1", WireStatus::Defined), diff --git a/wai/wai-rs/src/delivery_terms.rs b/wai/wai-rs/src/delivery_terms.rs index 9cb52cf0d..8b18277f6 100644 --- a/wai/wai-rs/src/delivery_terms.rs +++ b/wai/wai-rs/src/delivery_terms.rs @@ -25,5 +25,6 @@ pub const SWITCH_REASONS: &[&str] = &[ "deadline-threshold", "unit-hash-mismatch", "budget-exhausted", + "not-held-by-deadline", "recovered", ]; diff --git a/wai/wai-rs/src/http_binding/receipts.rs b/wai/wai-rs/src/http_binding/receipts.rs index 458db3547..05fd7efbf 100644 --- a/wai/wai-rs/src/http_binding/receipts.rs +++ b/wai/wai-rs/src/http_binding/receipts.rs @@ -255,6 +255,7 @@ pub fn claim_file(c: &ClaimReceipt) -> Vec { /// what was served remembered, at most a budget of fetches (never above /// [`FETCH_BUDGET`]) and of bytes ([`MAX_INDEX_FETCH_BYTES`]), and a file over /// [`MAX_RECEIPT_FILE_BYTES`] refused. +#[allow(clippy::type_complexity)] pub struct ReceiptFetcher<'f> { fetch: &'f mut dyn FnMut(&[u8; 32], usize) -> Option>, memo: BTreeMap<[u8; 32], Served>, @@ -275,6 +276,7 @@ impl<'f> ReceiptFetcher<'f> { /// A fetcher over `fetch` with `budget` fetches, at most [`FETCH_BUDGET`]. `fetch` /// gives what is served at a name, reading at most the number of bytes it is given; /// anything more it returns is taken as unread. + #[allow(clippy::type_complexity)] pub fn new(fetch: &'f mut dyn FnMut(&[u8; 32], usize) -> Option>, budget: usize) -> Self { ReceiptFetcher { fetch, memo: BTreeMap::new(), fetched: 0, budget: budget.min(FETCH_BUDGET), bytes: 0 } } @@ -725,6 +727,32 @@ fn step6( passed.iter().filter(|w| w.group.link_hash() == claim.subject).map(|w| (&w.object, None)).collect(); claim.check_schedule_against(&v.group, &objects).map_err(c) } + // §2.4.17 (timeliness §4.3): against that group, the object receipts of the items listed + // under it here, and a fallback's group and object receipt where an item lists them; the + // index carries no envelope bytes, so timeliness §4.3 steps 6 and 8 do not run here. + ClaimBody::Timeliness(_) => { + let v = passed.iter().find(|v| v.group.link_hash() == claim.subject).ok_or(ReceiptRefusal::ContextNotHeld)?; + let mut held: Vec> = Vec::new(); + for w in passed { + match held.iter_mut().find(|h| h.group.link_hash() == w.group.link_hash()) { + Some(h) => h.objects.push((&w.object, None)), + None => held.push(crate::claim_receipt::HeldGroup { group: &w.group, objects: vec![(&w.object, None)] }), + } + } + claim.check_timeliness_against(&v.group, &held).map_err(c) + } + // §2.4.18 (cache-authority §5.3): against that group and the object receipts of the items + // listed under it here; one naming an object this index does not list is + // `context_not_held`, as a reconciliation's is. + ClaimBody::CacheTransmission(_) => { + let v = passed.iter().find(|v| v.group.link_hash() == claim.subject).ok_or(ReceiptRefusal::ContextNotHeld)?; + let objects: Vec<&ObjectReceipt> = + passed.iter().filter(|w| w.group.link_hash() == claim.subject).map(|w| &w.object).collect(); + match claim.check_cache_transmission_against(&v.group, &objects) { + Err(Rejection { reason: ClaimReason::CacheTransmissionObjectsNotHeld, .. }) => Err(ReceiptRefusal::ContextNotHeld), + r => r.map_err(c), + } + } _ => Ok(()), } } @@ -849,7 +877,7 @@ impl Default for Limits { /// ([`check_claim`]) against the items that passed. Each name is fetched once, at most /// `limits.fetch_budget` files and [`MAX_INDEX_FETCH_BYTES`] bytes in all; `fetch` is /// given, with each name, the most bytes it may read of it. -#[allow(clippy::too_many_arguments)] +#[allow(clippy::too_many_arguments, clippy::type_complexity)] pub fn check_index( cid: &[u8; 32], index: &[u8], diff --git a/wai/wai-rs/src/http_binding/tests_receipts.rs b/wai/wai-rs/src/http_binding/tests_receipts.rs index d04f1585b..30f370ec9 100644 --- a/wai/wai-rs/src/http_binding/tests_receipts.rs +++ b/wai/wai-rs/src/http_binding/tests_receipts.rs @@ -357,7 +357,7 @@ fn claims_are_checked_by_subject_and_parent() { let index = index_file(&cid, &[item(&t.groups[0], &t.objects[0])], &names).unwrap(); let mut fetch = |h: &[u8; 32], _: usize| files.get(h).cloned(); let r = check_index(&cid, &index, &ObjectHeld::Nothing, &mut fetch, &mut ReceiptChains::new(), 0, &Limits::default(), None).unwrap(); - let got: Vec), &'static str>> = + let got: Vec<_> = r.claims.iter().map(|c| c.as_ref().map(|v| (v.attests, v.parent)).map_err(ReceiptRefusal::code)).collect(); // A soft binding of another object, with no recovery run, is about another object. assert_eq!(got, vec![ @@ -553,6 +553,53 @@ fn bearer_claims_are_checked_against_the_group_of_an_item() { ]); } +/// §8.2, cache-authority §5.3: a cache-transmission claim about the group of an item that +/// passed is checked against that group and the object receipts of the items listed under it +/// here. One whose set bits name an object this index does not list is `context_not_held`, as a +/// reconciliation's is; one the group's key signed is refused at step 6. +#[test] +fn cache_transmission_claims_are_checked_against_the_group_of_an_item() { + use crate::claim_receipt::{Bearer, CacheTransmissionClaim, ReconciliationClaim}; + let envs = [envelope(72), envelope(73)]; + let mut b = GroupBuilder::default(); + for e in &envs { + b.add(content_hash(e), 0, "origin", Some(ObjectLabel::Unmetered)); + } + let (g, os) = b.finish(&key(0x61), SIGNER, 9, 1, "2026-10-06T00:00:00Z", "2026-10-06T00:00:04Z", None, true).unwrap(); + let mut files = BTreeMap::new(); + files.insert(g.link_hash(), group_file(&g).unwrap()); + let link = g.link_hash(); + let sent = |signer: u8, idx: &[u64], root: [u8; 32]| { + let body = ClaimBody::CacheTransmission(CacheTransmissionClaim { + bearer: Bearer::Multicast, + bearer_id: "urn:example:wai-bearer:mesh".into(), + leaf_count: 2, + sent: ReconciliationClaim::bitmap(2, idx), + sent_root: root, + energy: None, + attests: "transmitted".into(), + }); + ClaimReceipt::seal(&key(signer), "did:example:cache", SubjectType::Receipt, link, 0, "2026-10-06T00:00:05Z", body, None).unwrap() + }; + let claims = [ + sent(0x67, &[0], crate::jwp_delivery::root(&[os[0].leaf()])), + sent(0x68, &[1], crate::jwp_delivery::root(&[os[1].leaf()])), + sent(0x61, &[0, 1], g.root_hash), + ]; + for c in &claims { + files.insert(c.link_hash(), claim_file(c)); + } + let names: Vec<[u8; 32]> = claims.iter().map(ClaimReceipt::link_hash).collect(); + let cid = os[0].content_hash; + let index = index_file(&cid, &[item(&g, &os[0])], &names).unwrap(); + let mut fetch = |h: &[u8; 32], _: usize| files.get(h).cloned(); + let r = check_index(&cid, &index, &whole(&envs[0]), &mut fetch, &mut ReceiptChains::new(), 0, &Limits::default(), None).unwrap(); + assert!(r.delivery[0].is_ok(), "{:?}", r.delivery[0]); + let got: Vec)>> = + r.claims.iter().map(|c| c.as_ref().map(|_| ()).map_err(|e| (e.code(), e.step()))).collect(); + assert_eq!(got, vec![Ok(()), Err(("context_not_held", Some(6))), Err(("cache_transmission_by_publisher", Some(6)))]); +} + /// §8.2: a claim about a receipt attaches only through a delivery item that passed for /// this object: one about the group of an item refused, or of another object, is not /// about this object. @@ -827,7 +874,7 @@ mod keys { let loc = key_log_url(ORIGIN); assert_eq!(loc, "https://origin.example/.well-known/wai-keys"); let ok = Retrieval { requested: &loc, answered: &loc, status: 200 }; - let a = anchor_retrieved(ORIGIN, &ok, &log_bytes(&[r0.clone()]), "2026-10-03T00:00:00Z", None).unwrap(); + let a = anchor_retrieved(ORIGIN, &ok, &log_bytes(std::slice::from_ref(&r0)), "2026-10-03T00:00:00Z", None).unwrap(); assert_eq!(a.revision, r0.revision_hash()); let mirror = "https://mirror.example/.well-known/wai-keys"; for (r, why) in [ @@ -835,12 +882,12 @@ mod keys { (Retrieval { requested: mirror, answered: mirror, status: 200 }, "another location"), (Retrieval { requested: &loc, answered: &loc, status: 304 }, "not a 200"), ] { - assert_eq!(anchor_retrieved(ORIGIN, &r, &log_bytes(&[r0.clone()]), "t", None).unwrap_err().code(), "key_log_not_from_origin", "{why}"); + assert_eq!(anchor_retrieved(ORIGIN, &r, &log_bytes(std::slice::from_ref(&r0)), "t", None).unwrap_err().code(), "key_log_not_from_origin", "{why}"); } let plain = "http://origin.example"; let pl = key_log_url(plain); let r = Retrieval { requested: &pl, answered: &pl, status: 200 }; - assert_eq!(anchor_retrieved(plain, &r, &log_bytes(&[r0.clone()]), "t", None).unwrap_err().code(), "key_log_not_from_origin"); + assert_eq!(anchor_retrieved(plain, &r, &log_bytes(std::slice::from_ref(&r0)), "t", None).unwrap_err().code(), "key_log_not_from_origin"); // Through a cache: the newer copy adds r1; the anchor stays at r0. let mut held = vec![r0.clone()]; assert_eq!(hold_cached_revisions(ORIGIN, &log_bytes(&[r0.clone(), r1.clone()]), &a, &mut held), Ok(1)); @@ -848,7 +895,7 @@ mod keys { // Anchored at r1, a cached copy ending at r0 is an older copy. let a1 = anchor_retrieved(ORIGIN, &ok, &log_bytes(&[r0.clone(), r1.clone()]), "2026-10-03T00:00:00Z", Some((&a, &held))).unwrap(); assert_eq!(a1.revision, r1.revision_hash()); - assert_eq!(hold_cached_revisions(ORIGIN, &log_bytes(&[r0.clone()]), &a1, &mut held).unwrap_err().code(), "key_log_rolled_back"); + assert_eq!(hold_cached_revisions(ORIGIN, &log_bytes(std::slice::from_ref(&r0)), &a1, &mut held).unwrap_err().code(), "key_log_rolled_back"); // A log of another origin is not this one's. assert_eq!(hold_cached_revisions("https://other.example", &log_bytes(&[r0]), &a1, &mut held).unwrap_err().code(), "origin_not_anchored"); assert_eq!(status_max_age_s(&r1), 900); @@ -861,7 +908,7 @@ mod keys { let r0 = revision(None, "2026-10-01T00:00:00Z", vec![]); let loc = key_log_url(ORIGIN); let ok = Retrieval { requested: &loc, answered: &loc, status: 200 }; - let mut at_cap = log_bytes(&[r0.clone()]); + let mut at_cap = log_bytes(std::slice::from_ref(&r0)); at_cap.resize(MAX_KEY_LOG_BYTES, b' '); let a = anchor_retrieved(ORIGIN, &ok, &at_cap, "t", None).expect("a log at the cap anchors"); let mut past = at_cap.clone(); @@ -878,7 +925,7 @@ mod keys { let module = [7u8; 32]; let g = ModuleGrant::seal(&key(0x63), "did:web:origin.example#g1", ORIGIN, module, ModuleForm::Decoder, &["wai.neural.int_mlicpp"], "2026-10-01T00:00:00Z", "2026-10-01T12:00:00Z").unwrap(); - let file = grants_file(&module, &[g.clone()]); + let file = grants_file(&module, std::slice::from_ref(&g)); assert_eq!(read_grants_file(&module, &file).unwrap(), vec![g.to_json()]); assert_eq!(read_grants_file(&[8; 32], &file).unwrap_err().code(), "grants_file_malformed"); let text = String::from_utf8(file).unwrap(); @@ -901,7 +948,7 @@ mod keys { let r0 = revision(None, "2026-10-01T00:00:00Z", vec![]); let loc = key_log_url(ORIGIN); let ok = Retrieval { requested: &loc, answered: &loc, status: 200 }; - let a = anchor_retrieved(ORIGIN, &ok, &log_bytes(&[r0.clone()]), "2026-10-01T00:00:00Z", None).unwrap(); + let a = anchor_retrieved(ORIGIN, &ok, &log_bytes(std::slice::from_ref(&r0)), "2026-10-01T00:00:00Z", None).unwrap(); let g = ModuleGrant::seal(&key(0x63), "did:web:origin.example#g1", ORIGIN, digest, ModuleForm::Decoder, &["wai.neural.int_mlicpp"], "2026-10-01T00:00:00Z", "2026-10-01T12:00:00Z").unwrap(); let grants = read_grants_file(&digest, &grants_file(&digest, &[g])).unwrap(); diff --git a/wai/wai-rs/src/impression_aggregate.rs b/wai/wai-rs/src/impression_aggregate.rs new file mode 100644 index 000000000..91304852f --- /dev/null +++ b/wai/wai-rs/src/impression_aggregate.rs @@ -0,0 +1,1356 @@ +//! Impression aggregates — `extensions/impression-aggregates.md`, the record +//! `wai.delivery.impressions`: ad presentations counted over a bearer with no return path. +//! +//! A receiver judges each ad of a shared pod-input record it presented by +//! stitched-presentation's rules (§7.3 steps 1 to 10) and reports the presentation once, as a +//! Prio3Histogram report of a DAP task of telemetry-aggregation's measure 5, `impressions`, +//! whose `scope` is the digest of a **catalogue** (`WIC1`, §4) that fixes which index of the +//! vector is which creative, region column and quartile. The task layout, the task id, the +//! aggregators, the statements and the receipt are telemetry-aggregation's. What this module +//! adds, by section of the extension: +//! +//! - §4: the catalogue, its rules, its region columns and its cells ([`Catalogue`]); +//! - §5: measure 5's task rules ([`check_task`]) and the task file (`WIT1`, [`TaskFile`], +//! [`accept`]), whose signer is confirmed under a pinned key log with `aggregate/task`; +//! - §6: the receiver's contribution ([`contribution`]), its report ([`report`]), the upload +//! file (`WIU1`, [`UploadFile`]), the upload plan ([`plan`]) and settlement ([`settle`]); +//! - §7: the report token an aggregator checks in a private report extension +//! ([`check_token`], [`TokenRule`]); +//! - §8: a receipt of an impression task ([`verify_receipt`]) and the table ([`table`]). +//! +//! # Rules enforced here rather than only documented +//! +//! - Every verdict is a function of its inputs alone: no clock, no network, no randomness. +//! - A region that is none, malformed or held by no listed code is `other`, never a named one. +//! - An unset clock gives no report, and an empty token pool gives none: an undercount. +//! - A receipt's result is refused unless each element is at most the report count and the +//! elements sum, as integers, to it; two receipts whose batches overlap are both set aside. +//! - A table row is stated for every creative and column; a row under fifty is flagged. +//! - A table's totals are exact integers (u128), and whether their reports were checked does +//! not depend on the order in which a receipt given more than once arrives. + +use std::collections::BTreeSet; + +use ed25519_dalek::{Signer, SigningKey}; +use sha2::{Digest, Sha256}; + +use crate::key_log::{self, Anchor, Confirmation, Expectation, Item, Revision}; +use crate::live_ads::presentation::{self as ap, token_type, Creative, Issuer, Requirement}; +use crate::stitched_presentation::{self as sp, PodInput}; +use crate::telemetry_aggregate::aggregator::{client_report, ReportRule}; +use crate::telemetry_aggregate::dap::{ + decode_upload, encode_upload, report_error, Extensions, HpkeConfig, Interval, Report, ReportMetadata, TaskConfig, EXT_TASK_INTERVAL, R, +}; +use crate::telemetry_aggregate::measure::{self, Task, TaskInfo}; +use crate::telemetry_aggregate::prio3::{Vdaf, ID_HISTOGRAM}; +use crate::telemetry_aggregate::receipt::{self, GivenReport, Receipt}; +use crate::telemetry_aggregate::Reason as QoeReason; + +pub mod corpus; + +/// The capability string this extension registers. +pub const CAPABILITY: &str = "wai.delivery.impressions"; +/// The magic of a catalogue (§4.1). +pub const CATALOGUE_MAGIC: &[u8; 4] = b"WIC1"; +/// The magic of a task file (§5.4). +pub const TASK_FILE_MAGIC: &[u8; 4] = b"WIT1"; +/// The magic of an upload file (§6.4). +pub const UPLOAD_MAGIC: &[u8; 4] = b"WIU1"; +/// The version of each record this revision defines. +pub const VERSION: u8 = 1; +/// telemetry-aggregation's measure code for impressions (§5.1). +pub const MEASURE: u8 = measure::IMPRESSIONS; +/// The domain of a task file's signature (§5.4). +pub const TASK_FILE_DOMAIN: &[u8] = b"wai:impression-task\x01"; +/// The domain of a report token's redemption context (§7.2). +pub const ATTEST_DOMAIN: &[u8] = b"wai:impression-report-attest\x01"; +/// The authority a task file's signer is confirmed with (§5.4; jwp-receipts §7.5). +pub const TASK_AUTHORITY: &str = "aggregate/task"; +/// The proposed report-extension codepoint of a report token (§7.2). +pub const TOKEN_EXTENSION: u16 = 0x5749; +/// The bound on a catalogue's cells (§4.3 rule 7). +pub const MAX_CELLS: usize = 4096; +/// The least `time_precision` of an impression task (§5.3 step 3). +pub const MIN_PRECISION: u64 = 3600; +/// The last instant, in seconds (carousel §4.2; timeliness §2): a retention instant's bound. +pub const LAST_INSTANT_S: u64 = 253_402_300_799; +/// A row's floor (§8.2): delivery-telemetry §8.4's fifty. +pub const ROW_FLOOR: u64 = measure::FLOOR; +/// The most signers and issuer keys a catalogue lists (§4.3 rules 4 and 8). +pub const MAX_SIGNERS: usize = 16; +pub const MAX_KEYS: usize = 4; +/// Size bounds (§4.3, §5.4, §6.4). +pub const MAX_CATALOGUE: usize = 1 << 20; +pub const MAX_TASK_FILE: usize = 1 << 20; +pub const MAX_UPLOAD: usize = 1 << 24; +/// An upload file's bytes besides its reports: magic, version, task id and the u32 length. +pub const UPLOAD_OVERHEAD: u64 = 4 + 1 + 32 + 4; + +pub const CATALOGUE_MALFORMED: &str = "catalogue_malformed"; +pub const CATALOGUE_MISMATCH: &str = measure::CATALOGUE_MISMATCH; +pub const TASK_FILE_MALFORMED: &str = "task_file_malformed"; +pub const RECORD_NOT_SHARED: &str = "record_not_shared"; +pub const RECORD_TERMS_DIFFER: &str = "record_terms_differ"; +pub const CREATIVE_NOT_LISTED: &str = "creative_not_listed"; +pub const INSTANT_UNKNOWN: &str = "instant_unknown"; +pub const OUTSIDE_TASK: &str = "outside_task"; +pub const TOKEN_EXHAUSTED: &str = "token_exhausted"; +pub const UPLOAD_MALFORMED: &str = "upload_malformed"; +pub const RECEIPTS_OVERLAP: &str = "receipts_overlap"; + +/// The codes impression-aggregates §10 lists, in its order. +pub const CODES: [&str; 11] = [ + CATALOGUE_MALFORMED, + CATALOGUE_MISMATCH, + TASK_FILE_MALFORMED, + RECORD_NOT_SHARED, + RECORD_TERMS_DIFFER, + CREATIVE_NOT_LISTED, + INSTANT_UNKNOWN, + OUTSIDE_TASK, + TOKEN_EXHAUSTED, + UPLOAD_MALFORMED, + RECEIPTS_OVERLAP, +]; + +/// age-assurance §7.3's code, reused at §8.1 step 13: a receipt's counts are not the counts +/// its inputs give. +pub const COUNT_MISMATCH: &str = "count_mismatch"; +/// ad-presentation §11's codes, reused at §7.2. +pub const ATTESTATION_ABSENT: &str = "attestation_absent"; +pub const ATTESTATION_INVALID: &str = "attestation_invalid"; + +/// The codes of other texts this one raises that this module names (§10's last paragraph): +/// telemetry-aggregation §11's at §5.3, §8.1 and §8.2; age-assurance's `count_mismatch`; the +/// reading and signature codes. The key-log confirmation reasons (jwp-receipts §7.7), +/// stitched-presentation §9's codes and DAP's report errors come from the modules that raise +/// them. +pub const REUSED: [&str; 13] = [ + "task_invalid", + "measure_mismatch", + "floor_too_low", + "aggregator_alone", + "batch_invalid", + "task_mismatch", + "batch_too_small", + "batch_mismatch", + COUNT_MISMATCH, + ATTESTATION_ABSENT, + ATTESTATION_INVALID, + "bad_key", + "bad_signature", +]; + +fn task_invalid() -> &'static str { + QoeReason::TaskInvalid.code() +} + +fn sha256(parts: &[&[u8]]) -> [u8; 32] { + let mut h = Sha256::new(); + for p in parts { + h.update(p); + } + h.finalize().into() +} + +fn ascending(v: &[T]) -> bool { + v.windows(2).all(|w| w[0] < w[1]) +} + +/// The smallest integer whose square is at least `n` (§4.2): the chunk length. +pub fn ceil_sqrt(n: usize) -> usize { + let mut x = 0usize; + while x * x < n { + x += 1; + } + x +} + +// ───────────────────────────── §4: the catalogue ───────────────────────────── + +/// The measurement terms as a pod-input record carries them (stitched-presentation §4.1): +/// `presentation`, `viewability`, `token_type` and `issuer`, little-endian. +pub fn terms_bytes(r: &Requirement) -> Vec { + let mut o = vec![r.require, r.rule]; + o.extend_from_slice(&r.token_type.to_le_bytes()); + o.extend_from_slice(&(r.issuer.len() as u16).to_le_bytes()); + o.extend_from_slice(&r.issuer); + o +} + +/// A catalogue (§4.1): which index of the vector is which creative, region column and +/// quartile, the hold before a collection, and the issuer keys of the report tokens. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Catalogue { + pub terms: Requirement, + pub hold_s: u32, + pub signers: Vec<[u8; 32]>, + pub creatives: Vec<[u8; 32]>, + pub regions: Vec>, + pub keys: Vec>, +} + +/// A cursor over a catalogue's bytes: big-endian, except the terms. +struct Cur<'a> { + b: &'a [u8], + p: usize, +} + +impl<'a> Cur<'a> { + fn take(&mut self, n: usize) -> Option<&'a [u8]> { + let s = self.b.get(self.p..self.p.checked_add(n)?)?; + self.p += n; + Some(s) + } + fn u8(&mut self) -> Option { + Some(self.take(1)?[0]) + } + fn u16_le(&mut self) -> Option { + Some(u16::from_le_bytes(self.take(2)?.try_into().ok()?)) + } + fn u16_be(&mut self) -> Option { + Some(u16::from_be_bytes(self.take(2)?.try_into().ok()?)) + } + fn u32_be(&mut self) -> Option { + Some(u32::from_be_bytes(self.take(4)?.try_into().ok()?)) + } + fn arr32(&mut self) -> Option<[u8; 32]> { + self.take(32)?.try_into().ok() + } +} + +impl Catalogue { + /// Its bytes (§4.1). Each state has exactly one encoding. + pub fn encode(&self) -> Vec { + assert!(self.signers.len() <= 255 && self.creatives.len() <= 255 && self.regions.len() <= 255 && self.keys.len() <= 255); + let mut o = CATALOGUE_MAGIC.to_vec(); + o.push(VERSION); + o.extend_from_slice(&terms_bytes(&self.terms)); + o.extend_from_slice(&self.hold_s.to_be_bytes()); + o.push(self.signers.len() as u8); + for s in &self.signers { + o.extend_from_slice(s); + } + o.push(self.creatives.len() as u8); + for c in &self.creatives { + o.extend_from_slice(c); + } + o.push(self.regions.len() as u8); + for r in &self.regions { + assert!(r.len() <= 255); + o.push(r.len() as u8); + o.extend_from_slice(r); + } + o.push(self.keys.len() as u8); + for k in &self.keys { + o.extend_from_slice(&(k.len() as u16).to_be_bytes()); + o.extend_from_slice(k); + } + o + } + + /// Its digest (§4.1): SHA-256 over all its bytes. + pub fn digest(&self) -> [u8; 32] { + sha256(&[&self.encode()]) + } + + /// Read a catalogue (§4.3): exactly the given bytes, at most [`MAX_CATALOGUE`], then the + /// rules; `catalogue_malformed` otherwise. + pub fn parse(b: &[u8]) -> Result { + if b.len() > MAX_CATALOGUE { + return Err(CATALOGUE_MALFORMED); + } + let mut c = Cur { b, p: 0 }; + let cat = (|| -> Option { + if c.take(4)? != CATALOGUE_MAGIC || c.u8()? != VERSION { + return None; + } + let (require, rule, tt) = (c.u8()?, c.u8()?, c.u16_le()?); + let n = c.u16_le()? as usize; + let terms = Requirement { require, rule, token_type: tt, issuer: c.take(n)?.to_vec() }; + let hold_s = c.u32_be()?; + let s = c.u8()? as usize; + let signers = (0..s).map(|_| c.arr32()).collect::>>()?; + let n = c.u8()? as usize; + let creatives = (0..n).map(|_| c.arr32()).collect::>>()?; + let n = c.u8()? as usize; + let mut regions = Vec::with_capacity(n); + for _ in 0..n { + let len = c.u8()? as usize; + regions.push(c.take(len)?.to_vec()); + } + let n = c.u8()? as usize; + let mut keys = Vec::with_capacity(n); + for _ in 0..n { + let len = c.u16_be()? as usize; + keys.push(c.take(len)?.to_vec()); + } + Some(Catalogue { terms, hold_s, signers, creatives, regions, keys }) + })() + .ok_or(CATALOGUE_MALFORMED)?; + if c.p != b.len() || !cat.rules_hold() { + return Err(CATALOGUE_MALFORMED); + } + Ok(cat) + } + + /// §4.3's rules 2 to 8. + pub fn rules_hold(&self) -> bool { + let t = &self.terms; + let terms = t.well_formed() && t.claims() && (!t.attest() || t.token_type == token_type::BLIND_RSA); + let hold = self.hold_s != 0; + let signers = (1..=MAX_SIGNERS).contains(&self.signers.len()) && ascending(&self.signers); + let creatives = !self.creatives.is_empty() && ascending(&self.creatives); + let overlap = self.regions.iter().any(|x| x.len() == 2 && self.regions.iter().any(|y| y.len() > 2 && y.starts_with(x) && y[2] == b'-')); + let regions = self.regions.iter().all(|r| crate::region::code(r)) && ascending(&self.regions) && !overlap; + let cells = self.cells() <= MAX_CELLS; + let count_ok = if t.attest() { (1..=MAX_KEYS).contains(&self.keys.len()) } else { self.keys.is_empty() }; + let keys = count_ok && self.keys.iter().all(|k| ap::rsa_public_key(k).is_some()) && ascending(&self.keys); + terms && hold && signers && creatives && regions && cells && keys + } + + /// Whether the terms set **attest** (§6.2 step 8, §7.2). + pub fn attested(&self) -> bool { + self.terms.attest() + } + + /// The columns: one for each listed region, then `other` (§4.2). + pub fn columns(&self) -> usize { + self.regions.len() + 1 + } + + /// *L* (§4.2): creatives × columns × 5. + pub fn cells(&self) -> usize { + self.creatives.len() * self.columns() * 5 + } + + /// The chunk length ⌈√*L*⌉ (§4.2). + pub fn chunk(&self) -> usize { + ceil_sqrt(self.cells()) + } + + /// The column of a receiver's region (§4.2): the listed code that holds it (rung-price §2 + /// *Holds*), else `other`, the last. None, and a byte string that is not a code, are + /// `other`. + pub fn column(&self, region: Option<&[u8]>) -> usize { + let other = self.regions.len(); + let Some(g) = region.filter(|g| crate::region::code(g)) else { return other }; + let at = |x: &[u8]| self.regions.binary_search_by(|r| r.as_slice().cmp(x)).ok(); + at(g).or_else(|| if crate::region::subdivision(g) { at(crate::region::country(g)) } else { None }).unwrap_or(other) + } + + /// The name of a column: its code, or `other`. + pub fn column_name(&self, column: usize) -> String { + self.regions.get(column).map_or_else(|| "other".to_owned(), |r| String::from_utf8_lossy(r).into_owned()) + } + + /// The cell of creative index `creative`, column `column` and quartile `quartile` (1 to 5). + pub fn cell(&self, creative: usize, column: usize, quartile: u8) -> usize { + (creative * self.columns() + column) * 5 + (quartile as usize - 1) + } + + /// The cell's creative index, column and quartile. + pub fn uncell(&self, cell: usize) -> (usize, usize, u8) { + let q = (cell % 5) as u8 + 1; + let rest = cell / 5; + (rest / self.columns(), rest % self.columns(), q) + } + + /// The task's VDAF (§5.1): Prio3Histogram of *L* and ⌈√*L*⌉, two aggregators. + pub fn vdaf(&self) -> Vdaf { + Vdaf::histogram(2, self.cells(), self.chunk()) + } + + /// The issuer of the report tokens, as ad-presentation §7.3 holds one. + pub fn issuer(&self) -> Issuer { + Issuer { name: self.terms.issuer.clone(), token_type: token_type::BLIND_RSA, keys: self.keys.clone() } + } +} + +// ───────────────────────────── §5: the task ───────────────────────────── + +/// The retention instant, in seconds (§5.3 step 3): the `task_interval`'s end times +/// `time_precision`, plus `hold_s`; `None` when the task has no interval or it overflows. +pub fn retention_s(cfg: &TaskConfig, hold_s: u32) -> Option { + let i = cfg.task_interval()?; + i.end()?.checked_mul(cfg.time_precision)?.checked_add(hold_s as u64) +} + +/// Prio3HistogramConfig {`length`, `chunk_length`} (DAP Appendix B.4). +fn histogram_config(length: usize, chunk: usize) -> Vec { + let mut v = (length as u32).to_be_bytes().to_vec(); + v.extend_from_slice(&(chunk as u32).to_be_bytes()); + v +} + +/// §5.3 steps 2 to 4, given a configuration whose `task_info` reads: telemetry-aggregation +/// §4.3 rule 3 for measure 5. +fn measure_rule(cfg: &TaskConfig, info: &TaskInfo, cat: &Catalogue, digest: &[u8; 32]) -> Result { + if info.measure != MEASURE || info.scope != *digest { + return Err(CATALOGUE_MISMATCH); + } + if cfg.time_precision < MIN_PRECISION { + return Err(task_invalid()); + } + let [(t, d)] = cfg.extensions.as_slice() else { return Err(task_invalid()) }; + if *t != EXT_TASK_INTERVAL || Interval::decode(d).ok().is_none_or(|i| i.duration < 1) { + return Err(task_invalid()); + } + if retention_s(cfg, cat.hold_s).is_none_or(|r| r > LAST_INSTANT_S) { + return Err(task_invalid()); + } + if cfg.vdaf_type != ID_HISTOGRAM || cfg.vdaf_config != histogram_config(cat.cells(), cat.chunk()) { + return Err(QoeReason::MeasureMismatch.code()); + } + Ok(cat.vdaf()) +} + +/// §5.3: a TaskConfiguration is an impression task of `cat`, or the code of the first step +/// that refuses it. +pub fn check_task(cfg_bytes: &[u8], cat: &Catalogue) -> Result { + let cfg = TaskConfig::decode(cfg_bytes).map_err(|_| task_invalid())?; + let info = measure::rule_1(&cfg)?; + let digest = cat.digest(); + if info.measure != MEASURE || info.scope != digest { + return Err(CATALOGUE_MISMATCH); + } + Task::with(cfg, &|c, i| measure_rule(c, i, cat, &digest)) +} + +/// An HpkeConfigList (DAP §4.4.1): a u16 length of at least 10, then configurations. +pub fn encode_hpke_list(list: &[HpkeConfig]) -> Vec { + let body: Vec = list.iter().flat_map(HpkeConfig::encode).collect(); + let mut v = (body.len() as u16).to_be_bytes().to_vec(); + v.extend_from_slice(&body); + v +} + +/// Read an HpkeConfigList's body (§5.4 step 1): its configurations, of distinct ids, one of +/// them of DAP's suite with a 32-byte key; `None` otherwise. +pub fn read_hpke_list(body: &[u8]) -> Option> { + if body.len() < 10 { + return None; + } + let mut r = R::new(body); + let mut out: Vec = Vec::new(); + while !r.is_empty() { + let c = HpkeConfig { id: r.u8().ok()?, kem: r.u16().ok()?, kdf: r.u16().ok()?, aead: r.u16().ok()?, public_key: r.opaque(2, 1, 0xFFFF).ok()? }; + if out.iter().any(|x| x.id == c.id) { + return None; + } + out.push(c); + } + crate::telemetry_aggregate::aggregator::choose(&out)?; + Some(out) +} + +/// A task file (§5.4): an impression task, its catalogue and its aggregators' HPKE +/// configurations, signed by a key its origin's key log lists with `aggregate/task`. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct TaskFile { + pub task: Vec, + pub catalogue: Vec, + /// Each list as DAP encodes it, its u16 length first. + pub leader_hpke: Vec, + pub helper_hpke: Vec, + pub signer: [u8; 32], + pub signer_id: String, + pub sig: [u8; 64], +} + +impl TaskFile { + /// Its bytes before `sig`: what its digest and signature cover. + pub fn body(&self) -> Vec { + let mut o = TASK_FILE_MAGIC.to_vec(); + o.push(VERSION); + o.extend_from_slice(&(self.task.len() as u16).to_be_bytes()); + o.extend_from_slice(&self.task); + o.extend_from_slice(&(self.catalogue.len() as u32).to_be_bytes()); + o.extend_from_slice(&self.catalogue); + o.extend_from_slice(&self.leader_hpke); + o.extend_from_slice(&self.helper_hpke); + o.extend_from_slice(&self.signer); + o.extend_from_slice(&(self.signer_id.len() as u16).to_be_bytes()); + o.extend_from_slice(self.signer_id.as_bytes()); + o + } + + pub fn to_bytes(&self) -> Vec { + let mut o = self.body(); + o.extend_from_slice(&self.sig); + o + } + + /// Its digest (§5.4): SHA-256 over the bytes before `sig`. + pub fn digest(&self) -> [u8; 32] { + sha256(&[&self.body()]) + } + + /// Sign with `key`, which becomes `signer`. + pub fn sign(mut self, key: &SigningKey) -> TaskFile { + self.signer = key.verifying_key().to_bytes(); + let mut m = TASK_FILE_DOMAIN.to_vec(); + m.extend_from_slice(&self.body()); + self.sig = key.sign(&m).to_bytes(); + self + } + + /// Read a task file's layout (§5.4 step 1, less its HPKE lists' contents). + pub fn parse(b: &[u8]) -> Result { + if b.len() > MAX_TASK_FILE { + return Err(TASK_FILE_MALFORMED); + } + let mut c = Cur { b, p: 0 }; + let f = (|| -> Option { + if c.take(4)? != TASK_FILE_MAGIC || c.u8()? != VERSION { + return None; + } + let n = c.u16_be()? as usize; + let task = c.take(n)?.to_vec(); + let n = c.u32_be()? as usize; + let catalogue = c.take(n)?.to_vec(); + let mut list = || -> Option> { + let start = c.p; + let n = c.u16_be()? as usize; + c.take(n)?; + Some(b[start..c.p].to_vec()) + }; + let leader_hpke = list()?; + let helper_hpke = list()?; + let signer = c.arr32()?; + let n = c.u16_be()? as usize; + let id = c.take(n)?; + if id.is_empty() || !id.is_ascii() { + return None; + } + let signer_id = String::from_utf8(id.to_vec()).ok()?; + let sig = c.take(64)?.try_into().ok()?; + Some(TaskFile { task, catalogue, leader_hpke, helper_hpke, signer, signer_id, sig }) + })() + .ok_or(TASK_FILE_MALFORMED)?; + if c.p != b.len() { + return Err(TASK_FILE_MALFORMED); + } + Ok(f) + } +} + +/// An accepted task file (§5.4): what a receiver reports under. +pub struct Accepted { + pub digest: [u8; 32], + pub file: TaskFile, + pub catalogue: Catalogue, + pub task: Task, + pub leader: Vec, + pub helper: Vec, + pub confirmation: Confirmation, +} + +impl Accepted { + /// The task's interval (§5.3 makes it exactly one). + pub fn interval(&self) -> Interval { + self.task.config.task_interval().expect("an impression task has a task_interval") + } + + /// The retention instant, in seconds (§5.3). + pub fn retention_s(&self) -> u64 { + retention_s(&self.task.config, self.catalogue.hold_s).expect("an impression task's retention instant") + } +} + +/// §5.4: accept a task file under the key-log revisions and anchor records a receiver +/// holds, optionally expecting an origin, or the reason of the first step that fails. +pub fn accept(bytes: &[u8], revisions: &[Revision], anchors: &[Anchor], expected: Option<&Expectation>) -> Result { + // 1. The layout, and the HPKE configuration lists. + let file = TaskFile::parse(bytes)?; + let leader = read_hpke_list(&file.leader_hpke[2..]).ok_or(TASK_FILE_MALFORMED)?; + let helper = read_hpke_list(&file.helper_hpke[2..]).ok_or(TASK_FILE_MALFORMED)?; + // 2. The catalogue. + let catalogue = Catalogue::parse(&file.catalogue)?; + // 3. The task, against it. + let task = check_task(&file.task, &catalogue)?; + // 4. The signature. + let mut m = TASK_FILE_DOMAIN.to_vec(); + m.extend_from_slice(&file.body()); + crate::sig::verify_strict(&file.signer, &m, &file.sig).map_err(|e| match e { + crate::sig::SigError::BadKey => "bad_key", + crate::sig::SigError::BadSignature => "bad_signature", + })?; + // 5. The signer, confirmed with `aggregate/task`, the item untimed. + let item = Item::with_authority(file.signer, &file.signer_id, TASK_AUTHORITY); + let confirmation = key_log::confirm(&item, revisions, anchors, expected); + match &confirmation { + Confirmation::Confirmed { .. } => {} + Confirmation::Refused { reason, .. } | Confirmation::Unconfirmed { reason, .. } => return Err(reason.label()), + } + Ok(Accepted { digest: file.digest(), file, catalogue, task, leader, helper, confirmation }) +} + +// ───────────────────────────── §6: the receiver ───────────────────────────── + +/// What a receiver judges one presentation from (§6.2). +#[derive(Clone, Copy)] +pub struct ContributionInput<'a> { + pub task: &'a Accepted, + /// The pod-input record, by its bytes. + pub record: &'a [u8], + /// The manifests the player read. + pub manifests: &'a [Vec], + /// The creatives it holds. + pub creatives: &'a [Creative], + /// The claims of this playback session already judged, then the one judged now. + pub claims: &'a [Vec], + /// The receiver's region, as its own declared state. + pub region: Option<&'a [u8]>, + /// The instant the presentation ended by the receiver's clock; `None` when it is not set. + pub at_ms: Option, + /// The unused (report id, token) pairs of an attested catalogue. + pub pool: &'a [([u8; 16], Vec)], +} + +/// A contribution that gives a report (§6.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Contribution { + pub cell: usize, + pub creative: usize, + pub column: usize, + pub quartile: u8, + /// `⌊at_ms / (1000 · time_precision)⌋`: the report's time. + pub time: u64, + /// The chosen pair's report id and token, with attest; `None` for a fresh id. + pub id: Option<[u8; 16]>, + pub token: Option>, + /// The pool's ids whose tokens failed, in the order they were tried. + pub discarded: Vec<[u8; 16]>, +} + +/// A contribution that gives no report: the reason of the first step that fails, and the +/// pool's ids discarded on the way. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct NoReport { + pub reason: &'static str, + pub discarded: Vec<[u8; 16]>, +} + +fn no(reason: &'static str) -> NoReport { + NoReport { reason, discarded: vec![] } +} + +/// §6.2: the contribution of one presentation. +pub fn contribution(i: &ContributionInput) -> Result { + let cat = &i.task.catalogue; + // 1. The record, under stitched-presentation §7.2 steps 1 to 3. + let rec = PodInput::parse(i.record).map_err(|r| no(r.code()))?; + rec.check_signature().map_err(|r| no(r.code()))?; + if !cat.signers.contains(&rec.signer) { + return Err(no(sp::Reason::PodSignerUnknown.code())); + } + // 2. A record every viewer is shown. + if !rec.shared() { + return Err(no(RECORD_NOT_SHARED)); + } + // 3. The catalogue's terms. + if terms_bytes(&rec.requirement) != terms_bytes(&cat.terms) { + return Err(no(RECORD_TERMS_DIFFER)); + } + // 4. The claim judged now, under stitched-presentation §7.3 steps 1 to 10. + let records = vec![i.record.to_vec()]; + let input = sp::Input { + records: &records, + claims: i.claims, + manifests: i.manifests, + responses: &[], + receipts: &[], + creatives: i.creatives, + issuers: &[], + signers: std::slice::from_ref(&rec.signer), + }; + let v = sp::verify_through(&input, false); + let f = v.claims.last().ok_or(no(sp::Reason::StitchedClaimMalformed.code()))?; + f.verdict.map_err(|r| no(r.code()))?; + let (Some(slot), Some(quartile)) = (f.slot, f.quartile) else { return Err(no(sp::Reason::StitchedClaimMalformed.code())) }; + let ad = &rec.ads[slot as usize]; + // 5. A listed creative. + let creative = cat.creatives.iter().position(|c| *c == ad.creative_hash).ok_or(no(CREATIVE_NOT_LISTED))?; + // 6. A clock that is set. + let at_ms = i.at_ms.ok_or(no(INSTANT_UNKNOWN))?; + // 7. Within the task's interval. + let time = at_ms / 1000 / i.task.task.config.time_precision; + if !i.task.interval().contains(time) { + return Err(no(OUTSIDE_TASK)); + } + // 8. A token, with attest. + let mut discarded = Vec::new(); + let (mut id, mut token) = (None, None); + if cat.attested() { + let mut pairs: Vec<&([u8; 16], Vec)> = i.pool.iter().collect(); + pairs.sort_by_key(|p| p.0); + for (pid, t) in pairs { + if check_token(&i.task.task.id, pid, cat, t).is_ok() { + id = Some(*pid); + token = Some(t.clone()); + break; + } + discarded.push(*pid); + } + if id.is_none() { + return Err(NoReport { reason: TOKEN_EXHAUSTED, discarded }); + } + } + let column = cat.column(i.region); + Ok(Contribution { cell: cat.cell(creative, column, quartile), creative, column, quartile, time, id, token, discarded }) +} + +/// §6.3: the one report of a contribution. `fresh` is the report id when the catalogue does +/// not attest (16 bytes from a CSPRNG, which the corpus derives from a seed); `rand` is +/// Prio3's randomness and `ikm` the seeds of the two HPKE ephemeral keys. +pub fn report(task: &Accepted, c: &Contribution, fresh: [u8; 16], rand: &[u8], ikm: [&[u8]; 2]) -> Report { + let encoded = task.task.vdaf.encode(&[c.cell as u128]).expect("a cell of the catalogue"); + let ext: Extensions = c.token.as_ref().map(|t| vec![(TOKEN_EXTENSION, t.clone())]).unwrap_or_default(); + client_report(&task.task, &task.leader, &task.helper, c.id.unwrap_or(fresh), c.time, &encoded, rand, ikm, &Vec::new(), [&ext, &ext]) +} + +/// An upload file (§6.4): one task's reports, in strictly ascending order of report id. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct UploadFile { + pub task_id: [u8; 32], + pub reports: Vec, +} + +impl UploadFile { + /// A file of `reports`, put in ascending order of id. + pub fn of(task_id: [u8; 32], reports: &[Report]) -> UploadFile { + let mut reports = reports.to_vec(); + reports.sort_by_key(|r| r.metadata.id); + UploadFile { task_id, reports } + } + + /// The DAP UploadRequest it carries. + pub fn upload(&self) -> Vec { + encode_upload(&self.reports) + } + + pub fn encode(&self) -> Vec { + let up = self.upload(); + let mut o = UPLOAD_MAGIC.to_vec(); + o.push(VERSION); + o.extend_from_slice(&self.task_id); + o.extend_from_slice(&(up.len() as u32).to_be_bytes()); + o.extend_from_slice(&up); + o + } + + pub fn ids(&self) -> Vec<[u8; 16]> { + self.reports.iter().map(|r| r.metadata.id).collect() + } + + /// Read an upload file (§6.4); `upload_malformed` otherwise. + pub fn parse(b: &[u8]) -> Result { + if b.len() > MAX_UPLOAD { + return Err(UPLOAD_MALFORMED); + } + let mut c = Cur { b, p: 0 }; + let (task_id, up) = (|| -> Option<([u8; 32], &[u8])> { + if c.take(4)? != UPLOAD_MAGIC || c.u8()? != VERSION { + return None; + } + let task_id = c.arr32()?; + let n = c.u32_be()? as usize; + Some((task_id, c.take(n)?)) + })() + .ok_or(UPLOAD_MALFORMED)?; + if c.p != b.len() { + return Err(UPLOAD_MALFORMED); + } + let reports = decode_upload(up).map_err(|_| UPLOAD_MALFORMED)?; + if reports.is_empty() || !reports.windows(2).all(|w| w[0].metadata.id < w[1].metadata.id) { + return Err(UPLOAD_MALFORMED); + } + Ok(UploadFile { task_id, reports }) + } +} + +/// A relay's merge of files of one task (§6.4): one file of every report, ascending by id, +/// two of one id with equal bytes being one; a report whose id another of other bytes holds +/// goes to a further file, so each is forwarded and the leader keeps the first. +pub fn merge(files: &[UploadFile]) -> Vec { + let task_id = files.first().map_or([0; 32], |f| f.task_id); + let mut out: Vec> = Vec::new(); + for r in files.iter().flat_map(|f| f.reports.iter()) { + let mut placed = false; + for o in out.iter_mut() { + match o.iter().find(|x| x.metadata.id == r.metadata.id) { + Some(x) if x == r => { + placed = true; + break; + } + Some(_) => continue, + None => { + o.push(r.clone()); + placed = true; + break; + } + } + } + if !placed { + out.push(vec![r.clone()]); + } + } + out.iter().map(|rs| UploadFile::of(task_id, rs)).collect() +} + +/// DAP's UploadErrors (§4.4.2.2): each refused report's id and error, in request order, to +/// the message's end. +pub fn encode_upload_errors(errors: &[([u8; 16], u8)]) -> Vec { + errors.iter().flat_map(|(id, e)| id.iter().copied().chain([*e])).collect() +} + +/// Read an UploadErrors body; `None` when it is not a whole number of entries. +pub fn read_upload_errors(b: &[u8]) -> Option> { + if !b.len().is_multiple_of(17) { + return None; + } + Some(b.chunks(17).map(|c| (c[..16].try_into().expect("16 bytes"), c[16])).collect()) +} + +/// The entries of a response to a merged file whose ids are `file`'s, in order: what a relay +/// gives the receiver of `file` (§6.4). +pub fn share_of(response: &[u8], file: &UploadFile) -> Vec { + let ids: BTreeSet<[u8; 16]> = file.ids().into_iter().collect(); + let entries = read_upload_errors(response).unwrap_or_default(); + encode_upload_errors(&entries.into_iter().filter(|(id, _)| ids.contains(id)).collect::>()) +} + +/// Whether a report is sent before its deadline or after (§6.5). +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Class { + Timely, + Late, +} + +impl Class { + pub fn label(self) -> &'static str { + match self { + Class::Timely => "timely", + Class::Late => "late", + } + } +} + +/// An upload plan (§6.5). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Plan { + pub send: Vec<([u8; 16], Class)>, + pub defer: Vec<[u8; 16]>, + pub drop: Vec<[u8; 16]>, + /// The `WIU1` of `send` in ascending id order; `None` when `send` is empty. + pub file: Option>, +} + +/// A report's deadline (§6.5), in milliseconds: the earliest instant the hold allows a batch +/// holding its time `tau` to be collected, `((tau + 1) · time_precision + hold_s) · 1000`. +pub fn deadline_ms(time_precision: u64, hold_s: u32, tau: u64) -> u64 { + tau.saturating_add(1).saturating_mul(time_precision).saturating_add(hold_s as u64).saturating_mul(1000) +} + +/// §6.5's order: timely before late; within each, ascending deadline, then ascending id. +fn sending_order(v: &mut [(Class, u64, [u8; 16], T)]) { + v.sort_by_key(|x| (x.0 == Class::Late, x.1, x.2)); +} + +/// §6.5: which stored reports to send at `t_ms` within `budget` bytes (none for no limit). +pub fn plan(task: &Accepted, stored: &[Report], t_ms: u64, budget: Option) -> Plan { + let flight = task.interval(); + let retention_ms = task.retention_s().saturating_mul(1000); + let mut drop = Vec::new(); + let mut kept: Vec<(Class, u64, [u8; 16], &Report)> = Vec::new(); + for r in stored { + let tau = r.metadata.time; + if !flight.contains(tau) || t_ms >= retention_ms { + drop.push(r.metadata.id); + continue; + } + let d = deadline_ms(task.task.config.time_precision, task.catalogue.hold_s, tau); + kept.push((if t_ms < d { Class::Timely } else { Class::Late }, d, r.metadata.id, r)); + } + drop.sort(); + sending_order(&mut kept); + let mut used = UPLOAD_OVERHEAD; + let mut send = Vec::new(); + let mut taken = Vec::new(); + let mut defer = Vec::new(); + let mut full = false; + for (class, _, id, r) in kept { + let len = r.encode().len() as u64; + if !full && budget.is_none_or(|b| used + len <= b) { + used += len; + send.push((id, class)); + taken.push(r.clone()); + } else { + full = true; + defer.push(id); + } + } + let file = (!taken.is_empty()).then(|| UploadFile::of(task.task.id, &taken).encode()); + Plan { send, defer, drop, file } +} + +/// What a receiver does with each report of a file it sent (§6.6). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Settled { + /// Whether the response settled anything. + pub settles: bool, + pub delete: Vec<[u8; 16]>, + pub keep: Vec<[u8; 16]>, +} + +/// §6.6: settle a sent file against the response's body. +pub fn settle(sent: &UploadFile, response: &[u8]) -> Settled { + let ids = sent.ids(); + let nothing = Settled { settles: false, delete: vec![], keep: ids.clone() }; + let Some(entries) = read_upload_errors(response) else { return nothing }; + let mut at = 0usize; + for (id, _) in &entries { + match ids[at..].iter().position(|x| x == id) { + Some(k) => at += k + 1, + None => return nothing, + } + } + let (mut delete, mut keep) = (Vec::new(), Vec::new()); + for id in ids { + match entries.iter().find(|(x, _)| *x == id).map(|(_, e)| *e) { + None => delete.push(id), + Some(report_error::REPORT_TOO_EARLY) => keep.push(id), + Some(e) if (report_error::BATCH_COLLECTED..=report_error::UNSUPPORTED_EXTENSION).contains(&e) => delete.push(id), + Some(_) => keep.push(id), + } + } + Settled { settles: true, delete, keep } +} + +// ───────────────────────────── §7: the report token ───────────────────────────── + +/// A report token's redemption context (§7.2): SHA-256 of the domain, the task id and the +/// report id. +pub fn redemption_context(task_id: &[u8; 32], report_id: &[u8; 16]) -> [u8; 32] { + sha256(&[ATTEST_DOMAIN, task_id, report_id]) +} + +/// §7.2: a report token reads as a token of type 0x0002, answers the TokenChallenge of its +/// task and report id with the catalogue's issuer, names a key of the catalogue, and +/// verifies under it; `attestation_invalid` otherwise. +pub fn check_token(task_id: &[u8; 32], report_id: &[u8; 16], cat: &Catalogue, data: &[u8]) -> Result<(), &'static str> { + let t = ap::read_token(data).ok_or(ATTESTATION_INVALID)?; + let challenge = ap::token_challenge(token_type::BLIND_RSA, &cat.terms.issuer, &redemption_context(task_id, report_id)); + if t.token_type != token_type::BLIND_RSA || t.challenge_digest != sha256(&[&challenge]) || !ap::issuer_verifies(&[cat.issuer()], &cat.terms.issuer, &t) { + return Err(ATTESTATION_INVALID); + } + Ok(()) +} + +/// What an aggregator of an impression task accepts of a report's extensions (§7.2): no +/// public extension; without attest, no private one; with it, exactly one report token whose +/// check passes. +pub struct TokenRule<'a> { + pub task_id: [u8; 32], + pub catalogue: &'a Catalogue, +} + +impl ReportRule for TokenRule<'_> { + fn extensions(&self, m: &ReportMetadata, private: &Extensions) -> Result<(), (u8, Option<&'static str>)> { + let invalid = report_error::INVALID_MESSAGE; + if !m.public_extensions.is_empty() { + return Err((invalid, None)); + } + if !self.catalogue.attested() { + return if private.is_empty() { Ok(()) } else { Err((invalid, None)) }; + } + let [(t, data)] = private.as_slice() else { return Err((invalid, Some(ATTESTATION_ABSENT))) }; + if *t != TOKEN_EXTENSION { + return Err((invalid, Some(ATTESTATION_ABSENT))); + } + check_token(&self.task_id, &m.id, self.catalogue, data).map_err(|r| (invalid, Some(r))) + } +} + +// ───────────────────────────── §8: verification ───────────────────────────── + +/// A refusal: its code and where it is raised. +pub type Refusal = (&'static str, &'static str); + +/// An accepted receipt of an impression task (§8.1). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Verified { + /// telemetry-aggregation §8.2's outcome. + pub receipt: receipt::Accepted, + /// Whether §8.1 step 11 ran over the batch's reports. + pub reports_checked: bool, + /// The receipt's TaskConfiguration, by its bytes. + pub task: Vec, +} + +/// §8.1 step 13: each element of the result is at most the report count, and the elements' +/// sum, as integers, is the report count. +pub fn counts_hold(result: &[u128], report_count: u64) -> bool { + let n = report_count as u128; + if result.iter().any(|&x| x > n) { + return false; + } + result.iter().try_fold(0u128, |a, &x| a.checked_add(x)) == Some(n) +} + +/// §8.1: verify a receipt of an impression task against its catalogue, with the batch's +/// reports where they are given. +pub fn verify_receipt(bytes: &[u8], reports: Option<&[GivenReport]>, catalogue: &[u8]) -> Result { + let cat = Catalogue::parse(catalogue).map_err(|r| (r, "catalogue"))?; + let a = receipt::verify_with(bytes, reports, &|t| check_task(t, &cat))?; + let rc = Receipt::decode(bytes).expect("a receipt that verified reads"); + let cfg = TaskConfig::decode(&rc.task).expect("a task that met §5.3 reads"); + // 12. The batch falls within the flight. + let flight = cfg.task_interval().expect("an impression task has a task_interval"); + if !a.batch.within(&flight) { + return Err((QoeReason::BatchInvalid.code(), "leader")); + } + // 13. The counts. + if !counts_hold(&a.result, a.report_count) { + return Err((COUNT_MISMATCH, "result")); + } + Ok(Verified { receipt: a, reports_checked: reports.is_some(), task: rc.task }) +} + +/// A row of a table (§8.2): one creative and one column. A receipt's row is at most its u64 +/// report count; a total row is held in u128, where it is exact (§8.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Row { + pub creative: usize, + pub column: usize, + /// The sum of its five cells. + pub presentations: u128, + /// The presentations at quartile at least 1, 2, 3, 4 and 5. + pub quartiles: [u128; 5], + /// `presentations` ≥ 50. + pub floor_met: bool, +} + +/// The rows of a result that §8.1 step 13 holds, every creative and column in catalogue +/// order, `other` last. +pub fn rows(cat: &Catalogue, result: &[u128]) -> Vec { + let mut out = Vec::new(); + for creative in 0..cat.creatives.len() { + for column in 0..cat.columns() { + let n: Vec = (1..=5u8).map(|q| result.get(cat.cell(creative, column, q)).copied().unwrap_or(0)).collect(); + let mut quartiles = [0u128; 5]; + for (k, slot) in quartiles.iter_mut().enumerate() { + *slot = n[k..].iter().sum(); + } + let presentations = quartiles[0]; + out.push(Row { creative, column, presentations, quartiles, floor_met: presentations >= u128::from(ROW_FLOOR) }); + } + } + out +} + +/// A receipt's verdict in a table (§8.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Verdict { + Stands, + SetAside(&'static str), + Refused(&'static str, &'static str), +} + +impl Verdict { + pub fn label(&self) -> String { + match self { + Verdict::Stands => "stands".into(), + Verdict::SetAside(r) => format!("set-aside reason={r}"), + Verdict::Refused(r, at) => format!("refuse reason={r} at={at}"), + } + } +} + +/// A standing receipt's figures (§8.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Standing { + pub batch: Interval, + pub from_ms: u64, + pub to_ms: u64, + pub collectable_from_ms: u64, + pub report_count: u64, + pub reports_checked: bool, + pub rows: Vec, +} + +/// One receipt of a table, in the order given. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Entry { + pub digest: Option<[u8; 32]>, + pub verdict: Verdict, + pub standing: Option, +} + +/// The totals over the standing receipts, each counted once: empty when none stands. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Totals { + pub rows: Vec, + pub batches: Vec, + pub reports_checked: bool, +} + +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Table { + pub entries: Vec, + pub totals: Totals, +} + +/// §8.2: the table of an impression task's receipts. +pub fn table(catalogue: &[u8], task: &[u8], receipts: &[(Vec, Option>)]) -> Result { + // 1. The catalogue and the task. + let cat = Catalogue::parse(catalogue)?; + let t = check_task(task, &cat)?; + let tp = t.config.time_precision; + // 2. Each receipt, in order. + let mut entries: Vec = Vec::new(); + let mut accepted: Vec<(usize, Verified)> = Vec::new(); + for (k, (b, reps)) in receipts.iter().enumerate() { + let digest = Receipt::decode(b).ok().map(|r| r.digest()); + let v = verify_receipt(b, reps.as_deref(), catalogue).and_then(|v| if v.task == task { Ok(v) } else { Err((QoeReason::TaskMismatch.code(), "task")) }); + match v { + Ok(v) => { + entries.push(Entry { digest, verdict: Verdict::Stands, standing: None }); + accepted.push((k, v)); + } + Err((r, at)) => entries.push(Entry { digest, verdict: Verdict::Refused(r, at), standing: None }), + } + } + // 3. One receipt per digest; overlapping batches set aside, both. + let mut distinct: Vec<(usize, Interval, [u8; 32])> = Vec::new(); + for (k, v) in &accepted { + if !distinct.iter().any(|d| d.2 == v.receipt.digest) { + distinct.push((*k, v.receipt.batch, v.receipt.digest)); + } + } + let mut order: Vec = (0..distinct.len()).collect(); + order.sort_by(|&a, &b| (distinct[a].1.start, distinct[a].2).cmp(&(distinct[b].1.start, distinct[b].2))); + let mut aside: BTreeSet<[u8; 32]> = BTreeSet::new(); + let end = |i: &Interval| i.start.saturating_add(i.duration); + let mut max_end = 0u64; + for (n, &a) in order.iter().enumerate() { + let i = distinct[a].1; + if n > 0 && max_end > i.start { + aside.insert(distinct[a].2); + } + if let Some(&b) = order.get(n + 1) + && distinct[b].1.start < end(&i) + { + aside.insert(distinct[a].2); + } + max_end = max_end.max(end(&i)); + } + // 4. What is left stands. A receipt given more than once is checked when any occurrence + // was: each is the same bytes, and §8.1 accepted the one given with its reports. + let checked: BTreeSet<[u8; 32]> = accepted.iter().filter(|(_, v)| v.reports_checked).map(|(_, v)| v.receipt.digest).collect(); + let mut totals: Option = None; + let mut counted: BTreeSet<[u8; 32]> = BTreeSet::new(); + for (k, v) in &accepted { + let a = &v.receipt; + if aside.contains(&a.digest) { + entries[*k].verdict = Verdict::SetAside(RECEIPTS_OVERLAP); + continue; + } + let rs = rows(&cat, &a.result); + let to_s = end(&a.batch).saturating_mul(tp); + entries[*k].standing = Some(Standing { + batch: a.batch, + from_ms: a.batch.start.saturating_mul(tp).saturating_mul(1000), + to_ms: to_s.saturating_mul(1000), + collectable_from_ms: to_s.saturating_add(cat.hold_s as u64).saturating_mul(1000), + report_count: a.report_count, + reports_checked: v.reports_checked, + rows: rs.clone(), + }); + if !counted.insert(a.digest) { + continue; + } + // Exact: the standing batches share no time unit, so there are fewer than 2^27 of them + // (§5.3's bound on the retention instant), each element at most a u64 count: every + // total is below 2^91. + let t = totals.get_or_insert_with(|| Totals { rows: rows(&cat, &[]), batches: vec![], reports_checked: true }); + for (x, y) in t.rows.iter_mut().zip(&rs) { + x.presentations += y.presentations; + for (s, d) in x.quartiles.iter_mut().zip(y.quartiles) { + *s += d; + } + x.floor_met = x.presentations >= u128::from(ROW_FLOOR); + } + t.batches.push(a.batch); + t.reports_checked &= checked.contains(&a.digest); + } + Ok(Table { entries, totals: totals.unwrap_or(Totals { rows: vec![], batches: vec![], reports_checked: true }) }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::live_ads::presentation::{require, rule}; + + fn cat(regions: &[&str], creatives: usize) -> Catalogue { + Catalogue { + terms: Requirement { require: require::CLAIM, rule: rule::VIDEO, token_type: 0, issuer: vec![] }, + hold_s: 3600, + signers: vec![[7; 32]], + creatives: (0..creatives as u8).map(|i| [i; 32]).collect(), + regions: regions.iter().map(|r| r.as_bytes().to_vec()).collect(), + keys: vec![], + } + } + + #[test] + fn the_cell_index_round_trips() { + let c = cat(&["XA", "XB-1"], 2); + assert_eq!(c.cells(), 30); + let mut seen = BTreeSet::new(); + for i in 0..2 { + for j in 0..3 { + for q in 1..=5u8 { + let cell = c.cell(i, j, q); + assert!(cell < c.cells()); + assert_eq!(c.uncell(cell), (i, j, q)); + assert!(seen.insert(cell)); + } + } + } + assert_eq!(seen.len(), 30); + } + + #[test] + fn a_region_has_one_column_of_every_form() { + let c = cat(&["XA", "XB-1"], 1); + let col = |r: Option<&str>| c.column(r.map(str::as_bytes)); + assert_eq!(col(Some("XA")), 0); + assert_eq!(col(Some("XA-7")), 0, "a subdivision of a listed country"); + assert_eq!(col(Some("XB-1")), 1); + assert_eq!(col(Some("XB")), 2, "a country is never held by its subdivision"); + assert_eq!(col(Some("XB-2")), 2); + assert_eq!(col(Some("XB-1-A")), 2, "not a code"); + assert_eq!(col(Some("xa")), 2); + assert_eq!(col(Some("")), 2); + assert_eq!(col(None), 2); + assert_eq!(c.column_name(1), "XB-1"); + assert_eq!(c.column_name(2), "other"); + let none = cat(&[], 1); + assert_eq!(none.column(Some(b"XA")), 0, "with no region listed, every receiver is other"); + } + + #[test] + fn the_chunk_length_at_perfect_squares() { + for n in [1usize, 4, 9, 16, 25, 36, 64, 4096] { + let r = (1..=64).find(|x| x * x == n).unwrap(); + assert_eq!(ceil_sqrt(n), r); + assert_eq!(ceil_sqrt(n + 1), r + 1); + assert_eq!(ceil_sqrt(n - 1), if n == 1 { 0 } else { r }); + } + assert_eq!(ceil_sqrt(30), 6); + assert_eq!(ceil_sqrt(5), 3); + assert_eq!(ceil_sqrt(4095), 64); + } + + fn cfg(start: u64, duration: u64, tp: u64) -> TaskConfig { + TaskConfig { + task_info: vec![], + leader: vec![1], + helper: vec![1], + time_precision: tp, + min_batch_size: 50, + batch_mode: 1, + batch_config: vec![], + vdaf_type: ID_HISTOGRAM, + vdaf_config: vec![], + extensions: vec![(EXT_TASK_INTERVAL, Interval { start, duration }.encode())], + } + } + + #[test] + fn the_retention_instant_at_its_bound_and_past_overflow() { + assert_eq!(retention_s(&cfg(70_389_503, 24, 3600), 3599), Some(LAST_INSTANT_S)); + assert_eq!(retention_s(&cfg(70_389_503, 25, 3600), 3599), Some(LAST_INSTANT_S + 3600)); + assert_eq!(retention_s(&cfg(u64::MAX - 10, 5, 3600), 0), None, "the product overflows"); + assert_eq!(retention_s(&cfg(u64::MAX - 1, 5, 3600), 0), None, "the sum overflows"); + assert_eq!(retention_s(&cfg(0, u64::MAX - 5, 1), 10), None, "the hold overflows"); + let mut c = cfg(0, 1, 3600); + c.extensions.clear(); + assert_eq!(retention_s(&c, 1), None, "no task_interval"); + } + + #[test] + fn the_deadline_at_the_flights_last_hour() { + let c = cfg(498_192, 24, 3600); + let last = 498_192 + 24 - 1; + assert_eq!(deadline_ms(3600, 21_600, last), retention_s(&c, 21_600).unwrap() * 1000, "the last hour's deadline is the retention instant"); + assert_eq!(deadline_ms(3600, 21_600, last - 1), (retention_s(&c, 21_600).unwrap() - 3600) * 1000); + assert_eq!(deadline_ms(3600, 21_600, 498_192), (498_193 * 3600 + 21_600) * 1000, "the first hour's"); + } + + #[test] + fn settle_on_every_dap_error_value() { + let f = UploadFile { task_id: [0; 32], reports: vec![] }; + assert_eq!(settle(&f, &[]), Settled { settles: true, delete: vec![], keep: vec![] }); + let id = [5u8; 16]; + let one = |e: u8| { + let mut b = id.to_vec(); + b.push(e); + b + }; + let r = Report { + metadata: ReportMetadata { id, time: 1, public_extensions: vec![] }, + public_share: vec![], + leader_share: crate::telemetry_aggregate::dap::HpkeCiphertext { config_id: 1, enc: vec![1], payload: vec![1] }, + helper_share: crate::telemetry_aggregate::dap::HpkeCiphertext { config_id: 2, enc: vec![1], payload: vec![1] }, + }; + let f = UploadFile { task_id: [0; 32], reports: vec![r] }; + for e in 0..=255u8 { + let s = settle(&f, &one(e)); + assert!(s.settles); + let deleted = (1..=10).contains(&e) && e != 8; + assert_eq!(s.delete.len(), deleted as usize, "error {e}"); + assert_eq!(s.keep.len(), !deleted as usize, "error {e}"); + } + assert_eq!(settle(&f, &[]).delete, vec![id], "no entry: accepted"); + assert!(!settle(&f, &one(2)[..16]).settles, "a truncated body settles nothing"); + let mut foreign = one(2); + foreign[0] ^= 1; + assert!(!settle(&f, &foreign).settles); + assert!(!settle(&f, &[one(2), one(2)].concat()).settles, "an id twice is no subsequence"); + } + + #[test] + fn the_integer_sum_at_a_wrapped_element() { + use crate::telemetry_aggregate::field::{Field, F128}; + assert!(counts_hold(&[3, 0, 2], 5)); + assert!(!counts_hold(&[3, 0, 3], 5), "a sum past the count"); + assert!(!counts_hold(&[6, 0, 0], 5), "an element past the count"); + let wrapped = F128::MODULUS - 1; + assert!(!counts_hold(&[4, wrapped, 2], 5), "the field's sum is 5; the integers' is not"); + assert!(!counts_hold(&[u128::MAX, 1], 0)); + } + + #[test] + fn the_plan_orders_timely_first_then_deadline_then_id() { + let mut v = vec![ + (Class::Late, 1, [9u8; 16], ()), + (Class::Timely, 7, [3u8; 16], ()), + (Class::Timely, 7, [1u8; 16], ()), + (Class::Timely, 5, [8u8; 16], ()), + (Class::Late, 1, [2u8; 16], ()), + ]; + sending_order(&mut v); + let got: Vec<(Class, u8)> = v.iter().map(|x| (x.0, x.2[0])).collect(); + assert_eq!(got, vec![(Class::Timely, 8), (Class::Timely, 1), (Class::Timely, 3), (Class::Late, 2), (Class::Late, 9)]); + } + + #[test] + fn the_codes_are_distinct_and_the_capability_is_the_measures() { + let all: BTreeSet<&str> = CODES.iter().chain(REUSED.iter()).copied().collect(); + assert_eq!(all.len(), CODES.len() + REUSED.len()); + assert_eq!(measure::name(MEASURE), Some("impressions")); + } +} diff --git a/wai/wai-rs/src/impression_aggregate/corpus.rs b/wai/wai-rs/src/impression_aggregate/corpus.rs new file mode 100644 index 000000000..31b94ffed --- /dev/null +++ b/wai/wai-rs/src/impression_aggregate/corpus.rs @@ -0,0 +1,2303 @@ +//! The conformance corpus of extensions/impression-aggregates.md §11: +//! `live-conformance/impressions/vectors.json`. +//! +//! [`generate`] writes it from fixed seeds: every Ed25519 key, salt, report id, Prio3 +//! randomness, HPKE ephemeral seed, token nonce and token salt is SHA-256 of this corpus's +//! label and a name; Ed25519, HPKE with a derived ephemeral key and the RSASSA-PSS of RFC 9578 +//! §6 over a given salt are deterministic; instants are constants; the manifests are written +//! here as text. The issuer key is RFC 9578 Appendix A.2's first test vector, as the +//! presentation corpora use it. Regions are ISO 3166-1 user-assigned codes and their +//! subdivisions, and origins are reserved example domains, so nothing here names a place or a +//! party. Every report of a flow is a contribution of a claim the generator signs, and the +//! reference aggregators of `telemetry_aggregate::aggregator` run every flow. Each case states +//! the outcome it was written to have, which the generator asserts. +//! +//! [`verify`] checks a corpus file against this module; [`equivalence`] checks that each +//! standing receipt's result is its contributions' plaintext tally, and that stitched +//! presentation's own count of the flight's claims is the table's. +//! `live-conformance/impression_aggregate_verify.py` checks the same file from the +//! extension's text, sharing no code with this module. + +use std::collections::BTreeMap; + +use ed25519_dalek::SigningKey; +use serde_json::{json, Value}; +use sha2::Digest; + +use super::*; +use crate::key_log::{commitment, AnchorPath, EntryStatus, KeyEntry}; +use crate::live_ads::presentation::{geometry, require, rule, span_flag, CreativeObject, Span}; +use crate::live_ads::presentation_corpus::{ISSUER_D, ISSUER_N, ISSUER_NAME, RFC9578_PKI}; +use crate::stitched_presentation::{carriage, id_kind, price_source, response_format, Frame, Marker, PodAd, StitchedClaim}; +use crate::telemetry_aggregate::aggregator::{collector_open, Aggregator, Helper, Keys, Leader, Outcome}; +use crate::telemetry_aggregate::corpus::verify_key; +use crate::telemetry_aggregate::dap::{ + report_checksum, xor32, AggregateShareReq, CollectionJobReq, CollectionJobResp, BATCH_LEADER_SELECTED, BATCH_TIME_INTERVAL, + ROLE_HELPER, ROLE_LEADER, +}; +use crate::telemetry_aggregate::field::{decode_vec, encode_vec, vec_add, Field, F128}; +use crate::telemetry_aggregate::receipt::Statement; + +const LABEL: &[u8] = b"wai:impression-aggregates/corpus/"; +/// 2026-11-01T00:00:00Z: the flight's start. +const START_S: u64 = 1_793_491_200; +const TP: u64 = 3600; +/// The flight's first hour, in `time_precision` units. +const H0: u64 = START_S / TP; +const HOURS: u64 = 24; +const START_MS: u64 = START_S * 1000; +const HOUR_MS: u64 = TP * 1000; +const ORIGIN: &str = "https://tasks.example"; +const STRANGER_ORIGIN: &str = "https://stranger.example"; +const LOG_TIME: &str = "2026-10-30T00:00:00Z"; +const REVOKED_AT: &str = "2026-11-01T13:00:00Z"; +const COMPROMISED: &str = "2026-11-01T12:00:00Z"; +const FETCHED_AT: &str = "2026-10-31T00:00:00Z"; +const LEADER_URL: &[u8] = b"https://leader.example/dap/"; +const HELPER_URL: &[u8] = b"https://helper.example/dap/"; +const SCHEME: &[u8] = b"urn:example:impressions:2026"; +/// The flight catalogue's hold, and the open one's. +const FLIGHT_HOLD: u32 = 21_600; +const OPEN_HOLD: u32 = 3_600; +/// The first hour of the task whose retention instant is the last instant exactly. +const BOUND_START: u64 = 70_389_503; + +fn seed(parts: &[&[u8]]) -> [u8; 32] { + let mut v = vec![LABEL]; + v.extend_from_slice(parts); + sha256(&[&v.join(&0u8)]) +} + +fn stream(parts: &[&[u8]], n: usize) -> Vec { + let base = seed(parts); + let mut out = Vec::with_capacity(n + 32); + let mut i = 0u32; + while out.len() < n { + out.extend_from_slice(&sha256(&[&base, &i.to_be_bytes()])); + i += 1; + } + out.truncate(n); + out +} + +fn id16(parts: &[&[u8]]) -> [u8; 16] { + seed(parts)[..16].try_into().expect("16 bytes") +} + +fn key(name: &str) -> SigningKey { + SigningKey::from_bytes(&seed(&[b"sign", name.as_bytes()])) +} + +fn pk(k: &SigningKey) -> [u8; 32] { + k.verifying_key().to_bytes() +} + +fn hex(b: &[u8]) -> String { + b.iter().map(|x| format!("{x:02x}")).collect() +} + +fn unhex(s: &str) -> Option> { + if !s.len().is_multiple_of(2) { + return None; + } + (0..s.len()).step_by(2).map(|i| u8::from_str_radix(s.get(i..i + 2)?, 16).ok()).collect() +} + +fn hx(v: &Value) -> Vec { + v.as_str().and_then(unhex).unwrap_or_default() +} + +fn arr(v: &Value) -> [u8; N] { + hx(v).try_into().unwrap_or([0; N]) +} + +fn ids_json(ids: &[[u8; 16]]) -> Value { + Value::Array(ids.iter().map(|i| Value::String(hex(i))).collect()) +} + +fn interval_json(i: &Interval) -> Value { + json!({"start": i.start, "duration": i.duration}) +} + +// ───────────────────────────── the world ───────────────────────────── + +struct World { + root: SigningKey, + next: SigningKey, + t1: SigningKey, + t2: SigningKey, + d1: SigningKey, + s_root: SigningKey, + s_next: SigningKey, + s1: SigningKey, + stitcher: SigningKey, + stranger_stitcher: SigningKey, + leader: Keys, + helper: Keys, + collector: HpkeConfig, + collector_sk: [u8; 32], + collector_sign: SigningKey, + stranger: SigningKey, + verify_key_seed: [u8; 32], +} + +fn x25519(name: &str, id: u8) -> (HpkeConfig, [u8; 32]) { + let (sk, pkey) = crate::hpke::derive_key_pair(&seed(&[b"hpke", name.as_bytes()])); + (HpkeConfig { id, kem: crate::hpke::KEM_X25519_HKDF_SHA256, kdf: crate::hpke::KDF_HKDF_SHA256, aead: crate::hpke::AEAD_AES_128_GCM, public_key: pkey.to_vec() }, sk) +} + +/// A configuration of another suite (DHKEM(P-256, HKDF-SHA256)) that no receiver here seals +/// to: its key is 65 bytes of a seed, never used. +fn p256(name: &str, id: u8) -> HpkeConfig { + let mut key = vec![4u8]; + key.extend_from_slice(&stream(&[b"p256", name.as_bytes()], 64)); + HpkeConfig { id, kem: 0x0010, kdf: crate::hpke::KDF_HKDF_SHA256, aead: crate::hpke::AEAD_AES_128_GCM, public_key: key } +} + +fn world() -> World { + let (lh, lsk) = x25519("leader", 1); + let (hh, hsk) = x25519("helper", 2); + let (ch, csk) = x25519("collector", 3); + World { + root: key("log-root"), + next: key("log-next"), + t1: key("task-key-1"), + t2: key("task-key-2"), + d1: key("delivery-key"), + s_root: key("stranger-log-root"), + s_next: key("stranger-log-next"), + s1: key("stranger-task-key"), + stitcher: key("stitcher"), + stranger_stitcher: key("stranger-stitcher"), + leader: Keys { hpke: lh, hpke_sk: lsk, signing: key("leader") }, + helper: Keys { hpke: hh, hpke_sk: hsk, signing: key("helper") }, + collector: ch, + collector_sk: csk, + collector_sign: key("collector"), + stranger: key("stranger-statements"), + verify_key_seed: seed(&[b"verify-key-seed"]), + } +} + +// ───────────────────────────── creatives, manifests, records, claims ───────────────────────────── + +fn creative(n: u8, durations: &[u32]) -> Creative { + Creative { + objects: durations.iter().enumerate().map(|(j, &d)| CreativeObject { content_hash: seed(&[b"object", &[n], &[j as u8]]), duration_ms: d }).collect(), + } +} + +fn event(id: &str) -> Marker { + Marker::Event { period: b"p0".to_vec(), scheme: SCHEME.to_vec(), value: b"1".to_vec(), id: id.as_bytes().to_vec() } +} + +/// The DASH events: id, the ad identity in `messageData`. +const EVENTS: [(&str, &str); 7] = + [("71", "srv-a"), ("72", "srv-b"), ("73", "srv-a-session"), ("74", "srv-a-open"), ("75", "srv-a-stranger"), ("76", "srv-c"), ("77", "srv-a-flipped")]; + +fn mpd(events: &[(&str, &str)]) -> Vec { + let mut o = String::from( + "\n", + ); + for (k, (id, ad)) in events.iter().enumerate() { + o.push_str(&format!("", 600_000 + 60_000 * k as u64)); + } + o.push_str("\n"); + o.into_bytes() +} + +const HLS_START: &str = "2026-11-01T01:00:00.000Z"; + +fn playlist(a: &Creative) -> Vec { + let mut o = String::from("#EXTM3U\n#EXT-X-VERSION:7\n#EXT-X-TARGETDURATION:5\n#EXT-X-MEDIA-SEQUENCE:0\n#EXT-X-PROGRAM-DATE-TIME:2026-11-01T00:59:52.000Z\n"); + o.push_str("#EXTINF:4.000,\nprogram/0.m4s\n#EXTINF:4.000,\nprogram/1.m4s\n"); + o.push_str(&format!("#EXT-X-DATERANGE:ID=\"hls-a\",CLASS=\"urn:example:ad\",START-DATE=\"{HLS_START}\",DURATION=15.000,X-AD-ID=\"srv-a-hls\"\n#EXT-X-DISCONTINUITY\n")); + for ob in &a.objects { + o.push_str(&format!("#EXTINF:{}.{:03},\nads/{}.m4s\n", ob.duration_ms / 1000, ob.duration_ms % 1000, hex(&ob.content_hash))); + } + o.push_str("#EXT-X-DISCONTINUITY\n#EXTINF:4.000,\nprogram/2.m4s\n"); + o.into_bytes() +} + +fn flight_terms() -> Requirement { + Requirement { require: require::CLAIM | require::ATTEST, rule: rule::CROSS_MEDIA, token_type: token_type::BLIND_RSA, issuer: ISSUER_NAME.to_vec() } +} + +fn open_terms() -> Requirement { + Requirement { require: require::CLAIM, rule: rule::VIDEO, token_type: 0, issuer: vec![] } +} + +/// A record and what a claim of each of its ads is written from. +struct Rec { + name: &'static str, + bytes: Vec, + manifest: &'static str, + ads: Vec<(Marker, &'static str, Creative)>, + about: &'static str, +} + +#[allow(clippy::too_many_arguments)] +fn record( + name: &'static str, + about: &'static str, + car: u8, + session: [u8; 16], + id_attr: &str, + terms: Requirement, + manifest: &'static str, + ads: Vec<(Marker, &'static str, Creative)>, + signer: &SigningKey, +) -> Rec { + let p = PodInput { + carriage: car, + session, + avail_id: format!("brk-{name}").into_bytes(), + avail_ms: 30_000, + response_format: response_format::VAST, + response: seed(&[b"response", name.as_bytes()]), + id_kind: id_kind::SERVING_ID, + id_attr: id_attr.as_bytes().to_vec(), + currency: *b"USD", + exponent: 2, + frame: Frame::FULL, + requirement: terms, + ads: ads + .iter() + .enumerate() + .map(|(k, (m, ad, c))| PodAd { + slot: k as u8, + marker: m.digest(), + ad_id: ad.as_bytes().to_vec(), + serving_id: ad.as_bytes().to_vec(), + creative_id: vec![], + registry: vec![], + creative_hash: c.digest(), + duration_ms: c.duration_ms() as u32, + price_micros: 2_000_000, + price_source: price_source::STATED, + evidence: [0; 32], + }) + .collect(), + signer: [0; 32], + sig: [0; 64], + } + .sign(signer); + Rec { name, bytes: p.to_bytes(), manifest, ads, about } +} + +fn span(start_ms: u32, length_ms: u32, visible_bp: u16, flags: u8) -> Span { + Span { start_ms, length_ms, visible_bp, flags } +} + +/// One span from the start, every pixel in view, audible. +fn cover(ms: u32) -> Vec { + vec![span(0, ms, 10_000, span_flag::AUDIBLE)] +} + +/// The coverage of a 15-second creative that reaches quartile `q`, exactly at its mark. +fn quartile_cover(q: u8) -> Vec { + cover([3_000, 3_750, 7_500, 11_250, 15_000][q as usize - 1]) +} + +fn claim_of(marker: &Marker, ad_id: &str, manifest: &[u8], player: &SigningKey, c: &Creative, spans: &[Span]) -> Vec { + StitchedClaim { + carriage: marker.carriage(), + manifest: sha256(&[manifest]), + session: sp::session_of(&pk(player)), + creative_hash: c.digest(), + player: [0; 32], + geometry: geometry::AD, + share_bp: 10_000, + frames: ap::NOT_EXPOSED, + marker: marker.body().expect("a marker body"), + ad_id: ad_id.as_bytes().to_vec(), + objects: c.touched(spans), + spans: spans.to_vec(), + attestation: vec![], + sig: [0; 64], + } + .sign(player) + .to_bytes() +} + +/// A token of type 0x0002 for a report's challenge (§7.2), signed with RFC 9578's test issuer +/// key, its nonce and salt named by `label`. +fn mint(task_id: &[u8; 32], report_id: &[u8; 16], label: &[u8]) -> Vec { + let pki = unhex(RFC9578_PKI).expect("hex"); + let challenge = ap::token_challenge(token_type::BLIND_RSA, ISSUER_NAME, &redemption_context(task_id, report_id)); + let mut t = token_type::BLIND_RSA.to_be_bytes().to_vec(); + t.extend_from_slice(&seed(&[b"token-nonce", label])); + t.extend_from_slice(&sha256(&[&challenge])); + t.extend_from_slice(&sha256(&[&pki])); + let mut salt = [0u8; ap::PSS_SALT]; + salt.copy_from_slice(&sha2::Sha384::digest([LABEL, b"token-salt\x00", label].concat())); + let auth = ap::pss_sign(&unhex(ISSUER_N).expect("hex"), &unhex(ISSUER_D).expect("hex"), &t, &salt); + t.extend_from_slice(&auth); + t +} + +// ───────────────────────────── key logs ───────────────────────────── + +fn revision(origin: &str, root: &SigningKey, next: &SigningKey, parent: Option<&Revision>, issued_at: &str, keys: Vec) -> Revision { + let r = Revision { + origin: origin.into(), + seq: parent.map_or(0, |p| p.seq + 1), + prev: parent.map(Revision::revision_hash), + issued_at: issued_at.into(), + root: [0; 32], + next_root: commitment(&pk(next)), + keys, + revoked_modules: vec![], + grant_max_s: 86_400, + status_max_age_s: 3_600, + sig: [0; 64], + hybrid: None, + }; + Revision::seal(root, r).expect("a well-formed revision") +} + +fn anchor_json(a: &Anchor) -> Value { + let acquired = match &a.path { + AnchorPath::Fetched { acquired_at } | AnchorPath::TestPlaintext { acquired_at } => Value::String(acquired_at.clone()), + AnchorPath::Pinned => Value::Null, + }; + json!({"origin": a.origin, "revision": hex(&a.revision), "path": a.path.label(), "acquired_at": acquired, "pinned_revision": a.pinned_revision.map_or(Value::Null, |p| Value::String(hex(&p)))}) +} + +fn anchor_of(v: &Value) -> Option { + let origin = v["origin"].as_str()?; + let revision: [u8; 32] = unhex(v["revision"].as_str()?)?.try_into().ok()?; + let mut a = match v["path"].as_str()? { + "pinned" => Anchor::pinned(origin, revision), + "fetched" => Anchor::fetched(origin, revision, v["acquired_at"].as_str()?), + _ => return None, + }; + a.pinned_revision = v["pinned_revision"].as_str().and_then(unhex).and_then(|b| b.try_into().ok()); + Some(a) +} + +// ───────────────────────────── catalogues and tasks ───────────────────────────── + +fn pki() -> Vec { + unhex(RFC9578_PKI).expect("hex") +} + +fn der(tag: u8, content: &[u8]) -> Vec { + let mut o = vec![tag]; + match content.len() { + n if n < 0x80 => o.push(n as u8), + n if n < 0x100 => o.extend_from_slice(&[0x81, n as u8]), + n => o.extend_from_slice(&[0x82, (n >> 8) as u8, n as u8]), + } + o.extend_from_slice(content); + o +} + +/// An id-RSASSA-PSS SubjectPublicKeyInfo of RFC 9578 §6.5's form, with the test key's +/// parameters and exponent and a modulus of `n` (big-endian, its top bit set). +fn spki(n: &[u8]) -> Vec { + let p = pki(); + let alg_len = 2 + p[5] as usize; + let alg = &p[4..4 + alg_len]; + let mut int_n = vec![0u8]; + int_n.extend_from_slice(n); + let rsa = der(0x30, &[der(0x02, &int_n), der(0x02, &[1, 0, 1])].concat()); + let mut bits = vec![0u8]; + bits.extend_from_slice(&rsa); + der(0x30, &[alg.to_vec(), der(0x03, &bits)].concat()) +} + +/// A 2048-bit modulus named by `i`: the test key's, its last bytes replaced. +fn modulus(i: u8) -> Vec { + let mut n = unhex(ISSUER_N).expect("hex"); + let k = n.len(); + n[k - 8..].copy_from_slice(&seed(&[b"modulus", &[i]])[..8]); + n +} + +fn flight_catalogue(w: &World, a: &Creative, b: &Creative) -> Catalogue { + Catalogue { + terms: flight_terms(), + hold_s: FLIGHT_HOLD, + signers: vec![pk(&w.stitcher)], + creatives: vec![a.digest(), b.digest()], + regions: vec![b"XA".to_vec(), b"XB-1".to_vec()], + keys: vec![pki()], + } +} + +fn open_catalogue(w: &World, a: &Creative) -> Catalogue { + Catalogue { terms: open_terms(), hold_s: OPEN_HOLD, signers: vec![pk(&w.stitcher)], creatives: vec![a.digest()], regions: vec![], keys: vec![] } +} + +/// A TaskConfiguration with every field the corpus varies. +#[derive(Clone)] +struct Cfg { + measure: u8, + scope: [u8; 32], + salt: &'static str, + leader: [u8; 32], + helper: [u8; 32], + collector: [u8; 32], + tp: u64, + min_batch: u64, + batch_mode: u8, + extensions: Extensions, + vdaf_type: u32, + vdaf_config: Vec, +} + +fn flight_interval() -> Interval { + Interval { start: H0, duration: HOURS } +} + +impl Cfg { + fn of(w: &World, cat: &Catalogue, salt: &'static str) -> Cfg { + Cfg { + measure: MEASURE, + scope: cat.digest(), + salt, + leader: pk(&w.leader.signing), + helper: pk(&w.helper.signing), + collector: pk(&w.collector_sign), + tp: TP, + min_batch: 50, + batch_mode: BATCH_TIME_INTERVAL, + extensions: vec![(EXT_TASK_INTERVAL, flight_interval().encode())], + vdaf_type: ID_HISTOGRAM, + vdaf_config: super::histogram_config(cat.cells(), cat.chunk()), + } + } + fn with(&self, f: impl Fn(&mut Cfg)) -> Cfg { + let mut c = self.clone(); + f(&mut c); + c + } + fn config(&self) -> TaskConfig { + let info = TaskInfo { + measure: self.measure, + scope: self.scope, + salt: seed(&[b"salt", self.salt.as_bytes()])[..16].try_into().expect("16 bytes"), + leader: self.leader, + helper: self.helper, + collector: self.collector, + }; + TaskConfig { + task_info: info.encode(), + leader: LEADER_URL.to_vec(), + helper: HELPER_URL.to_vec(), + time_precision: self.tp, + min_batch_size: self.min_batch, + batch_mode: self.batch_mode, + batch_config: vec![], + vdaf_type: self.vdaf_type, + vdaf_config: self.vdaf_config.clone(), + extensions: self.extensions.clone(), + } + } + fn bytes(&self) -> Vec { + self.config().encode() + } +} + +fn task_file(task: &[u8], cat: &[u8], leader: &[HpkeConfig], helper: &[HpkeConfig], signer_id: &str, k: &SigningKey) -> TaskFile { + TaskFile { + task: task.to_vec(), + catalogue: cat.to_vec(), + leader_hpke: encode_hpke_list(leader), + helper_hpke: encode_hpke_list(helper), + signer: [0; 32], + signer_id: signer_id.into(), + sig: [0; 64], + } + .sign(k) +} + +// ───────────────────────────── fixtures ───────────────────────────── + +struct Fx { + w: World, + a: Creative, + b: Creative, + c: Creative, + manifests: Vec<(&'static str, Vec)>, + records: Vec, + cat_flight: Catalogue, + cat_open: Catalogue, + cat_bound: Catalogue, + rev0: Revision, + rev1: Revision, + stranger_rev: Revision, + pinned: Anchor, + fetched: Anchor, + cfg_flight: Cfg, + cfg_twin: Cfg, + cfg_open: Cfg, + tf_flight: Vec, + tf_open: Vec, + tf_twin: Vec, +} + +fn fixtures() -> Fx { + let w = world(); + let durations = [4_000, 4_000, 4_000, 3_000]; + let (c1, c2) = (creative(1, &durations), creative(2, &durations)); + // A is the creative of the lower digest, so it is the catalogue's first. + let (a, b) = if c1.digest() < c2.digest() { (c1, c2) } else { (c2, c1) }; + let c = creative(3, &[5_000, 5_000, 5_000]); + let manifests = vec![("mpd", mpd(&EVENTS)), ("mpd_short", mpd(&EVENTS[2..])), ("playlist", playlist(&a))]; + let ev = |k: usize| event(EVENTS[k].0); + let ad = |k: usize| EVENTS[k].1; + let shared = [0u8; 16]; + let dash = carriage::DASH_EVENT; + let hls_marker = Marker::DateRange { id: b"hls-a".to_vec(), start: HLS_START.as_bytes().to_vec() }; + let mut flipped = record("rec_flipped", "the flight's terms, ad A; one bit of the break's name flipped after signing", dash, shared, "messageData", flight_terms(), "mpd", vec![(ev(6), ad(6), a.clone())], &w.stitcher); + flipped.bytes[24] ^= 0x01; + let records = vec![ + record("rec_dash", "a break every viewer is shown, marked by DASH events: ads A and B under the flight's terms", dash, shared, "messageData", flight_terms(), "mpd", vec![(ev(0), ad(0), a.clone()), (ev(1), ad(1), b.clone())], &w.stitcher), + record("rec_hls", "a break every viewer is shown, marked by an HLS date range: ad A under the flight's terms", carriage::HLS_DATERANGE, shared, "X-AD-ID", flight_terms(), "playlist", vec![(hls_marker, "srv-a-hls", a.clone())], &w.stitcher), + record("rec_session", "a break decided for one session: ad A", dash, *b"session-decided!", "messageData", flight_terms(), "mpd", vec![(ev(2), ad(2), a.clone())], &w.stitcher), + record("rec_terms", "a break every viewer is shown, ad A, under the open catalogue's terms (video viewability, no attestation)", dash, shared, "messageData", open_terms(), "mpd", vec![(ev(3), ad(3), a.clone())], &w.stitcher), + record("rec_stranger", "the flight's terms, ad A, signed by a stitcher the catalogue does not list", dash, shared, "messageData", flight_terms(), "mpd", vec![(ev(4), ad(4), a.clone())], &w.stranger_stitcher), + record("rec_c", "the flight's terms, creative C, which the catalogue does not list", dash, shared, "messageData", flight_terms(), "mpd", vec![(ev(5), ad(5), c.clone())], &w.stitcher), + flipped, + ]; + let cat_flight = flight_catalogue(&w, &a, &b); + let cat_open = open_catalogue(&w, &a); + let cat_bound = Catalogue { hold_s: 3_599, ..cat_flight.clone() }; + let entry = |id: &str, k: &SigningKey, may: &[&str]| KeyEntry::active(id, pk(k), may); + let rev0 = revision( + ORIGIN, + &w.root, + &w.next, + None, + LOG_TIME, + vec![entry("t1", &w.t1, &[TASK_AUTHORITY]), entry("t2", &w.t2, &[TASK_AUTHORITY]), entry("d1", &w.d1, &["delivery"])], + ); + let revoked = KeyEntry { status: EntryStatus::Revoked, compromised_since: Some(COMPROMISED.into()), ..entry("t2", &w.t2, &[TASK_AUTHORITY]) }; + let rev1 = revision(ORIGIN, &w.root, &w.next, Some(&rev0), REVOKED_AT, vec![entry("t1", &w.t1, &[TASK_AUTHORITY]), revoked, entry("d1", &w.d1, &["delivery"])]); + let stranger_rev = revision(STRANGER_ORIGIN, &w.s_root, &w.s_next, None, LOG_TIME, vec![entry("s1", &w.s1, &[TASK_AUTHORITY])]); + let pinned = Anchor::pinned(ORIGIN, rev0.revision_hash()); + let fetched = Anchor::fetched(ORIGIN, rev0.revision_hash(), FETCHED_AT); + let cfg_flight = Cfg::of(&w, &cat_flight, "flight"); + let cfg_twin = Cfg::of(&w, &cat_flight, "twin"); + let cfg_open = Cfg::of(&w, &cat_open, "open"); + let lx = std::slice::from_ref(&w.leader.hpke); + let hx_ = std::slice::from_ref(&w.helper.hpke); + let tf_flight = task_file(&cfg_flight.bytes(), &cat_flight.encode(), lx, hx_, "did:web:tasks.example#t1", &w.t1).to_bytes(); + let tf_open = task_file(&cfg_open.bytes(), &cat_open.encode(), lx, hx_, "did:web:tasks.example#t1", &w.t1).to_bytes(); + let tf_twin = task_file( + &cfg_twin.bytes(), + &cat_flight.encode(), + &[p256("leader", 9), w.leader.hpke.clone()], + &[p256("helper", 8), w.helper.hpke.clone()], + "did:web:tasks.example#t1", + &w.t1, + ) + .to_bytes(); + Fx { w, a, b, c, manifests, records, cat_flight, cat_open, cat_bound, rev0, rev1, stranger_rev, pinned, fetched, cfg_flight, cfg_twin, cfg_open, tf_flight, tf_open, tf_twin } +} + +impl Fx { + fn rec(&self, name: &str) -> &Rec { + self.records.iter().find(|r| r.name == name).expect("a record") + } + fn manifest(&self, name: &str) -> &[u8] { + &self.manifests.iter().find(|m| m.0 == name).expect("a manifest").1 + } + fn manifest_list(&self) -> Vec> { + self.manifests.iter().map(|m| m.1.clone()).collect() + } + fn creatives(&self) -> Vec { + vec![self.a.clone(), self.b.clone(), self.c.clone()] + } + /// What the receiver holds: every revision that reached it, and its pinned anchor. + fn held(&self) -> (Vec, Vec) { + (vec![self.rev0.clone(), self.rev1.clone(), self.stranger_rev.clone()], vec![self.pinned.clone()]) + } + fn accept(&self, tf: &[u8]) -> Accepted { + let (revs, anchors) = self.held(); + accept(tf, &revs, &anchors, None).unwrap_or_else(|r| panic!("a fixture task file: {r}")) + } + fn revision_named(&self, n: &str) -> Revision { + match n { + "rev0" => self.rev0.clone(), + "rev1" => self.rev1.clone(), + _ => self.stranger_rev.clone(), + } + } + fn anchor_named(&self, n: &str) -> Anchor { + if n == "fetched" { self.fetched.clone() } else { self.pinned.clone() } + } +} + +fn creative_json(c: &Creative) -> Value { + json!({"digest": hex(&c.digest()), "objects": c.objects.iter().map(|o| json!({"content_hash": hex(&o.content_hash), "duration_ms": o.duration_ms})).collect::>()}) +} + +fn creative_of(v: &Value) -> Creative { + Creative { + objects: v["objects"] + .as_array() + .into_iter() + .flatten() + .map(|o| CreativeObject { content_hash: arr(&o["content_hash"]), duration_ms: o["duration_ms"].as_u64().unwrap_or(0) as u32 }) + .collect(), + } +} + +// ───────────────────────────── §4.3 catalogues ───────────────────────────── + +fn catalogue_outcome(b: &[u8]) -> Value { + match Catalogue::parse(b) { + Ok(c) => json!({"outcome": "read", "digest": hex(&c.digest()), "cells": c.cells(), "chunk": c.chunk()}), + Err(r) => json!({"outcome": "refuse", "reason": r}), + } +} + +/// Region codes of user-assigned subdivisions, `XA-00` upward, `n` of them. +fn subdivisions(n: usize) -> Vec> { + let alnum: Vec = (b'0'..=b'9').chain(b'A'..=b'Z').collect(); + let mut out = Vec::new(); + 'all: for x in &alnum { + for y in &alnum { + if out.len() == n { + break 'all; + } + out.push(vec![b'X', b'A', b'-', *x, *y]); + } + } + out +} + +fn sorted(v: &[T]) -> Vec { + let mut v = v.to_vec(); + v.sort(); + v +} + +fn catalogue_cases(fx: &Fx) -> Vec { + let f = &fx.cat_flight; + let mut out = Vec::new(); + let mut push = |name: &str, about: &str, bytes: Vec, expect: &str| { + let got = catalogue_outcome(&bytes); + let reached = if got["outcome"] == "read" { "read" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, expect, "catalogue {name}: {got}"); + out.push(json!({"name": name, "about": about, "bytes": hex(&bytes), "outcome": got})); + }; + let with = |g: &dyn Fn(&mut Catalogue)| { + let mut c = f.clone(); + g(&mut c); + c.encode() + }; + let digests = |n: usize| sorted(&(0..n).map(|i| seed(&[b"creative-digest", &[i as u8]])).collect::>()); + let signer_keys = |n: usize| sorted(&(0..n).map(|i| pk(&key(&format!("signer-{i}")))).collect::>()); + let keys = |n: usize| sorted(&(0..n).map(|i| spki(&modulus(i as u8))).collect::>()); + push("flight", "the flight's catalogue: attested, cross-media viewability, regions XA and XB-1, creatives A and B", f.encode(), "read"); + push("open", "the open catalogue: video viewability, no attestation, no region, creative A", fx.cat_open.encode(), "read"); + push("cells_at_bound", "63 creatives and 12 regions: 819 creative-columns, 4,095 cells", with(&|c| { + c.creatives = digests(63); + c.regions = subdivisions(12); + }), "read"); + push("regions_255", "255 regions of one country's subdivisions", with(&|c| c.regions = subdivisions(255)), "read"); + push("signers_16", "16 signers", with(&|c| c.signers = signer_keys(16)), "read"); + push("keys_4", "four issuer keys, ascending", with(&|c| c.keys = keys(4)), "read"); + push("hold_one", "a hold of one second", with(&|c| c.hold_s = 1), "read"); + let b = f.encode(); + let mut m = b.clone(); + m[3] = b'2'; + push("magic", "magic WIC2", m, CATALOGUE_MALFORMED); + let mut m = b.clone(); + m[4] = 2; + push("version", "version 2", m, CATALOGUE_MALFORMED); + push("truncated", "the last key's last byte missing", b[..b.len() - 1].to_vec(), CATALOGUE_MALFORMED); + let mut m = b.clone(); + m.push(0); + push("trailing", "a byte past the last key", m, CATALOGUE_MALFORMED); + push("terms_no_claim", "terms that require no claim, and so no attestation and no key", with(&|c| { + c.terms = Requirement { require: 0, rule: 0, token_type: 0, issuer: vec![] }; + c.keys.clear(); + }), CATALOGUE_MALFORMED); + push("terms_attest_type1", "attestation by token type 0x0001", with(&|c| c.terms.token_type = token_type::VOPRF), CATALOGUE_MALFORMED); + push("terms_viewability_0", "a claim with no viewability rule (ad-presentation §8)", with(&|c| c.terms.rule = rule::NONE), CATALOGUE_MALFORMED); + push("hold_zero", "a hold of zero", with(&|c| c.hold_s = 0), CATALOGUE_MALFORMED); + push("signers_none", "no signer", with(&|c| c.signers.clear()), CATALOGUE_MALFORMED); + push("signers_17", "17 signers", with(&|c| c.signers = signer_keys(17)), CATALOGUE_MALFORMED); + push("signers_unordered", "two signers, descending", with(&|c| { + let mut s = signer_keys(2); + s.reverse(); + c.signers = s; + }), CATALOGUE_MALFORMED); + push("creatives_none", "no creative", with(&|c| c.creatives.clear()), CATALOGUE_MALFORMED); + push("creatives_duplicate", "creative A twice", with(&|c| c.creatives = vec![c.creatives[0], c.creatives[0]]), CATALOGUE_MALFORMED); + push("region_lowercase", "region xa", with(&|c| c.regions = vec![b"XB-1".to_vec(), b"xa".to_vec()]), CATALOGUE_MALFORMED); + push("region_long_subdivision", "region XB-1234", with(&|c| c.regions = vec![b"XA".to_vec(), b"XB-1234".to_vec()]), CATALOGUE_MALFORMED); + push("region_empty_subdivision", "region XB-", with(&|c| c.regions = vec![b"XA".to_vec(), b"XB-".to_vec()]), CATALOGUE_MALFORMED); + push("region_overlap", "XB with its subdivision XB-1", with(&|c| c.regions = vec![b"XA".to_vec(), b"XB".to_vec(), b"XB-1".to_vec()]), CATALOGUE_MALFORMED); + push("regions_unordered", "XB-1 before XA", with(&|c| c.regions = vec![b"XB-1".to_vec(), b"XA".to_vec()]), CATALOGUE_MALFORMED); + push("cells_past_bound", "41 creatives and 19 regions: 820 creative-columns, 4,100 cells", with(&|c| { + c.creatives = digests(41); + c.regions = subdivisions(19); + }), CATALOGUE_MALFORMED); + let open = |g: &dyn Fn(&mut Catalogue)| { + let mut c = fx.cat_open.clone(); + g(&mut c); + c.encode() + }; + push("keys_without_attest", "an issuer key in a catalogue without attestation", open(&|c| c.keys = vec![pki()]), CATALOGUE_MALFORMED); + push("attest_without_keys", "attestation with no issuer key", with(&|c| c.keys.clear()), CATALOGUE_MALFORMED); + push("keys_5", "five issuer keys", with(&|c| c.keys = keys(5)), CATALOGUE_MALFORMED); + let mut rsa = pki(); + let at = rsa.windows(9).position(|x| x == [0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0a]).expect("the RSASSA-PSS OID"); + rsa[at + 8] = 0x01; + push("key_rsa_encryption_oid", "an issuer key of OID rsaEncryption", with(&|c| c.keys = vec![rsa.clone()]), CATALOGUE_MALFORMED); + let mut short = unhex(ISSUER_N).expect("hex")[..128].to_vec(); + short[0] |= 0x80; + push("key_1024_bit", "an issuer key of a 1,024-bit modulus", with(&|c| c.keys = vec![spki(&short)]), CATALOGUE_MALFORMED); + push("keys_duplicate", "the issuer key twice", with(&|c| c.keys = vec![pki(), pki()]), CATALOGUE_MALFORMED); + push("keys_unordered", "two issuer keys, descending", with(&|c| { + let mut k = keys(2); + k.reverse(); + c.keys = k; + }), CATALOGUE_MALFORMED); + out +} + +// ───────────────────────────── §5.3 tasks ───────────────────────────── + +fn task_outcome(cfg: &[u8], cat: &[u8]) -> Value { + let Ok(c) = Catalogue::parse(cat) else { return json!({"outcome": "refuse", "reason": CATALOGUE_MALFORMED}) }; + match check_task(cfg, &c) { + Ok(t) => json!({"outcome": "accept", "task_id": hex(&t.id), "retention_s": retention_s(&t.config, c.hold_s)}), + Err(r) => json!({"outcome": "refuse", "reason": r}), + } +} + +fn task_cases(fx: &Fx) -> Vec { + let (f, w) = (&fx.cfg_flight, &fx.w); + let mut out = Vec::new(); + let mut push = |name: &str, about: &str, cfg: Vec, cat: &Catalogue, expect: &str| { + let cb = cat.encode(); + let got = task_outcome(&cfg, &cb); + let reached = if got["outcome"] == "accept" { "accept" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, expect, "task {name}: {got}"); + out.push(json!({"name": name, "about": about, "task": hex(&cfg), "catalogue": hex(&cb), "outcome": got})); + }; + let fc = &fx.cat_flight; + let ti = |start: u64, duration: u64| vec![(EXT_TASK_INTERVAL, Interval { start, duration }.encode())]; + push("flight", "the flight's task", f.bytes(), fc, "accept"); + push("open", "the open catalogue's task", fx.cfg_open.bytes(), &fx.cat_open, "accept"); + push("twin", "the flight's catalogue under another salt", fx.cfg_twin.bytes(), fc, "accept"); + push("precision_3600", "a time precision of exactly an hour", f.with(|c| c.salt = "precision-3600").bytes(), fc, "accept"); + push("floor_50", "a minimum batch size of exactly fifty", f.with(|c| c.salt = "floor-50").bytes(), fc, "accept"); + let bound = Cfg::of(w, &fx.cat_bound, "bound").with(|c| c.extensions = ti(BOUND_START, HOURS)); + push("retention_at_bound", "a retention instant of exactly 253,402,300,799 s: hold 3,599 s after hour 70,389,527 ends", bound.bytes(), &fx.cat_bound, "accept"); + let bad = TaskConfig { time_precision: 3_599, ..f.config() }; + push("precision_3599", "a time precision of an hour less a second", bad.encode(), fc, QoeReason::TaskInvalid.code()); + push("precision_0", "a time precision of 0 (telemetry-aggregation §4.3 rule 1)", f.with(|c| c.tp = 0).bytes(), fc, QoeReason::TaskInvalid.code()); + push("no_task_interval", "no task_interval extension", f.with(|c| c.extensions.clear()).bytes(), fc, QoeReason::TaskInvalid.code()); + push("task_interval_zero", "a task_interval of duration 0", f.with(|c| c.extensions = ti(H0, 0)).bytes(), fc, QoeReason::TaskInvalid.code()); + push("leader_selected", "the leader-selected batch mode", f.with(|c| c.batch_mode = BATCH_LEADER_SELECTED).bytes(), fc, QoeReason::TaskInvalid.code()); + push("two_extensions", "the task_interval extension twice", f.with(|c| c.extensions = [ti(H0, HOURS), ti(H0, HOURS)].concat()).bytes(), fc, QoeReason::TaskInvalid.code()); + push("retention_past_bound", "a retention instant an hour past the last instant", bound.with(|c| c.extensions = ti(BOUND_START, HOURS + 1)).bytes(), &fx.cat_bound, QoeReason::TaskInvalid.code()); + push("retention_overflow", "a task_interval whose end in seconds overflows", f.with(|c| c.extensions = ti(u64::MAX - 10, 5)).bytes(), fc, QoeReason::TaskInvalid.code()); + let outcomes = crate::telemetry_aggregate::measure::vdaf(crate::telemetry_aggregate::measure::OUTCOMES).expect("a measure"); + push("measure_1", "an outcomes task", f.with(|c| { + c.measure = crate::telemetry_aggregate::measure::OUTCOMES; + c.scope = [0; 32]; + c.vdaf_type = outcomes.id(); + c.vdaf_config = outcomes.dap_config(); + }).bytes(), fc, CATALOGUE_MISMATCH); + push("scope_other_catalogue", "the open catalogue's digest as scope", f.with(|c| c.scope = fx.cat_open.digest()).bytes(), fc, CATALOGUE_MISMATCH); + push("chunk_length_7", "a chunk length of 7 for 30 cells", f.with(|c| c.vdaf_config = super::histogram_config(30, 7)).bytes(), fc, QoeReason::MeasureMismatch.code()); + let sumvec = Vdaf::sumvec(2, 30, 1, 6); + push("vdaf_sumvec", "Prio3SumVec of 30 bits", f.with(|c| { + c.vdaf_type = sumvec.id(); + c.vdaf_config = sumvec.dap_config(); + }).bytes(), fc, QoeReason::MeasureMismatch.code()); + push("length_31", "a length of 31 for 30 cells", f.with(|c| c.vdaf_config = super::histogram_config(31, 6)).bytes(), fc, QoeReason::MeasureMismatch.code()); + push("floor_49", "a minimum batch size of 49", f.with(|c| c.min_batch = 49).bytes(), fc, QoeReason::FloorTooLow.code()); + let lk = pk(&w.leader.signing); + push("one_aggregator", "the leader's key as the helper's", f.with(|c| c.helper = lk).bytes(), fc, QoeReason::AggregatorAlone.code()); + out +} + +// ───────────────────────────── §5.4 task files ───────────────────────────── + +fn task_file_outcome(fx_revs: &[Revision], anchors: &[Anchor], b: &[u8]) -> Value { + match accept(b, fx_revs, anchors, None) { + Ok(a) => json!({"outcome": "accept", "digest": hex(&a.digest), "task_id": hex(&a.task.id), "confirmation": a.confirmation.verdict()}), + Err(r) => json!({"outcome": "refuse", "reason": r}), + } +} + +fn task_file_cases(fx: &Fx) -> Vec { + let w = &fx.w; + let mut out = Vec::new(); + let mut push = |name: &str, about: &str, bytes: Vec, revs: &[&str], anchors: &[&str], expect: &str| { + let rv: Vec = revs.iter().map(|n| fx.revision_named(n)).collect(); + let an: Vec = anchors.iter().map(|n| fx.anchor_named(n)).collect(); + let got = task_file_outcome(&rv, &an, &bytes); + let reached = if got["outcome"] == "accept" { "accept" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, expect, "task file {name}: {got}"); + out.push(json!({"name": name, "about": about, "bytes": hex(&bytes), "revisions": revs, "anchors": anchors, "outcome": got})); + }; + let all = ["rev0", "rev1", "stranger"]; + let pin = ["pinned"]; + let (lx, hx_) = (vec![w.leader.hpke.clone()], vec![w.helper.hpke.clone()]); + let cat = fx.cat_flight.encode(); + let task = fx.cfg_flight.bytes(); + let mk = |task: &[u8], cat: &[u8], l: &[HpkeConfig], h: &[HpkeConfig], sid: &str, k: &SigningKey| task_file(task, cat, l, h, sid, k); + let t1 = "did:web:tasks.example#t1"; + push("flight", "the flight's task file, signed by t1", fx.tf_flight.clone(), &all, &pin, "accept"); + push("open", "the open catalogue's task file", fx.tf_open.clone(), &all, &pin, "accept"); + push("hpke_second_is_x25519", "each list's first configuration of another suite; the twin flow's reports name the second", fx.tf_twin.clone(), &all, &pin, "accept"); + let b = fx.tf_flight.clone(); + push("truncated", "the signature's last byte missing", b[..b.len() - 1].to_vec(), &all, &pin, TASK_FILE_MALFORMED); + let mut m = b.clone(); + m.push(0); + push("trailing", "a byte past the signature", m, &all, &pin, TASK_FILE_MALFORMED); + let mut m = b.clone(); + m[3] = b'2'; + push("magic", "magic WIT2", m, &all, &pin, TASK_FILE_MALFORMED); + let mut v2 = mk(&task, &cat, &lx, &hx_, t1, &w.t1).body(); + v2[4] = 2; + let mut m = TASK_FILE_DOMAIN.to_vec(); + m.extend_from_slice(&v2); + v2.extend_from_slice(&ed25519_dalek::Signer::sign(&w.t1, &m).to_bytes()); + push("version", "the flight's file at version 2, signed by t1", v2, &all, &pin, TASK_FILE_MALFORMED); + let mut e = mk(&task, &cat, &lx, &hx_, t1, &w.t1); + e.signer_id.clear(); + push("signer_id_empty", "an empty signer_id", e.sign(&w.t1).to_bytes(), &all, &pin, TASK_FILE_MALFORMED); + let mut e = mk(&task, &cat, &lx, &hx_, t1, &w.t1); + e.signer_id.push('\u{e9}'); + push("signer_id_not_ascii", "a signer_id ending in a byte above 0x7F, signed by t1", e.sign(&w.t1).to_bytes(), &all, &pin, TASK_FILE_MALFORMED); + push("hpke_no_x25519_suite", "the leader's list holds no configuration of DAP's suite", mk(&task, &cat, &[p256("leader", 9)], &hx_, t1, &w.t1).to_bytes(), &all, &pin, TASK_FILE_MALFORMED); + let mut dup = p256("leader", 1); + dup.id = w.leader.hpke.id; + push("hpke_duplicate_id", "two configurations of one id in the leader's list", mk(&task, &cat, &[dup, w.leader.hpke.clone()], &hx_, t1, &w.t1).to_bytes(), &all, &pin, TASK_FILE_MALFORMED); + let mut short = mk(&task, &cat, &lx, &hx_, t1, &w.t1); + short.leader_hpke = vec![0, 0]; + push("hpke_list_short", "an empty leader's list, shorter than DAP's ten bytes", short.sign(&w.t1).to_bytes(), &all, &pin, TASK_FILE_MALFORMED); + let mut badcat = cat.clone(); + badcat[4] = 2; + push("catalogue_bad", "a catalogue of version 2", mk(&task, &badcat, &lx, &hx_, t1, &w.t1).to_bytes(), &all, &pin, CATALOGUE_MALFORMED); + push("task_floor_49", "a task of minimum batch size 49", mk(&fx.cfg_flight.with(|c| c.min_batch = 49).bytes(), &cat, &lx, &hx_, t1, &w.t1).to_bytes(), &all, &pin, QoeReason::FloorTooLow.code()); + let mut m = b.clone(); + let n = m.len(); + m[n - 1] ^= 0x01; + push("flipped_signature", "one bit of the signature flipped", m, &all, &pin, "bad_signature"); + let mut small = mk(&task, &cat, &lx, &hx_, t1, &w.t1); + small.signer = { + let mut i = [0u8; 32]; + i[0] = 1; + i + }; + push("small_order_signer", "the identity point as the signer", small.to_bytes(), &all, &pin, "bad_key"); + push("signer_id_did_key", "the signer named by its did:key", mk(&task, &cat, &lx, &hx_, &crate::signer_id::did_key(&pk(&w.t1)), &w.t1).to_bytes(), &all, &pin, "signer_id_not_origin_bound"); + push("origin_not_anchored", "signed by another origin's task key; its log is held, its origin anchored nowhere", mk(&task, &cat, &lx, &hx_, "did:web:stranger.example#s1", &w.s1).to_bytes(), &all, &pin, "origin_not_anchored"); + push("delivery_key_only", "signed by a key the log gives delivery alone", mk(&task, &cat, &lx, &hx_, "did:web:tasks.example#d1", &w.d1).to_bytes(), &all, &pin, "authority_not_granted"); + push("anchor_fetched", "the flight's task file under a fetched anchor of the same log", fx.tf_flight.clone(), &all, &["fetched"], "anchor_not_pinned"); + let by_t2 = mk(&task, &cat, &lx, &hx_, "did:web:tasks.example#t2", &w.t2).to_bytes(); + push("key_revoked_on_bearer", "signed by t2, which revision 1, received on the bearer, revokes", by_t2.clone(), &all, &pin, "key_revoked"); + push("second_key_before_revocation", "the same file, revision 1 not held: the head is revision 0", by_t2, &["rev0", "stranger"], &pin, "accept"); + out +} + +// ───────────────────────────── §6.2 contributions ───────────────────────────── + +/// What a contribution case is written from. +#[derive(Clone)] +struct Case { + task_file: &'static str, + record: &'static str, + ad: usize, + player: String, + spans: Vec, + manifest: Option<&'static str>, + earlier: Vec>, + region: Option<&'static str>, + at_ms: Option, + pool: Vec<([u8; 16], Vec)>, +} + +fn contribution_json(r: &Result, cat: &Catalogue) -> Value { + match r { + Ok(c) => json!({ + "outcome": "report", + "cell": c.cell, + "creative": c.creative, + "column": cat.column_name(c.column), + "quartile": c.quartile, + "time": c.time, + "id": c.id.map_or_else(|| "fresh".to_owned(), |i| hex(&i)), + "discarded": ids_json(&c.discarded), + }), + Err(n) => json!({"outcome": "no_report", "reason": n.reason, "discarded": ids_json(&n.discarded)}), + } +} + +fn the_claim(fx: &Fx, c: &Case) -> Vec { + let rec = fx.rec(c.record); + let (marker, ad_id, cr) = &rec.ads[c.ad]; + let manifest: Vec = match c.manifest { + Some("unheld") => b"#EXTM3U\n#EXT-X-ENDLIST\n".to_vec(), + Some(m) => fx.manifest(m).to_vec(), + None => fx.manifest(rec.manifest).to_vec(), + }; + claim_of(marker, ad_id, &manifest, &key(&c.player), cr, &c.spans) +} + +fn contribution_cases(fx: &Fx, accepted: &BTreeMap<&'static str, Accepted>) -> Vec { + let flight = &accepted["flight"]; + let tid = flight.task.id; + let pool_id = |n: &str| id16(&[b"pool", n.as_bytes()]); + let pool_of = |n: &str| { + let id = pool_id(n); + vec![(id, mint(&tid, &id, format!("pool/{n}").as_bytes()))] + }; + let at = |m: u64| Some(START_MS + m); + let base = |n: &str| Case { + task_file: "flight", + record: "rec_dash", + ad: 0, + player: format!("contribution/{n}"), + spans: cover(15_000), + manifest: None, + earlier: vec![], + region: Some("XA"), + at_ms: at(30 * 60_000), + pool: pool_of(n), + }; + let mut cases: Vec<(&str, &str, Case, &str)> = Vec::new(); + for (q, n) in [(1u8, "q1_skip_after_start"), (2, "q2_quarter"), (3, "q3_half"), (4, "q4_three_quarters"), (5, "q5_complete")] { + let spans = if q == 1 { vec![span(0, 2_500, 10_000, span_flag::AUDIBLE), span(6_000, 9_000, 10_000, span_flag::AUDIBLE | span_flag::RESUMED)] } else { quartile_cover(q) }; + let about = match q { + 1 => "creative A in XA: 2.5 s, then a skip to 6 s: quartile 1", + 2 => "creative A in XA: covered to exactly a quarter", + 3 => "creative A in XA: covered to exactly half", + 4 => "creative A in XA: covered to exactly three quarters", + _ => "creative A in XA: covered to its end", + }; + cases.push((n, about, Case { spans, ..base(n) }, "report")); + } + cases.push(("creative_b_dash", "creative B, the DASH break's second ad", Case { ad: 1, ..base("creative_b_dash") }, "report")); + cases.push(("creative_a_hls", "creative A marked by an HLS date range", Case { record: "rec_hls", ..base("creative_a_hls") }, "report")); + for (n, about, region) in [ + ("region_exact_country", "region XA: column XA", Some("XA")), + ("region_subdivision_of_listed_country", "region XA-7: column XA, its country", Some("XA-7")), + ("region_exact_subdivision", "region XB-1: column XB-1", Some("XB-1")), + ("region_country_of_listed_subdivision", "region XB, the country of a listed subdivision: other", Some("XB")), + ("region_other_subdivision", "region XB-2: other", Some("XB-2")), + ("region_none", "no region: other", None), + ("region_malformed", "region xa, not a code: other", Some("xa")), + ] { + cases.push((n, about, Case { region, ..base(n) }, "report")); + } + cases.push(("bucket_first_ms", "ended at an hour's first millisecond: that hour", Case { at_ms: at(3 * HOUR_MS), ..base("bucket_first_ms") }, "report")); + cases.push(("bucket_last_ms", "ended a millisecond before it: the hour before", Case { at_ms: at(3 * HOUR_MS - 1), ..base("bucket_last_ms") }, "report")); + cases.push(("flight_first_ms", "ended at the flight's first millisecond: inside", Case { at_ms: at(0), ..base("flight_first_ms") }, "report")); + // The pool given in descending order: tried ascending, the least id's token being the + // next id's, which fails. + let (lo, hi) = (pool_id("skip-low"), pool_id("skip-high")); + let (lo, hi) = if lo < hi { (lo, hi) } else { (hi, lo) }; + let hi_token = mint(&tid, &hi, b"pool/skip-high"); + cases.push(( + "token_pool_skips_bad", + "the least id's token answers another id's challenge: it is discarded, and the next is used", + Case { pool: vec![(hi, hi_token.clone()), (lo, hi_token.clone())], ..base("token_pool_skips_bad") }, + "report", + )); + cases.push(( + "open_no_pool_needed", + "the open catalogue: no attestation, a fresh id", + Case { task_file: "open", record: "rec_terms", region: None, pool: vec![], spans: cover(15_000), ..base("open_no_pool_needed") }, + "report", + )); + let first = |n: &str| the_claim(fx, &base(n)); + cases.push(("flight_end_ms", "ended at the flight's end, which the interval does not hold", Case { at_ms: at(HOURS * HOUR_MS), ..base("flight_end_ms") }, OUTSIDE_TASK)); + cases.push(("before_flight", "ended a millisecond before the flight", Case { at_ms: Some(START_MS - 1), ..base("before_flight") }, OUTSIDE_TASK)); + cases.push(("clock_unset", "the receiver's clock is not set", Case { at_ms: None, ..base("clock_unset") }, INSTANT_UNKNOWN)); + cases.push(("session_record", "a record decided for one session", Case { record: "rec_session", ..base("session_record") }, RECORD_NOT_SHARED)); + cases.push(("terms_differ", "a record under other terms", Case { record: "rec_terms", ..base("terms_differ") }, RECORD_TERMS_DIFFER)); + cases.push(("creative_unlisted", "creative C, which the catalogue does not list", Case { record: "rec_c", spans: cover(15_000), ..base("creative_unlisted") }, CREATIVE_NOT_LISTED)); + cases.push(("stranger_stitcher", "a record signed by an unlisted stitcher", Case { record: "rec_stranger", ..base("stranger_stitcher") }, sp::Reason::PodSignerUnknown.code())); + cases.push(( + "not_viewable_90pct", + "90% of the ad's pixels in view throughout, below cross-media viewability", + Case { spans: vec![span(0, 15_000, 9_000, span_flag::AUDIBLE)], ..base("not_viewable_90pct") }, + sp::Reason::ClaimNotViewable.code(), + )); + cases.push(( + "second_claim_same_session", + "the session's second claim of the same ad, after one judged", + Case { earlier: vec![first("second_claim_same_session")], spans: cover(7_500), ..base("second_claim_same_session") }, + sp::Reason::ClaimDuplicate.code(), + )); + cases.push(("marker_absent_from_mpd", "naming an MPD the receiver holds that carries no such event", Case { manifest: Some("mpd_short"), ..base("marker_absent_from_mpd") }, sp::Reason::ClaimMarkerAbsent.code())); + cases.push(("manifest_unknown", "naming a manifest the receiver does not hold", Case { manifest: Some("unheld"), ..base("manifest_unknown") }, sp::Reason::ClaimManifestUnknown.code())); + cases.push(("pool_empty", "attested, and the pool is empty", Case { pool: vec![], ..base("pool_empty") }, TOKEN_EXHAUSTED)); + let (x, y) = (pool_id("bad-x"), pool_id("bad-y")); + let (tx, ty) = (mint(&tid, &x, b"pool/bad-x"), mint(&tid, &y, b"pool/bad-y")); + cases.push(("pool_all_bad", "each pair's token answers the other's id", Case { pool: vec![(x, ty), (y, tx)], ..base("pool_all_bad") }, TOKEN_EXHAUSTED)); + cases.push(("record_flipped_sig", "a record with a bit flipped after signing", Case { record: "rec_flipped", ..base("record_flipped_sig") }, "bad_signature")); + let manifests = fx.manifest_list(); + let creatives = fx.creatives(); + let mut out = Vec::new(); + for (name, about, c, expect) in cases { + let claim = the_claim(fx, &c); + let mut claims = c.earlier.clone(); + claims.push(claim); + let tf = &accepted[c.task_file]; + let input = ContributionInput { + task: tf, + record: &fx.rec(c.record).bytes, + manifests: &manifests, + creatives: &creatives, + claims: &claims, + region: c.region.map(str::as_bytes), + at_ms: c.at_ms, + pool: &c.pool, + }; + let got = contribution_json(&contribution(&input), &tf.catalogue); + let reached = if got["outcome"] == "report" { "report" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, expect, "contribution {name}: {got}"); + out.push(json!({ + "name": name, + "about": about, + "task_file": c.task_file, + "record": c.record, + "claims": claims.iter().map(|x| hex(x)).collect::>(), + "region": c.region, + "at_ms": c.at_ms, + "pool": c.pool.iter().map(|(i, t)| json!({"id": hex(i), "token": hex(t)})).collect::>(), + "outcome": got, + })); + } + out +} + +// ───────────────────────────── §6–§7 flows ───────────────────────────── + +/// A committed report: its id, its time, the leader's and the helper's output shares, and +/// its contribution's cell where it has one. +type Committed = ([u8; 16], u64, Vec, Vec, Option); + +/// A presentation of a flow: its report and what the corpus states of it. +struct Pres { + report: Report, + cell: usize, + claim: Vec, + record: &'static str, + json: Value, +} + +/// What a presentation is written from. +struct PSpec { + record: &'static str, + ad: usize, + quartile: u8, + region: Option<&'static str>, + at_ms: u64, +} + +fn present(fx: &Fx, tf: &Accepted, flow: &str, n: usize, p: &PSpec) -> Pres { + let label = format!("{flow}/{n}"); + let rec = fx.rec(p.record); + let (marker, ad_id, cr) = &rec.ads[p.ad]; + let claim = claim_of(marker, ad_id, fx.manifest(rec.manifest), &key(&format!("player/{label}")), cr, &quartile_cover(p.quartile)); + let (pool, fresh) = if tf.catalogue.attested() { + let id = id16(&[b"report", label.as_bytes()]); + (vec![(id, mint(&tf.task.id, &id, label.as_bytes()))], [0u8; 16]) + } else { + (vec![], id16(&[b"fresh", label.as_bytes()])) + }; + let (manifests, creatives) = (fx.manifest_list(), fx.creatives()); + let claims = vec![claim.clone()]; + let input = ContributionInput { + task: tf, + record: &rec.bytes, + manifests: &manifests, + creatives: &creatives, + claims: &claims, + region: p.region.map(str::as_bytes), + at_ms: Some(p.at_ms), + pool: &pool, + }; + let c = contribution(&input).unwrap_or_else(|e| panic!("presentation {label}: {e:?}")); + assert_eq!(c.quartile, p.quartile, "presentation {label}"); + let rand = stream(&[b"rand", label.as_bytes()], tf.task.vdaf.rand_size()); + let (il, ih) = (seed(&[b"ikm", label.as_bytes(), b"leader"]), seed(&[b"ikm", label.as_bytes(), b"helper"])); + let report = report(tf, &c, fresh, &rand, [&il, &ih]); + let json = json!({ + "id": hex(&report.metadata.id), + "time": report.metadata.time, + "kind": "presentation", + "record": p.record, + "claim": hex(&claim), + "region": p.region, + "at_ms": p.at_ms, + "cell": c.cell, + "creative": c.creative, + "column": tf.catalogue.column_name(c.column), + "quartile": c.quartile, + }); + Pres { report, cell: c.cell, claim, record: p.record, json } +} + +/// A report of a flow that is not a presentation, written to fail at one check. +fn crafted_report(tf: &Accepted, flow: &str, kind: &str, time: u64, encoded: &[u128], public: &Extensions, private: [&Extensions; 2]) -> Report { + let label = format!("{flow}/{kind}"); + let id = id16(&[b"report", label.as_bytes()]); + let rand = stream(&[b"rand", label.as_bytes()], tf.task.vdaf.rand_size()); + let (il, ih) = (seed(&[b"ikm", label.as_bytes(), b"leader"]), seed(&[b"ikm", label.as_bytes(), b"helper"])); + crate::telemetry_aggregate::aggregator::client_report(&tf.task, &tf.leader, &tf.helper, id, time, encoded, &rand, [&il, &ih], public, private) +} + +fn one_hot(tf: &Accepted, cell: usize) -> Vec { + tf.task.vdaf.encode(&[cell as u128]).expect("a cell") +} + +fn token_ext(t: &[u8]) -> Extensions { + vec![(TOKEN_EXTENSION, t.to_vec())] +} + +/// The leader and the helper of a flow. +struct Aggs<'a> { + leader: Leader<'a>, + helper: Helper<'a>, +} + +fn upload_step(aggs: &mut Aggs, name: &str, file: &UploadFile, sources: Option<&[UploadFile]>) -> Value { + let errors = aggs.leader.upload(&file.upload()).expect("an upload that reads"); + let response = encode_upload_errors(&errors); + let mut j = json!({ + "step": "upload", + "name": name, + "file": hex(&file.encode()), + "response": hex(&response), + "errors": errors.iter().map(|(id, e)| json!({"id": hex(id), "error": report_error::name(*e)})).collect::>(), + }); + if let Some(src) = sources { + j["sources"] = Value::Array(src.iter().map(|s| Value::String(hex(&s.encode()))).collect()); + j["shares"] = Value::Array(src.iter().map(|s| Value::String(hex(&share_of(&response, s)))).collect()); + } + j +} + +/// A report's outcome in an aggregation job: its id, its DAP outcome, and the WAI reason +/// recorded beside it. +type JobOutcome = ([u8; 16], String, Option<&'static str>); + +fn aggregate_step(aggs: &mut Aggs) -> (Value, Vec) { + let job = aggs.leader.aggregate(&mut aggs.helper).expect("the job runs"); + let outcomes: Vec = job + .outcomes + .iter() + .map(|(id, o)| { + let name = match o { + Outcome::Committed => "committed".to_owned(), + Outcome::Rejected(e) => report_error::name(*e).to_owned(), + }; + let reason = aggs.leader.agg.reasons.get(id).or(aggs.helper.agg.reasons.get(id)).copied(); + (*id, name, reason) + }) + .collect(); + let j = json!({ + "step": "aggregate", + "init_req": hex(&job.init_req), + "resp": hex(&job.resp), + "outcomes": outcomes.iter().map(|(id, o, r)| json!({"id": hex(id), "outcome": o, "reason": r})).collect::>(), + }); + (j, outcomes) +} + +/// The helper's buckets over an interval: count and checksum. +fn helper_sums(h: &Helper, i: &Interval) -> (u64, [u8; 32]) { + let (mut count, mut checksum) = (0, [0u8; 32]); + for (_, b) in h.agg.buckets.range(i.start..i.end().unwrap_or(u64::MAX)) { + count += b.count; + xor32(&mut checksum, &b.checksum); + } + (count, checksum) +} + +fn committed(aggs: &Aggs, batch: &Interval, cells: &BTreeMap<[u8; 16], usize>) -> Vec { + let mut v = Vec::new(); + for (t, b) in aggs.leader.agg.buckets.range(batch.start..batch.end().unwrap_or(u64::MAX)) { + let hb = &aggs.helper.agg.buckets[t]; + for ((id, lo), (hid, ho)) in b.committed.iter().zip(&hb.committed) { + assert_eq!(id, hid); + v.push((*id, *t, lo.clone(), ho.clone(), cells.get(id).copied())); + } + } + v +} + +/// A collection at `now_s`: its step, and the receipt the collector signs when it completes. +fn collect_step(fx: &Fx, aggs: &mut Aggs, tf: &Accepted, flow: &str, name: &str, batch: Interval, now_s: u64) -> (Value, Option) { + let w = &fx.w; + let coll = CollectionJobReq::time_interval(batch); + let ck = |n: &str| seed(&[b"collect-ikm", flow.as_bytes(), name.as_bytes(), n.as_bytes()]); + let (k0, k1, k2, k3) = (ck("leader-share"), ck("leader-statement"), ck("helper-share"), ck("helper-statement")); + let mut j = json!({"step": "collect", "name": name, "request": hex(&coll.encode()), "batch": interval_json(&batch), "now_s": now_s}); + match aggs.leader.collect(&coll.encode(), &mut aggs.helper, &w.collector, [&k0, &k1, &k2, &k3], now_s, tf.catalogue.hold_s as u64) { + Ok(None) => { + j["outcome"] = "processing".into(); + (j, None) + } + Err(p) => { + j["outcome"] = p.name().into(); + (j, None) + } + Ok(Some(c)) => { + let opened = collector_open(&tf.task, &w.collector_sk, &coll, &c.resp, [&c.leader_statement, &c.helper_statement]).expect("the collector opens"); + let resp = CollectionJobResp::decode(&c.resp).expect("a response"); + let rc = Receipt { + task: tf.task.config.encode(), + collection: coll.encode(), + interval: resp.interval, + leader: opened.leader.encode(), + helper: opened.helper.encode(), + result: opened.result.clone(), + signer: [0; 32], + sig: [0; 64], + } + .sign(&w.collector_sign); + j["outcome"] = "completed".into(); + j["share_req"] = hex(&c.share_req).into(); + j["helper_share"] = hex(&c.helper_share).into(); + j["resp"] = hex(&c.resp).into(); + j["leader_statement"] = hex(&c.leader_statement).into(); + j["helper_statement"] = hex(&c.helper_statement).into(); + j["result"] = Value::Array(opened.result.iter().map(|&x| json!(x as u64)).collect()); + j["receipt"] = hex(&rc.encode()).into(); + (j, Some(rc)) + } + } +} + +fn given(task_id: &[u8; 32], reps: &[Committed]) -> Vec { + reps.iter().map(|r| GivenReport { id: r.0, time: r.1, task_id: *task_id }).collect() +} + +fn given_json(g: &[GivenReport]) -> Value { + Value::Array(g.iter().map(|g| json!({"id": hex(&g.id), "time": g.time, "task": hex(&g.task_id)})).collect()) +} + +fn given_of(v: &Value) -> Option> { + v.as_array().map(|a| a.iter().map(|g| GivenReport { id: arr(&g["id"]), time: g["time"].as_u64().unwrap_or(0), task_id: arr(&g["task"]) }).collect()) +} + +/// A standing receipt of a flow: its name, its receipt, its committed reports. +struct Got { + name: &'static str, + receipt: Receipt, + committed: Vec, +} + +struct FlowOut { + json: Value, + got: Vec, + /// The claims and records of the presentations the standing receipts committed. + claims: Vec<(&'static str, Vec)>, +} + +fn flight_flow(fx: &Fx, tf: &Accepted) -> FlowOut { + let flow = "flight"; + let rule = TokenRule { task_id: tf.task.id, catalogue: &tf.catalogue }; + let vk = verify_key(&fx.w.verify_key_seed, &tf.task.id); + let mut aggs = Aggs { leader: Leader::new(Aggregator::with_rule(&tf.task, &fx.w.leader, vk, &rule)), helper: Helper { agg: Aggregator::with_rule(&tf.task, &fx.w.helper, vk, &rule) } }; + let mut pres: Vec = Vec::new(); + for i in 0..50u64 { + pres.push(present(fx, tf, flow, pres.len(), &PSpec { record: "rec_dash", ad: 0, quartile: (i % 5) as u8 + 1, region: Some("XA"), at_ms: START_MS + (i * 60 + 30) * 1000 })); + } + let b0_valid = pres.len(); + // Bucket b0's reports that fail, each at one check. + let cat = &tf.catalogue; + let cell = cat.cell(0, 0, 5); + let none = Extensions::new(); + let tok = |kind: &str| { + let id = id16(&[b"report", format!("{flow}/{kind}").as_bytes()]); + mint(&tf.task.id, &id, format!("{flow}/{kind}").as_bytes()) + }; + let first_token = mint(&tf.task.id, &pres[0].report.metadata.id, format!("{flow}/0").as_bytes()); + let mut altered = tok("token_altered"); + let n = altered.len(); + altered[n - 1] ^= 0x01; + let leader_only = token_ext(&tok("token_leader_only")); + let other = token_ext(&first_token); + let altered = token_ext(&altered); + let two_hot_tok = token_ext(&tok("two_hot")); + let public_tok = token_ext(&tok("public_extension")); + let helper_tok = token_ext(&tok("helper_undecryptable")); + let mut two_hot = one_hot(tf, cell); + two_hot[cat.cell(1, 2, 1)] = 1; + let mut undecryptable = crafted_report(tf, flow, "helper_undecryptable", H0, &one_hot(tf, cell), &none, [&helper_tok, &helper_tok]); + let k = undecryptable.helper_share.payload.len(); + undecryptable.helper_share.payload[k - 1] ^= 0x01; + let crafted: Vec<(&str, Report, &str, Option<&str>, &str)> = vec![ + ("token_absent", crafted_report(tf, flow, "token_absent", H0, &one_hot(tf, cell), &none, [&none, &none]), "invalid_message", Some(ATTESTATION_ABSENT), "no private extension"), + ("token_leader_only", crafted_report(tf, flow, "token_leader_only", H0, &one_hot(tf, cell), &none, [&leader_only, &none]), "invalid_message", Some(ATTESTATION_ABSENT), "a token in the leader's input share only"), + ("token_other_id", crafted_report(tf, flow, "token_other_id", H0, &one_hot(tf, cell), &none, [&other, &other]), "invalid_message", Some(ATTESTATION_INVALID), "the token of another report's id"), + ("token_altered", crafted_report(tf, flow, "token_altered", H0, &one_hot(tf, cell), &none, [&altered, &altered]), "invalid_message", Some(ATTESTATION_INVALID), "its own token, the authenticator's last bit flipped"), + ("public_extension", crafted_report(tf, flow, "public_extension", H0, &one_hot(tf, cell), &public_tok, [&public_tok, &public_tok]), "invalid_message", None, "its token in a public extension too"), + ("two_hot", crafted_report(tf, flow, "two_hot", H0, &two_hot, &none, [&two_hot_tok, &two_hot_tok]), "vdaf_verify_error", None, "a measurement with two ones"), + ("helper_undecryptable", undecryptable, "hpke_decrypt_error", None, "a helper share whose last byte is flipped"), + ("before_flight", crafted_report(tf, flow, "before_flight", H0 - 1, &one_hot(tf, cell), &none, [&none, &none]), "report_dropped", None, "a time one unit before the flight"), + ]; + for i in 0..30u64 { + pres.push(present(fx, tf, flow, pres.len(), &PSpec { record: "rec_dash", ad: 1, quartile: (i % 5) as u8 + 1, region: None, at_ms: START_MS + HOUR_MS + (i * 60 + 30) * 1000 })); + } + for i in 0..19u64 { + pres.push(present(fx, tf, flow, pres.len(), &PSpec { record: "rec_dash", ad: 1, quartile: (i % 5) as u8 + 1, region: Some("XC"), at_ms: START_MS + 2 * HOUR_MS + (i * 60 + 30) * 1000 })); + } + pres.push(present(fx, tf, flow, pres.len(), &PSpec { record: "rec_hls", ad: 0, quartile: 5, region: Some("XB-1"), at_ms: START_MS + 2 * HOUR_MS + 1_200_000 })); + let late = present(fx, tf, flow, pres.len() + 1000, &PSpec { record: "rec_dash", ad: 0, quartile: 5, region: Some("XA"), at_ms: START_MS + 3_000_000 }); + let cells: BTreeMap<[u8; 16], usize> = pres.iter().map(|p| (p.report.metadata.id, p.cell)).collect(); + // The order the corpus numbers reports in: b0's presentations, b0's failures, the report + // before the flight; then b1's and b2's presentations. + let mut listed: Vec = Vec::new(); + let mut r_all: Vec = Vec::new(); + for p in &pres[..b0_valid] { + listed.push(p.json.clone()); + r_all.push(p.report.clone()); + } + for (kind, r, err, reason, about) in &crafted { + listed.push(json!({"id": hex(&r.metadata.id), "time": r.metadata.time, "kind": kind, "about": about, "error": err, "reason": reason})); + r_all.push(r.clone()); + } + let later: Vec = pres[b0_valid..].iter().map(|p| p.report.clone()).collect(); + for p in &pres[b0_valid..] { + listed.push(p.json.clone()); + } + // Uploads: relay A (reports 1–40), relay B (30–55), the rest directly, and two + // receivers' files merged by a relay: one of b1 and the report before the flight, one + // of b2. + let tid = tf.task.id; + let relay_a = UploadFile::of(tid, &r_all[0..40]); + let relay_b = UploadFile::of(tid, &r_all[29..55]); + let direct = UploadFile::of(tid, &r_all[55..57]); + let x = UploadFile::of(tid, &[later[..30].to_vec(), vec![r_all[57].clone()]].concat()); + let y = UploadFile::of(tid, &later[30..]); + let merged = merge(&[x.clone(), y.clone()]); + assert_eq!(merged.len(), 1); + let mut steps = vec![ + upload_step(&mut aggs, "relay_a", &relay_a, None), + upload_step(&mut aggs, "relay_b", &relay_b, None), + upload_step(&mut aggs, "direct", &direct, None), + upload_step(&mut aggs, "relay_merged", &merged[0], Some(&[x, y][..])), + ]; + let (j, outcomes) = aggregate_step(&mut aggs); + steps.push(j); + for (kind, r, err, reason, _) in &crafted { + if *kind == "before_flight" { + continue; + } + let o = outcomes.iter().find(|o| o.0 == r.metadata.id).expect("an outcome"); + assert_eq!((o.1.as_str(), o.2), (*err, *reason), "flight report {kind}"); + } + for p in &pres { + let o = outcomes.iter().find(|o| o.0 == p.report.metadata.id).expect("an outcome"); + assert_eq!(o.1, "committed"); + } + let b0 = Interval { start: H0, duration: 1 }; + let due = |i: &Interval| i.end().unwrap() * TP + tf.catalogue.hold_s as u64; + let (j, none_yet) = collect_step(fx, &mut aggs, tf, flow, "collect_b0_held", b0, due(&b0) - 1); + assert!(none_yet.is_none() && j["outcome"] == "processing"); + steps.push(j); + let (j, r0) = collect_step(fx, &mut aggs, tf, flow, "collect_b0", b0, due(&b0)); + steps.push(j); + let r0 = r0.expect("b0 is collected"); + let late_file = UploadFile::of(tid, std::slice::from_ref(&late.report)); + let j = upload_step(&mut aggs, "late_b0", &late_file, None); + assert_eq!(j["errors"][0]["error"], "report_replayed"); + steps.push(j); + let b1 = Interval { start: H0 + 1, duration: 1 }; + let (mut j, none_) = collect_step(fx, &mut aggs, tf, flow, "collect_b1_alone", b1, due(&b1)); + assert!(none_.is_none() && j["outcome"] == "invalidBatchSize"); + let (count, checksum) = helper_sums(&aggs.helper, &b1); + let req = AggregateShareReq { collection: CollectionJobReq::time_interval(b1), selector_mode: BATCH_TIME_INTERVAL, selector_config: b1.encode(), report_count: count, checksum }.encode(); + let hk = seed(&[b"collect-ikm", b"flight-helper-alone"]); + let helper_said = match aggs.helper.aggregate_share(&req, &fx.w.collector, [&hk, &hk]) { + Ok(_) => "accept".to_owned(), + Err(p) => p.name().to_owned(), + }; + assert_eq!(helper_said, "invalidBatchSize"); + j["helper_request"] = hex(&req).into(); + j["helper_outcome"] = helper_said.into(); + steps.push(j); + let b12 = Interval { start: H0 + 1, duration: 2 }; + let (j, r12) = collect_step(fx, &mut aggs, tf, flow, "collect_b1_b2", b12, due(&b12)); + steps.push(j); + let r12 = r12.expect("b1 and b2 are collected"); + let c0 = committed(&aggs, &b0, &cells); + let c12 = committed(&aggs, &b12, &cells); + assert_eq!((c0.len(), c12.len()), (50, 50)); + let claims = pres.iter().map(|p| (p.record, p.claim.clone())).collect(); + let json = json!({ + "name": flow, + "task_file": flow, + "task_id": hex(&tid), + "verify_key": hex(&vk), + "reports": listed, + "late": [late.json], + "steps": steps, + }); + FlowOut { json, got: vec![Got { name: "r0", receipt: r0, committed: c0 }, Got { name: "r12", receipt: r12, committed: c12 }], claims } +} + +/// A flow of one upload, one job and one collection: `specs` presented, `extra` reports that +/// fail with the stated error, the batch collected once its hold has passed. +fn simple_flow(fx: &Fx, tf: &Accepted, flow: &'static str, receipt: &'static str, specs: &[PSpec], extra: Vec<(&str, Report, &str, &str)>, batch: Interval) -> FlowOut { + let rule = TokenRule { task_id: tf.task.id, catalogue: &tf.catalogue }; + let vk = verify_key(&fx.w.verify_key_seed, &tf.task.id); + let mut aggs = Aggs { leader: Leader::new(Aggregator::with_rule(&tf.task, &fx.w.leader, vk, &rule)), helper: Helper { agg: Aggregator::with_rule(&tf.task, &fx.w.helper, vk, &rule) } }; + let pres: Vec = specs.iter().enumerate().map(|(n, p)| present(fx, tf, flow, n, p)).collect(); + let cells: BTreeMap<[u8; 16], usize> = pres.iter().map(|p| (p.report.metadata.id, p.cell)).collect(); + let mut listed: Vec = pres.iter().map(|p| p.json.clone()).collect(); + let mut all: Vec = pres.iter().map(|p| p.report.clone()).collect(); + for (kind, r, err, about) in &extra { + listed.push(json!({"id": hex(&r.metadata.id), "time": r.metadata.time, "kind": kind, "about": about, "error": err, "reason": null})); + all.push(r.clone()); + } + let file = UploadFile::of(tf.task.id, &all); + let mut steps = vec![upload_step(&mut aggs, "direct", &file, None)]; + let (j, outcomes) = aggregate_step(&mut aggs); + steps.push(j); + for (kind, r, err, _) in &extra { + let o = outcomes.iter().find(|o| o.0 == r.metadata.id).expect("an outcome"); + assert_eq!(o.1, *err, "{flow} report {kind}"); + } + assert!(pres.iter().all(|p| outcomes.iter().any(|o| o.0 == p.report.metadata.id && o.1 == "committed")), "{flow}: every presentation is committed"); + let now = batch.end().unwrap() * TP + tf.catalogue.hold_s as u64; + let (j, rc) = collect_step(fx, &mut aggs, tf, flow, "collect", batch, now); + steps.push(j); + let rc = rc.expect("the batch is collected"); + let c = committed(&aggs, &batch, &cells); + let json = json!({"name": flow, "task_file": tf_name_of(flow), "task_id": hex(&tf.task.id), "verify_key": hex(&vk), "reports": listed, "steps": steps}); + FlowOut { json, got: vec![Got { name: receipt, receipt: rc, committed: c }], claims: pres.iter().map(|p| (p.record, p.claim.clone())).collect() } +} + +fn tf_name_of(flow: &str) -> &'static str { + match flow { + "twin" => "twin", + "open" | "past_task" => "open", + _ => "flight", + } +} + +// ───────────────────────────── §6.4–§6.6 uploads, plans, settles ───────────────────────────── + +fn upload_outcome(b: &[u8]) -> Value { + match UploadFile::parse(b) { + Ok(f) => json!({"outcome": "read", "task_id": hex(&f.task_id), "ids": ids_json(&f.ids())}), + Err(r) => json!({"outcome": "refuse", "reason": r}), + } +} + +fn raw_upload(task_id: &[u8; 32], reports: &[Report]) -> Vec { + let up = encode_upload(reports); + let mut o = UPLOAD_MAGIC.to_vec(); + o.push(VERSION); + o.extend_from_slice(task_id); + o.extend_from_slice(&(up.len() as u32).to_be_bytes()); + o.extend_from_slice(&up); + o +} + +/// Reports of the open task at times `times`, each of cell 0 and a fresh id named `label/n`. +fn stored(tf: &Accepted, label: &str, times: &[u64]) -> Vec { + times + .iter() + .enumerate() + .map(|(n, &t)| { + let c = Contribution { cell: 0, creative: 0, column: 0, quartile: 1, time: t, id: None, token: None, discarded: vec![] }; + let l = format!("{label}/{n}"); + let rand = stream(&[b"rand", l.as_bytes()], tf.task.vdaf.rand_size()); + let (il, ih) = (seed(&[b"ikm", l.as_bytes(), b"leader"]), seed(&[b"ikm", l.as_bytes(), b"helper"])); + report(tf, &c, id16(&[b"fresh", l.as_bytes()]), &rand, [&il, &ih]) + }) + .collect() +} + +fn upload_cases(open: &Accepted, merged: &[u8]) -> Vec { + let mut three = stored(open, "uploads", &[H0, H0, H0 + 1]); + three.sort_by_key(|r| r.metadata.id); + let tid = open.task.id; + let mut out = Vec::new(); + let mut push = |name: &str, about: &str, b: Vec, expect: &str| { + let got = upload_outcome(&b); + let reached = if got["outcome"] == "read" { "read" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, expect, "upload {name}: {got}"); + out.push(json!({"name": name, "about": about, "bytes": hex(&b), "outcome": got})); + }; + let ok = raw_upload(&tid, &three); + push("three_reports", "three reports of the open task, ascending", ok.clone(), "read"); + push("merged_two_receivers", "the flight's relay file merging two receivers' files", merged.to_vec(), "read"); + let mut m = ok.clone(); + m[3] = b'2'; + push("magic", "magic WIU2", m, UPLOAD_MALFORMED); + let mut m = ok.clone(); + m[4] = 2; + push("version", "the three reports' file at version 2", m, UPLOAD_MALFORMED); + let mut m = ok.clone(); + let n = (m.len() - 41 + 1) as u32; + m[37..41].copy_from_slice(&n.to_be_bytes()); + push("ends_early", "the file ends a byte before its upload's length, every report whole", m, UPLOAD_MALFORMED); + push("empty", "no report", raw_upload(&tid, &[]), UPLOAD_MALFORMED); + push("unordered", "two reports, descending", raw_upload(&tid, &[three[1].clone(), three[0].clone()]), UPLOAD_MALFORMED); + push("duplicate_id", "one report twice", raw_upload(&tid, &[three[0].clone(), three[0].clone()]), UPLOAD_MALFORMED); + let mut t = raw_upload(&tid, &three); + t.pop(); + let n = (t.len() - 41) as u32; + t[37..41].copy_from_slice(&n.to_be_bytes()); + push("report_truncated", "the last report one byte short, the length its own", t, UPLOAD_MALFORMED); + let mut m = ok; + m.push(0); + push("trailing", "a byte past the upload", m, UPLOAD_MALFORMED); + out +} + +fn plan_json(p: &Plan) -> Value { + json!({ + "send": p.send.iter().map(|(id, c)| json!({"id": hex(id), "class": c.label()})).collect::>(), + "defer": ids_json(&p.defer), + "drop": ids_json(&p.drop), + "file": p.file.as_ref().map(|f| hex(f)), + }) +} + +fn plan_cases(open: &Accepted) -> Vec { + let d = |tau: u64| deadline_ms(TP, open.catalogue.hold_s, tau); + let retention_ms = open.retention_s() * 1000; + let three = stored(open, "plan/three", &[H0 + 2, H0, H0 + 1]); + let len = three[0].encode().len() as u64; + let one = stored(open, "plan/one", &[H0]); + let ties = stored(open, "plan/ties", &[H0, H0, H0]); + let outside = stored(open, "plan/outside", &[H0 - 1, H0 + 3]); + let mixed = stored(open, "plan/mixed", &[H0, H0 + 5, H0 + 1]); + // Each case: its name, what it is, the stored reports, t, the budget, and the counts it is + // written to send, defer and drop. + type PlanCase<'a> = (&'a str, &'a str, &'a [Report], u64, Option, (usize, usize, usize)); + let cases: Vec = vec![ + ("all_timely", "three reports before every deadline, no budget", &three[..], START_MS, None, (3, 0, 0)), + ("deadline_minus_1ms", "a millisecond before its deadline: timely", &one[..], d(H0) - 1, None, (1, 0, 0)), + ("deadline_exact", "at its deadline: late", &one[..], d(H0), None, (1, 0, 0)), + ("retention_minus_1ms", "a millisecond before the retention instant: late", &one[..], retention_ms - 1, None, (1, 0, 0)), + ("retention_exact", "at the retention instant: dropped", &one[..], retention_ms, None, (0, 0, 1)), + ("outside_flight_report", "a report of an hour before the flight is dropped", &outside[..], START_MS, None, (1, 0, 1)), + ("budget_exact", "a budget of the header and three reports exactly", &three[..], START_MS, Some(UPLOAD_OVERHEAD + 3 * len), (3, 0, 0)), + ("budget_one_short", "a byte short of that: two sent, one deferred", &three[..], START_MS, Some(UPLOAD_OVERHEAD + 3 * len - 1), (2, 1, 0)), + ("budget_none", "no budget; one report late, two timely", &mixed[..], d(H0), None, (3, 0, 0)), + ("ties_by_id", "three reports of one hour: one deadline, ascending id", &ties[..], START_MS, None, (3, 0, 0)), + ("nothing_to_send", "every report past the retention instant: no file", &three[..], retention_ms + 1, None, (0, 0, 3)), + ]; + let mut out = Vec::new(); + for (name, about, reports, t, budget, want) in cases { + let p = plan(open, reports, t, budget); + assert_eq!((p.send.len(), p.defer.len(), p.drop.len()), want, "plan {name}"); + out.push(json!({ + "name": name, + "about": about, + "task_file": "open", + "stored": reports.iter().map(|r| hex(&r.encode())).collect::>(), + "t_ms": t, + "budget": budget, + "outcome": plan_json(&p), + })); + } + out +} + +fn settle_json(s: &Settled) -> Value { + json!({"settles": s.settles, "delete": ids_json(&s.delete), "keep": ids_json(&s.keep)}) +} + +fn settle_cases(open: &Accepted) -> Vec { + let tid = open.task.id; + let three = UploadFile::of(tid, &stored(open, "settle/three", &[H0, H0, H0])); + let ten = UploadFile::of(tid, &stored(open, "settle/ten", &[H0; 10])); + let ids3 = three.ids(); + let each: Vec<([u8; 16], u8)> = ten.ids().into_iter().zip(1..=10u8).collect(); + // Each case: its name, what it is, the file sent, the response, and whether it is written + // to settle and the counts to delete and keep. + type SettleCase<'a> = (&'a str, &'a str, &'a UploadFile, Vec, (bool, usize, usize)); + let cases: Vec = vec![ + ("all_accepted", "an empty body: every report accepted", &three, vec![], (true, 3, 0)), + ("each_error", "one report for each DAP report error, 1 to 10: report_too_early's is kept", &ten, encode_upload_errors(&each), (true, 9, 1)), + ("unknown_error_value", "an error value DAP does not define: kept", &three, encode_upload_errors(&[(ids3[1], 11)]), (true, 2, 1)), + ("foreign_response", "an entry for an id not in the file", &three, encode_upload_errors(&[([0xEE; 16], 2)]), (false, 0, 3)), + ("out_of_order_response", "two entries out of the file's order", &three, encode_upload_errors(&[(ids3[2], 2), (ids3[0], 2)]), (false, 0, 3)), + ("truncated_response", "an entry a byte short", &three, encode_upload_errors(&[(ids3[0], 2)])[..16].to_vec(), (false, 0, 3)), + ]; + let mut out = Vec::new(); + for (name, about, file, response, want) in cases { + let s = settle(file, &response); + assert_eq!((s.settles, s.delete.len(), s.keep.len()), want, "settle {name}"); + out.push(json!({"name": name, "about": about, "sent": hex(&file.encode()), "response": hex(&response), "outcome": settle_json(&s)})); + } + out +} + +// ───────────────────────────── §8.1 receipts, §8.2 tables ───────────────────────────── + +fn receipt_outcome(b: &[u8], reports: Option<&[GivenReport]>, cat: &[u8]) -> Value { + match verify_receipt(b, reports, cat) { + Ok(v) => { + let a = &v.receipt; + json!({ + "outcome": "accept", + "digest": hex(&a.digest), + "task_id": hex(&a.task_id), + "measure": crate::telemetry_aggregate::measure::name(a.measure), + "vdaf": a.vdaf, + "vdaf_config": hex(&a.vdaf_config), + "scope": hex(&a.scope), + "time_precision": a.time_precision, + "min_batch_size": a.min_batch_size, + "batch": interval_json(&a.batch), + "interval": interval_json(&a.interval), + "report_count": a.report_count, + "result": a.result.iter().map(|&x| json!(x as u64)).collect::>(), + "leader": hex(&a.leader), + "helper": hex(&a.helper), + "collector": hex(&a.collector), + "reports_checked": v.reports_checked, + }) + } + Err((r, at)) => json!({"outcome": "refuse", "reason": r, "at": at}), + } +} + +/// Statements and a receipt over `reps` for `task`, signed with the task's keys. +fn crafted(fx: &Fx, task: &Task, coll: &CollectionJobReq, reps: &[Committed]) -> Receipt { + let w = &fx.w; + let (mut la, mut ha, mut checksum) = (task.vdaf.agg_init(), task.vdaf.agg_init(), [0u8; 32]); + for (rid, _, lo, ho, _) in reps { + la = task.vdaf.merge(&la, lo).expect("a share"); + ha = task.vdaf.merge(&ha, ho).expect("a share"); + xor32(&mut checksum, &report_checksum(rid)); + } + let batch = coll.interval().expect("an interval"); + let (a, b) = (reps.iter().map(|r| r.1).min().unwrap_or(batch.start), reps.iter().map(|r| r.1).max().unwrap_or(batch.start)); + let n = reps.len() as u64; + let ls = Statement::signed(&w.leader.signing, ROLE_LEADER, task.id, coll, batch, n, checksum, la.clone()); + let hs = Statement::signed(&w.helper.signing, ROLE_HELPER, task.id, coll, batch, n, checksum, ha.clone()); + Receipt { + task: task.config.encode(), + collection: coll.encode(), + interval: Interval { start: a, duration: b - a + 1 }, + leader: ls.encode(), + helper: hs.encode(), + result: task.vdaf.unshard(&[la, ha]).expect("shares"), + signer: [0; 32], + sig: [0; 64], + } + .sign(&w.collector_sign) +} + +/// `share`, each element `(i, x)` of `deltas` added to element `i` in Field128. +fn shifted(share: &[u8], deltas: &[(usize, u128)]) -> Vec { + let v: Vec = decode_vec(share).expect("a share"); + let mut d = vec![F128::zero(); v.len()]; + for (i, x) in deltas { + d[*i] = F128::from_u128(*x); + } + encode_vec(&vec_add(&v, &d)) +} + +/// `r` with the leader's share shifted, the statement and the receipt signed again. +fn with_leader_shift(fx: &Fx, task: &Task, r: &Receipt, deltas: &[(usize, u128)]) -> Receipt { + let mut l = Statement::decode(&r.leader).expect("a statement"); + l.agg_share = shifted(&l.agg_share, deltas); + let l = l.resigned(&fx.w.leader.signing); + let h = Statement::decode(&r.helper).expect("a statement"); + let mut rc = r.clone(); + rc.result = task.vdaf.unshard(&[l.agg_share.clone(), h.agg_share]).expect("shares"); + rc.leader = l.encode(); + rc.sign(&fx.w.collector_sign) +} + +struct RCase { + name: &'static str, + about: &'static str, + receipt: Vec, + catalogue: Vec, + reports: Option>, + expect: &'static str, +} + +fn table_json(t: &Result, cat: Option<&Catalogue>) -> Value { + let row = |r: &Row| { + let column = cat.map_or_else(String::new, |c| c.column_name(r.column)); + json!({"creative": r.creative, "column": column, "presentations": r.presentations, "quartiles": r.quartiles, "floor_met": r.floor_met}) + }; + match t { + Err(r) => json!({"outcome": "refuse", "reason": r}), + Ok(t) => json!({ + "outcome": "table", + "receipts": t.entries.iter().map(|e| { + let mut j = json!({"digest": e.digest.map(|d| hex(&d)), "verdict": e.verdict.label()}); + if let Some(s) = &e.standing { + j["batch"] = json!({"start": s.batch.start, "duration": s.batch.duration, "from_ms": s.from_ms, "to_ms": s.to_ms}); + j["collectable_from_ms"] = s.collectable_from_ms.into(); + j["report_count"] = s.report_count.into(); + j["reports_checked"] = s.reports_checked.into(); + j["rows"] = Value::Array(s.rows.iter().map(row).collect()); + } + j + }).collect::>(), + "totals": { + "batches": t.totals.batches.iter().map(interval_json).collect::>(), + "reports_checked": t.totals.reports_checked, + "rows": t.totals.rows.iter().map(row).collect::>(), + }, + }), + } +} + +fn table_outcome(v: &Value) -> Value { + let cat_b = hx(&v["catalogue"]); + let task = hx(&v["task"]); + let receipts: Vec<(Vec, Option>)> = v["receipts"].as_array().into_iter().flatten().map(|r| (hx(&r["receipt"]), given_of(&r["reports"]))).collect(); + table_json(&table(&cat_b, &task, &receipts), Catalogue::parse(&cat_b).ok().as_ref()) +} + +// ───────────────────────────── the whole corpus ───────────────────────────── + +/// A standing receipt's name, its result and its committed reports' cells. +type StandingReceipt = (&'static str, Vec, Vec>); + +/// What a build of the corpus leaves: the document, and what the equivalence check reads. +struct Built { + doc: Value, + /// Each standing receipt's name, result and committed cells. + standing: Vec, + /// The flight's claims of committed presentations, by record, and the records and inputs + /// stitched presentation reads them with. + flight_claims: Vec<(&'static str, Vec)>, + records: Vec<(&'static str, Vec)>, + manifests: Vec>, + creatives: Vec, + flight_catalogue: Catalogue, + flight_totals: Value, +} + +fn build() -> Built { + let fx = fixtures(); + let w = &fx.w; + let mut accepted: BTreeMap<&'static str, Accepted> = BTreeMap::new(); + accepted.insert("flight", fx.accept(&fx.tf_flight)); + accepted.insert("open", fx.accept(&fx.tf_open)); + accepted.insert("twin", fx.accept(&fx.tf_twin)); + let (flight, open, twin) = (&accepted["flight"], &accepted["open"], &accepted["twin"]); + // The flows. + let fl = flight_flow(&fx, flight); + let open_specs: Vec = (0..50u64).map(|i| PSpec { record: "rec_terms", ad: 0, quartile: (i % 5) as u8 + 1, region: None, at_ms: START_MS + (i * 60 + 10) * 1000 }).collect(); + let foreign = token_ext(&mint(&open.task.id, &id16(&[b"report", b"open/token_extension"]), b"open/token_extension")); + let none = Extensions::new(); + let open_extra = vec![( + "token_extension", + crafted_report(open, "open", "token_extension", H0, &one_hot(open, 0), &none, [&foreign, &foreign]), + "invalid_message", + "a report token in a task whose catalogue does not attest", + )]; + let of = simple_flow(&fx, open, "open", "r_open", &open_specs, open_extra, Interval { start: H0, duration: 1 }); + let twin_specs: Vec = (0..50u64) + .map(|i| { + let (ad, region) = [(0, Some("XA")), (1, Some("XB-1")), (1, None), (0, Some("XA-7")), (1, Some("XA"))][(i % 5) as usize]; + PSpec { record: "rec_dash", ad, quartile: ((i / 5) % 5) as u8 + 1, region, at_ms: START_MS + (i * 60 + 20) * 1000 } + }) + .collect(); + let tw = simple_flow(&fx, twin, "twin", "r_twin", &twin_specs, vec![], Interval { start: H0, duration: 1 }); + let last = H0 + HOURS - 1; + let past_specs: Vec = (0..50u64).map(|i| PSpec { record: "rec_terms", ad: 0, quartile: 5, region: None, at_ms: last * HOUR_MS + (i * 60 + 10) * 1000 }).collect(); + let past = simple_flow(&fx, open, "past_task", "past_task", &past_specs, vec![], Interval { start: last, duration: 2 }); + let get = |f: &FlowOut, n: &str| -> (Receipt, Vec) { + let g = f.got.iter().find(|g| g.name == n).expect("a receipt"); + (g.receipt.clone(), g.committed.clone()) + }; + let (r0, c0) = get(&fl, "r0"); + let (r12, c12) = get(&fl, "r12"); + let (r_open, c_open) = get(&of, "r_open"); + let (r_twin, c_twin) = get(&tw, "r_twin"); + let (r_past, _) = get(&past, "past_task"); + // §8.1 receipts. + let fcat = fx.cat_flight.encode(); + let ocat = fx.cat_open.encode(); + let g0 = given(&flight.task.id, &c0); + let g12 = given(&flight.task.id, &c12); + let g_open = given(&open.task.id, &c_open); + let g_twin = given(&twin.task.id, &c_twin); + let k_zero = fx.cat_flight.cell(1, 2, 1); + assert_eq!(r0.result[k_zero], 0, "a cell of r0 that holds 0"); + let mut flipped = r0.encode(); + let n = flipped.len(); + flipped[n - 1] ^= 0x01; + let mut badcat = fcat.clone(); + badcat[4] = 2; + let outcomes_task = Task::new(fx.cfg_flight.with(|c| { + let v = crate::telemetry_aggregate::measure::vdaf(crate::telemetry_aggregate::measure::OUTCOMES).expect("a measure"); + c.measure = crate::telemetry_aggregate::measure::OUTCOMES; + c.scope = [0; 32]; + c.extensions.clear(); + c.vdaf_type = v.id(); + c.vdaf_config = v.dap_config(); + }).config()) + .expect("an outcomes task"); + let b0 = Interval { start: H0, duration: 1 }; + let qoe = { + let coll = CollectionJobReq::time_interval(b0); + let zero = outcomes_task.vdaf.agg_init(); + let ls = Statement::signed(&w.leader.signing, ROLE_LEADER, outcomes_task.id, &coll, b0, 50, [0; 32], zero.clone()); + let hs = Statement::signed(&w.helper.signing, ROLE_HELPER, outcomes_task.id, &coll, b0, 50, [0; 32], zero.clone()); + Receipt { + task: outcomes_task.config.encode(), + collection: coll.encode(), + interval: b0, + leader: ls.encode(), + helper: hs.encode(), + result: outcomes_task.vdaf.unshard(&[zero.clone(), zero]).expect("shares"), + signer: [0; 32], + sig: [0; 64], + } + .sign(&w.collector_sign) + }; + assert!(receipt::verify(&qoe.encode(), None).is_ok(), "telemetry-aggregation accepts the outcomes receipt"); + let r012 = crafted(&fx, &flight.task, &CollectionJobReq::time_interval(Interval { start: H0, duration: 3 }), &[c0.clone(), c12.clone()].concat()); + let rcases = vec![ + RCase { name: "r0", about: "the flight's bucket b0, with its reports", receipt: r0.encode(), catalogue: fcat.clone(), reports: Some(g0.clone()), expect: "accept" }, + RCase { name: "r12", about: "the flight's buckets b1 and b2, with their reports", receipt: r12.encode(), catalogue: fcat.clone(), reports: Some(g12.clone()), expect: "accept" }, + RCase { name: "r_open", about: "the open flow's receipt, under its catalogue", receipt: r_open.encode(), catalogue: ocat.clone(), reports: Some(g_open.clone()), expect: "accept" }, + RCase { name: "r_twin", about: "the twin flow's receipt, under the flight's catalogue", receipt: r_twin.encode(), catalogue: fcat.clone(), reports: Some(g_twin.clone()), expect: "accept" }, + RCase { name: "r0_without_reports", about: "r0 with no reports given: step 11 does not run", receipt: r0.encode(), catalogue: fcat.clone(), reports: None, expect: "accept" }, + RCase { + name: "count_mismatch", + about: "the leader's share plus 1 at cell 0, its statement and the receipt signed again", + receipt: with_leader_shift(&fx, &flight.task, &r0, &[(0, 1)]).encode(), + catalogue: fcat.clone(), + reports: Some(g0.clone()), + expect: COUNT_MISMATCH, + }, + RCase { + name: "count_wrapped", + about: "the leader's share plus 1 at cell 0 and minus 1 at a cell that holds 0: the field's sum is the count, an element is the modulus less 1", + receipt: with_leader_shift(&fx, &flight.task, &r0, &[(0, 1), (k_zero, F128::MODULUS - 1)]).encode(), + catalogue: fcat.clone(), + reports: Some(g0.clone()), + expect: COUNT_MISMATCH, + }, + RCase { + name: "batch_past_task", + about: "fifty reports of the task interval's last hour, collected over that hour and the next", + receipt: r_past.encode(), + catalogue: ocat.clone(), + reports: None, + expect: QoeReason::BatchInvalid.code(), + }, + RCase { name: "r_open_against_flight", about: "the open flow's receipt against the flight's catalogue", receipt: r_open.encode(), catalogue: fcat.clone(), reports: None, expect: CATALOGUE_MISMATCH }, + RCase { + name: "qoe_receipt", + about: "a receipt of an outcomes task, which telemetry-aggregation §8.1 accepts", + receipt: qoe.encode(), + catalogue: fcat.clone(), + reports: None, + expect: CATALOGUE_MISMATCH, + }, + RCase { + name: "batch_49", + about: "statements and a receipt over 49 of b0's reports", + receipt: crafted(&fx, &flight.task, &CollectionJobReq::time_interval(b0), &c0[..49]).encode(), + catalogue: fcat.clone(), + reports: None, + expect: QoeReason::BatchTooSmall.code(), + }, + RCase { name: "flipped_receipt_sig", about: "r0, one bit of its signature flipped", receipt: flipped, catalogue: fcat.clone(), reports: None, expect: "bad_signature" }, + RCase { name: "catalogue_unreadable", about: "r0 against a catalogue of version 2", receipt: r0.encode(), catalogue: badcat.clone(), reports: None, expect: CATALOGUE_MALFORMED }, + RCase { + name: "reports_given_other_task", + about: "r0 with its reports stated as uploaded to the twin task", + receipt: r0.encode(), + catalogue: fcat.clone(), + reports: Some(given(&twin.task.id, &c0)), + expect: QoeReason::BatchMismatch.code(), + }, + ]; + let mut receipts = Vec::new(); + for c in &rcases { + let got = receipt_outcome(&c.receipt, c.reports.as_deref(), &c.catalogue); + let reached = if got["outcome"] == "accept" { "accept" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, c.expect, "receipt {}: {got}", c.name); + receipts.push(json!({"name": c.name, "about": c.about, "receipt": hex(&c.receipt), "catalogue": hex(&c.catalogue), "reports": c.reports.as_deref().map(given_json), "outcome": got})); + } + // §8.2 tables. + let ftask = fx.cfg_flight.bytes(); + let rj = |r: &Receipt, g: Option<&[GivenReport]>| json!({"receipt": hex(&r.encode()), "reports": g.map(given_json)}); + // Each table: its name, what it is, the catalogue, the task, the receipts, and the outcome it + // is written to have. + type TableCase<'a> = (&'a str, &'a str, Vec, Vec, Vec, &'a str); + let tcases: Vec = vec![ + ("flight", "r0 and r12 with their reports", fcat.clone(), ftask.clone(), vec![rj(&r0, Some(&g0[..])), rj(&r12, Some(&g12[..]))], "table"), + ("flight_reports_unchecked", "r0 without its reports, and r12", fcat.clone(), ftask.clone(), vec![rj(&r0, None), rj(&r12, Some(&g12[..]))], "table"), + ("flight_same_receipt_twice", "r0 twice, and r12", fcat.clone(), ftask.clone(), vec![rj(&r0, Some(&g0[..])), rj(&r0, Some(&g0[..])), rj(&r12, Some(&g12[..]))], "table"), + ( + "flight_same_receipt_checked_first", + "r0 with its reports, r0 without them, and r12", + fcat.clone(), + ftask.clone(), + vec![rj(&r0, Some(&g0[..])), rj(&r0, None), rj(&r12, Some(&g12[..]))], + "table", + ), + ( + "flight_same_receipt_checked_second", + "r0 without its reports, r0 with them, and r12", + fcat.clone(), + ftask.clone(), + vec![rj(&r0, None), rj(&r0, Some(&g0[..])), rj(&r12, Some(&g12[..]))], + "table", + ), + ("flight_overlap", "r0, r12 and a validly signed receipt over b0 to b2", fcat.clone(), ftask.clone(), vec![rj(&r0, Some(&g0[..])), rj(&r12, Some(&g12[..])), rj(&r012, None)], "table"), + ("flight_foreign", "r0, the twin task's receipt and the open catalogue's", fcat.clone(), ftask.clone(), vec![rj(&r0, Some(&g0[..])), rj(&r_twin, Some(&g_twin[..])), rj(&r_open, Some(&g_open[..]))], "table"), + ("table_catalogue_unreadable", "a catalogue of version 2", badcat.clone(), ftask.clone(), vec![rj(&r0, None)], CATALOGUE_MALFORMED), + ("table_task_floor_49", "a task of minimum batch size 49", fcat.clone(), fx.cfg_flight.with(|c| c.min_batch = 49).bytes(), vec![rj(&r0, None)], QoeReason::FloorTooLow.code()), + ]; + let mut tables = Vec::new(); + let mut flight_totals = Value::Null; + for (name, about, cat, task, rs, expect) in tcases { + let mut j = json!({"name": name, "about": about, "catalogue": hex(&cat), "task": hex(&task), "receipts": rs}); + let got = table_outcome(&j); + let reached = if got["outcome"] == "table" { "table" } else { got["reason"].as_str().unwrap_or("") }; + assert_eq!(reached, expect, "table {name}: {got}"); + if name == "flight" { + flight_totals = got["totals"].clone(); + } + j["outcome"] = got; + tables.push(j); + } + check_tables(&tables, &fx.cat_flight); + // The rest of the cases. + let merged_file = hx(&fl.json["steps"][3]["file"]); + let doc = json!({ + "corpus": "wai.delivery.impressions", + "extension": "extensions/impression-aggregates.md", + "drafts": {"dap": "draft-ietf-ppm-dap-20", "vdaf": "draft-irtf-cfrg-vdaf-22"}, + "flight": {"start_ms": START_MS, "time_precision": TP, "first_hour": H0, "hours": HOURS}, + "keys": { + "task_origin": ORIGIN, + "t1": hex(&pk(&w.t1)), + "t2": hex(&pk(&w.t2)), + "d1": hex(&pk(&w.d1)), + "stranger_origin": STRANGER_ORIGIN, + "s1": hex(&pk(&w.s1)), + "stitcher": hex(&pk(&w.stitcher)), + "stranger_stitcher": hex(&pk(&w.stranger_stitcher)), + "leader": hex(&pk(&w.leader.signing)), + "helper": hex(&pk(&w.helper.signing)), + "collector": hex(&pk(&w.collector_sign)), + "stranger": hex(&pk(&w.stranger)), + "leader_hpke": {"config": hex(&w.leader.hpke.encode()), "private_key": hex(&w.leader.hpke_sk)}, + "helper_hpke": {"config": hex(&w.helper.hpke.encode()), "private_key": hex(&w.helper.hpke_sk)}, + "collector_hpke": {"config": hex(&w.collector.encode()), "private_key": hex(&w.collector_sk)}, + "verify_key_seed": hex(&w.verify_key_seed), + "issuer": {"name": String::from_utf8_lossy(ISSUER_NAME), "token_type": token_type::BLIND_RSA, "key": RFC9578_PKI}, + }, + "fixtures": { + "creatives": {"A": creative_json(&fx.a), "B": creative_json(&fx.b), "C": creative_json(&fx.c)}, + "manifests": Value::Object(fx.manifests.iter().map(|(n, m)| (n.to_string(), Value::String(String::from_utf8_lossy(m).into_owned()))).collect()), + "records": Value::Object(fx.records.iter().map(|r| (r.name.to_string(), json!({"about": r.about, "bytes": hex(&r.bytes), "manifest": r.manifest}))).collect()), + "catalogues": {"flight": hex(&fx.cat_flight.encode()), "open": hex(&fx.cat_open.encode()), "bound": hex(&fx.cat_bound.encode())}, + "tasks": {"flight": hex(&fx.cfg_flight.bytes()), "twin": hex(&fx.cfg_twin.bytes()), "open": hex(&fx.cfg_open.bytes())}, + "key_logs": {"rev0": fx.rev0.to_json(), "rev1": fx.rev1.to_json(), "stranger": fx.stranger_rev.to_json()}, + "anchors": {"pinned": anchor_json(&fx.pinned), "fetched": anchor_json(&fx.fetched)}, + "receiver": {"revisions": ["rev0", "rev1", "stranger"], "anchors": ["pinned"]}, + "task_files": {"flight": hex(&fx.tf_flight), "open": hex(&fx.tf_open), "twin": hex(&fx.tf_twin)}, + }, + "catalogues": catalogue_cases(&fx), + "tasks": task_cases(&fx), + "task_files": task_file_cases(&fx), + "contributions": contribution_cases(&fx, &accepted), + "flows": [fl.json, of.json, tw.json, past.json], + "uploads": upload_cases(open, &merged_file), + "plans": plan_cases(open), + "settles": settle_cases(open), + "receipts": receipts, + "tables": tables, + "codes": CODES, + }); + let standing = vec![ + ("r0", r0.result.clone(), c0.iter().map(|c| c.4).collect()), + ("r12", r12.result.clone(), c12.iter().map(|c| c.4).collect()), + ("r_open", r_open.result.clone(), c_open.iter().map(|c| c.4).collect()), + ("r_twin", r_twin.result.clone(), c_twin.iter().map(|c| c.4).collect()), + ]; + Built { + doc, + standing, + flight_claims: fl.claims, + records: fx.records.iter().map(|r| (r.name, r.bytes.clone())).collect(), + manifests: fx.manifest_list(), + creatives: fx.creatives(), + flight_catalogue: fx.cat_flight.clone(), + flight_totals, + } +} + +/// The figures §8.10 states of the flight's tables. +fn check_tables(tables: &[Value], cat: &Catalogue) { + let t = |n: &str| tables.iter().find(|x| x["name"] == n).expect("a table")["outcome"].clone(); + let row = |rows: &Value, creative: usize, column: &str| -> Value { + rows.as_array().into_iter().flatten().find(|r| r["creative"] == creative && r["column"] == column).cloned().unwrap_or(Value::Null) + }; + let flight = t("flight"); + let r0 = &flight["receipts"][0]["rows"]; + assert_eq!(row(r0, 0, "XA")["presentations"], 50); + assert_eq!(row(r0, 0, "XA")["floor_met"], true); + assert_eq!(r0.as_array().map(|a| a.iter().filter(|r| r["presentations"] != 0).count()), Some(1)); + let r12 = &flight["receipts"][1]["rows"]; + assert_eq!(row(r12, 1, "other")["presentations"], 49); + assert_eq!(row(r12, 1, "other")["floor_met"], false); + assert_eq!(row(r12, 0, "XB-1")["presentations"], 1); + assert_eq!(flight["totals"]["rows"].as_array().map(Vec::len), Some(cat.creatives.len() * cat.columns())); + assert_eq!(t("flight_reports_unchecked")["totals"]["reports_checked"], false); + assert_eq!(t("flight_same_receipt_twice")["totals"], flight["totals"]); + // A receipt given with its reports and without them is checked, in either order. + for (name, unchecked) in [("flight_same_receipt_checked_first", 1), ("flight_same_receipt_checked_second", 0)] { + let x = t(name); + assert_eq!(x["receipts"][unchecked]["reports_checked"], false, "{name}"); + assert_eq!(x["receipts"][1 - unchecked]["reports_checked"], true, "{name}"); + assert_eq!(x["totals"], flight["totals"], "{name}"); + } + assert_eq!(flight["totals"]["reports_checked"], true); + let o = t("flight_overlap"); + for k in 0..3 { + assert_eq!(o["receipts"][k]["verdict"], format!("set-aside reason={RECEIPTS_OVERLAP}")); + } + assert_eq!(o["totals"]["rows"], json!([])); + let f = t("flight_foreign"); + assert_eq!(f["receipts"][1]["verdict"], "refuse reason=task_mismatch at=task"); + assert_eq!(f["receipts"][2]["verdict"], format!("refuse reason={CATALOGUE_MISMATCH} at=task")); +} + +/// The corpus, as `(file name, contents)`. +pub fn generate() -> Vec<(String, String)> { + let mut s = serde_json::to_string_pretty(&build().doc).expect("JSON"); + s.push('\n'); + vec![("vectors.json".to_owned(), s)] +} + +/// §8.11, in the test and not stored: each standing receipt's result is the plaintext tally +/// of its committed contributions' cells, and stitched presentation's own verifier, run over +/// the flight's claims with step 11 left out, gives per creative the presentations and +/// quartile counts the flight's table gives summed over its columns. The failures. +pub fn equivalence() -> Vec { + let b = build(); + let mut fails = Vec::new(); + for (name, result, cells) in &b.standing { + let mut tally = vec![0u128; result.len()]; + for c in cells { + match c { + Some(c) => tally[*c] += 1, + None => fails.push(format!("{name}: a committed report with no contribution")), + } + } + if &tally != result { + fails.push(format!("{name}: the result is not its contributions' tally")); + } + } + let records: Vec> = b.records.iter().filter(|r| r.0 == "rec_dash" || r.0 == "rec_hls").map(|r| r.1.clone()).collect(); + let claims: Vec> = b.flight_claims.iter().map(|c| c.1.clone()).collect(); + let input = sp::Input { + records: &records, + claims: &claims, + manifests: &b.manifests, + responses: &[], + receipts: &[], + creatives: &b.creatives, + issuers: &[], + signers: &b.flight_catalogue.signers, + }; + let v = sp::verify_through(&input, false); + let mut by_creative: BTreeMap<[u8; 32], (u64, [u64; 5])> = BTreeMap::new(); + for (k, rf) in v.records.iter().enumerate() { + let rec = PodInput::parse(&records[k]).expect("a record"); + for a in &rf.ads { + let e = by_creative.entry(rec.ads[a.slot as usize].creative_hash).or_default(); + e.0 += a.presentations; + for q in 0..5 { + e.1[q] += a.quartiles[q]; + } + } + } + let cat = &b.flight_catalogue; + for (i, digest) in cat.creatives.iter().enumerate() { + let rows: Vec<&Value> = b.flight_totals["rows"].as_array().into_iter().flatten().filter(|r| r["creative"] == i).collect(); + let p: u64 = rows.iter().map(|r| r["presentations"].as_u64().unwrap_or(0)).sum(); + let mut q = [0u64; 5]; + for r in &rows { + for (k, slot) in q.iter_mut().enumerate() { + *slot += r["quartiles"][k].as_u64().unwrap_or(0); + } + } + let want = by_creative.get(digest).copied().unwrap_or_default(); + if (p, q) != want { + fails.push(format!("creative {i}: the table gives {p} and {q:?}, stitched presentation {want:?}")); + } + } + fails +} + +// ───────────────────────────── verify ───────────────────────────── + +/// Every case of the corpus against this module: the failures. The flows are checked by +/// regenerating the file byte for byte. +pub fn verify(files: &BTreeMap) -> Vec { + let Some(text) = files.get("vectors.json") else { return vec!["vectors.json is missing".into()] }; + let doc: Value = match serde_json::from_str(text) { + Ok(d) => d, + Err(e) => return vec![format!("vectors.json does not parse: {e}")], + }; + let mut fails = Vec::new(); + let mut check = |section: &str, v: &Value, got: Value| { + if got != v["outcome"] { + fails.push(format!("{section} {}: stated {}, got {got}", v["name"], v["outcome"])); + } + }; + let fx = &doc["fixtures"]; + let revision = |n: &str| Revision::from_json(fx["key_logs"][n].as_str().unwrap_or("")).ok(); + let anchor = |n: &str| anchor_of(&fx["anchors"][n]); + let names = |v: &Value| -> Vec { v.as_array().into_iter().flatten().filter_map(|x| x.as_str().map(String::from)).collect() }; + let held = |r: &Value, a: &Value| -> (Vec, Vec) { + (names(r).iter().filter_map(|n| revision(n)).collect(), names(a).iter().filter_map(|n| anchor(n)).collect()) + }; + for v in doc["catalogues"].as_array().into_iter().flatten() { + check("catalogue", v, catalogue_outcome(&hx(&v["bytes"]))); + } + for v in doc["tasks"].as_array().into_iter().flatten() { + check("task", v, task_outcome(&hx(&v["task"]), &hx(&v["catalogue"]))); + } + for v in doc["task_files"].as_array().into_iter().flatten() { + let (r, a) = held(&v["revisions"], &v["anchors"]); + check("task file", v, task_file_outcome(&r, &a, &hx(&v["bytes"]))); + } + let (rr, ra) = held(&fx["receiver"]["revisions"], &fx["receiver"]["anchors"]); + let mut accepted: BTreeMap = BTreeMap::new(); + for (n, b) in fx["task_files"].as_object().into_iter().flatten() { + if let Ok(a) = accept(&hx(b), &rr, &ra, None) { + accepted.insert(n.clone(), a); + } + } + let manifests: Vec> = fx["manifests"].as_object().into_iter().flatten().map(|(_, m)| m.as_str().unwrap_or("").as_bytes().to_vec()).collect(); + let creatives: Vec = fx["creatives"].as_object().into_iter().flatten().map(|(_, c)| creative_of(c)).collect(); + for v in doc["contributions"].as_array().into_iter().flatten() { + let Some(tf) = v["task_file"].as_str().and_then(|n| accepted.get(n)) else { + check("contribution", v, json!({"outcome": "no task file"})); + continue; + }; + let record = hx(&fx["records"][v["record"].as_str().unwrap_or("")]["bytes"]); + let claims: Vec> = v["claims"].as_array().into_iter().flatten().map(hx).collect(); + let region = v["region"].as_str().map(str::as_bytes); + let pool: Vec<([u8; 16], Vec)> = v["pool"].as_array().into_iter().flatten().map(|p| (arr(&p["id"]), hx(&p["token"]))).collect(); + let input = ContributionInput { task: tf, record: &record, manifests: &manifests, creatives: &creatives, claims: &claims, region, at_ms: v["at_ms"].as_u64(), pool: &pool }; + check("contribution", v, contribution_json(&contribution(&input), &tf.catalogue)); + } + for v in doc["uploads"].as_array().into_iter().flatten() { + check("upload", v, upload_outcome(&hx(&v["bytes"]))); + } + for v in doc["plans"].as_array().into_iter().flatten() { + let Some(tf) = v["task_file"].as_str().and_then(|n| accepted.get(n)) else { continue }; + let reports: Vec = v["stored"].as_array().into_iter().flatten().filter_map(|r| Report::decode(&hx(r)).ok()).collect(); + let got = plan_json(&plan(tf, &reports, v["t_ms"].as_u64().unwrap_or(0), v["budget"].as_u64())); + check("plan", v, got); + } + for v in doc["settles"].as_array().into_iter().flatten() { + let got = match UploadFile::parse(&hx(&v["sent"])) { + Ok(f) => settle_json(&settle(&f, &hx(&v["response"]))), + Err(r) => json!({"outcome": "refuse", "reason": r}), + }; + check("settle", v, got); + } + for v in doc["receipts"].as_array().into_iter().flatten() { + let g = given_of(&v["reports"]); + check("receipt", v, receipt_outcome(&hx(&v["receipt"]), g.as_deref(), &hx(&v["catalogue"]))); + } + for v in doc["tables"].as_array().into_iter().flatten() { + check("table", v, table_outcome(v)); + } + // Every reason of §10 is raised by a case, and no case raises a code outside §10 and the + // codes it reuses. + let mut raised: Vec = Vec::new(); + for s in ["catalogues", "tasks", "task_files", "contributions", "uploads", "receipts", "tables"] { + for v in doc[s].as_array().into_iter().flatten() { + if let Some(r) = v["outcome"]["reason"].as_str() { + raised.push(r.to_owned()); + } + for e in v["outcome"]["receipts"].as_array().into_iter().flatten() { + if let Some(l) = e["verdict"].as_str() + && let Some(r) = l.split("reason=").nth(1) + { + raised.push(r.split(' ').next().unwrap_or("").to_owned()); + } + } + } + } + for c in CODES { + if !raised.iter().any(|r| r == c) { + fails.push(format!("no case raises {c}")); + } + } + fails +} + +#[cfg(test)] +mod tests { + use super::*; + + /// Statements and a receipt of `batch` stating `n` reports, every one at `cell`, signed with + /// the task's keys. It is given without reports, so §8.1 step 11 does not run. + fn counted_at(fx: &Fx, task: &Task, batch: Interval, n: u64, cell: usize) -> Receipt { + let coll = CollectionJobReq::time_interval(batch); + let (la, ha) = (shifted(&task.vdaf.agg_init(), &[(cell, u128::from(n))]), task.vdaf.agg_init()); + let checksum = [0x5a; 32]; + let ls = Statement::signed(&fx.w.leader.signing, ROLE_LEADER, task.id, &coll, batch, n, checksum, la.clone()); + let hs = Statement::signed(&fx.w.helper.signing, ROLE_HELPER, task.id, &coll, batch, n, checksum, ha.clone()); + Receipt { + task: task.config.encode(), + collection: coll.encode(), + interval: Interval { start: batch.start, duration: 1 }, + leader: ls.encode(), + helper: hs.encode(), + result: task.vdaf.unshard(&[la, ha]).expect("shares"), + signer: [0; 32], + sig: [0; 64], + } + .sign(&fx.w.collector_sign) + } + + /// §8.2: the totals are exact past 2^64 − 1. Two receipts of the flight's first two hours, + /// each of 2^63 reports at the first creative's first column and quartile, both stand, and + /// that row's total is 2^64. + #[test] + fn the_totals_past_two_to_the_64() { + let fx = fixtures(); + let flight = fx.accept(&fx.tf_flight); + let half = 1u64 << 63; + let receipts: Vec<(Vec, Option>)> = + (0..2).map(|h| (counted_at(&fx, &flight.task, Interval { start: H0 + h, duration: 1 }, half, 0).encode(), None)).collect(); + let t = table(&fx.cat_flight.encode(), &fx.cfg_flight.bytes(), &receipts).expect("a table"); + for e in &t.entries { + assert_eq!(e.verdict, Verdict::Stands); + let s = e.standing.as_ref().expect("a standing receipt"); + assert_eq!((s.report_count, s.rows[0].presentations), (half, u128::from(half))); + } + let two_64 = 1u128 << 64; + let first = &t.totals.rows[0]; + assert_eq!((first.creative, first.column), (0, 0)); + assert_eq!(first.presentations, two_64); + assert_eq!(first.quartiles, [two_64, 0, 0, 0, 0]); + assert!(first.floor_met); + assert!(t.totals.rows[1..].iter().all(|r| r.presentations == 0 && !r.floor_met)); + assert_eq!(t.totals.batches.len(), 2); + assert!(!t.totals.reports_checked); + } +} diff --git a/wai/wai-rs/src/key_log.rs b/wai/wai-rs/src/key_log.rs index 661cc3a2e..0848229ca 100644 --- a/wai/wai-rs/src/key_log.rs +++ b/wai/wai-rs/src/key_log.rs @@ -85,14 +85,16 @@ pub fn status_ceiling_s() -> u64 { pub const HARDWARE_CLASSES: &[&str] = &["CalibratedInstrument", "OnChipCounter", "HwShunt"]; /// Authorities a verifier confirms only under a pinned anchor (§7.5): the hardware-class -/// energy authorities and the lawful-basis authorities. An authority registered for -/// pre-emption joins this set and [`PREEMPTION_AUTHORITIES`]. +/// energy authorities, the lawful-basis authorities and `aggregate/task` +/// (impression-aggregates §5.4). An authority registered for pre-emption joins this set and +/// [`PREEMPTION_AUTHORITIES`]. pub const PINNED_ONLY: &[&str] = &[ "energy/CalibratedInstrument", "energy/OnChipCounter", "energy/HwShunt", "lawful-basis/declaration", "lawful-basis/decision", + "aggregate/task", ]; /// Authorities registered for pre-emption (unidirectional-delivery §3). None is yet; one @@ -1196,6 +1198,15 @@ impl Item { Some(Item { signer_pubkey: view.signer?, signer_id: signer_id.into(), authorities, time: time.map(str::to_owned), pq_key: None }) } + /// A record of another WAI family whose signer must hold one named authority (§7.5), + /// untimed: an impression task file needs `aggregate/task` (impression-aggregates §5.4). + /// Crate-internal: the module that verified the record's signature builds it from the + /// key and `signer_id` its signed bytes carry. + #[cfg(feature = "impression_aggregate")] + pub(crate) fn with_authority(signer_pubkey: [u8; 32], signer_id: &str, authority: &str) -> Item { + Item { signer_pubkey, signer_id: signer_id.into(), authorities: vec![authority.into()], time: None, pq_key: None } + } + /// A module grant whose signature verified (§7.9): `module/
`, at `not_before`. fn for_grant(g: &ModuleGrant) -> Item { Item { @@ -1264,6 +1275,7 @@ pub fn subject_expectation(subject_confirmation: &Confirmation) -> Option Result<(), crate::container: /// §7.9 over a pinned parameter set at a sink ([`SinkKeyLog::check_set`]). #[derive(Clone, Debug, PartialEq, Eq)] +#[allow(clippy::large_enum_variant)] pub enum SetCheck { /// The relying party does not hold the capability's pinned sets to §7.9. NotHeldTo, diff --git a/wai/wai-rs/src/lib.rs b/wai/wai-rs/src/lib.rs index 124e5ed4b..c67d77746 100644 --- a/wai/wai-rs/src/lib.rs +++ b/wai/wai-rs/src/lib.rs @@ -367,6 +367,13 @@ pub mod sig; // energy figures and packaging policies canonicalise through this one function. pub mod jcs; +// Region codes (extensions/rung-price.md §2): the WAI family's one definition of a region code +// (ISO 3166-1 alpha-2 or ISO 3166-2, in capitals), its country and whether a list of codes holds +// one. Three pure functions with no dependency, so it is ungated: every extension that states a +// region uses it. +/// cbindgen:ignore +pub mod region; + // jwp-receipts §2.1: an object's content hash, BLAKE3 over a domain and the envelope. // One module, gated only on BLAKE3, so every receipt family computes it in one place. #[cfg(feature = "jwp_hash")] @@ -861,6 +868,34 @@ pub mod carousel; /// cbindgen:ignore #[cfg(feature = "holdings")] pub mod holdings; +// Timeliness (extensions/timeliness.md): `wai.delivery.timeliness` — when each object of a group is +// of use, by when, how its value falls after, and what is presented in its place; whether each +// holder held it in time, and which source an asker plans to take it from. Rust-only. +/// cbindgen:ignore +#[cfg(feature = "timeliness")] +pub mod timeliness; +// Rung price (extensions/rung-price.md): `wai.delivery.rung_price` — a seller's signed list of +// delivery prices by direction, bearer class, region, rate ceiling and unit; which list stands at +// an instant; and the comparison of delivery options per receiver. Rust-only. +/// cbindgen:ignore +#[cfg(feature = "rung_price")] +pub mod rung_price; +// Cache authority (extensions/cache-authority.md): `wai.delivery.cache` — the role `cache/serve` and +// the class authority `cache-transmission` a node's operator gives the caches and peers it runs; +// placing a server key by the heads a relying party names; the bearer verdict with a cache's own +// instances beside the publisher's; and how many of a stated population held an object by a +// deadline. Rust-only. +/// cbindgen:ignore +#[cfg(feature = "cache_authority")] +pub mod cache_authority; +// Impression aggregates (extensions/impression-aggregates.md): `wai.delivery.impressions` — ad +// presentations counted over a bearer with no return path, each reported once as a Prio3Histogram +// report of telemetry-aggregation's measure 5; the catalogue, the task file confirmed under a +// pinned key log with `aggregate/task`, the upload file, the upload plan, settlement, the report +// token, and the table a reader recomputes from the signed receipts. Rust-only. +/// cbindgen:ignore +#[cfg(feature = "impression_aggregate")] +pub mod impression_aggregate; // Exploration (extensions/exploration.md): `wai.media.exploration` — the descriptors of a // picture, quality-diversity archives over the exact generator that replay bit for bit, a work's // default-distance, collection statements, and taste as a declared, owned objective: taste diff --git a/wai/wai-rs/src/region.rs b/wai/wai-rs/src/region.rs new file mode 100644 index 000000000..b5f44380f --- /dev/null +++ b/wai/wai-rs/src/region.rs @@ -0,0 +1,92 @@ +//! Region codes — `extensions/rung-price.md` §2, the WAI family's one definition of a region +//! code, its country and *holds*. +//! +//! A region code is an ISO 3166-1 alpha-2 code (two capitals `A`–`Z`) or an ISO 3166-2 code (an +//! alpha-2 code, `-`, then 1 to 3 capitals or digits), written in capitals as WAI writes ISO 3166 +//! codes elsewhere. Its **country** is its first two characters. Whether ISO assigns a code is +//! not checked, and codes are compared byte for byte. A list of codes **holds** a code *r* when it +//! lists *r*, or when *r* is a subdivision code and the list names *r*'s country; it never holds a +//! country because it lists a subdivision of it. +//! +//! CDNI writes the same codes in lowercase (RFC 8006 §4.3.8 `countrycode`, RFC 9388 §2.1.1.1 +//! `subdivisioncode`): [`to_cdni`] and [`from_cdni`] change the case of the letters, exactly. +//! +//! Three pure functions with no dependency, behind no feature, so that every extension that +//! states a region uses this one module rather than a copy. + +/// §2: whether `s` is a region code, in capitals. +pub fn code(s: &[u8]) -> bool { + let alpha2 = |c: &[u8]| c.len() == 2 && c.iter().all(u8::is_ascii_uppercase); + match s.len() { + 2 => alpha2(s), + 4..=6 => alpha2(&s[..2]) && s[2] == b'-' && s[3..].iter().all(|c| c.is_ascii_uppercase() || c.is_ascii_digit()), + _ => false, + } +} + +/// Whether `s` is a subdivision code (ISO 3166-2), given that it is a region code. +pub fn subdivision(s: &[u8]) -> bool { + s.len() > 2 +} + +/// A code's country: its first two bytes (all of `s` when it is shorter). +pub fn country(s: &[u8]) -> &[u8] { + &s[..s.len().min(2)] +} + +/// §2 *Holds*: whether `listed`, in strictly ascending order of its bytes (as every footprint +/// is), lists `r`, or lists `r`'s country when `r` is a subdivision code. +pub fn holds>(listed: &[S], r: &[u8]) -> bool { + let has = |x: &[u8]| listed.binary_search_by(|l| l.as_ref().cmp(x)).is_ok(); + has(r) || (subdivision(r) && has(country(r))) +} + +/// A code in CDNI's lowercase form. +pub fn to_cdni(s: &str) -> String { + s.to_ascii_lowercase() +} + +/// A CDNI code in WAI's capitals; `None` when the result is not a region code. +pub fn from_cdni(s: &str) -> Option { + let c = s.to_ascii_uppercase(); + (code(c.as_bytes()) && to_cdni(&c) == s).then_some(c) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn the_grammar() { + for ok in ["XA", "XB-1", "XB-ABC", "XB-1A2", "US", "US-NY"] { + assert!(code(ok.as_bytes()), "{ok}"); + } + for bad in ["", "X", "xb", "XBB", "XB-", "XB-ABCD", "XB_1", "XB-a", "X1", "XB-1-", "XB1"] { + assert!(!code(bad.as_bytes()), "{bad}"); + } + assert_eq!(country(b"XB-1"), b"XB"); + assert_eq!(country(b"XB"), b"XB"); + } + + #[test] + fn a_footprint_holds_a_code_or_its_country_never_upward() { + let f = ["XA", "XB"]; + assert!(holds(&f, b"XB")); + assert!(holds(&f, b"XB-1"), "a subdivision, held by its country"); + assert!(!holds(&f, b"XC")); + assert!(!holds(&f, b"XC-1")); + let sub = vec![b"XB-1".to_vec()]; + assert!(holds(&sub, b"XB-1")); + assert!(!holds(&sub, b"XB"), "a country is never held by its subdivision"); + assert!(!holds(&sub, b"XB-2")); + } + + #[test] + fn the_cdni_case_mapping_is_exact() { + assert_eq!(to_cdni("XB-1A"), "xb-1a"); + assert_eq!(from_cdni("xb-1a").as_deref(), Some("XB-1A")); + assert_eq!(from_cdni("us-ny").as_deref(), Some("US-NY")); + assert_eq!(from_cdni("XB"), None, "CDNI writes lowercase"); + assert_eq!(from_cdni("usa"), None); + } +} diff --git a/wai/wai-rs/src/route_record.rs b/wai/wai-rs/src/route_record.rs index a91264aea..8e8dcd06c 100644 --- a/wai/wai-rs/src/route_record.rs +++ b/wai/wai-rs/src/route_record.rs @@ -226,7 +226,7 @@ pub fn hex(b: &[u8]) -> String { b.iter().map(|x| format!("{x:02x}")).collect() } -fn unhex(s: &str) -> Option<[u8; N]> { +pub(crate) fn unhex(s: &str) -> Option<[u8; N]> { if s.len() != 2 * N || !s.bytes().all(|c| c.is_ascii_digit() || (b'a'..=b'f').contains(&c)) { return None; } @@ -256,7 +256,7 @@ fn operation(s: &str) -> bool { matches!(s.split_once('.'), Some((n, v)) if word(n) && word(v)) } -fn currency(s: &str) -> bool { +pub(crate) fn currency(s: &str) -> bool { s.len() == 3 && s.bytes().all(|c| c.is_ascii_uppercase()) } @@ -265,7 +265,7 @@ fn receipt_id(s: &str) -> bool { h.is_some_and(|h| h.len() == 64 && h.bytes().all(|c| c.is_ascii_digit() || (b'a'..=b'f').contains(&c))) } -fn exactly<'a>(v: &'a Value, members: &[&str]) -> Option<&'a Map> { +pub(crate) fn exactly<'a>(v: &'a Value, members: &[&str]) -> Option<&'a Map> { let o = v.as_object()?; (o.len() == members.len() && members.iter().all(|m| o.contains_key(*m))).then_some(o) } @@ -274,7 +274,7 @@ fn tok(v: &Value) -> Option<&str> { v.as_str().filter(|s| token(s)) } -fn int(v: &Value) -> Option { +pub(crate) fn int(v: &Value) -> Option { v.as_u64().filter(|n| *n <= MAX) } @@ -333,7 +333,7 @@ pub struct Request { pub digest: [u8; 32], } -fn quantities(v: &Value) -> Option> { +pub(crate) fn quantities(v: &Value) -> Option> { let a = v.as_array()?; if a.is_empty() || a.len() > 16 { return None; @@ -350,6 +350,23 @@ fn quantities(v: &Value) -> Option> { q.windows(2).all(|w| w[0].0.as_bytes() < w[1].0.as_bytes()).then_some(q) } +/// A request's `max_price` (§3.1): 0 to 16 objects of exactly `unit`, `price` and `divisor` (at +/// least 1), in strictly ascending order of `unit`, as `(unit, price, divisor)`. +pub(crate) fn max_price(v: &Value) -> Option> { + let mp = v.as_array()?; + if mp.len() > 16 { + return None; + } + let max_price: Vec<(String, u64, u64)> = mp + .iter() + .map(|x| { + let m = exactly(x, &["unit", "price", "divisor"])?; + Some((m["unit"].as_str().filter(|s| unit(s))?.to_string(), int(&m["price"])?, int(&m["divisor"]).filter(|d| *d >= 1)?)) + }) + .collect::>()?; + max_price.windows(2).all(|w| w[0].0.as_bytes() < w[1].0.as_bytes()).then_some(max_price) +} + impl Request { /// Read and check a request (§3.1): `malformed` or `request_invalid`. pub fn read(text: &str) -> Result { @@ -369,20 +386,7 @@ impl Request { }; let l = exactly(&o["limits"], &["regions", "residency", "no_training", "zero_retention", "ga_only", "consent_on_file", "max_price", "spend_ceiling"])?; let opt_tokens = |v: &Value| if v.is_null() { Some(None) } else { tokens(v, 64).map(Some) }; - let mp = l["max_price"].as_array()?; - if mp.len() > 16 { - return None; - } - let max_price: Vec<(String, u64, u64)> = mp - .iter() - .map(|x| { - let m = exactly(x, &["unit", "price", "divisor"])?; - Some((m["unit"].as_str().filter(|s| unit(s))?.to_string(), int(&m["price"])?, int(&m["divisor"]).filter(|d| *d >= 1)?)) - }) - .collect::>()?; - if !max_price.windows(2).all(|w| w[0].0.as_bytes() < w[1].0.as_bytes()) { - return None; - } + let max_price = max_price(&l["max_price"])?; let spend_ceiling = match &l["spend_ceiling"] { Value::Null => None, c => { diff --git a/wai/wai-rs/src/rung_price.rs b/wai/wai-rs/src/rung_price.rs new file mode 100644 index 000000000..6df09c755 --- /dev/null +++ b/wai/wai-rs/src/rung_price.rs @@ -0,0 +1,1475 @@ +//! Rung price — `extensions/rung-price.md`, the record `wai.delivery.rung_price`: a seller's +//! signed list of delivery prices, and the comparison of delivery options under a request. +//! +//! A list (`wai-rung-prices`, a route-record document) prices delivery per direction, bearer +//! class, footprint of region codes ([`crate::region`]), rate ceiling and unit, each unit at the +//! divisor of the ledger field that bills it ([`RungPrices::read`], §4). [`verdict`] holds lists +//! to an instant: a seller's latest list stands alone, and one that lapses revives none (§5). +//! [`compare`] reads a request, removes the candidates its limits remove, and ranks the rest by a +//! cost per receiver, a shared transmission's divided by the audience the comparer states or by +//! one; it states each transmission's break-even audience (§6). +//! +//! # Rules enforced here rather than only documented +//! +//! - A list has one form: footprints strictly ascending with no country beside its own +//! subdivision, entries strictly ordered, and no two entries of one tier that a union of +//! footprints would make one; so two lists that state the same prices are the same body, and +//! one body has one digest whatever signs it (§4.4). +//! - Units are never converted, and an unknown audience is one receiver: no figure is divided by +//! an audience nobody stated (§6.3). +//! - A lapsed latest list leaves its seller with no standing list; no earlier list revives (§5.2). +//! - A class counts at its rank only when the seller's own per-hop records, given, current and +//! under a key the comparer confirmed, bear its figure out; a figure its own records refute is +//! set aside, and a damaged copy of a record refutes nothing (§4.6, §6.4). +//! +//! [`compare`] is a pure function of the texts, the evidence, the instant and the request: it +//! reads no clock and no randomness. + +use std::cmp::Ordering; +use std::collections::BTreeMap; + +use ed25519_dalek::{Signer, SigningKey}; +use serde_json::{json, Value}; +use sha2::{Digest, Sha256}; + +use crate::energy_class::EnergyProvenance; +use crate::live_metering::{self as metering, HopRecord}; +use crate::region; +use crate::route_record::{self, canonical, exactly, hex, int, read_document, unhex, CLASSES}; + +pub mod corpus; + +/// The record this extension registers. +pub const CAPABILITY: &str = "wai.delivery.rung_price"; +/// §4.1: a list's `kind`. +pub const KIND_LIST: &str = "wai-rung-prices"; +/// §6.1: a request's `kind`. +pub const KIND_REQUEST: &str = "wai-rung-request"; +/// §4.4: what the signature covers, before the list's canonical form without `sig`. +pub const SIGN_DOMAIN: &[u8] = b"wai:rung-prices\x01"; +/// §4.5: the most bytes a list's text has. +pub const MAX_BYTES: usize = 1 << 20; +/// §6.1: the most bytes a request's text has. +pub const MAX_REQUEST_BYTES: usize = 1 << 16; +/// §4.1: the most entries a list has. +pub const MAX_ENTRIES: usize = 1024; +/// §4.2: the most codes a footprint lists. +pub const MAX_FOOTPRINT: usize = 8192; +/// 2^53 − 1: the greatest integer a document holds. +pub const MAX_INT: u64 = crate::jcs::MAX_INTEGER; +/// §4.2: the ceiling that prices any rung, and the rate a `null` rate stands for (§6.2). +pub const ANY_RATE: u64 = MAX_INT; + +/// §4.3: (unit, divisor, price bound, basis), in byte order of the unit. +pub const UNITS: [(&str, u64, u64, Basis); 5] = [ + ("bytes", 1_000_000_000, MAX_INT, Basis::Receiver), + ("bytes_sent", 1_000_000_000, MAX_INT, Basis::Transmission), + ("pass_us", 1_000_000, MAX_INT, Basis::Transmission), + ("publisher_us", 1_000_000, u32::MAX as u64, Basis::Receiver), + ("subscriber_us", 1_000_000, u32::MAX as u64, Basis::Receiver), +]; +/// §6.2: the limits, in their order. +pub const LIMITS: [&str; 7] = ["currency", "bearer", "unit", "footprint", "rate", "tier", "unit_price"]; +/// §6.5: what a decision may be decided by. +pub const DECIDED_BY: [&str; 6] = ["none", "only_survivor", "price", "energy", "seller", "entry"]; +/// §4.2: the most records an entry names. +pub const MAX_READINGS: usize = 64; +/// §4.2: the greatest `energy_ppm`, energy-measurement §2.7's u32. +pub const MAX_PPM: u64 = u32::MAX as u64; +/// §6.1: the most objects `confirmed` holds. +pub const MAX_CONFIRMED: usize = 256; +/// §6.4: 10^6, the parts of a figure. +const PPM: u128 = 1_000_000; +/// §4.6 rule 3: the classes that name records, in §6.4's rank order, with their tags +/// (energy-measurement §2.7). +pub const READ_CLASSES: [(&str, u8); 3] = [("CalibratedInstrument", 5), ("OnChipCounter", 4), ("ModelBased", 2)]; +/// §6.4: the evidence verdicts besides `refuted`. +pub const EVIDENCE: [&str; 4] = ["checked", "absent", "outside-window", "unconfirmed"]; + +/// The codes rung-price §8 lists, in its order. +pub const CODES: &[&str] = + &[MALFORMED, UNIT_INVALID, AMBIGUOUS, SIGNATURE_INVALID, EVIDENCE_ROLE, EVIDENCE_SIGNER, EVIDENCE_CLASS, EVIDENCE_FIGURE, NOT_YET, EXPIRED, CONTRADICTED, REQUEST_INVALID]; + +pub const MALFORMED: &str = "rung_prices_malformed"; +pub const UNIT_INVALID: &str = "rung_prices_unit_invalid"; +pub const AMBIGUOUS: &str = "rung_prices_ambiguous"; +pub const SIGNATURE_INVALID: &str = "rung_prices_signature_invalid"; +pub const EVIDENCE_ROLE: &str = "rung_prices_evidence_role"; +pub const EVIDENCE_SIGNER: &str = "rung_prices_evidence_signer"; +pub const EVIDENCE_CLASS: &str = "rung_prices_evidence_class"; +pub const EVIDENCE_FIGURE: &str = "rung_prices_evidence_figure"; +pub const NOT_YET: &str = "rung_prices_not_yet"; +pub const EXPIRED: &str = "rung_prices_expired"; +pub const CONTRADICTED: &str = "rung_prices_contradicted"; +pub const REQUEST_INVALID: &str = "rung_request_invalid"; + +/// §4.1: a list's members. +pub const LIST_MEMBERS: [&str; 8] = ["kind", "version", "seller", "currency", "issued", "expires", "entries", "sig"]; +/// §4.2: an entry's members. +pub const ENTRY_MEMBERS: [&str; 11] = + ["direction", "bearer", "footprint", "max_bps", "unit", "divisor", "price", "energy_uj", "energy_class", "energy_ppm", "energy_evidence"]; +/// §6.1: a request's members. +pub const REQUEST_MEMBERS: [&str; 13] = + ["kind", "direction", "to", "rate_bps", "pass_rate_bps", "bearers", "currency", "quantities", "max_price", "audience", "sort", "confirmed", "evidence_age_us"]; + +/// §2: the direction of the octets an entry prices. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum Direction { + Downlink, + Uplink, +} + +impl Direction { + pub fn name(self) -> &'static str { + match self { + Direction::Downlink => "downlink", + Direction::Uplink => "uplink", + } + } + + pub fn parse(s: &str) -> Option { + match s { + "downlink" => Some(Direction::Downlink), + "uplink" => Some(Direction::Uplink), + _ => None, + } + } +} + +/// bearer-receipts §2's bearer classes, in byte order of their names. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum Bearer { + Bidirectional, + Multicast, + Unidirectional, +} + +impl Bearer { + pub fn name(self) -> &'static str { + match self { + Bearer::Bidirectional => "bidirectional", + Bearer::Multicast => "multicast", + Bearer::Unidirectional => "unidirectional", + } + } + + pub fn parse(s: &str) -> Option { + match s { + "bidirectional" => Some(Bearer::Bidirectional), + "multicast" => Some(Bearer::Multicast), + "unidirectional" => Some(Bearer::Unidirectional), + _ => None, + } + } + + /// §4.3: a two-way bearer reaches each receiver over its own path; the other two classes + /// reach every receiver with one transmission. + pub fn basis(self) -> Basis { + match self { + Bearer::Bidirectional => Basis::Receiver, + Bearer::Multicast | Bearer::Unidirectional => Basis::Transmission, + } + } +} + +/// §4.3: what one price is borne by. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum Basis { + Receiver, + Transmission, +} + +impl Basis { + pub fn name(self) -> &'static str { + match self { + Basis::Receiver => "receiver", + Basis::Transmission => "transmission", + } + } +} + +/// §4.3: a unit's divisor, price bound and basis; `None` for a unit it does not list. +pub fn unit(name: &str) -> Option<(&'static str, u64, u64, Basis)> { + UNITS.iter().copied().find(|u| u.0 == name) +} + +/// §4.3: whether `unit` is admitted on `bearer` in `direction`. +pub fn admits(unit: &str, bearer: Bearer, direction: Direction) -> bool { + match unit { + "bytes" | "subscriber_us" => bearer == Bearer::Bidirectional && direction == Direction::Downlink, + "publisher_us" => bearer == Bearer::Bidirectional && direction == Direction::Uplink, + "bytes_sent" | "pass_us" => bearer != Bearer::Bidirectional, + _ => false, + } +} + +/// One entry of a list (§4.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Entry { + pub direction: Direction, + pub bearer: Bearer, + /// Region codes, strictly ascending by their bytes. + pub footprint: Vec, + pub max_bps: u64, + pub unit: String, + pub divisor: u64, + pub price: u64, + pub energy_uj: Option, + pub energy_class: Option, + /// The figure's declared uncertainty, in parts per million (§4.2). + pub energy_ppm: Option, + /// The digests of the per-hop records whose rate the figure is (§4.2, §4.6). + pub energy_evidence: Option>, +} + +/// (`direction`, `bearer`, `unit`, `max_bps`): one tier of one unit (§4.5 rules 4 and 6). +type TierKey<'a> = (Direction, Bearer, &'a str, u64); + +impl Entry { + /// An entry of `unit` at that unit's divisor (1 for a unit §4.3 does not list), the energy + /// figure and its class given together or not at all, naming no records. Not checked. + pub fn new(direction: Direction, bearer: Bearer, footprint: &[&str], max_bps: u64, unit_name: &str, price: u64, energy: Option<(u64, &str)>) -> Entry { + Entry { + direction, + bearer, + footprint: footprint.iter().map(|c| c.to_string()).collect(), + max_bps, + unit: unit_name.to_string(), + divisor: unit(unit_name).map_or(1, |u| u.1), + price, + energy_uj: energy.map(|e| e.0), + energy_class: energy.map(|e| e.1.to_string()), + energy_ppm: None, + energy_evidence: None, + } + } + + /// The figure's declared uncertainty and the records whose rate it is (§4.2, §4.6), as given: + /// not checked, and the records in the order given. + pub fn reads(mut self, ppm: Option, records: &[[u8; 32]]) -> Entry { + self.energy_ppm = ppm; + self.energy_evidence = Some(records.to_vec()); + self + } + + pub fn to_value(&self) -> Value { + json!({ + "direction": self.direction.name(), + "bearer": self.bearer.name(), + "footprint": self.footprint, + "max_bps": self.max_bps, + "unit": self.unit, + "divisor": self.divisor, + "price": self.price, + "energy_uj": self.energy_uj, + "energy_class": self.energy_class, + "energy_ppm": self.energy_ppm, + "energy_evidence": self.energy_evidence.as_ref().map(|v| v.iter().map(|d| hex(d)).collect::>()), + }) + } + + /// §4.5 rule 4's order: (`direction`, `bearer`, `unit`, `max_bps`, the first code of + /// `footprint`), strings by their bytes. + fn order_key(&self) -> (&[u8], &[u8], &[u8], u64, &[u8]) { + let first = self.footprint.first().map_or(&[][..], |c| c.as_bytes()); + (self.direction.name().as_bytes(), self.bearer.name().as_bytes(), self.unit.as_bytes(), self.max_bps, first) + } + + fn tier_key(&self) -> TierKey<'_> { + (self.direction, self.bearer, self.unit.as_str(), self.max_bps) + } + + /// §4.2: one entry from a document's value, rules 1 and 3. + fn from_value(v: &Value) -> Option { + let o = exactly(v, &ENTRY_MEMBERS)?; + let fp = o["footprint"].as_array()?; + if fp.is_empty() || fp.len() > MAX_FOOTPRINT { + return None; + } + let footprint: Vec = fp.iter().map(|c| c.as_str().filter(|c| region::code(c.as_bytes())).map(str::to_string)).collect::>()?; + // Rule 3: strictly ascending, and no country beside one of its own subdivisions. + if !footprint.windows(2).all(|w| w[0].as_bytes() < w[1].as_bytes()) { + return None; + } + let lists = |c: &[u8]| footprint.binary_search_by(|x| x.as_bytes().cmp(c)).is_ok(); + if footprint.iter().any(|c| region::subdivision(c.as_bytes()) && lists(region::country(c.as_bytes()))) { + return None; + } + let energy_uj = match &o["energy_uj"] { + Value::Null => None, + x => Some(int(x).filter(|n| *n >= 1)?), + }; + let energy_class = match &o["energy_class"] { + Value::Null => None, + c => Some(c.as_str().filter(|c| CLASSES.contains(c))?.to_string()), + }; + if energy_uj.is_some() != energy_class.is_some() { + return None; + } + let energy_ppm = match &o["energy_ppm"] { + Value::Null => None, + x => Some(int(x).filter(|n| (1..=MAX_PPM).contains(n))?), + }; + let energy_evidence = match &o["energy_evidence"] { + Value::Null => None, + x => { + let a = x.as_array()?; + if a.is_empty() || a.len() > MAX_READINGS { + return None; + } + let v: Vec<[u8; 32]> = a.iter().map(|d| unhex::<32>(d.as_str()?)).collect::>()?; + if !v.windows(2).all(|w| w[0] < w[1]) { + return None; + } + Some(v) + } + }; + // §4.2: a hardware class states its uncertainty, and a class above `Estimator` names its + // records. + let hardware = matches!(energy_class.as_deref(), Some("CalibratedInstrument" | "OnChipCounter")); + let named = hardware || energy_class.as_deref() == Some("ModelBased"); + if energy_ppm.is_some() != hardware || energy_evidence.is_some() != named { + return None; + } + Some(Entry { + direction: Direction::parse(o["direction"].as_str()?)?, + bearer: Bearer::parse(o["bearer"].as_str()?)?, + footprint, + max_bps: int(&o["max_bps"]).filter(|n| *n >= 1)?, + unit: o["unit"].as_str().filter(|s| route_record::unit(s))?.to_string(), + divisor: int(&o["divisor"]).filter(|d| *d >= 1)?, + price: int(&o["price"])?, + energy_uj, + energy_class, + energy_ppm, + energy_evidence, + }) + } +} + +/// A rung price list (§4). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct RungPrices { + pub seller: [u8; 32], + pub currency: String, + pub issued: u64, + pub expires: u64, + pub entries: Vec, + pub sig: [u8; 64], +} + +/// §4.4: the signature by `key` over `body`, a list without `sig`, in the document subset. +pub fn sign(body: &Value, key: &SigningKey) -> [u8; 64] { + key.sign(&[SIGN_DOMAIN, canonical(body).as_bytes()].concat()).to_bytes() +} + +impl RungPrices { + /// A list of `entries` in rule 4's order, signed by `key`. Not checked: a corpus writes lists + /// that break the rules too. Every value must be in the document subset. + pub fn seal(key: &SigningKey, currency: &str, issued: u64, expires: u64, mut entries: Vec) -> RungPrices { + entries.sort_by(|a, b| a.order_key().cmp(&b.order_key())); + let mut l = RungPrices { seller: key.verifying_key().to_bytes(), currency: currency.to_string(), issued, expires, entries, sig: [0; 64] }; + l.sig = sign(&l.body(), key); + l + } + + /// The list without `sig`: what the digest and the signature cover. + pub fn body(&self) -> Value { + json!({ + "kind": KIND_LIST, + "version": 1, + "seller": hex(&self.seller), + "currency": self.currency, + "issued": self.issued, + "expires": self.expires, + "entries": self.entries.iter().map(Entry::to_value).collect::>(), + }) + } + + /// The list with `sig`. + pub fn to_value(&self) -> Value { + let mut v = self.body(); + v["sig"] = json!(hex(&self.sig)); + v + } + + /// The canonical form, `sig` included. + pub fn to_text(&self) -> String { + canonical(&self.to_value()) + } + + /// §4.4: SHA-256 over the canonical form without `sig`. + pub fn digest(&self) -> [u8; 32] { + route_record::digest(&self.body()) + } + + /// §4.5: read a text as one list, rules 1 to 4, then rule 5, rule 6 and the signature. The + /// error is the code of §8 that refuses it. + pub fn read(text: &str) -> Result { + if text.len() > MAX_BYTES { + return Err(MALFORMED); + } + let v = read_document(text).ok_or(MALFORMED)?; + let l = RungPrices::from_value(&v).ok_or(MALFORMED)?; + // Rule 5. + for e in &l.entries { + let ok = unit(&e.unit).is_some_and(|(_, d, bound, _)| admits(&e.unit, e.bearer, e.direction) && e.divisor == d && e.price <= bound) + && (e.energy_evidence.is_none() || matches!(e.unit.as_str(), "bytes" | "subscriber_us")); + if !ok { + return Err(UNIT_INVALID); + } + } + // Rule 6. + if ambiguous(&l.entries) { + return Err(AMBIGUOUS); + } + let mut body = v; + body.as_object_mut().expect("a list is an object").remove("sig"); + crate::sig::verify_strict(&l.seller, &[SIGN_DOMAIN, canonical(&body).as_bytes()].concat(), &l.sig).map_err(|_| SIGNATURE_INVALID)?; + Ok(l) + } + + /// §4.1 and §4.2, rules 1 to 4. + fn from_value(v: &Value) -> Option { + let o = exactly(v, &LIST_MEMBERS)?; + if o["kind"] != KIND_LIST || int(&o["version"]) != Some(1) { + return None; + } + let issued = int(&o["issued"])?; + let expires = int(&o["expires"])?; + // Rule 2. + if issued >= expires { + return None; + } + let es = o["entries"].as_array()?; + if es.is_empty() || es.len() > MAX_ENTRIES { + return None; + } + let entries: Vec = es.iter().map(Entry::from_value).collect::>()?; + // Rule 4: strictly ordered, and no two entries of one tier at one price, energy and + // records. + if !entries.windows(2).all(|w| w[0].order_key() < w[1].order_key()) { + return None; + } + for (i, a) in entries.iter().enumerate() { + for b in entries[i + 1..].iter().take_while(|b| b.tier_key() == a.tier_key()) { + if (a.price, a.energy_uj, &a.energy_class, a.energy_ppm, &a.energy_evidence) == (b.price, b.energy_uj, &b.energy_class, b.energy_ppm, &b.energy_evidence) { + return None; + } + } + } + Some(RungPrices { + seller: unhex::<32>(o["seller"].as_str()?)?, + currency: o["currency"].as_str().filter(|s| route_record::currency(s))?.to_string(), + issued, + expires, + entries, + sig: unhex::<64>(o["sig"].as_str()?)?, + }) + } +} + +/// §4.5 rule 6: within one tier of one unit, a code listed by two entries, or a subdivision +/// listed by one entry whose country another lists. +fn ambiguous(entries: &[Entry]) -> bool { + let mut at: BTreeMap, BTreeMap<&str, usize>> = BTreeMap::new(); + for (i, e) in entries.iter().enumerate() { + let codes = at.entry(e.tier_key()).or_default(); + for c in &e.footprint { + if codes.insert(c.as_str(), i).is_some() { + return true; + } + } + } + at.values().any(|codes| codes.iter().any(|(c, i)| region::subdivision(c.as_bytes()) && codes.get(&c[..2]).is_some_and(|j| j != i))) +} + +/// What became of one list at an instant (§5). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum ListVerdict { + /// Refused, for the reason given. + Refused(&'static str), + /// It stands: its seller's latest at the instant. + Stands, + /// A list of its seller with a later `issued` is the latest. + Superseded, + /// Set aside: another of its seller's latest lists differs. + SetAside(&'static str), +} + +impl ListVerdict { + pub fn label(&self) -> String { + match self { + ListVerdict::Refused(r) => format!("reject reason={r}"), + ListVerdict::Stands => "stands".into(), + ListVerdict::Superseded => "superseded".into(), + ListVerdict::SetAside(r) => format!("set-aside reason={r}"), + } + } +} + +/// §5 over a set of texts: each text's verdict, in order, with its digest when it reads, and the +/// list that stands for each seller that has one. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Verdicts { + pub lists: Vec<(ListVerdict, Option<[u8; 32]>)>, + pub standing: BTreeMap<[u8; 32], RungPrices>, +} + +/// §5: each text's verdict at `at_us`, in order, and the standing list by seller. +pub fn verdict(texts: &[String], at_us: u64) -> Verdicts { + let mut lists = Vec::with_capacity(texts.len()); + let mut read: BTreeMap = BTreeMap::new(); + for (k, text) in texts.iter().enumerate() { + match RungPrices::read(text) { + Err(r) => lists.push((ListVerdict::Refused(r), None)), + Ok(l) if at_us < l.issued => lists.push((ListVerdict::Refused(NOT_YET), Some(l.digest()))), + Ok(l) => { + lists.push((ListVerdict::Stands, Some(l.digest()))); + read.insert(k, l); + } + } + } + // §5.2: each seller's latest; two latest that differ set both aside; a latest that lapsed + // leaves the seller none. + let mut by_seller: BTreeMap<[u8; 32], Vec> = BTreeMap::new(); + for (k, l) in &read { + by_seller.entry(l.seller).or_default().push(*k); + } + let mut standing = BTreeMap::new(); + for (seller, ks) in by_seller { + let latest = ks.iter().map(|k| read[k].issued).max().expect("a seller has a list"); + let at_latest: Vec = ks.iter().copied().filter(|k| read[k].issued == latest).collect(); + let contradicted = at_latest.iter().any(|k| lists[*k].1 != lists[at_latest[0]].1); + let expired = read[&at_latest[0]].expires <= at_us; + for k in &ks { + lists[*k].0 = if read[k].issued < latest { + ListVerdict::Superseded + } else if contradicted { + ListVerdict::SetAside(CONTRADICTED) + } else if expired { + ListVerdict::Refused(EXPIRED) + } else { + ListVerdict::Stands + }; + } + if !contradicted && !expired { + standing.insert(seller, read[&at_latest[0]].clone()); + } + } + Verdicts { lists, standing } +} + +/// A comparison request (§6.1). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Request { + pub direction: Direction, + pub to: String, + pub rate_bps: Option, + pub pass_rate_bps: Option, + pub bearers: Option>, + pub currency: String, + /// `(unit, quantity)`, ascending by unit. + pub quantities: Vec<(String, u64)>, + /// `(unit, price, divisor)`, ascending by unit. + pub max_price: Vec<(String, u64, u64)>, + pub audience: Option, + /// `price` or `energy`. + pub sort: &'static str, + /// The (key, class) pairs the comparer confirmed, ascending (§6.1). + pub confirmed: Vec<([u8; 32], &'static str)>, + /// The most a record's instant may be before the instant used (§6.1). + pub evidence_age_us: u64, + /// The request's digest (route-record §2). + pub digest: [u8; 32], +} + +impl Request { + /// §6.1: read a request; `rung_request_invalid` otherwise. + pub fn read(text: &str) -> Result { + if text.len() > MAX_REQUEST_BYTES { + return Err(REQUEST_INVALID); + } + read_document(text).and_then(|v| Request::from_value(&v)).ok_or(REQUEST_INVALID) + } + + fn from_value(v: &Value) -> Option { + let o = exactly(v, &REQUEST_MEMBERS)?; + if o["kind"] != KIND_REQUEST { + return None; + } + let rate = |x: &Value| match x { + Value::Null => Some(None), + n => int(n).filter(|n| *n >= 1).map(Some), + }; + let bearers = match &o["bearers"] { + Value::Null => None, + b => { + let names: Vec<&str> = b.as_array()?.iter().map(Value::as_str).collect::>()?; + if names.is_empty() || names.len() > 3 || !names.windows(2).all(|w| w[0].as_bytes() < w[1].as_bytes()) { + return None; + } + Some(names.iter().map(|n| Bearer::parse(n)).collect::>>()?) + } + }; + let confirmed = { + let a = o["confirmed"].as_array()?; + if a.len() > MAX_CONFIRMED { + return None; + } + let v: Vec<([u8; 32], &'static str)> = a + .iter() + .map(|c| { + let c = exactly(c, &["key", "class"])?; + Some((unhex::<32>(c["key"].as_str()?)?, READ_CLASSES.iter().find(|k| Some(k.0) == c["class"].as_str())?.0)) + }) + .collect::>()?; + if !v.windows(2).all(|w| (w[0].0, w[0].1.as_bytes()) < (w[1].0, w[1].1.as_bytes())) { + return None; + } + v + }; + Some(Request { + direction: Direction::parse(o["direction"].as_str()?)?, + to: o["to"].as_str().filter(|c| region::code(c.as_bytes()))?.to_string(), + rate_bps: rate(&o["rate_bps"])?, + pass_rate_bps: rate(&o["pass_rate_bps"])?, + bearers, + currency: o["currency"].as_str().filter(|s| route_record::currency(s))?.to_string(), + quantities: route_record::quantities(&o["quantities"])?, + max_price: route_record::max_price(&o["max_price"])?, + audience: match &o["audience"] { + Value::Null => None, + n => Some(int(n).filter(|n| *n >= 1)?), + }, + sort: match o["sort"].as_str()? { + "price" => "price", + "energy" => "energy", + _ => return None, + }, + confirmed, + evidence_age_us: int(&o["evidence_age_us"]).filter(|n| *n >= 1)?, + digest: route_record::digest(v), + }) + } + + fn quantity(&self, unit: &str) -> Option { + self.quantities.iter().find(|(u, _)| u == unit).map(|(_, q)| *q) + } + + /// §6.2: a candidate's rate, by its basis; `None` when the request does not state it. + fn rate(&self, basis: Basis) -> Option { + match basis { + Basis::Receiver => self.rate_bps, + Basis::Transmission => self.pass_rate_bps, + } + } + + /// §6.1: whether `confirmed` holds `key` with `class`. + fn confirms(&self, key: &[u8; 32], class: &str) -> bool { + self.confirmed.binary_search_by(|(k, c)| (k, c.as_bytes()).cmp(&(key, class.as_bytes()))).is_ok() + } +} + +/// §6.4: a candidate's evidence, when its entry names records. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Evidence { + Checked, + Absent, + OutsideWindow, + Unconfirmed, + /// Refuted, for the reason given (§4.6). + Refuted(&'static str), +} + +impl Evidence { + pub fn label(self) -> String { + match self { + Evidence::Checked => "checked".into(), + Evidence::Absent => "absent".into(), + Evidence::OutsideWindow => "outside-window".into(), + Evidence::Unconfirmed => "unconfirmed".into(), + Evidence::Refuted(r) => format!("refuted reason={r}"), + } + } +} + +/// §4.6: what the texts given as evidence give, by the digest each names. +struct Given { + records: BTreeMap<[u8; 32], HopRecord>, + /// Each room's `t0`, by its id. + rooms: BTreeMap<[u8; 32], u64>, +} + +/// §4.6: the digest a text names, SHA-256 over all its bytes but the last 64, when it holds 64 to +/// `MAX_BYTES` bytes; `None` otherwise. +fn names(b: &[u8]) -> Option<[u8; 32]> { + (64..=MAX_BYTES).contains(&b.len()).then(|| Sha256::digest(&b[..b.len() - 64]).into()) +} + +impl Given { + /// Each text names the digest [`names`] gives; a record or a room is given by the first text + /// naming it that reads and verifies. + fn of(texts: &[Vec]) -> Given { + let mut g = Given { records: BTreeMap::new(), rooms: BTreeMap::new() }; + for b in texts { + let Some(d) = names(b) else { continue }; + let room: &[u8; 32] = b[5..37].try_into().expect("at least 64 bytes"); + if let Ok(x) = HopRecord::parse(b, room) { + g.records.entry(d).or_insert(x); + } + if let Ok(x) = crate::fleet::read_descriptor(b) { + g.rooms.entry(d).or_insert(x.t0); + } + } + g + } + + /// The digests of the records and rooms given, in ascending order of their bytes (§6.6). + fn digests(&self) -> Vec<[u8; 32]> { + let mut v: Vec<[u8; 32]> = self.records.keys().chain(self.rooms.keys()).copied().collect(); + v.sort(); + v.dedup(); + v + } +} + +/// §4.6 rule 5: a record's quantity in `unit`. +fn quantity(x: &HopRecord, unit: &str) -> u128 { + match unit { + "bytes" => x.tracks.iter().filter(|t| t.kind == metering::kind::MEDIA && t.dir == metering::dir::OUT).map(|t| t.bytes as u128).sum(), + _ => x.subscriber_us[..8].iter().map(|&s| s as u128).sum(), + } +} + +/// §4.6 rule 4: a hardware record's declared `relative_ppm`. +fn ppm_of(x: &HopRecord) -> Option { + x.class.as_ref().and_then(EnergyProvenance::uncertainty).map(|u| u.relative_ppm as u64) +} + +/// §4.6 and §6.4: what the evidence given says of entry `e` of list `l`; `None` when it names no +/// records. +fn evidence_of(l: &RungPrices, e: &Entry, g: &Given, r: &Request, at_us: u64) -> Option { + let names = e.energy_evidence.as_ref()?; + let class = e.energy_class.as_deref().expect("records name a class (§4.2)"); + let tag = READ_CLASSES.iter().find(|c| c.0 == class).expect("a class that names records").1; + let (mut read, mut absent) = (Vec::new(), false); + for d in names { + let Some(x) = g.records.get(d) else { + absent = true; + continue; + }; + // Rules 1 to 3, in order. + if x.role != metering::role::RELAY { + return Some(Evidence::Refuted(EVIDENCE_ROLE)); + } + if x.hop != l.seller { + return Some(Evidence::Refuted(EVIDENCE_SIGNER)); + } + if metering::tag_of(x.class.as_ref()) != tag { + return Some(Evidence::Refuted(EVIDENCE_CLASS)); + } + match g.rooms.get(&x.room) { + Some(&t0) => read.push((x, t0)), + None => absent = true, + } + } + if absent { + return Some(Evidence::Absent); + } + // Rule 4. + if e.energy_ppm.is_some() && e.energy_ppm != read.iter().filter_map(|(x, _)| ppm_of(x)).max() { + return Some(Evidence::Refuted(EVIDENCE_CLASS)); + } + // Rule 5. + let j: u128 = read.iter().map(|(x, _)| x.joules as u128).sum(); + let q: u128 = read.iter().map(|(x, _)| quantity(x, &e.unit)).sum(); + if q == 0 || (j * e.divisor as u128).div_ceil(q) != e.energy_uj.expect("a figure") as u128 { + return Some(Evidence::Refuted(EVIDENCE_FIGURE)); + } + // §6.4 step 4: each instant in [at_us − evidence_age_us, at_us). + let at = at_us as u128; + if !read.iter().all(|(x, t0)| { + let i = *t0 as u128 + x.end as u128 - 1; + i < at && i + r.evidence_age_us as u128 >= at + }) { + return Some(Evidence::OutsideWindow); + } + if !r.confirms(&l.seller, class) { + return Some(Evidence::Unconfirmed); + } + Some(Evidence::Checked) +} + +/// A candidate as §6 computes it. +#[derive(Clone, Debug, PartialEq)] +pub struct Candidate { + pub seller: [u8; 32], + /// Its position in its list's `entries`, from 0. + pub entry: usize, + pub bearer: Bearer, + pub unit: String, + pub max_bps: u64, + pub basis: Basis, + /// `(limit, value)`, in §6.2's order. + pub removed: Vec<(&'static str, Value)>, + pub cost: Option, + pub energy: Option, + pub energy_class: Option, + /// Its entry's declared uncertainty. + pub energy_ppm: Option, + /// §6.4's evidence; `None` when its entry names no records. + pub evidence: Option, + /// §6.4's energy rank, from 0 to 4. + pub energy_rank: u8, + /// A transmission-basis survivor's *T*; `None` otherwise. + pub transmission_cost: Option, + /// A transmission-basis survivor's break-even audience (§6.5); `None` otherwise. + pub break_even: Option, + /// Its position in the order, from 1; `None` when removed. + pub rank: Option, +} + +impl Candidate { + pub fn to_value(&self) -> Value { + json!({ + "seller": hex(&self.seller), + "entry": self.entry, + "bearer": self.bearer.name(), + "unit": self.unit, + "max_bps": self.max_bps, + "basis": self.basis.name(), + "removed": self.removed.iter().map(|(l, v)| json!({ "limit": l, "value": v })).collect::>(), + "cost": self.cost, + "energy": self.energy, + "energy_class": self.energy_class, + "energy_ppm": self.energy_ppm, + "evidence": self.evidence.map(Evidence::label), + "energy_rank": self.energy_rank, + "transmission_cost": self.transmission_cost, + "break_even": self.break_even, + "rank": self.rank, + }) + } + + fn named(&self) -> Value { + json!({ "seller": hex(&self.seller), "entry": self.entry }) + } +} + +/// The plan of §6.6. +#[derive(Clone, Debug, PartialEq)] +pub struct Plan { + /// The request's digest. + pub request: [u8; 32], + pub at_us: u64, + /// Each list's verdict, in the order given, with its digest where it reads. + pub lists: Vec<(ListVerdict, Option<[u8; 32]>)>, + /// The digests of the records and rooms the texts given as evidence gave, ascending. + pub evidence: Vec<[u8; 32]>, + /// The *n* used: the request's `audience`, or 1. + pub audience: u64, + pub candidates: Vec, + /// The survivors, as indexes into `candidates`, in rank order. + pub order: Vec, + pub decided_by: &'static str, + /// The second survivor, as an index into `candidates`. + pub runner_up: Option, +} + +impl Plan { + pub fn to_value(&self) -> Value { + json!({ + "outcome": "plan", + "request": hex(&self.request), + "at_us": self.at_us, + "lists": self.lists.iter().map(|(v, d)| json!({ "verdict": v.label(), "digest": d.map(|d| hex(&d)) })).collect::>(), + "evidence": self.evidence.iter().map(|d| hex(d)).collect::>(), + "audience": self.audience, + "candidates": self.candidates.iter().map(Candidate::to_value).collect::>(), + "order": self.order.iter().map(|&i| self.candidates[i].named()).collect::>(), + "decision": { + "decided_by": self.decided_by, + "runner_up": self.runner_up.map(|i| self.candidates[i].named()), + }, + }) + } +} + +/// ⌊`q` × `x` / `d`⌋, or `None` past 2^53 − 1 (§6.3, route-record §4.2). +fn estimate(q: u64, x: u64, d: u64) -> Option { + let e = (q as u128) * (x as u128) / (d as u128); + (e <= MAX_INT as u128).then_some(e as u64) +} + +/// §7.2: an entry's pass rate, ⌈8000 × (`bytes_sent` / `count`) / `duration_ms`⌉ bits per +/// second, in 128 bits; `None` when `count` or `duration_ms` is 0 (no schedule states either). +/// With `bytes_sent` a multiple of `count`, as carousel §5.4 makes it, this is +/// ⌈8000 × `bytes_sent` / (`count` × `duration_ms`)⌉, which is what is computed. +pub fn pass_rate(bytes_sent: u64, count: u64, duration_ms: u64) -> Option { + let den = (count as u128) * (duration_ms as u128); + (den > 0).then(|| (8000 * bytes_sent as u128).div_ceil(den)) +} + +/// §6.2 `tier`: the least ceiling of `ceilings` at least `rate`. A `None` rate stands for 2^53 − 1, +/// which only the unbounded ceiling covers. +pub fn tier(ceilings: &[u64], rate: Option) -> Option { + let rate = rate.unwrap_or(ANY_RATE as u128); + ceilings.iter().copied().filter(|c| *c as u128 >= rate).min() +} + +/// §6.2: each limit that removes `e`, of list `l`, in order, with the value it read. `least` is the +/// least ceiling covering the candidate's rate among the entries of `l` of its direction, bearer +/// and unit that hold the request's `to`. +fn limits(r: &Request, l: &RungPrices, e: &Entry, least: Option) -> Vec<(&'static str, Value)> { + let rate = r.rate(e.bearer.basis()).unwrap_or(ANY_RATE); + let mut out = Vec::new(); + if l.currency != r.currency { + out.push(("currency", json!(l.currency))); + } + if r.bearers.as_ref().is_some_and(|b| !b.contains(&e.bearer)) { + out.push(("bearer", json!(e.bearer.name()))); + } + if r.quantity(&e.unit).is_none() { + out.push(("unit", json!(e.unit))); + } + if !region::holds(&e.footprint, r.to.as_bytes()) { + out.push(("footprint", json!(e.footprint))); + } + if e.max_bps < rate { + out.push(("rate", json!(e.max_bps))); + } + if let Some(least) = least + && least < e.max_bps + { + out.push(("tier", json!(least))); + } + if let Some((_, mp, md)) = r.max_price.iter().find(|(u, _, _)| *u == e.unit) + && (e.price as u128) * (*md as u128) > (*mp as u128) * (e.divisor as u128) + { + out.push(("unit_price", json!(e.price))); + } + out +} + +/// A `null` after every stated figure; two `null`s do not differ. +fn nulls_last(a: Option, b: Option) -> Ordering { + match (a, b) { + (Some(x), Some(y)) => x.cmp(&y), + (Some(_), None) => Ordering::Less, + (None, Some(_)) => Ordering::Greater, + (None, None) => Ordering::Equal, + } +} + +/// §6.4: 4 when the energy is `null`; 0, 1 or 2 by class when the evidence is `checked`; 3 +/// otherwise. +fn energy_rank(c: &Candidate) -> u8 { + match (c.energy, c.evidence) { + (None, _) => 4, + (Some(_), Some(Evidence::Checked)) => READ_CLASSES.iter().position(|k| Some(k.0) == c.energy_class.as_deref()).expect("a checked class") as u8, + _ => 3, + } +} + +/// §6.4: a hardware figure one declared standard uncertainty above itself, for comparison only. +fn raised(c: &Candidate) -> u128 { + c.energy.expect("a ranked figure") as u128 * (PPM + c.energy_ppm.expect("a hardware figure's uncertainty") as u128) +} + +/// §6.4: two survivors under one key. +fn by_key(key: &str, a: &Candidate, b: &Candidate) -> Ordering { + match key { + "price" => nulls_last(a.cost, b.cost), + "energy" => a.energy_rank.cmp(&b.energy_rank).then_with(|| match a.energy_rank { + 0 | 1 => raised(a).cmp(&raised(b)), + 2 | 3 => a.energy.cmp(&b.energy), + _ => Ordering::Equal, + }), + "seller" => a.seller.cmp(&b.seller), + _ => a.entry.cmp(&b.entry), + } +} + +/// §6: the request, then §5's verdict over the texts at `at_us`, then §6.2 to §6.5, with the +/// texts given as `evidence` read as §4.6 reads them. The error is `rung_request_invalid`. +pub fn compare(texts: &[String], evidence: &[Vec], at_us: u64, request: &str) -> Result { + let r = Request::read(request)?; + let Verdicts { lists, standing } = verdict(texts, at_us); + let g = Given::of(evidence); + let n = r.audience.unwrap_or(1); + let mut candidates: Vec = Vec::new(); + // Each candidate's T (§6.3), beside it. + let mut totals: Vec> = Vec::new(); + for (seller, l) in &standing { + // The least covering ceiling of each bearer and unit of the request's direction, in one + // pass over the list. + let mut ceilings: BTreeMap<(Bearer, &str), Vec> = BTreeMap::new(); + for e in l.entries.iter().filter(|e| e.direction == r.direction && region::holds(&e.footprint, r.to.as_bytes())) { + ceilings.entry((e.bearer, e.unit.as_str())).or_default().push(e.max_bps); + } + for (i, e) in l.entries.iter().enumerate().filter(|(_, e)| e.direction == r.direction) { + let basis = e.bearer.basis(); + let least = ceilings.get(&(e.bearer, e.unit.as_str())).and_then(|c| tier(c, r.rate(basis).map(u128::from))); + let removed = limits(&r, l, e, least); + let q = r.quantity(&e.unit); + let t = q.and_then(|q| estimate(q, e.price, e.divisor)); + let x = q.and_then(|q| e.energy_uj.and_then(|u| estimate(q, u, e.divisor))); + let (cost, energy) = match basis { + Basis::Receiver => (t, x), + Basis::Transmission => (t.map(|t| t.div_ceil(n)), x.map(|x| x.div_ceil(n))), + }; + // §6.3: a refuted figure is set aside. + let ev = evidence_of(l, e, &g, &r, at_us); + let energy = if matches!(ev, Some(Evidence::Refuted(_))) { None } else { energy }; + let mut c = Candidate { + seller: *seller, + entry: i, + bearer: e.bearer, + unit: e.unit.clone(), + max_bps: e.max_bps, + basis, + removed, + cost, + energy, + energy_class: e.energy_class.clone(), + energy_ppm: e.energy_ppm, + evidence: ev, + energy_rank: 0, + transmission_cost: None, + break_even: None, + rank: None, + }; + c.energy_rank = energy_rank(&c); + candidates.push(c); + totals.push(t); + } + } + // §6.4. + let other = if r.sort == "price" { "energy" } else { "price" }; + let keys = [r.sort, other, "seller", "entry"]; + let mut order: Vec = (0..candidates.len()).filter(|&i| candidates[i].removed.is_empty()).collect(); + order.sort_by(|&i, &j| keys.iter().map(|k| by_key(k, &candidates[i], &candidates[j])).find(|o| *o != Ordering::Equal).unwrap_or(Ordering::Equal)); + for (k, &i) in order.iter().enumerate() { + candidates[i].rank = Some(k as u64 + 1); + } + // §6.5. + let (decided_by, runner_up) = match order.len() { + 0 => ("none", None), + 1 => ("only_survivor", None), + _ => { + let (a, b) = (&candidates[order[0]], &candidates[order[1]]); + let k = keys.iter().find(|k| by_key(k, a, b) != Ordering::Equal).expect("sellers or entries differ"); + (DECIDED_BY.iter().copied().find(|d| d == k).expect("a key is a decision"), Some(order[1])) + } + }; + let least_receiver = order.iter().filter(|&&i| candidates[i].basis == Basis::Receiver).filter_map(|&i| candidates[i].cost).min(); + for &i in &order { + if candidates[i].basis == Basis::Transmission { + candidates[i].transmission_cost = totals[i]; + candidates[i].break_even = totals[i].and_then(|t| match least_receiver { + None => None, + Some(0) => (t == 0).then_some(1), + Some(c) => Some(t.div_ceil(c).max(1)), + }); + } + } + Ok(Plan { request: r.digest, at_us, lists, evidence: g.digests(), audience: n, candidates, order, decided_by, runner_up }) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn key(seed: u8) -> SigningKey { + SigningKey::from_bytes(&[seed; 32]) + } + + const DOWN: Direction = Direction::Downlink; + const BIDI: Bearer = Bearer::Bidirectional; + const UNI: Bearer = Bearer::Unidirectional; + + fn tiers(seed: u8, issued: u64, expires: u64, mid: u64) -> RungPrices { + RungPrices::seal( + &key(seed), + "USD", + issued, + expires, + vec![ + Entry::new(DOWN, BIDI, &["XA", "XB"], ANY_RATE, "bytes", 40, None), + Entry::new(DOWN, BIDI, &["XA", "XB"], 2_000_000, "bytes", 10, Some((300, "Estimator"))), + Entry::new(DOWN, BIDI, &["XA", "XB"], 8_000_000, "bytes", mid, Some((500, "Estimator"))), + ], + ) + } + + /// A list's text with `f` applied to its value and signed again by `seed`. + fn resigned(l: &RungPrices, seed: u8, f: impl Fn(&mut Value)) -> String { + let mut body = l.body(); + f(&mut body); + let sig = sign(&body, &key(seed)); + body["sig"] = json!(hex(&sig)); + canonical(&body) + } + + fn request(f: impl Fn(&mut Value)) -> String { + let mut v = json!({ + "kind": KIND_REQUEST, "direction": "downlink", "to": "XB", "rate_bps": 3_000_000, "pass_rate_bps": 6_000_000, + "bearers": null, "currency": "USD", + "quantities": [{"unit": "bytes", "quantity": 500_000_000u64}, {"unit": "bytes_sent", "quantity": 500_000_000_000u64}], + "max_price": [], "audience": null, "sort": "price", "confirmed": [], "evidence_age_us": 604_800_000_000u64, + }); + f(&mut v); + canonical(&v) + } + + #[test] + fn a_list_reads_back_and_its_digest_ignores_the_signature() { + let l = tiers(1, 10, 20, 20); + assert_eq!(l.entries[0].max_bps, 2_000_000, "sealed in rule 4's order"); + let text = l.to_text(); + assert_eq!(RungPrices::read(&text), Ok(l.clone())); + let v = read_document(&text).unwrap(); + let mut body = v.clone(); + body.as_object_mut().unwrap().remove("sig"); + assert_eq!(canonical(&body), canonical(&l.body()), "the body as read is the body rebuilt"); + assert_eq!(l.digest(), route_record::digest(&body)); + // Another member order and whitespace read as the same list. + let pretty = serde_json::to_string_pretty(&v).unwrap(); + assert_eq!(RungPrices::read(&pretty).map(|x| x.digest()), Ok(l.digest())); + } + + #[test] + fn every_rule_refuses() { + let l = tiers(1, 10, 20, 20); + let text = l.to_text(); + assert_eq!(RungPrices::read(&format!("{},", text)), Err(MALFORMED)); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["version"] = json!(2))), Err(MALFORMED)); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["expires"] = json!(10))), Err(MALFORMED), "rule 2"); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][0]["footprint"] = json!(["XB", "XA"]))), Err(MALFORMED), "rule 3"); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][0]["footprint"] = json!(["XB", "XB-1"]))), Err(MALFORMED), "rule 3"); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][0]["footprint"] = json!(["XA-1", "XB"]))).map(|_| ()), Ok(())); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"].as_array_mut().unwrap().swap(0, 1))), Err(MALFORMED), "rule 4"); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][0]["energy_uj"] = json!(0))), Err(MALFORMED), "a zero figure"); + // The last entry, so the order of rule 4 still holds. + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][2]["unit"] = json!("objects"))), Err(UNIT_INVALID), "rule 5"); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][0]["divisor"] = json!(1_000_000))), Err(UNIT_INVALID), "rule 5"); + assert_eq!(RungPrices::read(&resigned(&l, 1, |v| v["entries"][0]["bearer"] = json!("multicast"))).map(|_| ()), Err(MALFORMED), "out of order"); + let two = RungPrices::seal( + &key(1), + "USD", + 10, + 20, + vec![Entry::new(DOWN, BIDI, &["XB"], 8, "bytes", 1, None), Entry::new(DOWN, BIDI, &["XB-1"], 8, "bytes", 2, None)], + ); + assert_eq!(RungPrices::read(&two.to_text()), Err(AMBIGUOUS), "rule 6 across entries"); + let merge = RungPrices::seal( + &key(1), + "USD", + 10, + 20, + vec![Entry::new(DOWN, BIDI, &["XA"], 8, "bytes", 1, None), Entry::new(DOWN, BIDI, &["XB"], 8, "bytes", 1, None)], + ); + assert_eq!(RungPrices::read(&merge.to_text()), Err(MALFORMED), "rule 4: one entry, two footprints"); + let mut changed = l.clone(); + changed.entries[1].price += 1; + assert_eq!(RungPrices::read(&changed.to_text()), Err(SIGNATURE_INVALID)); + // §4.2: a class above `Estimator` names its records, and a hardware class its uncertainty. + let d = json!([hex(&[1u8; 32])]); + let figure = |class: &'static str, ppm: Value, records: Value| { + move |v: &mut Value| { + v["entries"][0]["energy_class"] = json!(class); + v["entries"][0]["energy_ppm"] = ppm.clone(); + v["entries"][0]["energy_evidence"] = records.clone(); + } + }; + assert_eq!(RungPrices::read(&resigned(&l, 1, figure("CalibratedInstrument", json!(1_000), Value::Null))), Err(MALFORMED), "a label with no records"); + assert_eq!(RungPrices::read(&resigned(&l, 1, figure("ModelBased", Value::Null, Value::Null))), Err(MALFORMED), "a model with no records"); + assert_eq!(RungPrices::read(&resigned(&l, 1, figure("Estimator", Value::Null, d.clone()))), Err(MALFORMED), "an estimate that names records"); + assert_eq!(RungPrices::read(&resigned(&l, 1, figure("OnChipCounter", Value::Null, d.clone()))), Err(MALFORMED), "a counter with no uncertainty"); + assert_eq!(RungPrices::read(&resigned(&l, 1, figure("ModelBased", json!(1_000), d.clone()))), Err(MALFORMED), "a model with an uncertainty"); + assert_eq!(RungPrices::read(&resigned(&l, 1, figure("ModelBased", Value::Null, d.clone()))).map(|x| x.entries[0].energy_evidence.clone()), Ok(Some(vec![[1u8; 32]]))); + let shared = RungPrices::seal(&key(1), "USD", 10, 20, vec![Entry::new(DOWN, UNI, &["XB"], ANY_RATE, "bytes_sent", 1, Some((5, "ModelBased"))).reads(None, &[[1; 32]])]); + assert_eq!(RungPrices::read(&shared.to_text()), Err(UNIT_INVALID), "rule 5: records in a unit that takes none"); + } + + #[test] + fn the_bounds_no_vector_carries() { + let l = tiers(1, 10, 20, 20); + let text = l.to_text(); + let padded = format!("{text}{}", " ".repeat(MAX_BYTES - text.len())); + assert_eq!(RungPrices::read(&padded).map(|x| x.digest()), Ok(l.digest()), "1,048,576 bytes read"); + assert_eq!(RungPrices::read(&format!("{padded} ")), Err(MALFORMED), "1,048,577 bytes"); + let many = |n: u64| RungPrices::seal(&key(1), "USD", 10, 20, (1..=n).map(|b| Entry::new(DOWN, BIDI, &["XA"], b, "bytes", 1, None)).collect()); + assert_eq!(RungPrices::read(&many(1024).to_text()).map(|x| x.entries.len()), Ok(1024)); + assert_eq!(RungPrices::read(&many(1025).to_text()), Err(MALFORMED)); + let r = request(|_| {}); + assert!(Request::read(&r).is_ok()); + let long = format!("{r}{}", " ".repeat(MAX_REQUEST_BYTES - r.len())); + assert!(Request::read(&long).is_ok(), "65,536 bytes read"); + assert_eq!(Request::read(&format!("{long} ")), Err(REQUEST_INVALID), "65,537 bytes"); + // §6.1: 256 confirmed keys, ascending, and a 257th, the last key's second class. + let confirmed = |n: usize| { + let o = |k: [u8; 32], c: &str| json!({ "key": hex(&k), "class": c }); + json!((0..n).map(|i| if i < 256 { o([i as u8; 32], "ModelBased") } else { o([255; 32], "OnChipCounter") }).collect::>()) + }; + assert_eq!(Request::read(&request(|v| v["confirmed"] = confirmed(256))).map(|r| r.confirmed.len()), Ok(256)); + assert_eq!(Request::read(&request(|v| v["confirmed"] = confirmed(257))), Err(REQUEST_INVALID)); + // §4.2: 64 records named, and 65. + let named = |n: usize| { + move |v: &mut Value| { + v["entries"][0]["energy_class"] = json!("ModelBased"); + v["entries"][0]["energy_evidence"] = json!((0..n).map(|i| hex(&[i as u8; 32])).collect::>()); + } + }; + assert_eq!(RungPrices::read(&resigned(&l, 1, named(64))).map(|x| x.entries[0].energy_evidence.as_ref().map(Vec::len)), Ok(Some(64))); + assert_eq!(RungPrices::read(&resigned(&l, 1, named(65))), Err(MALFORMED)); + } + + #[test] + fn an_evidence_text_names_a_digest_only_within_its_bounds() { + let digest = |b: &[u8]| -> [u8; 32] { Sha256::digest(&b[..b.len() - 64]).into() }; + for (n, named) in [(63, false), (64, true), (MAX_BYTES, true), (MAX_BYTES + 1, false)] { + let b = vec![0u8; n]; + assert_eq!(names(&b), named.then(|| digest(&b)), "{n} bytes"); + } + // A calibrated record of 11,647 media out entries and a calibration reference of `r` bytes: + // 281 + 16 + r + 90 × 11,647 bytes, so 1,048,576 with r = 49 and 1,048,577 with r = 50. + let record = |r: usize| { + let tracks = (0..11_647) + .map(|i: u64| { + let mut track = [0u8; 32]; + track[24..].copy_from_slice(&(i + 1).to_be_bytes()); + metering::TrackEntry { kind: metering::kind::MEDIA, track, dir: metering::dir::OUT, objects: 1, bytes: 1, ..metering::TrackEntry::default() } + }) + .collect(); + let u = crate::energy_class::Uncertainty::new(1_000, 3_600_000_000).expect("a declared uncertainty"); + let class = EnergyProvenance::calibrated_instrument(u, "c".repeat(r)).expect("a calibrated class"); + corpus::record(corpus::SELLER_F, metering::role::RELAY, Some(class), 1_000_000, tracks, [0; metering::CLASSES]).to_bytes() + }; + let at = record(49); + assert_eq!(at.len(), 1_048_576); + assert!(Given::of(std::slice::from_ref(&at)).records.contains_key(&digest(&at)), "a record of 1,048,576 bytes names its digest and is given"); + let past = record(50); + assert_eq!(past.len(), 1_048_577); + assert!(Given::of(std::slice::from_ref(&past)).records.is_empty(), "a record of 1,048,577 bytes names nothing"); + } + + #[test] + fn the_latest_list_stands_alone_and_a_lapsed_one_revives_none() { + let a = tiers(1, 10, 1_000, 20).to_text(); + let later = tiers(1, 100, 200, 18).to_text(); + let other = tiers(1, 100, 200, 19).to_text(); + let labels = |texts: &[String], t: u64| verdict(texts, t).lists.iter().map(|(v, _)| v.label()).collect::>(); + assert_eq!(labels(std::slice::from_ref(&a), 9), vec!["reject reason=rung_prices_not_yet"]); + assert_eq!(labels(std::slice::from_ref(&a), 999), vec!["stands"]); + assert_eq!(labels(std::slice::from_ref(&a), 1_000), vec!["reject reason=rung_prices_expired"]); + assert_eq!(labels(&[a.clone(), later.clone()], 150), vec!["superseded", "stands"]); + assert_eq!(labels(&[a.clone(), later.clone()], 50), vec!["stands", "reject reason=rung_prices_not_yet"]); + let v = verdict(&[a.clone(), later.clone()], 300); + assert_eq!(v.lists[0].0, ListVerdict::Superseded); + assert_eq!(v.lists[1].0, ListVerdict::Refused(EXPIRED)); + assert!(v.standing.is_empty(), "no earlier list revives"); + assert_eq!(labels(&[later.clone(), other], 150), vec!["set-aside reason=rung_prices_contradicted"; 2]); + let v = verdict(&[a.clone(), a], 50); + assert_eq!(v.standing.len(), 1, "one list given twice is one list"); + } + + #[test] + fn a_shared_transmission_costs_its_whole_per_receiver_unless_an_audience_is_stated() { + let a = tiers(1, 10, 1_000, 20_000_000).to_text(); + let b = RungPrices::seal( + &key(2), + "USD", + 10, + 1_000, + vec![ + Entry::new(DOWN, UNI, &["XA", "XB"], 8_000_000, "bytes_sent", 100_000_000, None), + Entry::new(DOWN, UNI, &["XA", "XB"], ANY_RATE, "bytes_sent", 150_000_000, None), + ], + ) + .to_text(); + let texts = [a, b]; + let p = compare(&texts, &[], 50, &request(|_| {})).unwrap(); + let named = |p: &Plan, i: usize| (p.candidates[i].seller, p.candidates[i].entry); + let by = |p: &Plan, unit: &str, max: u64| p.candidates.iter().find(|c| c.unit == unit && c.max_bps == max).unwrap().clone(); + assert_eq!(p.audience, 1); + let shared = by(&p, "bytes_sent", 8_000_000); + assert_eq!((shared.cost, shared.transmission_cost, shared.break_even), (Some(50_000_000_000), Some(50_000_000_000), Some(5_000))); + assert_eq!(by(&p, "bytes", 8_000_000).cost, Some(10_000_000)); + assert_eq!(p.decided_by, "price"); + assert_eq!(by(&p, "bytes", 8_000_000).rank, Some(1)); + assert_eq!(by(&p, "bytes", 2_000_000).removed, vec![("rate", json!(2_000_000))]); + assert_eq!(by(&p, "bytes", ANY_RATE).removed, vec![("tier", json!(8_000_000))]); + assert_eq!(by(&p, "bytes_sent", ANY_RATE).removed, vec![("tier", json!(8_000_000))]); + let p = compare(&texts, &[], 50, &request(|v| v["audience"] = json!(4_999))).unwrap(); + assert_eq!(by(&p, "bytes_sent", 8_000_000).cost, Some(10_002_001), "rounded up"); + assert_eq!(by(&p, "bytes", 8_000_000).rank, Some(1)); + let p = compare(&texts, &[], 50, &request(|v| v["audience"] = json!(5_000))).unwrap(); + assert_eq!(by(&p, "bytes_sent", 8_000_000).cost, Some(10_000_000)); + assert_eq!(p.decided_by, "energy", "equal costs; a stated figure before none"); + let p = compare(&texts, &[], 50, &request(|v| v["audience"] = json!(100_000))).unwrap(); + assert_eq!(named(&p, p.order[0]), (by(&p, "bytes_sent", 8_000_000).seller, 0)); + // The list order never decides. + let reversed = [texts[1].clone(), texts[0].clone()]; + let q = compare(&reversed, &[], 50, &request(|v| v["audience"] = json!(100_000))).unwrap(); + assert_eq!(q.candidates, p.candidates); + assert_eq!(q.order, p.order); + } + + #[test] + fn each_limit_and_the_null_rates() { + let a = tiers(1, 10, 1_000, 20).to_text(); + let eur = RungPrices::seal(&key(3), "EUR", 10, 1_000, vec![Entry::new(DOWN, BIDI, &["XB-1"], ANY_RATE, "bytes", 1, None)]).to_text(); + let texts = [a, eur]; + let removed = |p: &Plan| p.candidates.iter().map(|c| c.removed.iter().map(|(l, _)| *l).collect::>()).collect::>(); + let p = compare(&texts, &[], 50, &request(|v| v["rate_bps"] = Value::Null)).unwrap(); + // The EUR seller's key sorts first or last: find the rows by their seller. + let a_rows: Vec> = p.candidates.iter().filter(|c| c.seller == key(1).verifying_key().to_bytes()).map(|c| c.removed.iter().map(|(l, _)| *l).collect()).collect(); + assert_eq!(a_rows, vec![vec!["rate"], vec!["rate"], vec![]], "a null rate: only the unbounded tier covers it"); + let p = compare(&texts, &[], 50, &request(|v| v["to"] = json!("XB-1"))).unwrap(); + let eur_row = p.candidates.iter().find(|c| c.seller == key(3).verifying_key().to_bytes()).unwrap(); + assert_eq!(eur_row.removed, vec![("currency", json!("EUR"))], "a subdivision held by its own code"); + let p = compare(&texts, &[], 50, &request(|v| v["to"] = json!("XB"))).unwrap(); + let eur_row = p.candidates.iter().find(|c| c.seller == key(3).verifying_key().to_bytes()).unwrap(); + assert_eq!(eur_row.removed[1].0, "footprint", "a country is not held by its subdivision"); + let p = compare(&texts, &[], 50, &request(|v| v["bearers"] = json!(["unidirectional"]))).unwrap(); + assert!(removed(&p).iter().all(|r| r.contains(&"bearer"))); + let p = compare(&texts, &[], 50, &request(|v| v["quantities"] = json!([{"unit": "pass_us", "quantity": 1}]))).unwrap(); + assert!(removed(&p).iter().all(|r| r.contains(&"unit")), "units are never converted"); + let p = compare(&texts, &[], 50, &request(|v| v["max_price"] = json!([{"unit": "bytes", "price": 1, "divisor": 1_000_000_000}]))).unwrap(); + assert!(p.candidates.iter().filter(|c| c.max_bps == 8_000_000).all(|c| c.removed == vec![("unit_price", json!(20))])); + assert_eq!(compare(&texts, &[], 50, &request(|v| v["to"] = json!("xb"))), Err(REQUEST_INVALID)); + assert_eq!(compare(&texts, &[], 50, &request(|v| v["audience"] = json!(0))), Err(REQUEST_INVALID)); + assert_eq!(compare(&texts, &[], 50, &request(|v| v["bearers"] = json!(["unidirectional", "bidirectional"]))), Err(REQUEST_INVALID)); + } + + /// One entry over {XB} at the unbounded ceiling, of `seed`'s at the corpus's instants, naming + /// `named` when it names any. + fn priced(seed: u8, price: u64, energy: Option<(u64, &str)>, ppm: Option, named: &[&HopRecord]) -> String { + let x = Entry::new(DOWN, BIDI, &["XB"], ANY_RATE, "bytes", price, energy); + corpus::day(seed, vec![if named.is_empty() { x } else { x.reads(ppm, &corpus::digests(named)) }]).to_text() + } + + /// The texts of `records`, and the room's. + fn given(records: &[&HopRecord]) -> Vec> { + records.iter().map(|x| x.to_bytes()).chain(std::iter::once(corpus::room().to_bytes())).collect() + } + + fn sellers(p: &Plan) -> Vec<[u8; 32]> { + p.order.iter().map(|&i| p.candidates[i].seller).collect() + } + + #[test] + fn energy_ranks_by_checked_evidence_first_and_unknown_last() { + use corpus::{SELLER_C, SELLER_F}; + let rs = corpus::records(); + let texts = [ + priced(SELLER_C, 30, Some((900_000_000, "CalibratedInstrument")), Some(20_000), &[&rs.rc1, &rs.rc2]), + priced(SELLER_F, 20, Some((500_000_000, "ModelBased")), None, &[&rs.rf1]), + priced(3, 10, None, None, &[]), + ]; + let evidence = given(&[&rs.rc1, &rs.rc2, &rs.rf1]); + let confirmed = corpus::confirmed(&[(SELLER_C, "CalibratedInstrument"), (SELLER_F, "ModelBased")]); + let by = |sort: &'static str| { + request(|v| { + v["sort"] = json!(sort); + v["confirmed"] = confirmed.clone(); + }) + }; + let p = compare(&texts, &evidence, corpus::AT, &by("energy")).unwrap(); + let k = |s: u8| key(s).verifying_key().to_bytes(); + assert_eq!(sellers(&p), vec![k(SELLER_C), k(SELLER_F), k(3)], "a larger checked calibrated figure first; an unknown one last"); + assert_eq!(p.decided_by, "energy"); + let ranks: Vec<(Option, u8)> = p.order.iter().map(|&i| (p.candidates[i].evidence, p.candidates[i].energy_rank)).collect(); + assert_eq!(ranks, vec![(Some(Evidence::Checked), 0), (Some(Evidence::Checked), 2), (None, 4)]); + let p = compare(&texts, &evidence, corpus::AT, &by("price")).unwrap(); + assert_eq!(sellers(&p), vec![k(3), k(SELLER_F), k(SELLER_C)]); + } + + #[test] + fn a_label_without_its_readings_ranks_as_an_estimate() { + use corpus::{SELLER_F, SELLER_G}; + let rs = corpus::records(); + let f = priced(SELLER_F, 20_000_000, Some((500_000_000, "ModelBased")), None, &[&rs.rf1]); + let k = |s: u8| key(s).verifying_key().to_bytes(); + let confirming = |pairs: &[(u8, &str)]| { + request(|v| { + v["sort"] = json!("energy"); + v["confirmed"] = corpus::confirmed(pairs); + }) + }; + let r = confirming(&[(SELLER_F, "ModelBased")]); + // G states a calibrated 100,000,000 per 10^9 at 1,000 ppm over `named`, and gives `extra`. + let run_under = |r: &str, named: &[&HopRecord], extra: &[&HopRecord]| { + let texts = [f.clone(), priced(SELLER_G, 20_000_000, Some((100_000_000, "CalibratedInstrument")), Some(1_000), named)]; + let evidence = given(&[&[&rs.rf1][..], extra].concat()); + let p = compare(&texts, &evidence, corpus::AT, r).unwrap(); + assert_eq!(sellers(&p), vec![k(SELLER_F), k(SELLER_G)], "the honest model-based figure first"); + let g = p.candidates.iter().find(|c| c.seller == k(SELLER_G)).expect("G's candidate"); + (g.evidence, g.energy, g.energy_rank) + }; + let run = |named: &[&HopRecord], extra: &[&HopRecord]| run_under(r.as_str(), named, extra); + assert_eq!(run(&[&rs.rg_cal], &[]), (Some(Evidence::Absent), Some(50_000_000), 3)); + assert_eq!(run(&[&rs.rg_cal], &[&rs.rg_cal]), (Some(Evidence::Unconfirmed), Some(50_000_000), 3)); + // G's key confirmed for another class confirms nothing of this one. + for other in ["ModelBased", "OnChipCounter"] { + let r = confirming(&[(SELLER_F, "ModelBased"), (SELLER_G, other)]); + assert_eq!(run_under(r.as_str(), &[&rs.rg_cal], &[&rs.rg_cal]), (Some(Evidence::Unconfirmed), Some(50_000_000), 3), "G confirmed for {other}"); + } + assert_eq!(run(&[&rs.rc1, &rs.rc2], &[&rs.rc1, &rs.rc2]), (Some(Evidence::Refuted(EVIDENCE_SIGNER)), None, 4)); + assert_eq!(run(&[&rs.rg_high], &[&rs.rg_high]), (Some(Evidence::Refuted(EVIDENCE_FIGURE)), None, 4)); + } + + #[test] + fn uncertainty_orders_figures_of_one_class() { + use corpus::{SELLER_C, SELLER_E}; + let rs = corpus::records(); + let texts = [ + priced(SELLER_C, 30_000_000, Some((900_000_000, "CalibratedInstrument")), Some(20_000), &[&rs.rc1, &rs.rc2]), + priced(SELLER_E, 30_000_000, Some((910_000_000, "CalibratedInstrument")), Some(5_000), &[&rs.re1]), + ]; + let r = request(|v| { + v["sort"] = json!("energy"); + v["confirmed"] = corpus::confirmed(&[(SELLER_C, "CalibratedInstrument"), (SELLER_E, "CalibratedInstrument")]); + }); + let p = compare(&texts, &given(&[&rs.rc1, &rs.rc2, &rs.re1]), corpus::AT, &r).unwrap(); + let k = |s: u8| key(s).verifying_key().to_bytes(); + assert_eq!(sellers(&p), vec![k(SELLER_E), k(SELLER_C)], "455,000,000 at 5,000 ppm before 450,000,000 at 20,000"); + let energies: Vec> = p.order.iter().map(|&i| p.candidates[i].energy).collect(); + assert_eq!(energies, vec![Some(455_000_000), Some(450_000_000)]); + assert_eq!(p.decided_by, "energy"); + } + + #[test] + fn the_break_even_when_the_cheapest_is_free() { + let free = RungPrices::seal(&key(1), "USD", 10, 1_000, vec![Entry::new(DOWN, BIDI, &["XB"], ANY_RATE, "bytes", 0, None)]).to_text(); + let b = RungPrices::seal( + &key(2), + "USD", + 10, + 1_000, + vec![ + Entry::new(DOWN, Bearer::Multicast, &["XB"], ANY_RATE, "bytes_sent", 0, None), + Entry::new(DOWN, UNI, &["XB"], ANY_RATE, "bytes_sent", 100, None), + ], + ) + .to_text(); + let p = compare(&[free, b], &[], 50, &request(|_| {})).unwrap(); + let be: Vec<(Bearer, Option)> = p.candidates.iter().filter(|c| c.basis == Basis::Transmission).map(|c| (c.bearer, c.break_even)).collect(); + assert_eq!(be, vec![(Bearer::Multicast, Some(1)), (UNI, None)]); + } + + #[test] + fn the_pass_rate_and_its_tier() { + // 1,000,000 bytes a pass, a pass of 1,000 ms: 8,000,000 bits per second. + assert_eq!(pass_rate(10_000_000, 10, 1_000), Some(8_000_000)); + assert_eq!(pass_rate(10_000_001, 10, 1_000), Some(8_000_001), "rounded up"); + assert_eq!(pass_rate(1, 0, 1_000), None); + assert_eq!(tier(&[2_000_000, 8_000_000, ANY_RATE], Some(3_000_000)), Some(8_000_000)); + assert_eq!(tier(&[2_000_000, 8_000_000, ANY_RATE], Some(8_000_000)), Some(8_000_000)); + assert_eq!(tier(&[2_000_000, 8_000_000], None), None, "an unknown rate: only the unbounded ceiling covers it"); + assert_eq!(tier(&[2_000_000, ANY_RATE], None), Some(ANY_RATE)); + assert_eq!(tier(&[ANY_RATE], Some(u64::MAX as u128)), None, "above every ceiling"); + } +} diff --git a/wai/wai-rs/src/rung_price/corpus.rs b/wai/wai-rs/src/rung_price/corpus.rs new file mode 100644 index 000000000..7385dc320 --- /dev/null +++ b/wai/wai-rs/src/rung_price/corpus.rs @@ -0,0 +1,2095 @@ +//! The conformance corpus of extensions/rung-price.md §9: `live-conformance/prices/`. +//! +//! [`generate`] writes `vectors.json` from fixed seeds: every key is an Ed25519 key from a fixed +//! 32-byte seed, every instant a constant, every region a user-assigned ISO 3166-1 code or a +//! subdivision of one (`XA`, `XB`, `XB-1`, …), and Ed25519 signing is deterministic (RFC 8032), +//! so the file is the same bytes on every machine. The one second signature of a body is made +//! under another nonce prefix, a constant too. Each case states the outcome it was written to +//! have, declared here and never copied from [`super::RungPrices::read`], [`super::verdict`] or +//! [`super::compare`]; [`verify`] requires the module to reach every outcome, the corpus to give +//! every reason of §8, every limit of §6.2 to remove a candidate, every decision of §6.5, every +//! evidence of §6.4 and every energy rank to occur. The per-hop records the comparisons are given +//! are of two rooms, R1 and R0, a month older, signed by their hops' keys. +//! `live-conformance/rung_price_verify.py` checks the same file from the extension's text, sharing +//! no code with this module. + +use super::*; +use crate::energy_class::{CounterFiltering, Uncertainty}; +use crate::live_metering::TrackEntry; +use serde_json::Map; + +const SELLER_UNICAST: u8 = 0x61; +const SELLER_BROADCAST: u8 = 0x62; +pub(super) const SELLER_C: u8 = 0x63; +const SELLER_D: u8 = 0x64; +const SELLER_CONTRIBUTION: u8 = 0x65; +const SELLER_OTHER_CURRENCY: u8 = 0x66; +/// A second calibrated relay, more precise than C. +pub(super) const SELLER_E: u8 = 0x67; +/// A relay that prices from a model, honestly. +pub(super) const SELLER_F: u8 = 0x68; +/// A seller that states a class its records do not bear out. +pub(super) const SELLER_G: u8 = 0x69; +/// Signs R1 and R0, the room descriptors. +const ROOM_AUTHORITY: u8 = 0x6a; +const HOLDER_A: u8 = 0x51; +const HOLDER_B: u8 = 0x52; +const HOLDER_C: u8 = 0x53; +const HOLDER_D: u8 = 0x54; +const HOLDER_E: u8 = 0x55; + +/// 2026-11-03T00:00:00Z, in microseconds: when the lists are issued. +const T0: u64 = 1_793_664_000_000_000; +const MINUTE: u64 = 60_000_000; +const HOUR: u64 = 3_600_000_000; +const DAY: u64 = 86_400_000_000; +const WEEK: u64 = 7 * DAY; +/// The instant the comparisons are made at, unless a case says otherwise. +pub(super) const AT: u64 = T0 + HOUR; +/// The instant of a record of R1's first hour: R1's `t0` + HOUR − 1. +const R1_INSTANT: u64 = T0 - DAY + HOUR - 1; + +const DOWN: Direction = Direction::Downlink; +const UP: Direction = Direction::Uplink; +const BIDI: Bearer = Bearer::Bidirectional; +const MULTI: Bearer = Bearer::Multicast; +const UNI: Bearer = Bearer::Unidirectional; +const M8: u64 = 8_000_000; +const ANY: u64 = ANY_RATE; +const CAL: &str = "CalibratedInstrument"; +const OCC: &str = "OnChipCounter"; +const MODEL: &str = "ModelBased"; +const EST: &str = "Estimator"; + +fn key(seed: u8) -> SigningKey { + SigningKey::from_bytes(&[seed; 32]) +} + +fn seal(seed: u8, issued: u64, expires: u64, entries: Vec) -> RungPrices { + RungPrices::seal(&key(seed), "USD", issued, expires, entries) +} + +/// A day's list, issued at T0. +pub(super) fn day(seed: u8, entries: Vec) -> RungPrices { + seal(seed, T0, T0 + DAY, entries) +} + +fn e(direction: Direction, bearer: Bearer, footprint: &[&str], max_bps: u64, unit: &str, price: u64, energy: Option<(u64, &str)>) -> Entry { + Entry::new(direction, bearer, footprint, max_bps, unit, price, energy) +} + +/// R1: the room descriptor whose `t0` is a day before the lists' issue. Only its magic, version, +/// authority, `t0` and signature are read (fleet §4.4). +pub(super) fn room() -> crate::live_room::Descriptor { + room_from(T0 - DAY) +} + +/// R0: R1 but for its `t0`, thirty days before the lists' issue, so its records are a month old. +fn stale_room() -> crate::live_room::Descriptor { + room_from(T0 - 30 * DAY) +} + +fn room_from(t0_us: u64) -> crate::live_room::Descriptor { + use crate::live_room::{Descriptor, Limits, Recording, Review}; + let authority = key(ROOM_AUTHORITY).verifying_key().to_bytes(); + Descriptor { + authority, + clock: authority, + t0_us, + tick_us: 1_000_000, + origin: String::new(), + limits: Limits { max_present: 8, max_publishers: 2, reval_s: 0, ceiling: crate::live_events::Policy::default() }, + roles: vec![], + slots: vec![], + profiles: vec![], + review: Review { kinds: [0; 32], deadline_ms: 0, fallback: 0 }, + recording: Recording { mode: 0, retention_days: 0, commit_interval_ms: 0, jitter_ms: 0, regions: vec![] }, + sig: [0; 64], + } + .sign(&key(ROOM_AUTHORITY)) +} + +/// A version 1 per-hop record of R1's first hour, one session, no events and no grants, signed by +/// `seed`'s key: its instant is T0 − DAY + HOUR − 1. +pub(super) fn record(seed: u8, role: u8, class: Option, joules: u64, tracks: Vec, subscriber_us: [u64; metering::CLASSES]) -> HopRecord { + record_in(room().room_id(), seed, role, class, joules, tracks, subscriber_us) +} + +/// The same, of the first hour of the room `room`. +fn record_in(room: [u8; 32], seed: u8, role: u8, class: Option, joules: u64, tracks: Vec, subscriber_us: [u64; metering::CLASSES]) -> HopRecord { + HopRecord { + room, + hop: key(seed).verifying_key().to_bytes(), + role, + start: 0, + end: HOUR, + joules, + class, + tracks, + sessions: 1, + subscriber_us, + events: 0, + grants: 0, + ledger: [0; 32], + dvr: None, + sig: [0; 64], + } + .sign(&key(seed)) +} + +/// A media track's out entry of one object. +fn media(bytes: u64) -> TrackEntry { + TrackEntry { kind: metering::kind::MEDIA, track: [0x11; 32], dir: metering::dir::OUT, objects: 1, bytes, ..TrackEntry::default() } +} + +/// The same media track's in entry of one object: what a relay received. +fn media_in(bytes: u64) -> TrackEntry { + TrackEntry { dir: metering::dir::IN, ..media(bytes) } +} + +/// The events track's out entry of one object. +fn events(bytes: u64) -> TrackEntry { + TrackEntry { kind: metering::kind::EVENTS, track: [0; 32], dir: metering::dir::OUT, objects: 1, bytes, ..TrackEntry::default() } +} + +fn cal(ppm: u32) -> Option { + Some(EnergyProvenance::calibrated_instrument(Uncertainty::new(ppm, HOUR).expect("a declared uncertainty"), "cal-0001").expect("a calibrated class")) +} + +fn occ(ppm: u32) -> Option { + Some(EnergyProvenance::on_chip_counter(Uncertainty::new(ppm, HOUR).expect("a declared uncertainty"), CounterFiltering::Off).expect("a counter class")) +} + +/// The per-hop records the cases name: `rc*` C's, `re*` E's, `rf*` F's, `rd_sub` D's and `rg*` +/// G's. Each is a relay's (role 1) of R1 unless written otherwise. +pub(super) struct Records { + /// Calibrated, 20,000 ppm: 450,000,000 µJ over 500,000,000 media bytes out, and an events + /// track's 1,000,000 bytes out, which a rate does not count. + pub(super) rc1: HopRecord, + /// Calibrated, 10,000 ppm: 900,000,000 µJ over 1,000,000,000 media bytes out, and the + /// 1,000,000,000 media bytes in it received, which a rate does not count. + pub(super) rc2: HopRecord, + /// Calibrated, 1,000 ppm: 10^15 µJ over 1,000,000,000 bytes. + pub(super) rc_huge: HopRecord, + /// Calibrated, 1 ppm: 100,000,000 µJ over 500,000,000 bytes. + pub(super) rc_precise: HopRecord, + /// R0's: rc1's figures, and rc2's media bytes out with no in entry, a month old. + pub(super) rc1_stale: HopRecord, + pub(super) rc2_stale: HopRecord, + /// Calibrated, 5,000 ppm: 910,000,000 µJ over 1,000,000,000 bytes. + pub(super) re1: HopRecord, + /// Calibrated, 1,000 ppm: 1,000,000 µJ over 500,000,000 bytes. + pub(super) re_rough: HopRecord, + /// A counter's, 1,000 ppm: 36,360,000 µJ over an hour of subscriber time at layer class 3. + pub(super) re_sub: HopRecord, + /// Model-based: 250,000,000 µJ over 500,000,000 bytes. + pub(super) rf1: HopRecord, + /// Model-based: 1 µJ over 3 bytes. + pub(super) rf_round: HopRecord, + /// A counter's, 30,000 ppm: 36,000,000 µJ, an hour of subscriber time at layer class 3 and an + /// hour at class 8 (no media), no track entry. + pub(super) rd_sub: HopRecord, + /// G's, each 50,000,000 µJ over 500,000,000 bytes: calibrated at 1,000 ppm, model-based and a + /// counter's at 1,000 ppm. + pub(super) rg_cal: HopRecord, + pub(super) rg_model: HopRecord, + pub(super) rg_counter: HopRecord, + /// Calibrated, 1,000 ppm: 200,000,000 µJ over 500,000,000 bytes. + pub(super) rg_high: HopRecord, + /// Calibrated, 50,000 ppm: 50,000,000 µJ over 500,000,000 bytes. Its digest is below + /// rg_cal's, so a list naming both names it first. + pub(super) rg_wide: HopRecord, + /// The unmetered marker over 500,000,000 bytes. + pub(super) rg_unmetered: HopRecord, + /// Calibrated, 1,000 ppm: 50,000,000 µJ over an events track's 1,000 bytes alone. + pub(super) rg_empty: HopRecord, + /// An ingest gateway's (role 3), calibrated, 1,000 ppm: 50,000,000 µJ over 500,000,000 bytes. + pub(super) rg_ingest: HopRecord, + /// A compositor's (role 2), calibrated, 1,000 ppm: 50,000,000 µJ over 500,000,000 bytes. + pub(super) rg_compositor: HopRecord, +} + +pub(super) fn records() -> Records { + let none = [0u64; metering::CLASSES]; + let relay = metering::role::RELAY; + let model = || Some(EnergyProvenance::ModelBased); + let mut sub = none; + sub[3] = HOUR; + let layer_3 = sub; + sub[metering::NO_MEDIA as usize] = HOUR; + let r0 = stale_room().room_id(); + Records { + rc1: record(SELLER_C, relay, cal(20_000), 450_000_000, vec![media(500_000_000), events(1_000_000)], none), + rc2: record(SELLER_C, relay, cal(10_000), 900_000_000, vec![media_in(1_000_000_000), media(1_000_000_000)], none), + rc_huge: record(SELLER_C, relay, cal(1_000), 1_000_000_000_000_000, vec![media(1_000_000_000)], none), + rc_precise: record(SELLER_C, relay, cal(1), 100_000_000, vec![media(500_000_000)], none), + rc1_stale: record_in(r0, SELLER_C, relay, cal(20_000), 450_000_000, vec![media(500_000_000), events(1_000_000)], none), + rc2_stale: record_in(r0, SELLER_C, relay, cal(10_000), 900_000_000, vec![media(1_000_000_000)], none), + re1: record(SELLER_E, relay, cal(5_000), 910_000_000, vec![media(1_000_000_000)], none), + re_rough: record(SELLER_E, relay, cal(1_000), 1_000_000, vec![media(500_000_000)], none), + re_sub: record(SELLER_E, relay, occ(1_000), 36_360_000, vec![], layer_3), + rf1: record(SELLER_F, relay, model(), 250_000_000, vec![media(500_000_000)], none), + rf_round: record(SELLER_F, relay, model(), 1, vec![media(3)], none), + rd_sub: record(SELLER_D, relay, occ(30_000), 36_000_000, vec![], sub), + rg_cal: record(SELLER_G, relay, cal(1_000), 50_000_000, vec![media(500_000_000)], none), + rg_model: record(SELLER_G, relay, model(), 50_000_000, vec![media(500_000_000)], none), + rg_counter: record(SELLER_G, relay, occ(1_000), 50_000_000, vec![media(500_000_000)], none), + rg_high: record(SELLER_G, relay, cal(1_000), 200_000_000, vec![media(500_000_000)], none), + rg_wide: record(SELLER_G, relay, cal(50_000), 50_000_000, vec![media(500_000_000)], none), + rg_unmetered: record(SELLER_G, relay, None, 0, vec![media(500_000_000)], none), + rg_empty: record(SELLER_G, relay, cal(1_000), 50_000_000, vec![events(1_000)], none), + rg_ingest: record(SELLER_G, metering::role::INGEST, cal(1_000), 50_000_000, vec![media(500_000_000)], none), + rg_compositor: record(SELLER_G, metering::role::COMPOSITOR, cal(1_000), 50_000_000, vec![media(500_000_000)], none), + } +} + +/// The records' digests, ascending: what an entry names. +pub(super) fn digests(rs: &[&HopRecord]) -> Vec<[u8; 32]> { + let mut v: Vec<[u8; 32]> = rs.iter().map(|x| x.digest()).collect(); + v.sort(); + v +} + +/// The texts of `rs`, then R1's. +fn texts(rs: &[&HopRecord]) -> Vec> { + rs.iter().map(|x| x.to_bytes()).chain(std::iter::once(room().to_bytes())).collect() +} + +/// `b` with its last byte changed: the same digest, a signature that fails. +fn flipped(b: &[u8]) -> Vec { + let mut v = b.to_vec(); + *v.last_mut().expect("a text") ^= 1; + v +} + +/// The digest a text names (§4.6): SHA-256 over all its bytes but the last 64. +fn named_digest(b: &[u8]) -> [u8; 32] { + Sha256::digest(&b[..b.len() - 64]).into() +} + +/// The `confirmed` of a request: each seller's key with a class, in ascending order. +pub(super) fn confirmed(pairs: &[(u8, &str)]) -> Value { + let mut v: Vec<([u8; 32], &str)> = pairs.iter().map(|&(s, c)| (key(s).verifying_key().to_bytes(), c)).collect(); + v.sort_by(|a, b| (a.0, a.1.as_bytes()).cmp(&(b.0, b.1.as_bytes()))); + json!(v.iter().map(|(k, c)| json!({ "key": hex(k), "class": c })).collect::>()) +} + +/// A `confirmed` of `n` keys, each for `ModelBased`: the SHA-256 digests of the two-byte integers 0 +/// to `n` − 1, ascending. +fn model_keys(n: u16) -> Value { + let mut keys: Vec<[u8; 32]> = (0..n).map(|k| Sha256::digest(k.to_be_bytes()).into()).collect(); + keys.sort(); + json!(keys.iter().map(|k| json!({ "key": hex(k), "class": MODEL })).collect::>()) +} + +/// The 8,192 codes of the bound: subdivisions `000` to `511` of each of `XA` to `XP`, in byte order. +fn codes(n: usize) -> Vec { + (b'A'..=b'Z').flat_map(|c| (0..512).map(move |k| format!("X{}-{k:03}", c as char))).take(n).collect() +} + +/// The lists the cases are built from. +struct Lists { + /// A: bidirectional downlink `bytes` at three tiers over {XA, XB}, an estimator's figure each. + unicast_tiers: RungPrices, + /// B: multicast and unidirectional downlink `bytes_sent`, unidirectional `pass_us`, and + /// unidirectional uplink `bytes_sent` at 1,000,000. + broadcast_capacity: RungPrices, + /// holder A: bidirectional downlink `bytes` over {XB-1}, no figure. + peer_bytes: RungPrices, + /// holder B over {XB}, holder C over {XB-1}: with holder A, the priced neighbours of + /// `peer_order`. + peer_b: RungPrices, + peer_c: RungPrices, + /// holder D over {XB}, the cheapest, lapsing a minute after issue; holder E over {XA} alone: + /// the neighbours of `peer_order` with no price for XB-1. + peer_d: RungPrices, + peer_e: RungPrices, + contribution: RungPrices, + /// A a minute later, its 8M tier repriced; and at that same instant, repriced otherwise. + later: RungPrices, + later_other: RungPrices, + /// A a minute later, lapsing a minute after that. + lapsing: RungPrices, + /// The one seller in another currency. + euro: RungPrices, +} + +fn tiers(mid_price: u64) -> Vec { + vec![ + e(DOWN, BIDI, &["XA", "XB"], 2_000_000, "bytes", 10_000_000, Some((300_000_000, EST))), + e(DOWN, BIDI, &["XA", "XB"], M8, "bytes", mid_price, Some((500_000_000, EST))), + e(DOWN, BIDI, &["XA", "XB"], ANY, "bytes", 40_000_000, Some((900_000_000, EST))), + ] +} + +fn lists() -> Lists { + let peer = |seed: u8, footprint: &[&str], price: u64| day(seed, vec![e(DOWN, BIDI, footprint, ANY, "bytes", price, None)]); + Lists { + unicast_tiers: day(SELLER_UNICAST, tiers(20_000_000)), + broadcast_capacity: day( + SELLER_BROADCAST, + vec![ + e(DOWN, MULTI, &["XA"], M8, "bytes_sent", 80_000_000, Some((1_500_000_000, EST))), + e(DOWN, UNI, &["XA", "XB"], M8, "bytes_sent", 100_000_000, Some((2_000_000_000, EST))), + e(DOWN, UNI, &["XA", "XB"], ANY, "bytes_sent", 150_000_000, None), + e(DOWN, UNI, &["XA", "XB"], ANY, "pass_us", 2_000_000, Some((40_000_000, EST))), + e(UP, UNI, &["XA", "XB"], 1_000_000, "bytes_sent", 50_000_000, None), + ], + ), + peer_bytes: peer(HOLDER_A, &["XB-1"], 30_000_000), + peer_b: peer(HOLDER_B, &["XB"], 10_000_000), + peer_c: peer(HOLDER_C, &["XB-1"], 20_000_000), + peer_d: seal(HOLDER_D, T0, T0 + MINUTE, vec![e(DOWN, BIDI, &["XB"], ANY, "bytes", 1_000_000, None)]), + peer_e: peer(HOLDER_E, &["XA"], 5_000_000), + contribution: day( + SELLER_CONTRIBUTION, + vec![ + e(UP, BIDI, &["XA", "XB"], ANY, "publisher_us", 500_000, Some((30_000_000, EST))), + e(UP, UNI, &["XA", "XB"], ANY, "bytes_sent", 60_000_000, None), + ], + ), + later: seal(SELLER_UNICAST, T0 + MINUTE, T0 + DAY, tiers(18_000_000)), + later_other: seal(SELLER_UNICAST, T0 + MINUTE, T0 + DAY, tiers(19_000_000)), + lapsing: seal(SELLER_UNICAST, T0 + MINUTE, T0 + 2 * MINUTE, tiers(15_000_000)), + euro: RungPrices::seal(&key(SELLER_OTHER_CURRENCY), "EUR", T0, T0 + DAY, vec![e(DOWN, BIDI, &["XA", "XB"], ANY, "bytes", 1_000_000, None)]), + } +} + +/// A one-entry list of A's: the base the entry-member cases change. +fn one() -> RungPrices { + day(SELLER_UNICAST, vec![e(DOWN, BIDI, &["XA", "XB"], M8, "bytes", 20_000_000, Some((500_000_000, EST)))]) +} + +/// The body signed by `seed` under another nonce prefix: a second valid signature of one body. +fn second_signature(seed: u8, body: &Value) -> [u8; 64] { + use ed25519_dalek::hazmat::{raw_sign, ExpandedSecretKey}; + let mut esk = ExpandedSecretKey::from(&[seed; 32]); + esk.hash_prefix = [0x5a; 32]; + raw_sign::(&esk, &[SIGN_DOMAIN, canonical(body).as_bytes()].concat(), &key(seed).verifying_key()).to_bytes() +} + +/// `l` with `f` applied to its body, then signed again by its seller's seed when the body is +/// still in the document subset (else it keeps its signature): a text that breaks only what `f` +/// breaks. Out of the subset, the text is plain JSON. +fn changed(l: &RungPrices, seed: u8, f: &dyn Fn(&mut Value)) -> String { + let mut body = l.body(); + f(&mut body); + let sig = if crate::jcs::jcs(&body).is_ok() { sign(&body, &key(seed)) } else { l.sig }; + body["sig"] = json!(hex(&sig)); + if crate::jcs::jcs(&body).is_ok() { canonical(&body) } else { serde_json::to_string(&body).expect("serialises") } +} + +/// `l`'s text with `f` applied to its value and its signature kept. +fn unsigned(l: &RungPrices, f: &dyn Fn(&mut Value)) -> String { + let mut v = l.to_value(); + f(&mut v); + canonical(&v) +} + +fn read_outcome(l: &RungPrices) -> Value { + json!({ "outcome": "read", "digest": hex(&l.digest()), "seller": hex(&l.seller), "entries": l.entries.len() }) +} + +fn refuse(reason: &str) -> Value { + json!({ "outcome": "refuse", "reason": reason }) +} + +fn list_cases(ls: &Lists) -> Vec { + let mut out = Vec::new(); + let mut case = |name: &str, description: &str, text: String, outcome: Value| out.push(json!({ "name": name, "description": description, "text": text, "outcome": outcome })); + let a = SELLER_UNICAST; + let read = read_outcome; + + // Read. + let t = &ls.unicast_tiers; + case("unicast_tiers", "Bidirectional downlink bytes at three tiers (2,000,000, 8,000,000 and the unbounded ceiling) over {XA, XB}, each with an estimator's figure.", t.to_text(), read(t)); + let b = &ls.broadcast_capacity; + case("broadcast_capacity", "Multicast and unidirectional downlink bytes_sent, unidirectional downlink pass_us, and unidirectional uplink bytes_sent; one entry with no figure.", b.to_text(), read(b)); + case("peer_bytes", "A holder's bidirectional downlink bytes over {XB-1}, with no figure.", ls.peer_bytes.to_text(), read(&ls.peer_bytes)); + case("contribution", "Bidirectional uplink publisher_us, and unidirectional uplink bytes_sent.", ls.contribution.to_text(), read(&ls.contribution)); + let room = day( + a, + vec![ + e(DOWN, BIDI, &["XA", "XB"], 500_000, "subscriber_us", 100_000, None), + e(DOWN, BIDI, &["XA", "XB"], 2_500_000, "subscriber_us", 200_000, None), + e(DOWN, BIDI, &["XA", "XB"], 6_000_000, "subscriber_us", 400_000, None), + ], + ); + case("room_layers", "Bidirectional downlink subscriber_us at three tiers.", room.to_text(), read(&room)); + let disjoint = day(a, vec![e(DOWN, BIDI, &["XA"], M8, "bytes", 20_000_000, None), e(DOWN, BIDI, &["XB"], M8, "bytes", 25_000_000, None)]); + case("disjoint_footprints", "Two entries of one unit and one ceiling over {XA} and {XB}, at two prices.", disjoint.to_text(), read(&disjoint)); + let cross = day(a, vec![e(DOWN, BIDI, &["XA-1", "XB"], ANY, "bytes", 20_000_000, None)]); + case("country_and_another_countrys_subdivision", "{XA-1, XB} in one entry: a subdivision beside another country.", cross.to_text(), read(&cross)); + let bound_codes = codes(MAX_FOOTPRINT); + let bound_refs: Vec<&str> = bound_codes.iter().map(String::as_str).collect(); + let bounds = seal( + a, + 0, + MAX_INT, + vec![ + e(DOWN, BIDI, &["XA"], 1, "bytes", 0, Some((1, EST))), + e(DOWN, BIDI, &bound_refs, ANY, "bytes", 20_000_000, None), + e(DOWN, BIDI, &["XA"], 1, "subscriber_us", u32::MAX as u64, None), + ], + ); + case( + "bounds", + "A ceiling of 1, a price of 0 and a figure of 1; a footprint of 8,192 codes; a subscriber_us price of 2^32 − 1; issued 0 and expires 2^53 − 1.", + bounds.to_text(), + read(&bounds), + ); + let reordered = { + let v = t.to_value(); + let mut m = Map::new(); + for (k, x) in v.as_object().expect("a list is an object").iter().rev() { + m.insert(k.clone(), x.clone()); + } + serde_json::to_string_pretty(&Value::Object(m)).expect("serialises") + }; + case("another_member_order", "unicast_tiers with its members in another order and whitespace added: the same list.", reordered, read(t)); + let mut twin = t.clone(); + twin.sig = second_signature(a, &t.body()); + case("same_body_two_signatures", "unicast_tiers's body under a second valid signature, made under another nonce: the same digest.", twin.to_text(), read(&twin)); + // Records named (§4.2), read but not checked at reading. + let rs = records(); + let measured = day( + SELLER_C, + vec![ + e(DOWN, BIDI, &["XB"], 2_000_000, "bytes", 30_000_000, Some((900_000_000, CAL))).reads(Some(20_000), &digests(&[&rs.rc1, &rs.rc2])), + e(DOWN, BIDI, &["XB"], M8, "bytes", 20_000_000, Some((500_000_000, MODEL))).reads(None, &digests(&[&rs.rc2])), + e(DOWN, BIDI, &["XB"], ANY, "bytes", 40_000_000, Some((900_000_000, EST))), + e(DOWN, BIDI, &["XB"], ANY, "subscriber_us", 1_000, Some((10_000, OCC))).reads(Some(30_000), &digests(&[&rs.rd_sub])), + ], + ); + case( + "measured_entries", + "C's bytes at three tiers, calibrated over two records, model-based over one and an estimate, and subscriber_us of a counter over one: records are named, not checked, at reading.", + measured.to_text(), + read(&measured), + ); + let one_figure = |class: &str, ppm: Option, named: &[[u8; 32]]| { + day(a, vec![e(DOWN, BIDI, &["XA", "XB"], M8, "bytes", 20_000_000, Some((500_000_000, class))).reads(ppm, named)]) + }; + let ppm_bound = one_figure(CAL, Some(MAX_PPM), &digests(&[&rs.rg_cal])); + case("ppm_bound", "A calibrated figure declared to 2^32 − 1 ppm.", ppm_bound.to_text(), read(&ppm_bound)); + let mut sixty_four: Vec<[u8; 32]> = (0..=63u8).map(|b| Sha256::digest([b]).into()).collect(); + sixty_four.sort(); + let evidence_bound = one_figure(MODEL, None, &sixty_four); + case("evidence_bound", "A model-based figure naming 64 records: the SHA-256 digests of the bytes 0 to 63, ascending.", evidence_bound.to_text(), read(&evidence_bound)); + let differ = day( + a, + vec![ + e(DOWN, BIDI, &["XA"], M8, "bytes", 20_000_000, Some((500_000_000, MODEL))).reads(None, &digests(&[&rs.rf1])), + e(DOWN, BIDI, &["XB"], M8, "bytes", 20_000_000, Some((500_000_000, MODEL))).reads(None, &digests(&[&rs.rf_round])), + ], + ); + case( + "readings_differ_not_mergeable", + "Two entries of one tier over {XA} and {XB}, at one price and one model-based figure over different records: two statements, not one entry.", + differ.to_text(), + read(&differ), + ); + let calibrated = |footprint: &[&str], ppm: u64| { + e(DOWN, BIDI, footprint, 2_000_000, "bytes", 30_000_000, Some((900_000_000, CAL))).reads(Some(ppm), &digests(&[&rs.rc1, &rs.rc2])) + }; + let ppm_differ = day(SELLER_C, vec![calibrated(&["XA"], 20_000), calibrated(&["XB"], 10_000)]); + case( + "uncertainty_differs_not_mergeable", + "Two entries of one tier over {XA} and {XB}, at one price and one calibrated figure over the same records, declared to 20,000 and 10,000 ppm: two statements, not one entry.", + ppm_differ.to_text(), + read(&ppm_differ), + ); + + // rung_prices_malformed: the document's form. + let text = t.to_text(); + case("not_a_document", "A trailing comma.", format!("{},}}", &text[..text.len() - 1]), refuse(MALFORMED)); + case("member_repeated", "version stated twice.", text.replacen('{', "{\"version\":1,", 1), refuse(MALFORMED)); + case("number_fraction", "A price of 1.5.", changed(t, a, &|v| v["entries"][0]["price"] = json!(1.5)), refuse(MALFORMED)); + case("number_too_large", "A price of 2^53.", changed(t, a, &|v| v["entries"][0]["price"] = json!(1u64 << 53)), refuse(MALFORMED)); + // Members. + case("kind_other", "The kind of a route price book.", changed(t, a, &|v| v["kind"] = json!("wai-route-pricebook")), refuse(MALFORMED)); + case("version_2", "Version 2.", changed(t, a, &|v| v["version"] = json!(2)), refuse(MALFORMED)); + case("member_missing", "An entry with no energy_class.", changed(t, a, &|v| { + v["entries"][0].as_object_mut().expect("an entry").remove("energy_class"); + }), refuse(MALFORMED)); + case("member_added", "An entry with a deadline: a promise is not a price member.", changed(t, a, &|v| v["entries"][0]["deadline_ms"] = json!(1_000)), refuse(MALFORMED)); + // The list's form. + case("currency_lowercase", "A currency of usd.", changed(t, a, &|v| v["currency"] = json!("usd")), refuse(MALFORMED)); + case("seller_not_hex", "A seller key with a g in it.", changed(t, a, &|v| { + let s = v["seller"].as_str().expect("a key").to_string(); + v["seller"] = json!(format!("g{}", &s[1..])); + }), refuse(MALFORMED)); + case( + "sig_uppercase", + "unicast_tiers's signature in uppercase hexadecimal: malformed, since a sig is lowercase digits, and never checked as a signature.", + unsigned(t, &|v| v["sig"] = json!(hex(&t.sig).to_uppercase())), + refuse(MALFORMED), + ); + case("window_empty", "issued equal to expires.", changed(t, a, &|v| v["expires"] = json!(T0)), refuse(MALFORMED)); + case("no_entries", "No entry.", changed(t, a, &|v| v["entries"] = json!([])), refuse(MALFORMED)); + // Entry order and merging. + case("entries_unordered_rate", "The 2,000,000 and 8,000,000 tiers in the other order.", changed(t, a, &|v| v["entries"].as_array_mut().expect("entries").swap(0, 1)), refuse(MALFORMED)); + case("entries_unordered_footprint", "disjoint_footprints with {XB} before {XA}.", changed(&disjoint, a, &|v| v["entries"].as_array_mut().expect("entries").swap(0, 1)), refuse(MALFORMED)); + case("entries_mergeable", "disjoint_footprints at one price: one entry over {XA, XB} in two.", changed(&disjoint, a, &|v| v["entries"][1]["price"] = json!(20_000_000)), refuse(MALFORMED)); + // The footprint's form. + let o = one(); + let footprint = |codes: Value| move |v: &mut Value| v["entries"][0]["footprint"] = codes.clone(); + case("footprint_empty", "A footprint of no code.", changed(&o, a, &footprint(json!([]))), refuse(MALFORMED)); + case("footprint_unordered", "{XB, XA}.", changed(&o, a, &footprint(json!(["XB", "XA"]))), refuse(MALFORMED)); + case("footprint_lowercase", "{XA, xb}: CDNI's case, not WAI's.", changed(&o, a, &footprint(json!(["XA", "xb"]))), refuse(MALFORMED)); + case("footprint_alpha3", "{XA, XBB}: three letters.", changed(&o, a, &footprint(json!(["XA", "XBB"]))), refuse(MALFORMED)); + case("footprint_subdivision_long", "{XA, XB-ABCD}: a subdivision part of four.", changed(&o, a, &footprint(json!(["XA", "XB-ABCD"]))), refuse(MALFORMED)); + case("footprint_country_and_its_subdivision", "{XA, XB, XB-1}: XB-1 is already held by XB.", changed(&o, a, &footprint(json!(["XA", "XB", "XB-1"]))), refuse(MALFORMED)); + case("footprint_8193", "A footprint of 8,193 codes.", changed(&o, a, &footprint(json!(codes(MAX_FOOTPRINT + 1)))), refuse(MALFORMED)); + // Entry members. + let member = |name: &'static str, x: Value| move |v: &mut Value| v["entries"][0][name] = x.clone(); + case("max_bps_zero", "A ceiling of 0.", changed(&o, a, &member("max_bps", json!(0))), refuse(MALFORMED)); + case("energy_zero", "A figure of 0 microjoules: free energy is not a statement.", changed(&o, a, &member("energy_uj", json!(0))), refuse(MALFORMED)); + case("energy_class_alone", "A class with no figure.", changed(&o, a, &member("energy_uj", Value::Null)), refuse(MALFORMED)); + case("energy_figure_alone", "A figure with no class.", changed(&o, a, &member("energy_class", Value::Null)), refuse(MALFORMED)); + case("direction_peer", "A direction of peer: a peer is not a direction.", changed(&o, a, &member("direction", json!("peer"))), refuse(MALFORMED)); + case("bearer_other", "A bearer class of broadcast.", changed(&o, a, &member("bearer", json!("broadcast"))), refuse(MALFORMED)); + case("unit_not_a_unit", "A unit of Bytes, which is not of route-record's unit form: malformed, rather than a unit §4.3 does not list.", changed(&o, a, &member("unit", json!("Bytes"))), refuse(MALFORMED)); + case("divisor_zero", "A divisor of 0, below §4.2's least: malformed, rather than a divisor other than the unit's.", changed(&o, a, &member("divisor", json!(0))), refuse(MALFORMED)); + case("energy_class_unknown", "A figure of class Measured, which is not one of route-record's classes.", changed(&o, a, &member("energy_class", json!("Measured"))), refuse(MALFORMED)); + // A class and its records (§4.2): one() changed, each a figure of 500,000,000 per 10^9. + let d = hex(&rs.rf1.digest()); + let figure = |class: Value, ppm: Value, records: Value| { + move |v: &mut Value| { + let x = &mut v["entries"][0]; + x["energy_class"] = class.clone(); + x["energy_ppm"] = ppm.clone(); + x["energy_evidence"] = records.clone(); + } + }; + let (n, dd) = (Value::Null, json!([d])); + case("class_without_readings", "A calibrated figure at 1,000 ppm naming no records: a label alone.", changed(&o, a, &figure(json!(CAL), json!(1_000), n.clone())), refuse(MALFORMED)); + case("model_without_readings", "A model-based figure naming no records.", changed(&o, a, &figure(json!(MODEL), n.clone(), n.clone())), refuse(MALFORMED)); + case("estimator_with_readings", "An estimator's figure naming a record.", changed(&o, a, &figure(json!(EST), n.clone(), dd.clone())), refuse(MALFORMED)); + case("readings_without_figure", "A record named beside no figure and no class.", changed(&o, a, &|v| { + figure(n.clone(), n.clone(), dd.clone())(v); + v["entries"][0]["energy_uj"] = Value::Null; + }), refuse(MALFORMED)); + case("ppm_on_model", "A model-based figure over a record, declared to 1,000 ppm: that class declares none.", changed(&o, a, &figure(json!(MODEL), json!(1_000), dd.clone())), refuse(MALFORMED)); + case("ppm_on_estimator", "An estimator's figure declared to 1,000 ppm.", changed(&o, a, &figure(json!(EST), json!(1_000), n.clone())), refuse(MALFORMED)); + case("hardware_without_ppm", "A counter's figure over a record with no uncertainty declared.", changed(&o, a, &figure(json!(OCC), n.clone(), dd.clone())), refuse(MALFORMED)); + case("ppm_zero", "A calibrated figure over a record declared to 0 ppm.", changed(&o, a, &figure(json!(CAL), json!(0), dd.clone())), refuse(MALFORMED)); + case("ppm_past_bound", "A calibrated figure over a record declared to 2^32 ppm.", changed(&o, a, &figure(json!(CAL), json!(1u64 << 32), dd.clone())), refuse(MALFORMED)); + case("readings_empty", "A model-based figure naming an empty list of records.", changed(&o, a, &figure(json!(MODEL), n.clone(), json!([]))), refuse(MALFORMED)); + let mut sixty_five: Vec<[u8; 32]> = (0..=64u8).map(|b| Sha256::digest([b]).into()).collect(); + sixty_five.sort(); + let past: Value = json!(sixty_five.iter().map(|x| hex(x)).collect::>()); + case("readings_past_bound", "A model-based figure naming 65 records: the SHA-256 digests of the bytes 0 to 64, ascending.", changed(&o, a, &figure(json!(MODEL), n.clone(), past)), refuse(MALFORMED)); + let two: Vec = digests(&[&rs.rf1, &rs.rf_round]).iter().rev().map(|x| hex(x)).collect(); + case("readings_unordered", "A model-based figure naming two records in descending order.", changed(&o, a, &figure(json!(MODEL), n.clone(), json!(two))), refuse(MALFORMED)); + case("readings_repeated", "A model-based figure naming one record twice.", changed(&o, a, &figure(json!(MODEL), n.clone(), json!([d, d]))), refuse(MALFORMED)); + case("readings_digest_form", "A model-based figure naming a record in uppercase hexadecimal.", changed(&o, a, &figure(json!(MODEL), n.clone(), json!([d.to_uppercase()]))), refuse(MALFORMED)); + case("member_missing_ppm", "An entry with no energy_ppm.", changed(&o, a, &|v| { + v["entries"][0].as_object_mut().expect("an entry").remove("energy_ppm"); + }), refuse(MALFORMED)); + case( + "mergeable_with_readings", + "readings_differ_not_mergeable with both entries naming the same record: one entry over {XA, XB} in two.", + changed(&differ, a, &|v| v["entries"][1]["energy_evidence"] = json!([d])), + refuse(MALFORMED), + ); + + // rung_prices_unit_invalid: one entry each, signed. + let unit_case = |direction: &str, bearer: &str, unit: &str, divisor: u64, price: u64| { + let (direction, bearer, unit) = (json!(direction), json!(bearer), json!(unit)); + move |v: &mut Value| { + let x = &mut v["entries"][0]; + x["direction"] = direction.clone(); + x["bearer"] = bearer.clone(); + x["unit"] = unit.clone(); + x["divisor"] = json!(divisor); + x["price"] = json!(price); + } + }; + let g = 1_000_000_000; + let s = 1_000_000; + for (name, description, f) in [ + ("unit_unknown", "A unit of seconds.", unit_case("downlink", "bidirectional", "seconds", g, 1)), + ("objects_absent", "A unit of objects, which no record counts.", unit_case("downlink", "bidirectional", "objects", 1, 1)), + ("bytes_sent_two_way", "bytes_sent on a bidirectional bearer.", unit_case("downlink", "bidirectional", "bytes_sent", g, 1)), + ("bytes_on_broadcast", "bytes on a unidirectional bearer: no sender counts a receiver's bytes there.", unit_case("downlink", "unidirectional", "bytes", g, 1)), + ("bytes_uplink", "bytes uplink.", unit_case("uplink", "bidirectional", "bytes", g, 1)), + ("subscriber_us_on_multicast", "subscriber_us on a multicast bearer.", unit_case("downlink", "multicast", "subscriber_us", s, 1)), + ("subscriber_us_uplink", "subscriber_us uplink.", unit_case("uplink", "bidirectional", "subscriber_us", s, 1)), + ("publisher_us_downlink", "publisher_us downlink.", unit_case("downlink", "bidirectional", "publisher_us", s, 1)), + ("divisor_not_the_units", "bytes per 10^6.", unit_case("downlink", "bidirectional", "bytes", s, 1)), + ("room_price_past_u32", "A subscriber_us price of 2^32.", unit_case("downlink", "bidirectional", "subscriber_us", s, 1 << 32)), + ] { + case(name, description, changed(&o, a, &f), refuse(UNIT_INVALID)); + } + for (name, description, f) in [ + ( + "readings_on_transmission", + "Unidirectional bytes_sent, a model-based figure over a record: no record a seller signs states a transmission's energy.", + unit_case("downlink", "unidirectional", "bytes_sent", g, 1), + ), + ( + "readings_on_publisher_time", + "Bidirectional uplink publisher_us, a model-based figure over a record: no record a seller signs states publisher time beside its energy.", + unit_case("uplink", "bidirectional", "publisher_us", s, 1), + ), + ] { + case(name, description, changed(&o, a, &|v| { + f(v); + figure(json!(MODEL), Value::Null, json!([d]))(v); + }), refuse(UNIT_INVALID)); + } + + // rung_prices_ambiguous. + let overlap = day(a, vec![e(DOWN, BIDI, &["XA", "XB"], M8, "bytes", 20_000_000, None), e(DOWN, BIDI, &["XB"], M8, "bytes", 25_000_000, None)]); + case("footprints_overlap", "{XA, XB} and {XB} at one unit and ceiling: XB at two prices.", overlap.to_text(), refuse(AMBIGUOUS)); + let across = day(a, vec![e(DOWN, BIDI, &["XB"], M8, "bytes", 20_000_000, None), e(DOWN, BIDI, &["XB-1"], M8, "bytes", 25_000_000, None)]); + case("country_and_subdivision_across_entries", "{XB} at one price and {XB-1} at another, at one unit and ceiling.", across.to_text(), refuse(AMBIGUOUS)); + + // rung_prices_signature_invalid. + case("price_changed", "unicast_tiers's 8,000,000 price one more, its signature over the old body.", unsigned(t, &|v| v["entries"][1]["price"] = json!(20_000_001)), refuse(SIGNATURE_INVALID)); + let mut one_scalar = [0u8; 32]; + one_scalar[0] = 1; + let forged = format!("{}{}", hex(&crate::sig::BASE_POINT), hex(&one_scalar)); + case( + "small_order_key", + "The seller the identity point, of small order, with (R, S) = (B, 1), which the cofactorless equation accepts over any message.", + unsigned(t, &|v| { + v["seller"] = json!(hex(&crate::sig::IDENTITY)); + v["sig"] = json!(forged.clone()); + }), + refuse(SIGNATURE_INVALID), + ); + let s_plus_l = { + // L, the group order, little-endian. + const L: [u8; 32] = [ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10, + ]; + let mut sig = t.sig; + let mut carry = 0u16; + for i in 0..32 { + let x = sig[32 + i] as u16 + L[i] as u16 + carry; + sig[32 + i] = x as u8; + carry = x >> 8; + } + sig + }; + case( + "scalar_not_reduced", + "unicast_tiers's signature with S + L in place of S, which verifies reduced mod L but not under the strict rule.", + unsigned(t, &|v| v["sig"] = json!(hex(&s_plus_l))), + refuse(SIGNATURE_INVALID), + ); + out +} + +fn labels(ls: &[&str]) -> Value { + json!(ls) +} + +fn verdict_cases(ls: &Lists) -> Vec { + let t = &ls.unicast_tiers; + let mut twin = t.clone(); + twin.sig = second_signature(SELLER_UNICAST, &t.body()); + let case = |name: &str, description: &str, texts: &[&RungPrices], at_us: u64, outcome: &[&str]| { + json!({ + "name": name, + "description": description, + "texts": texts.iter().map(|l| l.to_text()).collect::>(), + "at_us": at_us, + "outcome": { "lists": labels(outcome) }, + }) + }; + let not_yet = format!("reject reason={NOT_YET}"); + let expired = format!("reject reason={EXPIRED}"); + let contradicted = format!("set-aside reason={CONTRADICTED}"); + vec![ + case("before_issued", "A microsecond before issued.", &[t], T0 - 1, &[¬_yet]), + case("at_issued", "At issued.", &[t], T0, &["stands"]), + case("last_instant", "A microsecond before it expires.", &[t], T0 + DAY - 1, &["stands"]), + case("at_expires", "At expires.", &[t], T0 + DAY, &[&expired]), + case("later_list_stands", "The seller's list a minute later: the earlier one superseded.", &[t, &ls.later], AT, &["superseded", "stands"]), + case("later_list_not_yet", "A later list that is not yet supersedes nothing.", &[t, &ls.later], T0 + MINUTE / 2, &["stands", ¬_yet]), + case( + "expired_latest_revives_nothing", + "The latest list lapsed: the seller has no standing list, and the earlier one stays superseded.", + &[t, &ls.lapsing], + T0 + 3 * MINUTE, + &["superseded", &expired], + ), + case("same_list_twice", "One list given twice: one list, standing.", &[t, t], AT, &["stands", "stands"]), + case("same_body_two_signatures_stand", "One body under two signatures: one list, not a contradiction.", &[t, &twin], AT, &["stands", "stands"]), + case("same_instant_differ", "Two lists of one seller at one instant that differ: both set aside.", &[&ls.later, &ls.later_other], AT, &[&contradicted, &contradicted]), + case("sellers_apart", "Two sellers' lists: each stands.", &[t, &ls.broadcast_capacity], AT, &["stands", "stands"]), + ] +} + + +/// The base request: downlink to XB, a rung of 3,000,000 and passes of 6,000,000 bits per second, +/// 500,000,000 bytes per receiver and 500,000,000,000 bytes_sent per transmission, by price; C +/// and E confirmed for `CalibratedInstrument`, D for `OnChipCounter` and F for `ModelBased`, and +/// records relied on up to a week old. +fn base_request() -> Value { + json!({ + "kind": KIND_REQUEST, + "direction": "downlink", + "to": "XB", + "rate_bps": 3_000_000, + "pass_rate_bps": 6_000_000, + "bearers": null, + "currency": "USD", + "quantities": [{ "unit": "bytes", "quantity": 500_000_000u64 }, { "unit": "bytes_sent", "quantity": 500_000_000_000u64 }], + "max_price": [], + "audience": null, + "sort": "price", + "confirmed": confirmed(&BASE_CONFIRMED), + "evidence_age_us": WEEK, + }) +} + +/// The base request's `confirmed`: C and E for `CalibratedInstrument`, D for `OnChipCounter` and F +/// for `ModelBased`. +const BASE_CONFIRMED: [(u8, &str); 4] = [(SELLER_C, CAL), (SELLER_D, OCC), (SELLER_E, CAL), (SELLER_F, MODEL)]; + +/// The base request with `f` applied. +fn req(f: &dyn Fn(&mut Value)) -> Value { + let mut v = base_request(); + f(&mut v); + v +} + +fn quantities(q: &[(&str, u64)]) -> Value { + json!(q.iter().map(|(u, n)| json!({ "unit": u, "quantity": n })).collect::>()) +} + +/// A candidate, by its list and its position in the list's entries. +type At<'a> = (&'a RungPrices, usize); +/// A removed candidate and its removals, in §6.2's order. +type Removed<'a> = (At<'a>, Vec<(&'static str, Value)>); + +/// A comparison case as written: the removals, the order, the decision, each transmission-basis +/// survivor's break-even and the evidence of each candidate that names records are stated here; a +/// candidate's cost and energy are §6.3's arithmetic over its entry and the request, written out +/// in [`figures`], and its energy rank §6.4's over its energy and its stated evidence. +struct Comparison<'a> { + name: &'static str, + description: &'static str, + texts: Vec<&'a RungPrices>, + at_us: u64, + request: Value, + /// The texts given as evidence, in ascending order of (the digest each names, its bytes). + evidence: Vec>, + /// The digests of the records and rooms those texts give: each a text the generator wrote + /// whole, never a damaged copy. + gives: Vec<[u8; 32]>, + /// Each text's verdict, in order. + lists: Vec, + /// Every candidate that is removed. + removed: Vec>, + /// The survivors, in rank order. + order: Vec>, + decided_by: &'static str, + /// Each transmission-basis survivor's break-even audience. + break_even: Vec<(At<'a>, Option)>, + /// The evidence of each candidate whose entry names records (§6.4). + verdicts: Vec<(At<'a>, String)>, +} + +/// A case whose lists all stand at [`AT`], with no survivor until [`Comparison::order`] says. +fn case<'a>(name: &'static str, description: &'static str, texts: Vec<&'a RungPrices>, request: Value) -> Comparison<'a> { + let lists = vec!["stands".to_string(); texts.len()]; + Comparison { + name, + description, + texts, + at_us: AT, + request, + evidence: Vec::new(), + gives: Vec::new(), + lists, + removed: Vec::new(), + order: Vec::new(), + decided_by: "none", + break_even: Vec::new(), + verdicts: Vec::new(), + } +} + +impl<'a> Comparison<'a> { + fn removed(mut self, r: Vec>) -> Self { + self.removed = r; + self + } + + fn order(mut self, order: Vec>, decided_by: &'static str) -> Self { + self.order = order; + self.decided_by = decided_by; + self + } + + fn break_even(mut self, b: Vec<(At<'a>, Option)>) -> Self { + self.break_even = b; + self + } + + fn lists(mut self, at_us: u64, lists: &[&str]) -> Self { + self.at_us = at_us; + self.lists = lists.iter().map(|s| s.to_string()).collect(); + self + } + + /// The texts given as evidence, each a record or a room descriptor as written, put in + /// ascending order of (the digest each names, its bytes); each gives the digest it names. + fn given(mut self, mut texts: Vec>) -> Self { + self.gives = texts.iter().map(|t| named_digest(t)).collect(); + self.gives.sort(); + self.gives.dedup(); + texts.sort_by(|x, y| (named_digest(x), x).cmp(&(named_digest(y), y))); + self.evidence = texts; + self + } + + /// Damaged copies given beside [`Comparison::given`]'s texts: each names a digest and gives + /// nothing. + fn damaged(mut self, texts: Vec>) -> Self { + self.evidence.extend(texts); + self.evidence.sort_by(|x, y| (named_digest(x), x).cmp(&(named_digest(y), y))); + self + } + + /// The evidence of each candidate that names records. + fn evidence(mut self, v: Vec<(At<'a>, &str)>) -> Self { + self.verdicts = v.into_iter().map(|(a, s)| (a, s.to_string())).collect(); + self + } +} + +/// §6.3: a candidate's list cost *T*, then its cost and energy per receiver over the request's +/// audience, or 1. +fn figures(r: &Value, x: &Entry) -> (Option, Option, Option) { + let q = r["quantities"].as_array().expect("quantities").iter().find(|o| o["unit"] == x.unit.as_str()).and_then(|o| o["quantity"].as_u64()); + let n = r["audience"].as_u64().unwrap_or(1); + let floor = |q: u64, p: u64| { + let v = q as u128 * p as u128 / x.divisor as u128; + (v <= MAX_INT as u128).then_some(v as u64) + }; + let t = q.and_then(|q| floor(q, x.price)); + let e = q.and_then(|q| x.energy_uj.and_then(|u| floor(q, u))); + match x.bearer { + Bearer::Bidirectional => (t, t, e), + _ => (t, t.map(|t| t.div_ceil(n)), e.map(|e| e.div_ceil(n))), + } +} + +/// The plan a comparison case states. +fn plan_of(c: &Comparison) -> Value { + let r = &c.request; + let named = |(l, i): &At| json!({ "seller": hex(&l.seller), "entry": i }); + let same = |a: &At, b: &At| a.0.seller == b.0.seller && a.1 == b.1; + // The lists that stand, one per seller, in ascending order of the seller's key. + let mut standing: Vec<&RungPrices> = Vec::new(); + for (l, v) in c.texts.iter().zip(&c.lists) { + if v == "stands" && !standing.iter().any(|s| s.seller == l.seller) { + standing.push(l); + } + } + standing.sort_by_key(|l| l.seller); + let direction = r["direction"].as_str().expect("a direction"); + let mut candidates = Vec::new(); + for l in standing { + for (i, x) in l.entries.iter().enumerate().filter(|(_, x)| x.direction.name() == direction) { + let at: At = (l, i); + let removed = c.removed.iter().find(|(a, _)| same(a, &at)).map(|(_, r)| r.clone()).unwrap_or_default(); + let rank = c.order.iter().position(|a| same(a, &at)).map(|k| k as u64 + 1); + assert!(removed.is_empty() == rank.is_some(), "{}: candidate {i} of {} is neither removed nor ranked, or both", c.name, hex(&l.seller)); + let (t, cost, energy) = figures(r, x); + let declared = c.verdicts.iter().find(|(a, _)| same(a, &at)).map(|(_, v)| v.clone()); + assert!(declared.is_some() == x.energy_evidence.is_some(), "{}: candidate {i} of {}: an evidence is declared for exactly each candidate that names records", c.name, hex(&l.seller)); + // §6.3: a refuted figure is set aside; §6.4: its energy rank. + let energy = if declared.as_deref().is_some_and(|v| v.starts_with("refuted")) { None } else { energy }; + let energy_rank: u8 = match (energy, declared.as_deref()) { + (None, _) => 4, + (Some(_), Some("checked")) => [CAL, OCC, MODEL].iter().position(|k| Some(*k) == x.energy_class.as_deref()).expect("a class that names records") as u8, + _ => 3, + }; + let shared = rank.is_some() && x.bearer != Bearer::Bidirectional; + let break_even = c.break_even.iter().find(|(a, _)| same(a, &at)).map(|(_, b)| *b); + assert!(shared == break_even.is_some(), "{}: candidate {i} of {}: a break-even is stated for exactly each shared survivor", c.name, hex(&l.seller)); + candidates.push(json!({ + "seller": hex(&l.seller), + "entry": i, + "bearer": x.bearer.name(), + "unit": x.unit, + "max_bps": x.max_bps, + "basis": x.bearer.basis().name(), + "removed": removed.iter().map(|(l, v)| json!({ "limit": l, "value": v })).collect::>(), + "cost": cost, + "energy": energy, + "energy_class": x.energy_class, + "energy_ppm": x.energy_ppm, + "evidence": declared, + "energy_rank": energy_rank, + "transmission_cost": if shared { t } else { None }, + "break_even": break_even.flatten(), + "rank": rank, + })); + } + } + for a in c.removed.iter().map(|(a, _)| a).chain(&c.order) { + assert!(a.0.entries[a.1].direction.name() == direction, "{}: a stated candidate of another direction", c.name); + } + // §6.6: a list refused at reading has no digest. + let at_reading: Vec = [MALFORMED, UNIT_INVALID, AMBIGUOUS, SIGNATURE_INVALID].iter().map(|r| format!("reject reason={r}")).collect(); + json!({ + "outcome": "plan", + "request": hex(&route_record::digest(r)), + "at_us": c.at_us, + "lists": c + .texts + .iter() + .zip(&c.lists) + .map(|(l, v)| json!({ "verdict": v, "digest": if at_reading.contains(v) { Value::Null } else { json!(hex(&l.digest())) } })) + .collect::>(), + "evidence": c.gives.iter().map(|d| hex(d)).collect::>(), + "audience": r["audience"].as_u64().unwrap_or(1), + "candidates": candidates, + "order": c.order.iter().map(named).collect::>(), + "decision": { "decided_by": c.decided_by, "runner_up": c.order.get(1).map(named) }, + }) +} + +fn comparison_case(c: &Comparison) -> Value { + json!({ + "name": c.name, + "description": c.description, + "texts": c.texts.iter().map(|l| l.to_text()).collect::>(), + "at_us": c.at_us, + "request": canonical(&c.request), + "evidence": c.evidence.iter().map(|t| hex(t)).collect::>(), + "outcome": plan_of(c), + }) +} + +/// Two candidates in ascending order of their sellers' keys: the order a tie of price and energy +/// leaves them in. +fn by_seller<'a>(x: At<'a>, y: At<'a>) -> Vec> { + if x.0.seller < y.0.seller { vec![x, y] } else { vec![y, x] } +} + +fn comparison_cases(ls: &Lists) -> Vec { + let (a, b) = (&ls.unicast_tiers, &ls.broadcast_capacity); + let rate = |x: u64| ("rate", json!(x)); + let tier = |x: u64| ("tier", json!(x)); + let unit = |u: &str| ("unit", json!(u)); + let footprint = |codes: &[&str]| ("footprint", json!(codes)); + let bearer = |x: &str| ("bearer", json!(x)); + // A under a rung of 3,000,000: 2M is below it, and the unbounded tier is not the least that + // covers it. + let a_base = || -> Vec { vec![((a, 0), vec![rate(2_000_000)]), ((a, 2), vec![tier(M8)])] }; + // B under passes of 6,000,000 with a bytes_sent quantity, to XB: its multicast entry is over + // {XA}, its unidirectional 8M tier covers the passes least, and no pass_us is stated. + let b_base = || -> Vec { vec![((b, 0), vec![footprint(&["XA"])]), ((b, 2), vec![tier(M8)]), ((b, 3), vec![unit("pass_us")])] }; + let ab_base = || [a_base(), b_base()].concat(); + let bytes_only = |v: &mut Value| v["quantities"] = quantities(&[("bytes", 500_000_000)]); + + // Lists the limit and ranking cases add, each a day's, one entry over {XB} at the unbounded + // ceiling unless written otherwise. + let only = |seed: u8, price: u64, energy: Option<(u64, &str)>| day(seed, vec![e(DOWN, BIDI, &["XB"], ANY, "bytes", price, energy)]); + let cheap_a = only(SELLER_UNICAST, 3, None); + let cheap_c = only(SELLER_C, 4, None); + let unknown_c = only(SELLER_C, 1_000_000, None); + let est_d = only(SELLER_D, 20_000_000, Some((1_000_000_000, EST))); + let pricey_c = only(SELLER_C, 1_000_000_000_000_000, Some((100, EST))); + let free_c = only(SELLER_C, 0, None); + let b_zero = day( + SELLER_BROADCAST, + vec![e(DOWN, MULTI, &["XA", "XB"], M8, "bytes_sent", 0, None), e(DOWN, UNI, &["XA", "XB"], M8, "bytes_sent", 100_000_000, None)], + ); + let same_c = only(SELLER_C, 20_000_000, Some((500_000_000, EST))); + let same_d = only(SELLER_D, 20_000_000, Some((500_000_000, EST))); + let pair_c = day(SELLER_C, vec![e(DOWN, BIDI, &["XB"], ANY, "bytes", 20_000_000, None), e(DOWN, UNI, &["XB"], ANY, "bytes_sent", 20_000, None)]); + let (peer_a, peer_b, peer_c, peer_d, peer_e) = (&ls.peer_bytes, &ls.peer_b, &ls.peer_c, &ls.peer_d, &ls.peer_e); + let twenty_gb = |v: &mut Value| v["quantities"] = quantities(&[("bytes", 20_000_000_000)]); + let (expired, contradicted) = (format!("reject reason={EXPIRED}"), format!("set-aside reason={CONTRADICTED}")); + + // The lists the evidence cases add (§4.6, §6.4): each a day's, one entry over {XB} at the + // unbounded ceiling, naming its records. + let rs = records(); + let reads = |seed: u8, price: u64, figure: (u64, &str), ppm: Option, named: &[&HopRecord]| { + day(seed, vec![e(DOWN, BIDI, &["XB"], ANY, "bytes", price, Some(figure)).reads(ppm, &digests(named))]) + }; + let cal_c = reads(SELLER_C, 30_000_000, (900_000_000, CAL), Some(20_000), &[&rs.rc1, &rs.rc2]); + // cal_c's entry in a list issued two days before the others, so it stands at R1's instant. + let cal_c_early = seal( + SELLER_C, + T0 - 2 * DAY, + T0 + DAY, + vec![e(DOWN, BIDI, &["XB"], ANY, "bytes", 30_000_000, Some((900_000_000, CAL))).reads(Some(20_000), &digests(&[&rs.rc1, &rs.rc2]))], + ); + // cal_c's figure over one current record and one of R0's: R0's rc2 comes first by digest, and + // its rc1 last. + let stale_first = reads(SELLER_C, 30_000_000, (900_000_000, CAL), Some(20_000), &[&rs.rc2_stale, &rs.rc1]); + let stale_last = reads(SELLER_C, 30_000_000, (900_000_000, CAL), Some(20_000), &[&rs.rc2, &rs.rc1_stale]); + let cal_e = reads(SELLER_E, 30_000_000, (910_000_000, CAL), Some(5_000), &[&rs.re1]); + let huge_c = reads(SELLER_C, 20_000_000, (1_000_000_000_000_000, CAL), Some(1_000), &[&rs.rc_huge]); + let precise_c = reads(SELLER_C, 20_000_000, (200_000_000, CAL), Some(1), &[&rs.rc_precise]); + let rough_e = reads(SELLER_E, 20_000_000, (2_000_000, CAL), Some(1_000), &[&rs.re_rough]); + let model_f = reads(SELLER_F, 20_000_000, (500_000_000, MODEL), None, &[&rs.rf1]); + let round_f = reads(SELLER_F, 20_000_000, (333_333_334, MODEL), None, &[&rs.rf_round]); + let round_f_low = reads(SELLER_F, 20_000_000, (333_333_333, MODEL), None, &[&rs.rf_round]); + let round_f_high = reads(SELLER_F, 20_000_000, (333_333_335, MODEL), None, &[&rs.rf_round]); + let sub_d = day(SELLER_D, vec![e(DOWN, BIDI, &["XB"], ANY, "subscriber_us", 1_000, Some((10_000, OCC))).reads(Some(30_000), &digests(&[&rs.rd_sub]))]); + let sub_e = day(SELLER_E, vec![e(DOWN, BIDI, &["XB"], ANY, "subscriber_us", 1_000, Some((10_100, OCC))).reads(Some(1_000), &digests(&[&rs.re_sub]))]); + let c_on_ingest = reads(SELLER_C, 20_000_000, (100_000_000, MODEL), None, &[&rs.rg_ingest]); + let g_bare = { + let mut x = e(DOWN, BIDI, &["XB"], ANY, "bytes", 20_000_000, Some((100_000_000, CAL))); + x.energy_ppm = Some(1_000); + day(SELLER_G, vec![x]) + }; + let g = |figure: (u64, &str), ppm: Option, named: &[&HopRecord]| reads(SELLER_G, 20_000_000, figure, ppm, named); + let g_own = g((100_000_000, CAL), Some(1_000), &[&rs.rg_cal]); + let g_borrowed = g((900_000_000, CAL), Some(20_000), &[&rs.rc1, &rs.rc2]); + let g_other_class = g((100_000_000, CAL), Some(1_000), &[&rs.rg_counter]); + let g_understated = g((100_000_000, CAL), Some(1_000), &[&rs.rg_high]); + let g_unmetered = g((100_000_000, MODEL), None, &[&rs.rg_unmetered]); + let g_empty = g((100_000_000, CAL), Some(1_000), &[&rs.rg_empty]); + let g_ingest = g((100_000_000, CAL), Some(1_000), &[&rs.rg_ingest]); + let g_ppm = g((100_000_000, CAL), Some(500), &[&rs.rg_cal]); + let g_ppm_over = g((100_000_000, CAL), Some(2_000), &[&rs.rg_cal]); + // rg_cal is named first, and not given; rg_counter after it. + let g_mixed = g((100_000_000, CAL), Some(1_000), &[&rs.rg_cal, &rs.rg_counter]); + let g_not_record = day(SELLER_G, vec![e(DOWN, BIDI, &["XB"], ANY, "bytes", 20_000_000, Some((100_000_000, CAL))).reads(Some(1_000), &[room().room_id()])]); + let g_compositor = g((100_000_000, CAL), Some(1_000), &[&rs.rg_compositor]); + let g_on_sub = g((100_000_000, CAL), Some(1_000), &[&rs.rd_sub]); + // rg_model is named first, then rg_ingest. + let g_model_ingest = g((100_000_000, CAL), Some(1_000), &[&rs.rg_model, &rs.rg_ingest]); + let g_ppm_figure = g((100_000_000, CAL), Some(500), &[&rs.rg_high]); + // rg_wide (50,000 ppm) is named first, then rg_cal (1,000 ppm): 100,000,000 µJ over + // 1,000,000,000 bytes, so the figure holds and only the uncertainty does not. + let g_wide = g((100_000_000, CAL), Some(1_000), &[&rs.rg_wide, &rs.rg_cal]); + let by_energy = |v: &mut Value| { + bytes_only(v); + v["sort"] = json!("energy"); + }; + // By energy, with `confirmed` the base request's and `extra`. + let confirming = |extra: &'static [(u8, &'static str)]| { + move |v: &mut Value| { + by_energy(v); + v["confirmed"] = confirmed(&[&BASE_CONFIRMED[..], extra].concat()); + } + }; + let with_g = confirming(&[(SELLER_G, CAL)]); + let by_energy_for_a_day = |v: &mut Value| { + by_energy(v); + v["evidence_age_us"] = json!(DAY); + }; + let refuted = |r: &str| format!("refuted reason={r}"); + let malformed = format!("reject reason={MALFORMED}"); + + let cs = vec![ + // ── Audience and break-even. A's 8M tier: 500,000,000 bytes at 20,000,000 per 10^9 + // cost 10,000,000. B's: 500,000,000,000 bytes_sent at 100,000,000 per 10^9 is + // T = 50,000,000,000, so sharing is no dearer from 5,000 receivers. + case("unknown_audience", "No audience: one receiver bears the whole transmission. A first by price; B's break-even is 5,000.", vec![a, b], base_request()) + .removed(ab_base()) + .order(vec![(a, 1), (b, 1)], "price") + .break_even(vec![((b, 1), Some(5_000))]), + case("audience_at_break_even", "An audience of 5,000: equal costs per receiver, so energy decides, and B's figure per receiver is the smaller.", vec![a, b], req(&|v| v["audience"] = json!(5_000))) + .removed(ab_base()) + .order(vec![(b, 1), (a, 1)], "energy") + .break_even(vec![((b, 1), Some(5_000))]), + case("audience_below_break_even", "An audience of 4,999: B's cost per receiver is 10,002,001, rounded up, so A first.", vec![a, b], req(&|v| v["audience"] = json!(4_999))) + .removed(ab_base()) + .order(vec![(a, 1), (b, 1)], "price") + .break_even(vec![((b, 1), Some(5_000))]), + case("audience_large", "An audience of 100,000: B first.", vec![a, b], req(&|v| v["audience"] = json!(100_000))) + .removed(ab_base()) + .order(vec![(b, 1), (a, 1)], "price") + .break_even(vec![((b, 1), Some(5_000))]), + // ── Rates and tiers. + case("tier_lowest_that_covers", "A rung of 3,000,000: 2M is below it, the unbounded tier is removed for 8M, and 8M prices it.", vec![a], base_request()) + .removed(a_base()) + .order(vec![(a, 1)], "only_survivor"), + case("rate_at_ceiling", "A rung of exactly 8,000,000: 8M covers it.", vec![a], req(&|v| v["rate_bps"] = json!(M8))) + .removed(a_base()) + .order(vec![(a, 1)], "only_survivor"), + case("rate_unknown", "No rung rate: only the unbounded tier covers it.", vec![a], req(&|v| v["rate_bps"] = Value::Null)) + .removed(vec![((a, 0), vec![rate(2_000_000)]), ((a, 1), vec![rate(M8)])]) + .order(vec![(a, 2)], "only_survivor"), + case( + "pass_rate_is_not_rate", + "A rung of 3,000,000 and passes of 9,000,000: A's 8M tier holds the rung, B's 8M tier is below the passes, and B's unbounded tier prices them.", + vec![a, b], + req(&|v| v["pass_rate_bps"] = json!(9_000_000)), + ) + .removed([a_base(), vec![((b, 0), vec![footprint(&["XA"]), rate(M8)]), ((b, 1), vec![rate(M8)]), ((b, 3), vec![unit("pass_us")])]].concat()) + .order(vec![(a, 1), (b, 2)], "price") + .break_even(vec![((b, 2), Some(7_500))]), + case("pass_rate_unknown", "No pass rate: only B's unbounded tier covers the passes.", vec![a, b], req(&|v| v["pass_rate_bps"] = Value::Null)) + .removed([a_base(), vec![((b, 0), vec![footprint(&["XA"]), rate(M8)]), ((b, 1), vec![rate(M8)]), ((b, 3), vec![unit("pass_us")])]].concat()) + .order(vec![(a, 1), (b, 2)], "price") + .break_even(vec![((b, 2), Some(7_500))]), + case( + "tier_other_direction_ignored", + "Passes of 500,000 downlink: B's uplink tier of 1,000,000 is another direction's, and B's downlink 8M tier prices them.", + vec![b], + req(&|v| v["pass_rate_bps"] = json!(500_000)), + ) + .removed(b_base()) + .order(vec![(b, 1)], "only_survivor") + .break_even(vec![((b, 1), None)]), + // ── Regions. + case("region_not_listed", "To XC, which no footprint holds.", vec![a, b], req(&|v| v["to"] = json!("XC"))) + .removed(vec![ + ((a, 0), vec![footprint(&["XA", "XB"]), rate(2_000_000)]), + ((a, 1), vec![footprint(&["XA", "XB"])]), + ((a, 2), vec![footprint(&["XA", "XB"])]), + ((b, 0), vec![footprint(&["XA"])]), + ((b, 1), vec![footprint(&["XA", "XB"])]), + ((b, 2), vec![footprint(&["XA", "XB"])]), + ((b, 3), vec![unit("pass_us"), footprint(&["XA", "XB"])]), + ]), + case("subdivision_in_its_country", "To XB-1, against {XA, XB}: held, because the code names its country.", vec![a, b], req(&|v| v["to"] = json!("XB-1"))) + .removed(ab_base()) + .order(vec![(a, 1), (b, 1)], "price") + .break_even(vec![((b, 1), Some(5_000))]), + case("country_not_in_its_subdivision", "To XB, against a peer's {XB-1}: a country is never held by its subdivision.", vec![peer_a], req(&bytes_only)) + .removed(vec![((peer_a, 0), vec![footprint(&["XB-1"])])]), + // ── Other limits. + case("bearer_limited", "Only bidirectional bearers considered: B's entries removed.", vec![a, b], req(&|v| v["bearers"] = json!(["bidirectional"]))) + .removed( + [ + a_base(), + vec![ + ((b, 0), vec![bearer("multicast"), footprint(&["XA"])]), + ((b, 1), vec![bearer("unidirectional")]), + ((b, 2), vec![bearer("unidirectional"), tier(M8)]), + ((b, 3), vec![bearer("unidirectional"), unit("pass_us")]), + ], + ] + .concat(), + ) + .order(vec![(a, 1)], "only_survivor"), + case("unit_not_stated", "Only an hour of pass_us asked for: no bytes or bytes_sent entry is priced in it.", vec![a, b], req(&|v| v["quantities"] = quantities(&[("pass_us", 3_600_000_000)]))) + .removed(vec![ + ((a, 0), vec![unit("bytes"), rate(2_000_000)]), + ((a, 1), vec![unit("bytes")]), + ((a, 2), vec![unit("bytes"), tier(M8)]), + ((b, 0), vec![unit("bytes_sent"), footprint(&["XA"])]), + ((b, 1), vec![unit("bytes_sent")]), + ((b, 2), vec![unit("bytes_sent"), tier(M8)]), + ]) + .order(vec![(b, 3)], "only_survivor") + .break_even(vec![((b, 3), None)]), + case("bytes_is_not_bytes_sent", "Only bytes asked for, with B listed: a byte delivered is not a byte transmitted.", vec![a, b], req(&bytes_only)) + .removed( + [ + a_base(), + vec![ + ((b, 0), vec![unit("bytes_sent"), footprint(&["XA"])]), + ((b, 1), vec![unit("bytes_sent")]), + ((b, 2), vec![unit("bytes_sent"), tier(M8)]), + ((b, 3), vec![unit("pass_us")]), + ], + ] + .concat(), + ) + .order(vec![(a, 1)], "only_survivor"), + case("other_currency", "A list in EUR, against a request in USD: never converted.", vec![a, &ls.euro], req(&bytes_only)) + .removed([a_base(), vec![((&ls.euro, 0), vec![("currency", json!("EUR"))])]].concat()) + .order(vec![(a, 1)], "only_survivor"), + case( + "unit_price_cap_across_divisors", + "A cap of 1 per 300,000,000 bytes: 3 per 10^9 is within it, 4 per 10^9 is not.", + vec![&cheap_a, &cheap_c], + req(&|v| { + bytes_only(v); + v["max_price"] = json!([{ "unit": "bytes", "price": 1, "divisor": 300_000_000 }]); + }), + ) + .removed(vec![((&cheap_c, 0), vec![("unit_price", json!(4))])]) + .order(vec![(&cheap_a, 0)], "only_survivor"), + case( + "several_limits_in_order", + "Only bidirectional bearers and bytes, to XB: B's multicast entry is removed by bearer, unit and footprint, in that order.", + vec![b], + req(&|v| { + bytes_only(v); + v["bearers"] = json!(["bidirectional"]); + }), + ) + .removed(vec![ + ((b, 0), vec![bearer("multicast"), unit("bytes_sent"), footprint(&["XA"])]), + ((b, 1), vec![bearer("unidirectional"), unit("bytes_sent")]), + ((b, 2), vec![bearer("unidirectional"), unit("bytes_sent"), tier(M8)]), + ((b, 3), vec![bearer("unidirectional"), unit("pass_us")]), + ]), + // ── Ranking. + case( + "checked_class_before_figure", + "By energy: a larger calibrated figure its seller's records bear out, under a key confirmed for that class, before a smaller estimate.", + vec![a, &cal_c], + req(&by_energy), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "checked")]) + .removed(a_base()) + .order(vec![(&cal_c, 0), (a, 1)], "energy"), + case( + "energy_unknown_last", + "By energy: an entry with no figure after a stated one, though it is cheaper.", + vec![a, &unknown_c], + req(&|v| { + bytes_only(v); + v["sort"] = json!("energy"); + }), + ) + .removed(a_base()) + .order(vec![(a, 1), (&unknown_c, 0)], "energy"), + case( + "energy_past_bound_ranks_unknown", + "By energy, for 20,000,000,000 bytes: a checked calibrated figure past 2^53 − 1 is unknown, and ranks after an estimator's.", + vec![&huge_c, &est_d], + req(&|v| { + twenty_gb(v); + v["sort"] = json!("energy"); + }), + ) + .given(texts(&[&rs.rc_huge])) + .evidence(vec![((&huge_c, 0), "checked")]) + .order(vec![(&est_d, 0), (&huge_c, 0)], "energy"), + case("cost_past_bound", "By price, for 20,000,000,000 bytes: a cost past 2^53 − 1 is unknown, and ranks last.", vec![&pricey_c, &est_d], req(&twenty_gb)) + .order(vec![(&est_d, 0), (&pricey_c, 0)], "price"), + case( + "zero_price_break_even", + "A receiver price of 0: no audience makes B's priced transmission no dearer, and its free one is no dearer at one receiver.", + vec![&free_c, &b_zero], + base_request(), + ) + .order([by_seller((&free_c, 0), (&b_zero, 0)), vec![(&b_zero, 1)]].concat(), "seller") + .break_even(vec![((&b_zero, 0), Some(1)), ((&b_zero, 1), None)]), + case("seller_breaks_tie", "Two sellers at one price and one figure: the smaller key first.", vec![&same_c, &same_d], req(&bytes_only)) + .order(by_seller((&same_c, 0), (&same_d, 0)), "seller"), + case( + "entry_breaks_tie", + "One seller's receiver and transmission prices costing the same per receiver, with no figure: the earlier entry first.", + vec![&pair_c], + base_request(), + ) + .order(vec![(&pair_c, 0), (&pair_c, 1)], "entry") + .break_even(vec![((&pair_c, 1), Some(1))]), + // ── Evidence: an honest model-based figure (F, checked: 250,000,000, rank 2) against a + // label (G, 50,000,000 or none). F ranks first in each. + case( + "label_alone_refused", + "G states a calibrated figure at 1,000 ppm and names no records: its list does not read, and F alone survives.", + vec![&model_f, &g_bare], + req(&by_energy), + ) + .given(texts(&[&rs.rf1])) + .lists(AT, &["stands", &malformed]) + .evidence(vec![((&model_f, 0), "checked")]) + .order(vec![(&model_f, 0)], "only_survivor"), + case( + "label_with_readings_not_given", + "G's calibrated label names its own record, which it does not give, and its key is confirmed for that class: an estimate.", + vec![&model_f, &g_own], + req(&with_g), + ) + .given(texts(&[&rs.rf1])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_own, 0), "absent")]) + .order(vec![(&model_f, 0), (&g_own, 0)], "energy"), + case( + "label_with_readings_not_given_by_price", + "label_with_readings_not_given by price: the costs are equal, and F's checked figure decides.", + vec![&model_f, &g_own], + req(&|v| { + with_g(v); + v["sort"] = json!("price"); + }), + ) + .given(texts(&[&rs.rf1])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_own, 0), "absent")]) + .order(vec![(&model_f, 0), (&g_own, 0)], "energy"), + case( + "label_on_own_readings_unconfirmed", + "G's calibrated label over its own record, which bears it out, under a key confirmed only for ModelBased: an estimate, after F's checked model-based figure.", + vec![&model_f, &g_own], + req(&confirming(&[(SELLER_G, MODEL)])), + ) + .given(texts(&[&rs.rf1, &rs.rg_cal])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_own, 0), "unconfirmed")]) + .order(vec![(&model_f, 0), (&g_own, 0)], "energy"), + case( + "label_on_own_readings_confirmed_as_counter", + "The same, G's key confirmed only for OnChipCounter: a counter's confirmation is not a calibrated instrument's, and G's figure is an estimate.", + vec![&model_f, &g_own], + req(&confirming(&[(SELLER_G, OCC)])), + ) + .given(texts(&[&rs.rf1, &rs.rg_cal])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_own, 0), "unconfirmed")]) + .order(vec![(&model_f, 0), (&g_own, 0)], "energy"), + case( + "label_on_borrowed_readings", + "G's calibrated label over C's records, which G did not sign: refuted, and its figure set aside.", + vec![&model_f, &g_borrowed], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rc1, &rs.rc2])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_borrowed, 0), refuted(EVIDENCE_SIGNER).as_str())]) + .order(vec![(&model_f, 0), (&g_borrowed, 0)], "energy"), + case( + "label_on_readings_of_another_class", + "G's calibrated label over its own counter's record: refuted.", + vec![&model_f, &g_other_class], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_counter])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_other_class, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_other_class, 0)], "energy"), + case( + "readings_unmetered", + "G's model-based figure over its own record that carries the unmetered marker: refuted.", + vec![&model_f, &g_unmetered], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_unmetered])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_unmetered, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_unmetered, 0)], "energy"), + case( + "uncertainty_understated", + "G's calibrated figure declared to 500 ppm over its own record declared to 1,000: refuted.", + vec![&model_f, &g_ppm], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_cal])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_ppm, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_ppm, 0)], "energy"), + case( + "uncertainty_overstated", + "G's calibrated figure declared to 2,000 ppm over its own record declared to 1,000: refuted, for its uncertainty is the largest its records declare, not more.", + vec![&model_f, &g_ppm_over], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_cal])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_ppm_over, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_ppm_over, 0)], "energy"), + case( + "largest_uncertainty_first", + "G's calibrated figure declared to 1,000 ppm over two of its records, the first named declared to 50,000 and the second to 1,000: refuted, for the largest is 50,000 wherever it is named.", + vec![&model_f, &g_wide], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_wide, &rs.rg_cal])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_wide, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_wide, 0)], "energy"), + case( + "figure_below_its_readings", + "G states 100,000,000 per 10^9 over its own record whose rate is 400,000,000: refuted.", + vec![&model_f, &g_understated], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_high])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_understated, 0), refuted(EVIDENCE_FIGURE).as_str())]) + .order(vec![(&model_f, 0), (&g_understated, 0)], "energy"), + case( + "refuted_before_window", + "figure_below_its_readings relying on records up to 86,400,000,000 µs old: G's records are outside the window too, and the refutation comes first; F's figure, outside it, ranks as an estimate and still first.", + vec![&model_f, &g_understated], + req(&by_energy_for_a_day), + ) + .given(texts(&[&rs.rf1, &rs.rg_high])) + .evidence(vec![((&model_f, 0), "outside-window"), ((&g_understated, 0), refuted(EVIDENCE_FIGURE).as_str())]) + .order(vec![(&model_f, 0), (&g_understated, 0)], "energy"), + case( + "uncertainty_before_figure", + "G's calibrated figure of 100,000,000 declared to 500 ppm over its own record of 1,000 ppm whose rate is 400,000,000: rule 4 refutes it before rule 5.", + vec![&model_f, &g_ppm_figure], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_high])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_ppm_figure, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_ppm_figure, 0)], "energy"), + case( + "readings_delivered_nothing", + "G's calibrated figure over its own record of no media bytes out, only an events track's: refuted.", + vec![&model_f, &g_empty], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_empty])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_empty, 0), refuted(EVIDENCE_FIGURE).as_str())]) + .order(vec![(&model_f, 0), (&g_empty, 0)], "energy"), + case( + "readings_not_a_relay", + "G's calibrated figure over its own ingest gateway's record: refuted.", + vec![&model_f, &g_ingest], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_ingest])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_ingest, 0), refuted(EVIDENCE_ROLE).as_str())]) + .order(vec![(&model_f, 0), (&g_ingest, 0)], "energy"), + case( + "readings_of_a_compositor", + "G's calibrated figure over its own compositor's record: refuted, for a compositor serves no subscriber.", + vec![&model_f, &g_compositor], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_compositor])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_compositor, 0), refuted(EVIDENCE_ROLE).as_str())]) + .order(vec![(&model_f, 0), (&g_compositor, 0)], "energy"), + case( + "role_before_signer_and_class", + "C's model-based figure over G's ingest gateway's calibrated record, which breaks rules 1, 2 and 3: the role refutes it.", + vec![&model_f, &c_on_ingest], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_ingest])) + .evidence(vec![((&model_f, 0), "checked"), ((&c_on_ingest, 0), refuted(EVIDENCE_ROLE).as_str())]) + .order(vec![(&model_f, 0), (&c_on_ingest, 0)], "energy"), + case( + "signer_before_class", + "G's calibrated figure over D's counter record, which breaks rules 2 and 3: the signer refutes it.", + vec![&model_f, &g_on_sub], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rd_sub])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_on_sub, 0), refuted(EVIDENCE_SIGNER).as_str())]) + .order(vec![(&model_f, 0), (&g_on_sub, 0)], "energy"), + case( + "rules_record_by_record", + "G's calibrated figure over its model-based record, named first, and its ingest gateway's record: the first record's class refutes it, though the second breaks rule 1.", + vec![&model_f, &g_model_ingest], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_model, &rs.rg_ingest])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_model_ingest, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_model_ingest, 0)], "energy"), + case( + "refuted_before_absent", + "G's calibrated figure over two of its records, the calibrated one named first and not given, and the counter's one given: the given record's class refutes it, and the missing one does not leave it absent.", + vec![&model_f, &g_mixed], + req(&by_energy), + ) + .given(texts(&[&rs.rf1, &rs.rg_counter])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_mixed, 0), refuted(EVIDENCE_CLASS).as_str())]) + .order(vec![(&model_f, 0), (&g_mixed, 0)], "energy"), + case( + "reading_not_a_hop_record", + "G's calibrated figure naming R1's digest: R1 names that digest but is not a per-hop record, so the record is absent.", + vec![&model_f, &g_not_record], + req(&by_energy), + ) + .given(texts(&[&rs.rf1])) + .evidence(vec![((&model_f, 0), "checked"), ((&g_not_record, 0), "absent")]) + .order(vec![(&model_f, 0), (&g_not_record, 0)], "energy"), + // ── Evidence verdicts: C's calibrated figure (cost 15,000,000, energy 450,000,000) against + // A's 8,000,000 tier (an estimate: 10,000,000 and 250,000,000). + case( + "unconfirmed_ranks_as_estimate", + "C's records bear its figure out, but the request confirms no key: an estimate, after A's smaller one.", + vec![a, &cal_c], + req(&|v| { + by_energy(v); + v["confirmed"] = json!([]); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "unconfirmed")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "confirmed_for_another_class", + "C's records bear its calibrated figure out, but the request confirms C's key only for ModelBased: an estimate, after A's smaller one.", + vec![a, &cal_c], + req(&|v| { + by_energy(v); + v["confirmed"] = confirmed(&[(SELLER_C, MODEL)]); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "unconfirmed")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "evidence_of_a_removed_candidate", + "A cap of 25,000,000 per 10^9 bytes removes C's calibrated entry, priced at 30,000,000: its evidence is still checked and its energy rank 0, and A's 8,000,000 tier survives alone.", + vec![a, &cal_c], + req(&|v| { + by_energy(v); + v["max_price"] = json!([{ "unit": "bytes", "price": 25_000_000, "divisor": 1_000_000_000 }]); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "checked")]) + .removed(vec![ + ((a, 0), vec![rate(2_000_000)]), + ((a, 2), vec![tier(M8), ("unit_price", json!(40_000_000))]), + ((&cal_c, 0), vec![("unit_price", json!(30_000_000))]), + ]) + .order(vec![(a, 1)], "only_survivor"), + case( + "readings_at_window_edge", + "C's records' instant is 86,400,000,001 µs before the comparison, and the request relies on records exactly that old: checked.", + vec![a, &cal_c], + req(&|v| { + by_energy(v); + v["evidence_age_us"] = json!(DAY + 1); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "checked")]) + .removed(a_base()) + .order(vec![(&cal_c, 0), (a, 1)], "energy"), + case( + "readings_past_window", + "The same, relying on records up to 86,400,000,000 µs old: outside the window, an estimate.", + vec![a, &cal_c], + req(&|v| { + by_energy(v); + v["evidence_age_us"] = json!(DAY); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "outside-window")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "window_before_unconfirmed", + "readings_past_window with no key confirmed: the records are outside the window, which comes first.", + vec![a, &cal_c], + req(&|v| { + by_energy_for_a_day(v); + v["confirmed"] = json!([]); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c, 0), "outside-window")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "readings_at_comparison_instant", + "C's figure in a list issued two days before the others, compared at its records' instant, 1,793,581,199,999,999: a record is current only before the instant used, so outside the window.", + vec![&cal_c_early], + req(&by_energy), + ) + .lists(R1_INSTANT, &["stands"]) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c_early, 0), "outside-window")]) + .order(vec![(&cal_c_early, 0)], "only_survivor"), + case( + "readings_before_comparison_instant", + "The same a microsecond later, at 1,793,581,200,000,000: checked.", + vec![&cal_c_early], + req(&by_energy), + ) + .lists(R1_INSTANT + 1, &["stands"]) + .given(texts(&[&rs.rc1, &rs.rc2])) + .evidence(vec![((&cal_c_early, 0), "checked")]) + .order(vec![(&cal_c_early, 0)], "only_survivor"), + case( + "stale_record_first", + "C's calibrated figure over a month-old record of R0, named first, and a current one: one record outside the window puts the figure outside it.", + vec![a, &stale_first], + req(&by_energy), + ) + .given([texts(&[&rs.rc2_stale, &rs.rc1]), vec![stale_room().to_bytes()]].concat()) + .evidence(vec![((&stale_first, 0), "outside-window")]) + .removed(a_base()) + .order(vec![(a, 1), (&stale_first, 0)], "energy"), + case( + "stale_record_last", + "C's calibrated figure over a current record and a month-old record of R0, named last: outside the window.", + vec![a, &stale_last], + req(&by_energy), + ) + .given([texts(&[&rs.rc2, &rs.rc1_stale]), vec![stale_room().to_bytes()]].concat()) + .evidence(vec![((&stale_last, 0), "outside-window")]) + .removed(a_base()) + .order(vec![(a, 1), (&stale_last, 0)], "energy"), + case( + "record_not_given", + "Only one of C's two records given: absent.", + vec![a, &cal_c], + req(&by_energy), + ) + .given(texts(&[&rs.rc1])) + .evidence(vec![((&cal_c, 0), "absent")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "absent_before_window", + "record_not_given relying on records up to 86,400,000,000 µs old: the record given is outside the window too, and absent comes first.", + vec![a, &cal_c], + req(&by_energy_for_a_day), + ) + .given(texts(&[&rs.rc1])) + .evidence(vec![((&cal_c, 0), "absent")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "room_not_given", + "Both of C's records, without the room descriptor that places them in time: absent.", + vec![a, &cal_c], + req(&by_energy), + ) + .given(vec![rs.rc1.to_bytes(), rs.rc2.to_bytes()]) + .evidence(vec![((&cal_c, 0), "absent")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "record_signature_fails", + "C's second record given only with its last byte changed: its one copy does not verify, so it is absent, and refutes nothing.", + vec![a, &cal_c], + req(&by_energy), + ) + .given(texts(&[&rs.rc1])) + .damaged(vec![flipped(&rs.rc2.to_bytes())]) + .evidence(vec![((&cal_c, 0), "absent")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + case( + "one_copy_verifies", + "C's second record given twice, once with its last byte changed: the copy that verifies gives it.", + vec![a, &cal_c], + req(&by_energy), + ) + .given(texts(&[&rs.rc1, &rs.rc2])) + .damaged(vec![flipped(&rs.rc2.to_bytes())]) + .evidence(vec![((&cal_c, 0), "checked")]) + .removed(a_base()) + .order(vec![(&cal_c, 0), (a, 1)], "energy"), + case( + "room_signature_fails", + "C's records, with the room descriptor's last byte changed: the room is not given, so absent.", + vec![a, &cal_c], + req(&by_energy), + ) + .given(vec![rs.rc1.to_bytes(), rs.rc2.to_bytes()]) + .damaged(vec![flipped(&room().to_bytes())]) + .evidence(vec![((&cal_c, 0), "absent")]) + .removed(a_base()) + .order(vec![(a, 1), (&cal_c, 0)], "energy"), + // ── Evidence arithmetic and order. + case( + "uncertainty_orders_one_class", + "Two checked calibrated figures: E's 455,000,000 at 5,000 ppm (455,000,000 × 1,005,000) before C's 450,000,000 at 20,000 ppm (450,000,000 × 1,020,000).", + vec![&cal_c, &cal_e], + req(&by_energy), + ) + .given(texts(&[&rs.rc1, &rs.rc2, &rs.re1])) + .evidence(vec![((&cal_c, 0), "checked"), ((&cal_e, 0), "checked")]) + .order(vec![(&cal_e, 0), (&cal_c, 0)], "energy"), + case( + "uncertainty_not_precision_alone", + "Two checked calibrated figures: E's 1,000,000 at 1,000 ppm (1,000,000 × 1,001,000) before C's 100,000,000 at 1 ppm (100,000,000 × 1,000,001): a precise figure a hundred times larger ranks second.", + vec![&precise_c, &rough_e], + req(&by_energy), + ) + .given(texts(&[&rs.rc_precise, &rs.re_rough])) + .evidence(vec![((&precise_c, 0), "checked"), ((&rough_e, 0), "checked")]) + .order(vec![(&rough_e, 0), (&precise_c, 0)], "energy"), + case( + "five_sellers_by_energy", + "E and C checked calibrated, F checked model-based, G's label unconfirmed and A's estimate: E, C, F, then G and A by their figures.", + vec![a, &cal_c, &cal_e, &model_f, &g_own], + req(&by_energy), + ) + .given(texts(&[&rs.rc1, &rs.rc2, &rs.re1, &rs.rf1, &rs.rg_cal])) + .evidence(vec![((&cal_c, 0), "checked"), ((&cal_e, 0), "checked"), ((&model_f, 0), "checked"), ((&g_own, 0), "unconfirmed")]) + .removed(a_base()) + .order(vec![(&cal_e, 0), (&cal_c, 0), (&model_f, 0), (&g_own, 0), (a, 1)], "energy"), + case( + "five_sellers_by_price", + "five_sellers_by_energy by price: F, G and A cost the same, and F's checked figure, then G's smaller estimate, decide; then E and C.", + vec![a, &cal_c, &cal_e, &model_f, &g_own], + req(&bytes_only), + ) + .given(texts(&[&rs.rc1, &rs.rc2, &rs.re1, &rs.rf1, &rs.rg_cal])) + .evidence(vec![((&cal_c, 0), "checked"), ((&cal_e, 0), "checked"), ((&model_f, 0), "checked"), ((&g_own, 0), "unconfirmed")]) + .removed(a_base()) + .order(vec![(&model_f, 0), (&g_own, 0), (a, 1), (&cal_e, 0), (&cal_c, 0)], "energy"), + case( + "calibrated_before_counter", + "C's checked calibrated figure of 450,000,000 before D's checked counter figure of 36,000,000 for an hour of subscriber time: ranks are never crossed.", + vec![&cal_c, &sub_d], + req(&|v| { + by_energy(v); + v["quantities"] = quantities(&[("bytes", 500_000_000), ("subscriber_us", 3_600_000_000)]); + }), + ) + .given(texts(&[&rs.rc1, &rs.rc2, &rs.rd_sub])) + .evidence(vec![((&cal_c, 0), "checked"), ((&sub_d, 0), "checked")]) + .order(vec![(&cal_c, 0), (&sub_d, 0)], "energy"), + case( + "subscriber_time_readings", + "D's counter figure over an hour of subscriber time at layer class 3, its record's hour at class 8 not counted: 10,000 per 10^6 µs, checked.", + vec![&sub_d], + req(&|v| { + by_energy(v); + v["quantities"] = quantities(&[("subscriber_us", 3_600_000_000)]); + }), + ) + .given(texts(&[&rs.rd_sub])) + .evidence(vec![((&sub_d, 0), "checked")]) + .order(vec![(&sub_d, 0)], "only_survivor"), + case( + "uncertainty_orders_counters", + "Two checked counter figures for an hour of subscriber time, E's key confirmed for OnChipCounter besides CalibratedInstrument: E's 36,360,000 at 1,000 ppm (36,360,000 × 1,001,000) before D's 36,000,000 at 30,000 ppm (36,000,000 × 1,030,000).", + vec![&sub_d, &sub_e], + req(&|v| { + confirming(&[(SELLER_E, OCC)])(v); + v["quantities"] = quantities(&[("subscriber_us", 3_600_000_000)]); + }), + ) + .given(texts(&[&rs.rd_sub, &rs.re_sub])) + .evidence(vec![((&sub_d, 0), "checked"), ((&sub_e, 0), "checked")]) + .order(vec![(&sub_e, 0), (&sub_d, 0)], "energy"), + case( + "figure_rounded_up", + "F's model-based figure over 1 µJ for 3 bytes: ⌈10^9 / 3⌉ = 333,333,334 per 10^9, checked.", + vec![&round_f], + req(&|v| { + by_energy(v); + v["quantities"] = quantities(&[("bytes", 3_000_000_000)]); + }), + ) + .given(texts(&[&rs.rf_round])) + .evidence(vec![((&round_f, 0), "checked")]) + .order(vec![(&round_f, 0)], "only_survivor"), + case( + "figure_rounded_down", + "The same records under a figure of 333,333,333, a microjoule below their rate rounded up: refuted.", + vec![&round_f_low], + req(&|v| { + by_energy(v); + v["quantities"] = quantities(&[("bytes", 3_000_000_000)]); + }), + ) + .given(texts(&[&rs.rf_round])) + .evidence(vec![((&round_f_low, 0), refuted(EVIDENCE_FIGURE).as_str())]) + .order(vec![(&round_f_low, 0)], "only_survivor"), + case( + "figure_above_its_readings", + "The same records under a figure of 333,333,335, a microjoule above their rate rounded up: refuted, for the figure is their rate, not more.", + vec![&round_f_high], + req(&|v| { + by_energy(v); + v["quantities"] = quantities(&[("bytes", 3_000_000_000)]); + }), + ) + .given(texts(&[&rs.rf_round])) + .evidence(vec![((&round_f_high, 0), refuted(EVIDENCE_FIGURE).as_str())]) + .order(vec![(&round_f_high, 0)], "only_survivor"), + // ── Sellers and composition. + case( + "uplink_contribution", + "Uplink, an hour of publishing: only uplink entries are candidates, and publisher_us is priced.", + vec![a, b, &ls.contribution], + req(&|v| { + v["direction"] = json!("uplink"); + v["rate_bps"] = json!(2_000_000); + v["pass_rate_bps"] = Value::Null; + v["quantities"] = quantities(&[("publisher_us", 3_600_000_000)]); + }), + ) + .removed(vec![((b, 4), vec![unit("bytes_sent"), rate(1_000_000)]), ((&ls.contribution, 1), vec![unit("bytes_sent")])]) + .order(vec![(&ls.contribution, 0)], "only_survivor"), + case( + "peer_order", + "Five holders' bytes lists, to XB-1: B, C and A are priced, in that order; D's list, the cheapest, lapsed, so D has no \ + standing list; and E's stands but prices only XA. §6.6's neighbour order is B, C, A, then D and E by key: D's is the \ + smaller, though E's list is given first.", + vec![peer_a, peer_b, peer_c, peer_e, peer_d], + req(&|v| { + bytes_only(v); + v["to"] = json!("XB-1"); + }), + ) + .lists(AT, &["stands", "stands", "stands", "stands", &expired]) + .removed(vec![((peer_e, 0), vec![footprint(&["XA"])])]) + .order(vec![(peer_b, 0), (peer_c, 0), (peer_a, 0)], "price"), + case("contradicted_seller_offers_nothing", "A's two latest lists differ: A offers nothing, and B is the only survivor.", vec![&ls.later, &ls.later_other, b], base_request()) + .lists(AT, &[&contradicted, &contradicted, "stands"]) + .removed(b_base()) + .order(vec![(b, 1)], "only_survivor") + .break_even(vec![((b, 1), None)]), + case("no_standing_list", "A's latest list lapsed: no seller stands, and nothing survives.", vec![a, &ls.lapsing], base_request()) + .lists(T0 + 3 * MINUTE, &["superseded", &expired]), + case("only_survivor", "B alone, for bytes_sent.", vec![b], req(&|v| v["quantities"] = quantities(&[("bytes_sent", 500_000_000_000)]))) + .removed(b_base()) + .order(vec![(b, 1)], "only_survivor") + .break_even(vec![((b, 1), None)]), + case( + "confirmed_at_bound", + "unknown_audience with 256 confirmed keys, each for ModelBased: the SHA-256 digests of the two-byte integers 0 to 255, ascending. The request reads.", + vec![a, b], + req(&|v| v["confirmed"] = model_keys(256)), + ) + .removed(ab_base()) + .order(vec![(a, 1), (b, 1)], "price") + .break_even(vec![((b, 1), Some(5_000))]), + ]; + let mut out: Vec = cs.iter().map(comparison_case).collect(); + + // rung_request_invalid. + let refused = |name: &str, description: &str, request: String| { + json!({ + "name": name, + "description": description, + "texts": [a.to_text(), b.to_text()], + "at_us": AT, + "request": request, + "evidence": [], + "outcome": refuse(REQUEST_INVALID), + }) + }; + let text = |f: &dyn Fn(&mut Value)| canonical(&req(f)); + let base = canonical(&base_request()); + out.push(refused("request_not_a_document", "A trailing comma.", format!("{},}}", &base[..base.len() - 1]))); + out.push(refused("request_member_added", "A deadline: a request states none.", text(&|v| v["deadline_ms"] = json!(1_000)))); + out.push(refused("request_kind_other", "The kind of a route request.", text(&|v| v["kind"] = json!("wai-route-request")))); + out.push(refused("request_direction_other", "A direction of peer.", text(&|v| v["direction"] = json!("peer")))); + out.push(refused("request_to_missing", "No region delivered to.", text(&|v| { + v.as_object_mut().expect("a request").remove("to"); + }))); + out.push(refused("request_to_lowercase", "To xb.", text(&|v| v["to"] = json!("xb")))); + out.push(refused("request_rate_zero", "A rung rate of 0.", text(&|v| v["rate_bps"] = json!(0)))); + out.push(refused("request_pass_rate_zero", "A pass rate of 0.", text(&|v| v["pass_rate_bps"] = json!(0)))); + out.push(refused("request_audience_zero", "An audience of 0.", text(&|v| v["audience"] = json!(0)))); + out.push(refused("request_bearers_unordered", "Bearer classes not in ascending order.", text(&|v| v["bearers"] = json!(["unidirectional", "bidirectional"])))); + out.push(refused("request_bearer_unknown", "A bearer class of broadcast.", text(&|v| v["bearers"] = json!(["bidirectional", "broadcast"])))); + out.push(refused("request_currency_lowercase", "A currency of usd.", text(&|v| v["currency"] = json!("usd")))); + out.push(refused( + "request_quantities_unordered", + "Quantities not in ascending order of unit.", + text(&|v| v["quantities"] = quantities(&[("bytes_sent", 1), ("bytes", 1)])), + )); + out.push(refused( + "request_max_price_malformed", + "A cap on bytes per a divisor of 0: a divisor is at least 1.", + text(&|v| v["max_price"] = json!([{ "unit": "bytes", "price": 1, "divisor": 0 }])), + )); + out.push(refused("request_sort_other", "A sort of ttfb.", text(&|v| v["sort"] = json!("ttfb")))); + let objects = || base_request()["confirmed"].as_array().expect("confirmed").clone(); + out.push(refused("request_without_confirmed", "No confirmed member.", text(&|v| { + v.as_object_mut().expect("a request").remove("confirmed"); + }))); + out.push(refused("confirmed_unordered", "The four confirmed keys in descending order.", text(&|v| { + v["confirmed"] = json!(objects().into_iter().rev().collect::>()); + }))); + out.push(refused("confirmed_repeated", "The first confirmed key and class twice.", text(&|v| { + let o = objects(); + v["confirmed"] = Value::Array([o[..1].to_vec(), o].concat()); + }))); + let d = hex(&key(SELLER_D).verifying_key().to_bytes()); + out.push(refused("confirmed_estimator", "D confirmed for Estimator, which names no records.", text(&|v| { + v["confirmed"] = json!(objects().into_iter().map(|mut o| { + if o["key"] == d.as_str() { + o["class"] = json!(EST); + } + o + }).collect::>()); + }))); + out.push(refused("confirmed_key_form", "The first confirmed key cut to 63 digits.", text(&|v| { + let mut o = objects(); + let k = o[0]["key"].as_str().expect("a key")[..63].to_string(); + o[0]["key"] = json!(k); + v["confirmed"] = json!(o); + }))); + out.push(refused( + "confirmed_past_bound", + "257 confirmed keys, each for ModelBased: the SHA-256 digests of the two-byte integers 0 to 256, ascending.", + text(&|v| v["confirmed"] = model_keys(257)), + )); + out.push(refused("evidence_age_zero", "An evidence age of 0.", text(&|v| v["evidence_age_us"] = json!(0)))); + out.push(refused("evidence_age_null", "An evidence age of null.", text(&|v| v["evidence_age_us"] = Value::Null))); + out.push(refused("request_without_evidence_age", "No evidence_age_us member.", text(&|v| { + v.as_object_mut().expect("a request").remove("evidence_age_us"); + }))); + out +} + +/// The corpus: `vectors.json`, from fixed seeds. +pub fn generate() -> Vec<(String, String)> { + let ls = lists(); + let mut keys = Map::new(); + for (name, seed) in [ + ("seller_unicast", SELLER_UNICAST), + ("seller_broadcast", SELLER_BROADCAST), + ("seller_c", SELLER_C), + ("seller_d", SELLER_D), + ("seller_contribution", SELLER_CONTRIBUTION), + ("seller_other_currency", SELLER_OTHER_CURRENCY), + ("holder_a", HOLDER_A), + ("holder_b", HOLDER_B), + ("holder_c", HOLDER_C), + ("holder_d", HOLDER_D), + ("holder_e", HOLDER_E), + ("seller_e", SELLER_E), + ("seller_f", SELLER_F), + ("seller_g", SELLER_G), + ("room_authority", ROOM_AUTHORITY), + ] { + keys.insert(name.into(), hex(&key(seed).verifying_key().to_bytes()).into()); + } + keys.insert("small_order".into(), hex(&crate::sig::IDENTITY).into()); + let doc = json!({ + "about": "Conformance corpus of extensions/rung-price.md (wai.delivery.rung_price): rung price lists (§4), their verdicts at \ + an instant (§5), and comparisons of delivery options under a request, with the per-hop records an energy figure \ + names (§4.6, §6). Every key is Ed25519 from a fixed 32-byte seed and attests nothing; every region is an ISO \ + 3166-1 user-assigned code or a subdivision of one, and names no place. Each case states the outcome it was \ + written to have, declared in the generator. Regenerate with `wai_rung_price_vectors gen`.", + "keys": keys, + "lists": list_cases(&ls), + "verdicts": verdict_cases(&ls), + "comparisons": comparison_cases(&ls), + }); + let mut s = serde_json::to_string_pretty(&doc).expect("serialises"); + s.push('\n'); + vec![("vectors.json".into(), s)] +} + +// ───────────────────────────── reading it back ───────────────────────────── + +fn texts_of(c: &Value) -> Result, String> { + c["texts"].as_array().ok_or("texts")?.iter().map(|t| t.as_str().map(str::to_string).ok_or_else(|| "a text".to_string())).collect() +} + +/// A case's evidence texts, each lowercase hexadecimal of even length. +fn evidence_texts(c: &Value) -> Result>, String> { + c["evidence"].as_array().ok_or("evidence")?.iter().map(|t| t.as_str().and_then(crate::fleet::unhex).ok_or_else(|| "an evidence text".to_string())).collect() +} + +/// Every string value of a member named `name`, anywhere in `v`. +fn members(v: &Value, name: &str, out: &mut Vec) { + match v { + Value::Array(a) => a.iter().for_each(|x| members(x, name, out)), + Value::Object(m) => { + for (k, x) in m { + if k == name + && let Some(s) = x.as_str() + { + out.push(s.to_string()); + } + members(x, name, out); + } + } + _ => {} + } +} + +/// Check a corpus's files against this module: each case's outcome, every reason of §8, every +/// limit of §6.2, every decision of §6.5, every evidence of §6.4 and every energy rank. Returns the +/// failures. +pub fn verify(files: &BTreeMap) -> Vec { + let mut fails = Vec::new(); + let Some(text) = files.get("vectors.json") else { return vec!["no vectors.json".into()] }; + let doc: Value = match serde_json::from_str(text) { + Ok(d) => d, + Err(e) => return vec![format!("vectors.json: {e}")], + }; + let empty = Vec::new(); + let mut outcomes = Vec::new(); + let mut check = |kind: &str, run: &dyn Fn(&Value) -> Result| { + let cases = doc[kind].as_array().unwrap_or(&empty); + if cases.is_empty() { + fails.push(format!("no {kind} cases")); + } + for c in cases { + let name = c["name"].as_str().unwrap_or("?"); + match run(c) { + Err(e) => fails.push(format!("{name}: {e}")), + Ok(got) if got != c["outcome"] => fails.push(format!("{name}: stated {} got {got}", c["outcome"])), + Ok(_) => {} + } + outcomes.push(c["outcome"].clone()); + } + }; + check("lists", &|c| { + let t = c["text"].as_str().ok_or("text")?; + Ok(match RungPrices::read(t) { + Ok(l) => read_outcome(&l), + Err(r) => refuse(r), + }) + }); + check("verdicts", &|c| { + let v = verdict(&texts_of(c)?, c["at_us"].as_u64().ok_or("at_us")?); + Ok(json!({ "lists": v.lists.iter().map(|(v, _)| v.label()).collect::>() })) + }); + check("comparisons", &|c| { + let r = c["request"].as_str().ok_or("request")?; + Ok(match compare(&texts_of(c)?, &evidence_texts(c)?, c["at_us"].as_u64().ok_or("at_us")?, r) { + Ok(p) => p.to_value(), + Err(e) => refuse(e), + }) + }); + let (mut reasons, mut verdicts, mut limits, mut decisions, mut evidence) = (Vec::new(), Vec::new(), Vec::new(), Vec::new(), Vec::new()); + // A verdict case's labels are its `lists`; a plan's are each list's `verdict`. + for o in &outcomes { + verdicts.extend(o["lists"].as_array().into_iter().flatten().filter_map(|x| x.as_str().map(str::to_string))); + } + let all = Value::Array(outcomes); + members(&all, "reason", &mut reasons); + members(&all, "verdict", &mut verdicts); + members(&all, "limit", &mut limits); + members(&all, "decided_by", &mut decisions); + members(&all, "evidence", &mut evidence); + for code in CODES { + if !reasons.iter().any(|s| s == code) && !verdicts.iter().chain(&evidence).any(|s| s.ends_with(&format!("reason={code}"))) { + fails.push(format!("no case gives {code}")); + } + } + for e in EVIDENCE { + if !evidence.iter().any(|s| s == e) { + fails.push(format!("no candidate's evidence is {e}")); + } + } + let ranks: Vec = all + .as_array() + .into_iter() + .flatten() + .flat_map(|o| o["candidates"].as_array().into_iter().flatten()) + .filter_map(|c| c["energy_rank"].as_u64()) + .collect(); + for r in 0..=4 { + if !ranks.contains(&r) { + fails.push(format!("no candidate has energy rank {r}")); + } + } + for l in LIMITS { + if !limits.iter().any(|s| s == l) { + fails.push(format!("no candidate is removed by {l}")); + } + } + for d in DECIDED_BY { + if !decisions.iter().any(|s| s == d) { + fails.push(format!("no comparison is decided by {d}")); + } + } + fails +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn the_corpus_reaches_every_stated_outcome() { + let files: BTreeMap = generate().into_iter().collect(); + let fails = verify(&files); + assert!(fails.is_empty(), "{}", fails.join("\n")); + } + + #[test] + fn a_changed_outcome_fails_verification() { + let mut files: BTreeMap = generate().into_iter().collect(); + let text = files["vectors.json"].replacen("\"superseded\"", "\"stands\"", 1); + files.insert("vectors.json".into(), text); + assert!(!verify(&files).is_empty()); + let mut files: BTreeMap = generate().into_iter().collect(); + let text = files["vectors.json"].replacen("\"break_even\": 5000", "\"break_even\": 4999", 1); + assert_ne!(text, files["vectors.json"], "a break-even of 5,000 is stated"); + files.insert("vectors.json".into(), text); + assert!(!verify(&files).is_empty()); + } +} diff --git a/wai/wai-rs/src/stitched_presentation.rs b/wai/wai-rs/src/stitched_presentation.rs index 08e24e287..b35213e87 100644 --- a/wai/wai-rs/src/stitched_presentation.rs +++ b/wai/wai-rs/src/stitched_presentation.rs @@ -897,6 +897,14 @@ fn marker_in_manifest(c: &StitchedClaim, rec: &PodInput, manifest: &[u8], manife /// A verification reads at most [`MAX_CLAIMS`] claims (§7.1), so no spend it states passes /// `u64`; the tool refuses more before it calls this. pub fn verify(input: &Input) -> Verification { + verify_through(input, true) +} + +/// [`verify`], with §7.3 step 11 run only when `attestation` is set: without it, a claim of a +/// record that requires attestation is judged by steps 1 to 10 alone. A receiver with no +/// path back judges its own claims so, and its report's token takes step 11's place +/// (impression-aggregates §6.2). +pub fn verify_through(input: &Input, attestation: bool) -> Verification { // §7.2: the records, in order. let mut accepted: Vec> = Vec::new(); let mut records: Vec = Vec::new(); @@ -1017,7 +1025,7 @@ pub fn verify(input: &Input) -> Verification { if run < ap::RUN_MS { return Err(Reason::ClaimNotViewable); } - if rec.requirement.attest() { + if attestation && rec.requirement.attest() { check_attestation(&c, &rec.requirement, input.issuers)?; } Ok(()) diff --git a/wai/wai-rs/src/takedown.rs b/wai/wai-rs/src/takedown.rs index 9357c9cce..6515feaba 100644 --- a/wai/wai-rs/src/takedown.rs +++ b/wai/wai-rs/src/takedown.rs @@ -819,6 +819,8 @@ pub struct Case { /// Acknowledgements and declarations (settlement §3), each its record's bytes and the /// item list of each of its entries, in order. pub acknowledgements: Vec<(Vec, Vec>)>, + /// `cache-transmission` claim texts (cache-authority §5), in order. + pub cache_transmissions: Vec, /// The instant of the verification, a time's value (§2). pub as_of: u64, } @@ -1055,6 +1057,15 @@ fn evaluate(case: &Case, as_of: u64) -> Result { })(); acks.push(read.ok_or(()).or_else(|_| refuse(Reason::EvidenceInvalid, &place_i("acknowledgement", i)))?); } + // The cache-transmission claims (cache-authority §5): each of that class, through + // jwp-receipts §3.1 steps 1–4; what each shows, (signer, group, positions sent). + let mut sent: Vec<([u8; 32], [u8; 32], Vec)> = Vec::new(); + for (i, t) in case.cache_transmissions.iter().enumerate() { + let read = crate::claim_receipt::verify_claim_json(t) + .ok() + .and_then(|c| c.cache_transmission().map(|b| (c.signer_pubkey, c.subject, b.indices()))); + sent.push(read.ok_or(()).or_else(|_| refuse(Reason::EvidenceInvalid, &place_i("cache_transmission", i)))?); + } // Step 6: the matches. let mut matches = Vec::new(); for (i, t) in case.matches.iter().enumerate() { @@ -1177,6 +1188,14 @@ fn evaluate(case: &Case, as_of: u64) -> Result { } } } + // A node's own word that it sent objects of a group, read by position through the group's + // object receipts (§6.3); a group not among the receipts names no object. + for (signer, group, positions) in &sent { + let Some((_, hashes)) = expand(&case.receipts, group) else { continue }; + for h in positions.iter().filter_map(|p| hashes.get(*p as usize)).filter(|h| objects.contains(*h)) { + need(*signer, Subject::Object(*h), "served"); + } + } let mut matched_required: BTreeMap<([u8; 32], String), Subject> = BTreeMap::new(); let stated_candidates: BTreeSet<[u8; 32]> = td.matched.iter().map(|m| m.1).collect(); for k in &pol.stores { diff --git a/wai/wai-rs/src/takedown/corpus.rs b/wai/wai-rs/src/takedown/corpus.rs index 22ccc5544..cdd050938 100644 --- a/wai/wai-rs/src/takedown/corpus.rs +++ b/wai/wai-rs/src/takedown/corpus.rs @@ -308,6 +308,26 @@ fn acknowledgements(o: &Objects) -> Vec { vec![acknowledgement(role::SINK, CACHE, VIEWER, &[o.thumb, o.other_thumb]), acknowledgement(role::HOP, RELAY_STORE, CACHE, &[o.comp, o.rung])] } +/// The cache's `cache-transmission` claim (cache-authority §5): it sent the source, object 0 of +/// the source group, over a multicast instance of its own. +fn cache_transmission(w: &World) -> String { + use crate::claim_receipt::{Bearer, CacheTransmissionClaim, ClaimBody, ClaimReceipt, ReconciliationClaim, SubjectType}; + let source = ObjectReceipt::from_json(&w.g.receipts[1]).expect("the source's receipt"); + assert_eq!(source.content_hash, w.o.src); + let body = ClaimBody::CacheTransmission(CacheTransmissionClaim { + bearer: Bearer::Multicast, + bearer_id: "urn:example:wai-bearer:cache-mesh".into(), + leaf_count: 2, + sent: ReconciliationClaim::bitmap(2, &[0]), + sent_root: crate::jwp_delivery::root(&[source.leaf()]), + energy: None, + attests: "transmitted".into(), + }); + ClaimReceipt::seal(&key(CACHE), crate::signer_id::did_key(&pk(CACHE)), SubjectType::Receipt, w.g.g1, 0, ISSUED, body, None) + .expect("a claim that passes steps 1-4") + .to_json() +} + fn registry_link() -> [u8; 32] { read_registry(REGISTRY).expect("the published registry reads").link } @@ -476,6 +496,7 @@ pub fn case_of(world: &Map, over: &Map) -> Option< }) .collect::>>()?, }, + cache_transmissions: texts("cache_transmissions")?, as_of: time(get("as_of")?.as_str()?)?, }) } @@ -604,6 +625,24 @@ fn vectors(w: &World) -> Vec { want: Want::Missed(Reason::PurgeMissing), }); + // 4c–4d. The request of case 1, with a node's cache-transmission claim that it sent the + // source over an instance of its own: its own word makes it a holder of the source. + let sent = cache_transmission(w); + let mut p4d = p1.clone(); + p4d[6] = purge(CACHE, &td1s, &[obj(o.comp), obj(o.rung), obj(o.thumb), obj(o.src)], T0 + 14 * H); + v.push(Vector { + name: "cache-transmitted-purged", + description: "The request of request-48h-met, with the cache's claim that it sent the source over a multicast instance of its own; the cache purges the source beside what it received and served: accept", + over: over(vec![("notices", texts(std::slice::from_ref(&n1))), ("takedown", json!(td1s)), ("matches", texts(std::slice::from_ref(&m1))), ("purges", texts(&p4d)), ("cache_transmissions", texts(std::slice::from_ref(&sent))), ("as_of", json!(t(T0 + 72 * H)))]), + want: Want::Accept, + }); + v.push(Vector { + name: "cache-transmitted-not-purged", + description: "The same, verified after its deadline, with the cache's purge naming only what it received and served: the source it sent is not purged, purge_missing", + over: over(vec![("notices", texts(std::slice::from_ref(&n1))), ("takedown", json!(td1s)), ("matches", texts(std::slice::from_ref(&m1))), ("purges", texts(&p1)), ("cache_transmissions", texts(std::slice::from_ref(&sent))), ("as_of", json!(t(T0 + 72 * H)))]), + want: Want::Missed(Reason::PurgeMissing), + }); + // 5. The same, with a stranger's purge of what that edge held: it counts for nothing. let mut p5 = p4.clone(); p5.push(purge(STRANGER, &td1s, &[obj(o.comp), obj(o.thumb), obj(o.rung)], T0 + 8 * H)); @@ -817,6 +856,14 @@ fn vectors(w: &World) -> Vec { acks[0]["items"] = json!([hex(&crate::settlement::item_list(&[crate::settlement::Item { content_hash: o.thumb, start: 0, end: 95 }, crate::settlement::Item { content_hash: o.other_thumb, start: 0, end: 96 }]))]); bad_ack.insert("acknowledgements".into(), Value::Array(acks)); v.push(Vector { name: "acknowledgement-invalid", description: "An acknowledgement whose item list is not the one its entry signs", over: bad_ack, want: Want::Refuse(Reason::EvidenceInvalid) }); + let forged = { + let mut x: Value = serde_json::from_str(&sent).expect("json"); + x["issued_at"] = json!("2026-10-21T07:00:01Z"); + text(&x) + }; + let mut bad_sent = base(&td1s); + bad_sent.insert("cache_transmissions".into(), texts(std::slice::from_ref(&forged))); + v.push(Vector { name: "cache-transmission-invalid", description: "A cache-transmission claim whose signature does not cover what it states", over: bad_sent, want: Want::Refuse(Reason::EvidenceInvalid) }); let mut short = base(&td1s); short.insert("receipts".into(), Value::Array(w.g.receipts_short.clone())); diff --git a/wai/wai-rs/src/telemetry_aggregate/aggregator.rs b/wai/wai-rs/src/telemetry_aggregate/aggregator.rs index 2805911dd..300cb6091 100644 --- a/wai/wai-rs/src/telemetry_aggregate/aggregator.rs +++ b/wai/wai-rs/src/telemetry_aggregate/aggregator.rs @@ -55,29 +55,62 @@ pub fn statement_info(role: u8) -> Vec { v } +/// What an aggregator accepts of a report's extensions (`draft-ietf-ppm-dap-20` §4.5.3.4), after +/// its input share decrypts: `Ok`, or the report error it rejects the report with and, where a +/// WAI text names one, the WAI reason it records beside it. A rule is `Sync` and +/// `RefUnwindSafe`, so an aggregator that holds one is `Send`, `Sync` and unwind-safe. +pub trait ReportRule: Sync + std::panic::RefUnwindSafe { + fn extensions(&self, m: &ReportMetadata, private: &Extensions) -> Result<(), (u8, Option<&'static str>)>; +} + +/// The rule of §5.1: a report carries no extension, public or private; any is +/// `invalid_message` (DAP §4.5.3.4 step 4). +pub struct NoExtensions; + +impl ReportRule for NoExtensions { + fn extensions(&self, m: &ReportMetadata, private: &Extensions) -> Result<(), (u8, Option<&'static str>)> { + if !private.is_empty() || !m.public_extensions.is_empty() { + return Err((report_error::INVALID_MESSAGE, None)); + } + Ok(()) + } +} + +/// The configuration a client seals an input share to, from its aggregator's HpkeConfigList: +/// the first, in the list's order of preference (DAP §4.4.1), of DAP §7's suite — +/// DHKEM(X25519, HKDF-SHA256), HKDF-SHA256 and AES-128-GCM — with a 32-byte key. +pub fn choose(list: &[HpkeConfig]) -> Option<&HpkeConfig> { + list.iter().find(|c| c.kem == hpke::KEM_X25519_HKDF_SHA256 && c.kdf == hpke::KDF_HKDF_SHA256 && c.aead == hpke::AEAD_AES_128_GCM && c.public_key.len() == 32) +} + /// The client (§5.1): shard an encoded measurement and encrypt each input share to its -/// aggregator. `rand` is Prio3's randomness; `ikm` the seeds of the two ephemeral keys. +/// aggregator, under the configuration [`choose`] takes from its list. `rand` is Prio3's +/// randomness; `ikm` the seeds of the two ephemeral keys; `public` the report's public +/// extensions and `private` each input share's. #[allow(clippy::too_many_arguments)] pub fn client_report( task: &Task, - leader: &HpkeConfig, - helper: &HpkeConfig, + leader: &[HpkeConfig], + helper: &[HpkeConfig], id: [u8; 16], time: u64, encoded: &[u128], rand: &[u8], ikm: [&[u8]; 2], + public: &Extensions, + private: [&Extensions; 2], ) -> Report { let (public_share, shares) = task.vdaf.shard(&task.ctx(), encoded, &id, rand).expect("shard"); - let metadata = ReportMetadata { id, time, public_extensions: vec![] }; + let metadata = ReportMetadata { id, time, public_extensions: public.clone() }; let aad = input_share_aad(&task.id, &task.config, &metadata, &public_share); - let seal = |cfg: &HpkeConfig, role: u8, share: &[u8], ikm: &[u8]| { + let seal = |list: &[HpkeConfig], role: u8, share: &[u8], ikm: &[u8], ext: &Extensions| { + let cfg = choose(list).expect("a configuration of DAP's suite"); let pk: [u8; 32] = cfg.public_key.as_slice().try_into().expect("X25519 key"); - let (enc, payload) = hpke::seal_base(&pk, &input_share_info(role), &aad, &encode_plaintext_input_share(&vec![], share), ikm).expect("seal"); + let (enc, payload) = hpke::seal_base(&pk, &input_share_info(role), &aad, &encode_plaintext_input_share(ext, share), ikm).expect("seal"); HpkeCiphertext { config_id: cfg.id, enc, payload } }; - let leader_share = seal(leader, ROLE_LEADER, &shares[0], ikm[0]); - let helper_share = seal(helper, ROLE_HELPER, &shares[1], ikm[1]); + let leader_share = seal(leader, ROLE_LEADER, &shares[0], ikm[0], private[0]); + let helper_share = seal(helper, ROLE_HELPER, &shares[1], ikm[1], private[1]); Report { metadata, public_share, leader_share, helper_share } } @@ -94,15 +127,18 @@ pub struct Bucket { /// a report. type Merged = (Vec, u64, [u8; 32], Option<(u64, u64)>); -/// One aggregator's report state: its task, keys, verification key, buckets, the reports it -/// has aggregated and the buckets it has collected. +/// One aggregator's report state: its task, keys, verification key, the rule it holds a +/// report's extensions to, buckets, the reports it has aggregated, the buckets it has +/// collected, and the WAI reason it recorded beside a report error. pub struct Aggregator<'a> { pub task: &'a Task, pub keys: &'a Keys, pub verify_key: [u8; 32], + pub rule: &'a dyn ReportRule, pub buckets: BTreeMap, pub aggregated: BTreeSet<[u8; 16]>, pub collected: BTreeSet, + pub reasons: BTreeMap<[u8; 16], &'static str>, } /// A report's outcome in an aggregation job: committed, or rejected with a report error. @@ -114,7 +150,29 @@ pub enum Outcome { impl<'a> Aggregator<'a> { pub fn new(task: &'a Task, keys: &'a Keys, verify_key: [u8; 32]) -> Self { - Aggregator { task, keys, verify_key, buckets: BTreeMap::new(), aggregated: BTreeSet::new(), collected: BTreeSet::new() } + Aggregator::with_rule(task, keys, verify_key, &NoExtensions) + } + + /// An aggregator that holds a report's extensions to `rule`. + pub fn with_rule(task: &'a Task, keys: &'a Keys, verify_key: [u8; 32], rule: &'a dyn ReportRule) -> Self { + Aggregator { + task, + keys, + verify_key, + rule, + buckets: BTreeMap::new(), + aggregated: BTreeSet::new(), + collected: BTreeSet::new(), + reasons: BTreeMap::new(), + } + } + + /// A report error, with the WAI reason recorded beside it where there is one. + fn reject(&mut self, id: &[u8; 16], e: (u8, Option<&'static str>)) -> u8 { + if let Some(r) = e.1 { + self.reasons.insert(*id, r); + } + e.0 } /// Whether an output share may be committed (§4.5.4.3). @@ -137,19 +195,18 @@ impl<'a> Aggregator<'a> { self.aggregated.insert(m.id); } - /// Decrypt and check this aggregator's input share of a report (§4.5.3.3, §4.5.3.4). - fn open(&self, role: u8, m: &ReportMetadata, public_share: &[u8], ct: &HpkeCiphertext) -> Result, u8> { + /// Decrypt and check this aggregator's input share of a report (§4.5.3.3, §4.5.3.4): its + /// extensions are held to the aggregator's rule. + fn open(&self, role: u8, m: &ReportMetadata, public_share: &[u8], ct: &HpkeCiphertext) -> Result, (u8, Option<&'static str>)> { if ct.config_id != self.keys.hpke.id { - return Err(report_error::HPKE_UNKNOWN_CONFIG_ID); + return Err((report_error::HPKE_UNKNOWN_CONFIG_ID, None)); } let aad = input_share_aad(&self.task.id, &self.task.config, m, public_share); - let pt = hpke::open_base(&ct.enc, &self.keys.hpke_sk, &input_share_info(role), &aad, &ct.payload).map_err(|_| report_error::HPKE_DECRYPT_ERROR)?; - let (exts, payload) = decode_plaintext_input_share(&pt).map_err(|_| report_error::INVALID_MESSAGE)?; - if !exts.is_empty() || !m.public_extensions.is_empty() { - return Err(report_error::INVALID_MESSAGE); - } + let pt = hpke::open_base(&ct.enc, &self.keys.hpke_sk, &input_share_info(role), &aad, &ct.payload).map_err(|_| (report_error::HPKE_DECRYPT_ERROR, None))?; + let (exts, payload) = decode_plaintext_input_share(&pt).map_err(|_| (report_error::INVALID_MESSAGE, None))?; + self.rule.extensions(m, &exts)?; if self.task.config.task_interval().is_some_and(|i| !i.contains(m.time)) { - return Err(report_error::REPORT_DROPPED); + return Err((report_error::REPORT_DROPPED, None)); } Ok(payload) } @@ -232,7 +289,8 @@ impl<'a> Leader<'a> { let mut states = Vec::new(); for r in &pending { let m = &r.metadata; - let opened = self.agg.eligible(m).and_then(|_| self.agg.open(ROLE_LEADER, m, &r.public_share, &r.leader_share)); + let opened = self.agg.eligible(m).map_err(|e| (e, None)).and_then(|_| self.agg.open(ROLE_LEADER, m, &r.public_share, &r.leader_share)); + let opened = opened.map_err(|e| self.agg.reject(&m.id, e)); let started = opened.and_then(|payload| { task.vdaf.leader_init(&self.agg.verify_key, &ctx, &m.id, &r.public_share, &payload).map_err(|_| report_error::VDAF_VERIFY_ERROR) }); @@ -269,8 +327,11 @@ impl<'a> Leader<'a> { } /// Handle a collection job (§4.6.1) with the helper (§4.6.4): the response, the helper's - /// sealed statement and the leader's own, and the AggregateShareReq it sent. - pub fn collect(&mut self, body: &[u8], helper: &mut Helper, collector: &HpkeConfig, ikm: [&[u8]; 4]) -> Result { + /// sealed statement and the leader's own, and the AggregateShareReq it sent. At `now_s`, in + /// seconds, a job whose batch interval has not ended `hold_s` seconds before is still + /// processing (`Ok(None)`): a task that holds no collection passes a hold of 0. + #[allow(clippy::too_many_arguments)] + pub fn collect(&mut self, body: &[u8], helper: &mut Helper, collector: &HpkeConfig, ikm: [&[u8]; 4], now_s: u64, hold_s: u64) -> Result, Problem> { let task = self.agg.task; let coll = CollectionJobReq::decode(body).map_err(|_| Problem::InvalidMessage)?; if coll.batch_mode != task.config.batch_mode { @@ -289,6 +350,10 @@ impl<'a> Leader<'a> { if !coll.extensions.is_empty() { return Err(Problem::UnsupportedExtension); } + let due = query.end().and_then(|e| e.checked_mul(task.config.time_precision)).and_then(|e| e.checked_add(hold_s)); + if due.is_none_or(|d| now_s < d) { + return Ok(None); + } let (agg, count, checksum, span) = self.agg.merged(&query); if count < task.config.min_batch_size { return Err(Problem::InvalidBatchSize); @@ -303,7 +368,7 @@ impl<'a> Leader<'a> { } let (a, b) = span.expect("a batch of at least the minimum holds a report"); let resp = CollectionJobResp { report_count: count, interval: Interval { start: a, duration: b - a + 1 }, leader_share, helper_share: HpkeCiphertext::decode(&helper_share).map_err(|_| Problem::InvalidMessage)? }; - Ok(Collection { request: body.to_vec(), share_req, helper_share, resp: resp.encode(), leader_statement: leader_statement.encode(), helper_statement }) + Ok(Some(Collection { request: body.to_vec(), share_req, helper_share, resp: resp.encode(), leader_statement: leader_statement.encode(), helper_statement })) } } @@ -346,9 +411,9 @@ impl<'a> Helper<'a> { let r = if req.verification_key_id != 0 { Err(report_error::UNKNOWN_VERIFICATION_KEY_ID) } else { - self.agg - .open(ROLE_HELPER, m, &v.public_share, &v.encrypted) - .and_then(|p| self.agg.eligible(m).map(|_| p)) + let opened = self.agg.open(ROLE_HELPER, m, &v.public_share, &v.encrypted).and_then(|p| self.agg.eligible(m).map(|_| p).map_err(|e| (e, None))); + opened + .map_err(|e| self.agg.reject(&m.id, e)) .and_then(|p| task.vdaf.helper_init(&self.agg.verify_key, &ctx, &m.id, &v.public_share, &p, &v.payload).map_err(|_| report_error::VDAF_VERIFY_ERROR)) }; let kind = match r { @@ -428,3 +493,18 @@ pub fn collector_open(task: &Task, sk: &[u8; 32], coll: &CollectionJobReq, resp: let result = task.vdaf.unshard(&[l_share, h_share]).map_err(|_| "unshard")?; Ok(Opened { result, leader: l, helper: h }) } + +#[cfg(test)] +mod tests { + use super::*; + + /// An aggregator, and so a leader and a helper, is `Send`, `Sync` and unwind-safe whatever + /// report rule it holds: the trait's bounds carry those of the rule. + #[test] + fn an_aggregator_is_send_sync_and_unwind_safe() { + fn holds() {} + holds::>(); + holds::>(); + holds::>(); + } +} diff --git a/wai/wai-rs/src/telemetry_aggregate/corpus.rs b/wai/wai-rs/src/telemetry_aggregate/corpus.rs index 1ad44b094..cbc14778d 100644 --- a/wai/wai-rs/src/telemetry_aggregate/corpus.rs +++ b/wai/wai-rs/src/telemetry_aggregate/corpus.rs @@ -257,7 +257,19 @@ fn flow(w: &World, code: u8, scope: [u8; 32]) -> Flow { let mk = |idn: &str, time: u64, enc: &[u128]| -> Report { let id: [u8; 16] = seed(&[b"report", mname.as_bytes(), idn.as_bytes()])[..16].try_into().unwrap(); let rand = stream(&[b"rand", mname.as_bytes(), idn.as_bytes()], task.vdaf.rand_size()); - client_report(&task, &w.leader.hpke, &w.helper.hpke, id, time, enc, &rand, [&ikm(mname, idn, "leader"), &ikm(mname, idn, "helper")]) + let none = Extensions::new(); + client_report( + &task, + std::slice::from_ref(&w.leader.hpke), + std::slice::from_ref(&w.helper.hpke), + id, + time, + enc, + &rand, + [&ikm(mname, idn, "leader"), &ikm(mname, idn, "helper")], + &none, + [&none, &none], + ) }; for i in 0..SESSIONS { let m = measure::measurement(code, &session(i)).unwrap(); @@ -310,7 +322,7 @@ fn flow(w: &World, code: u8, scope: [u8; 32]) -> Flow { // Before the collection: a batch of the first hour alone, below the minimum, refused by // the leader and, asked directly, by the helper; a checksum that is not the batch's. let c1 = CollectionJobReq::time_interval(first).encode(); - let got = problem_or_ok(leader.collect(&c1, &mut helper, &collector, ikms)); + let got = problem_or_ok(leader.collect(&c1, &mut helper, &collector, ikms, u64::MAX, 0)); assert_eq!(got, "invalidBatchSize"); refusals.push(json!({"name": "leader_below_minimum", "phase": "before", "actor": "leader", "message": "collection_job_req", "request": hex(&c1), "outcome": got})); let (_, count, checksum) = bucket_sum(&helper, &first); @@ -341,7 +353,7 @@ fn flow(w: &World, code: u8, scope: [u8; 32]) -> Flow { } v }; - let collection = leader.collect(&coll.encode(), &mut helper, &collector, ikms).expect("the collection"); + let collection = leader.collect(&coll.encode(), &mut helper, &collector, ikms, u64::MAX, 0).expect("the collection").expect("no hold"); if code == OUTCOMES { let second = Interval { start: t + 1, duration: 1 }; let (_, count, checksum) = bucket_sum(&helper, &second); @@ -349,7 +361,7 @@ fn flow(w: &World, code: u8, scope: [u8; 32]) -> Flow { let got = problem_or_ok(helper.aggregate_share(&r3, &collector, [&k2, &k3])); assert_eq!(got, "batchOverlap"); refusals.push(json!({"name": "helper_collected_again", "phase": "after", "actor": "helper", "message": "aggregate_share_req", "request": hex(&r3), "outcome": got})); - let got = problem_or_ok(leader.collect(&coll.encode(), &mut helper, &collector, ikms)); + let got = problem_or_ok(leader.collect(&coll.encode(), &mut helper, &collector, ikms, u64::MAX, 0)); assert_eq!(got, "batchOverlap"); refusals.push(json!({"name": "leader_collected_again", "phase": "after", "actor": "leader", "message": "collection_job_req", "request": hex(&coll.encode()), "outcome": got})); } @@ -427,7 +439,7 @@ fn outcome_json(r: &Result) -> Value { "helper": hex(&a.helper), "collector": hex(&a.collector), }), - Err((r, at)) => json!({"outcome": "refuse", "reason": r.code(), "at": at}), + Err((r, at)) => json!({"outcome": "refuse", "reason": r, "at": at}), } } @@ -474,7 +486,7 @@ fn cell_outcome(doc: &Value, v: &Value) -> Value { let b = unhex(r["receipt"].as_str().unwrap_or("")).unwrap_or_default(); match receipt::verify(&b, given_of(r).as_deref()) { Ok(a) => acc.push(a), - Err((r, _)) => return json!({"outcome": "refuse", "reason": r.code()}), + Err((r, _)) => return json!({"outcome": "refuse", "reason": r}), } } match cell(&acc) { diff --git a/wai/wai-rs/src/telemetry_aggregate/measure.rs b/wai/wai-rs/src/telemetry_aggregate/measure.rs index 5cfd246f6..62ff4ed04 100644 --- a/wai/wai-rs/src/telemetry_aggregate/measure.rs +++ b/wai/wai-rs/src/telemetry_aggregate/measure.rs @@ -18,6 +18,13 @@ pub const OUTCOMES: u8 = 1; pub const STALLS: u8 = 2; pub const DURATIONS: u8 = 3; pub const START_TIME: u8 = 4; +/// Ad presentations counted over a bearer with no return path (impression-aggregates §5.1): +/// its VDAF is not fixed here but by the catalogue whose digest is the task's `scope`. +pub const IMPRESSIONS: u8 = 5; + +/// impression-aggregates §5.3's code, which a task of measure 5 is refused with when its +/// `measure` or `scope` is not its catalogue's, and when no catalogue is given (§4.3 rule 3). +pub const CATALOGUE_MISMATCH: &str = "catalogue_mismatch"; /// The largest stall count a session reports to `stalls`. pub const STALLS_MAX: u64 = 65_535; @@ -28,13 +35,15 @@ pub const DURATION_MAX: u64 = u32::MAX as u64; pub const START_EDGES_MS: [u64; 6] = [250, 500, 1000, 2000, 4000, 8000]; /// The measures of §3: code, name. -pub const MEASURES: [(u8, &str); 4] = [(OUTCOMES, "outcomes"), (STALLS, "stalls"), (DURATIONS, "durations"), (START_TIME, "start_time")]; +pub const MEASURES: [(u8, &str); 5] = + [(OUTCOMES, "outcomes"), (STALLS, "stalls"), (DURATIONS, "durations"), (START_TIME, "start_time"), (IMPRESSIONS, "impressions")]; pub fn name(code: u8) -> Option<&'static str> { MEASURES.iter().find(|(c, _)| *c == code).map(|(_, n)| *n) } -/// The VDAF a measure is aggregated with (§3), two aggregators. +/// The VDAF a measure is aggregated with (§3), two aggregators; `None` for measure 5, whose +/// VDAF its catalogue fixes, and for a code of no measure. pub fn vdaf(code: u8) -> Option { Some(match code { OUTCOMES => Vdaf::sumvec(2, 4, 1, 2), @@ -114,30 +123,56 @@ pub struct Task { pub vdaf: Vdaf, } +/// A rule 3 for a measure whose VDAF §3.1 does not fix (measure 5): given the configuration +/// and its `task_info`, the VDAF, or the code that refuses it. +pub type MeasureRule<'a> = &'a dyn Fn(&TaskConfig, &TaskInfo) -> Result; + +/// §4.3 rule 1: the configuration's `task_info`, or `task_invalid`. +pub fn rule_1(config: &TaskConfig) -> Result { + let invalid = Reason::TaskInvalid.code(); + let info = TaskInfo::decode(&config.task_info).ok_or(invalid)?; + if config.time_precision == 0 || config.batch_mode != BATCH_TIME_INTERVAL || !config.batch_config.is_empty() { + return Err(invalid); + } + let ext_ok = config.extensions.iter().all(|(t, d)| *t == EXT_TASK_INTERVAL && super::dap::Interval::decode(d).is_ok()); + if !ext_ok || !super::dap::exts_sorted(&config.extensions) { + return Err(invalid); + } + Ok(info) +} + impl Task { - /// Check a configuration against §4.3, in order. - pub fn new(config: TaskConfig) -> Result { - let info = TaskInfo::decode(&config.task_info).ok_or(Reason::TaskInvalid)?; - if config.time_precision == 0 || config.batch_mode != BATCH_TIME_INTERVAL || !config.batch_config.is_empty() { - return Err(Reason::TaskInvalid); - } - let ext_ok = config.extensions.iter().all(|(t, d)| *t == EXT_TASK_INTERVAL && super::dap::Interval::decode(d).is_ok()); - if !ext_ok || !super::dap::exts_sorted(&config.extensions) { - return Err(Reason::TaskInvalid); - } - let vdaf = vdaf(info.measure).ok_or(Reason::MeasureUnknown)?; - if config.vdaf_type != vdaf.id() || config.vdaf_config != vdaf.dap_config() { - return Err(Reason::MeasureMismatch); + /// Check a configuration against §4.3, in order, with `rule` as rule 3 for measure 5 + /// (impression-aggregates §5.3 steps 2 to 4). A refusal is its code. + pub fn with(config: TaskConfig, rule: MeasureRule<'_>) -> Result { + let info = rule_1(&config)?; + if name(info.measure).is_none() { + return Err(Reason::MeasureUnknown.code()); } + let vdaf = match vdaf(info.measure) { + Some(v) => { + if config.vdaf_type != v.id() || config.vdaf_config != v.dap_config() { + return Err(Reason::MeasureMismatch.code()); + } + v + } + None => rule(&config, &info)?, + }; if config.min_batch_size < FLOOR { - return Err(Reason::FloorTooLow); + return Err(Reason::FloorTooLow.code()); } if info.leader == info.helper { - return Err(Reason::AggregatorAlone); + return Err(Reason::AggregatorAlone.code()); } Ok(Task { id: task_id(&config), config, info, vdaf }) } + /// Check a configuration against §4.3 with no catalogue: measures 1 to 4 as §3.1 fixes + /// them, and measure 5 refused `catalogue_mismatch`. + pub fn new(config: TaskConfig) -> Result { + Task::with(config, &|_, _| Err(CATALOGUE_MISMATCH)) + } + /// The VDAF application context DAP shards and verifies under: `dap-20` and the task id. pub fn ctx(&self) -> Vec { let mut c = super::dap::DAP_TAG.to_vec(); diff --git a/wai/wai-rs/src/telemetry_aggregate/receipt.rs b/wai/wai-rs/src/telemetry_aggregate/receipt.rs index bf891ee8d..7074029a2 100644 --- a/wai/wai-rs/src/telemetry_aggregate/receipt.rs +++ b/wai/wai-rs/src/telemetry_aggregate/receipt.rs @@ -221,75 +221,82 @@ pub struct Accepted { pub collector: [u8; 32], } -/// Where a refusal is raised (§8.1). -pub type Refusal = (Reason, &'static str); +/// A refusal (§8.1): its code and where it is raised. +pub type Refusal = (&'static str, &'static str); /// Verify a receipt (§8.1), with the batch's reports where they are given. pub fn verify(bytes: &[u8], reports: Option<&[GivenReport]>) -> Result { + verify_with(bytes, reports, &|t| TaskConfig::decode(t).map_err(|_| Reason::TaskInvalid.code()).and_then(Task::new)) +} + +/// §8.1 steps 1 to 11 with step 2 given as `task`: from the receipt's `task` bytes, the task +/// that meets §4.3, or the code that refuses it. A task of measure 5 is checked against its +/// catalogue this way (impression-aggregates §8.1). +pub fn verify_with(bytes: &[u8], reports: Option<&[GivenReport]>, task: &dyn Fn(&[u8]) -> Result) -> Result { + let at = |place: &'static str| move |r: Reason| (r.code(), place); // 1. The receipt reads. - let rc = Receipt::decode(bytes).map_err(|r| (r, "receipt"))?; + let rc = Receipt::decode(bytes).map_err(at("receipt"))?; // 2. The task meets §4.3. - let cfg = TaskConfig::decode(&rc.task).map_err(|_| (Reason::TaskInvalid, "task"))?; - let task = Task::new(cfg).map_err(|r| (r, "task"))?; + let task = task(&rc.task).map_err(|r| (r, "task"))?; // 3. The collector signed the receipt. if rc.signer != task.info.collector { - return Err((Reason::WrongSigner, "receipt")); + return Err((Reason::WrongSigner.code(), "receipt")); } - verify_sig(&rc.signer, RECEIPT_DOMAIN, &rc.body(), &rc.sig).map_err(|r| (r, "receipt"))?; + verify_sig(&rc.signer, RECEIPT_DOMAIN, &rc.body(), &rc.sig).map_err(at("receipt"))?; // 4. The collection job reads and is one this extension collects. - let coll = CollectionJobReq::decode(&rc.collection).map_err(|_| (Reason::CollectionInvalid, "collection"))?; - let query = coll.interval().map_err(|_| (Reason::CollectionInvalid, "collection"))?; + let coll = CollectionJobReq::decode(&rc.collection).map_err(|_| (Reason::CollectionInvalid.code(), "collection"))?; + let query = coll.interval().map_err(|_| (Reason::CollectionInvalid.code(), "collection"))?; if coll.batch_mode != BATCH_TIME_INTERVAL || query.duration == 0 || query.end().is_none() || !coll.agg_param.is_empty() || !coll.extensions.is_empty() { - return Err((Reason::CollectionInvalid, "collection")); + return Err((Reason::CollectionInvalid.code(), "collection")); } // 5. Two statements, by the task's two aggregators. if rc.helper.is_empty() || rc.leader.is_empty() { - return Err((Reason::AggregatorAlone, "statements")); + return Err((Reason::AggregatorAlone.code(), "statements")); } - let l = Statement::decode(&rc.leader).map_err(|r| (r, "leader"))?; - let h = Statement::decode(&rc.helper).map_err(|r| (r, "helper"))?; + let l = Statement::decode(&rc.leader).map_err(at("leader"))?; + let h = Statement::decode(&rc.helper).map_err(at("helper"))?; if l.signer == h.signer || l.role == h.role { - return Err((Reason::AggregatorAlone, "statements")); + return Err((Reason::AggregatorAlone.code(), "statements")); } for (s, want_role, want_key, at) in [(&l, ROLE_LEADER, task.info.leader, "leader"), (&h, ROLE_HELPER, task.info.helper, "helper")] { if s.role != want_role || s.signer != want_key { - return Err((Reason::WrongSigner, at)); + return Err((Reason::WrongSigner.code(), at)); } - verify_sig(&s.signer, STATEMENT_DOMAIN, &s.body(), &s.sig).map_err(|r| (r, at))?; + verify_sig(&s.signer, STATEMENT_DOMAIN, &s.body(), &s.sig).map_err(|r| (r.code(), at))?; } // 6. Both statements are about this task and this collection. let coll_digest = sha256(&[&rc.collection]); for (s, at) in [(&l, "leader"), (&h, "helper")] { if s.task_id != task.id || s.collection != coll_digest { - return Err((Reason::TaskMismatch, at)); + return Err((Reason::TaskMismatch.code(), at)); } } // 7. The batch is within the query, and the reports' interval within the batch. for (s, at) in [(&l, "leader"), (&h, "helper")] { if s.batch.duration == 0 || !s.batch.within(&query) { - return Err((Reason::BatchInvalid, at)); + return Err((Reason::BatchInvalid.code(), at)); } } if !rc.interval.within(&l.batch) || rc.interval.duration == 0 { - return Err((Reason::BatchInvalid, "interval")); + return Err((Reason::BatchInvalid.code(), "interval")); } // 8. The statements agree. if l.batch != h.batch || l.report_count != h.report_count || l.checksum != h.checksum { - return Err((Reason::StatementsDisagree, "statements")); + return Err((Reason::StatementsDisagree.code(), "statements")); } // 9. The batch is at least the task's minimum. if l.report_count < task.config.min_batch_size { - return Err((Reason::BatchTooSmall, "statements")); + return Err((Reason::BatchTooSmall.code(), "statements")); } // 10. The result is the shares', unsharded. for (s, at) in [(&l, "leader"), (&h, "helper")] { if !task.vdaf.is_agg_share(&s.agg_share) { - return Err((Reason::ShareInvalid, at)); + return Err((Reason::ShareInvalid.code(), at)); } } - let result = task.vdaf.unshard(&[l.agg_share.clone(), h.agg_share.clone()]).map_err(|_| (Reason::ShareInvalid, "helper"))?; + let result = task.vdaf.unshard(&[l.agg_share.clone(), h.agg_share.clone()]).map_err(|_| (Reason::ShareInvalid.code(), "helper"))?; if result != rc.result { - return Err((Reason::ResultMismatch, "result")); + return Err((Reason::ResultMismatch.code(), "result")); } // 11. The batch's reports, where given. if let Some(reps) = reports { @@ -297,12 +304,12 @@ pub fn verify(bytes: &[u8], reports: Option<&[GivenReport]>) -> Result &'static str { + match self { + Outcome::OnTime => "on_time", + Outcome::Replaced => "replaced", + Outcome::AfterDeadline => "after_deadline", + Outcome::NotShown => "not_shown", + Outcome::NoSource => "no_source", + } + } +} + +/// A held-at statement (timeliness §2): a key's signed word that it held object `index` of the +/// group whose link hash is `group` no later than `instant_ms`. The family's one form: each +/// kind of signed record that gives one states it here. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct HeldAt { + pub key: [u8; 32], + pub group: [u8; 32], + pub index: u64, + /// The latest instant the signed word allows, in milliseconds, rounded up where the word is + /// finer. + pub instant_ms: u64, + /// The whole seconds of the time the word states, any fraction dropped. + pub seconds: u64, +} + +/// Whether a held-at statement is before its group (timeliness §2): its whole seconds below the +/// seconds read from the group's `group_start`. Such a statement is refused `held_before_group`. +pub fn before_group(h: &HeldAt, group_start_s: i64) -> bool { + seconds_before(h.seconds, group_start_s) +} + +fn seconds_before(seconds: u64, group_start_s: i64) -> bool { + i64::try_from(seconds).is_ok_and(|s| s < group_start_s) +} + +/// §6.2 step 5: the held-at statements of the records that stand, for the objects asked about, +/// each a group's link hash and a position — one for each record that holds each (holdings +/// §5.4), at the record's `as_of_ms`. Asking by object keeps the work to records times objects +/// whatever a record's leaf counts. +pub fn held_from_records(standing: &[&Holdings], objects: &[([u8; 32], u64)]) -> Vec { + let mut out = Vec::new(); + for h in standing { + for (group, index) in objects { + if holdings::holds(h, group, *index).is_ok() { + out.push(HeldAt { key: h.holder, group: *group, index: *index, instant_ms: h.as_of_ms, seconds: h.as_of_ms / 1000 }); + } + } + } + out +} + +/// One holder's line for an intent (§6.3). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Line { + pub holder: [u8; 32], + /// *p*: the least instant of the holder's held-at statements for the primary. + pub held_ms: Option, + /// *f*: the least for the fallback. + pub fallback_ms: Option, + pub outcome: Outcome, + pub value_ppm: u64, +} + +/// §6.3: the lines of the entry of an intent of the group whose link hash is `group`, one for +/// each of `holders` in increasing order of key bytes, from held-at statements of any kind. +pub(crate) fn lines(group: &[u8; 32], entry: &TimelinessEntry, holders: &BTreeSet<[u8; 32]>, held: &[HeldAt]) -> Vec { + let least = |key: &[u8; 32], g: &[u8; 32], i: u64| { + held.iter().filter(|h| h.key == *key && h.group == *g && h.index == i).map(|h| h.instant_ms).min() + }; + holders + .iter() + .map(|key| { + let p = least(key, group, entry.leaf_index); + let f = entry.fallback.as_ref().and_then(|fb| least(key, &fb.group, fb.leaf_index)); + let (outcome, value_ppm) = match (p, f, &entry.fallback) { + (Some(p), _, _) if p <= entry.by_ms => (Outcome::OnTime, FULL_PPM), + (_, Some(f), Some(fb)) if f <= entry.by_ms => (Outcome::Replaced, fb.value_ppm), + (Some(p), _, _) => (Outcome::AfterDeadline, entry.value_at(p)), + _ => (Outcome::NotShown, 0), + }; + Line { holder: *key, held_ms: p, fallback_ms: f, outcome, value_ppm } + }) + .collect() +} + +/// A group receipt given, in its JSON form (jwp-receipts §2.4.1), with the objects held under +/// it. +#[derive(Clone, Debug, Default)] +pub struct GroupInput { + pub group: Value, + pub objects: Vec, +} + +/// A statement offered (§6.4): object `index` of the group whose link hash is `group`, for a +/// holder. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Statement { + pub group: [u8; 32], + pub index: u64, + pub holder: [u8; 32], +} + +/// The inputs of §6.1. +#[derive(Clone, Debug, Default)] +pub struct Inputs { + /// The groups given, in the verifier's order: a claim about none of them is checked against + /// the first. + pub groups: Vec, + /// The claims, each signer's in the order of its chain. + pub claims: Vec, + /// The holdings records, as bytes. + pub records: Vec>, + pub statement: Option, +} + +/// What became of one claim (§6.2 step 2; §7.2). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum ClaimVerdict { + /// Refused at a step of jwp-receipts §3.1. + Refused(Rejection), + /// A timeliness claim accepted. + Accepted, + /// A transmission claim that stands (a plan's). + Declared, + /// A schedule that stands (a plan's). + Stands, + /// A declaration or a schedule accepted and set aside for the reason given (a plan's). + SetAside(&'static str), +} + +impl ClaimVerdict { + pub fn label(&self) -> String { + match self { + ClaimVerdict::Refused(r) => format!("reject step={} reason={}", r.step, r.reason.label()), + ClaimVerdict::Accepted => "accepted".into(), + ClaimVerdict::Declared => "declared".into(), + ClaimVerdict::Stands => "stands".into(), + ClaimVerdict::SetAside(r) => format!("set-aside reason={r}"), + } + } +} + +/// The entries of the accepted claims for one object (§6.2 step 3). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Intent { + pub group: [u8; 32], + pub leaf_index: u64, + /// The entry that stands, or why none does (`timeliness_contradicted`). + pub standing: Result, + /// §6.3; none for an intent set aside, and none in a plan. + pub lines: Vec, +} + +/// §6's verdict. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Verdict { + /// Each group's objects: `delivered-verified`, `inclusion-verified`, or `reject reason=…`. + pub objects: Vec>, + pub claims: Vec, + pub records: Vec, + /// By the order of the groups given, then of `leaf_index`. + pub intents: Vec, + /// §6.4: the outcome and value, or why no intent answers it. + pub statement: Option>, +} + +/// Why no verdict or plan was derived: a group fails jwp-receipts §3 steps 1–2, or an input of +/// §7.1 is out of range. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Refusal { + Group(DeliveryError), + Input(&'static str), +} + +impl Refusal { + pub fn label(&self) -> &'static str { + match self { + Refusal::Group(e) => e.reason.label(), + Refusal::Input(r) => r, + } + } +} + +/// §6.2 steps 1 to 4, the same for a verdict and a plan. +struct Judged { + groups: Vec, + objects: Vec>, + claims: Vec, + accepted: Vec>, + intents: Vec, + records: Vec, + /// Every record step 4 did not refuse, by its position: the records that stand and those + /// set aside. + read: BTreeMap, +} + +fn judge(groups: &[GroupInput], claims: &[String], records: &[Vec], plan: bool) -> Result { + // Step 1: the groups, and their objects as bearer-receipts §6.2 step 2 checks them. + let mut gs: Vec = Vec::with_capacity(groups.len()); + let mut receipts: Vec>)>> = Vec::with_capacity(groups.len()); + let mut objects: Vec> = Vec::with_capacity(groups.len()); + for gi in groups { + let group = GroupReceipt::from_json(&gi.group).map_err(Refusal::Group)?; + group.verify().map_err(Refusal::Group)?; + let mut held = Vec::new(); + let labels = gi + .objects + .iter() + .map(|o| { + let r = match ObjectReceipt::from_json(&o.receipt) { + Ok(r) => r, + Err(e) => return format!("reject reason={}", e.reason.label()), + }; + let v = r.verify_against(&group, o.envelope.as_deref()); + held.push((r, o.envelope.clone())); + match v { + Ok(ev) => ev.label().to_owned(), + Err(e) => format!("reject reason={}", e.reason.label()), + } + }) + .collect(); + gs.push(group); + receipts.push(held); + objects.push(labels); + } + let held: Vec> = gs + .iter() + .zip(&receipts) + .map(|(g, rs)| HeldGroup { group: g, objects: rs.iter().map(|(r, b)| (r, b.as_deref())).collect() }) + .collect(); + + // Step 2: each claim against the group its subject names, or the first. + let mut chain: BTreeMap<[u8; 32], ClaimReceipt> = BTreeMap::new(); + let mut verdicts: Vec = Vec::with_capacity(claims.len()); + let mut accepted: Vec> = Vec::with_capacity(claims.len()); + for wire in claims { + let checked = (|| { + let c = ClaimReceipt::from_json(wire)?; + c.verify()?; + let previous = chain.insert(c.signer_pubkey, c.clone()); + c.check_parent(previous.as_ref())?; + let at = gs.iter().position(|g| g.link_hash() == c.subject).or((!gs.is_empty()).then_some(0)); + let refuse = |reason| Err(Rejection { step: 6, reason }); + match (&c.body, at) { + (ClaimBody::Timeliness(_), Some(i)) => c.check_timeliness_against(&gs[i], &held)?, + (ClaimBody::Timeliness(_), None) => return refuse(ClaimReason::TimelinessSubjectMismatch), + (ClaimBody::Transmission(_), Some(i)) if plan => c.check_transmission_against(&gs[i])?, + (ClaimBody::Schedule(_), Some(i)) if plan => c.check_schedule_against(&gs[i], &held[i].objects)?, + _ => return refuse(ClaimReason::ContextMismatch), + } + Ok(c) + })(); + match checked { + Ok(c) => { + verdicts.push(match &c.body { + ClaimBody::Transmission(_) => ClaimVerdict::Declared, + ClaimBody::Schedule(_) => ClaimVerdict::Stands, + _ => ClaimVerdict::Accepted, + }); + accepted.push(Some(c)); + } + Err(r) => { + verdicts.push(ClaimVerdict::Refused(r)); + accepted.push(None); + } + } + } + + // Step 3: the intents, by group and position. + let mut stated: BTreeMap<(usize, u64), Vec<&TimelinessEntry>> = BTreeMap::new(); + for c in accepted.iter().flatten() { + let Some(t) = c.timeliness() else { continue }; + let gi = gs.iter().position(|g| g.link_hash() == c.subject).expect("an accepted statement names a group given"); + for e in &t.objects { + stated.entry((gi, e.leaf_index)).or_default().push(e); + } + } + let intents: Vec = stated + .into_iter() + .map(|((gi, leaf_index), es)| Intent { + group: gs[gi].link_hash(), + leaf_index, + standing: if es.iter().all(|e| *e == es[0]) { Ok(es[0].clone()) } else { Err(CONTRADICTED) }, + lines: Vec::new(), + }) + .collect(); + + // Step 4: the records, each refused whole where it misstates a group given. + let given: BTreeMap<[u8; 32], (u64, Option)> = gs + .iter() + .map(|g| (g.link_hash(), (g.leaf_count, crate::claim_receipt::rfc3339_seconds(&g.group_start)))) + .collect(); + let mut out: Vec = Vec::with_capacity(records.len()); + let mut read: BTreeMap = BTreeMap::new(); + for (k, bytes) in records.iter().enumerate() { + let v = Holdings::read(bytes).and_then(|h| { + if h.entries.iter().any(|e| given.get(&e.group).is_some_and(|&(n, _)| n != e.leaf_count)) { + return Err(holdings::LEAF_COUNT_MISMATCH); + } + let start = |e: &holdings::Entry| given.get(&e.group).and_then(|&(_, s)| s); + if h.entries.iter().any(|e| start(e).is_some_and(|s| seconds_before(h.as_of_ms / 1000, s))) { + return Err(HELD_BEFORE_GROUP); + } + Ok(h) + }); + match v { + Ok(h) => { + read.insert(k, h); + out.push(RecordVerdict::Stands); + } + Err(r) => out.push(RecordVerdict::Refused(r)), + } + } + let mut at_instant: BTreeMap<([u8; 32], u64), Vec> = BTreeMap::new(); + for (k, h) in &read { + at_instant.entry((h.holder, h.as_of_ms)).or_default().push(*k); + } + for ks in at_instant.values() { + if ks.iter().any(|k| read[k].digest() != read[&ks[0]].digest()) { + for k in ks { + out[*k] = RecordVerdict::SetAside(holdings::CONTRADICTED); + } + } + } + Ok(Judged { groups: gs, objects, claims: verdicts, accepted, intents, records: out, read }) +} + +/// §6.2: the verdict. +pub fn verdict(inp: &Inputs) -> Result { + let mut j = judge(&inp.groups, &inp.claims, &inp.records, false)?; + // Step 5: the held-at statements of the records that stand, for the objects the intents + // name. + let standing: Vec<&Holdings> = + j.read.iter().filter(|(k, _)| j.records[**k] == RecordVerdict::Stands).map(|(_, h)| h).collect(); + let mut asked: Vec<([u8; 32], u64)> = Vec::new(); + for i in &j.intents { + if let Ok(e) = &i.standing { + asked.push((i.group, i.leaf_index)); + if let Some(f) = &e.fallback { + asked.push((f.group, f.leaf_index)); + } + } + } + let held = held_from_records(&standing, &asked); + // Step 6: the lines, for each holder with a record that stands and an entry for the intent's + // group or its fallback's. + for i in &mut j.intents { + let Ok(e) = &i.standing else { continue }; + let groups: Vec<[u8; 32]> = std::iter::once(i.group).chain(e.fallback.map(|f| f.group)).collect(); + let holders: BTreeSet<[u8; 32]> = + standing.iter().filter(|h| groups.iter().any(|g| h.entry(g).is_some())).map(|h| h.holder).collect(); + i.lines = lines(&i.group, e, &holders, &held); + } + // §6.4. + let statement = inp.statement.map(|s| -> Result<(Outcome, u64), &'static str> { + let intent = j.intents.iter().find(|i| i.group == s.group && i.leaf_index == s.index && i.standing.is_ok()); + let intent = intent.ok_or(DEADLINE_NOT_STATED)?; + Ok(intent.lines.iter().find(|l| l.holder == s.holder).map_or((Outcome::NotShown, 0), |l| (l.outcome, l.value_ppm))) + }); + Ok(Verdict { objects: j.objects, claims: j.claims, records: j.records, intents: j.intents, statement }) +} + +/// The instant a plan is made from (§7.1). +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum At { + /// One instant *t* for every object. + Instant(u64), + /// Each object from its own entry's `from_ms`. + FromMs, +} + +/// One of an asker's sources (§7.1). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Source { + /// A bearer instance, by its `bearer_id`. + Bearer(String), + /// A holder, by its key, with the asker's estimate of a fetch from it. + Holder { key: [u8; 32], fetch_ms: u64 }, + /// The origin, with the asker's estimate of a fetch from it. + Origin { fetch_ms: u64 }, +} + +/// §7.1: the sources, each a JSON object of `kind` `bearer` with `bearer_id`, `holder` with +/// `holder` and `fetch_ms`, or `origin` with `fetch_ms`, and no other member; `loss` whether *L* +/// and *h* are given. +pub fn sources(v: &[Value], loss: bool) -> Result, &'static str> { + if v.is_empty() { + return Err(SOURCES_INVALID); + } + let mut out: Vec = Vec::with_capacity(v.len()); + for s in v { + let m = s.as_object().ok_or(SOURCES_INVALID)?; + let exactly = |want: &[&str]| m.len() == want.len() && want.iter().all(|k| m.contains_key(*k)); + let fetch = || m["fetch_ms"].as_u64().filter(|n| (1..=MAX_FETCH_MS).contains(n)).ok_or(SOURCES_INVALID); + let source = match m.get("kind").and_then(Value::as_str) { + Some("bearer") if exactly(&["kind", "bearer_id"]) => { + let id = m["bearer_id"].as_str().ok_or(SOURCES_INVALID)?; + crate::claim_receipt::uri_ok(id).map_err(|_| SOURCES_INVALID)?; + Source::Bearer(id.to_owned()) + } + Some("holder") if exactly(&["kind", "holder", "fetch_ms"]) => { + let key = m["holder"].as_str().filter(|k| k.len() == 64).and_then(crate::claim_receipt::unhex); + let key: [u8; 32] = key.and_then(|k| k.try_into().ok()).ok_or(SOURCES_INVALID)?; + Source::Holder { key, fetch_ms: fetch()? } + } + Some("origin") if exactly(&["kind", "fetch_ms"]) => Source::Origin { fetch_ms: fetch()? }, + _ => return Err(SOURCES_INVALID), + }; + let twice = out.iter().any(|o| match (o, &source) { + (Source::Bearer(a), Source::Bearer(b)) => a == b, + (Source::Holder { key: a, .. }, Source::Holder { key: b, .. }) => a == b, + (Source::Origin { .. }, Source::Origin { .. }) => true, + _ => false, + }); + if twice { + return Err(SOURCES_INVALID); + } + out.push(source); + } + if !loss && out.iter().any(|s| matches!(s, Source::Bearer(_))) { + return Err(SOURCES_INVALID); + } + Ok(out) +} + +/// The inputs of §7.1. +#[derive(Clone, Debug)] +pub struct PlanInputs { + pub groups: Vec, + /// The timeliness, transmission and schedule claims, each signer's in the order of its + /// chain. + pub claims: Vec, + pub records: Vec>, + /// *L* and *h*, given together or not at all. + pub loss: Option<(u64, u64)>, + pub at: At, + /// The asker's sources in its order, as [`sources`] reads them. + pub sources: Vec, + /// The wanted objects: a group's link hash and a position. + pub wanted: Vec<([u8; 32], u64)>, +} + +/// Which object a choice takes. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Which { + Primary, + Fallback, +} + +impl Which { + pub fn label(self) -> &'static str { + match self { + Which::Primary => "primary", + Which::Fallback => "fallback", + } + } +} + +/// §7.3 for one wanted object. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Choice { + pub outcome: Outcome, + pub object: Option, + /// The source's index in the asker's list. + pub source: Option, + pub arrival_ms: Option, + pub value_ppm: u64, +} + +/// §7's plan. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct PlanVerdict { + pub claims: Vec, + pub records: Vec, + /// Each wanted object's choice, or why it has none (`deadline_not_stated`). + pub choices: Vec>, +} + +/// Holdings §5.1 and §5.3 at `s` over the records §6.2 step 4 did not refuse: the record of +/// `key` that stands at `s`, if one does. +fn record_at<'a>(read: &'a BTreeMap, key: &[u8; 32], s: u64) -> Option<&'a Holdings> { + let live: Vec<&Holdings> = read.values().filter(|h| h.holder == *key && h.as_of_ms <= s && s < h.expires_ms).collect(); + let latest = live.iter().map(|h| h.as_of_ms).max()?; + let at: Vec<&Holdings> = live.into_iter().filter(|h| h.as_of_ms == latest).collect(); + at.iter().all(|h| h.digest() == at[0].digest()).then_some(at[0]) +} + +/// §7. +pub fn plan(inp: &PlanInputs) -> Result { + if let Some((l, h)) = inp.loss { + if l > MAX_LOSS_PPM { + return Err(Refusal::Input(LOSS_BOUND_INVALID)); + } + if h > 2 { + return Err(Refusal::Input(OVERHEAD_INVALID)); + } + } + if let At::Instant(t) = inp.at + && t > LAST_INSTANT_MS + { + return Err(Refusal::Input(INSTANT_INVALID)); + } + let sources = sources(&inp.sources, inp.loss.is_some()).map_err(Refusal::Input)?; + let j = judge(&inp.groups, &inp.claims, &inp.records, true)?; + + // §7.2: the declarations and schedules of each group given (bearer-receipts §6.2 step 4; + // carousel §6.2 step 4). + let mut claims = j.claims.clone(); + let mut schedules: BTreeMap<[u8; 32], BTreeMap> = BTreeMap::new(); + for g in &j.groups { + let link = g.link_hash(); + if schedules.contains_key(&link) { + continue; + } + let of_group: Vec> = j + .accepted + .iter() + .map(|c| c.as_ref().filter(|c| c.subject == link && (c.transmission().is_some() || c.schedule().is_some())).cloned()) + .collect(); + let (aside, standing) = crate::carousel::standing(&of_group); + for (i, reason) in aside { + claims[i] = ClaimVerdict::SetAside(reason); + } + schedules.insert(link, standing); + } + + let arrival = |source: &Source, group: &[u8; 32], index: u64, s: u64| -> Option { + match source { + Source::Bearer(id) => { + let &c = schedules.get(group)?.get(id)?; + let e = j.accepted[c].as_ref()?.schedule()?.entry(index)?; + let (l, h) = inp.loss?; + let blocks: u64 = e.oti.blocks().iter().map(|b| b.blocks).sum(); + crate::carousel::plan(e, s, l, h, &vec![0; blocks as usize]).ok()?.complete_ms + } + Source::Holder { key, fetch_ms } => { + let r = record_at(&j.read, key, s)?; + holdings::holds(r, group, index).ok()?; + Some(s + fetch_ms) + } + Source::Origin { fetch_ms } => Some(s + fetch_ms), + } + }; + + // §7.3. + let mut choices = Vec::with_capacity(inp.wanted.len()); + for (group, index) in &inp.wanted { + let intent = j.intents.iter().find(|i| i.group == *group && i.leaf_index == *index); + let Some(Ok(e)) = intent.map(|i| &i.standing) else { + choices.push(Err(DEADLINE_NOT_STATED)); + continue; + }; + let s = match inp.at { + At::Instant(t) => t, + At::FromMs => e.from_ms, + }; + let primary: Vec> = sources.iter().map(|src| arrival(src, group, *index, s)).collect(); + let take = |outcome, object, source: usize, arrival: u64, value_ppm| Choice { + outcome, + object: Some(object), + source: Some(source), + arrival_ms: Some(arrival), + value_ppm, + }; + if let Some(k) = primary.iter().position(|a| a.is_some_and(|a| a <= e.by_ms)) { + choices.push(Ok(take(Outcome::OnTime, Which::Primary, k, primary[k].expect("an arrival"), FULL_PPM))); + continue; + } + let best = primary.iter().flatten().map(|&a| e.value_at(a)).max().unwrap_or(0); + if let Some(f) = &e.fallback + && f.value_ppm >= best + { + let fallback: Vec> = sources.iter().map(|src| arrival(src, &f.group, f.leaf_index, s)).collect(); + if let Some(k) = fallback.iter().position(|a| a.is_some_and(|a| a <= e.by_ms)) { + choices.push(Ok(take(Outcome::Replaced, Which::Fallback, k, fallback[k].expect("an arrival"), f.value_ppm))); + continue; + } + } + if best >= 1 { + let k = primary.iter().position(|a| a.is_some_and(|a| e.value_at(a) == best)).expect("the best value's source"); + choices.push(Ok(take(Outcome::AfterDeadline, Which::Primary, k, primary[k].expect("an arrival"), best))); + continue; + } + choices.push(Ok(Choice { outcome: Outcome::NoSource, object: None, source: None, arrival_ms: None, value_ppm: 0 })); + } + Ok(PlanVerdict { claims, records: j.records, choices }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::claim_receipt::DecayPoint; + + const D: u64 = 1_793_664_060_000; + + fn entry(fallback: Option) -> TimelinessEntry { + TimelinessEntry { + leaf_index: 0, + content_hash: [1; 32], + from_ms: D - 60_000, + by_ms: D, + decay: vec![DecayPoint { at_ms: D + 2_000, value_ppm: 600_000 }, DecayPoint { at_ms: D + 10_000, value_ppm: 0 }], + fallback, + } + } + + fn at(key: u8, group: [u8; 32], index: u64, instant_ms: u64) -> HeldAt { + HeldAt { key: [key; 32], group, index, instant_ms, seconds: instant_ms / 1000 } + } + + #[test] + fn a_line_grades_what_was_held_at_the_deadline() { + let (g, f) = ([7; 32], [8; 32]); + let e = entry(Some(crate::claim_receipt::Fallback { group: f, leaf_index: 0, content_hash: [2; 32], value_ppm: 400_000 })); + let holders: BTreeSet<[u8; 32]> = [[1; 32], [2; 32], [3; 32], [4; 32], [5; 32]].into_iter().collect(); + let held = [ + // 1: on time, its later statement ignored. + at(1, g, 0, D + 5_000), + at(1, g, 0, D), + // 2: a fallback by the deadline before a late primary of higher value. + at(2, g, 0, D + 1_000), + at(2, f, 0, D), + // 3: a fallback after the deadline: the late primary's value. + at(3, f, 0, D + 1), + at(3, g, 0, D + 2_000), + // 4: a fallback after the deadline alone. + at(4, f, 0, D + 1), + // 5 holds nothing of either. + at(5, g, 1, D), + ]; + let got: Vec<(Outcome, u64)> = lines(&g, &e, &holders, &held).iter().map(|l| (l.outcome, l.value_ppm)).collect(); + assert_eq!( + got, + vec![ + (Outcome::OnTime, 1_000_000), + (Outcome::Replaced, 400_000), + (Outcome::AfterDeadline, 600_000), + (Outcome::NotShown, 0), + (Outcome::NotShown, 0), + ] + ); + } + + #[test] + fn a_held_at_statement_before_its_group_is_by_whole_seconds() { + let start = 1_793_664_000; + assert!(!before_group(&at(1, [0; 32], 0, 1_793_664_000_000), start), "the group's own second"); + assert!(!before_group(&at(1, [0; 32], 0, 1_793_664_000_999), start)); + assert!(before_group(&at(1, [0; 32], 0, 1_793_663_999_999), start), "a millisecond before it"); + } + + #[test] + fn sources_are_held_to_section_7_1() { + let key = "ab".repeat(32); + let ok = |v: Value, loss: bool| sources(v.as_array().expect("a list"), loss); + let good = serde_json::json!([ + {"kind": "bearer", "bearer_id": "urn:example:bearer:b1"}, + {"kind": "holder", "holder": key, "fetch_ms": 100}, + {"kind": "origin", "fetch_ms": MAX_FETCH_MS}, + ]); + assert_eq!(ok(good.clone(), true).map(|s| s.len()), Ok(3)); + assert_eq!(ok(good, false), Err(SOURCES_INVALID), "a bearer without L and h"); + for bad in [ + serde_json::json!([]), + serde_json::json!([{"kind": "origin", "fetch_ms": 0}]), + serde_json::json!([{"kind": "origin", "fetch_ms": MAX_FETCH_MS + 1}]), + serde_json::json!([{"kind": "origin"}]), + serde_json::json!([{"kind": "origin", "fetch_ms": 1, "note": 1}]), + serde_json::json!([{"kind": "origin", "fetch_ms": 1}, {"kind": "origin", "fetch_ms": 2}]), + serde_json::json!([{"kind": "holder", "holder": key.to_uppercase(), "fetch_ms": 1}]), + serde_json::json!([{"kind": "holder", "holder": key, "fetch_ms": 1}, {"kind": "holder", "holder": key, "fetch_ms": 2}]), + serde_json::json!([{"kind": "bearer", "bearer_id": "b1"}]), + serde_json::json!([{"kind": "peer", "fetch_ms": 1}]), + ] { + assert_eq!(ok(bad.clone(), true), Err(SOURCES_INVALID), "{bad}"); + } + } +} diff --git a/wai/wai-rs/src/timeliness/corpus.rs b/wai/wai-rs/src/timeliness/corpus.rs new file mode 100644 index 000000000..3ba734a02 --- /dev/null +++ b/wai/wai-rs/src/timeliness/corpus.rs @@ -0,0 +1,1523 @@ +//! The conformance corpus of extensions/timeliness.md §10: `live-conformance/timeliness/`. +//! +//! [`generate`] writes `vectors.json` from fixed seeds: every key is an Ed25519 key from a fixed +//! 32-byte seed, every instant a constant, every envelope is written here to an exact length, and +//! Ed25519 signing is deterministic (RFC 8032), so the file is the same bytes on every machine. +//! Each case states the outcome it was written to have, declared here and never copied from +//! [`super::verdict`] or [`super::plan`]: every value is written out from the arithmetic of §5.1, +//! and every arrival from the passes of the corpus's schedules by hand. [`verify`] requires the +//! module to reach every outcome, and the corpus to give every reason of §9 and every outcome of +//! §6.3. `live-conformance/timeliness_verify.py` checks the same file from the extension's text, +//! sharing no code with this module. + +use super::*; +use crate::claim_receipt::bearer::ATTESTS_TRANSMITTED; +use crate::claim_receipt::schedule::ATTESTS_SCHEDULED; +use crate::claim_receipt::timeliness::ATTESTS_VALUED; +use crate::claim_receipt::{ + hex, unhex, Bearer, DecayPoint, Esi, Fallback, Oti, ScheduleClaim, ScheduleEntry, SubjectType, TimelinessClaim, TransmissionClaim, +}; +use crate::container::{Conditioning, DerivedFrom, Manifest, ModelRequirement, Prev, Refines, Rendition, Wai, WaiMulti}; +use crate::holdings::Entry; +use crate::jwp_delivery::GroupBuilder; +use ed25519_dalek::SigningKey; +use serde_json::{json, Map}; + +const PUBLISHER: u8 = 0x11; +const PUBLISHER_OTHER: u8 = 0x12; +const HOLDER_A: u8 = 0x51; +const HOLDER_B: u8 = 0x52; +const HOLDER_C: u8 = 0x53; + +const D1: &str = "did:web:publisher.example#d1"; +const D2: &str = "did:web:publisher.example#d2"; +/// Half a second into the groups' first second, so a statement in that second is not before +/// them. +const GROUP_START: &str = "2026-11-03T00:00:00.500Z"; +const GROUP_END: &str = "2026-11-03T00:01:00Z"; +const SENT: &str = "2026-11-03T00:00:01Z"; +/// 2026-11-03T00:00:00Z. +const T0: u64 = 1_793_664_000_000; +/// The deadline of every entry of G. +const D: u64 = T0 + 60_000; +/// 9999-12-31T23:59:59.999Z. +const LAST: u64 = LAST_INSTANT_MS; +const HOUR: u64 = 3_600_000; +const B1: &str = "urn:example:bearer:b1"; +const B2: &str = "urn:example:bearer:b2"; +const B3: &str = "urn:example:bearer:b3"; +/// Every envelope a schedule names is this long: eight RaptorQ source symbols of 128 octets. +const LENGTH: u64 = 1_024; +/// The opaque test capability of the bases and floors. +const CAP: &str = "wai.text.zstd"; +/// The plans' loss bound and overhead: 5 of each pass's 10 symbols may be lost, and 12 are +/// needed, so a receiver holds an object after three passes. +const LOSS: u64 = 500_000; +const OVERHEAD: u64 = 2; + +fn key(seed: u8) -> SigningKey { + SigningKey::from_bytes(&[seed; 32]) +} + +fn pk(seed: u8) -> [u8; 32] { + key(seed).verifying_key().to_bytes() +} + +/// A `WAI1` envelope of exactly [`LENGTH`] octets under `manifest`, its payload a fixed pattern +/// no case decodes. +fn sized(manifest: Manifest, seed: u64) -> Vec { + let make = |n: usize| { + let payload: Vec = (0..n).map(|j| (j as u64 * 131 + seed * 17 + 7) as u8).collect(); + Wai::new(manifest.clone(), payload).to_bytes().expect("a small envelope writes") + }; + let e = make(LENGTH as usize - make(0).len()); + assert_eq!(e.len() as u64, LENGTH); + e +} + +fn base_manifest() -> Manifest { + Manifest::new("binary", "improve", ModelRequirement::new(CAP), Conditioning::new("bytes")) +} + +/// A floor object: a rendition derived from `motif`, as packaging §7.2 writes one. +fn floor(motif: &[u8; 32], seed: u64) -> Vec { + let settings = blake3::hash(&[DerivedFrom::SETTINGS_DOMAIN, b"{}"].concat()); + let d = DerivedFrom { motif: hex(motif), motif_capability: CAP.into(), renderer: "floor".into(), settings: hex(settings.as_bytes()) }; + sized(base_manifest().with_derived_from(&d), seed) +} + +/// A group and its objects: (envelope, receipt). +struct Publication { + group: GroupReceipt, + objects: Vec<(Vec, ObjectReceipt)>, +} + +impl Publication { + fn link(&self) -> [u8; 32] { + self.group.link_hash() + } + fn hash(&self, i: usize) -> [u8; 32] { + self.objects[i].1.content_hash + } + /// The group with every object receipt, and the envelopes of the positions in `bytes`. + fn with(&self, bytes: &[usize]) -> GroupInput { + let objects = self + .objects + .iter() + .enumerate() + .map(|(i, (e, r))| HeldObject { receipt: r.to_json(), envelope: bytes.contains(&i).then(|| e.clone()) }) + .collect(); + GroupInput { group: self.group.to_json(), objects } + } + /// The group with its object receipts and no envelope. + fn receipts(&self) -> GroupInput { + self.with(&[]) + } + /// The group with every envelope. + fn whole(&self) -> GroupInput { + self.with(&(0..self.objects.len()).collect::>()) + } +} + +fn publish(track: u64, envelopes: Vec>) -> Publication { + let mut b = GroupBuilder::default(); + for e in &envelopes { + b.add(crate::jwp_hash::content_hash(e), 0, "", None); + } + let (group, receipts) = + b.finish(&key(PUBLISHER), D1, track, 1, GROUP_START, GROUP_END, None, false).expect("the corpus's objects compose"); + Publication { group, objects: envelopes.into_iter().zip(receipts).collect() } +} + +/// The groups, all the publisher's: G, three bases and a layer; F, a floor of each of G's +/// objects; F′, F with object 2's floor derived from G's object 1; H, a stranger of two objects, +/// the second a `WAI2`. +struct Groups { + g: Publication, + f: Publication, + f_other: Publication, + h: Publication, +} + +fn groups() -> Groups { + let bases: Vec> = (0..3).map(|i| sized(base_manifest(), i)).collect(); + let hashes: Vec<[u8; 32]> = bases.iter().map(|e| crate::jwp_hash::content_hash(e.as_slice())).collect(); + let refines = Refines { base: hex(&hashes[0]), prev: Prev::One(hex(&hashes[0])), layer: 1, span: None }; + let layer = sized( + Manifest::new("binary", "improve", ModelRequirement::new(crate::codecs::CAP_IMAGE_INT_REFINE), Conditioning::new("bytes")) + .with_refines(&refines), + 3, + ); + let mut g_envelopes = bases; + g_envelopes.push(layer); + let g = publish(1, g_envelopes); + let f = publish(2, (0..4).map(|i| floor(&g.hash(i), 10 + i as u64)).collect()); + let f_other = publish(3, (0..4).map(|i| floor(&g.hash(if i == 2 { 1 } else { i }), 10 + i as u64)).collect()); + let stranger = Wai::new(base_manifest(), b"timeliness stranger 0".to_vec()).to_bytes().expect("writes"); + let multi = WaiMulti::new("binary", "improve", Value::Null, vec![Rendition::media(CAP, "bytes", b"timeliness stranger 1".to_vec())]) + .to_bytes() + .expect("the WAI2 writes"); + let h = publish(4, vec![stranger, multi]); + Groups { g, f, f_other, h } +} + +fn pt(points: &[(u64, u64)]) -> Vec { + points.iter().map(|&(at_ms, value_ppm)| DecayPoint { at_ms, value_ppm }).collect() +} + +fn entry(p: &Publication, i: usize, from_ms: u64, by_ms: u64, decay: &[(u64, u64)], fallback: Option) -> TimelinessEntry { + TimelinessEntry { leaf_index: i as u64, content_hash: p.hash(i), from_ms, by_ms, decay: pt(decay), fallback } +} + +fn fallback(p: &Publication, i: usize, value_ppm: u64) -> Option { + Some(Fallback { group: p.link(), leaf_index: i as u64, content_hash: p.hash(i), value_ppm }) +} + +/// Entry 0 of G: falling to 600,000 two seconds after the deadline and to 0 ten seconds after, +/// with F's object 0 at 400,000. +fn e0(g: &Groups) -> TimelinessEntry { + entry(&g.g, 0, T0, D, &[(D + 2_000, 600_000), (D + 10_000, 0)], fallback(&g.f, 0, 400_000)) +} + +/// Entry 1: a hard deadline, no fallback. +fn e1(g: &Groups) -> TimelinessEntry { + entry(&g.g, 1, T0, D, &[(D + 1, 0)], None) +} + +/// Entry 2: a plateau at 700,000 from one to five seconds after, with F's object 2 at full +/// value. +fn e2(g: &Groups) -> TimelinessEntry { + entry(&g.g, 2, T0, D, &[(D + 1_000, 700_000), (D + 5_000, 700_000), (D + 6_000, 0)], fallback(&g.f, 2, 1_000_000)) +} + +fn timeliness(objects: Vec) -> ClaimBody { + ClaimBody::Timeliness(TimelinessClaim { objects, attests: ATTESTS_VALUED.into() }) +} + +fn transmission(bearer: Bearer, id: &str) -> ClaimBody { + ClaimBody::Transmission(TransmissionClaim { bearer, bearer_id: id.into(), energy: None, attests: ATTESTS_TRANSMITTED.into() }) +} + +/// A schedule of the given objects of `p` on `id`: RaptorQ in one block of eight source symbols +/// of 128 octets and two repair symbols a pass, fresh symbols each pass, ten passes of a second +/// every ten seconds from T0. Within the plans' loss bound a receiver gets 5 symbols a pass and +/// needs K′ + 2 = 12, so it holds the object after three passes. +fn schedule(p: &Publication, id: &str, objects: &[usize]) -> ClaimBody { + let entries = objects + .iter() + .map(|&i| ScheduleEntry { + leaf_index: i as u64, + content_hash: p.hash(i), + oti: Oti::RaptorQ { transfer_length: LENGTH, symbol_size: 128, source_blocks: 1, sub_blocks: 1, alignment: 4 }, + repair: 2, + esi: Esi::Advance, + first_ms: T0, + period_ms: 10_000, + duration_ms: 1_000, + count: 10, + }) + .collect(); + ClaimBody::Schedule(ScheduleClaim { bearer_id: id.into(), objects: entries, attests: ATTESTS_SCHEDULED.into() }) +} + +/// The end of pass `j` (from 1) of every schedule here. +fn pass_end(j: u64) -> u64 { + T0 + (j - 1) * 10_000 + 1_000 +} + +/// Each signer's claims of one case, chained in the order they are signed. +#[derive(Default)] +struct Chains { + last: BTreeMap, +} + +impl Chains { + fn sid(seed: u8) -> String { + match seed { + PUBLISHER => D1.into(), + PUBLISHER_OTHER => D2.into(), + s => crate::signer_id::did_key(&pk(s)), + } + } + + fn next(&self, seed: u8) -> (u64, Option<[u8; 32]>) { + match self.last.get(&seed) { + Some((s, l)) => (s + 1, Some(*l)), + None => (0, None), + } + } + + /// A claim a verifier accepts at steps 1–4, chained to the signer's previous one. + fn sign(&mut self, seed: u8, subject: [u8; 32], body: ClaimBody) -> String { + let (seq, parent) = self.next(seed); + let c = ClaimReceipt::seal(&key(seed), Self::sid(seed), SubjectType::Receipt, subject, seq, SENT, body, parent) + .expect("a claim the corpus means to pass steps 1-4"); + self.last.insert(seed, (seq, c.link_hash())); + c.to_json() + } + + /// A claim that breaks a rule of step 1, 2 or 4; not held, so the chain does not move. + fn sign_unchecked(&mut self, seed: u8, subject_type: SubjectType, subject: [u8; 32], body: ClaimBody) -> String { + let (seq, parent) = self.next(seed); + ClaimReceipt::seal_unchecked(&key(seed), Self::sid(seed), subject_type, subject, seq, SENT, body, parent) + .expect("a canonical form") + .to_json() + } +} + +/// One publisher's claims about G, in order. +fn about_g(g: &Groups, bodies: Vec) -> Vec { + let mut ch = Chains::default(); + bodies.into_iter().map(|b| ch.sign(PUBLISHER, g.g.link(), b)).collect() +} + +/// A holdings record of `holder` at `as_of`, expiring an hour later, holding `held` of each group. +fn record(holder: u8, as_of: u64, held: &[(&Publication, &[u64])]) -> Vec { + record_until(holder, as_of, as_of + HOUR, held) +} + +/// What a record holds of one group: the group and the positions. +fn of<'a>(p: &'a Publication, held: &'a [u64]) -> (&'a Publication, &'a [u64]) { + (p, held) +} + +fn record_until(holder: u8, as_of: u64, expires: u64, held: &[(&Publication, &[u64])]) -> Vec { + let entries = held + .iter() + .map(|(p, objects)| Entry::of(p.link(), p.group.leaf_count, objects).expect("a record's entry holds something")) + .collect(); + Holdings::seal(&key(holder), as_of, expires, entries).to_bytes() +} + +const ALL: &[u64] = &[0, 1, 2, 3]; + +// ───────────────────────────── stated outcomes ───────────────────────────── + +const DV: &str = "delivered-verified"; +const IV: &str = "inclusion-verified"; + +fn line(holder: u8, held: Option, fallback: Option, outcome: &str, value: u64) -> Value { + json!({ "holder": hex(&pk(holder)), "held_ms": held, "fallback_ms": fallback, "outcome": outcome, "value_ppm": value }) +} + +fn intent(p: &Publication, leaf: u64, end: u64, lines: Vec) -> Value { + json!({ "group": hex(&p.link()), "leaf_index": leaf, "intent": "stands", "end_ms": end, "lines": lines }) +} + +fn set_aside(p: &Publication, leaf: u64) -> Value { + json!({ "group": hex(&p.link()), "leaf_index": leaf, "intent": format!("set-aside reason={CONTRADICTED}"), "end_ms": null, "lines": [] }) +} + +/// The intents of entries 0, 1 and 2 of G, with their lines. +fn three(g: &Groups, l0: Vec, l1: Vec, l2: Vec) -> Vec { + vec![intent(&g.g, 0, D + 10_000, l0), intent(&g.g, 1, D + 1, l1), intent(&g.g, 2, D + 6_000, l2)] +} + +fn labels(n: usize, label: &'static str) -> Vec<&'static str> { + vec![label; n] +} + +fn stated(objects: Value, claims: &[&str], records: &[&str], intents: Vec, statement: Value) -> Value { + json!({ "objects": objects, "claims": claims, "records": records, "intents": intents, "statement": statement }) +} + +fn on_time(holder: u8, at: u64) -> Vec { + vec![line(holder, Some(at), None, "on_time", 1_000_000)] +} + +fn not_shown(holder: u8) -> Vec { + vec![line(holder, None, None, "not_shown", 0)] +} + +fn after(holder: u8, at: u64, value: u64) -> Vec { + vec![line(holder, Some(at), None, "after_deadline", value)] +} + +struct VerdictCase { + name: &'static str, + description: &'static str, + inputs: Inputs, + outcome: Value, +} + +fn verdict_cases(g: &Groups) -> Vec { + let mut out = Vec::new(); + let mut push = |name, description, inputs, outcome| out.push(VerdictCase { name, description, inputs, outcome }); + let gf = || vec![g.g.receipts(), g.f.receipts()]; + let gf_labels = || json!([labels(4, IV), labels(4, IV)]); + let main = || about_g(g, vec![timeliness(vec![e0(g), e1(g), e2(g)])]); + let inputs = |groups: Vec, claims: Vec, records: Vec>| Inputs { groups, claims, records, statement: None }; + let with_records = |records: Vec>| inputs(gf(), main(), records); + let a = HOLDER_A; + + // Holders of the primary. + for (name, description, at, l0, l1, l2) in [ + ("holder_on_time", "holder_a holds G whole half a minute before the deadline: every object on time.", D - 30_000, on_time(a, D - 30_000), on_time(a, D - 30_000), on_time(a, D - 30_000)), + ("holder_at_deadline", "Held at the deadline itself: on time.", D, on_time(a, D), on_time(a, D), on_time(a, D)), + ( + "holder_one_ms_after", + "A millisecond after: entry 0 at 999,800 (1,000,000 · 1999/2000 + 600,000 · 1/2000), entry 1's hard deadline at 0, entry 2 at 999,700.", + D + 1, + after(a, D + 1, 999_800), + after(a, D + 1, 0), + after(a, D + 1, 999_700), + ), + ("holder_after_deadline", "A second after: 800,000, 0 and 700,000.", D + 1_000, after(a, D + 1_000, 800_000), after(a, D + 1_000, 0), after(a, D + 1_000, 700_000)), + ("holder_after_end", "At entry 0's end: held after the deadline, at 0.", D + 10_000, after(a, D + 10_000, 0), after(a, D + 10_000, 0), after(a, D + 10_000, 0)), + ] { + push(name, description, with_records(vec![record(a, at, &[of(&g.g, ALL)])]), stated(gf_labels(), &["accepted"], &["stands"], three(g, l0, l1, l2), Value::Null)); + } + push( + "holder_not_shown", + "holder_a's record has G without object 0: object 0 not shown, the others on time.", + with_records(vec![record(a, D - 30_000, &[of(&g.g, &[1, 2])])]), + stated(gf_labels(), &["accepted"], &["stands"], three(g, not_shown(a), on_time(a, D - 30_000), on_time(a, D - 30_000)), Value::Null), + ); + push( + "hard_deadline_after", + "Object 1, a hard deadline, held a millisecond after it: after the deadline at 0.", + with_records(vec![record(a, D + 1, &[of(&g.g, &[1])])]), + stated(gf_labels(), &["accepted"], &["stands"], three(g, not_shown(a), after(a, D + 1, 0), not_shown(a)), Value::Null), + ); + push( + "plateau_after_deadline", + "Object 2 three seconds after its deadline, on its plateau, its floor not held: 700,000.", + with_records(vec![record(a, D + 3_000, &[of(&g.g, &[2])])]), + stated(gf_labels(), &["accepted"], &["stands"], three(g, not_shown(a), not_shown(a), after(a, D + 3_000, 700_000)), Value::Null), + ); + + // Fallbacks. holder_a's records of F give lines for entries 0 and 2, whose fallbacks are F's. + let fallback_only = |l0: Vec| stated(gf_labels(), &["accepted"], &["stands"], three(g, l0, vec![], not_shown(a)), Value::Null); + push( + "fallback_replaces", + "F's object 0 held a second before the deadline, the primary not held: replaced, at the fallback's 400,000.", + with_records(vec![record(a, D - 1_000, &[of(&g.f, &[0])])]), + fallback_only(vec![line(a, None, Some(D - 1_000), "replaced", 400_000)]), + ); + push( + "fallback_at_deadline", + "The fallback held at the deadline: replaced.", + with_records(vec![record(a, D, &[of(&g.f, &[0])])]), + fallback_only(vec![line(a, None, Some(D), "replaced", 400_000)]), + ); + push( + "fallback_after_deadline", + "The fallback held only a millisecond after the deadline: it stands in for nothing, not shown.", + with_records(vec![record(a, D + 1, &[of(&g.f, &[0])])]), + fallback_only(vec![line(a, None, Some(D + 1), "not_shown", 0)]), + ); + let two = |f_at: u64, f_objects: &[u64], p_at: u64, p_objects: &[u64]| { + with_records(vec![record(a, f_at, &[of(&g.f, f_objects)]), record(a, p_at, &[of(&g.g, p_objects)])]) + }; + push( + "fallback_beats_late", + "The fallback by the deadline and the primary six seconds after it (300,000): replaced at 400,000.", + two(D - 500, &[0], D + 6_000, &[0]), + stated(gf_labels(), &["accepted"], &["stands", "stands"], three(g, vec![line(a, Some(D + 6_000), Some(D - 500), "replaced", 400_000)], not_shown(a), not_shown(a)), Value::Null), + ); + push( + "late_primary_after_fallback", + "The fallback by the deadline and the primary a second after it, worth 800,000 then: replaced at 400,000, since at the deadline the sink held the fallback (§5.3).", + two(D - 500, &[0], D + 1_000, &[0]), + stated(gf_labels(), &["accepted"], &["stands", "stands"], three(g, vec![line(a, Some(D + 1_000), Some(D - 500), "replaced", 400_000)], not_shown(a), not_shown(a)), Value::Null), + ); + push( + "fallback_full_value", + "Object 2: its floor, valued at full, by the deadline, the primary a millisecond after: replaced at 1,000,000.", + two(D, &[2], D + 1, &[2]), + stated(gf_labels(), &["accepted"], &["stands", "stands"], three(g, not_shown(a), not_shown(a), vec![line(a, Some(D + 1), Some(D), "replaced", 1_000_000)]), Value::Null), + ); + push( + "fallback_late_primary_late", + "The fallback a millisecond after the deadline and the primary two seconds after: after the deadline at 600,000.", + two(D + 1, &[0], D + 2_000, &[0]), + stated(gf_labels(), &["accepted"], &["stands", "stands"], three(g, vec![line(a, Some(D + 2_000), Some(D + 1), "after_deadline", 600_000)], not_shown(a), not_shown(a)), Value::Null), + ); + push( + "fallback_group_not_given", + "F's object 0 held by the deadline, F's receipt not given: the record's entry for F is not checked, and replaced.", + inputs(vec![g.g.receipts()], main(), vec![record(a, D - 1_000, &[of(&g.f, &[0])])]), + stated(json!([labels(4, IV)]), &["accepted"], &["stands"], three(g, vec![line(a, None, Some(D - 1_000), "replaced", 400_000)], vec![], not_shown(a)), Value::Null), + ); + + // Records. + let b = HOLDER_B; + push( + "earliest_record_counts", + "holder_b's records a second before and five seconds after the deadline: the earlier counts, on time.", + with_records(vec![record(b, D - 1_000, &[of(&g.g, &[0])]), record(b, D + 5_000, &[of(&g.g, &[0])])]), + stated(gf_labels(), &["accepted"], &["stands", "stands"], three(g, on_time(b, D - 1_000), not_shown(b), not_shown(b)), Value::Null), + ); + push( + "fallback_earliest_counts", + "holder_a's record five seconds after the deadline holds G's object 0 and F's object 0, and its record a second before the deadline F's object 0, given in that order: f is the earlier, by the deadline, so replaced at 400,000.", + with_records(vec![record(a, D + 5_000, &[of(&g.g, &[0]), of(&g.f, &[0])]), record(a, D - 1_000, &[of(&g.f, &[0])])]), + stated( + gf_labels(), + &["accepted"], + &["stands", "stands"], + three(g, vec![line(a, Some(D + 5_000), Some(D - 1_000), "replaced", 400_000)], not_shown(a), not_shown(a)), + Value::Null, + ), + ); + // Lines from several holders: each from its own statements alone, in increasing order of key + // bytes (holder_b, holder_a, holder_c), whatever the order of the records. + push( + "lines_by_key", + "holder_a holds G a second after the deadline, holder_c F's object 0 two seconds before it, and holder_b G's objects 0 and 2 a second before it, the records given in that order: holder_b on time, holder_a after the deadline (800,000, 0 and 700,000) and holder_c replaced for object 0, in key order.", + with_records(vec![ + record(a, D + 1_000, &[of(&g.g, ALL)]), + record(HOLDER_C, D - 2_000, &[of(&g.f, &[0])]), + record(b, D - 1_000, &[of(&g.g, &[0, 2])]), + ]), + stated( + gf_labels(), + &["accepted"], + &["stands", "stands", "stands"], + three( + g, + vec![ + line(b, Some(D - 1_000), None, "on_time", 1_000_000), + line(a, Some(D + 1_000), None, "after_deadline", 800_000), + line(HOLDER_C, None, Some(D - 2_000), "replaced", 400_000), + ], + vec![line(b, None, None, "not_shown", 0), line(a, Some(D + 1_000), None, "after_deadline", 0)], + vec![ + line(b, Some(D - 1_000), None, "on_time", 1_000_000), + line(a, Some(D + 1_000), None, "after_deadline", 700_000), + line(HOLDER_C, None, None, "not_shown", 0), + ], + ), + Value::Null, + ), + ); + let aside = format!("set-aside reason={}", holdings::CONTRADICTED); + push( + "records_contradict", + "holder_c's two records at one instant that differ: both set aside, and holder_c has no line.", + with_records(vec![ + record(a, D - 30_000, &[of(&g.g, ALL)]), + record(HOLDER_C, D - 5_000, &[of(&g.g, &[0])]), + record(HOLDER_C, D - 5_000, &[of(&g.g, &[1])]), + ]), + stated(gf_labels(), &["accepted"], &["stands", &aside, &aside], three(g, on_time(a, D - 30_000), on_time(a, D - 30_000), on_time(a, D - 30_000)), Value::Null), + ); + let no_lines = |record_label: &str| stated(gf_labels(), &["accepted"], &[record_label], three(g, vec![], vec![], vec![]), Value::Null); + { + let mut wrong = Entry::of(g.g.link(), 4, ALL).expect("whole"); + wrong.leaf_count = 5; + let bytes = Holdings::seal(&key(a), D - 30_000, D - 30_000 + HOUR, vec![wrong]).to_bytes(); + push( + "record_leaf_count_mismatch", + "A record stating G with five objects, G's receipt given: refused whole, and no line.", + with_records(vec![bytes]), + no_lines(&format!("reject reason={}", holdings::LEAF_COUNT_MISMATCH)), + ); + } + { + let mut bytes = record(a, D - 30_000, &[of(&g.g, ALL)]); + let n = bytes.len() - 1; + bytes[n] ^= 1; + push( + "record_signature_invalid", + "A bit of the record's signature flipped: refused, and no line.", + with_records(vec![bytes]), + no_lines(&format!("reject reason={}", holdings::SIGNATURE_INVALID)), + ); + } + push( + "record_at_group_second", + "A record at T0, the start of the second G starts in (T0 + 500 ms): not before it, and on time.", + with_records(vec![record(a, T0, &[of(&g.g, ALL)])]), + stated(gf_labels(), &["accepted"], &["stands"], three(g, on_time(a, T0), on_time(a, T0), on_time(a, T0)), Value::Null), + ); + push( + "record_before_group", + "A record a millisecond before T0, a second before G began: refused whole, and no line.", + with_records(vec![record(a, T0 - 1, &[of(&g.g, ALL)])]), + no_lines(&format!("reject reason={HELD_BEFORE_GROUP}")), + ); + + // Intents. + let mut contradict = e0(g); + contradict.fallback = None; + let contradicting = || about_g(g, vec![timeliness(vec![e0(g), e1(g), e2(g)]), timeliness(vec![contradict.clone(), e1(g)])]); + let contradicted_intents = || { + vec![set_aside(&g.g, 0), intent(&g.g, 1, D + 1, on_time(a, D - 30_000)), intent(&g.g, 2, D + 6_000, on_time(a, D - 30_000))] + }; + push( + "intents_contradict", + "A second claim states object 0 with no fallback and object 1 as the first does: object 0 set aside, object 1 one intent.", + inputs(gf(), contradicting(), vec![record(a, D - 30_000, &[of(&g.g, ALL)])]), + stated(gf_labels(), &["accepted", "accepted"], &["stands"], contradicted_intents(), Value::Null), + ); + push( + "intent_repeated", + "A second claim repeats entry 0: one intent, standing.", + inputs(gf(), about_g(g, vec![timeliness(vec![e0(g), e1(g), e2(g)]), timeliness(vec![e0(g)])]), vec![record(a, D - 30_000, &[of(&g.g, ALL)])]), + stated(gf_labels(), &["accepted", "accepted"], &["stands"], three(g, on_time(a, D - 30_000), on_time(a, D - 30_000), on_time(a, D - 30_000)), Value::Null), + ); + push( + "schedule_not_evidence", + "A schedule of G among the claims: a plan, which this verdict reads nowhere, context_mismatch.", + inputs(gf(), about_g(g, vec![timeliness(vec![e0(g), e1(g), e2(g)]), schedule(&g.g, B1, &[0, 1, 2])]), vec![record(a, D - 30_000, &[of(&g.g, ALL)])]), + stated(gf_labels(), &["accepted", "reject step=6 reason=context_mismatch"], &["stands"], three(g, on_time(a, D - 30_000), on_time(a, D - 30_000), on_time(a, D - 30_000)), Value::Null), + ); + + // Statements offered, over holder_on_time's inputs. + let on_time_inputs = |statement: Statement| { + let mut i = with_records(vec![record(a, D - 30_000, &[of(&g.g, ALL)])]); + i.statement = Some(statement); + i + }; + let st = |holder: u8, index: u64| Statement { group: g.g.link(), index, holder: pk(holder) }; + let every_on_time = |s: Value| stated(gf_labels(), &["accepted"], &["stands"], three(g, on_time(a, D - 30_000), on_time(a, D - 30_000), on_time(a, D - 30_000)), s); + push("statement_line", "Object 0 for holder_a: its line.", on_time_inputs(st(a, 0)), every_on_time(json!({ "outcome": "on_time", "value_ppm": 1_000_000 }))); + push("statement_no_line", "Object 0 for holder_c, which has no record: not shown.", on_time_inputs(st(HOLDER_C, 0)), every_on_time(json!({ "outcome": "not_shown", "value_ppm": 0 }))); + push( + "statement_no_intent", + "Object 3, which no entry states: never on time.", + on_time_inputs(st(a, 3)), + every_on_time(json!(format!("reject reason={DEADLINE_NOT_STATED}"))), + ); + { + let mut i = inputs(gf(), contradicting(), vec![record(a, D - 30_000, &[of(&g.g, ALL)])]); + i.statement = Some(st(a, 0)); + push( + "statement_contradicted", + "Object 0 of intents_contradict: its intents set aside, so no deadline is stated.", + i, + stated(gf_labels(), &["accepted", "accepted"], &["stands"], contradicted_intents(), json!(format!("reject reason={DEADLINE_NOT_STATED}"))), + ); + } + + // Step 6 (§4.3): each step refused, beside the case that passes it at its edge. + let step6 = |reason: &str| format!("reject step=6 reason={reason}"); + let alone = |groups: Vec, objects: Value, signer: u8, subject: [u8; 32], entries: Vec, outcome: String, intents: Vec| { + let mut ch = Chains::default(); + let claims = vec![ch.sign(signer, subject, timeliness(entries))]; + (inputs(groups, claims, Vec::new()), stated(objects, &[&outcome], &[], intents, Value::Null)) + }; + let mut context = |name: &'static str, description: &'static str, case: (Inputs, Value)| out.push(VerdictCase { name, description, inputs: case.0, outcome: case.1 }); + let link = g.g.link(); + let e3 = || entry(&g.g, 3, T0, D, &[(D + 1, 0)], None); + context( + "subject_mismatch", + "A statement about H, which is not given: checked against G, the first group.", + alone(gf(), gf_labels(), PUBLISHER, g.h.link(), vec![entry(&g.h, 0, T0, D, &[(D + 1, 0)], None)], step6("timeliness_subject_mismatch"), vec![]), + ); + context( + "signer_mismatch", + "Entries 0 to 2 signed by another of the origin's keys.", + alone(gf(), gf_labels(), PUBLISHER_OTHER, link, vec![e0(g), e1(g), e2(g)], step6("timeliness_signer_mismatch"), vec![]), + ); + context( + "leaf_last", + "An entry for object 3, the last of four, its envelope not held: accepted.", + alone(gf(), gf_labels(), PUBLISHER, link, vec![e3()], "accepted".into(), vec![intent(&g.g, 3, D + 1, vec![])]), + ); + let mut past = e3(); + past.leaf_index = 4; + context("leaf_out_of_range", "An entry for object 4 of a group of four.", alone(gf(), gf_labels(), PUBLISHER, link, vec![past], step6("timeliness_leaf_out_of_range"), vec![])); + context( + "from_in_group_start_second", + "Entry 1, of use from T0, in the second G starts in (T0 + 500 ms): not before it.", + alone(gf(), gf_labels(), PUBLISHER, link, vec![e1(g)], "accepted".into(), vec![intent(&g.g, 1, D + 1, vec![])]), + ); + let mut early = e1(g); + early.from_ms = T0 - 1; + context("before_group", "Of use from a millisecond before T0, a second before G began.", alone(gf(), gf_labels(), PUBLISHER, link, vec![early], step6("timeliness_before_group"), vec![])); + let mut wrong = e1(g); + wrong.content_hash = g.g.hash(2); + let without_1 = { + let mut i = g.g.receipts(); + i.objects.remove(1); + i + }; + context( + "content_unchecked", + "Entry 1 with object 2's content hash, object 1's receipt not held: the publisher's word stands.", + alone(vec![without_1, g.f.receipts()], json!([labels(3, IV), labels(4, IV)]), PUBLISHER, link, vec![wrong.clone()], "accepted".into(), vec![intent(&g.g, 1, D + 1, vec![])]), + ); + context("content_mismatch", "The same entry, object 1's receipt held.", alone(gf(), gf_labels(), PUBLISHER, link, vec![wrong], step6("timeliness_content_mismatch"), vec![])); + context( + "layer_envelope_not_held", + "An entry for object 3, a layer, the envelopes of objects 0 to 2 held and not its: accepted.", + alone(vec![g.g.with(&[0, 1, 2]), g.f.receipts()], json!([[DV, DV, DV, IV], labels(4, IV)]), PUBLISHER, link, vec![e3()], "accepted".into(), vec![intent(&g.g, 3, D + 1, vec![])]), + ); + context( + "on_layer", + "The same entry with object 3's envelope held: a refinement-only capability, refused.", + alone(vec![g.g.whole(), g.f.receipts()], json!([labels(4, DV), labels(4, IV)]), PUBLISHER, link, vec![e3()], step6("timeliness_on_layer"), vec![]), + ); + let mut layer_fallback = e0(g); + layer_fallback.fallback = fallback(&g.g, 3, 400_000); + context( + "fallback_on_layer", + "Entry 0's fallback object 3 of G, a layer whose envelope is held.", + alone(vec![g.g.whole(), g.f.receipts()], json!([labels(4, DV), labels(4, IV)]), PUBLISHER, link, vec![layer_fallback], step6("timeliness_on_layer"), vec![]), + ); + context( + "fallback_group_not_held", + "Entries 0 to 2 with F not given: their fallbacks are not checked, and the publisher's word stands.", + alone(vec![g.g.receipts()], json!([labels(4, IV)]), PUBLISHER, link, vec![e0(g), e1(g), e2(g)], "accepted".into(), three(g, vec![], vec![], vec![])), + ); + let mut out_of_range = e0(g); + out_of_range.fallback = Some(Fallback { leaf_index: 4, ..fallback(&g.f, 0, 400_000).expect("a fallback") }); + context("fallback_out_of_range", "A fallback at position 4 of F, a group of four.", alone(gf(), gf_labels(), PUBLISHER, link, vec![out_of_range], step6("timeliness_fallback_mismatch"), vec![])); + let mut misplaced = e0(g); + misplaced.fallback = Some(Fallback { leaf_index: 1, ..fallback(&g.f, 0, 400_000).expect("a fallback") }); + context( + "fallback_mismatch", + "A fallback at F's position 1 with the content hash of F's object 0, F's object 1's receipt held.", + alone(gf(), gf_labels(), PUBLISHER, link, vec![misplaced], step6("timeliness_fallback_mismatch"), vec![]), + ); + context( + "fallback_derived", + "Entries 0 to 2 with F's envelopes held, each derived from G's object at its position: accepted.", + alone(vec![g.g.receipts(), g.f.whole()], json!([labels(4, IV), labels(4, DV)]), PUBLISHER, link, vec![e0(g), e1(g), e2(g)], "accepted".into(), three(g, vec![], vec![], vec![])), + ); + let mut other = e2(g); + other.fallback = fallback(&g.f_other, 2, 1_000_000); + context( + "fallback_not_derived", + "Entry 2's fallback object 2 of F′, whose envelope derives from G's object 1.", + alone(vec![g.g.receipts(), g.f_other.whole()], json!([labels(4, IV), labels(4, DV)]), PUBLISHER, link, vec![other], step6("timeliness_fallback_not_derived"), vec![]), + ); + let mut plain = e0(g); + plain.fallback = fallback(&g.g, 1, 400_000); + context( + "fallback_no_derived_from", + "Entry 0's fallback G's object 1, whose envelope has no derived_from.", + alone(vec![g.g.whole()], json!([labels(4, DV)]), PUBLISHER, link, vec![plain], step6("timeliness_fallback_not_derived"), vec![]), + ); + let mut multi = e0(g); + multi.fallback = fallback(&g.h, 1, 400_000); + context( + "fallback_wai2", + "Entry 0's fallback H's object 1, a WAI2 envelope: renditions a sink selects among, no one rendition valued.", + alone(vec![g.g.receipts(), g.h.whole()], json!([labels(4, IV), labels(2, DV)]), PUBLISHER, link, vec![multi], step6("timeliness_fallback_not_derived"), vec![]), + ); + { + let mut bad = g.f.group.clone(); + bad.sig[0] ^= 1; + let mut f = g.f.receipts(); + f.group = bad.to_json(); + out.push(VerdictCase { + name: "group_invalid", + description: "F's signature with a bit flipped: the verdict is refused with jwp-receipts §3.3's reason.", + inputs: inputs(vec![g.g.receipts(), f], main(), Vec::new()), + outcome: json!("refuse reason=signature_verify_failed"), + }); + } + out +} + +/// A claim case: one claim through jwp-receipts §3.1 steps 1–4. +struct ClaimCase { + name: &'static str, + description: &'static str, + claim: String, + outcome: String, +} + +/// Sixteen points (or `n`) on a strictly convex fall: (`by` + 1000 · k, ⌊1,000,000 · (n − k)² / n²⌋), +/// so no point is on its neighbours' line. +fn convex(by: u64, n: u64) -> Vec<(u64, u64)> { + (1..=n).map(|k| (by + 1_000 * k, 1_000_000 * (n - k) * (n - k) / (n * n))).collect() +} + +fn claim_cases(g: &Groups) -> Vec { + let link = g.g.link(); + let mut out = Vec::new(); + let mut accept = |name: &'static str, description: &'static str, entries: Vec| { + let claim = Chains::default().sign(PUBLISHER, link, timeliness(entries)); + out.push(ClaimCase { name, description, claim, outcome: "accept".into() }); + }; + let one = |from: u64, by: u64, decay: &[(u64, u64)]| entry(&g.g, 1, from, by, decay, None); + let with_fallback = |f: Option| { + let mut e = e0(g); + e.fallback = f; + e + }; + accept("minimal_hard_deadline", "One entry, a hard deadline, no fallback.", vec![e1(g)]); + accept("full_entry", "Entry 0: two points and a fallback.", vec![e0(g)]); + accept("window_one_instant", "of use from its deadline: a window of one instant.", vec![one(D, D, &[(D + 1, 0)])]); + accept("by_before_last_instant", "A deadline a millisecond before the last instant, its one point at it.", vec![one(T0, LAST - 1, &[(LAST, 0)])]); + accept("decay_one_point_ramp", "One point: a fall to 0 over ten seconds.", vec![one(T0, D, &[(D + 10_000, 0)])]); + accept("decay_sixteen_points", "Sixteen points on a convex fall.", vec![one(T0, D, &convex(D, 16))]); + accept("decay_step", "A fall to half over a millisecond, then to 0 over three seconds.", vec![one(T0, D, &[(D + 1, 500_000), (D + 3_001, 0)])]); + accept("decay_plateau", "700,000 held for four seconds, then 0.", vec![one(T0, D, &[(D + 1_000, 700_000), (D + 5_000, 700_000), (D + 6_000, 0)])]); + accept("decay_near_collinear", "A part per million off the line through its neighbours.", vec![one(T0, D, &[(D + 1_000, 500_001), (D + 2_000, 0)])]); + accept("decay_last_at_last_instant", "The last point at the last instant.", vec![one(T0, D, &[(LAST, 0)])]); + accept("fallback_value_one", "A fallback valued at 1.", vec![with_fallback(fallback(&g.f, 0, 1))]); + accept("fallback_value_full", "A fallback valued at full.", vec![with_fallback(fallback(&g.f, 0, 1_000_000))]); + accept("fallback_same_group_other_leaf", "A fallback in the claim's own group, at another position.", vec![with_fallback(fallback(&g.g, 2, 400_000))]); + + let mut refuse = |name: &'static str, description: &'static str, body: ClaimBody, step: u8, reason: &str| { + let claim = Chains::default().sign_unchecked(PUBLISHER, SubjectType::Receipt, link, body); + out.push(ClaimCase { name, description, claim, outcome: format!("reject step={step} reason={reason}") }); + }; + let (window, decay, fb) = ("timeliness_window_invalid", "timeliness_decay_invalid", "timeliness_fallback_invalid"); + let t = |e: TimelinessEntry| timeliness(vec![e]); + refuse("window_inverted", "of use from a millisecond after its deadline.", t(one(D + 1, D, &[(D + 1, 0)])), 4, window); + refuse("by_at_last_instant", "A deadline at the last instant.", t(one(T0, LAST, &[(LAST, 0)])), 4, window); + refuse( + "not_valued", + "attests `delivered`.", + ClaimBody::Timeliness(TimelinessClaim { objects: vec![e1(g)], attests: "delivered".into() }), + 4, + "timeliness_not_valued", + ); + refuse("no_objects", "No entry.", timeliness(Vec::new()), 4, "timeliness_objects_malformed"); + refuse("objects_unordered", "Object 1 before object 0.", timeliness(vec![e1(g), e0(g)]), 4, "timeliness_objects_malformed"); + refuse("objects_repeated", "Object 2 twice.", timeliness(vec![e2(g), e2(g)]), 4, "timeliness_objects_malformed"); + refuse("decay_empty", "No point.", t(one(T0, D, &[])), 4, decay); + refuse("decay_seventeen_points", "Seventeen points on a convex fall.", t(one(T0, D, &convex(D, 17))), 4, decay); + refuse("decay_first_at_deadline", "The first point at the deadline.", t(one(T0, D, &[(D, 0)])), 4, decay); + refuse("decay_point_full", "A point at full value, a second after the deadline.", t(one(T0, D, &[(D + 1_000, 1_000_000), (D + 2_000, 0)])), 4, decay); + refuse("decay_instants_equal", "Two points at one instant.", t(one(T0, D, &[(D + 1_000, 500_000), (D + 1_000, 0)])), 4, decay); + refuse("decay_rises", "400,000, then 500,000.", t(one(T0, D, &[(D + 1_000, 400_000), (D + 2_000, 500_000), (D + 3_000, 0)])), 4, decay); + refuse( + "decay_plateau_interior", + "700,000 three times: the middle point is on its neighbours' line.", + t(one(T0, D, &[(D + 1_000, 700_000), (D + 3_000, 700_000), (D + 5_000, 700_000), (D + 6_000, 0)])), + 4, + decay, + ); + refuse("decay_collinear", "Half at one second and 0 at two: on the line from the deadline.", t(one(T0, D, &[(D + 1_000, 500_000), (D + 2_000, 0)])), 4, decay); + refuse("decay_not_to_zero", "The last point at 1.", t(one(T0, D, &[(D + 1_000, 500_000), (D + 2_000, 1)])), 4, decay); + refuse("decay_zero_before_last", "0, then 0.", t(one(T0, D, &[(D + 1_000, 0), (D + 2_000, 0)])), 4, decay); + refuse("decay_past_last_instant", "The last point a millisecond past the last instant.", t(one(T0, D, &[(LAST + 1, 0)])), 4, decay); + refuse("fallback_value_zero", "A fallback valued at 0.", t(with_fallback(fallback(&g.f, 0, 0))), 4, fb); + refuse("fallback_value_above_full", "A fallback valued at 1,000,001.", t(with_fallback(fallback(&g.f, 0, 1_000_001))), 4, fb); + refuse( + "fallback_is_primary_hash", + "A fallback with the primary's content hash.", + t(with_fallback(Some(Fallback { content_hash: g.g.hash(0), ..fallback(&g.f, 0, 400_000).expect("a fallback") }))), + 4, + fb, + ); + refuse( + "fallback_is_primary_position", + "A fallback at the primary's own group and position.", + t(with_fallback(Some(Fallback { group: link, ..fallback(&g.f, 0, 400_000).expect("a fallback") }))), + 4, + fb, + ); + refuse("rule_order_within_entry", "An inverted window and no point in one entry: the window first.", t(one(D + 1, D, &[])), 4, window); + { + let mut first = e0(g); + first.decay.clear(); + let mut second = e1(g); + second.from_ms = D + 1; + refuse("entry_order", "Entry 0 with no point and entry 1 with an inverted window: entry 0 first.", timeliness(vec![first, second]), 4, decay); + } + { + let claim = Chains::default().sign_unchecked(PUBLISHER, SubjectType::Object, g.g.hash(1), t(e1(g))); + out.push(ClaimCase { + name: "subject_type_object", + description: "subject_type `object`: a statement of timeliness is about a group.", + claim, + outcome: "reject step=1 reason=subject_type_not_admitted".into(), + }); + } + + // Step 2: a signed claim whose body is then changed. Step 2 refuses it before step 3 reads + // the signature. + let signed = Chains::default().sign(PUBLISHER, link, timeliness(vec![e0(g)])); + for (name, description, reason) in [ + ("body_missing_decay", "An entry with no `decay`.", "missing_required_field"), + ("body_extra_member", "A body with a `bearer_id`.", "unknown_member"), + ("point_extra_member", "A point with a `unit`.", "unknown_member"), + ("point_value_string", "A point's `value_ppm` as a string.", "field_type"), + ("fallback_not_object", "A `fallback` of 5.", "field_type"), + ("fallback_member_missing", "A fallback with no `value_ppm`.", "missing_required_field"), + ] { + let mut v: Value = serde_json::from_str(&signed).expect("json"); + let body = v["body"].as_object_mut().expect("a body"); + if name == "body_extra_member" { + body.insert("bearer_id".into(), B1.into()); + } else { + let m = body["objects"][0].as_object_mut().expect("an entry"); + match name { + "body_missing_decay" => { + m.remove("decay"); + } + "point_extra_member" => { + m["decay"][0].as_object_mut().expect("a point").insert("unit".into(), "ms".into()); + } + "point_value_string" => { + m["decay"][0].as_object_mut().expect("a point").insert("value_ppm".into(), "5".into()); + } + "fallback_not_object" => { + m.insert("fallback".into(), 5.into()); + } + _ => { + m["fallback"].as_object_mut().expect("a fallback").remove("value_ppm"); + } + } + } + let claim = crate::jcs::jcs(&v).expect("canonical"); + out.push(ClaimCase { name, description, claim, outcome: format!("reject step=2 reason={reason}") }); + } + { + let mut c = ClaimReceipt::from_json(&signed).expect("reads"); + c.sig[0] ^= 1; + out.push(ClaimCase { + name: "signature_flipped", + description: "A bit of the signature flipped.", + claim: c.to_json(), + outcome: "reject step=3 reason=signature_verify_failed".into(), + }); + } + out +} + +/// A value case: §5.1 for one entry at one instant. +struct ValueCase { + name: &'static str, + description: &'static str, + entry: TimelinessEntry, + at_ms: u64, + value_ppm: u64, +} + +fn value_cases(g: &Groups) -> Vec { + let mut example = e0(g); + example.fallback = None; + let hard = e1(g); + let step = entry(&g.g, 1, T0, D, &[(D + 1, 500_000), (D + 3_001, 0)], None); + let low = entry(&g.g, 1, T0, D, &[(D + 3, 2), (D + 13, 0)], None); + let mut plateau = e2(g); + plateau.fallback = None; + let wide = entry(&g.g, 1, 1, 1, &[(LAST, 0)], None); + let case = |name, description, entry: &TimelinessEntry, at_ms, value_ppm| ValueCase { name, description, entry: entry.clone(), at_ms, value_ppm }; + vec![ + case("example_before_deadline", "§5.4's entry a minute before its deadline: full.", &example, T0, 1_000_000), + case("example_at_deadline", "At the deadline: full.", &example, D, 1_000_000), + case("example_one_ms", "A millisecond after: (1,000,000 · 1999 + 600,000) / 2000.", &example, D + 1, 999_800), + case("example_1000", "A second after: halfway to 600,000.", &example, D + 1_000, 800_000), + case("example_on_point", "On the first point.", &example, D + 2_000, 600_000), + case("example_mid", "Halfway between the points.", &example, D + 6_000, 300_000), + case("example_last_ms", "A millisecond before the end: 600,000 / 8000.", &example, D + 9_999, 75), + case("example_end", "At the end.", &example, D + 10_000, 0), + case("example_past_end", "Ten seconds past the end.", &example, D + 20_000, 0), + case("hard_at_deadline", "A hard deadline, at it.", &hard, D, 1_000_000), + case("hard_one_ms", "A hard deadline, a millisecond after: 0, its end.", &hard, D + 1, 0), + case("step_one_ms", "A step to half, a millisecond after.", &step, D + 1, 500_000), + case("step_mid", "A second into the fall from half: 333,333.3… floored.", &step, D + 1_001, 333_333), + case("step_last_ms", "A millisecond before the end: 500,000 / 3000 floored.", &step, D + 3_000, 166), + case("zero_before_end_one", "Points (D + 3, 2) and (D + 13, 0), at D + 4: 1.8 floored.", &low, D + 4, 1), + case("zero_before_end", "At D + 9: 0.8 floored to 0, before the end at D + 13.", &low, D + 9, 0), + case("plateau_mid", "On the plateau.", &plateau, D + 3_000, 700_000), + case("plateau_fall", "Halfway down from the plateau.", &plateau, D + 5_500, 350_000), + case("wide_span", "A deadline of 1 and one point at the last instant, at its half: products past 2^64.", &wide, LAST / 2, 500_000), + case("wide_span_near", "The same, a millisecond after the deadline: 999,999.99… floored.", &wide, 2, 999_999), + ] +} + +/// A plan case: §7. +struct PlanCase { + name: &'static str, + description: &'static str, + inputs: PlanInputs, + outcome: Value, +} + +fn choice(outcome: &str, object: &str, source: usize, arrival: u64, value: u64) -> Value { + json!({ "outcome": outcome, "object": object, "source": source, "arrival_ms": arrival, "value_ppm": value }) +} + +fn no_source() -> Value { + json!({ "outcome": "no_source", "object": null, "source": null, "arrival_ms": null, "value_ppm": 0 }) +} + +fn bearer(id: &str) -> Value { + json!({ "kind": "bearer", "bearer_id": id }) +} + +fn holder(seed: u8, fetch_ms: u64) -> Value { + json!({ "kind": "holder", "holder": hex(&pk(seed)), "fetch_ms": fetch_ms }) +} + +fn origin(fetch_ms: u64) -> Value { + json!({ "kind": "origin", "fetch_ms": fetch_ms }) +} + +fn plan_cases(g: &Groups) -> Vec { + let (gl, fl) = (g.g.link(), g.f.link()); + let declared = |main: ClaimBody| { + let mut ch = Chains::default(); + let mut c = vec![ + ch.sign(PUBLISHER, gl, transmission(Bearer::Unidirectional, B1)), + ch.sign(PUBLISHER, gl, schedule(&g.g, B1, &[0, 1, 2])), + ch.sign(PUBLISHER, fl, transmission(Bearer::Unidirectional, B1)), + ch.sign(PUBLISHER, fl, schedule(&g.f, B1, &[0, 1, 2, 3])), + ch.sign(PUBLISHER, fl, transmission(Bearer::Unidirectional, B3)), + ch.sign(PUBLISHER, fl, schedule(&g.f, B3, &[0, 1, 2, 3])), + ]; + c.push(ch.sign(PUBLISHER, gl, main)); + c + }; + let main = || timeliness(vec![e0(g), e1(g), e2(g)]); + let claim_labels: &[&str] = &["declared", "stands", "declared", "stands", "declared", "stands", "accepted"]; + let a_record = || vec![record(HOLDER_A, T0, &[of(&g.g, ALL)])]; + let base = |at: At, sources: Vec, wanted: &[u64]| PlanInputs { + groups: vec![g.g.receipts(), g.f.receipts()], + claims: declared(main()), + records: a_record(), + loss: Some((LOSS, OVERHEAD)), + at, + sources, + wanted: wanted.iter().map(|&i| (gl, i)).collect(), + }; + let planned = |choices: Vec| json!({ "claims": claim_labels, "records": ["stands"], "choices": choices }); + let refused = |reason: &str| json!(format!("refuse reason={reason}")); + let mut out = Vec::new(); + let mut push = |name, description, inputs, outcome| out.push(PlanCase { name, description, inputs, outcome }); + let (at, from_ms) = (At::Instant, At::FromMs); + + push( + "on_time_first_in_order", + "From T0 over b1, holder_a and the origin: b1's third pass ends at T0 + 21 s, by the deadline, and b1 is first.", + base(at(T0), vec![bearer(B1), holder(HOLDER_A, 100), origin(5_000)], &[0]), + planned(vec![choice("on_time", "primary", 0, pass_end(3), 1_000_000)]), + ); + push( + "order_over_earliest", + "holder_a would deliver at T0 + 100 ms, sooner, but b1 is first in the asker's order and on time.", + base(at(T0), vec![bearer(B1), holder(HOLDER_A, 100)], &[0]), + planned(vec![choice("on_time", "primary", 0, pass_end(3), 1_000_000)]), + ); + push( + "on_time_at_deadline", + "The origin arriving at the deadline itself.", + base(at(D - 5_000), vec![origin(5_000)], &[0]), + planned(vec![choice("on_time", "primary", 0, D, 1_000_000)]), + ); + push( + "one_ms_late", + "The origin a millisecond late, no source of the fallback by the deadline: 999,800.", + base(at(D - 4_999), vec![origin(5_000)], &[0]), + planned(vec![choice("after_deadline", "primary", 0, D + 1, 999_800)]), + ); + push( + "neighbour_when_carousel_late", + "From T0 + 45 s b1's next three passes are 6 to 8, the last ending at T0 + 71 s, late; holder_a delivers in 100 ms.", + base(at(T0 + 45_000), vec![bearer(B1), holder(HOLDER_A, 100)], &[0]), + planned(vec![choice("on_time", "primary", 1, T0 + 45_100, 1_000_000)]), + ); + { + let mut i = base(at(T0 + 30_000), vec![holder(HOLDER_A, 100), origin(5_000)], &[0]); + i.records = vec![record_until(HOLDER_A, T0, T0 + 30_000, &[of(&g.g, ALL)])]; + push("holder_record_expired", "holder_a's record expires at the planning instant: not a source; the origin.", i, planned(vec![choice("on_time", "primary", 1, T0 + 35_000, 1_000_000)])); + } + { + let mut i = base(at(T0 + 9_999), vec![holder(HOLDER_A, 100), origin(5_000)], &[0]); + i.records = vec![record(HOLDER_A, T0 + 10_000, &[of(&g.g, ALL)])]; + push("holder_record_not_yet", "holder_a's record is of a millisecond after the planning instant: not yet a source.", i, planned(vec![choice("on_time", "primary", 1, T0 + 14_999, 1_000_000)])); + } + push( + "fallback_from_carousel", + "The primary only from the origin six seconds late (300,000); b3 carries F, whose object 0 it delivers by T0 + 21 s: replaced, at 400,000.", + base(at(T0), vec![bearer(B3), origin(66_000)], &[0]), + planned(vec![choice("replaced", "fallback", 0, pass_end(3), 400_000)]), + ); + push( + "late_primary_beats_fallback", + "The primary a second late from the origin (800,000), the fallback in time on b3: the late primary, and no fallback fetched.", + base(at(T0), vec![origin(61_000), bearer(B3)], &[0]), + planned(vec![choice("after_deadline", "primary", 0, D + 1_000, 800_000)]), + ); + push( + "late_choice_by_value", + "Two late sources: the origin first in order at 300,000, holder_a later in order at 800,000: holder_a.", + base(at(T0), vec![origin(66_000), holder(HOLDER_A, 61_000)], &[0]), + planned(vec![choice("after_deadline", "primary", 1, D + 1_000, 800_000)]), + ); + push( + "late_tie_by_order", + "Two late sources at one instant: the first in order.", + base(at(T0), vec![holder(HOLDER_A, 61_000), origin(61_000)], &[0]), + planned(vec![choice("after_deadline", "primary", 0, D + 1_000, 800_000)]), + ); + { + let mut i = base(at(T0), vec![holder(HOLDER_A, 100), origin(5_000)], &[0]); + i.records = vec![record(HOLDER_B, T0, &[of(&g.g, ALL)])]; + push( + "holder_other_record", + "holder_a is asked, and the only record that holds G is holder_b's: holder_a is not a source, and the origin is taken.", + i, + planned(vec![choice("on_time", "primary", 1, T0 + 5_000, 1_000_000)]), + ); + } + { + let mut tied = e0(g); + tied.fallback = fallback(&g.f, 0, 600_000); + let mut i = base(at(T0), vec![origin(62_000), bearer(B3)], &[0]); + i.claims = declared(timeliness(vec![tied])); + push( + "fallback_value_tie", + "Entry 0 with its fallback at 600,000, the primary two seconds late from the origin, worth 600,000 then, and the fallback in time on b3: the fallback's value is at least the late primary's, so replaced.", + i, + planned(vec![choice("replaced", "fallback", 1, pass_end(3), 600_000)]), + ); + } + { + let mut i = base(at(T0), vec![bearer(B3), holder(HOLDER_A, 100), origin(66_000)], &[0]); + i.records = vec![record(HOLDER_A, T0, &[of(&g.f, ALL)])]; + push( + "fallback_first_in_order", + "The primary only from the origin six seconds late (300,000); the fallback from b3 at T0 + 21 s and from holder_a, later in order, at T0 + 100 ms: b3, the first in order.", + i, + planned(vec![choice("replaced", "fallback", 0, pass_end(3), 400_000)]), + ); + } + { + let mut i = base(at(T0), vec![origin(66_000), holder(HOLDER_A, 60_000)], &[0]); + i.records = vec![record(HOLDER_A, T0, &[of(&g.f, ALL)])]; + push( + "plan_fallback_at_deadline", + "The primary only from the origin six seconds late (300,000), the fallback from holder_a at the deadline itself: in time, replaced.", + i, + planned(vec![choice("replaced", "fallback", 1, D, 400_000)]), + ); + } + push( + "arrival_after_end", + "Object 1's hard deadline, the origin a millisecond after it: worth 0, no source.", + base(at(D - 4_999), vec![origin(5_000)], &[1]), + planned(vec![no_source()]), + ); + push( + "no_return_path_no_source", + "Object 1 over b1 alone from T0 + 80.001 s: one pass left of the three needed.", + base(at(T0 + 80_001), vec![bearer(B1)], &[1]), + planned(vec![no_source()]), + ); + push("origin_alone", "The origin alone, from T0.", base(at(T0), vec![origin(5_000)], &[0]), planned(vec![choice("on_time", "primary", 0, T0 + 5_000, 1_000_000)])); + push( + "every_pass_from_first", + "Object 0 over b1 from its first pass: held after pass 3, at T0 + 21 s.", + base(at(T0), vec![bearer(B1)], &[0]), + planned(vec![choice("on_time", "primary", 0, pass_end(3), 1_000_000)]), + ); + push( + "publisher_check_passes", + "Each object over b1 from its own from_ms, T0: each on time.", + base(from_ms, vec![bearer(B1)], &[0, 1, 2]), + planned(vec![ + choice("on_time", "primary", 0, pass_end(3), 1_000_000), + choice("on_time", "primary", 0, pass_end(3), 1_000_000), + choice("on_time", "primary", 0, pass_end(3), 1_000_000), + ]), + ); + let restated = || { + let mut e = e0(g); + e.from_ms = T0 + 40_000; + timeliness(vec![e]) + }; + { + let mut i = base(from_ms, vec![bearer(B1)], &[0]); + i.claims = declared(restated()); + push( + "publisher_check_fails", + "Object 0 of use from T0 + 40 s: passes 5 to 7, the last ending at D + 1 s, so a receiver that tunes in then is served late, at 800,000.", + i, + planned(vec![choice("after_deadline", "primary", 0, pass_end(7), 800_000)]), + ); + } + { + let mut i = base(at(T0), vec![bearer(B1)], &[0]); + i.claims = declared(restated()); + push( + "publisher_check_from_t0", + "The same entry planned from T0: a receiver that heard from the first pass is on time.", + i, + planned(vec![choice("on_time", "primary", 0, pass_end(3), 1_000_000)]), + ); + } + push( + "at_after_deadline", + "Planned 999 ms after the deadline, the origin in a millisecond: 800,000.", + base(at(D + 999), vec![origin(1)], &[0]), + planned(vec![choice("after_deadline", "primary", 0, D + 1_000, 800_000)]), + ); + { + let mut ch = Chains::default(); + let mut i = base(at(T0), vec![bearer(B1), origin(5_000)], &[0]); + i.claims = vec![ch.sign(PUBLISHER, gl, schedule(&g.g, B1, &[0, 1, 2])), ch.sign(PUBLISHER, gl, main())]; + push( + "plan_bearer_undeclared", + "G's schedule on b1 with no transmission claim: set aside, so b1 delivers nothing and the origin is taken.", + i, + json!({ "claims": [format!("set-aside reason={}", crate::bearer_receipts::BEARER_NOT_DECLARED), "accepted"], "records": ["stands"], "choices": [choice("on_time", "primary", 1, T0 + 5_000, 1_000_000)] }), + ); + } + { + let mut ch = Chains::default(); + let mut i = base(at(T0), vec![bearer(B2)], &[0]); + i.claims = vec![ + ch.sign(PUBLISHER, gl, transmission(Bearer::Bidirectional, B2)), + ch.sign(PUBLISHER, gl, schedule(&g.g, B2, &[0, 1, 2])), + ch.sign(PUBLISHER, gl, main()), + ]; + push( + "plan_bearer_bidirectional", + "A schedule on b2, a two-way instance: set aside, and no source.", + i, + json!({ "claims": ["declared", format!("set-aside reason={}", crate::carousel::SCHEDULE_ON_BIDIRECTIONAL), "accepted"], "records": ["stands"], "choices": [no_source()] }), + ); + } + push( + "wanted_without_intent", + "Object 3, which no entry states.", + base(at(T0), vec![origin(5_000)], &[3]), + planned(vec![json!(format!("reject reason={DEADLINE_NOT_STATED}"))]), + ); + push( + "plan_at_last_instant", + "Planned at the last instant, the origin a millisecond later: worth 0, no source.", + base(at(LAST), vec![origin(1)], &[0]), + planned(vec![no_source()]), + ); + push("plan_past_last_instant", "Planned a millisecond past the last instant.", base(at(LAST + 1), vec![origin(1)], &[0]), refused(INSTANT_INVALID)); + + let sources_case = |sources: Vec| base(at(T0), sources, &[0]); + for (name, description, sources) in [ + ("sources_empty", "No source.", vec![]), + ("sources_bearer_twice", "b1 twice.", vec![bearer(B1), bearer(B1)]), + ("sources_two_origins", "Two origins.", vec![origin(1), origin(2)]), + ("sources_holder_twice", "holder_a twice.", vec![holder(HOLDER_A, 1), holder(HOLDER_A, 2)]), + ("sources_holder_without_fetch", "A holder with no fetch_ms.", vec![json!({ "kind": "holder", "holder": hex(&pk(HOLDER_A)) })]), + ("sources_fetch_zero", "A holder with a fetch_ms of 0.", vec![holder(HOLDER_A, 0)]), + ("sources_fetch_past_bound", "The origin with a fetch_ms of 2^53.", vec![origin(1 << 53)]), + ("sources_key_not_hex", "A holder's key in capitals.", vec![json!({ "kind": "holder", "holder": hex(&pk(HOLDER_A)).to_uppercase(), "fetch_ms": 1 })]), + ("sources_bearer_not_uri", "A bearer_id with no scheme.", vec![bearer("b1")]), + ("sources_kind_unknown", "A source of kind `peer`.", vec![json!({ "kind": "peer", "fetch_ms": 1 })]), + ] { + push(name, description, sources_case(sources), refused(SOURCES_INVALID)); + } + { + let mut i = sources_case(vec![bearer(B1)]); + i.loss = None; + push("sources_bearer_without_loss_bound", "b1 with no loss bound or overhead.", i, refused(SOURCES_INVALID)); + } + { + let mut i = sources_case(vec![origin(1)]); + i.loss = Some((1_000_000, OVERHEAD)); + push("plan_loss_bound_invalid", "A loss bound of a million parts per million.", i, refused(LOSS_BOUND_INVALID)); + } + { + let mut i = sources_case(vec![origin(1)]); + i.loss = Some((LOSS, 3)); + push("plan_overhead_invalid", "An overhead of 3.", i, refused(OVERHEAD_INVALID)); + } + out +} + +// ───────────────────────────── writing it ───────────────────────────── + +fn groups_value(groups: &[GroupInput]) -> Value { + json!(groups + .iter() + .map(|gi| json!({ + "group": gi.group, + "objects": gi.objects.iter().map(|o| json!({ "receipt": o.receipt, "envelope": o.envelope.as_ref().map(|e| hex(e)) })).collect::>(), + })) + .collect::>()) +} + +fn records_value(records: &[Vec]) -> Value { + json!(records.iter().map(|r| hex(r)).collect::>()) +} + +fn verdict_value(c: &VerdictCase) -> Value { + let i = &c.inputs; + json!({ + "name": c.name, + "description": c.description, + "groups": groups_value(&i.groups), + "claims": i.claims, + "records": records_value(&i.records), + "statement": i.statement.map(|s| json!({ "group": hex(&s.group), "index": s.index, "holder": hex(&s.holder) })), + "outcome": c.outcome, + }) +} + +fn plan_value(c: &PlanCase) -> Value { + let i = &c.inputs; + json!({ + "name": c.name, + "description": c.description, + "groups": groups_value(&i.groups), + "claims": i.claims, + "records": records_value(&i.records), + "loss_ppm": i.loss.map(|(l, _)| l), + "overhead": i.loss.map(|(_, h)| h), + "at_ms": match i.at { At::Instant(t) => json!(t), At::FromMs => json!("from_ms") }, + "sources": i.sources, + "wanted": i.wanted.iter().map(|(group, index)| json!({ "group": hex(group), "index": index })).collect::>(), + "outcome": c.outcome, + }) +} + +/// The corpus: `vectors.json`, from fixed seeds. +pub fn generate() -> Vec<(String, String)> { + let g = groups(); + let mut keys = Map::new(); + for (name, seed) in [("publisher", PUBLISHER), ("publisher_other", PUBLISHER_OTHER), ("holder_a", HOLDER_A), ("holder_b", HOLDER_B), ("holder_c", HOLDER_C)] { + keys.insert(name.into(), hex(&pk(seed)).into()); + } + let mut group_links = Map::new(); + for (name, p) in [("G", &g.g), ("F", &g.f), ("F_other", &g.f_other), ("H", &g.h)] { + group_links.insert(name.into(), hex(&p.link()).into()); + } + let doc = json!({ + "about": "Conformance corpus of extensions/timeliness.md (wai.delivery.timeliness): the timeliness claim (jwp-receipts §2.4.17) \ + through steps 1 to 4, an entry's value at an instant (§5), the judgement of delivery from holdings records (§6) and \ + an asker's plan over carousel passes, neighbours and the origin (§7). Every key is Ed25519 from a fixed 32-byte seed \ + and attests nothing; envelopes carry opaque test payloads no case decodes; bearer instances use the example URN \ + namespace and origins reserved example domains. Each case states the outcome it was written to have, declared in \ + the generator. Regenerate with `wai_timeliness_vectors gen`.", + "keys": keys, + "groups": group_links, + "claims": claim_cases(&g).iter().map(|c| json!({ "name": c.name, "description": c.description, "claim": c.claim, "outcome": c.outcome })).collect::>(), + "values": value_cases(&g).iter().map(|c| json!({ + "name": c.name, + "description": c.description, + "entry": c.entry.to_json(), + "at_ms": c.at_ms, + "outcome": { "value_ppm": c.value_ppm, "end_ms": c.entry.end_ms() }, + })).collect::>(), + "verdicts": verdict_cases(&g).iter().map(verdict_value).collect::>(), + "plans": plan_cases(&g).iter().map(plan_value).collect::>(), + }); + let mut s = serde_json::to_string_pretty(&doc).expect("serialises"); + s.push('\n'); + vec![("vectors.json".into(), s)] +} + +// ───────────────────────────── reading it back ───────────────────────────── + +fn hash_of(v: &Value) -> Result<[u8; 32], String> { + v.as_str().and_then(unhex).and_then(|b| b.try_into().ok()).ok_or_else(|| format!("not a hash: {v}")) +} + +fn groups_of(v: &Value) -> Result, String> { + v.as_array() + .ok_or("groups")? + .iter() + .map(|gi| { + let objects = gi["objects"] + .as_array() + .ok_or("objects")? + .iter() + .map(|o| { + let envelope = match &o["envelope"] { + Value::Null => None, + v => Some(v.as_str().and_then(unhex).ok_or("bad envelope")?), + }; + Ok(HeldObject { receipt: o["receipt"].clone(), envelope }) + }) + .collect::, String>>()?; + Ok(GroupInput { group: gi["group"].clone(), objects }) + }) + .collect() +} + +fn claims_of(v: &Value) -> Result, String> { + v.as_array().ok_or("claims")?.iter().map(|w| w.as_str().map(str::to_owned).ok_or_else(|| "claim".to_string())).collect() +} + +fn records_of(v: &Value) -> Result>, String> { + v.as_array().ok_or("records")?.iter().map(|r| r.as_str().and_then(unhex).ok_or_else(|| "record".to_string())).collect() +} + +/// A verdict case's inputs, as the corpus writes them. +pub fn inputs_of(c: &Value) -> Result { + let statement = match &c["statement"] { + Value::Null => None, + s => Some(Statement { group: hash_of(&s["group"])?, index: s["index"].as_u64().ok_or("index")?, holder: hash_of(&s["holder"])? }), + }; + Ok(Inputs { groups: groups_of(&c["groups"])?, claims: claims_of(&c["claims"])?, records: records_of(&c["records"])?, statement }) +} + +/// A plan case's inputs, as the corpus writes them. +pub fn plan_inputs_of(c: &Value) -> Result { + let loss = match (&c["loss_ppm"], &c["overhead"]) { + (Value::Null, Value::Null) => None, + (l, h) => Some((l.as_u64().ok_or("loss_ppm")?, h.as_u64().ok_or("overhead")?)), + }; + let at = match &c["at_ms"] { + Value::String(s) if s == "from_ms" => At::FromMs, + v => At::Instant(v.as_u64().ok_or("at_ms")?), + }; + let wanted = c["wanted"] + .as_array() + .ok_or("wanted")? + .iter() + .map(|w| Ok((hash_of(&w["group"])?, w["index"].as_u64().ok_or("index")?))) + .collect::>()?; + Ok(PlanInputs { + groups: groups_of(&c["groups"])?, + claims: claims_of(&c["claims"])?, + records: records_of(&c["records"])?, + loss, + at, + sources: c["sources"].as_array().ok_or("sources")?.clone(), + wanted, + }) +} + +fn line_value(l: &Line) -> Value { + json!({ "holder": hex(&l.holder), "held_ms": l.held_ms, "fallback_ms": l.fallback_ms, "outcome": l.outcome.label(), "value_ppm": l.value_ppm }) +} + +/// The outcome [`verdict`] gives, written as a case states one. +fn outcome_of(v: &Result) -> Value { + match v { + Err(r) => json!(format!("refuse reason={}", r.label())), + Ok(v) => json!({ + "objects": v.objects, + "claims": v.claims.iter().map(ClaimVerdict::label).collect::>(), + "records": v.records.iter().map(RecordVerdict::label).collect::>(), + "intents": v.intents.iter().map(|i| json!({ + "group": hex(&i.group), + "leaf_index": i.leaf_index, + "intent": match &i.standing { Ok(_) => "stands".to_string(), Err(r) => format!("set-aside reason={r}") }, + "end_ms": i.standing.as_ref().ok().map(TimelinessEntry::end_ms), + "lines": i.lines.iter().map(line_value).collect::>(), + })).collect::>(), + "statement": match v.statement { + None => Value::Null, + Some(Ok((o, value))) => json!({ "outcome": o.label(), "value_ppm": value }), + Some(Err(r)) => json!(format!("reject reason={r}")), + }, + }), + } +} + +/// The outcome [`plan`] gives, written as a case states one. +fn plan_outcome(p: &Result) -> Value { + match p { + Err(r) => json!(format!("refuse reason={}", r.label())), + Ok(p) => json!({ + "claims": p.claims.iter().map(ClaimVerdict::label).collect::>(), + "records": p.records.iter().map(RecordVerdict::label).collect::>(), + "choices": p.choices.iter().map(|c| match c { + Err(r) => json!(format!("reject reason={r}")), + Ok(c) => json!({ + "outcome": c.outcome.label(), + "object": c.object.map(Which::label), + "source": c.source, + "arrival_ms": c.arrival_ms, + "value_ppm": c.value_ppm, + }), + }).collect::>(), + }), + } +} + +/// A claim case's outcome through steps 1–4. +fn claim_outcome(wire: &str) -> String { + match ClaimReceipt::from_json(wire).and_then(|c| c.verify()) { + Ok(()) => "accept".into(), + Err(r) => format!("reject step={} reason={}", r.step, r.reason.label()), + } +} + +/// A value case's outcome: the entry read alone (its fallback, if any, held to a subject of +/// zeros), its value at the instant and its end. +fn value_outcome(c: &Value) -> Result { + let e = TimelinessEntry::from_value(&c["entry"], &[0; 32]).map_err(|r| format!("entry: {}", r.label()))?; + let h = c["at_ms"].as_u64().ok_or("at_ms")?; + Ok(json!({ "value_ppm": e.value_at(h), "end_ms": e.end_ms() })) +} + +fn strings(v: &Value, out: &mut Vec) { + match v { + Value::String(s) => out.push(s.clone()), + Value::Array(a) => a.iter().for_each(|x| strings(x, out)), + Value::Object(m) => m.values().for_each(|x| strings(x, out)), + _ => {} + } +} + +/// Check a corpus's files against this module: each case's outcome, every reason of §9 and +/// every outcome of §6.3. Returns the failures. +pub fn verify(files: &BTreeMap) -> Vec { + let mut fails = Vec::new(); + let Some(text) = files.get("vectors.json") else { return vec!["no vectors.json".into()] }; + let doc: Value = match serde_json::from_str(text) { + Ok(d) => d, + Err(e) => return vec![format!("vectors.json: {e}")], + }; + let empty = Vec::new(); + let mut stated = Vec::new(); + let mut check = |kind: &str, run: &dyn Fn(&Value) -> Result| { + let cases = doc[kind].as_array().unwrap_or(&empty); + if cases.is_empty() { + fails.push(format!("no {kind} cases")); + } + for c in cases { + let name = c["name"].as_str().unwrap_or("?"); + match run(c) { + Err(e) => fails.push(format!("{name}: {e}")), + Ok(got) if got != c["outcome"] => fails.push(format!("{name}: stated {} got {got}", c["outcome"])), + Ok(_) => {} + } + strings(&c["outcome"], &mut stated); + } + }; + check("claims", &|c| Ok(json!(claim_outcome(c["claim"].as_str().unwrap_or(""))))); + check("values", &value_outcome); + check("verdicts", &|c| Ok(outcome_of(&verdict(&inputs_of(c)?)))); + check("plans", &|c| Ok(plan_outcome(&plan(&plan_inputs_of(c)?)))); + for code in CODES { + if !stated.iter().any(|s| s == code || s.ends_with(&format!("reason={code}"))) { + fails.push(format!("no case gives {code}")); + } + } + for outcome in OUTCOMES { + if !stated.iter().any(|s| s == outcome) { + fails.push(format!("no case gives the outcome {outcome}")); + } + } + fails +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn the_corpus_reaches_every_stated_outcome() { + let files: BTreeMap = generate().into_iter().collect(); + let fails = verify(&files); + assert!(fails.is_empty(), "{}", fails.join("\n")); + } + + #[test] + fn a_changed_outcome_fails_verification() { + let mut files: BTreeMap = generate().into_iter().collect(); + let text = files["vectors.json"].replacen("\"value_ppm\": 333333", "\"value_ppm\": 333334", 1); + assert_ne!(text, files["vectors.json"], "the corpus states step_mid's value"); + files.insert("vectors.json".into(), text); + assert!(!verify(&files).is_empty()); + } + + #[test] + fn envelopes_are_their_stated_lengths_and_kinds() { + let g = groups(); + for p in [&g.g, &g.f, &g.f_other] { + for (e, _) in &p.objects { + assert_eq!(e.len() as u64, LENGTH); + } + } + let layer = Wai::from_bytes(&g.g.objects[3].0).expect("a WAI1"); + assert!(crate::codecs::is_refinement_only(layer.capability())); + assert!(Wai::from_bytes(&g.h.objects[1].0).is_err(), "H's object 1 is a WAI2"); + } +} diff --git a/wai/wai-rs/tests/cache_authority.rs b/wai/wai-rs/tests/cache_authority.rs new file mode 100644 index 000000000..d76bf42a2 --- /dev/null +++ b/wai/wai-rs/tests/cache_authority.rs @@ -0,0 +1,65 @@ +//! `wai.delivery.cache` (extensions/cache-authority.md): the committed corpus +//! `live-conformance/cache-authority/` regenerates byte for byte from its fixed seeds, holds no +//! other file, every case in it gets the outcome it states, §11 lists exactly the reasons the +//! reference reports, and jwp-receipts §3.1 lists the class codes at their steps. +#![cfg(feature = "cache_authority")] + +use std::collections::BTreeMap; +use std::path::PathBuf; +use wai::cache_authority::{corpus, CODES}; + +fn wai_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("..") +} + +fn committed() -> BTreeMap { + let dir = wai_dir().join("live-conformance/cache-authority"); + std::fs::read_dir(&dir) + .expect("the committed corpus") + .flatten() + .map(|e| (e.file_name().to_string_lossy().into_owned(), e.path())) + .filter(|(n, _)| n != "README.md") + .map(|(n, p)| (n, std::fs::read_to_string(p).expect("a text file"))) + .collect() +} + +#[test] +fn the_committed_corpus_regenerates_from_its_seeds() { + let files = committed(); + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let extra: Vec<&String> = files.keys().filter(|k| !generated.contains_key(*k)).collect(); + let missing: Vec<&String> = generated.keys().filter(|k| !files.contains_key(*k)).collect(); + let differ: Vec<&String> = generated.iter().filter(|(k, v)| files.get(*k).is_some_and(|f| f != *v)).map(|(k, _)| k).collect(); + assert!(extra.is_empty() && missing.is_empty() && differ.is_empty(), "extra {extra:?}, missing {missing:?}, differ {differ:?}: run `wai_cache_authority_vectors gen`"); +} + +#[test] +fn every_case_gets_its_stated_outcome() { + let fails = corpus::verify(&committed()); + assert!(fails.is_empty(), "{}", fails.join("\n")); +} + +/// §11 of the extension lists exactly the codes `CODES` has, each once, in order. +#[test] +fn the_extension_lists_the_reasons() { + let text = std::fs::read_to_string(wai_dir().join("extensions/cache-authority.md")).expect("the extension"); + let at = text.find("\n## 11. Reasons").expect("a §11"); + let end = text[at + 1..].find("\n## ").map_or(text.len(), |e| at + 1 + e); + let listed: Vec = + text[at..end].lines().filter(|l| l.starts_with("| `")).filter_map(|l| l.split('`').nth(1).map(String::from)).collect(); + let want: Vec = CODES.iter().map(|c| c.to_string()).collect(); + assert_eq!(listed, want, "§11's table and CODES differ"); +} + +/// jwp-receipts §3.1's table lists the class's codes: its rules at step 4, its checks against the +/// group and its objects at step 6. +#[test] +fn jwp_receipts_lists_the_class_codes() { + let text = std::fs::read_to_string(wai_dir().join("extensions/jwp-receipts.md")).expect("jwp-receipts"); + let class: Vec<&str> = CODES.iter().copied().filter(|c| c.starts_with("cache_transmission_")).collect(); + assert_eq!(class.len(), 8, "the class's codes"); + for (k, code) in class.iter().enumerate() { + let step = if k < 3 { 4 } else { 6 }; + assert!(text.contains(&format!("| {step} | `{code}` |")), "jwp-receipts §3.1 does not list {code} at step {step}"); + } +} diff --git a/wai/wai-rs/tests/impression_aggregate.rs b/wai/wai-rs/tests/impression_aggregate.rs new file mode 100644 index 000000000..f2a450010 --- /dev/null +++ b/wai/wai-rs/tests/impression_aggregate.rs @@ -0,0 +1,95 @@ +//! `wai.delivery.impressions` (extensions/impression-aggregates.md): the committed corpus +//! `live-conformance/impressions/` regenerates byte for byte from its fixed seeds, holds no other +//! file, every case in it gets the outcome it states, §10 lists exactly the reasons the reference +//! reports, each standing receipt's result is its contributions' tally and stitched presentation's +//! own count of the flight's claims (§8.11), and the size bounds of §5.4 and §6.4 decide a +//! file's outcome at their edge. +#![cfg(feature = "impression_aggregate")] + +use std::collections::BTreeMap; +use std::path::PathBuf; +use wai::impression_aggregate::{ + accept, corpus, encode_hpke_list, TaskFile, UploadFile, CATALOGUE_MALFORMED, CODES, MAX_TASK_FILE, MAX_UPLOAD, TASK_FILE_MALFORMED, UPLOAD_MALFORMED, +}; +use wai::telemetry_aggregate::dap::{HpkeCiphertext, HpkeConfig, Report, ReportMetadata}; + +fn wai_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("..") +} + +fn committed() -> BTreeMap { + let dir = wai_dir().join("live-conformance/impressions"); + std::fs::read_dir(&dir) + .expect("the committed corpus") + .flatten() + .map(|e| (e.file_name().to_string_lossy().into_owned(), e.path())) + .filter(|(n, _)| n != "README.md") + .map(|(n, p)| (n, std::fs::read_to_string(p).expect("a text file"))) + .collect() +} + +#[test] +fn the_committed_corpus_regenerates_from_its_seeds() { + let files = committed(); + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let extra: Vec<&String> = files.keys().filter(|k| !generated.contains_key(*k)).collect(); + let missing: Vec<&String> = generated.keys().filter(|k| !files.contains_key(*k)).collect(); + let differ: Vec<&String> = generated.iter().filter(|(k, v)| files.get(*k).is_some_and(|f| f != *v)).map(|(k, _)| k).collect(); + assert!(extra.is_empty() && missing.is_empty() && differ.is_empty(), "extra {extra:?}, missing {missing:?}, differ {differ:?}: run `wai_impression_aggregate_vectors gen`"); +} + +#[test] +fn every_case_gets_its_stated_outcome() { + let fails = corpus::verify(&committed()); + assert!(fails.is_empty(), "{}", fails.join("\n")); +} + +/// §8.11: each standing receipt's result is the plaintext tally of its contributions, and the +/// flight's table gives per creative what stitched presentation's verifier gives. +#[test] +fn aggregation_reproduces_the_plaintext_and_stitched_counts() { + let fails = corpus::equivalence(); + assert!(fails.is_empty(), "{}", fails.join("\n")); +} + +/// §10 of the extension lists exactly the codes `CODES` has, each once, in order. +#[test] +fn the_extension_lists_the_reasons() { + let text = std::fs::read_to_string(wai_dir().join("extensions/impression-aggregates.md")).expect("the extension"); + let at = text.find("\n## 10. Reasons").expect("a §10"); + let end = text[at + 1..].find("\n## ").map_or(text.len(), |e| at + 1 + e); + let listed: Vec = + text[at..end].lines().filter(|l| l.starts_with("| `")).filter_map(|l| l.split('`').nth(1).map(String::from)).collect(); + let want: Vec = CODES.iter().map(|c| c.to_string()).collect(); + assert_eq!(listed, want, "§10's table and CODES differ"); +} + +/// The size bounds of §5.4 and §6.4, which no vector carries. A file of exactly the bound that +/// reads in every other respect is read: a task file passes step 1 and is refused at step 2, +/// where its catalogue of zeros does not read, and an upload file reads. The same file one byte +/// longer is refused at step 1, so a reader without the bound, or with another, fails here. +/// §4.3's bound decides no outcome: no catalogue that meets §4.3 comes near it. +#[test] +fn the_size_bounds_decide_at_their_edge() { + let list = |id: u8| encode_hpke_list(&[HpkeConfig { id, kem: 0x0020, kdf: 0x0001, aead: 0x0001, public_key: vec![9; 32] }]); + let task_file = |catalogue: usize| { + let f = TaskFile { task: vec![], catalogue: vec![0; catalogue], leader_hpke: list(1), helper_hpke: list(2), signer: [0; 32], signer_id: "x".into(), sig: [0; 64] }; + f.to_bytes() + }; + let at = MAX_TASK_FILE - task_file(0).len(); + let (inside, past) = (task_file(at), task_file(at + 1)); + assert_eq!((inside.len(), past.len()), (MAX_TASK_FILE, MAX_TASK_FILE + 1)); + assert_eq!(accept(&inside, &[], &[], None).err(), Some(CATALOGUE_MALFORMED), "a task file at the bound reaches step 2"); + assert_eq!(accept(&past, &[], &[], None).err(), Some(TASK_FILE_MALFORMED), "one byte past it is refused at step 1"); + let ct = HpkeCiphertext { config_id: 1, enc: vec![1], payload: vec![1] }; + let upload = |share: usize| { + let metadata = ReportMetadata { id: [0; 16], time: 0, public_extensions: vec![] }; + let r = Report { metadata, public_share: vec![0; share], leader_share: ct.clone(), helper_share: ct.clone() }; + UploadFile { task_id: [0; 32], reports: vec![r] }.encode() + }; + let at = MAX_UPLOAD - upload(0).len(); + let (inside, past) = (upload(at), upload(at + 1)); + assert_eq!((inside.len(), past.len()), (MAX_UPLOAD, MAX_UPLOAD + 1)); + assert_eq!(UploadFile::parse(&inside).map(|f| f.reports.len()).ok(), Some(1), "an upload file at the bound reads"); + assert_eq!(UploadFile::parse(&past).err(), Some(UPLOAD_MALFORMED), "one byte past it is refused"); +} diff --git a/wai/wai-rs/tests/rung_price.rs b/wai/wai-rs/tests/rung_price.rs new file mode 100644 index 000000000..c76abadf9 --- /dev/null +++ b/wai/wai-rs/tests/rung_price.rs @@ -0,0 +1,70 @@ +//! `wai.delivery.rung_price` (extensions/rung-price.md): the committed corpus +//! `live-conformance/prices/` regenerates byte for byte from its fixed seeds, holds no other file, +//! every case in it gets the outcome it states, §8 lists exactly the reasons the reference reports +//! and §6.2 exactly its limits, in order. +#![cfg(feature = "rung_price")] + +use std::collections::BTreeMap; +use std::path::PathBuf; +use wai::rung_price::{corpus, CODES, LIMITS}; + +fn wai_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("..") +} + +fn committed() -> BTreeMap { + let dir = wai_dir().join("live-conformance/prices"); + std::fs::read_dir(&dir) + .expect("the committed corpus") + .flatten() + .map(|e| (e.file_name().to_string_lossy().into_owned(), e.path())) + .filter(|(n, _)| n != "README.md") + .map(|(n, p)| (n, std::fs::read_to_string(p).expect("a text file"))) + .collect() +} + +/// The text of the section of `text` that starts at the line `heading`, to the next heading of +/// the same level. +fn section<'a>(text: &'a str, heading: &str) -> &'a str { + let at = text.find(&format!("\n{heading}")).unwrap_or_else(|| panic!("no {heading}")); + let level = heading.split(' ').next().expect("a heading's hashes"); + let end = text[at + 1..].find(&format!("\n{level} ")).map_or(text.len(), |e| at + 1 + e); + &text[at..end] +} + +/// The first code of each table row of a section: `| \`code\` | …`. +fn listed(section: &str) -> Vec { + section.lines().filter(|l| l.starts_with("| `")).filter_map(|l| l.split('`').nth(1).map(String::from)).collect() +} + +#[test] +fn the_committed_corpus_regenerates_from_its_seeds() { + let files = committed(); + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let extra: Vec<&String> = files.keys().filter(|k| !generated.contains_key(*k)).collect(); + let missing: Vec<&String> = generated.keys().filter(|k| !files.contains_key(*k)).collect(); + let differ: Vec<&String> = generated.iter().filter(|(k, v)| files.get(*k).is_some_and(|f| f != *v)).map(|(k, _)| k).collect(); + assert!(extra.is_empty() && missing.is_empty() && differ.is_empty(), "extra {extra:?}, missing {missing:?}, differ {differ:?}: run `wai_rung_price_vectors gen`"); +} + +#[test] +fn every_case_gets_its_stated_outcome() { + let fails = corpus::verify(&committed()); + assert!(fails.is_empty(), "{}", fails.join("\n")); +} + +/// §8 of the extension lists exactly the codes `CODES` has, each once, in order. +#[test] +fn the_extension_lists_the_reasons() { + let text = std::fs::read_to_string(wai_dir().join("extensions/rung-price.md")).expect("the extension"); + let want: Vec = CODES.iter().map(|c| c.to_string()).collect(); + assert_eq!(listed(section(&text, "## 8. Reasons")), want, "§8's table and CODES differ"); +} + +/// §6.2's table lists exactly the limits `LIMITS` has, in order. +#[test] +fn the_extension_lists_the_limits() { + let text = std::fs::read_to_string(wai_dir().join("extensions/rung-price.md")).expect("the extension"); + let want: Vec = LIMITS.iter().map(|c| c.to_string()).collect(); + assert_eq!(listed(section(&text, "### 6.2 Candidates and removals")), want, "§6.2's table and LIMITS differ"); +} diff --git a/wai/wai-rs/tests/timeliness.rs b/wai/wai-rs/tests/timeliness.rs new file mode 100644 index 000000000..e195b47c2 --- /dev/null +++ b/wai/wai-rs/tests/timeliness.rs @@ -0,0 +1,98 @@ +//! `wai.delivery.timeliness` (extensions/timeliness.md): the committed corpus +//! `live-conformance/timeliness/` regenerates byte for byte from its fixed seeds, holds no other +//! file, every case in it gets the outcome it states, §9 lists exactly the reasons the reference +//! reports and §6.3 exactly its outcomes, jwp-receipts §3.1 lists the class codes at their steps, +//! and delivery-telemetry §5.1 lists the switch reason of §8.6. +#![cfg(feature = "timeliness")] + +use std::collections::BTreeMap; +use std::path::PathBuf; +use wai::timeliness::{corpus, CODES, OUTCOMES}; + +fn wai_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("..") +} + +fn read(path: &str) -> String { + std::fs::read_to_string(wai_dir().join(path)).unwrap_or_else(|e| panic!("{path}: {e}")) +} + +fn committed() -> BTreeMap { + let dir = wai_dir().join("live-conformance/timeliness"); + std::fs::read_dir(&dir) + .expect("the committed corpus") + .flatten() + .map(|e| (e.file_name().to_string_lossy().into_owned(), e.path())) + .filter(|(n, _)| n != "README.md") + .map(|(n, p)| (n, std::fs::read_to_string(p).expect("a text file"))) + .collect() +} + +/// The text of the section of `text` that starts at the line `heading`, to the next heading of +/// the same level. +fn section<'a>(text: &'a str, heading: &str) -> &'a str { + let at = text.find(&format!("\n{heading}")).unwrap_or_else(|| panic!("no {heading}")); + let level = heading.split(' ').next().expect("a heading's hashes"); + let end = text[at + 1..].find(&format!("\n{level} ")).map_or(text.len(), |e| at + 1 + e); + &text[at..end] +} + +/// The first code of each table row of a section: `| \`code\` | …`. +fn listed(section: &str) -> Vec { + section.lines().filter(|l| l.starts_with("| `")).filter_map(|l| l.split('`').nth(1).map(String::from)).collect() +} + +#[test] +fn the_committed_corpus_regenerates_from_its_seeds() { + let files = committed(); + let generated: BTreeMap = corpus::generate().into_iter().collect(); + let extra: Vec<&String> = files.keys().filter(|k| !generated.contains_key(*k)).collect(); + let missing: Vec<&String> = generated.keys().filter(|k| !files.contains_key(*k)).collect(); + let differ: Vec<&String> = generated.iter().filter(|(k, v)| files.get(*k).is_some_and(|f| f != *v)).map(|(k, _)| k).collect(); + assert!(extra.is_empty() && missing.is_empty() && differ.is_empty(), "extra {extra:?}, missing {missing:?}, differ {differ:?}: run `wai_timeliness_vectors gen`"); +} + +#[test] +fn every_case_gets_its_stated_outcome() { + let fails = corpus::verify(&committed()); + assert!(fails.is_empty(), "{}", fails.join("\n")); +} + +/// §9 of the extension lists exactly the codes `CODES` has, each once, in order. +#[test] +fn the_extension_lists_the_reasons() { + let text = read("extensions/timeliness.md"); + let want: Vec = CODES.iter().map(|c| c.to_string()).collect(); + assert_eq!(listed(section(&text, "## 9. Reasons")), want, "§9's table and CODES differ"); +} + +/// §6.3's table lists exactly the outcomes `OUTCOMES` has, in order. +#[test] +fn the_extension_lists_the_outcomes() { + let text = read("extensions/timeliness.md"); + let want: Vec = OUTCOMES.iter().map(|c| c.to_string()).collect(); + assert_eq!(listed(section(&text, "### 6.3 Lines")), want, "§6.3's table and OUTCOMES differ"); +} + +/// jwp-receipts §3.1's table lists the class's codes: its rules at step 4, its checks against the +/// group, its objects and their fallbacks at step 6. +#[test] +fn jwp_receipts_lists_the_class_codes() { + let text = read("extensions/jwp-receipts.md"); + let class: Vec<&str> = CODES.iter().copied().filter(|c| c.starts_with("timeliness_") && *c != "timeliness_contradicted").collect(); + assert_eq!(class.len(), 13, "the class's codes"); + for (k, code) in class.iter().enumerate() { + let step = if k < 5 { 4 } else { 6 }; + assert!(text.contains(&format!("| {step} | `{code}` |")), "jwp-receipts §3.1 does not list {code} at step {step}"); + } +} + +/// delivery-telemetry §5.1 lists the switch reason a sink records when it presents a fallback +/// (§8.6), and the reference's list of switch reasons has it. +#[test] +fn delivery_telemetry_lists_the_switch_reason() { + let text = read("extensions/delivery-telemetry.md"); + let reasons = section(&text, "## 5. Switch reasons"); + assert!(reasons.contains("`not-held-by-deadline`"), "delivery-telemetry §5.1 does not list not-held-by-deadline"); + assert!(wai::delivery_terms::SWITCH_REASONS.contains(&"not-held-by-deadline")); +} -- 2.54.0 (Apple Git-157)