rcourtman
88dd588123
Stop timing the per-segment route normaliser
...
The advisory Benchmarks check failed four pull requests on
NormalizeSegment alone in the last 48 paired runs: #2217 , #2225 , #2252
and #2253 . None of them touched the normaliser. On #2252 all five
sub-benchmarks rose 25-39% together. Nine other runs moved the rows
down by more than 10% instead, -20% to -28% on #2228 , #2230 and #2242 .
Those 13 runs used EPYC 7763, EPYC 9V74 and Intel Xeon runners.
The values are quantized. On EPYC 7763 short_name is 2.50ns or 3.12ns
and uuid is about 29.6ns or 40.5ns, a cycle or two per call, or one
per byte of the UUID scan. Go aligns these functions to 32 bytes, so a
change anywhere earlier in the binary can move them between the halves
of a 64-byte block. A 32-byte shift is enough: on pulse-dev, adding an
unrelated init-time function ahead of the normaliser flipped that
parity and failed the old tree the way #2252 did, all five rows +25% to
+40% at p=0.000 and nothing else flagged. More samples cannot separate
that from a real change, and batching does not help, because every
call repeats the same instructions.
The route-level rows do not behave this way. Over the same 48 runs no
NormalizeRoute row except the root case retired in #2255 moved by more
than 10%. with_uuid came closest at 9.2%.
The guarantees the benchmark carried now live in deterministic tests.
TestNormalizeSegment, TestLooksLikeUUID and TestIsNumeric already pin
classification. TestNormalizeSegment_DoesNotAllocate pins zero
allocations for the five former inputs, and fails with one allocation
per call when the pass-through return copies the segment. It stores
each result in a package-level sink: when normalizeSegment was cut
down to an inlinable copy, a discarded result let the compiler keep
short segments on the stack, and the test missed the allocation.
Timing regressions still show in BenchmarkNormalizeRoute, since every
path runs its segments through normalizeSegment. The proofs below are
paired runs of the CI runner's recipe on pulse-dev, narrowed to
./internal/api/ and raised to 30 samples, because the shared host's
load spread these rows by up to 25%, against about 1% on CI runners.
- looksLikeUUID scanning twice: check-bench-regression.sh exited 1,
flagging only NormalizeRoute/with_uuid, +13.7% (p=0.005).
- normalizeSegment doing its work twice: exited 1, flagging only
NormalizeRoute/with_uuid, +21.9% (p=0.030).
- the candidate against a copy of itself: exited 0.
- the candidate against itself plus the same init-time function:
exited 0. The route rows still moved 4-5%, and with_uuid 9.2%
(p=0.000).
The margin for a UUID-scan slowdown is thin. On EPYC 7763 the scan is
about 30ns of a 280ns with_uuid call, so doubling it reads as roughly
+11% to +14%, while layout alone has moved with_uuid by up to 9.2% both
on CI and in the probe above. Giving UUIDs a larger share of a route
would make that row flip the way this one did; a smaller share would
hide the slowdown.
2026-09-24 17:33:21 +01:00
..
2026-08-29 23:48:28 +01:00
2026-08-31 23:52:25 +01:00
2026-09-08 11:37:20 +01:00
2026-08-21 14:56:04 +01:00
2026-08-21 14:56:04 +01:00
2026-08-30 12:55:50 +01:00
2026-09-23 22:23:20 +01:00
2026-09-19 17:26:25 +01:00
2026-07-12 22:13:04 +01:00
2026-03-18 16:06:30 +00:00
2026-07-23 22:11:48 +01:00
2026-08-09 13:36:07 +01:00
2026-03-18 16:06:30 +00:00
2026-08-05 14:34:50 +01:00
2026-08-31 00:43:42 +01:00
2026-08-30 08:36:31 +01:00
2026-07-11 16:08:44 +01:00
2026-08-23 09:18:44 +01:00
2026-09-07 17:24:25 +01:00
2026-07-12 23:15:54 +01:00
2026-08-31 23:52:25 +01:00
2026-08-31 23:52:25 +01:00
2026-07-13 17:00:36 +01:00
2026-07-19 14:48:24 +01:00
2026-09-07 17:24:25 +01:00
2026-09-07 17:24:25 +01:00
2026-07-24 10:33:57 +01:00
2026-04-22 00:05:57 +01:00
2026-04-22 00:05:57 +01:00
2026-04-22 00:05:57 +01:00
2026-09-08 21:29:36 +01:00
2026-07-11 19:49:17 +01:00
2026-07-10 00:14:01 +01:00
2026-07-11 19:49:17 +01:00
2026-06-23 17:26:15 +01:00
2026-07-11 11:54:56 +01:00
2026-07-11 11:54:56 +01:00
2026-05-12 12:06:27 +01:00
2026-09-24 10:42:33 +01:00
2026-06-23 17:26:15 +01:00
2026-07-11 21:27:00 +01:00
2026-08-31 00:06:24 +01:00
2026-08-30 18:00:33 +01:00
2026-08-30 18:00:33 +01:00
2026-07-02 23:27:49 +01:00
2026-09-24 10:42:33 +01:00
2026-09-01 15:53:02 +01:00
2026-08-30 14:26:01 +01:00
2026-09-08 21:29:36 +01:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-09-01 13:59:36 +01:00
2026-09-01 13:59:36 +01:00
2026-07-11 19:49:17 +01:00
2026-08-27 18:20:03 +01:00
2026-09-08 21:29:36 +01:00
2026-09-10 17:06:27 +01:00
2026-07-18 20:23:41 +01:00
2026-07-18 20:23:41 +01:00
2026-03-24 23:59:52 +00:00
2026-03-27 08:39:59 +00:00
2026-09-06 17:42:24 +01:00
2026-06-04 11:23:05 +01:00
2026-09-06 17:42:24 +01:00
2026-03-18 16:06:30 +00:00
2026-09-06 17:42:24 +01:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-08-14 03:11:10 +01:00
2026-07-18 12:14:12 +01:00
2026-06-23 17:26:15 +01:00
2026-03-19 04:04:14 +00:00
2026-09-07 09:45:31 +01:00
2026-07-11 12:43:55 +01:00
2026-09-02 11:15:22 +01:00
2026-06-23 17:26:15 +01:00
2026-09-05 21:43:02 +01:00
2026-03-18 16:06:30 +00:00
2026-05-15 22:45:48 +01:00
2026-09-06 17:42:24 +01:00
2026-06-07 00:06:34 +01:00
2026-09-07 17:24:25 +01:00
2026-09-07 17:24:25 +01:00
2026-04-28 15:49:18 +01:00
2026-06-03 12:29:37 +01:00
2026-03-26 17:12:27 +00:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-27 14:43:09 +01:00
2026-09-08 02:08:15 +01:00
2026-03-18 16:06:30 +00:00
2026-05-28 15:10:39 +01:00
2026-09-08 02:08:15 +01:00
2026-01-25 21:08:44 +00:00
2026-09-10 18:21:29 +01:00
2026-05-08 02:21:31 +01:00
2026-09-02 07:55:42 +01:00
2026-09-02 07:55:42 +01:00
2026-09-02 08:53:50 +01:00
2026-09-02 11:15:22 +01:00
2026-06-30 10:37:54 +01:00
2026-07-22 16:29:44 +01:00
2026-06-23 17:26:15 +01:00
2026-08-27 19:13:32 +01:00
2026-08-27 17:20:32 +01:00
2026-03-28 21:14:54 +00:00
2026-03-18 16:06:30 +00:00
2026-08-29 14:54:04 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-30 12:06:19 +01:00
2026-07-12 23:15:54 +01:00
2026-07-12 23:15:54 +01:00
2026-07-11 19:49:17 +01:00
2026-07-19 15:11:02 +01:00
2026-07-19 15:11:02 +01:00
2026-07-19 15:11:02 +01:00
2026-08-15 10:25:04 +01:00
2026-08-15 08:48:49 +01:00
2026-07-22 12:31:44 +01:00
2026-08-15 10:25:04 +01:00
2026-07-22 12:31:44 +01:00
2026-07-24 10:33:57 +01:00
2026-07-07 20:37:18 +01:00
2026-07-16 15:25:47 +01:00
2026-07-16 16:34:26 +01:00
2026-04-11 16:47:37 +01:00
2026-08-31 19:47:01 +01:00
2026-08-07 21:38:47 +01:00
2026-08-29 06:16:52 +01:00
2026-01-24 22:42:23 +00:00
2026-07-09 20:10:08 +01:00
2026-05-28 14:49:20 +01:00
2026-08-09 13:36:07 +01:00
2026-08-09 13:36:07 +01:00
2026-02-04 09:52:32 +00:00
2026-03-24 23:59:52 +00:00
2026-09-07 12:00:48 +01:00
2026-03-18 16:06:30 +00:00
2026-06-10 11:37:39 +01:00
2026-06-10 11:37:39 +01:00
2026-08-30 17:38:59 +01:00
2026-08-30 21:44:32 +01:00
2026-08-30 15:38:34 +01:00
2026-08-30 15:38:34 +01:00
2026-08-30 21:44:32 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-05-03 12:25:56 +01:00
2026-08-31 01:43:55 +01:00
2026-09-08 21:53:18 +01:00
2026-08-21 18:36:21 +01:00
2026-02-02 18:59:44 +00:00
2026-09-06 20:09:54 +01:00
2026-09-06 20:09:54 +01:00
2026-08-29 22:12:41 +01:00
2026-06-02 17:34:10 +01:00
2026-07-09 20:10:08 +01:00
2026-03-26 20:51:29 +00:00
2026-05-04 09:47:54 +01:00
2026-07-09 20:10:08 +01:00
2026-08-31 00:43:42 +01:00
2026-03-18 16:06:30 +00:00
2026-06-10 17:48:11 +01:00
2026-08-31 00:06:24 +01:00
2026-08-31 00:06:24 +01:00
2026-08-21 14:56:07 +01:00
2026-08-21 14:56:07 +01:00
2026-01-25 21:08:44 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-09-08 21:42:28 +01:00
2026-08-12 07:32:50 +01:00
2026-08-11 14:05:06 +01:00
2026-07-26 12:42:22 +01:00
2026-08-24 22:45:59 +01:00
2026-08-30 21:44:32 +01:00
2026-08-24 22:45:59 +01:00
2026-08-24 22:45:59 +01:00
2026-07-18 13:09:18 +01:00
2026-08-30 00:02:15 +01:00
2026-08-30 00:02:15 +01:00
2026-07-24 13:00:03 +01:00
2026-08-06 11:09:52 +01:00
2026-07-24 13:00:03 +01:00
2026-07-09 19:46:40 +01:00
2026-07-09 19:46:40 +01:00
2026-08-24 22:45:59 +01:00
2026-09-23 22:55:00 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 15:27:10 +01:00
2026-08-09 13:36:07 +01:00
2026-05-04 09:14:09 +01:00
2026-04-11 17:20:58 +01:00
2026-05-05 12:59:59 +01:00
2026-06-03 12:29:37 +01:00
2026-05-04 09:14:09 +01:00
2026-05-04 09:14:09 +01:00
2026-08-30 14:26:01 +01:00
2026-08-30 14:26:01 +01:00
2026-03-18 16:06:30 +00:00
2026-07-24 09:45:05 +01:00
2026-06-23 17:26:15 +01:00
2026-07-24 00:19:40 +01:00
2026-08-29 22:23:54 +01:00
2026-07-24 09:45:05 +01:00
2026-08-29 22:23:54 +01:00
2026-03-18 16:06:30 +00:00
2026-08-30 18:40:06 +01:00
2026-08-31 00:43:42 +01:00
2026-03-24 16:05:19 +00:00
2026-07-11 15:19:41 +01:00
2026-03-18 16:06:30 +00:00
2026-07-23 23:57:42 +01:00
2026-07-11 15:19:41 +01:00
2025-11-29 17:06:18 +00:00
2026-07-23 23:57:42 +01:00
2026-09-05 22:25:48 +01:00
2026-08-27 20:43:54 +01:00
2026-09-07 12:00:48 +01:00
2026-09-07 12:00:48 +01:00
2026-07-24 12:42:16 +01:00
2026-07-24 12:42:16 +01:00
2026-08-27 20:43:54 +01:00
2026-03-28 20:35:10 +00:00
2026-08-31 00:43:42 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-25 23:40:22 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-04-22 04:23:23 +01:00
2026-08-21 18:36:21 +01:00
2026-05-13 00:28:24 +01:00
2026-05-13 00:28:24 +01:00
2026-03-18 16:06:30 +00:00
2026-07-07 09:54:14 +01:00
2026-07-08 14:36:55 +01:00
2026-07-23 22:33:07 +01:00
2026-07-24 12:42:16 +01:00
2026-07-22 16:29:44 +01:00
2026-08-23 23:39:20 +01:00
2026-09-24 10:42:33 +01:00
2026-09-07 12:00:48 +01:00
2026-09-07 12:00:48 +01:00
2026-08-13 23:26:08 +01:00
2026-07-24 12:42:16 +01:00
2026-07-12 05:23:02 +01:00
2026-08-14 01:12:49 +01:00
2026-08-14 01:12:49 +01:00
2026-08-14 01:12:49 +01:00
2026-08-29 22:12:41 +01:00
2026-04-05 13:18:30 +01:00
2026-04-28 15:49:18 +01:00
2026-04-28 15:49:18 +01:00
2026-04-28 16:36:09 +01:00
2026-03-18 16:06:30 +00:00
2026-05-04 09:33:19 +01:00
2026-09-24 17:33:21 +01:00
2026-09-24 17:33:21 +01:00
2026-09-06 08:31:26 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-10 12:54:12 +01:00
2026-08-21 14:56:11 +01:00
2026-08-12 07:32:50 +01:00
2026-03-18 16:06:30 +00:00
2026-07-28 13:57:48 +01:00
2026-09-10 02:01:25 +01:00
2026-08-21 14:56:07 +01:00
2026-09-24 10:24:29 +01:00
2026-09-01 14:36:49 +01:00
2026-09-01 15:26:48 +01:00
2026-05-05 12:59:59 +01:00
2026-03-18 16:06:30 +00:00
2026-09-01 13:59:36 +01:00
2026-07-22 16:29:44 +01:00
2026-04-28 19:12:21 +01:00
2026-04-11 16:47:37 +01:00
2026-07-04 22:44:43 +01:00
2026-08-02 00:04:40 +01:00
2026-05-05 12:59:59 +01:00
2026-04-28 19:12:21 +01:00
2026-08-04 14:19:47 +01:00
2026-08-04 14:19:47 +01:00
2026-04-16 10:17:37 +01:00
2026-08-08 16:48:19 +01:00
2026-07-14 16:18:21 +01:00
2026-07-14 16:18:21 +01:00
2026-07-14 16:18:21 +01:00
2026-09-19 17:26:25 +01:00
2026-06-11 13:10:16 +01:00
2026-03-18 16:06:30 +00:00
2026-02-02 22:02:22 +00:00
2025-12-12 11:05:24 +00:00
2026-04-22 00:39:53 +01:00
2026-07-23 06:59:05 +01:00
2026-05-04 22:43:35 +01:00
2026-08-08 12:07:40 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-08-31 19:47:01 +01:00
2026-05-12 21:10:58 +01:00
2026-07-22 15:53:34 +01:00
2026-05-12 21:10:58 +01:00
2026-06-09 21:42:21 +01:00
2026-07-24 12:42:16 +01:00
2026-07-24 12:42:16 +01:00
2026-03-18 16:06:30 +00:00
2026-01-19 19:26:18 +00:00
2025-12-10 00:29:07 +00:00
2026-08-26 13:54:55 +01:00
2026-09-02 11:15:22 +01:00
2026-05-10 22:59:23 +01:00
2026-06-03 12:29:37 +01:00
2026-06-23 17:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-08-21 14:56:04 +01:00
2026-04-22 05:42:45 +01:00
2026-08-07 21:38:47 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 16:47:37 +01:00
2026-04-11 16:47:37 +01:00
2026-06-09 21:42:21 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 12:29:37 +01:00
2026-08-21 14:56:07 +01:00
2026-09-08 21:14:29 +01:00
2026-03-18 16:06:30 +00:00
2026-09-08 11:37:20 +01:00
2026-03-18 16:06:30 +00:00
2026-07-07 09:54:14 +01:00
2026-04-29 16:25:09 +01:00
2026-08-09 13:36:07 +01:00
2026-07-10 09:53:09 +01:00
2026-07-09 09:52:59 +01:00
2026-08-31 00:43:42 +01:00
2026-09-10 00:39:00 +01:00
2026-09-04 11:40:20 +01:00
2026-07-10 09:53:09 +01:00
2026-03-18 16:06:30 +00:00
2026-07-07 15:12:59 +01:00
2026-07-22 13:41:09 +01:00
2026-05-25 09:25:03 +01:00
2026-07-20 07:50:22 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-09-07 17:24:25 +01:00
2026-09-07 17:24:25 +01:00
2026-09-07 09:45:31 +01:00
2026-07-12 23:15:54 +01:00
2026-08-17 20:02:47 +01:00
2026-09-02 11:15:22 +01:00
2026-09-02 11:15:22 +01:00
2026-07-18 11:59:05 +01:00
2026-07-18 11:59:05 +01:00
2026-08-14 12:52:51 +01:00
2026-08-14 03:11:10 +01:00
2026-08-08 12:07:40 +01:00
2026-05-25 21:47:12 +01:00
2026-05-25 21:47:12 +01:00
2026-04-22 00:39:53 +01:00
2026-08-31 00:43:42 +01:00
2026-06-10 10:52:05 +01:00
2026-08-30 21:44:32 +01:00
2026-05-21 15:15:23 +01:00
2026-05-21 15:15:23 +01:00
2026-06-23 17:26:15 +01:00
2026-01-19 19:26:18 +00:00
2026-06-23 17:26:15 +01:00
2026-09-07 12:00:48 +01:00
2026-09-07 12:00:48 +01:00
2026-07-13 11:04:09 +01:00
2026-09-07 12:00:48 +01:00
2026-09-07 12:00:48 +01:00
2026-03-18 16:06:30 +00:00
2026-02-04 14:35:08 +00:00
2026-05-04 09:33:19 +01:00
2026-04-08 20:42:36 +01:00
2026-06-10 10:52:05 +01:00
2026-08-21 18:36:21 +01:00
2026-05-16 13:57:53 +01:00
2026-03-18 16:06:30 +00:00
2026-09-09 11:00:59 +01:00
2026-09-02 14:22:23 +01:00
2026-09-09 11:00:59 +01:00
2026-09-10 17:51:49 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 23:14:25 +01:00
2026-03-27 12:04:44 +00:00
2026-04-22 00:39:53 +01:00
2026-07-23 22:11:48 +01:00
2026-02-02 18:59:44 +00:00
2026-02-02 23:01:29 +00:00
2026-08-09 13:36:07 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-07 20:37:18 +01:00
2026-03-18 16:06:30 +00:00
2026-08-05 14:34:50 +01:00
2026-04-26 17:26:16 +01:00
2026-01-22 00:30:15 +00:00
2026-07-22 15:53:34 +01:00
2026-08-24 10:21:10 +01:00
2026-08-24 10:21:10 +01:00
2026-02-04 15:01:09 +00:00
2026-04-22 00:39:53 +01:00
2026-05-01 21:36:28 +01:00
2026-08-27 19:13:32 +01:00
2026-07-01 10:38:57 +01:00
2026-08-27 19:13:32 +01:00
2026-07-29 20:09:23 +01:00
2026-07-22 13:41:09 +01:00
2026-04-30 12:53:29 +01:00
2026-04-11 16:47:37 +01:00
2026-04-11 16:47:37 +01:00
2026-05-16 13:57:53 +01:00
2026-07-22 15:53:34 +01:00
2026-09-02 11:15:22 +01:00
2026-09-02 11:15:22 +01:00
2026-06-10 17:48:11 +01:00
2026-06-10 17:48:11 +01:00
2026-03-25 22:27:35 +00:00
2026-06-10 17:10:30 +01:00
2026-03-26 09:15:15 +00:00
2026-03-26 22:58:27 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 10:28:41 +00:00
2026-08-21 18:36:21 +01:00
2026-08-21 18:36:21 +01:00
2026-08-27 18:20:03 +01:00
2026-08-27 18:20:03 +01:00
2026-08-21 18:36:21 +01:00
2026-09-02 08:53:50 +01:00
2026-07-23 11:19:50 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-08-31 19:47:01 +01:00
2026-04-26 15:27:10 +01:00
2026-04-28 16:36:09 +01:00
2026-03-26 17:12:27 +00:00
2026-08-21 14:56:07 +01:00
2026-08-29 23:48:28 +01:00
2026-09-08 21:29:36 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-22 01:18:33 +01:00
2026-04-18 00:06:50 +01:00
2026-08-21 14:56:07 +01:00
2026-09-08 11:37:20 +01:00
2026-08-31 17:59:38 +01:00
2026-05-03 12:25:56 +01:00
2026-08-30 14:26:01 +01:00
2026-08-21 18:36:21 +01:00
2026-06-09 21:42:21 +01:00
2026-02-04 10:28:41 +00:00
2026-02-04 10:28:41 +00:00
2026-08-29 23:48:28 +01:00
2026-02-04 10:28:41 +00:00
2026-04-22 00:39:53 +01:00
2026-08-16 11:15:16 +01:00
2026-03-26 21:43:30 +00:00
2026-04-26 17:26:16 +01:00
2026-03-26 21:43:30 +00:00
2026-03-26 21:43:30 +00:00
2026-09-07 17:24:25 +01:00
2026-07-10 12:45:27 +01:00
2026-05-07 21:58:06 +01:00
2026-07-22 16:18:00 +01:00
2026-03-18 16:06:30 +00:00
2026-09-05 16:04:12 +01:00
2026-03-18 16:06:30 +00:00
2026-04-28 16:36:09 +01:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-08-05 17:33:57 +01:00
2026-08-30 18:40:06 +01:00
2026-08-31 00:06:24 +01:00
2026-07-23 22:33:07 +01:00
2026-09-06 12:45:40 +01:00
2026-08-08 09:42:21 +01:00
2026-06-03 14:42:43 +01:00
2026-08-31 19:47:01 +01:00
2026-09-06 17:42:24 +01:00
2026-09-10 06:52:38 +01:00
2026-07-30 16:25:36 +01:00
2026-07-30 16:25:36 +01:00
2026-08-12 09:20:01 +01:00
2026-08-12 09:20:01 +01:00
2026-08-14 00:18:23 +01:00
2026-08-14 00:18:23 +01:00
2026-07-07 16:35:07 +01:00
2026-05-21 16:26:00 +01:00
2026-05-03 13:19:51 +01:00
2026-08-31 00:43:42 +01:00
2026-05-03 12:48:01 +01:00
2026-04-29 16:25:09 +01:00
2026-04-01 12:00:31 +01:00
2026-05-21 16:15:53 +01:00
2026-07-09 19:46:40 +01:00
2026-09-10 06:52:38 +01:00
2026-09-10 06:52:38 +01:00
2026-09-17 12:35:20 +01:00
2026-08-31 01:43:55 +01:00
2026-08-31 01:43:55 +01:00
2026-09-10 06:52:38 +01:00
2026-08-29 05:19:19 +01:00
2026-08-11 16:38:21 +01:00
2026-09-23 22:11:03 +01:00
2026-09-15 02:22:04 +01:00
2026-07-10 01:28:33 +01:00
2026-09-23 22:11:03 +01:00
2026-08-31 00:43:42 +01:00
2026-09-17 12:35:20 +01:00
2026-08-11 16:38:21 +01:00
2026-08-30 18:00:33 +01:00
2026-05-04 00:50:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-30 12:06:19 +01:00
2026-08-28 07:08:08 +01:00
2026-08-09 13:36:07 +01:00
2026-07-07 16:35:07 +01:00
2026-08-09 13:36:07 +01:00
2026-08-09 13:36:07 +01:00
2026-07-23 06:34:03 +01:00
2026-09-19 17:26:25 +01:00
2026-04-11 14:51:10 +01:00
2026-05-03 12:48:01 +01:00
2026-07-07 22:04:46 +01:00
2026-04-01 16:36:44 +01:00
2026-07-09 19:46:40 +01:00
2026-07-09 19:46:40 +01:00
2026-07-23 07:15:13 +01:00
2026-03-18 16:06:30 +00:00
2026-09-01 01:02:17 +01:00
2026-05-05 12:59:59 +01:00
2026-08-08 12:07:40 +01:00
2026-07-23 22:33:07 +01:00
2026-04-07 10:24:53 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-08-20 14:27:12 +01:00
2026-07-28 13:28:55 +01:00
2026-03-18 16:06:30 +00:00
2026-08-12 09:20:01 +01:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-07-28 11:13:37 +01:00
2026-08-20 14:27:12 +01:00
2026-08-05 17:33:57 +01:00
2026-08-05 17:33:57 +01:00
2026-08-05 17:33:57 +01:00
2026-08-05 17:33:57 +01:00
2026-09-02 11:09:25 +01:00
2026-08-27 19:44:02 +01:00
2026-09-02 11:09:25 +01:00
2026-08-30 13:49:58 +01:00
2026-08-30 13:49:58 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 14:48:03 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 23:16:15 +01:00
2026-03-18 16:06:30 +00:00
2026-08-31 19:47:01 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-28 16:36:09 +01:00
2026-03-29 19:50:31 +01:00
2026-03-29 20:36:43 +01:00
2026-07-22 16:18:00 +01:00
2026-03-29 20:13:39 +01:00
2026-08-31 17:09:53 +01:00
2026-07-24 00:10:17 +01:00
2026-03-18 16:06:30 +00:00
2026-08-21 18:36:21 +01:00
2026-06-04 11:49:17 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-07-23 22:05:09 +01:00
2026-09-24 10:42:33 +01:00
2026-06-04 08:39:31 +01:00
2026-08-29 23:48:28 +01:00
2026-09-22 18:42:51 +01:00
2026-09-01 16:16:56 +01:00
2026-03-18 16:06:30 +00:00
2026-07-23 07:15:13 +01:00
2026-09-01 16:16:56 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 23:54:48 +01:00
2026-08-21 14:56:07 +01:00
2026-07-21 21:24:15 +01:00
2026-09-10 15:33:53 +01:00
2026-09-10 15:33:53 +01:00
2026-03-18 16:06:30 +00:00
2026-04-22 03:06:22 +01:00
2026-09-13 10:59:02 +01:00
2026-07-23 22:06:57 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 04:46:13 +01:00