Artifact 8797f53546bfe3438895e69d948fc65ee1957c4c0d7af3045aafb8e0d178b0b0:
Three fixes, each found by measuring the previous one's residue.
markUnchanged: a path byte-identical between baseline and target -- same digest, same mode, with requireClean having already proven the on-disk file matches -- is skipped by every mutation phase: staging both directions, the undo journal, deletion and rewrite. An update used to delete and rewrite the entire tree regardless of how little changed.
.zit-vstat: the stat sidecar written at materialization is now the BASELINE PLAN -- version-bound, CRC'd, carrying mode and plan order -- so requireClean rebuilds the baseline with zero tree flattens when it describes the current check-in, and proves most files clean by inode/size/mtime instead of reconstructing their content out of the log. Advisory throughout: any mismatch, staleness or corruption falls back to the flatten and the content compare, which stay authoritative.
ManagedSet.fromSortedPaths: building the 66k-entry managed set through insert was quadratic -- an O(n) sorted-position memmove plus the LIVE sortedUnique assert per call -- and measured at 23.9 SECONDS of a pkgsrc update, larger than every real phase combined. The plan's own order is already sorted and unique, so the set is now built in one pass, order enforced per adjacent pair, invariant asserted once.
Measured, same store and targets as #52's gate: sqlite (2.2k files): 117.8s flat -> 0.6s adjacent / 1.2s distant pkgsrc (66k files): 42.2s flat -> 6.8s adjacent / 8.9s distant pkgsrc user CPU: ~25s -> 1.3s Residue is stat I/O (two ~66k-file sweeps), not computation.
The lockstep flatten prune #52 proposed was never built: the flatten measured 178ms at 66k files once the real costs fell.
Tests: dirty AND delete of a skipped-diff file both refuse with the tree untouched; sidecar intact/absent/rebound-to-wrong-check-in all produce identical trees; an unchanged file provably keeps its inode; an updated tree equals a from-scratch materialization. Closes #52. by dmestas on 2026-08-10 13:41:20.
C update:\scost\stracks\sthe\sdiff,\snot\sthe\swidth\n\nThree\sfixes,\seach\sfound\sby\smeasuring\sthe\sprevious\sone's\sresidue.\n\nmarkUnchanged:\sa\spath\sbyte-identical\sbetween\sbaseline\sand\starget\s--\ssame\ndigest,\ssame\smode,\swith\srequireClean\shaving\salready\sproven\sthe\son-disk\nfile\smatches\s--\sis\sskipped\sby\severy\smutation\sphase:\sstaging\sboth\ndirections,\sthe\sundo\sjournal,\sdeletion\sand\srewrite.\sAn\supdate\sused\sto\ndelete\sand\srewrite\sthe\sentire\stree\sregardless\sof\show\slittle\schanged.\n\n.zit-vstat:\sthe\sstat\ssidecar\swritten\sat\smaterialization\sis\snow\sthe\nBASELINE\sPLAN\s--\sversion-bound,\sCRC'd,\scarrying\smode\sand\splan\sorder\s--\nso\srequireClean\srebuilds\sthe\sbaseline\swith\szero\stree\sflattens\swhen\sit\ndescribes\sthe\scurrent\scheck-in,\sand\sproves\smost\sfiles\sclean\sby\ninode/size/mtime\sinstead\sof\sreconstructing\stheir\scontent\sout\sof\sthe\nlog.\sAdvisory\sthroughout:\sany\smismatch,\sstaleness\sor\scorruption\sfalls\nback\sto\sthe\sflatten\sand\sthe\scontent\scompare,\swhich\sstay\sauthoritative.\n\nManagedSet.fromSortedPaths:\sbuilding\sthe\s66k-entry\smanaged\sset\sthrough\ninsert\swas\squadratic\s--\san\sO(n)\ssorted-position\smemmove\splus\sthe\sLIVE\nsortedUnique\sassert\sper\scall\s--\sand\smeasured\sat\s23.9\sSECONDS\sof\sa\npkgsrc\supdate,\slarger\sthan\severy\sreal\sphase\scombined.\sThe\splan's\sown\norder\sis\salready\ssorted\sand\sunique,\sso\sthe\sset\sis\snow\sbuilt\sin\sone\npass,\sorder\senforced\sper\sadjacent\spair,\sinvariant\sasserted\sonce.\n\nMeasured,\ssame\sstore\sand\stargets\sas\s#52's\sgate:\n\s\ssqlite\s\s(2.2k\sfiles):\s117.8s\sflat\s\s->\s\s0.6s\sadjacent\s/\s1.2s\sdistant\n\s\spkgsrc\s(66k\sfiles):\s\s\s\s42.2s\sflat\s\s->\s\s6.8s\sadjacent\s/\s8.9s\sdistant\n\s\spkgsrc\suser\sCPU:\s\s\s\s\s\s\s\s~25s\s\s\s\s\s\s\s->\s\s1.3s\nResidue\sis\sstat\sI/O\s(two\s~66k-file\ssweeps),\snot\scomputation.\n\nThe\slockstep\sflatten\sprune\s#52\sproposed\swas\snever\sbuilt:\sthe\sflatten\nmeasured\s178ms\sat\s66k\sfiles\sonce\sthe\sreal\scosts\sfell.\n\nTests:\sdirty\sAND\sdelete\sof\sa\sskipped-diff\sfile\sboth\srefuse\swith\sthe\ntree\suntouched;\ssidecar\sintact/absent/rebound-to-wrong-check-in\sall\nproduce\sidentical\strees;\san\sunchanged\sfile\sprovably\skeeps\sits\sinode;\nan\supdated\stree\sequals\sa\sfrom-scratch\smaterialization.\sCloses\s#52. D 2026-08-10T13:41:20.822 F .fossil-settings/ignore-glob 1e7a8c10ad58e9784eb011bcc04beb837ad043d54285d340040fae68baf34f86 F .github/workflows/ci.yml 5b4008b131e7eefe9c44e4ea387d39578c5c57a36d8da4be9ae3bb8b51f450a4 F LICENSE 702ae7ff835a2a971dae11c5cae039803bf394b77a6d8ec9f18693e449eaaf26 F README.md 67bb1afa5bff033e7ce51ff92e782a8a22a5e64541c219b338147da4b1ad8f47 F build.zig 81c5a04b7dc45670de3ad77072cf5202ae032c77ee40994ec8e88b59d4e44c0f F build.zig.zon dd3992bfc8da12e09a018c4697e38ddf79d07e225405af448ecca1ebefc3ea0c F docs/RELEASE-NOTES-0.1.0.md 5ed8b4d35ee23b7990261f8af34f5fa3cc629baf63b0059d9f7bb2d2c48dc802 F docs/RELEASE-NOTES-0.1.1.md 59eea8c487dc1e9190c44c371656e430cd5621031a71c502ecbae96802712857 F docs/RELEASE-NOTES-0.1.2.md 7c968ab247ad1194f9163e625a37452ae72bdc23f3e66e8ea26b39f6e0a52914 F docs/RELEASE-NOTES-0.1.3.md c8f703b8717040f96a9b77ad132bbe309ba4368ead5362739e4d5ef23f2d3286 F docs/rfcs/draft-fossil-artifact-format-00.txt a6d542a5effeb41d0ea1e916058ccdc0a5819787f167ef1ebad7814f5680e7ad F docs/rfcs/draft-fossil-delta-format-00.txt d8025d6d75322e33887c3334a4b9cc729960028b3c994ed01e5a474e4b388fd2 F docs/rfcs/draft-fossil-repo-state-00.txt b35480166caaf5d2c220086140a1d47034e9b4967689be8f4cd8779bbdbbc3da F docs/rfcs/draft-fossil-submanifests-00.txt eaef2e2e36f4fab96ec4ba9654a8e7c02317086918f6e32e45fd62897dfd48e9 F docs/rfcs/draft-fossil-sync-protocol-00.txt 153d31ec11ff6636793514df711389883d5dd3111b97d3da295a30308fb400b4 F scripts/check-citations.py 61ee163492d3c3fbace223afe1872047d47db1277d398c1cfd3458391a52c579 x F scripts/mirror-export.sh cc1130129e3c320cb9c1c5a05f505e45ece23d6bb3e0228da8e7ffe97bd5612b x F scripts/soak.README 3a2f028e4f87a395b2b779ac63260fcb68a7a9c7ffc9fea5b065d5bc065c4719 F scripts/soak.sh e184de2f7396ae88c1266d565092282dc9aff151fab8f971840d867562f7d1be x F src/annotate.zig 0a6b6728099e63c84681d1e5228ebb45fafb55d65df1720358247fd6e6532c63 F src/artifact.zig 42f08b15e0a38f3f85576d65dcc9a9675d422523cdd4e9f681043a2d67d8f0ca F src/artifact_fuzz.zig 98000540f71b1f8fa8a33d2f1da885a6c9c2507108fb1bc95630c3b6b4fab0dc F src/artifact_test.zig 13e3b0371b8d832030a183a5e6409d2d26d33db3ec7a0d940fd949b65b0856d2 F src/bisect.zig 70a0b3561380f216a0cea9ee9419bb1cd1b77d9b6a73786f41992dfd70ceb04a F src/checkout.zig 64f348e09318a40c09964e9a84fbfdf6825793fe60bf8fae0a36a5598d780db8 F src/ci_test.zig 58bfed5b61497fef337c2557dce346de211a98442d7d92f63aaf1385cd7e8078 F src/cli.zig 4555d8127c54bf5d08356ed6a0abab01f53f6eea910151282f16615ad596ece0 F src/cmd/checkout.zig 8e2681d43681400a13b3e8155bfada5d850c5d09018a66d1ff4e3324e02492bb F src/cmd/history.zig c9c478c17e448333103a8bbdc92469efe06b869e982729889f47e4e1d4da93b5 F src/cmd/sync.zig 2ba6f7886391b6ed7117a2d937aaa31764660f78fc38223e24f8d236a9fff9b2 F src/cmd/tracking.zig 7dbac84957e16e0072a4e51fc7efc3d9298fb5c959c7f410ceb89ba908eeb1e4 F src/cmd/verify.zig 59e75a6fefe9fdb951bc6bd1e3479b2fa557f80eabb65e8ea73d060d76ce2092 F src/container.zig fcac159b32c70a3270cedb03328c2d5029a6e4b2af5095fe65450bdd59baae86 F src/container_test.zig 36dd76e86a86be036ed5350dcfb439d8791665360bed0a051fbcaf03e00c52c7 F src/control_paths.zig beb6e26b27b0d0d7b85d1f8e52f0e29458e503eab6aae7b63358af7e26f78324 F src/crc32.zig 57429c29f4a67a9bfaebad8d5826471f9ff26cfd085c5424bf8e0fccba376bb4 F src/crc32_fuzz.zig 2e6c3425989051ec826b0f1208fa9716808011e71c98ff0a5ae2e38de524caea F src/delta.zig d489bfd517759021e4f006355c1b9f99717ceda2068739eb3a9f84e291a95a89 F src/delta_fuzz.zig 5e5c715722760d6f45c4eaaf9b5d495bf83c59e5869a0e0dd76bb57b007e3b53 F src/delta_test.zig a2774c0cb1799fab9eebf89bb85035e14a11af87f36349462d747b5c4b3b2b22 F src/dst.zig 5296a281d8c65b0ed2ff200c74f8fa3088f3d04bd4bd95badcddb6604ebeb95c F src/e2e.zig a18c32f975ff8c4b5016d59a90714f15fe7a24f33ce87322c02435512412d78c F src/extras.zig 63a4f1cace895cb6ce5574700eaeb36f51038cbcae300550c09c32408dcbcb80 F src/fuzz_tests.zig 60f1db664e0540a05944c3ddb230125ecfaa971e30aaa18c1001c349e861a083 F src/git_fast_export.zig 5ce982e47159005c6cde2bfb81b62d5329a2bc4353659ce7fe70cccc21b9208a F src/git_fast_export_test.zig 5c3e5e7a8aaeb2de28d75d651b3c81d7dc9d4d48990865d6c2deec37c0c08ce9 F src/git_import.zig e891e305d2543e715db91d36d5ffa53571b29222d07bd47f08307c946ab2ff81 F src/git_import_benchmark.zig bf1d04dd2a9a5bd4cf1f1eb774c54ca7eccea23019d93fd67db49f717bb4f847 F src/git_import_benchmark_support.zig 1e9bc27aed47e63f315cb5c8a4fea2f43a4ccd410e4aeb35c4a8a81391588f68 F src/git_import_cli.zig c5083aac7edf562dd089313d7ea8574c3c070c429c8a91484f7679187dc165e6 F src/git_import_cli_pipe_helper.zig 0cbb3eba0d56a9d4fb26b74f20565532372c4fbace16742d6943d04b13bdcdec F src/git_import_cli_test.zig 627d5e957553ad6abaad47bfd0e82b0c6a72bd76c5aa7b4c5ae019f7ac7d2c49 F src/git_import_e2e.zig b227feb25fc2ce0d718c26e273af7d4cf58df9f9273f702d4840ac0b3e1dd622 F src/git_import_impl.zig 6a3a1afce21b0962b3954f73b3e0ccd6675a6e4f9a51b7cce104b80a0329548a F src/git_import_refs_test.zig eea3d5bb9081215de36d4f63c8f46b67484151bf7bbe709b8877ef3d40f29c62 F src/git_import_test.zig 473966653d419ba9bfee8385c9a7aa550f46601f47d3460dc5838029fe8ca1a3 F src/git_import_verify.zig 049ace0eda7bbeaf8f42d7ab7d2a6820db3307339305fde35df20633edeaa88e F src/logstore.zig a644b1eba3cc490aea8026d23d6ac720177ab461e0bddcbf9ab9a7e8b21ac3ea F src/logstore_benchmark.zig dcfcd1d5ca8767e72440521c564f9b21b30d33b81cb2bf5334d1581aee0fc6bb F src/logstore_fuzz.zig 87d73166e13152fae8290e17f5dc4030c0f8a2cc15b570e9b8d3d39d667332d7 F src/logstore_test.zig b8f121d3caf4c66b6a197bb0d973c6449696b5306e0ddeb4182f85da86fc6ae7 F src/main.zig f1a872bce976f21fba02ed2aa7342692f28e47fa150a0158aadaabdf46216066 F src/managed.zig 8e7635a9e381c894cd82a4f5df062f7281deb31815047f6dd57dfeb7c2e1935f F src/merge3.zig 7fc52445688751bb8af30462549650660bcdbadabef54d892b6505d628248d0b F src/merge3_fuzz.zig 83dcd4d9f2f9c208baa15e79ceeea80a0ebf47456a9b045f6d1c1efe3a927582 F src/pack.zig 7a1e3ba7ffa8805dc5e2f9dc8689422e53641dc5a288eea1c5eeb2e95ae8d400 F src/packaging_test.zig 87e272e5a1487c035fe2f71463fa68006a04764cb7910f8acbb88805f9d4114f F src/release_assert_test.zig c4f044ebc6abdf46d0d61e4ae870ca1aa3c76487d61e14ddd61f14dfc05f69b0 F src/repocache.zig be42d53494c8f8261aedfc0a9c4d42a0499a1b376194433b539c665de86043a9 F src/repoimage.zig 7d2dc2f3c145e10e2d9ba6997705fd61a0cc0aedde8e171c253163d1279ccdd5 F src/repository.zig 031053d424593518642a7cd1749b9437a773061fc0e16561f4b3b9c64024c46a F src/repository_test.zig bb27725acae12f936fcb6c0f6c7afa3b9e4d417179d570b6388401145aca978d F src/repostate.zig 49f217ea0b44e1c6d0aa10af69851aa47ac66dd13aab7e3d61f8b8ce800eed8e F src/repostate_test.zig 79f3f9ee2a2c625abdcace58f18068a07829a86bb09158c41175bd7e7b802ea3 F src/repoview.zig 346057f928c2c2dea0b9c1eeb8c00fb2a129ca995bb68c70ea9359722ff40118 F src/rfc_vectors/artifact_a1_1_sha1_manifest.txt 82d8fc78b3fbf85efe80cb05e79db40c910bf0551e55b728c6f9c2ca7a42ddb6 F src/rfc_vectors/artifact_a1_2_sha3_technote.txt 832e850f83aab2e2a754aa97591109f7f05fb41e4126c7e71c88a59d6d17e55d F src/rfc_vectors/artifact_a3_rcard_manifest.txt 47e412ef211f095e93275fadf527909e581eef42357d8437fc7e299bfc3e62a7 F src/rfc_vectors/submanifest_a2_1_leaf.txt aa9d404c14fe4dadd2ab398961fb0dfe650a877c061f650d8233a5888e920acf F src/rfc_vectors/submanifest_a2_2_leaf.txt a50a722b465ed67b42ee0fbe61e4a19d6b1d22940ba5740e99e450921e3f52ea F src/rfc_vectors/submanifest_a3_tree_manifest.txt 95fba39cbaba76fccb15571516659cea6a0e8a60123c3e7bda1397649d87c509 F src/rfc_vectors/submanifest_a4_1_leaf.txt b8e53d0c46cb57b616cc0ed6de5ce2453715be6157b73d247bcd5de8a6510aaa F src/rfc_vectors/submanifest_a4_2_leaf.txt cff23e5ba71569397c1d816afa2dd0bfffc42339e402df36b63623846bd5fcbe F src/rfc_vectors/submanifest_a4_3_leaf.txt 9604c3f9774f7472d7bff44d5965f30250358a3e7a18046eeaf5f9d83bd5cdc6 F src/rfc_vectors/submanifest_a4_tree_manifest.txt 02dad8d4451ecf930c0c8637cf66351579aa746aebf0cf10f249b2a6dea37caa F src/rfc_vectors/submanifest_a5_delta_manifest.txt c74e37f650677523f7b6c2b4f094f766c4427a8ea180768ad75fa2de6bd14902 F src/rfc_vectors/submanifest_a5_encoding_leaf_1.txt e2899273b6a258ee18e053a79903d02469a275e2c80279c3657c7b803e2af6c0 F src/rfc_vectors/submanifest_a5_encoding_leaf_2.txt d7edb65681faaa4fd4f3541f04370421b057bf299098b781c7ec50d609869082 F src/rfc_vectors/submanifest_a5_encoding_leaf_3.txt c634332663f1cc0298aae6b61c799214a522877102cd6acdfe633f29fd79eeaf F src/rfc_vectors/submanifest_a5_encoding_manifest.txt deb0cb8b56fddfc4eebbab0f928cbdb19e64a6ba568064d5b43663dc1ef7263f F src/rfc_vectors/submanifest_a5_merge_leaf_1.txt 4bf4476e3aa41a1e3d26c85173c18fcd19f61871d4fc31215e523d7502078cc8 F src/rfc_vectors/submanifest_a5_merge_leaf_2.txt 6f3c993caa208b6fd44332d241676f9aa6a8c29dc7e28f287d5cdc088005a842 F src/rfc_vectors/submanifest_a5_merge_manifest.txt cef55b9b325fbc8abd59a044acafa57603c1b11a605e7fbba02d511a6da7a806 F src/rfc_vectors/submanifest_a5_three_level_interior_1.txt d42946de7b59647235f2166d964e9e5878bb1b3aba796b5e9c5e9dc719784e23 F src/rfc_vectors/submanifest_a5_three_level_interior_2.txt c1cc48fa9a3fbc34da7614632137890b4b09b33e750abc75514836c533e5f42e F src/rfc_vectors/submanifest_a5_three_level_manifest.txt c136ef62f5f13c18d06564649da6022d9fe25cde5be15dd1ad10b04015096424 F src/rfc_vectors/sync_a1_round1_reply.txt 638813029b10f81303b88859279afb17095d7c779c993f4267870909acabbeb9 F src/rfc_vectors/sync_a1_round2_file_cards.txt 4fa397741f7521cc4181d5d6b04dc143187f57602384eaa688552115ecda27c2 F src/rfc_vectors/sync_a1_round2_reply.txt af956808190c79b37a384041690c36b78845b471d6c6c01d1cced6e3ee92e6b1 F src/rfc_vectors/sync_a2_reply.txt aa130a127cde210f793c7842960083c765e0ffc7b673374fabc8f0edfe03d763 F src/root.zig 292ee5328e3828ae457aa4d8dfbf08e210153d8f04b3a039b6f35ce2ccc71059 F src/serve.zig e8689e787bd7ad86d1dac427343206cbfbec67080aaed49269e0c6fe3b337786 F src/serve_benchmark.zig ff55c6148e961c9374ad60a756d9d997fadbc854d2a79d625235b580aefb8656 F src/serve_fuzz.zig 3c39ea768ffa37599e2cc00c588f053870766ab91500aceb0d844a4322174687 F src/sim/assembly_sweep.zig 65016d6ae15579b7e4c7db91ea4659b21dc67533b3807ad30619a3b517ef4ed1 F src/sim/checkout_sweep.zig 80bb6fef67c88a29a2b6bdc372996c9f2c4ad65db289cddebc7a427b42ee5d39 F src/sim/faulty_dir.zig 35daf0603aca3093b88498b51feccad8297f85f49a5c9a7a9d61b02e834081f5 F src/sim/faulty_file.zig 720be41b7f9bd64b9fd2586201e2f62d79c6d60452196eedeb9708b170093424 F src/sim/gen.zig 8189752613ae0c87a34d3ea9ec612db7f2fd8a785b72264957563db478019eb3 F src/sim/net.zig 8fb057012ce0a33f67c928cd696bc2761fea8ba4012b2daa33871b2ba5dfe772 F src/sim/oracle.zig bc9e272bb3332b7b715fbcc254b63583aa294b769d423f4be48593152717dfb2 F src/sim/shun_sweep.zig 8b7b2a106a9eaaeb4d041ec0faa061d51a8c2a866f8fcae5d245f814085b063d F src/sim/storage_sweep.zig 1f1334ff9a66dd42820a5e378c1f67ea2529adb62ba79add06602323cac01ca6 F src/sim/sync_gen.zig 238d46942915b5c0e989dfc738b5927b5228468ea123e6f17b6fb593aa5cbf6e F src/sim/sync_sweep.zig be94610d574a32ac7cf46a73eb1db3bcf44574f0f16bb1b983e369e797369956 F src/smoke.zig f92f9c0bca43eed62fde54e24b72cbd7b9a1f3071f5530d582fa0010cb4c20df F src/storage.zig 5f3ffe2557c93eb7810422418677ca08c5e7483ec5427a51b3d60467a54e3d37 F src/storage_benchmark.zig 9bc22dc2b683bd3924756979f0c2efa075429540ed23a80fec57327bb77b4890 F src/storestat.zig 297034abc95ce5408fd2d2280384558698c1e888c892a8a9776cb0cc0fc0d33f F src/submanifest_benchmark.zig f2dfff89ef97406251120eeb2c351e6e31526fb8c15ca94369f0806f66980204 F src/submanifest_editor.zig 913cd7f7a26dd2b9c6a2a3cf4a6e4b9ed5b0e0489f9522bd6629a69a94ee026e F src/submanifest_editor_test.zig aa2ba7de6b68cdf83e4f16d1cd8494cfb91631d45a61acbebe3208fbe86951d8 F src/submanifest_partition.zig 1d06059185986c977d20433ea8318f0e48e7f58a59a7432fb5e93de75a64c932 F src/sync.zig 7ff592166f9a8e512fba40cd697112fde8e1621f946cca5dc57b0dd2bd333cf2 F src/sync_benchmark.zig 057b1475fa0fb225d34af5c027dd7e24a95b4417e5d2739319ce40fe395f1fd1 F src/sync_driver.zig c20a7b08fba551294060fbc1f100f7dba4e929568c400d0a181c90d4f22bc5d8 F src/sync_driver_test.zig 30b1697acefc8e21cdfb378d3c75490ee1734988bd6e9f9ab3ce0d210cde7e02 F src/sync_fuzz.zig 0ab9b7195535468db561cdcb405b7bf17536e2c6cb77a115ab1fe2badb001194 F src/sync_test.zig 2999e55d592f60fa7d807fff1c5788c13e74bbc246425068aed5b9f3ec9a50e4 F src/tidy.zig 59fba497b6a9a39314fc24a08334321ecaad1c026cc0a7d35c67a1e2066458a8 F src/transport.zig e90b182d5c4c14c7316c084503583122ac776f82d3aee74d3c4ef64d18f146ce F src/transport_fuzz.zig 43c310c51a6502fb2e049e6f43dfa151b1a632e6c885554ec6edce4ec62a8a48 F src/undo.zig 0b7e213c61ffe1511edc19fa414faed7fdaae93d4c3aaa90b68cde43ae34953e F src/update.zig 02512ca6469a141db9b32fccc31acd937f9a5ccf7a7078e31352bb65dd2278a4 F src/update_test.zig c734311ed0726df09f68b6dc3108d5ff41f72dfa963c237ebf1168b53ff42baf F src/warmread_benchmark.zig 290887ab34f7777effcd4062c000456b1fcf8a59f84617a96a740d15a0245776 P 84d3fe8f3201b5b90c6d03d6fc05ac386e4b95889678df1643e48fe599b6d079 R b96309c2359a0bc110cc7b18b0dcabbd U dmestas Z 1424ae9405fb00e4ff70b0ae9d2dfafb