diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d0c01bad4b..980a44423c 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -359,7 +359,7 @@ separates exact finite verification from retained all-size hypotheses. | [DaysSky](https://github.com/DaysSky) | [#150](https://github.com/CrocSwap/integer-mult-bounds/pull/150): delayed bit dirty reads, physical register recycling, exact scalar and frame checks. | | [William Porter / hpst3r](https://github.com/hpst3r) | [#147](https://github.com/CrocSwap/integer-mult-bounds/pull/147): terminal elimination on the shared bit word. | | [Thomas Marchand / Th0rgal](https://github.com/Th0rgal) | [#146](https://github.com/CrocSwap/integer-mult-bounds/pull/146): telescoping min-cut gauge subset, independently composed with the new schedule. | -| [Rohan Gupta / gupt1156](https://github.com/gupt1156) | [#148](https://github.com/CrocSwap/integer-mult-bounds/pull/148): tighter atom exponent and adapter toll. | +| [Rohan Gupta / gupt1156](https://github.com/gupt1156) | [#148](https://github.com/CrocSwap/integer-mult-bounds/pull/148): tighter atom exponent and adapter toll. The [source-retention receipt](research/pr148-source-retention/README.md) recovers 14 historical source gaps and separates the 11-file direct change from inherited work; whole-PR review remains separate. | | [James Chang / jamesyc](https://github.com/jamesyc) | [#124](https://github.com/CrocSwap/integer-mult-bounds/pull/124): compensated birth-read reuse principle used by #150. | | [SovereignSteak](https://github.com/SovereignSteak) | [#122](https://github.com/CrocSwap/integer-mult-bounds/pull/122): terminal accumulator elimination used by #147; [#151](https://github.com/CrocSwap/integer-mult-bounds/pull/151): independent matching gauge/recycling composition and the selected 473/10^6 atom exponent. | | [Andrew Barnes / Bortlesboat](https://github.com/Bortlesboat) | [#101](https://github.com/CrocSwap/integer-mult-bounds/pull/101): binds literal scatter operations to paid incidences and rejects malformed or unchecked inputs. | diff --git a/research/pr148-source-retention/.gitattributes b/research/pr148-source-retention/.gitattributes new file mode 100644 index 0000000000..de0ae9d140 --- /dev/null +++ b/research/pr148-source-retention/.gitattributes @@ -0,0 +1 @@ +original/** -text -whitespace diff --git a/research/pr148-source-retention/COVERAGE.json b/research/pr148-source-retention/COVERAGE.json new file mode 100644 index 0000000000..1bb92347c9 --- /dev/null +++ b/research/pr148-source-retention/COVERAGE.json @@ -0,0 +1,1149 @@ +{ + "comparison_base": "56b66d58297deca1d7dd130247d720e960f77a37", + "direct_base": "c8b22bc5c10dba497ac25804e27d9647d818e2ff", + "head_commit": "975c3cf5d4ee0c90d5a76500d431bfc59102bb72", + "main_commit": "ef5f39403610d231a0c27e8a6b4f08c10209bcd6", + "rows": [ + { + "blob": "76e425cdaf497f0d3bee70b25928543e5f75b5ea", + "direct_change": false, + "mode": "100644", + "path": ".gitattributes", + "storage": { + "kind": "pr181-archive", + "member": ".gitattributes" + } + }, + { + "blob": "6b1b33f5a5e7e2ca5c13c77ee6170a776a143965", + "direct_change": false, + "mode": "100644", + "path": ".github/workflows/verify.yml", + "storage": { + "kind": "pr181-archive", + "member": ".github/workflows/verify.yml" + } + }, + { + "blob": "6656308b6bc4c9568f9df103e1b021fca2293ab3", + "direct_change": false, + "mode": "100644", + "path": "Makefile", + "storage": { + "kind": "pr181-archive", + "member": "Makefile" + } + }, + { + "blob": "ba5ee784eb2a0f811b36ad425d797a3b80e98e4d", + "direct_change": false, + "mode": "100644", + "path": "NOTICE", + "storage": { + "kind": "pr181-archive", + "member": "NOTICE" + } + }, + { + "blob": "a02e230256b9592416b88c0f332df6f1c4c64d51", + "direct_change": false, + "mode": "100644", + "path": "PATCHING.md", + "storage": { + "kind": "main-file", + "path": "PATCHING.md" + } + }, + { + "blob": "1915f0d258820241d49576d198cb6b149d93f4c0", + "direct_change": true, + "mode": "100644", + "path": "README.md", + "storage": { + "kind": "recovered", + "path": "original/README.md" + } + }, + { + "blob": "e265f009784e2f51ffe398013e9ea3d0e4e16702", + "direct_change": true, + "mode": "100644", + "path": "SOURCES.json", + "storage": { + "kind": "recovered", + "path": "original/SOURCES.json" + } + }, + { + "blob": "539f79b1845c82d86abd0db5db7d6de1e3cc5cbd", + "direct_change": true, + "mode": "100644", + "path": "certificates/joint-dual-kappa.json", + "storage": { + "kind": "recovered", + "path": "original/certificates/joint-dual-kappa.json" + } + }, + { + "blob": "a6cfd1fb734998bc6538eb8cc7d019b636e6a67e", + "direct_change": true, + "mode": "100644", + "path": "certificates/joint-dual-validation.json", + "storage": { + "kind": "recovered", + "path": "original/certificates/joint-dual-validation.json" + } + }, + { + "blob": "27d657f0010880a81caabe23a1ea0e4a7b9f4579", + "direct_change": false, + "mode": "100644", + "path": "certificates/paired-cube-bit-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/paired-cube-bit-input.json" + } + }, + { + "blob": "2f6fe0ae7bf707b87020e74c60ec59c5641cfa55", + "direct_change": false, + "mode": "100644", + "path": "certificates/paired-cube-complex-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/paired-cube-complex-input.json" + } + }, + { + "blob": "5d521f8080f424b8f9b25af5cc9e46048bea8eeb", + "direct_change": true, + "mode": "100644", + "path": "certificates/paired-cube-input.json", + "storage": { + "kind": "recovered", + "path": "original/certificates/paired-cube-input.json" + } + }, + { + "blob": "882f860552fb88f69220c0f48fb8edb5ad3a8fc9", + "direct_change": true, + "mode": "100644", + "path": "certificates/paired-cube-network.json", + "storage": { + "kind": "recovered", + "path": "original/certificates/paired-cube-network.json" + } + }, + { + "blob": "f01ac324172e8d0bfed64e07ce4ebcc370c0d669", + "direct_change": false, + "mode": "100644", + "path": "certificates/partial-gauge-bit-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/partial-gauge-bit-input.json" + } + }, + { + "blob": "b404923928bfcae0a9c884350c08cf077c12afc0", + "direct_change": false, + "mode": "100644", + "path": "certificates/partial-gauge-complex-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/partial-gauge-complex-input.json" + } + }, + { + "blob": "158600c7e9d3566e03cdb82636173e80159407b4", + "direct_change": false, + "mode": "100644", + "path": "certificates/partial-gauge-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/partial-gauge-input.json" + } + }, + { + "blob": "fae9fef678e4873e0f7d72c2d942ce7e82b9ffde", + "direct_change": false, + "mode": "100644", + "path": "certificates/partial-gauge-network.json", + "storage": { + "kind": "main-file", + "path": "certificates/partial-gauge-network.json" + } + }, + { + "blob": "5824891de9f7cd0ff3ba7a1fc63d9e0e245eb42c", + "direct_change": false, + "mode": "100644", + "path": "certificates/stopped-product-bit-axis.json", + "storage": { + "kind": "main-file", + "path": "certificates/stopped-product-bit-axis.json" + } + }, + { + "blob": "7b1d99c51869ab176f4cb9ea497cba954ebde0b4", + "direct_change": false, + "mode": "100644", + "path": "certificates/stopped-product-complex-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/stopped-product-complex-input.json" + } + }, + { + "blob": "f0a910a4950aadc435a2f4f8397bc59f40e47e9d", + "direct_change": false, + "mode": "100644", + "path": "certificates/stopped-product-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/stopped-product-input.json" + } + }, + { + "blob": "998a8a7ea263f0c65c76557f5a0a0e2734d6bbab", + "direct_change": false, + "mode": "100644", + "path": "certificates/stopped-product-network.json", + "storage": { + "kind": "main-file", + "path": "certificates/stopped-product-network.json" + } + }, + { + "blob": "1956ae0e06be36fef58539675ffaeee2e9f26854", + "direct_change": false, + "mode": "100644", + "path": "certificates/three-stage-cover-bit-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/three-stage-cover-bit-input.json" + } + }, + { + "blob": "d1b89bcb71999365f24b6b5290e144481b368404", + "direct_change": false, + "mode": "100644", + "path": "certificates/three-stage-cover-complex-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/three-stage-cover-complex-input.json" + } + }, + { + "blob": "4277c8ee2c049eaf4d691cf37532b3c5607d48f8", + "direct_change": false, + "mode": "100644", + "path": "certificates/three-stage-cover-input.json", + "storage": { + "kind": "main-file", + "path": "certificates/three-stage-cover-input.json" + } + }, + { + "blob": "5fcdaf74203a2e099d0cdfb97e8b912c52151b87", + "direct_change": false, + "mode": "100644", + "path": "certificates/three-stage-cover-network.json", + "storage": { + "kind": "main-file", + "path": "certificates/three-stage-cover-network.json" + } + }, + { + "blob": "8fa50de6aa8ce6900cd301624ca5c68d85259985", + "direct_change": true, + "mode": "100644", + "path": "docs/paired-cube.md", + "storage": { + "kind": "recovered", + "path": "original/docs/paired-cube.md" + } + }, + { + "blob": "dd5c670a5128c8593cad395bbd7e2e03ce2ac563", + "direct_change": false, + "mode": "100644", + "path": "docs/partial-gauge.md", + "storage": { + "kind": "main-file", + "path": "docs/partial-gauge.md" + } + }, + { + "blob": "f12e9752a1ad4d90dd1a809a655611a2d490d01a", + "direct_change": false, + "mode": "100644", + "path": "docs/reproducibility.md", + "storage": { + "kind": "recovered", + "path": "original/docs/reproducibility.md" + } + }, + { + "blob": "5bc1cbc88e4e8e53f42d9718e6c5ba0a35988a27", + "direct_change": false, + "mode": "100644", + "path": "docs/stopped-product.md", + "storage": { + "kind": "main-file", + "path": "docs/stopped-product.md" + } + }, + { + "blob": "38554e1fb3699e4a3a78ae0a81f834ba26dc73ed", + "direct_change": false, + "mode": "100644", + "path": "docs/three-stage-cover.md", + "storage": { + "kind": "main-file", + "path": "docs/three-stage-cover.md" + } + }, + { + "blob": "0367eeb005298601f28a673861d6f71bf1d0ebbb", + "direct_change": false, + "mode": "100644", + "path": "notes/general-clifford-frames.tex", + "storage": { + "kind": "main-file", + "path": "notes/general-clifford-frames.tex" + } + }, + { + "blob": "7723490c391019c7e9b008c35585b7f73bb5341b", + "direct_change": true, + "mode": "100644", + "path": "notes/paired-cube-assembly.tex", + "storage": { + "kind": "recovered", + "path": "original/notes/paired-cube-assembly.tex" + } + }, + { + "blob": "dd84535b21923bab388305231f6f4c756aefacd8", + "direct_change": false, + "mode": "100644", + "path": "notes/paired-cube-bit.tex", + "storage": { + "kind": "main-file", + "path": "notes/paired-cube-bit.tex" + } + }, + { + "blob": "9dd1f10cb757d87a769266cb3b9a996a6f7a1048", + "direct_change": false, + "mode": "100644", + "path": "notes/paired-cube-construction.tex", + "storage": { + "kind": "recovered", + "path": "original/notes/paired-cube-construction.tex" + } + }, + { + "blob": "3cafe27d70ce9a8ddac3c93f7aa3ec24c2c42db7", + "direct_change": true, + "mode": "100644", + "path": "notes/paired-cube-note.tex", + "storage": { + "kind": "recovered", + "path": "original/notes/paired-cube-note.tex" + } + }, + { + "blob": "56e729572d859216b88a275ec53592b65f4ee56b", + "direct_change": false, + "mode": "100644", + "path": "notes/paired-cube-sharing.tex", + "storage": { + "kind": "main-file", + "path": "notes/paired-cube-sharing.tex" + } + }, + { + "blob": "4a09f324a3fe8a3c2397f34244b5cedebeb95a7c", + "direct_change": false, + "mode": "100644", + "path": "notes/partial-gauge-assembly.tex", + "storage": { + "kind": "main-file", + "path": "notes/partial-gauge-assembly.tex" + } + }, + { + "blob": "147fc5ab9189bb4f31783f911712dba112799756", + "direct_change": false, + "mode": "100644", + "path": "notes/partial-gauge-construction.tex", + "storage": { + "kind": "main-file", + "path": "notes/partial-gauge-construction.tex" + } + }, + { + "blob": "86615eca33b28cd80a7256648eecd051988ecfbb", + "direct_change": false, + "mode": "100644", + "path": "notes/partial-gauge-frames.tex", + "storage": { + "kind": "main-file", + "path": "notes/partial-gauge-frames.tex" + } + }, + { + "blob": "7592d4970b04b1524e4e47b6eeb324065fa2897f", + "direct_change": false, + "mode": "100644", + "path": "notes/partial-gauge-note.tex", + "storage": { + "kind": "main-file", + "path": "notes/partial-gauge-note.tex" + } + }, + { + "blob": "3932d3ade5ddeae127c246aed515e0346a40f067", + "direct_change": false, + "mode": "100644", + "path": "notes/stopped-product-assembly.tex", + "storage": { + "kind": "main-file", + "path": "notes/stopped-product-assembly.tex" + } + }, + { + "blob": "4a9037137cd3158dbeca6d9e3b1881a599ebfcb5", + "direct_change": false, + "mode": "100644", + "path": "notes/stopped-product-complex.tex", + "storage": { + "kind": "main-file", + "path": "notes/stopped-product-complex.tex" + } + }, + { + "blob": "94f7b81397e20406acba32231b7ef4bdc29c43a9", + "direct_change": false, + "mode": "100644", + "path": "notes/stopped-product-factorization.tex", + "storage": { + "kind": "main-file", + "path": "notes/stopped-product-factorization.tex" + } + }, + { + "blob": "20c44ce4866fa972ce64365dcf365b1659a83050", + "direct_change": false, + "mode": "100644", + "path": "notes/stopped-product-interface.tex", + "storage": { + "kind": "main-file", + "path": "notes/stopped-product-interface.tex" + } + }, + { + "blob": "a8b23254c8873d9c2480750a7d435b6cbab3b021", + "direct_change": false, + "mode": "100644", + "path": "notes/stopped-product-note.tex", + "storage": { + "kind": "main-file", + "path": "notes/stopped-product-note.tex" + } + }, + { + "blob": "983ffb6ac8fb9117360cd0797c00c05dfa071c9d", + "direct_change": false, + "mode": "100644", + "path": "notes/three-stage-cover-assembly.tex", + "storage": { + "kind": "main-file", + "path": "notes/three-stage-cover-assembly.tex" + } + }, + { + "blob": "f05225d21f92cf8cef21b6e12601d5b4d61991f0", + "direct_change": false, + "mode": "100644", + "path": "notes/three-stage-cover-bit.tex", + "storage": { + "kind": "main-file", + "path": "notes/three-stage-cover-bit.tex" + } + }, + { + "blob": "c54cb3d5ff13281fe2aa44ac3baeaac7fce75469", + "direct_change": false, + "mode": "100644", + "path": "notes/three-stage-cover-complex.tex", + "storage": { + "kind": "main-file", + "path": "notes/three-stage-cover-complex.tex" + } + }, + { + "blob": "f5ad09a450cc5dd31a5c6aa07ff08523064d7281", + "direct_change": false, + "mode": "100644", + "path": "notes/three-stage-cover-note.tex", + "storage": { + "kind": "main-file", + "path": "notes/three-stage-cover-note.tex" + } + }, + { + "blob": "590da4b892a08b9d5182fb3d8a983c6239dd27db", + "direct_change": false, + "mode": "100644", + "path": "notes/three-stage-cover-rows.tex", + "storage": { + "kind": "main-file", + "path": "notes/three-stage-cover-rows.tex" + } + }, + { + "blob": "6e96820eebdf1751f948bc3d6c4d2a8b22b9906a", + "direct_change": false, + "mode": "100644", + "path": "references/paired-cube/pr97-subset/selection.json", + "storage": { + "kind": "main-file", + "path": "references/paired-cube/pr97-subset/selection.json" + } + }, + { + "blob": "ce3562bcf1522fb7ca67f0053c511069fd070958", + "direct_change": false, + "mode": "100644", + "path": "references/paired-cube/selected-module/README.md", + "storage": { + "kind": "main-file", + "path": "references/paired-cube/selected-module/README.md" + } + }, + { + "blob": "0ba9215073b16aa61304fb8156fbb4ece0dbd0f9", + "direct_change": false, + "mode": "100644", + "path": "references/paired-cube/selected-module/SOURCE.json", + "storage": { + "kind": "main-file", + "path": "references/paired-cube/selected-module/SOURCE.json" + } + }, + { + "blob": "e9238210abfb712c3ea5a17d5455400046add1c7", + "direct_change": false, + "mode": "100644", + "path": "references/paired-cube/selected-module/matching-arcs.json", + "storage": { + "kind": "main-file", + "path": "references/paired-cube/selected-module/matching-arcs.json" + } + }, + { + "blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr62/LICENSE", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr62/LICENSE" + } + }, + { + "blob": "fd30e610b0c013a470b3802ea98d6287351259a8", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr62/NOTICE", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr62/NOTICE" + } + }, + { + "blob": "26e1166562eff395a1fbb632751f985586ed078f", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr62/PROOF.md", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr62/PROOF.md" + } + }, + { + "blob": "c4a7d407e05f66fa11559057a73b944a8a391712", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr62/SOURCE.json", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr62/SOURCE.json" + } + }, + { + "blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/LICENSE", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/LICENSE" + } + }, + { + "blob": "b5656377588f29410ce427f6a345eec363d7f879", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/NOTICE", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/NOTICE" + } + }, + { + "blob": "58824db895fba33cd277dba4db67dc075bf67887", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/PROOF.md", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/PROOF.md" + } + }, + { + "blob": "ce8b4721951fb4240be17237aa15afc9ded59e75", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/README.md", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/README.md" + } + }, + { + "blob": "970000a79fcfb2a59111f6dbd5d0b0faf5f9eeb6", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/SOURCE.json", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/SOURCE.json" + } + }, + { + "blob": "708e83ebd437bc4f672b9a95d7890b537782da26", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/bit-ledger-result.json", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/bit-ledger-result.json" + } + }, + { + "blob": "f22b6998f9415dd0b081a146f00e5c30065d6689", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/check_frames.py", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/check_frames.py" + } + }, + { + "blob": "4a19240e2fe5f55891d842fd451bd0cb24e4ae76", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/check_lifted.py", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/check_lifted.py" + } + }, + { + "blob": "d79abea77a5b6599193d34a0919f9775334d212b", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/deferred-readout.tex", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/deferred-readout.tex" + } + }, + { + "blob": "d045126217670dc82e7515230f9dc055ac9dc444", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/deferred.py", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/deferred.py" + } + }, + { + "blob": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/deferred_23.json.gz", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/deferred_23.json.gz" + } + }, + { + "blob": "a81cbaa61e2c09075f900546ec46833103b77ac1", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/linalg.py", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/linalg.py" + } + }, + { + "blob": "aa0de9ed8a4467008200617e74dd7c8a5b1d370a", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/round7_literal_frame_ledger.py", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/round7_literal_frame_ledger.py" + } + }, + { + "blob": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "direct_change": false, + "mode": "100644", + "path": "references/partial-gauge/pr97/witness_23.json.gz", + "storage": { + "kind": "main-file", + "path": "references/partial-gauge/pr97/witness_23.json.gz" + } + }, + { + "blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "direct_change": false, + "mode": "100644", + "path": "references/three-stage-cover/pr117/LICENSE", + "storage": { + "kind": "main-file", + "path": "references/three-stage-cover/pr117/LICENSE" + } + }, + { + "blob": "f7343a16289ee2691e7dbc592e4c27179eba84ea", + "direct_change": false, + "mode": "100644", + "path": "references/three-stage-cover/pr117/NOTICE", + "storage": { + "kind": "main-file", + "path": "references/three-stage-cover/pr117/NOTICE" + } + }, + { + "blob": "463a1ba65637222461597dc07c586f13c9986568", + "direct_change": false, + "mode": "100644", + "path": "references/three-stage-cover/pr117/SOURCE.json", + "storage": { + "kind": "main-file", + "path": "references/three-stage-cover/pr117/SOURCE.json" + } + }, + { + "blob": "a5b0598e4c328acef11baaa32852acdbfc97eeef", + "direct_change": false, + "mode": "100644", + "path": "references/three-stage-cover/pr117/dag.json.gz", + "storage": { + "kind": "main-file", + "path": "references/three-stage-cover/pr117/dag.json.gz" + } + }, + { + "blob": "673fbbba70fd80b490d7990bf3c4c682e34e385d", + "direct_change": false, + "mode": "100644", + "path": "references/three-stage-cover/pr117/replayed.py", + "storage": { + "kind": "main-file", + "path": "references/three-stage-cover/pr117/replayed.py" + } + }, + { + "blob": "a8a9a075d73142deac52adbbfb9ba6eb0b44316c", + "direct_change": true, + "mode": "100644", + "path": "research/joint-dual/SOURCE.json", + "storage": { + "kind": "recovered", + "path": "original/research/joint-dual/SOURCE.json" + } + }, + { + "blob": "3c586a22bfdd18feb8290d8d958719486d788d4d", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/README.md", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/README.md" + } + }, + { + "blob": "8521197b7183d819b24f057f2c80d8c62b2593d4", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/__init__.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/__init__.py" + } + }, + { + "blob": "2621ef817b7af24f3bbcb90b32c339b43d663e45", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/frames.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/frames.py" + } + }, + { + "blob": "a86ef6bfb5520cee27e2834b4fc5624d824034b9", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/gauges.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/gauges.py" + } + }, + { + "blob": "a440598df44ae9caa43e018a2a0f379281f52474", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/graph.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/graph.py" + } + }, + { + "blob": "f590aa7edd126c810032218fe9575235ca808daa", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/modules.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/modules.py" + } + }, + { + "blob": "9b0d6be233fbaa2dec7b9b4034ec707fbe39449a", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube/verify.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube/verify.py" + } + }, + { + "blob": "8e00899f47090556b9d7273a89140764217b3253", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube_bit.py", + "storage": { + "kind": "recovered", + "path": "original/scripts/paired_cube_bit.py" + } + }, + { + "blob": "db609dedd7965d8a126169dcd9d10629ce7c8c24", + "direct_change": true, + "mode": "100644", + "path": "scripts/paired_cube_network.py", + "storage": { + "kind": "recovered", + "path": "original/scripts/paired_cube_network.py" + } + }, + { + "blob": "3354975491648a904a51c758828cf5cddadcd88c", + "direct_change": false, + "mode": "100644", + "path": "scripts/paired_cube_producer.py", + "storage": { + "kind": "main-file", + "path": "scripts/paired_cube_producer.py" + } + }, + { + "blob": "7dae95e1224fc7bae20d6647397c76bb67ca9bca", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/README.md", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/README.md" + } + }, + { + "blob": "070066d031b64781303495b2f5810b2f1dff7c1e", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/__init__.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/__init__.py" + } + }, + { + "blob": "775921796cb860c8170513075ce9188b4a4a6220", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/binary.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/binary.py" + } + }, + { + "blob": "0186c1bedac8c7811f9eb6a7f9d794f64c05910c", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/cube.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/cube.py" + } + }, + { + "blob": "ba6581b02b4e3aa51d3d451001f302850225cadc", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/interval.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/interval.py" + } + }, + { + "blob": "5b66ec11bc875ea901f412d18d827d6b93b99a66", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/lift.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/lift.py" + } + }, + { + "blob": "9275aaa0299a0158394047f71e6c415edf5a9341", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/match.cpp", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/match.cpp" + } + }, + { + "blob": "925ffb4cfac898d718d1f5f88ff6efce96345533", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/scalar.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/scalar.py" + } + }, + { + "blob": "041c4919bd5babe5292498fb59388716eaa8880c", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/select.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/select.py" + } + }, + { + "blob": "a1afefe66d44d19f728a9f038f12dc26f5b1020f", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/verify.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/verify.py" + } + }, + { + "blob": "b9e95e0ea27c7b4584a06e98c1a905f31c6a36d6", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge/word.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge/word.py" + } + }, + { + "blob": "b38a57989a18a6b66ccf171d4ebae286cfd4c2f6", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge_bit.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge_bit.py" + } + }, + { + "blob": "53b7e06b96f4f271448e4908b24c4a039d87dd57", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge_network.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge_network.py" + } + }, + { + "blob": "2d91d92b8eff91ac9cd7dfe04be9fb71689eb780", + "direct_change": false, + "mode": "100644", + "path": "scripts/partial_gauge_producer.py", + "storage": { + "kind": "main-file", + "path": "scripts/partial_gauge_producer.py" + } + }, + { + "blob": "6c18be051fd266f33a3acfa0a7fde0bf534d4d6f", + "direct_change": false, + "mode": "100644", + "path": "scripts/stopped_product/README.md", + "storage": { + "kind": "main-file", + "path": "scripts/stopped_product/README.md" + } + }, + { + "blob": "f7a6e9066153e374017a03fc1a6c6f01d1655b5b", + "direct_change": false, + "mode": "100644", + "path": "scripts/stopped_product/__init__.py", + "storage": { + "kind": "main-file", + "path": "scripts/stopped_product/__init__.py" + } + }, + { + "blob": "ef1af2550763335e60b8427ba11fccd30025d507", + "direct_change": false, + "mode": "100644", + "path": "scripts/stopped_product/complex.py", + "storage": { + "kind": "main-file", + "path": "scripts/stopped_product/complex.py" + } + }, + { + "blob": "5f349a2676419e1002b0d41564d8cf51dd2f1f75", + "direct_change": false, + "mode": "100644", + "path": "scripts/stopped_product_network.py", + "storage": { + "kind": "main-file", + "path": "scripts/stopped_product_network.py" + } + }, + { + "blob": "aefc91d9a773b42c59a807fce323fbfbcf471c62", + "direct_change": false, + "mode": "100644", + "path": "scripts/stopped_product_producer.py", + "storage": { + "kind": "main-file", + "path": "scripts/stopped_product_producer.py" + } + }, + { + "blob": "74ccdc31e2302b1f0a9c2be2e8b9d42c3a00fe72", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover/README.md", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover/README.md" + } + }, + { + "blob": "546aa1b0372aee2d837370d7ea798a80f1767432", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover/__init__.py", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover/__init__.py" + } + }, + { + "blob": "24517f61f99c4a2add469d49b7fa5babfeadda20", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover/lift.py", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover/lift.py" + } + }, + { + "blob": "d7e77a902d5b113b7c3e44d9e4c8d6f03489a58b", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover/select.py", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover/select.py" + } + }, + { + "blob": "aa5aeca9660982ba86c01161f56017c069e69d5e", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover/verify.py", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover/verify.py" + } + }, + { + "blob": "8ba05a2eab11bcc7679c9cf88fe5d6f6576e0046", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover_network.py", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover_network.py" + } + }, + { + "blob": "9e7a21a758d26decb78b0561a8c515ab0c22a428", + "direct_change": false, + "mode": "100644", + "path": "scripts/three_stage_cover_producer.py", + "storage": { + "kind": "main-file", + "path": "scripts/three_stage_cover_producer.py" + } + } + ], + "schema_version": 1 +} diff --git a/research/pr148-source-retention/README.md b/research/pr148-source-retention/README.md new file mode 100644 index 0000000000..4a0433a630 --- /dev/null +++ b/research/pr148-source-retention/README.md @@ -0,0 +1,112 @@ +# PR148: all 114 changed paths retained, with the author delta separated + +**Source-consolidation result; no new kappa or mathematical acceptance.** The +historical reconciliation found 14 unresolved paths in Rohan Gupta's +[#148](https://github.com/CrocSwap/integer-mult-bounds/pull/148). This package +recovers those exact originals and checks the entire 114-path comparison: + +| Location | Paths | Evidence | +|---|---:|---| +| Existing files at the research base | 96 | Authenticated main-tree entries and matching payloads | +| Existing PR181 archive | 4 | Source-bound archive parts and matching member payloads | +| Newly recovered originals | 14 | Authenticated PR148 tree entries and matching payloads | + +The recoveries are exactly the gaps in the earlier +[comparison](../pr-reconciliation-20261012/content-comparison.json). No claim of +previous absence from every historical archive is made. Recovered files in +`original/` are inert evidence; they do not replace active code. The original +LICENSE and NOTICE are retained there too. + +## Author delta and source proof + +The historical 114-file comparison includes **103 paths unchanged by PR148's +two author commits**. Its direct change is **11 modified files** relative to +the paired-cube parent. The checker derives both complete differences and +authenticates the six-commit ancestry between the original comparison endpoints. + +The direct script delta changes `ATOM` from `1/1000` to `1/2000`, changes the +historical `KAPPA`, and updates its success message. Other direct changes update +associated certificates, exposition and source bindings. Three recovered files +are inherited unchanged: `docs/reproducibility.md`, +`notes/paired-cube-construction.tex` and `scripts/paired_cube_bit.py`. + +| Endpoint | Exact commit | +|---|---| +| Research base, main | `ef5f39403610d231a0c27e8a6b4f08c10209bcd6` | +| PR148 head | `975c3cf5d4ee0c90d5a76500d431bfc59102bb72` | +| Original comparison base | `56b66d58297deca1d7dd130247d720e960f77a37` | +| Direct paired-cube parent | `c8b22bc5c10dba497ac25804e27d9647d818e2ff` | + +[COVERAGE.json](COVERAGE.json) maps every path, original Git mode/blob and +storage location. [TREE-PROOF.json](TREE-PROOF.json) contains original raw +commits and trees: the verifier recomputes their Git IDs and derives the +differences. Source-mode authentication is distinct from byte retention in a +ZIP or Windows checkout; no POSIX permission restoration is claimed. +[SOURCES.json](SOURCES.json) supplies additional SHA256 and provenance pins. +Archive container hashes bind existing immutable inputs; no regenerated ZIP +is compared by container hash. + +## Reproduce and limits + +Python 3.12, standard library only, from the repository root: + +```sh +python3.12 -B scripts/research_package.py --package research/pr148-source-retention +``` + +The registered replay checks the receipt and deliberate failure controls. +Direct `python3 -B research/pr148-source-retention/verify.py` also works +without Git or network in a source export containing the declared inputs. +Checks remain active with `-O`; default verification does not write files. +[RESULT.json](RESULT.json) is the deterministic receipt. + +Local verification used Windows 11 and CPython 3.12.13: the registered replay, +nine test groups (one positive receipt and 25 rejection cases) normally and +with `-O`, native Git cross-checks of both differences and all 14 recovered +payloads, and an isolated `-I -O` source-export replay without Git data passed. +Hosted Linux CI is separate. + +Authoring-only `collect.py` regenerates the proof, mappings and originals +from the pinned Git objects. It requires PR148's history locally +(`git fetch origin pull/148/head`); it neither fetches nor executes original +code. The generic metadata hook needs the research base's Git history. + +This resolves **source coverage**, not whole-PR review. No complete historical +word/frame/moment/47-inequality replay, selected cold replay, native build or +formal multiplication proof is performed. Earlier mathematical review is +context only. The partially reviewed disposition and selected frontier remain +unchanged. + +## Open next questions + +Can PR148's complete historical verification be reconstructed from its pinned +tree and compared to the reviewed round-seven composition? First inspect the +11-file direct delta, then run historical `make paired-cube-verify` in a +separate complete checkout. Full execution and inherited algorithmic hypotheses +remain the blockers. This package's recovered subset is not a runnable full +checkout. The source gap no longer blocks inspection; see [TASK.json](TASK.json). + +## Coordination and credit + +Catalogue revision 2, task `overlap-receipt`, refined scope; nonce +`e325ee462b452b3dcb25489f51ec3c81`, scope key `5ae821d1b52092164092`. +[Discussion #1545](https://github.com/CrocSwap/integer-mult-bounds/discussions/1545) +records the claim and handoff. The initial overlap snapshot covered 714 open +PRs, 207 discussion messages and 327 local records, with complete reported +pagination. Exact-number checks found no matching retention claim. This is +bounded overlap evidence, not a novelty guarantee. + +Credit **Rohan Gupta / gupt1156** for PR148's adapter-toll refinement, +**icekylinx** for its paired-cube parent, **Chafik Boukhalfa / chafreaky** for +PR181, **eumemic** for the PR210 archive, and **Douglas Colkitt** for the +historical reviews and reconciliation. Original notices preserve earlier +construction and source credit. Adam Gall's +[PR1190](https://github.com/CrocSwap/integer-mult-bounds/pull/1190) and Hanson +Sun's [PR1423](https://github.com/CrocSwap/integer-mult-bounds/pull/1423) +are related source-closure work on different contributions; this separately +written checker claims no new provenance method. + +Prepared for **Thiago Goulart (@Tuafo)** with substantial **OpenAI Codex** +assistance in investigation, code, verification and writing. No independent +human review is claimed. New work is Apache-2.0; original licenses and notices +remain in force. diff --git a/research/pr148-source-retention/RESULT.json b/research/pr148-source-retention/RESULT.json new file mode 100644 index 0000000000..0cfd7ae075 --- /dev/null +++ b/research/pr148-source-retention/RESULT.json @@ -0,0 +1,47 @@ +{ + "authenticated_commits": 8, + "authenticated_objects": 235, + "comparison_base": "56b66d58297deca1d7dd130247d720e960f77a37", + "comparison_changed_paths": 114, + "coverage": { + "main-file": 96, + "pr181-archive": 4, + "recovered": 14 + }, + "direct_base": "c8b22bc5c10dba497ac25804e27d9647d818e2ff", + "direct_changed_paths": [ + "README.md", + "SOURCES.json", + "certificates/joint-dual-kappa.json", + "certificates/joint-dual-validation.json", + "certificates/paired-cube-input.json", + "certificates/paired-cube-network.json", + "docs/paired-cube.md", + "notes/paired-cube-assembly.tex", + "notes/paired-cube-note.tex", + "research/joint-dual/SOURCE.json", + "scripts/paired_cube_network.py" + ], + "head_commit": "975c3cf5d4ee0c90d5a76500d431bfc59102bb72", + "inherited_changed_paths": 103, + "live_inputs": 101, + "main_commit": "ef5f39403610d231a0c27e8a6b4f08c10209bcd6", + "recovered_paths": [ + "README.md", + "SOURCES.json", + "certificates/joint-dual-kappa.json", + "certificates/joint-dual-validation.json", + "certificates/paired-cube-input.json", + "certificates/paired-cube-network.json", + "docs/paired-cube.md", + "docs/reproducibility.md", + "notes/paired-cube-assembly.tex", + "notes/paired-cube-construction.tex", + "notes/paired-cube-note.tex", + "research/joint-dual/SOURCE.json", + "scripts/paired_cube_bit.py", + "scripts/paired_cube_network.py" + ], + "scope": "Exact historical source retention and author-delta classification only. No fresh mathematical replay, new kappa, PR disposition or selected-frontier change.", + "status": "PASS_PR148_SOURCE_RETENTION" +} diff --git a/research/pr148-source-retention/SOURCES.json b/research/pr148-source-retention/SOURCES.json new file mode 100644 index 0000000000..d2973ebf6c --- /dev/null +++ b/research/pr148-source-retention/SOURCES.json @@ -0,0 +1,624 @@ +{ + "base_commit": "ef5f39403610d231a0c27e8a6b4f08c10209bcd6", + "files": [ + { + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "path": "certificates/selected-result.json", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32", + "usage": "provenance" + }, + { + "git_blob": "c05fafaa25ba95b2d5af86b1800427198e3d20eb", + "path": "docs/research/agent-task-catalog.json", + "sha256": "89b5928bc92c81e2647b6d702a7ad85a6795b8f44e2eb267b2ff3145d8f2b2ce", + "usage": "provenance" + }, + { + "git_blob": "a02e230256b9592416b88c0f332df6f1c4c64d51", + "path": "PATCHING.md", + "sha256": "fa0ac0e3fb608f1bc4567f5ed3ec9dbda1fa428d2cfd16907b1bd0fef3c759a0", + "usage": "input" + }, + { + "git_blob": "27d657f0010880a81caabe23a1ea0e4a7b9f4579", + "path": "certificates/paired-cube-bit-input.json", + "sha256": "23461b66f3a87d4dc87ef209105df4de41d2ef076568ff29b9ea0a0747f01d96", + "usage": "input" + }, + { + "git_blob": "2f6fe0ae7bf707b87020e74c60ec59c5641cfa55", + "path": "certificates/paired-cube-complex-input.json", + "sha256": "11894aa8fd4d5e258ec534726eba5fc9c9fa7b826f993e229425c31ee2ad2440", + "usage": "input" + }, + { + "git_blob": "f01ac324172e8d0bfed64e07ce4ebcc370c0d669", + "path": "certificates/partial-gauge-bit-input.json", + "sha256": "367b9844db23f8fa64002637903bcc5ce28ffc8879d274b5c54c0390fb0234e4", + "usage": "input" + }, + { + "git_blob": "b404923928bfcae0a9c884350c08cf077c12afc0", + "path": "certificates/partial-gauge-complex-input.json", + "sha256": "ce3c9e3e35a95d1926eee5cc83d020cb7130836e997074378609dbc74e4d9523", + "usage": "input" + }, + { + "git_blob": "158600c7e9d3566e03cdb82636173e80159407b4", + "path": "certificates/partial-gauge-input.json", + "sha256": "f1692977d2d3f59b02d89b4f08a1d56574168139536e5900dc8524b452a57b5e", + "usage": "input" + }, + { + "git_blob": "fae9fef678e4873e0f7d72c2d942ce7e82b9ffde", + "path": "certificates/partial-gauge-network.json", + "sha256": "e2e6c48bc283b1417c13adaa35c36d782191e21a33f7279a4ed1558ca60518be", + "usage": "input" + }, + { + "git_blob": "5824891de9f7cd0ff3ba7a1fc63d9e0e245eb42c", + "path": "certificates/stopped-product-bit-axis.json", + "sha256": "52f493a0019b7e4ce69a4c26bd3d35af5d3397461126abc4be44d1430ae8930d", + "usage": "input" + }, + { + "git_blob": "7b1d99c51869ab176f4cb9ea497cba954ebde0b4", + "path": "certificates/stopped-product-complex-input.json", + "sha256": "5bcf00402bbfb768bd2fc0935f32ad329ee0780a3dfe5827bb010831d7909c4d", + "usage": "input" + }, + { + "git_blob": "f0a910a4950aadc435a2f4f8397bc59f40e47e9d", + "path": "certificates/stopped-product-input.json", + "sha256": "8185c7bf8c307728f32484c5972af9a1b948ac5d0838e02f85c86cb438060417", + "usage": "input" + }, + { + "git_blob": "998a8a7ea263f0c65c76557f5a0a0e2734d6bbab", + "path": "certificates/stopped-product-network.json", + "sha256": "43ddb7ee033d316375102cf2d97bb2cf47f879f36a005d3726fa6647a2cbecc5", + "usage": "input" + }, + { + "git_blob": "1956ae0e06be36fef58539675ffaeee2e9f26854", + "path": "certificates/three-stage-cover-bit-input.json", + "sha256": "d0d496b64d45408d6e0773ebbcd4d5dcca918a596073a51e5fc186b82c3b8520", + "usage": "input" + }, + { + "git_blob": "d1b89bcb71999365f24b6b5290e144481b368404", + "path": "certificates/three-stage-cover-complex-input.json", + "sha256": "afecf8ce2d8eb259074e61cd0c386b464ca2f57c61b00979eac808fa26e0b770", + "usage": "input" + }, + { + "git_blob": "4277c8ee2c049eaf4d691cf37532b3c5607d48f8", + "path": "certificates/three-stage-cover-input.json", + "sha256": "633e108352d3a880c3dc05e265f40270698ea7ebbe655706f5f8675070c86bd2", + "usage": "input" + }, + { + "git_blob": "5fcdaf74203a2e099d0cdfb97e8b912c52151b87", + "path": "certificates/three-stage-cover-network.json", + "sha256": "bfca1f225394c8b50f3360b71920652baf9bd885ce84f9c0a9184c3ba7dd35ab", + "usage": "input" + }, + { + "git_blob": "dd5c670a5128c8593cad395bbd7e2e03ce2ac563", + "path": "docs/partial-gauge.md", + "sha256": "cc999c961520e227a6e839827e4e3323342e3a854c96b4967743f756339f8c54", + "usage": "input" + }, + { + "git_blob": "5bc1cbc88e4e8e53f42d9718e6c5ba0a35988a27", + "path": "docs/stopped-product.md", + "sha256": "c2f6f1c75f1b08e5817185a5cf7365eadc2117af23fd4858d889246c689a705c", + "usage": "input" + }, + { + "git_blob": "38554e1fb3699e4a3a78ae0a81f834ba26dc73ed", + "path": "docs/three-stage-cover.md", + "sha256": "7ce00f4a423214b96629e1b75f1716bdb66067c97a2f93e5c917e9c3111dd7b7", + "usage": "input" + }, + { + "git_blob": "0367eeb005298601f28a673861d6f71bf1d0ebbb", + "path": "notes/general-clifford-frames.tex", + "sha256": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "usage": "input" + }, + { + "git_blob": "dd84535b21923bab388305231f6f4c756aefacd8", + "path": "notes/paired-cube-bit.tex", + "sha256": "bed3841c349b1b897cab338b9800dc6030afcdcff0bc7cfdb437501e84fdcd19", + "usage": "input" + }, + { + "git_blob": "56e729572d859216b88a275ec53592b65f4ee56b", + "path": "notes/paired-cube-sharing.tex", + "sha256": "57fd2290d98528bce00f2ed51b1988e917748f43b2ec25acceacaf2beae1d7e2", + "usage": "input" + }, + { + "git_blob": "4a09f324a3fe8a3c2397f34244b5cedebeb95a7c", + "path": "notes/partial-gauge-assembly.tex", + "sha256": "ef27afc3a70656d3139bf3661ac0b2088622f37221141cc386d41324b7c563d0", + "usage": "input" + }, + { + "git_blob": "147fc5ab9189bb4f31783f911712dba112799756", + "path": "notes/partial-gauge-construction.tex", + "sha256": "2fcc68553131170c5082707970017f52c1de19a5123b0987f99fc381e543c028", + "usage": "input" + }, + { + "git_blob": "86615eca33b28cd80a7256648eecd051988ecfbb", + "path": "notes/partial-gauge-frames.tex", + "sha256": "c27001764091825c99720b7d49e8520d3117fdbef24a8148b5221ddfe822c0b8", + "usage": "input" + }, + { + "git_blob": "7592d4970b04b1524e4e47b6eeb324065fa2897f", + "path": "notes/partial-gauge-note.tex", + "sha256": "0740cc6702d165df899af097afeee6a9060689de808b62ed3e951dc6f2043a95", + "usage": "input" + }, + { + "git_blob": "3932d3ade5ddeae127c246aed515e0346a40f067", + "path": "notes/stopped-product-assembly.tex", + "sha256": "1c3c7147851f30f1ff97679cfcda157b1cbe2655b8766e34f1345f20c630eaec", + "usage": "input" + }, + { + "git_blob": "4a9037137cd3158dbeca6d9e3b1881a599ebfcb5", + "path": "notes/stopped-product-complex.tex", + "sha256": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "usage": "input" + }, + { + "git_blob": "94f7b81397e20406acba32231b7ef4bdc29c43a9", + "path": "notes/stopped-product-factorization.tex", + "sha256": "70d5a4405e1be9c7b6cfb326bb4ffdf88e5585d1fb3d16c7bb5ad62ac421fae3", + "usage": "input" + }, + { + "git_blob": "20c44ce4866fa972ce64365dcf365b1659a83050", + "path": "notes/stopped-product-interface.tex", + "sha256": "454a8f3924afc26e575b2a8cec6d0860397cb7f2dc431f3ba63fb8a7142cc96b", + "usage": "input" + }, + { + "git_blob": "a8b23254c8873d9c2480750a7d435b6cbab3b021", + "path": "notes/stopped-product-note.tex", + "sha256": "486d14c599f4c2551c019f3358898f72e6ecafeb04ad590726ea69ed987fe025", + "usage": "input" + }, + { + "git_blob": "983ffb6ac8fb9117360cd0797c00c05dfa071c9d", + "path": "notes/three-stage-cover-assembly.tex", + "sha256": "ccf34a6d37c4af14bebeab15be50ab204eb1caebe546385520050ec30089441d", + "usage": "input" + }, + { + "git_blob": "f05225d21f92cf8cef21b6e12601d5b4d61991f0", + "path": "notes/three-stage-cover-bit.tex", + "sha256": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "usage": "input" + }, + { + "git_blob": "c54cb3d5ff13281fe2aa44ac3baeaac7fce75469", + "path": "notes/three-stage-cover-complex.tex", + "sha256": "1c5b638aa9b75365b8addec9c8eeee6bc5e499722901079b94c65fce033fde8a", + "usage": "input" + }, + { + "git_blob": "f5ad09a450cc5dd31a5c6aa07ff08523064d7281", + "path": "notes/three-stage-cover-note.tex", + "sha256": "db8078687825bcd43c6cc2fb69712ebb12840057b77cd5af8f67f53e4ffffa92", + "usage": "input" + }, + { + "git_blob": "590da4b892a08b9d5182fb3d8a983c6239dd27db", + "path": "notes/three-stage-cover-rows.tex", + "sha256": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "usage": "input" + }, + { + "git_blob": "6e96820eebdf1751f948bc3d6c4d2a8b22b9906a", + "path": "references/paired-cube/pr97-subset/selection.json", + "sha256": "5a41dee894702cb880385d826648a3e759b85a6de6824ecbef63b73b8c6e1354", + "usage": "input" + }, + { + "git_blob": "ce3562bcf1522fb7ca67f0053c511069fd070958", + "path": "references/paired-cube/selected-module/README.md", + "sha256": "bd3f5176ef31bbf78240066fd5a5dae52dc31dd734273409671440a568d18155", + "usage": "input" + }, + { + "git_blob": "0ba9215073b16aa61304fb8156fbb4ece0dbd0f9", + "path": "references/paired-cube/selected-module/SOURCE.json", + "sha256": "51739341346433c85f1c01f4bfbdf8d5f8971dd640899da854b5deb7dc740646", + "usage": "input" + }, + { + "git_blob": "e9238210abfb712c3ea5a17d5455400046add1c7", + "path": "references/paired-cube/selected-module/matching-arcs.json", + "sha256": "22c90ed078d765e58ac824d6f9558cc4620961b48644a32c0115bdb9852de771", + "usage": "input" + }, + { + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "path": "references/partial-gauge/pr62/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "usage": "input" + }, + { + "git_blob": "fd30e610b0c013a470b3802ea98d6287351259a8", + "path": "references/partial-gauge/pr62/NOTICE", + "sha256": "95d7dabb54a327216e007f1e0cf37dd2f138ab31527f2cc5ee0de55e87f274ca", + "usage": "input" + }, + { + "git_blob": "26e1166562eff395a1fbb632751f985586ed078f", + "path": "references/partial-gauge/pr62/PROOF.md", + "sha256": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "usage": "input" + }, + { + "git_blob": "c4a7d407e05f66fa11559057a73b944a8a391712", + "path": "references/partial-gauge/pr62/SOURCE.json", + "sha256": "9946b96d382b26e9efc4d87e9b733186c089a4de74289b8f2fffbc9adb59e443", + "usage": "input" + }, + { + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "path": "references/partial-gauge/pr97/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "usage": "input" + }, + { + "git_blob": "b5656377588f29410ce427f6a345eec363d7f879", + "path": "references/partial-gauge/pr97/NOTICE", + "sha256": "1c53970fb4face631a1b331ec66d33111eccd280a129f9b64c2da6df96861c3f", + "usage": "input" + }, + { + "git_blob": "58824db895fba33cd277dba4db67dc075bf67887", + "path": "references/partial-gauge/pr97/PROOF.md", + "sha256": "f2c95747d9a5858da43932d857be999e6166d4740f25e2c57f99ce05a8902352", + "usage": "input" + }, + { + "git_blob": "ce8b4721951fb4240be17237aa15afc9ded59e75", + "path": "references/partial-gauge/pr97/README.md", + "sha256": "6e1729758a88a1e01011054afcb6ea10770bf0a117e3d0b3d019222dbd3b5348", + "usage": "input" + }, + { + "git_blob": "970000a79fcfb2a59111f6dbd5d0b0faf5f9eeb6", + "path": "references/partial-gauge/pr97/SOURCE.json", + "sha256": "68fb539abcd6df21d142e4e204b6e9482eb7f9cd3907650f54bd058070266596", + "usage": "input" + }, + { + "git_blob": "708e83ebd437bc4f672b9a95d7890b537782da26", + "path": "references/partial-gauge/pr97/bit-ledger-result.json", + "sha256": "c3dd79e5e6d72e49d8d1be2d4d9ad808cd7d24b7a725190d24100cbd3644394a", + "usage": "input" + }, + { + "git_blob": "f22b6998f9415dd0b081a146f00e5c30065d6689", + "path": "references/partial-gauge/pr97/check_frames.py", + "sha256": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "usage": "input" + }, + { + "git_blob": "4a19240e2fe5f55891d842fd451bd0cb24e4ae76", + "path": "references/partial-gauge/pr97/check_lifted.py", + "sha256": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "usage": "input" + }, + { + "git_blob": "d79abea77a5b6599193d34a0919f9775334d212b", + "path": "references/partial-gauge/pr97/deferred-readout.tex", + "sha256": "4e848f7f06c975045629da7cca9f79e10f255d08dc17a72629c9bed522565d52", + "usage": "input" + }, + { + "git_blob": "d045126217670dc82e7515230f9dc055ac9dc444", + "path": "references/partial-gauge/pr97/deferred.py", + "sha256": "9b2acaeb6f1beb2a53c15e00c027f9ba22397a12071ad0b71131e12012a98036", + "usage": "input" + }, + { + "git_blob": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c", + "path": "references/partial-gauge/pr97/deferred_23.json.gz", + "sha256": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "usage": "input" + }, + { + "git_blob": "a81cbaa61e2c09075f900546ec46833103b77ac1", + "path": "references/partial-gauge/pr97/linalg.py", + "sha256": "56cc779911a3c5c901bc5194ccaf97f720157a2c4ba602b07ee8642af2676b8b", + "usage": "input" + }, + { + "git_blob": "aa0de9ed8a4467008200617e74dd7c8a5b1d370a", + "path": "references/partial-gauge/pr97/round7_literal_frame_ledger.py", + "sha256": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "usage": "input" + }, + { + "git_blob": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "path": "references/partial-gauge/pr97/witness_23.json.gz", + "sha256": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "usage": "input" + }, + { + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "path": "references/three-stage-cover/pr117/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "usage": "input" + }, + { + "git_blob": "f7343a16289ee2691e7dbc592e4c27179eba84ea", + "path": "references/three-stage-cover/pr117/NOTICE", + "sha256": "a0030510cd3b5334fb113eae759aadd2c25951bd353dfb69ad9cb780ae5adf30", + "usage": "input" + }, + { + "git_blob": "463a1ba65637222461597dc07c586f13c9986568", + "path": "references/three-stage-cover/pr117/SOURCE.json", + "sha256": "74e9f4b4ae0529d21d19c159b2b50ee0923e93e0d7eb22cf208ad41dd5992275", + "usage": "input" + }, + { + "git_blob": "a5b0598e4c328acef11baaa32852acdbfc97eeef", + "path": "references/three-stage-cover/pr117/dag.json.gz", + "sha256": "3c034d0aae388ef567a454826f4f48b26fd8a94c71e8ffed4835271b349a783b", + "usage": "input" + }, + { + "git_blob": "673fbbba70fd80b490d7990bf3c4c682e34e385d", + "path": "references/three-stage-cover/pr117/replayed.py", + "sha256": "99c1e3694ae06a7ce7a370b04ecb45ea3fcfe69a6e6e7f4c4606e0a6c74c3184", + "usage": "input" + }, + { + "git_blob": "d8da63e1a38cde8e843c23a2d81ad43ae39750d0", + "path": "research/coordinated-frames-and-entrance-banks/BASELINE.json", + "sha256": "0412767b472720bae2902fcd24de5d18f3039afec3dd592a3c0e2d68fbabff63", + "usage": "input" + }, + { + "git_blob": "a89a0c458b617f22af225b769aeb72605c54fef2", + "path": "research/coordinated-frames-and-entrance-banks/baseline-pr181.part01", + "sha256": "25f760ffb55e0e9de2f43aa334e3323d957776a9d323790c60b71ec7c414e160", + "usage": "input" + }, + { + "git_blob": "4e90475e48f9c48277a06ca17b4a95b3fc971d6a", + "path": "research/coordinated-frames-and-entrance-banks/baseline-pr181.part02", + "sha256": "179e594a0a37880c62bbc966f4079e0aab60c3dfd1cf5bdd93dafd8135b2bf8f", + "usage": "input" + }, + { + "git_blob": "2f103c2ce9f0a335a986eb231aea8086adfc56c5", + "path": "research/coordinated-frames-and-entrance-banks/baseline-pr181.part03", + "sha256": "bf0e1489ddd033c37e610e61ec7c7c8c62df31d27f69b1e83574fd9080731a84", + "usage": "input" + }, + { + "git_blob": "6e0f946c784fb2129b63312dec70da634d975d69", + "path": "research/pr-reconciliation-20261012/content-comparison.json", + "sha256": "6c0fd53892c8d82a2c62f9bf1c589d5bd09309021bd4e579f8eab8f3575f484f", + "usage": "input" + }, + { + "git_blob": "3c586a22bfdd18feb8290d8d958719486d788d4d", + "path": "scripts/paired_cube/README.md", + "sha256": "bf2adf1d1c5a412730be66e019bd73a08826ef8dcd6ffc833b9d1656b755dfb2", + "usage": "input" + }, + { + "git_blob": "8521197b7183d819b24f057f2c80d8c62b2593d4", + "path": "scripts/paired_cube/__init__.py", + "sha256": "b5fb17c79fd41a75c0648e7a5f99076f9f42a619857d5e34e71699bf00ef0c91", + "usage": "input" + }, + { + "git_blob": "2621ef817b7af24f3bbcb90b32c339b43d663e45", + "path": "scripts/paired_cube/frames.py", + "sha256": "7d897418dbfee47de0723ea4983098a982610ccba45e1bac9000a79626d8421c", + "usage": "input" + }, + { + "git_blob": "a86ef6bfb5520cee27e2834b4fc5624d824034b9", + "path": "scripts/paired_cube/gauges.py", + "sha256": "8a501c66e1330f054e0e11a35e9321d2deea7b51cd03ca56b6a41765e43fe061", + "usage": "input" + }, + { + "git_blob": "a440598df44ae9caa43e018a2a0f379281f52474", + "path": "scripts/paired_cube/graph.py", + "sha256": "c757d47997f2fa42a95c16f6e6855cf8b125216ae3335b3891e305cf1da82855", + "usage": "input" + }, + { + "git_blob": "f590aa7edd126c810032218fe9575235ca808daa", + "path": "scripts/paired_cube/modules.py", + "sha256": "18a1ad8af0a7832b7c5c4791f5b95f76386cfa7e82ad52bfd2758c081ada68c4", + "usage": "input" + }, + { + "git_blob": "9b0d6be233fbaa2dec7b9b4034ec707fbe39449a", + "path": "scripts/paired_cube/verify.py", + "sha256": "e13747916a58b631f10c36eaae230b91b63b427d0a80aa3a530dd9dd90159147", + "usage": "input" + }, + { + "git_blob": "3354975491648a904a51c758828cf5cddadcd88c", + "path": "scripts/paired_cube_producer.py", + "sha256": "c84ea3e3ce3eb9563906b6ee4b7411d93dcddfed4bdbc2d4e39936642261cab2", + "usage": "input" + }, + { + "git_blob": "7dae95e1224fc7bae20d6647397c76bb67ca9bca", + "path": "scripts/partial_gauge/README.md", + "sha256": "8725c7c0d3b2287904026caea8e94d62c2f66dbbd085e4fd6e5c10933ad9a72f", + "usage": "input" + }, + { + "git_blob": "070066d031b64781303495b2f5810b2f1dff7c1e", + "path": "scripts/partial_gauge/__init__.py", + "sha256": "298aa57fbc2de1ff3f9fcfea0fcc02ee7f6758576c52879cb60e9b9c38d471ee", + "usage": "input" + }, + { + "git_blob": "775921796cb860c8170513075ce9188b4a4a6220", + "path": "scripts/partial_gauge/binary.py", + "sha256": "b29e2f37d7f32a959a378190d7f1da3c2da534fbdaf878044800301957bffc03", + "usage": "input" + }, + { + "git_blob": "0186c1bedac8c7811f9eb6a7f9d794f64c05910c", + "path": "scripts/partial_gauge/cube.py", + "sha256": "304b653ae6a30f08cee07b5285d48c3793559d63e623bb9bbe8383d8ce68aa24", + "usage": "input" + }, + { + "git_blob": "ba6581b02b4e3aa51d3d451001f302850225cadc", + "path": "scripts/partial_gauge/interval.py", + "sha256": "c7cf97aa327c92feedfcc098c77d51f3ba8075ccc6f94ecb064bb7a27e44df0a", + "usage": "input" + }, + { + "git_blob": "5b66ec11bc875ea901f412d18d827d6b93b99a66", + "path": "scripts/partial_gauge/lift.py", + "sha256": "895874399113faa090d168d6168f0664136df6e21205671e7f7f9239cad93d1d", + "usage": "input" + }, + { + "git_blob": "9275aaa0299a0158394047f71e6c415edf5a9341", + "path": "scripts/partial_gauge/match.cpp", + "sha256": "12b8b7c93bb78324e7328e624b166be2067ae8861540531c024040220d86f368", + "usage": "input" + }, + { + "git_blob": "925ffb4cfac898d718d1f5f88ff6efce96345533", + "path": "scripts/partial_gauge/scalar.py", + "sha256": "c9fb22e8643ab6d63f7f64ed8143bc5c469794a53e4914cf482e9ad7fcc10cc4", + "usage": "input" + }, + { + "git_blob": "041c4919bd5babe5292498fb59388716eaa8880c", + "path": "scripts/partial_gauge/select.py", + "sha256": "e23f6af42ee5e96d7b2eb29fccf15892f210253a45623255642a62ba93e20cf7", + "usage": "input" + }, + { + "git_blob": "a1afefe66d44d19f728a9f038f12dc26f5b1020f", + "path": "scripts/partial_gauge/verify.py", + "sha256": "d31683af845c1de75ac90c0a208b2d335806b6fb346f9960279204812f92bc63", + "usage": "input" + }, + { + "git_blob": "b9e95e0ea27c7b4584a06e98c1a905f31c6a36d6", + "path": "scripts/partial_gauge/word.py", + "sha256": "96015b7b08a261673ab8be1ea47f89302f8a1d62a822d657a09f6a1fcfb51e58", + "usage": "input" + }, + { + "git_blob": "b38a57989a18a6b66ccf171d4ebae286cfd4c2f6", + "path": "scripts/partial_gauge_bit.py", + "sha256": "7d58e86061da2d73991531e9bc431589019359391adea866c61c7dd1f99ac855", + "usage": "input" + }, + { + "git_blob": "53b7e06b96f4f271448e4908b24c4a039d87dd57", + "path": "scripts/partial_gauge_network.py", + "sha256": "76b09c4b8f9570766d94b77b265914e4662f8f782e5fa7b4749a1092972b0d68", + "usage": "input" + }, + { + "git_blob": "2d91d92b8eff91ac9cd7dfe04be9fb71689eb780", + "path": "scripts/partial_gauge_producer.py", + "sha256": "8d9284b02ed5915008bfe2e8186ef18f882306192ddd4873b7856341b061305f", + "usage": "input" + }, + { + "git_blob": "6c18be051fd266f33a3acfa0a7fde0bf534d4d6f", + "path": "scripts/stopped_product/README.md", + "sha256": "6c1805dda45b01ed0ef420c674ec2cd0048fb9d7a1b015ab6cd837067fe66176", + "usage": "input" + }, + { + "git_blob": "f7a6e9066153e374017a03fc1a6c6f01d1655b5b", + "path": "scripts/stopped_product/__init__.py", + "sha256": "7b794c22bccc00bb6ae8ba4d3379f469570565bbcb1a86090699133b8cf1b7d3", + "usage": "input" + }, + { + "git_blob": "ef1af2550763335e60b8427ba11fccd30025d507", + "path": "scripts/stopped_product/complex.py", + "sha256": "407650d56dceb5cb09d74928658cebed1bb42f4d7e28ca9e3fd36eea075f1ad0", + "usage": "input" + }, + { + "git_blob": "5f349a2676419e1002b0d41564d8cf51dd2f1f75", + "path": "scripts/stopped_product_network.py", + "sha256": "a8baaa87dd7679db4f2dd1a18a720397ee6f443262ad04fa26cf51b39909b74c", + "usage": "input" + }, + { + "git_blob": "aefc91d9a773b42c59a807fce323fbfbcf471c62", + "path": "scripts/stopped_product_producer.py", + "sha256": "2c5c71399136ebcfebb8e5277317d5f334eb8df5716ad287391d0996fcc1492c", + "usage": "input" + }, + { + "git_blob": "74ccdc31e2302b1f0a9c2be2e8b9d42c3a00fe72", + "path": "scripts/three_stage_cover/README.md", + "sha256": "b39a28fa8da5d7d3188dfed4c0e0af1e2397f0f5c8f69cfb69671ed27ddca4bb", + "usage": "input" + }, + { + "git_blob": "546aa1b0372aee2d837370d7ea798a80f1767432", + "path": "scripts/three_stage_cover/__init__.py", + "sha256": "b964b59af038e70cc15af655a22bcf6aaafc9c842b213765781bc8bea7166430", + "usage": "input" + }, + { + "git_blob": "24517f61f99c4a2add469d49b7fa5babfeadda20", + "path": "scripts/three_stage_cover/lift.py", + "sha256": "ae5f4c56cd32b5232d6dcdcaed1e24efb81fe20467a2d915ee51479bced06cfc", + "usage": "input" + }, + { + "git_blob": "d7e77a902d5b113b7c3e44d9e4c8d6f03489a58b", + "path": "scripts/three_stage_cover/select.py", + "sha256": "457e636ced9bbd368198f78e015660a929ba1aaccbe34122d18da09ebb488f33", + "usage": "input" + }, + { + "git_blob": "aa5aeca9660982ba86c01161f56017c069e69d5e", + "path": "scripts/three_stage_cover/verify.py", + "sha256": "4bd2347e87e4edb699968bc31dfb94f2ab89bf1227576e59f43c779ba74e4e06", + "usage": "input" + }, + { + "git_blob": "8ba05a2eab11bcc7679c9cf88fe5d6f6576e0046", + "path": "scripts/three_stage_cover_network.py", + "sha256": "7e0ad6fd1921b6905a53ce1eeaa03d3bb3a8a8bbaa0382516ea98b636f46335e", + "usage": "input" + }, + { + "git_blob": "9e7a21a758d26decb78b0561a8c515ab0c22a428", + "path": "scripts/three_stage_cover_producer.py", + "sha256": "ea6dd4f06173304bbcb74b8e5bcc02357b7bb162a6d26b4a6f7a9e886158123f", + "usage": "input" + } + ], + "schema_version": 1 +} diff --git a/research/pr148-source-retention/TASK.json b/research/pr148-source-retention/TASK.json new file mode 100644 index 0000000000..b34a330d13 --- /dev/null +++ b/research/pr148-source-retention/TASK.json @@ -0,0 +1,93 @@ +{ + "actual_scope": "Authenticate the complete 114-path PR148 comparison, recover its 14 historically unresolved originals, and separate its 11-file direct author delta from inherited work.", + "ai_assistance": "Substantial OpenAI Codex assistance in source investigation, implementation, verification and writing. No subagents or independent human review.", + "author": "Thiago Goulart (@Tuafo)", + "base_commit": "ef5f39403610d231a0c27e8a6b4f08c10209bcd6", + "bottleneck_link": "This consolidation side result removes a source-retention blocker and avoids repeated provenance review while preserving construction credit. It does not change the paid recursive profile.", + "budget_minutes": 60, + "discussion": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1545", + "evidence": "TREE-PROOF.json authenticates eight commits and 227 trees; COVERAGE.json and RESULT.json derive both complete Git differences and the 96/4/14 coverage partition. verify.py and test_verify.py check one positive receipt and 25 rejection cases in nine test groups.", + "open_questions": [ + { + "blocked_by": "Full historical dependency/execution audit and inherited algorithmic hypotheses have not been discharged here; original/ contains only recovered evidence and license/notice files.", + "first_step": "Inspect the authenticated 11-file direct delta, then run historical make paired-cube-verify from a separate complete checkout of 975c3cf5d4ee0c90d5a76500d431bfc59102bb72.", + "question": "Can the complete historical PR148 verification be reconstructed and compared to the already reviewed round-seven composition?", + "why_it_matters": "Complete source retention is not complete mathematical review or an incorporation decision." + } + ], + "original_card": { + "acceptance_gate": "Separate complete integration, partial retention and changed heads; make no autonomous closures.", + "allowed_variations": [ + "One small related PR family or one existing integration receipt." + ], + "bottleneck_link": "Reliable overlap evidence preserves credit and prevents repeated review of already-retained material.", + "first_experiment": "Compare that set to retained artifacts; produce a complete or explicitly partial disposition receipt.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read one small PR set in the ledger and identify exact reviewed heads and unresolved content.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "id": "overlap-receipt", + "methods": [ + "Compare exact heads and retained artifacts to write a source-bound disposition receipt.", + "Audit an existing receipt for missing content or predecessor attribution." + ], + "overlap_terms": [ + "overlap receipt", + "partial integration", + "attribution" + ], + "question": "What exact content and credit of a small named PR set has already been retained?", + "scope_change_triggers": [ + "Treating matching titles or one shared blob as proof of full incorporation." + ], + "starting_points": [ + "docs/research/pr-ledger.md", + "CONTRIBUTORS.md" + ] + }, + "outcome": "completed", + "predecessors": [ + { + "credit": "Rohan Gupta / gupt1156: adapter-toll refinement", + "head": "975c3cf5d4ee0c90d5a76500d431bfc59102bb72", + "pr": 148 + }, + { + "commit": "c8b22bc5c10dba497ac25804e27d9647d818e2ff", + "credit": "icekylinx: paired-cube parent" + }, + { + "credit": "Chafik Boukhalfa / chafreaky: construction retained in the PR210 archive", + "head": "7fb2194801e3a10f54772c7f0d5505035a4fc0ad", + "pr": 181 + }, + { + "credit": "eumemic: existing multipart archive; archive hashes pinned through BASELINE.json", + "pr": 210 + }, + { + "credit": "Adam Gall: related PR279 source-closure methodology on another object", + "head": "24777831784d18896d74ea0c0ed12288d08c89b4", + "pr": 1190 + }, + { + "credit": "Hanson Sun: related PR99 source-retention methodology on another object", + "head": "04e7c062789286221fd95938091558b1723015e6", + "pr": 1423 + } + ], + "priority_revision": 2, + "schema_version": 1, + "scope_change_reason": "One named partially reviewed contribution, PR148 at 975c3cf5d4ee0c90d5a76500d431bfc59102bb72, and one specific missing-source question from the historical ledger; no change to the consolidation premise.", + "scope_key": "5ae821d1b52092164092", + "scope_status": "refined", + "selector_nonce": "e325ee462b452b3dcb25489f51ec3c81", + "stop_rule": "Limit source investigation to PR148 and its existing main/PR181 retention context; stop after complete source coverage or a precise remaining gap. Reserve verification and handoff time; do not launch full historical construction replay.", + "task_id": "overlap-receipt" +} diff --git a/research/pr148-source-retention/TREE-PROOF.json b/research/pr148-source-retention/TREE-PROOF.json new file mode 100644 index 0000000000..c323db16f4 --- /dev/null +++ b/research/pr148-source-retention/TREE-PROOF.json @@ -0,0 +1,945 @@ +{ + "objects": { + "013c7e019d98bf8e2125153b8bcde07ecb8bdf58": { + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLWF1ZGl0Lmpzb24AiydRMEIw8avqwBIXGqD7iDY/SGoxMDA2NDQgYWZmaW5lLXZlY3Rvci1zY3JlZW5zLmpzb24AR+WYqz28X4edSywSPDRkSX+X6eMxMDA2NDQgYmF0Y2hlZC1uZXR3b3JrLmpzb24AS5BgNjlpyUthtneavOnYDM+v9A8xMDA2NDQgYml0LWNvbXByZXNzaW9uLWF1ZGl0Lmpzb24ALIsiGteTXUnSR5/UR2LPgpkGbRkxMDA2NDQgYmxvY2stY2FycnktYXVkaXQuanNvbgC62qdp/ZgL967C4Mk6BL7Ti8mtEDEwMDY0NCBibG9jay1jb3JlLmpzb24ADW4XeeQ3RNU847Y8JwrA8XzcWzAxMDA2NDQgYmxvY2stbGFiZWwtYXVkaXQuanNvbgAwXzC//2EEVWRyMqU+BwH8eonU9TEwMDY0NCBibG9jay1sYWJlbC10YXJnZXQuanNvbgAVuWCbZNc4mfBCMrdhGTZ9wazw9jEwMDY0NCBjYW5jZWxsYXRpb24tYXVkaXQuanNvbgAsrKFT5A+pX3N8U4J+M1n/I0dqnjEwMDY0NCBjb2RlZC1jYXJyeS1hdWRpdC5qc29uAP+OgWwrE6WW+0vOX/krHyTVA2EYMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1hdWRpdC5qc29uAEybvDD4on4Oltd2GvenovF9D9v4MTAwNjQ0IGNvbXBhY3QtY29udHJvbC1sYXllci5qc29uAKCH5HuL6Lf+HyHqLqYLH1PguHfYMTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24uanNvbgCXxL6VcbXsbNQUH65DYbw0cZ5abTEwMDY0NCBjb21wbGV4LW5ldHdvcmsuanNvbgBipgkYh6OJRTXB0FnhsMUn1VbrdjEwMDY0NCBjb250cm9sbGVkLWJpdC1yYW5rLW1vbWVudC5qc29uAAUuT+/1lkFtxyEH9AYVZ/sfh/MXMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWJpdC1heGVzLmpzb24Av7OiF+4b1d7NjPAVC47VVzwwO3IxMDA2NDQgY29waWVkLWNlbnRlcnMtY29tcGxleC1pbnB1dC5qc29uADaHV9G0hnp4kx5P5nGsllvAR9TqMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWNvcm5lci0yNS0yMy5qc29uAEIeNafAZav1qHsbdrWhoYRyIIjHMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWlucHV0Lmpzb24AgXuemzxr/tH0GclwTh0CoJuRwJ4xMDA2NDQgY29waWVkLWNlbnRlcnMtbmV0d29yay5qc29uACC7toBs4GEeSBUSiU0f1z2XwpcPMTAwNjQ0IGNvcmUtbGltaXRzLmpzb24AG6ul51EodDeu1UhhXUa0+CzJ/xwxMDA2NDQgY3ViZS1jb3JlLWZhbWlseS5qc29uAC543/zTgZaDQRcmAcfIWmUVOIY+MTAwNjQ0IGN5Y2xpYy10b3BvbG9neS1hdWRpdC5qc29uADyFws4b7MXnxFmTkh2EvW6pfEVFMTAwNjQ0IGRhZy1uZXR3b3JrLmpzb24AP5zjwYSvaZzMtDis3VtH5kWCAOAxMDA2NDQgZGlzam9pbnQtdGVuc29yLWNvbXByZXNzaW9uLmpzb24AMjpGrY/nfz1wdHuXzloND8/6qsUxMDA2NDQgZHlhZGljLWNlbnRyYWwtZmFjdG9yLmpzb24AqFy4o5UGX//JherUnLA2JTKQnJcxMDA2NDQgZWFybHktc2hhcmluZy1hdWRpdC5qc29uADRKRYKEUZBYOjXyIssCluT6H8N4MTAwNjQ0IGVuZHBvaW50LWdhdWdlLWJpdC1heGVzLmpzb24A83UQ5MPuvrD5C9eeLD3fKUA2GCUxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtY29tcGxleC1pbnB1dC5qc29uAKOdcAiK1FZSjVL3Hm5LgHIe49UvMTAwNjQ0IGVuZHBvaW50LWdhdWdlLWlucHV0Lmpzb24AlxBeaX4DJ75YKQwLEJA07ZF0lrkxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtbmV0d29yay5qc29uADmrov2Ir+2NW1/4zAaKG+UCaxerMTAwNjQ0IGZhbm8tY29tcGxldGlvbi1hdWRpdC5qc29uADLuIDRuMtmPb8KU2Hd0IvucZbxoMTAwNjQ0IGZhbm8tcGVybXV0YXRpb24tYXVkaXQuanNvbgDiXNXcxly0u0JqaPz+zKwsVGIpVjEwMDY0NCBmYXN0LWdhdXNzaWFuLmpzb24AIxkMVKBgz0vEw+w15yp0rz0spQAxMDA2NDQgZnVzZWQtYmxvY2stYXVkaXQuanNvbgDvrUaHP1uttSnWMYaJGPF3//nmKTEwMDY0NCBnYXRoZXItc2NoZWR1bGUtYXVkaXQuanNvbgA8nFs+r/pGXq84zycqCQMMu3J86jEwMDY0NCBnZW5lcmFsLW5ldHdvcmstZ3VhcmQuanNvbgCRlLOx1VkmR6HGFDQt9MBkzTeHYDEwMDY0NCBpbmNpZGVuY2UtbmV0d29yay5qc29uAKbKEo5/FfEj6TVbatv0NbGw4FhLMTAwNjQ0IGluY2lkZW5jZS1wYXJ0aXRpb24tc2NyZWVuLmpzb24AzHJmic12Tn1ltbmpTcJouEwYpZAxMDA2NDQgaW5wbGFjZS1zaWRlLmpzb24AjTJAxZwmwYOcLPepsGP9MMu+WoQxMDA2NDQgam9pbnQtZHVhbC1jb21waWxlci5qc29uAJGf/y5trDat7PirRQOg1v1lYF5hMTAwNjQ0IGpvaW50LWR1YWwta2FwcGEuanNvbgBTn3mxhFyC2Gq9DbXbfW3h48xcvTEwMDY0NCBqb2ludC1kdWFsLXByb2ZpbGVzLTIzLmpzb24ACbAbp6uiU7wt2M13zZifYgDRA/kxMDA2NDQgam9pbnQtZHVhbC1wcm9maWxlcy0yNS5qc29uAIukJPKgVHaYCtoGHjX0AX8NC0vtMTAwNjQ0IGpvaW50LWR1YWwtcmVwb3NpdG9yeS12YWxpZGF0aW9uLmpzb24AWBH0ayyfXU33vAbruBKka3D1NR8xMDA2NDQgam9pbnQtZHVhbC10cmFuc2l0aW9ucy0yMy5qc29uAAuOeL7Xk20O7+1yFHDdJwvZOVPAMTAwNjQ0IGpvaW50LWR1YWwtdHJhbnNpdGlvbnMtMjUuanNvbgDjylMahYeYIE570bRFw5qOicNpHjEwMDY0NCBqb2ludC1kdWFsLXZhbGlkYXRpb24uanNvbgCmz9H7c0mYvGU464zH0Bm2NuamfjEwMDY0NCBqb2ludC1kdWFsLXdvcmQtMjMuanNvbi5negAUPyaEsGnJxrwDS5H6Xes92rOr9zEwMDY0NCBqb2ludC1kdWFsLXdvcmQtMjUuanNvbi5negD8Z786V4naKTksqPgv8PvtkGry4zEwMDY0NCBqb2ludC1mcmFtZS1hdWRpdC5qc29uAOCRWKIpMrYHtCau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NCBza2lwLWZyYW1lLXByb2ZpbGVzLTIzLmpzb24A+cOSpHW3Je8y5wsKnoSvEPnpXyExMDA2NDQgc2tpcC1mcmFtZS1wcm9maWxlcy0yNS5qc29uAHdtcOSHh1b3srGOfwxOUCZWTmGnMTAwNjQ0IHNraXAtZnJhbWUtcmVwb3NpdG9yeS12YWxpZGF0aW9uLmpzb24Atr2RYR0ex7pvqEirMqjhMPdXDqExMDA2NDQgc2tpcC1mcmFtZS1yZXByb2R1Y3Rpb24uanNvbgDWMTVkY081UByeCufVW39SGy0vxDEwMDY0NCBza2lwLWZyYW1lLXRyYW5zaXRpb25zLTIzLmpzb24AFAoS2/W1FOxHFW7YSqxCeUCi+DUxMDA2NDQgc2tpcC1mcmFtZS10cmFuc2l0aW9ucy0yNS5qc29uAB8jP5Y9cfAJwhjmlHH4RG0Wjrd/MTAwNjQ0IHNraXAtZnJhbWUtdmFsaWRhdGlvbi5qc29uAHAPjzRZ5uz3bQWkUry/X6FIVjTVMTAwNjQ0IHNraXAtZnJhbWUtd29yZC0yMy5qc29uLmd6AG1ZpyXeQTRQv2weiLgY3xFWQAY3MTAwNjQ0IHNraXAtZnJhbWUtd29yZC0yNS5qc29uLmd6AOgCIlOACLCEBTbODNe9p2cCF9uOMTAwNjQ0IHNtYWxsLWJsb2NrLXdpdG5lc3MuanNvbgBjUQQLC0Bw5fmsts8u9VhJIyEI+DEwMDY0NCBzcGFyc2UtZnVzaW9uLWF1ZGl0Lmpzb24AWE6o1Wu8PGwShn+VUbQldk++ZT0xMDA2NDQgc3BsaXQtY2VudGVycy1hdWRpdC5qc29uAJuxEw1qVoQ4my5DsLpPT3pUfA9CMTAwNjQ0IHN0YWdlLXBhaXItYXVkaXQuanNvbgAuTUawozPysqY5B/oNkksQcLTO+jEwMDY0NCBzdGFnZS1yZXVzZS5qc29uAIQ5dY2hRbEzy3tsrczzU1ySpEyoMTAwNjQ0IHN0b3BwZWQtcHJvZHVjdC1iaXQtYXhpcy5qc29uAFgkiR3p980P87p6H8Y9ng4kXrQsMTAwNjQ0IHN0b3BwZWQtcHJvZHVjdC1jb21wbGV4LWlucHV0Lmpzb24Aex2ZxRhpqxdvTLnqSXy6lU694LQxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWlucHV0Lmpzb24A8KkQpJUKrcQ1ovT4OXvFn0Dkfp0xMDA2NDQgc3RvcHBlZC1wcm9kdWN0LW5ldHdvcmsuanNvbgCZiop+omPwxlx2VX9aCg4nNNa7qzEwMDY0NCBzdHJvbmdlci1yYW5rLXNjcmVlbnMuanNvbgC4wRFOzjdvH89tWFKUIHi4HxywJjEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstYml0LWF4ZXMuanNvbgAPLSptMD+3UzcEKun2MEgHinHvmDEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstY29tcGxleC1pbnB1dC5qc29uAGHktHSXLdgZ+fJ4BHI177PSlly3MTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1pbnB1dC5qc29uAO/N7xVwLLpwsrIE19UUHi0UvLG9MTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1uZXR3b3JrLmpzb24AJ+yGruq25qi/yxgoFkhwgShFXnAxMDA2NDQgc3RydWN0dXJlZC1idWxrLXJhbmtvbmUtZXhhY3RuZXNzLmpzb24AaQFeUezgJ5/z96PnMeh/dvZz8IMxMDA2NDQgc3RydWN0dXJlZC1idWxrLXJhbmtvbmUtcHJvZmlsZXMuanNvbgA51Wa/gXVRIvm3bCMlBa/ZyZEYnTEwMDY0NCBzdWJzZXQtY29yZS1mYW1pbHkuanNvbgCPCwl7/O5JiQkEPb4GgKOs2vYqVDEwMDY0NCB0ZXJuYXJ5LXNpZGUuanNvbgAsXJ9uqLoyAMOSg7x+AFnYAiaMcTEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1iaXQtaW5wdXQuanNvbgAZVq4OBr42/vWFOWdf+u7i6fJoVDEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1jb21wbGV4LWlucHV0Lmpzb24A0biby3GZk2XyS2tSkOFESBs2hAQxMDA2NDQgdGhyZWUtc3RhZ2UtY292ZXItaW5wdXQuanNvbgBCd8juLASer01pHPN1MrPFYH1I+DEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1uZXR3b3JrLmpzb24AX82vdCA6LgmdDN+5fouRLFIVG4c=", + "type": "tree" + }, + "03031d096b68f3ffbfb54fb7bdb67031ea3ad4a2": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFALVlY3dYjylBDOQn9qNF7sNj1/h5MTAwNjQ0IFBST09GLm1kAFiCTbiV+6M80nfbpNtn3Adb9niHMTAwNjQ0IFJFQURNRS5tZADOi0chlR+0JAvhcjeqFa/J3tWedTEwMDY0NCBTT1VSQ0UuanNvbgCXAACnn8+ypZER9tvV0LD69fnutjEwMDY0NCBiaXQtbGVkZ2VyLXJlc3VsdC5qc29uAHCOg+vUN7xPZyualdeJC1N3gtomMTAwNjQ0IGNoZWNrX2ZyYW1lcy5weQDyK2mY+UFd0LCBoUbwDlwwBl1miTEwMDY0NCBjaGVja19saWZ0ZWQucHkAShkkDi/l9ViR2EL9RRvQyyTkrnYxMDA2NDQgZGVmZXJyZWQtcmVhZG91dC50ZXgA15q+p3pbZZkZPTSgkZ+XdTNNISsxMDA2NDQgZGVmZXJyZWQucHkA0EUSYhdnDcgudRUjD53AVaydxEQxMDA2NDQgZGVmZXJyZWRfMjMuanNvbi5negBKRDG9QlqkSZ8l5n304NLN3X3xXDEwMDY0NCBsaW5hbGcucHkAqBy6ph4sCQdfkAVG7EaDMQO3esExMDA2NDQgcm91bmQ3X2xpdGVyYWxfZnJhbWVfbGVkZ2VyLnB5AKoN6e2KRGcAggBhfnTdfIpbHTcKMTAwNjQ0IHdpdG5lc3NfMjMuanNvbi5negA9hvg7hxugfDsVYqptlTroa5dQug==", + "type": "tree" + }, + "03fe5843d8b4680ab33b11eef2aa6a4aa4c4d3b7": { + "base64": "MTAwNjQ0IGNsZWFuX3NvdXJjZV9jb3B5LnR4dAANrim7w4OhxQRxmcXdy/w0l302gjEwMDY0NCBleGFjdF93aXRuZXNzLnR4dADLDt9VEAW+3YhpIIE/+xNevxolYTEwMDY0NCBmb2N1c2VkX3Rlc3RzLnR4dAB/L+2O+LGA/pDD1PD90kZFrCPadzEwMDY0NCBpbmRlcGVuZGVudF9hcml0aG1ldGljLnR4dAD5hh2s3FRX7y1PxAZcTIrDMGmipDEwMDY0NCBpbmhlcml0ZWRfbWFrZV92ZXJpZnkudHh0AP0o4GtdkH99FWaW3ddo03TNsHhFMTAwNjQ0IGludGVncmF0aW9uX2V4YWN0LnR4dADLDt9VEAW+3YhpIIE/+xNevxolYTEwMDY0NCBpbnRlZ3JhdGlvbl9mb2N1c2VkLnR4dAB/aIDlgADbaGDTkcsIMkbnxNkzrTEwMDY0NCBpbnRlZ3JhdGlvbl9wcm9kdWNlci50eHQAvl+gxCbm7n9uAYEot0iLX4J48nMxMDA2NDQgaW50ZWdyYXRpb25fdGVzdHMudHh0AH3KygYrFT7+KNI5HibYI21qNYGAMTAwNjQ0IHNlbGVjdGVkX3Byb2R1Y2VyLnR4dACC5tvZN15d0r07m/YvrDjraccWhA==", + "type": "tree" + }, + "0460116e80bfd98b54c17cfac288eb93f3935242": { + "base64": "MTAwNjQ0IC5naXRpZ25vcmUA/K6v3bFLWRaVByTwLzvjKPDDbd8xMDA2NDQgTElDRU5TRQAmHuuen4srSw0Rk2bdqZxv19NcZDEwMDY0NCBNYWtlZmlsZQA5mHAULIarU7ezRUtXKt12UjI2oTEwMDY0NCBOT1RJQ0UAd1XzJd0KjW1pLwQcSg2xeFHu0dAxMDA2NDQgUkVBRE1FLm1kACvwdZywPgdomjzpjEQOsQHFrCPSNDAwMDAgYXJ0aWZhY3RzANqalU4Jl7YDq5t3CNjrKC4D/bWBNDAwMDAgY2VydGlmaWNhdGVzAOchv2lL1OYkaAKs2mS/xmRqEppNNDAwMDAgaW5kZXBlbmRlbnQAJaOxC6iJ5zPwkxsJYlQQuVpc0vg0MDAwMCBsZWFuANtq49EBuZWPQauXe2mOZkMfYEvXNDAwMDAgbm90ZXMA22sboyx6EdF2Up62nFUA43/HZqY0MDAwMCBzY3JpcHRzAPqeYjyHbErAUu2dJQUw0hw0OiKANDAwMDAgdGVzdHMARiQxC1RGmsv7sGRNYn+i0vxf/Go=", + "type": "tree" + }, + "0620209003f86f108b82f7dfa3ada4b2b0157566": { + "base64": "NDAwMDAgcGVyc29uYWwtbWF0cml4LWh5YnJpZC0yMDI2LTEwLTA3AJI21CD6KPePfNkTgoWllOOlgGAG", + "type": "tree" + }, + "075847dc9d7daeeebd664550671b96de134d747a": { + "base64": "NDAwMDAgcHI0OABGXrnyplPH0NTKXZFfzE9MMjbjwjQwMDAwIHN3YXAtY29tcG9zaXRpb24tc2VhcmNoAOpzm9mkC3m1JwPHZPl9WnSBlxkg", + "type": "tree" + }, + "0985467378a59eb887ac023e0f202204186ee3f8": { + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLWF1ZGl0Lmpzb24AiydRMEIw8avqwBIXGqD7iDY/SGoxMDA2NDQgYWZmaW5lLXZlY3Rvci1zY3JlZW5zLmpzb24AR+WYqz28X4edSywSPDRkSX+X6eMxMDA2NDQgYmF0Y2hlZC1uZXR3b3JrLmpzb24AS5BgNjlpyUthtneavOnYDM+v9A8xMDA2NDQgYml0LWNvbXByZXNzaW9uLWF1ZGl0Lmpzb24ALIsiGteTXUnSR5/UR2LPgpkGbRkxMDA2NDQgYmxvY2stY2FycnktYXVkaXQuanNvbgC62qdp/ZgL967C4Mk6BL7Ti8mtEDEwMDY0NCBibG9jay1jb3JlLmpzb24ADW4XeeQ3RNU847Y8JwrA8XzcWzAxMDA2NDQgYmxvY2stbGFiZWwtYXVkaXQuanNvbgAwXzC//2EEVWRyMqU+BwH8eonU9TEwMDY0NCBibG9jay1sYWJlbC10YXJnZXQuanNvbgAVuWCbZNc4mfBCMrdhGTZ9wazw9jEwMDY0NCBjYW5jZWxsYXRpb24tYXVkaXQuanNvbgAsrKFT5A+pX3N8U4J+M1n/I0dqnjQwMDAwIGNoZWNrcG9pbnRzAALiepb2QCoMgDG4CK7NBypwaEAvMTAwNjQ0IGNvZGVkLWNhcnJ5LWF1ZGl0Lmpzb24A/46BbCsTpZb7S85f+SsfJNUDYRgxMDA2NDQgY29tcGFjdC1jb250cm9sLWF1ZGl0Lmpzb24ATJu8MPiifg6W13Ya96ei8X0P2/gxMDA2NDQgY29tcGFjdC1jb250cm9sLWxheWVyLmpzb24AoIfke4vot/4fIeoupgsfU+C4d9gxMDA2NDQgY29tcGxleC1jb21wcmVzc2lvbi5qc29uAJfEvpVxtexs1BQfrkNhvDRxnlptMTAwNjQ0IGNvbXBsZXgtbmV0d29yay5qc29uAGKmCRiHo4lFNcHQWeGwxSfVVut2MTAwNjQ0IGNvbnRyb2xsZWQtYml0LXJhbmstbW9tZW50Lmpzb24ABS5P7/WWQW3HIQf0BhVn+x+H8xcxMDA2NDQgY29waWVkLWNlbnRlcnMtYml0LWF4ZXMuanNvbgC/s6IX7hvV3s2M8BULjtVXPDA7cjEwMDY0NCBjb3BpZWQtY2VudGVycy1jb21wbGV4LWlucHV0Lmpzb24ANodX0bSGeniTHk/mcayWW8BH1OoxMDA2NDQgY29waWVkLWNlbnRlcnMtY29ybmVyLTI1LTIzLmpzb24AQh41p8Blq/Woext2taGhhHIgiMcxMDA2NDQgY29waWVkLWNlbnRlcnMtaW5wdXQuanNvbgCBe56bPGv+0fQZyXBOHQKgm5HAnjEwMDY0NCBjb3BpZWQtY2VudGVycy1uZXR3b3JrLmpzb24AILu2gGzgYR5IFRKJTR/XPZfClw8xMDA2NDQgY29yZS1saW1pdHMuanNvbgAbq6XnUSh0N67VSGFdRrT4LMn/HDEwMDY0NCBjdWJlLWNvcmUtZmFtaWx5Lmpzb24ALnjf/NOBloNBFyYBx8haZRU4hj4xMDA2NDQgY3ljbGljLXRvcG9sb2d5LWF1ZGl0Lmpzb24APIXCzhvsxefEWZOSHYS9bql8RUUxMDA2NDQgZGFnLW5ldHdvcmsuanNvbgA/nOPBhK9pnMy0OKzdW0fmRYIA4DEwMDY0NCBkaXNqb2ludC10ZW5zb3ItY29tcHJlc3Npb24uanNvbgAyOkatj+d/PXB0e5fOWg0Pz/qqxTEwMDY0NCBkeWFkaWMtY2VudHJhbC1mYWN0b3IuanNvbgCoXLijlQZf/8mF6tScsDYlMpCclzEwMDY0NCBlYXJseS1zaGFyaW5nLWF1ZGl0Lmpzb24ANEpFgoRRkFg6NfIiywKW5Pofw3gxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtYml0LWF4ZXMuanNvbgDzdRDkw+6+sPkL154sPd8pQDYYJTEwMDY0NCBlbmRwb2ludC1nYXVnZS1jb21wbGV4LWlucHV0Lmpzb24Ao51wCIrUVlKNUvcebkuAch7j1S8xMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtaW5wdXQuanNvbgCXEF5pfgMnvlgpDAsQkDTtkXSWuTEwMDY0NCBlbmRwb2ludC1nYXVnZS1uZXR3b3JrLmpzb24AOaui/Yiv7Y1bX/jMBoob5QJrF6sxMDA2NDQgZmFuby1jb21wbGV0aW9uLWF1ZGl0Lmpzb24AMu4gNG4y2Y9vwpTYd3Qi+5xlvGgxMDA2NDQgZmFuby1wZXJtdXRhdGlvbi1hdWRpdC5qc29uAOJc1dzGXLS7Qmpo/P7MrCxUYilWMTAwNjQ0IGZhc3QtZ2F1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YXJzZS1mdXNpb24tYXVkaXQuanNvbgBYTqjVa7w8bBKGf5VRtCV2T75lPTEwMDY0NCBzcGxpdC1jZW50ZXJzLWF1ZGl0Lmpzb24Am7ETDWpWhDibLkOwuk9PelR8D0IxMDA2NDQgc3RhZ2UtcGFpci1hdWRpdC5qc29uAC5NRrCjM/KypjkH+g2SSxBwtM76MTAwNjQ0IHN0YWdlLXJldXNlLmpzb24AhDl1jaFFsTPLe2ytzPNTXJKkTKgxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWJpdC1heGlzLmpzb24AWCSJHen3zQ/zunofxj2eDiRetCwxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWNvbXBsZXgtaW5wdXQuanNvbgB7HZnFGGmrF29MuepJfLqVTr3gtDEwMDY0NCBzdG9wcGVkLXByb2R1Y3QtaW5wdXQuanNvbgDwqRCklQqtxDWi9Pg5e8WfQOR+nTEwMDY0NCBzdG9wcGVkLXByb2R1Y3QtbmV0d29yay5qc29uAJmKin6iY/DGXHZVf1oKDic01rurMTAwNjQ0IHN0cm9uZ2VyLXJhbmstc2NyZWVucy5qc29uALjBEU7ON28fz21YUpQgeLgfHLAmMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1iaXQtYXhlcy5qc29uAA8tKm0wP7dTNwQq6fYwSAeKce+YMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1jb21wbGV4LWlucHV0Lmpzb24AYeS0dJct2Bn58ngEcjXvs9KWXLcxMDA2NDQgc3RydWN0dXJlZC1idWxrLWlucHV0Lmpzb24A783vFXAsunCysgTX1RQeLRS8sb0xMDA2NDQgc3RydWN0dXJlZC1idWxrLW5ldHdvcmsuanNvbgAn7Iau6rbmqL/LGCgWSHCBKEVecDEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstcmFua29uZS1leGFjdG5lc3MuanNvbgBpAV5R7OAnn/P3o+cx6H929nPwgzEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstcmFua29uZS1wcm9maWxlcy5qc29uADnVZr+BdVEi+bdsIyUFr9nJkRidMTAwNjQ0IHN1YnNldC1jb3JlLWZhbWlseS5qc29uAI8LCXv87kmJCQQ9vgaAo6za9ipUMTAwNjQ0IHRlcm5hcnktc2lkZS5qc29uACxcn26oujIAw5KDvH4AWdgCJoxxMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLWJpdC1pbnB1dC5qc29uABlWrg4Gvjb+9YU5Z1/67uLp8mhUMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLWNvbXBsZXgtaW5wdXQuanNvbgDRuJvLcZmTZfJLa1KQ4URIGzaEBDEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1pbnB1dC5qc29uAEJ3yO4sBJ6vTWkc83Uys8VgfUj4MTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLW5ldHdvcmsuanNvbgBfza90IDouCZ0M37l+i5EsUhUbhw==", + "type": "tree" + }, + "09de2b75b0567bf3221323d174896bd130aeb5b8": { + "base64": "MTAwNjQ0IG11bHRpcGxpY2F0aW9uLWZsb3cudGV4APApfJy4Qa10p87ktUHjAgc9kTI2MTAwNjQ0IHByb29mLW1hcC50ZXgAotU55aeU641nnGytaMa40SsPyIA=", + "type": "tree" + }, + "0a8b76d417c0857a3aaec881a3dfce96c3030793": { + "base64": "MTAwNjQ0IE1BTklGRVNULmpzb24ACXdGmo6oDVcVSulfoFQ7b3sr5OY0MDAwMCBwcjEwADhr4pLvxBw07AWobvQ9+JrNB+3aNDAwMDAgcHIxMQBXyxKwF0849E9VfK5Eqvpyc4c0RTQwMDAwIHByMTIAq9medAL9uwzcdshKroLlDM/f6to0MDAwMCBwcjMA9LDSNZtoJ+suFU99zgvzi6JPBw80MDAwMCBwcjQA/L7jeHs8iFGiPIr+YZCnHnHfGnU0MDAwMCBwcjUA/I4oHmctwX14+faVMLIZk7oArwI0MDAwMCBwcjYAD1B/0jw2BWvb28PPgJztQYxpUd00MDAwMCBwcjcAwIkCgUm0KPwv0Odn6ITL55/XBAM0MDAwMCBwcjgA+OMJToAkjEN1DwzYX46JYEXbBR40MDAwMCBwcjkAiwcg3vhDMn1zg8vVQ018y2hJTmQ=", + "type": "tree" + }, + "0ac554c983af85155dac54bf40718ecdb7048e23": { + "base64": "MTAwNjQ0IGFkb3B0ZWQtcHIzNy1wcm92ZW5hbmNlLmpzb24A/HdLADGBMULxViZRIf4uh5PPhK8xMDA2NDQgYWRvcHRlZF9wcjM3X2JhbGFuY2VkX2Fzc2VtYmx5LnB5AMf9QoZ9dBk522pBUpv9uxNvAxkbMTAwNjQ0IGV4YWN0X2NvbXBvc2l0aW9uLnB5AF0pQ9calog9Kx2LV3RYuvi8zA5IMTAwNjQ0IGV4cGxpY2l0X3Byb2ZpbGVfY29tcG9zaXRpb24ucHkA10mutyFx65VkB1vsgrYvm7UZ/qIxMDA2NDQgZml4ZWQtYmFzaXMtcHJvdmVuYW5jZS5qc29uAFJSId7iO2KbaCoI8gT5a9KbBsTA", + "type": "tree" + }, + "0b6695ef66378c2ac6b34d8d8b7c77ce0eee4110": { + "base64": "MTAwNjQ0IE1BTklGRVNULmpzb24AfEMNYaJ9uK61+2Mf7SaSbZUCUmAxMDA2NDQgUFJPVkVOQU5DRS5qc29uACO/UtVBwA/CiZWaB8rw/VyJOUPQMTAwNjQ0IFJFQURNRS5tZACa2yAwD7/zx/XAcvKBUOnLQ7Uu0zEwMDY0NCBTT1VSQ0VTLmpzb24AmUgfZ/956ghx+ZpSh8S0VvByFnc0MDAwMCBwcjI5AJeySzkG0Ag285l+kLN2fEIhL3KINDAwMDAgcHIzMwDN/G+sXL/rksCNzedGjrYPMa3GBA==", + "type": "tree" + }, + "0cd8e1013b4a4c9862eacbd67deb9d0bf600ef5d": { + "base64": "NDAwMDAgcHI0NgAbc+xn4XzvjUuPEOGdKQUp2i5f6g==", + "type": "tree" + }, + "0e22d871abde5e7047c20f30506b69a2e585de88": { + "base64": "MTAwNjQ0IGJhdGNoZWQtMjMtbm90ZS50ZXgAFLTEAWB66b4jXdfRS/l6AwaGBFIxMDA2NDQgYmF0Y2hlZC1hbGdvcml0aG1zLnRleABVfPEtfEML3eIt0/1t9E/6ldam4DEwMDY0NCBiYXRjaGVkLWFzc2VtYmx5LnRleADJJZix9bQpGMI+wpiKciO7u6WgijEwMDY0NCBiYXRjaGVkLWJpdC1yYW5rLWFjY291bnRpbmcudGV4ADEfYFW1GgyL1/arbYmWbuTv35VOMTAwNjQ0IGJhdGNoZWQtYml0LXJvd3MudGV4AMuqjLQsrR5xSh0ksWqxYK5ur2DJMTAwNjQ0IGJhdGNoZWQtY29tcGxleC1yb3dzLnRleADhO9luspvcZSbxDcMuChRrwXhIpDEwMDY0NCBiYXRjaGVkLXBhdGgtYnVkZ2V0LnRleAC+M4+W6D52neCQ1ene6AK+pkXHLDEwMDY0NCBidWxrLWNvbXBsZXgtZ3VhcmQudGV4AKN2E/BfgwEVbcoA4gLideS7Qt3PMTAwNjQ0IGNoaXJwLXNjYWxpbmctY29ycmVjdGlvbi50ZXgAp5F8VTSPtNpbCVwieDnAVTSebaoxMDA2NDQgY29tcGFjdC1jb250cm9sLWd1YXJkLnRleAC/w7O/mv/RXJcan6nntAbgj67B4jEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbGF5b3V0LnRleAAW9NIzRxp9GJFjrn55Ar7K3su6ZDEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbW92ZW1lbnQudGV4AAa2qe8kJFrHtyTFOiBGNUFbQCNXMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1ub3RlLnRleAANg39iQqPc/yxDS4Y5h/85+HV0bjEwMDY0NCBjb21wbGV4LWNpcmN1aXQtY29uc3RydWN0aW9uLnRleACliHs41MOX/o10Jr9Nbai56o4uojEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLW5vdGUudGV4AIeDFDOKTxFC7tD4t/iGFMzgNz52MTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24udGV4ABhjKFcpB8Y3NanMtAMyb/t0d3O/MTAwNjQ0IGNvbnRyb2xsZWQtcHJvamVjdG9yLWJhc2lzLnRleABzKOEpV/jO8550Je6Q2K7U+LuZkTEwMDY0NCBjb3BpZWQtY2VudGVycy1hc3NlbWJseS50ZXgAsMaRZsMEjSdRg1WZXj5bYicixpYxMDA2NDQgY29waWVkLWNlbnRlcnMtYml0LnRleAAbeiqIpJ+21hI4zed3BRQk15tyTTEwMDY0NCBjb3BpZWQtY2VudGVycy1jb21wbGV4LnRleAD93XvH8qL3SbpuraGdFTv5JD7jHDEwMDY0NCBjb3BpZWQtY2VudGVycy1sZW1tYS50ZXgAiTOq9QiqnUx1uhKQkT4C9oaNNR0xMDA2NDQgY29waWVkLWNlbnRlcnMtbm90ZS50ZXgAc5wkpH0T6bTDWXfe3+8oh2zbMT4xMDA2NDQgZGFnLWNvbnN0cnVjdGlvbi50ZXgAykac4FJfDNEYIYR5xpF/O6s/IugxMDA2NDQgZGFnLW5vdGUudGV4AJkZ7qSb+DrxxgRaRUmohYGH630GMTAwNjQ0IGRpc2pvaW50LXRlbnNvci1jb21wcmVzc2lvbi50ZXgADjytG5M/UyzYPWo+kxFMTJNh5lwxMDA2NDQgZHlhZGljLWNlbnRyYWwtZmFjdG9yLnRleACrkrnq7b5RADZ8JYOGdPMLjN9F2zEwMDY0NCBlbmRwb2ludC1nYXVnZS1hc3NlbWJseS50ZXgAGQTK4qZ39300471LR9Zl2SS4r0oxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtYmFzaXMudGV4AIu6AgOw9ZywwunimFCkJo9E14chMTAwNjQ0IGVuZHBvaW50LWdhdWdlLWNvbXBsZXgudGV4AJB6DO2o3wMX3cfytx31ryqk1H38MTAwNjQ0IGVuZHBvaW50LWdhdWdlLWNvbnN0cnVjdGlvbi50ZXgAmDCXSiWVEhq6H0dxWd1q4f+IYioxMDA2NDQgZW5kcG9pbnQtZ2F1Z2Utbm90ZS50ZXgAC4FVxqBaPteUgO3yhI2wp7M/5jIxMDA2NDQgZmFzdC1nYXVzc2lhbi1yZXNhbXBsaW5nLnRleAChAtIUKAGB/hD9vNY0MybkC3hJ+jEwMDY0NCBmaW5pdGUtYWxwaGFiZXQtdHJhbnNmZXIudGV4ALyVQLPFds8OP+6UkDDSp/qqKHnLMTAwNjQ0IGdlbmVyYWwtY2xpZmZvcmQtZnJhbWVzLnRleAADZ+6wBSmGAfKKZzhh1vcb8dDruzEwMDY0NCBnZW5lcmFsLW5ldHdvcmstZ3VhcmQudGV4ALxbg2ENR8gu3xmqQokUKEKe0UzAMTAwNjQ0IGluY2lkZW5jZS1jb25zdHJ1Y3Rpb24udGV4AOHCXuURh8Dfsb2nBXk8rSgTSMtRMTAwNjQ0IGluY2lkZW5jZS1ub3RlLnRleADp6KmduSejxA/7yMmHIvo6u5r8cTEwMDY0NCBpbmRlcGVuZGVudC1jb21wbGV4LnRleACkQp6O5rBQcv/yvXaXkl55e1F8EDEwMDY0NCBub25hZGphY2VudC1heGlzLW5vdGUudGV4AFtoT1z7Jb+m4lnoYlRCF8FMB1QsMTAwNjQ0IHBhaXJlZC1jb25zdHJ1Y3Rpb24udGV4AH/SZNS/SMuH01W9qyvZISmFent3MTAwNjQ0IHBhaXJlZC1jdWJlLWFzc2VtYmx5LnRleADUQifrVatoudBOpmG75Ib+pmGC1DEwMDY0NCBwYWlyZWQtY3ViZS1iaXQudGV4AN2EU1shkjurOIMFIx9vTHVq76zYMTAwNjQ0IHBhaXJlZC1jdWJlLWNvbnN0cnVjdGlvbi50ZXgARCivnG1+pqVcLAA8wW9bwN7Ai7wxMDA2NDQgcGFpcmVkLWN1YmUtbm90ZS50ZXgAtyxn9y8gQLoLmnWkRs7vtssewaIxMDA2NDQgcGFpcmVkLWN1YmUtc2hhcmluZy50ZXgAVucpVy2Fkha4iidexTWStl9O5WsxMDA2NDQgcGFpcmVkLW5vdGUudGV4AOI+XSFb0a6Om4d5+7qZ4OuoEXnaMTAwNjQ0IHBhcmFtZXRlci1ub3RlLnRleABiTE+Pz9mtBnVHmsBrwYPhqKskNjEwMDY0NCBwYXJ0aWFsLWdhdWdlLWFzc2VtYmx5LnRleABKCfMko/6KPCOX80JEtc7evrlafDEwMDY0NCBwYXJ0aWFsLWdhdWdlLWNvbnN0cnVjdGlvbi50ZXgAFH/Fq5GJu08xeD+RFxLboRJ5l1YxMDA2NDQgcGFydGlhbC1nYXVnZS1mcmFtZXMudGV4AIZhXsozsozYCnJWZI7s0FGYjs+7MTAwNjQ0IHBhcnRpYWwtZ2F1Z2Utbm90ZS50ZXgAdZLUlwsEsVJOTke27rMkBl+iiX8xMDA2NDQgcGFydGlhbC1zd2FwLWFzc2VtYmx5LnRleAB7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", + "type": "tree" + }, + "0f507fd23c36056bdbdbc3cf809ced418c6951dd": { + "base64": "NDAwMDAgY2VydGlmaWNhdGVzAGXK/hk+URDIaPnzJUVM30jcGR3S", + "type": "tree" + }, + "1091f08b168ae11263bd99358444be2bd22bc0c6": { + "base64": "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Xn7LcxOGt7yefh7bMTAwNjQ0IHJhdGlvbmFsX3NwYW5fZnJhbWVzLnB5AL7wKGYlmJAFuvO1gxvHexKS4Y8/MTAwNjQ0IHJhdGlvbmFsX3RlbnNvci5weQA4O61Kx1Rod3F/zkAvuzZQ+M/XljEwMDY0NCByZXNlYXJjaF9uZXR3b3Jrcy5weQDoNppBdpBOV2jzpMpkXG/8PvSazzEwMDY0NCByZXVzZV9uZXR3b3JrLnB5AFDoEKQPntyx3cZz599Wyb+ZWDisMTAwNjQ0IHJvdXRpbmdfc210LnB5ACHPN7Sixt9s0FtsPN5fbsK0DxE8MTAwNjQ0IHJ1bl9pc29sYXRlZF90ZXN0cy5weQC7Tsx807KvBRF1qrHOnQRA5crL9zEwMDY0NCBzZWFyY2hfaW5jaWRlbmNlX3BhcnRpdGlvbnMucHkAsuXIu29QKOWjXO0gPT9Blq/WvK0xMDA2NDQgc2VhcmNoX25ldHdvcmsucHkA8D1cGyyBr9bC8dO6nhfU57zTG5sxMDA2NDQgc2VhcmNoX25ldHdvcmtfdmFyaWFudHMucHkAUuWazLmAMSvkjp1idEc7p8MUU4IxMDA2NDQgc2hhcmVkX3BvaW50X2NpcmN1aXQucHkAg0egvaY/v7UbhsbG0Qp79UGBYwgxMDA2NDQgc2hhcmVkX3BvaW50X25ldHdvcmsucHkADsfnUEb+cUloxJF4zX+D6A6fnZQxMDA2NDQgc21hbGxfYmxvY2tfd2l0bmVzcy5weQB08jiX5tZKCCCadvtBVxHJBnzQEzQwMDAwIHN0b3BwZWRfcHJvZHVjdADBLCHh/hzsvE08/1rY3VFRM9IYMDEwMDY0NCBzdG9wcGVkX3Byb2R1Y3RfbmV0d29yay5weQBfNJomdkGeEAKw1BVk2M9R3S8fdTEwMDY0NCBzdG9wcGVkX3Byb2R1Y3RfcHJvZHVjZXIucHkArvyR2adztCxZqAf84yP7+89HHGI0MDAwMCBzdHJ1Y3R1cmVkX2J1bGsAdrMdDMML+bUr3ydnUnATNIqTUIAxMDA2NDQgc3RydWN0dXJlZF9idWxrX2Fzc2VtYmx5LnB5ALdvnLWkUvtjfzqK7AdI2m0tgZaKMTAwNjQ0IHN0cnVjdHVyZWRfYnVsa19uZXR3b3JrLnB5ADLLfTtzBnXlKRbeG2vhXniZ7yJ5MTAwNjQ0IHN0cnVjdHVyZWRfYnVsa19wcm9kdWNlci5weQBb2p3dbgR4a2sIrK8S1bD1mjKOZDEwMDY0NCB0ZXJuYXJ5X2Fzc2VtYmx5LnB5AA5SO9EM9onPrsQMKKEj/+qbXcpLNDAwMDAgdGhyZWVfc3RhZ2VfY292ZXIA6dwQcpN5tPtMzqMgyJjQ2j+WJPkxMDA2NDQgdGhyZWVfc3RhZ2VfY292ZXJfbmV0d29yay5weQCLoFouqxG8x2ecnPiP5db2V24ARjEwMDY0NCB0aHJlZV9zdGFnZV9jb3Zlcl9wcm9kdWNlci5weQCeeiGnWNJt7LeLBWGoxRWrDCKkKDEwMDY0NCB0dW5lX3JvdXRpbmcucHkA1Um7xv3tnTnVy8h1X3GrexGiEl4=", + "type": "tree" + }, + "10ad130b4ea1db0710198dc3eac4bd590678695a": { + "base64": "MTAwNjQ0IHJldGFpbmVkLWNvbXBsZXgtMzEucGF0Y2gA85AvB8/o/y/FUgWkOX45YXR3moA=", + "type": "tree" + }, + "12b775acbb1d57017751ab751807f2a8cd9e0b9d": { + "base64": "MTAwNjQ0IG91dGVyNDhfZXhhY3RfcmF0aW9uYWxfYW5kX2ludGVnZXJfZGF0YS5qc29uAMtx+ys6ssHCAzcIFRqDO9COWu5O", + "type": "tree" + }, + "1333ea678e7c179bbb5687bdd14941ca40e327ef": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLmpzb24A7rQ9Q7CGXIlgpxB/Dzhi1qsnuck0MDAwMCB2ZW5kb3IAgTJQJfLwhy8m7cvnia2XBlfBjxY=", + "type": "tree" + }, + "139a7c259625ff72bc7567e5b040863fdb41c1a1": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLmpzb24AOTfM5s4qr90j8kLubs0fC8KzJmc=", + "type": "tree" + }, + "14661c945928a9cf0b63c9baaa2f4b9870190e9f": { + "base64": "MTAwNjQ0IF9faW5pdF9fLnB5AEI/t1/Tf9UkgqYMmVicTk19gVonMTAwNjQ0IGNvbXBsZXgucHkA8eJ8ahAMao+XT3fEApySIYyfzp8=", + "type": "tree" + }, + "159209aaab81d82d3052d424027dfb71b56aaa12": { + "base64": "NDAwMDAgcHI1OACwgkLWGNf6j6iqt/h22frCtuKzvjQwMDAwIHByNjAA4Ev0S7oaBfvropvxzzJldBLdJuM=", + "type": "tree" + }, + "15d52af6c0ab4296d7df0e4f057fb7ad1084d75e": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAFJgPXE/4LQH1GG5WeEKqLZzaSblMTAwNjQ0IFJFQURNRS5tZABoiGrBBBmCGayqg5x5AZLEKyes8DEwMDY0NCBTT1VSQ0UuanNvbgBnVEEDkgHFIstPYBQgQcGIfranwzQwMDAwIGNlcnRpZmljYXRlcwBwHDnAgGvDkq1RFW8MQiXx1WDhrzQwMDAwIHJlc2VhcmNoAMTU3c3y+bM9j215RnAlLNH+QoAO", + "type": "tree" + }, + "16d13c334901c2bc20f966888d02fb62367192ca": { + "base64": "MTAwNjQ0IHJlc2VhcmNoLXJldmlldy5tZADb7/QFV5Tt/uwtNrZXjVr481fINA==", + "type": "tree" + }, + "173c6ec2c5c21b727bc96c5f0e98ddccace037d5": { + "base64": "NDAwMDAgcmVzZWFyY2gA1ULPBhYXF11QZm36N9Bx8O6srBw=", + "type": "tree" + }, + "1b67c1aed077c884c23935d8e730109bb483e84d": { + "base64": "MTAwNjQ0IE1BVENISU5HX1NFQVJDSC5tZADJvTVEActyTAzqTz0DVWGy49x37zEwMDY0NCBSRUFETUUubWQATFHErnI2I2Hy0oUo+SLkZUmT5JQxMDA2NDQgYWxsLWNhcmRpbmFsaXR5LWgyNS1jZXJ0aWZpY2F0ZS5qc29uAM9hH+Tnt7lQm4rsnSrI8Qw+/oxgMTAwNjQ0IGFsbC1jYXJkaW5hbGl0eS1zdGRsaWItcmVwbGF5Lmpzb24A8dRYKJuAXR0blixARcXAADkP5IYxMDA2NDQgYWxsX2NhcmRpbmFsaXR5X2NlcnRpZmljYXRlLnB5AIZV+BZ3fiPANX+phcr/3M+u75TwMTAwNjQ0IGFzc2lnbm1lbnQtYXVkaXQtcmVjZWlwdC5qc29uANzppWX9XI7RgcH3EhYrfS8P8mqmMTAwNjQ0IGFzc2lnbm1lbnRfY2VydGlmaWNhdGUucHkAF0Kejctv2ZZR1RvpegL7UXtCTiYxMDA2NDQgYXVkaXQtcmVjZWlwdC1wcjQ4LWZpbmFsLmpzb24AfENtK5GwPAvoAyS4s5jpQExhr4cxMDA2NDQgYXVkaXRfYXNzaWdubWVudF9jZXJ0aWZpY2F0ZXMucHkAp3hXNuhn+1SV/7BQSqqIfa0wHL4xMDA2NDQgYXVkaXRfY2F0YWxvZ3VlLnB5AFBCqGY7e8/NLu30bwziVttsVi61MTAwNjQ0IGNhdGFsb2d1ZS5weQDtNAveHbMbIJ8DPoeGWY5EsysySDEwMDY0NCBjb21tdW5pdHktcHI0OS1hbm5vdW5jZW1lbnQtc25hcHNob3QuanNvbgCR5OA74pa85in21khO1+DEXlEFBzEwMDY0NCBmaXhlZC1kYWctZHVhbC1jZXJ0aWZpY2F0ZS5qc29uAHWsEwqRoRJpoeZFVMt9Sj4okyyEMTAwNjQ0IGZpeGVkLWRhZy1oMjMtZHVhbC1maW5hbC5qc29uAGwulzh5Wusm0gDHM4OZRw+KrCqdMTAwNjQ0IGZpeGVkLWRhZy1oMjMtc2VsZWN0ZWQtZHVhbC5qc29uAP/8TCB0vYxMNrhf4QkAP9Btcj1/MTAwNjQ0IGZpeGVkLWRhZy1oMjUtZHVhbC1maW5hbC5qc29uAN6r6n5cGbYtHsdh6fi6rd+31CfkMTAwNjQ0IGZpeGVkLWRhZy1oMjUtc2VsZWN0ZWQtZHVhbC5qc29uAPs+kkAZKeFYB6kTL1t6iHHQjmXfMTAwNjQ0IGgyMy1ldmVuLWludGVnZXItY29zdHMudHN2APdjby88XE8xsiTIlp17Id4xdmHZMTAwNjQ0IGgyMy1zZWxlY3RlZC1pbnRlZ2VyLWNvc3RzLnRzdgD3geNkghKzP2R8weblZKWRS2HZdDEwMDY0NCBoMjUtZnVsbC1pbnRlZ2VyLWNvc3RzLnRzdgBeUkRv9VOghXZoTsLmRKxhRl088TEwMDY0NCBoMjUtc2VsZWN0ZWQtaW50ZWdlci1jb3N0cy50c3YAseFd2u/L6qoQTu8IZnqhs+f42kE0MDAwMCBpbnB1dHMA2knT0JzdqosxDxXmUGPU2nY8ud8xMDA2NDQgcTE2LXNlYXJjaC5qc29uAKgxzpMbqhC9P9W/KvSNQw5FrFUa", + "type": "tree" + }, + "1b73ec67e17cef8d4b8f10e19d290529da2e5fea": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAKhHT1wx3U8LJCMq4dSidEBbW7Z3NDAwMDAgY2VydGlmaWNhdGVzACBNftgk2NKT7YS2dMZsTNOwm+bYNDAwMDAgbm90ZXMAbC+TS3JZKf/hkF4Iytggktv8l2M0MDAwMCByZXNlYXJjaACsHYFKOYNIfChKnvQ8jmEA+tsrFzQwMDAwIHNjcmlwdHMAmRpYK/RaLqXsz0W72jppIqqmSKw=", + "type": "tree" + }, + "1d5e0cc0b7cf5d8f6e5c2e05a2f63fe621a76b75": { + "base64": "MTAwNjQ0IFBST09GLm1kAOQc02aJCYpfCzw7ZmPRG8WFhjavMTAwNjQ0IFNPVVJDRS5qc29uAGJlujeR8fw93Hi9N5zeiNQl3yAXMTAwNjQ0IGF1ZGl0LnB5ADTUmQ9mrwSKMJKvJLG53S/vYP2fMTAwNjQ0IGJhbGFuY2VkX2Fzc2VtYmx5LnB5AMf9QoZ9dBk522pBUpv9uxNvAxkbMTAwNjQ0IGNlcnRpZmljYXRlLmpzb24A6bsNwDVSEFYo15zNDVWgF1nyEZQxMDA2NDQgY29tcGFyaXNvbi1wcjQwLmpzb24A4LFPskOWx0Gjvy8YPbTG8ssKyrMxMDA2NDQgY29tcGFyaXNvbi1wcjQxLmpzb24A8paPsd2mggkNGj0rya2GrROqxx8xMDA2NDQgY29tcGFyaXNvbi1wcjQyLmpzb24AP0N4WA6Q/dHpuSuEfdYLoir8KI4xMDA2NDQgY29tcGFyaXNvbi1wcjQzLmpzb24AUD5KdM4mo6+Aj2Kf1f5rgnRujugxMDA2NDQgY29tcGFyaXNvbi1wcjQ0Lmpzb24AnAxBYVh5Dl1Bfk2ck+E7zz8SDgcxMDA2NDQgY29tcGFyaXNvbi1wcjQ2Lmpzb24AQnmD4uB+E6RJd7BDlzstTsk933IxMDA2NDQgY29tcGFyaXNvbi1wcjQ3Lmpzb24AvDh+jTfjQVIEOp95GSyONaTWdygxMDA2NDQgY29tcGFyaXNvbi1wcjQ4Lmpzb24AsKsxAdh1XKOxDbp+VTKYIANmVSAxMDA2NDQgZGF0YS1jb3JuZXJzLmpzb24ATLeism/Eiv0CC3lmxD/TDPIyFRQxMDA2NDQgZGF0YV9jb3JuZXJzLmNwcAAlH2yHzKQmGaDBttg3Bd9crQ6cMzEwMDY0NCBkYXRhX3JlY292ZXJ5LnB5ADiXLKt+H9pgjDiY/J8vV4vyUyEaMTAwNjQ0IGxpbmtzLTIzLnVzZXMAS4B/tae72KeHkayBY/Yh8cwmP5AxMDA2NDQgbGlua3MtMjUudXNlcwDv+8Ln5dE+MQ8R0QEGgPX/obPJ8DEwMDY0NCBvcHRpbWl6ZV9tYXRjaGluZy5weQDvW/63M6/lwXtF7fE2SWvxHalfiDEwMDY0NCBvcmlnaW5hbC0yMy5qc29uAMgUy7dm0iyVAOiOKyWgG/X15M2PMTAwNjQ0IG9yaWdpbmFsLTI1Lmpzb24A8od+sDHyCAv0DbqpS6Lq4WJFaO0xMDA2NDQgb3JpZ2luYWxfdGltZWxpbmUucHkAD7NIiW7ayCpqw+aC1hEEnLhIj/ExMDA2NDQgcHJvZHVjZXItcmVjZWlwdC5qc29uAHbw8DgmObU2JwL4PXa22dQCQ3xaMTAwNjQ0IHByb2R1Y2VyLnB5AB8LC9JXS6IiWgGAvBNqrkX5GmWsMTAwNjQ0IHByb2ZpbGVzLTIzLmpzb24ArZ7X//SdFZ2rvV4ncTnsrQXCYnAxMDA2NDQgcHJvZmlsZXMtMjUuanNvbgA93hOaAo5EXNZE+nKm1QSI63QGWjEwMDY0NCBwcm9maWxlcy5jcHAAQQ5Q9HViMYP6uN6PIR59UoWZFRo0MDAwMCByZXZlcnNlZACFDCv128dt3ga3RxK+aey8cgWbMzEwMDY0NCBzY2FsYXItMjMuanNvbgAYvqE3dbZQzI94MVwpYQSPjQQyKzEwMDY0NCBzY2FsYXItMjUuanNvbgCQCuT9zAifcXDYn8zbOE0w/SmYSTEwMDY0NCBza2lwX2dyYXBoLnB5AOP/VuM9Wve9MIeKU4p39qCCEZLFMTAwNjQ0IHRpbWVsaW5lLTIzLmpzb24AdWkPnZpcwmdmiksgR5mfanXbHasxMDA2NDQgdGltZWxpbmUtMjUuanNvbgDBadisYibLKnGTHaNHL2US6l0TajEwMDY0NCB2ZXJpZnkucHkAZC76x167Pz6+OwRORbTOQ9FQL1s=", + "type": "tree" + }, + "1e96df9afe8e99a35674d27597a8f6b6946bc3cb": { + "base64": "MTAwNjQ0IGFyaXRobWV0aWMtYXVkaXQudHh0AAcOqz3Mm2FzV4ZRunrnBhiYwBqwMTAwNjQ0IGdyb3VwaW5nLWF1ZGl0LnR4dAAFEHHMgxE2TwVi1FlqJrXJs5JGEg==", + "type": "tree" + }, + "1eb986eaaf6586b574e35266226220e4143c2cb2": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAA3nZDicLcSBDozi3PF5KLpjidHzMTAwNjQ0IFNPVVJDRS5qc29uAB9Dm+4OTXgijXTWENixdydfcvCTNDAwMDAgcmVzZWFyY2gA5bXA62AwtxJBk4eRyyIObyEqack=", + "type": "tree" + }, + "1efc267cbb483fc43fdc0ccd9e4a0b55205c094a": { + "base64": "MTAwNjQ0IGFjdHVhbF9pbnRlZ2VyX2dlbmVyYWxfZXh0ZW5zaW9uMTBfc3RhbmRhcmRfcHVibGljX3Byb2plY3Rpb24uanNvbgA0vObueZsqi2mDZElq3d4Me2V3nDEwMDY0NCBhY3R1YWxfbmluZV9zb3VyY2VzXzM1X3N0YW5kYXJkX3B1YmxpY19wcm9qZWN0aW9uLmpzb24AMuIls1s59BIcBstdFncV8BAg36E0MDAwMCBnaXRodWJfY2kAJiHJ5Z5z+KeHvGXiC5C4PfaxCSU0MDAwMCBsb2dzAE/zXBd4kyB6EWnN3XlbzDB6n8ZXMTAwNjQ0IHB1YmxpY19tb2R1bGVfc2NvcGUuanNvbgCHKjybpoNK+bc5zjHF7n3Oo+dWjw==", + "type": "tree" + }, + "204d7ed824d8d293ed84b674c66c4cd3b09be6d8": { + "base64": "MTAwNjQ0IGNvcGllZC1jZW50ZXJzLWNvbXBsZXgtaW5wdXQuanNvbgA2h1fRtIZ6eJMeT+ZxrJZbwEfU6g==", + "type": "tree" + }, + "2099b07c87e206dbfb89eecd1c762e1114982c81": { + "base64": "MTAwNjQ0IGFubm91bmNlbWVudC5tZABGtKByMzYo3MexCGHo4qffOG4zbDEwMDY0NCBhdWRpdC5tZABwwRtQpKMRPLy3fZn0Gt9OQXg7GTEwMDY0NCBjaS12ZXJpZmljYXRpb24ubWQANsfwgvCuvY7zidmcJgSlRqWktb8xMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy1hdWRpdC5tZAAGFSWr/P5uapTn5wT2Ibyhjrz3JzEwMDY0NCBwYWNrZWQtbW92ZW1lbnQtYXVkaXQubWQAUqC84LokBGs/3slCrc8ZmOnQ72UxMDA2NDQgcGFpcmVkLWN1YmUubWQAONw9MOCaXkDXazSHJ52kMBnXZO8xMDA2NDQgcGFydGlhbC1nYXVnZS5tZADdXGcKUSjIWTytOVu9fi4DzirFYzEwMDY0NCBwcmUtY29tbXVuaXR5LXJlc2VhcmNoLXJlcHJvZHVjaWJpbGl0eS5tZAA4JSq0dv7t9QEJ90XPMwoZACm5djEwMDY0NCByZWxlYXNlLW5vdGVzLm1kANwgpt32GF8cnqY5d26XNM1K9wrDNDAwMDAgcmVsZWFzZXMA8l0N9tnlnBYCyn1Gifoax3yIMcMxMDA2NDQgcmVwcm9kdWNpYmlsaXR5Lm1kAPEul1KhrU2Q3RqAmmVWEaLUkNAaNDAwMDAgcmVzZWFyY2gAwzgJa1zpM8C8F1D2/KUqQhNhPIsxMDA2NDQgc3RvcHBlZC1wcm9kdWN0Lm1kAFvBy8iOTo5T9C2XGObFugo1mIonMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLm1kADhVTh+zaZ5KOniuCoH4NLom3HPt", + "type": "tree" + }, + "210e7a0857c9ba4183511b72f8b3ccbce5e0f2f6": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAAKc9UPOiNA4mazUbviSqZ9gKx8EDEwMDY0NCBTT1VSQ0UuanNvbgCCiwdDGz4ADltNyVbcGJ4dRETWXDEwMDY0NCBiaXRzLTIzLmpzb24AllKePgCK70VWMnOjTZnlg++FRXMxMDA2NDQgYml0cy0yNS5qc29uAEXFQUm+mpJGefKTdG82mx8mmF/HMTAwNjQ0IGNlcnRpZmljYXRlLmpzb24AktxFelAMPj3xkQASQ2vy0PC6bcMxMDA2NDQgY2xpbWJlZF9ncmFwaC5weQA6W8PtJV+IUuD5YrhecRDhvTJOWDEwMDY0NCBjb21wYXJpc29uLXByNDguanNvbgCv2bW9rE28LWdZ8GBz5YPYdMh8cjEwMDY0NCBsaW5rcy0yMy51c2VzAB08/i2dhy7HtF0XmtEqO61lG1GGMTAwNjQ0IGxpbmtzLTI1LnVzZXMAgG+t3FDUQUL10klkHE7FqLiRAvwxMDA2NDQgb3B0aW1pemVfbWF0Y2hpbmcucHkAn3kZV9Ki5L6NkwXbIv1n3BQRUZkxMDA2NDQgb3JpZ2luYWwtMjMuanNvbgDF30vr75uODs/PGxIQOtuL9gBazDEwMDY0NCBvcmlnaW5hbC0yNS5qc29uAD/2jWrQLXLaeAmucZhQ6Mv+G96MMTAwNjQ0IHByb2R1Y2VyLnB5AG2CsYu4LtNwmmxApnTPTXwv0J/9MTAwNjQ0IHByb2ZpbGVzLTIzLmpzb24A1ZmloSSTyA1uucMkWTxNMKITBHwxMDA2NDQgcHJvZmlsZXMtMjUuanNvbgA6f5lYEqL4IUM3hMTM+VnqfCxt2zEwMDY0NCBwcm9maWxlcy5jcHAAJD8NvEQXyDla5n+sCELW1biDALwxMDA2NDQgc2NhbGFyLTIzLmpzb24A5VG322zEaym4eRO/usftbdYNhjcxMDA2NDQgc2NhbGFyLTI1Lmpzb24AlAX/QpwsMcOEP3nOaw3Ua3V1RjYxMDA2NDQgdGltZWxpbmUtMjMuanNvbgDERNwsMdlnBaO0m6zM1HWwhbpD/TEwMDY0NCB0aW1lbGluZS0yNS5qc29uAFAzngbzBZeaEvFQ3QjN/co5cQo6MTAwNjQ0IHZhbGlkYXRpb24uanNvbgCpNZSxxyghaRD503ngqfMhWP8QNTEwMDY0NCB3aXRuZXNzLnB5AIW+9kZ+RksjMBxsl93YCvyJDT/8", + "type": "tree" + }, + "2149612fc5db7ef63c4768bce4d6dc022c28931a": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAB9p9sIePcw2o2oAs2EG0Afx6+6czEwMDY0NCB2ZXJpZmljYXRpb24uanNvbgBuEaydYoKvw74ueM56z564P774bTEwMDY0NCB2ZXJpZnkucHkAlAqsaCgQn1s4RnxeWqgfxNPARdA=", + "type": "tree" + }, + "2201c752506408003ae669fc6459e3b2a3a735b2": { + "base64": "MTAwNjQ0IGNvcGllZF9jZW50ZXJfb3BlcmF0b3JfYXVkaXQuanNvbgBECj5k+5vml8mgW3uVGDPYCgmtdTEwMDY0NCBjb3BpZWRfY2VudGVyX29wZXJhdG9yX2F1ZGl0LnB5ABQ5DBNApBAs1Xaf1LZLWN+jQcIlMTAwNjQ0IGNvcGllZF9jZW50ZXJfc2NoZWR1bGVfYXVkaXQudHh0AGQZR/AsyLPdmbmTck4/lO7ieIeEMTAwNjQ0IHByMzQtYmFsYW5jZWQtYXNzZW1ibHktYXVkaXQudHh0AImMpgDvNp9WGyLqvqqJd1iEStT+", + "type": "tree" + }, + "2354051d96e8b59acaefce0907e4e60fc20714d1": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLmpzb24AW+NBywA1eNB4j6PKnEy3vkjRxHo=", + "type": "tree" + }, + "25a3b10ba889e733f0931b09625410b95a5cd2f8": { + "base64": "NDAwMDAgY29tcGxleC1uZXR3b3JrAMw2aktjkiqP9mM+Fa9KWvUbN/l8NDAwMDAgY29tcGxleC10d29zdGFnZQDGTZgm0IC6wJtYkJH1Jaue/vZXOzQwMDAwIHBhcnRpYWwtc3dhcABfcbYES2HjCEHH+yIoO1+sckKXUDQwMDAwIHByNy1yb2xlLWNvdW50cwB3uF1a+yq6ikgUB3luLNrwQ+sfajQwMDAwIHR3by1zdGFnZS1iaXQApmHMJqSikmBgzRKeDHb/FhJt1/k=", + "type": "tree" + }, + "2621c9e59e73f8a787bc65e20b90b83df6b10925": { + "base64": "NDAwMDAgMzc2NzUyNjQxODQAwknEAu6NccOlZMRyU0yq8FpwOWo=", + "type": "tree" + }, + "2762db1faa56dfc03db7f5add0ec7fe7689c022c": { + "base64": "MTAwNjQ0IEFzc2VtYmx5LmxlYW4AXZmM2hqNvVLBtNAcg5JacwwWSD0xMDA2NDQgQ29tbW9uLmxlYW4AoGo8Ho1f9eNQb2xG1OOzoUcznxUxMDA2NDQgUFIxMC5sZWFuAEKTsGsYjSC+9JNpYOW8IvC0p4ZsMTAwNjQ0IFBSMTEubGVhbgDDlcvie4uobMTtHbFH0Y/6xTTXujEwMDY0NCBQUjEyLmxlYW4AAAv9pAmp2PLBvNxxaI3G07GYm6kxMDA2NDQgUFI5LmxlYW4A6dQ7I2ZgRnzRaVr3QXuauJlW24o=", + "type": "tree" + }, + "2899a309270951d3648025fb7e4173a7866bc9e1": { + "base64": "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", + "type": "tree" + }, + "2ae79a06ee1f5e86821e66d3b186137e9e24df3c": { + "base64": "MTAwNjQ0IGgyMy1ldmVuLWVkZ2VzLnR4dADAbJaIlz0t7xdA6RXt4sNy88DSoTEwMDY0NCBoMjMtc2VsZWN0ZWQtZWRnZXMudHh0ABi6qpzI37DTZZ4KCQn90MhwY5vuMTAwNjQ0IGgyNS1mdWxsLWVkZ2VzLnR4dAD71kLoa/JX5NK+gq6lpHMIVtelpjEwMDY0NCBoMjUtcGh5c2ljYWwtZmlyc3Qtb3JkZXIudXNlcwDBZvDy8oELyVOs0HaCVr4qJ5f49zEwMDY0NCBoMjUtc2VsZWN0ZWQtZWRnZXMudHh0APWRumx3DlPFiO2avvcfz7ELI9EG", + "type": "tree" + }, + "2bceb3a36ac94e56593a9c89fbb571dcc1cc9722": { + "base64": "MTAwNjQ0IFBST09GLm1kADmlHK+CgBYPD84cpVAHS5fGMwI4MTAwNjQ0IFJFQURNRS5tZADrJ0A2n6RdjrDH7RiKClQFJyFBZjEwMDY0NCBTT1VSQ0UuanNvbgCAwPKdxAFSV+FwEWBu9DMZz6Bfnw==", + "type": "tree" + }, + "2da2dfacb8ed84e60d45da0b3c2b14897e2d1908": { + "base64": "MTAwNjQ0IHNraXBfZ3JhcGgucHkA4/9W4z1a970wh4pTinf2oIIRksU=", + "type": "tree" + }, + "2f7deaacd5673bd646f73b112e8be790cc58c504": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAA3nZDicLcSBDozi3PF5KLpjidHzMTAwNjQ0IFNPVVJDRS5qc29uAN9CgEETiiT4NEP0Ydc+JWQld1lZNDAwMDAgcmVzZWFyY2gAjvLcxkgPeA7uvxlqaT77uofNBDA=", + "type": "tree" + }, + "35abb693fb8e5d76a98f03713ba111c176d5a1d5": { + "base64": "MTAwNjQ0IEJsb2NrQ29tcG9zaXRpb24ubGVhbgApjHiOTqFEhf4hTzY2y+6Q1OGewjEwMDY0NCBDb25jcmV0ZTE2LmxlYW4APmls00C8Dzf0W3n6P0nwIFnlCfExMDA2NDQgREFHUmVmaW5lbWVudC5sZWFuACXNrWzD/m77DqWdLy+1eLAhm+u1MTAwNjQ0IEludGVnZXJHZW5lcmFsaXphdGlvbi5sZWFuAOnuT4cdFxqZH/dAL/Grqfd41NFRMTAwNjQ0IEludGVnZXJMYXRlRGl2aXNpb24ubGVhbgCM+GNsdLSdE6epc1RLC+Sk9XGBoDEwMDY0NCBPcmRpbmFsVHJhbnNwb3J0LmxlYW4AfY1UFLdWAYCfp5YS+dZ+0EDzK7ExMDA2NDQgT3V0ZXI0OERhdGEubGVhbgCHXmEbNcedScq9IuuDgVC+IeQB3zEwMDY0NCBPdXRlcjQ4U2NoZW1lLmxlYW4As/B9B9h9/IPgRWifB0nzQllNKRIxMDA2NDQgT3V0ZXJMaWZ0aW5nLmxlYW4AUKjkze1NfKe0jjlQdEYGVXaMfmIxMDA2NDQgUm9zb3dza2lFdmVuLmxlYW4AvfXgtgF+lMRZZvKkqXcCqqRC0c0xMDA2NDQgUm9zb3dza2lMZWFmNC5sZWFuAD/yp23j3NUnsW1rwdDeGS54bPdQMTAwNjQ0IFNlbGVjdGVkQXhpb21BdWRpdC5sZWFuACtFGdRHw7Z3Gc8tiFWipdhQeyY/MTAwNjQ0IFNlbGVjdGVkRmluYWxBeGlvbUF1ZGl0LmxlYW4A+fySGkAPiMijRsyVsJgecVvhm5sxMDA2NDQgY2hlY2tfZmluYWxfc2VsZWN0ZWRfYXhpb21zLnB5ANuUHk7XjjeyuVrGQKAl7U0uPwP7MTAwNjQ0IGNoZWNrX3NlbGVjdGVkX2F4aW9tcy5weQA4st/uz7pAY0YtanzTLDw+91TqNzEwMDY0NCBmaW5hbF9zb3VyY2VfbWFuaWZlc3QuanNvbgAyUsckC5lkmuui8DBtq9HQrqvuDjEwMDY0NCBsYWtlZmlsZS50b21sAGq8mFkkZbQUTEaUtoSZFZJaUrcXMTAwNjQ0IGxlYW4tdG9vbGNoYWluAKivp9GwLZbwZx66hUqNxLQWvrRzMTAwNjQ0IHNvdXJjZV9tYW5pZmVzdC5qc29uAFUdYjuHaMYvPOwuD1Qhe1S3Ng4K", + "type": "tree" + }, + "365431958bdfcc8eb1818e4ca0aef8bde6d5faf7": { + "base64": "NDAwMDAgcmVzZWFyY2gAWt4wlnPklihRTBCIzmFpg8Jkumg=", + "type": "tree" + }, + "36ff77fc649d39882d9f499f63a23f4c16487953": { + "base64": "MTAwNjQ0IGJhdGNoZWQtMjMtbm90ZS50ZXgAFLTEAWB66b4jXdfRS/l6AwaGBFIxMDA2NDQgYmF0Y2hlZC1hbGdvcml0aG1zLnRleABVfPEtfEML3eIt0/1t9E/6ldam4DEwMDY0NCBiYXRjaGVkLWFzc2VtYmx5LnRleADJJZix9bQpGMI+wpiKciO7u6WgijEwMDY0NCBiYXRjaGVkLWJpdC1yYW5rLWFjY291bnRpbmcudGV4ADEfYFW1GgyL1/arbYmWbuTv35VOMTAwNjQ0IGJhdGNoZWQtYml0LXJvd3MudGV4AMuqjLQsrR5xSh0ksWqxYK5ur2DJMTAwNjQ0IGJhdGNoZWQtY29tcGxleC1yb3dzLnRleADhO9luspvcZSbxDcMuChRrwXhIpDEwMDY0NCBiYXRjaGVkLXBhdGgtYnVkZ2V0LnRleAC+M4+W6D52neCQ1ene6AK+pkXHLDEwMDY0NCBidWxrLWNvbXBsZXgtZ3VhcmQudGV4AKN2E/BfgwEVbcoA4gLideS7Qt3PMTAwNjQ0IGNoaXJwLXNjYWxpbmctY29ycmVjdGlvbi50ZXgAp5F8VTSPtNpbCVwieDnAVTSebaoxMDA2NDQgY29tcGFjdC1jb250cm9sLWd1YXJkLnRleAC/w7O/mv/RXJcan6nntAbgj67B4jEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbGF5b3V0LnRleAAW9NIzRxp9GJFjrn55Ar7K3su6ZDEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbW92ZW1lbnQudGV4AAa2qe8kJFrHtyTFOiBGNUFbQCNXMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1ub3RlLnRleAANg39iQqPc/yxDS4Y5h/85+HV0bjEwMDY0NCBjb21wbGV4LWNpcmN1aXQtY29uc3RydWN0aW9uLnRleACliHs41MOX/o10Jr9Nbai56o4uojEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLW5vdGUudGV4AIeDFDOKTxFC7tD4t/iGFMzgNz52MTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24udGV4ABhjKFcpB8Y3NanMtAMyb/t0d3O/MTAwNjQ0IGNvbnRyb2xsZWQtcHJvamVjdG9yLWJhc2lzLnRleABzKOEpV/jO8550Je6Q2K7U+LuZ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", + "type": "tree" + }, + "37037eaa9ee92cdaaf0f3c29b068668c8c747d72": { + "base64": "MTAwNjQ0IDAwLWludHJvZHVjdGlvbi50ZXgAqpBI7vhXw+aUmJ9btQIBCeZCJQIxMDA2NDQgMDEtaGlzdG9yeS50ZXgAfG8DMTj5cxXIDmSvtsxEah1ZBTgxMDA2NDQgMDItc3RyZWFtcy50ZXgACI/O6hhnq8dicdfv51Mrd5/ukDkxMDA2NDQgMDMtbW90aWZzLnRleADNsLpSeqjfXVfBURg/04k8Gn4hqzEwMDY0NCAwNC1zd2FwLnRleACVHnkrF2jmUJVhOAuLv7HRzLZMCDEwMDY0NCAwNS1sYXllcnMudGV4AFzos8g8RV8iG7hIWKlyMLAoVkSqMTAwNjQ0IDA2LXRyYW5zZm9ybXMudGV4AN4HPpKS1YVz9wZaPNTyFODQXzREMTAwNjQ0IDA3LXJlc2FtcGxpbmcudGV4ACViQ7+UFrrvuCv5ID+AIVuevijyMTAwNjQ0IDA4LWFzc2VtYmx5LnRleAAzeBCh2aWKLs8UEjQgkjwDm6MipjEwMDY0NCAwOS1leGFjdC1hcml0aG1ldGljLnRleABMeh1jyRLQgfcPWxZunKuS13dO5jEwMDY0NCAxMC10cmFuc3Bvc2l0aW9uLnRleADmnMgnYiDtuGF6NxrpBEqRH7wHZzEwMDY0NCAxMS1ncm91cGVkLXJlY3RhbmdsZXMudGV4AERDnHFsYpDNblEv+skSU0Q7N9Or", + "type": "tree" + }, + "378d15af2c2b959ffd3a41f9f806aa7396b4c068": { + "base64": "MTAwNjQ0IGJlc3QtcG9zaXRpdmUtbmVnYXRpdmUtcmF0aW9uYWwtcHJvZmlsZXMtMjMuanNvbgCXy5tI0e7l0gEYgFP1WwRagLO3yzEwMDY0NCBiZXN0LXBvc2l0aXZlLW5lZ2F0aXZlLXJhdGlvbmFsLXByb2ZpbGVzLTI1Lmpzb24A8jcS4IFeLz7Dg4py86SWrr7kmpsxMDA2NDQgYm90aC1uZWdhdGl2ZS1kYXRhLWlucHV0LWF1ZGl0Lmpzb24AQ43MuU0M0TT9ZLkvRU5vwRJapDUxMDA2NDQgbmVnYXRpdmUtZXhjZXB0aW9uLWV4YWN0LXBhcnQtMC5qc29uAB7UvMsg2XyOaF8JnktFGLx9RV4xMTAwNjQ0IG5lZ2F0aXZlLWV4Y2VwdGlvbi1leGFjdC1wYXJ0LTEuanNvbgD2b/NpOWRrNvJK7E2/PNahLNnESjEwMDY0NCBuZWdhdGl2ZS1leGNlcHRpb24tZXhhY3QtcGFydC0yLmpzb24AN55BoFX98e9aku409oWzEeSSrbgxMDA2NDQgbmVnYXRpdmUtZXhjZXB0aW9uLWV4YWN0LXBhcnQtMy5qc29uANVe9eCECDfiSr9cjj4+LAGLuPV8MTAwNjQ0IHBvc2l0aXZlLW5lZ2F0aXZlLXByb2plY3Rvci0yMy5qc29uAKItuS7moRvDPPWbaGSBniNF1umvMTAwNjQ0IHBvc2l0aXZlLW5lZ2F0aXZlLXByb2plY3Rvci0yNS5qc29uAHQJId6KEjCCNi2L56ieYadPPlPU", + "type": "tree" + }, + "386be292efc41c34ec05a86ef43df89acd07edda": { + "base64": "NDAwMDAgY2VydGlmaWNhdGVzAG2x+gjePeTOkNi9ECtEZIsqvCt4", + "type": "tree" + }, + "38bb5c4ada533e4a96085cbb5643ace8cf710059": { + "base64": "MTAwNjQ0IGNwcm9mLmNwcAD4128VnYULecW6IiqNDYOGWXcimzEwMDY0NCBzb2x2ZTUxLnB5AF6JCjBFzkvWEqHOLNIIYmatGbt4", + "type": "tree" + }, + "390e0bad6da517c5b5510c692f05a61c322e4b4a": { + "base64": "dHJlZSBlMjAwZDQyMDFkYTczZWQ5MTZhZjczZmU4YjBkMDFhZjNmYWJmZjM2CnBhcmVudCBjOGIyMmJjNWMxMGRiYTQ5N2FjMjU4MDRlMjdkOTY0N2Q4MThlMmZmCmF1dGhvciBSb2hhbiBHdXB0YSA8Z3VwdDExNTZAcHVyZHVlLmVkdT4gMTc5MTUyMTM4MiArMDAwMApjb21taXR0ZXIgUm9oYW4gR3VwdGEgPGd1cHQxMTU2QHB1cmR1ZS5lZHU+IDE3OTE1MjEzODIgKzAwMDAKClJhaXNlIGNvbmRpdGlvbmFsIGthcHBhIHRvIDQuNjExMjgxZS00IHdpdGggdGlnaHRlbmVkIGFkYXB0ZXIgdG9sbAoKLSBUaWdodGVuIHRoZSBzdG9wcGVkLWFkYXB0ZXIgYW5kIHJvdyB0b2xsIGV4cG9uZW50IGZyb20gQVRPTSA9IDEvMTAwMCB0byBBVE9NID0gMS8yMDAwID0gNWUtNC4KLSBTdWJvcmRpbmF0aW9uIGNvbmRpdGlvbiBob2xkcyBzdHJpY3RseTogQV9CID0gNC42MTU1MzllLTQgPCA1ZS00IDwgMSAtIEFfQi4KLSBSYWlzZXMgZWZmZWN0aXZlIGJpdCBzYXZpbmcgQV9CIHRvIDQuNjE1NTM5NDcxNWUtNC4KLSBBc3NlbWJseSBtaW5pbXVtIG1hcmdpbiBpbmNyZWFzZXMgdG8gNC42MTEyODI2MmUtNCwgdW5sb2NraW5nIGthcHBhID0gNDYxMTI4MS8xMF4xMCA9IDQuNjExMjgxZS00IHdpdGggcG9zaXRpdmUgYWJzb3JwdGlvbiBnYXAgMS42MjE3ZS0xMC4KLSBBbGwgNDcgc3RyaWN0IGluZXF1YWxpdGllcywgNyBtYXJnaW5zLCBhbmQgbWFrZSBwYWlyZWQtY3ViZS12ZXJpZnkgcGFzcy4K", + "type": "commit" + }, + "3a67eb01e273c99c4254492deca9272da2573034": { + "base64": "MTAwNjQ0IGNvbXBsZXgtbmV0d29yay5qc29uAGKmCRiHo4lFNcHQWeGwxSfVVut2MTAwNjQ0IGZhc3QtZ2F1c3NpYW4uanNvbgAjGQxUoGDPS8TD7DXnKnSvPSylADEwMDY0NCBwcmltZS1maWVsZDI4Lmpzb24ADFBZVOJTYiJtEWwsLlKZ0CAF+F8=", + "type": "tree" + }, + "3b2d5d7ea806b73c02d0df94c1d4ab1d0a45dda4": { + "base64": "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", + "type": "tree" + }, + "3be42bd5b9ab81211c8ac8a9aa25d499caab39d4": { + "base64": "MTAwNjQ0IENlcnRpZmljYXRlcy5sZWFuAOeCPLGbWu6d/Fw6OktIqk2SRns/MTAwNjQ0IENyb2NTd2FwLmxlYW4ANASW0Yg8rbrZYMvjsYG3jLxQ6AwxMDA2NDQgRnJhbWVzLmxlYW4A/EKV974uu6/TnY3iMJ4hvtup3lExMDA2NDQgR3VhcmQubGVhbgBse93z0SOjE5OFdqzfySt2cPLsrDEwMDY0NCBMYXlvdXQubGVhbgBhVyAlN+zGhK+KNlUwNcAH/HI3wjEwMDY0NCBNb3ZlbWVudC5sZWFuAEN9aXeVN3kKltnZyDFIWLe/1W2lMTAwNjQ0IE5ldHdvcmsubGVhbgC6+NRtr/oDHeCoMDvbtrCYucKhFw==", + "type": "tree" + }, + "41681459507330cd9a8c628ac1f5a87f698a7ed3": { + "base64": "MTAwNjQ0IGNpLWF0LXB1YmxpY2F0aW9uLmpzb24A5L2opQe2V4lwUbIaf9b08i6VRlgxMDA2NDQgY2xvc3VyZS1yZWNlaXB0cy5qc29uADFOIMfQM+RsMlANT6WEXW3R0qOTMTAwNjQ0IGNvbXBsZXRpb24tYXVkaXQuanNvbgD9tDCceAo7yfs36YrlKYPO/zFQMDEwMDY0NCBjb250ZW50LWNvbXBhcmlzb24uanNvbgBuD5RseE+yEptjMS3scNpjTZddaTEwMDY0NCBkZWNpc2lvbnMuanNvbgCPIZYolS367kcFPfdjhmwk3LOaTzEwMDY0NCBlbmRpbmctc25hcHNob3QuanNvbgAfAVuvHamWUpDDv526X6BreiWzATEwMDY0NCBpbmNvcnBvcmF0aW9uLWNoZWNrcy5qc29uAPDxOczWA3Q0EdBdYPlvDGGofXC3MTAwNjQ0IHByMTQ2LWZpbGVzLmpzb24Ar+OfHlQHsfYsuss5yoJznIFyUkQxMDA2NDQgcHIxNDgtZmlsZXMuanNvbgAMB3ZmoSXaJIuO2zM53xJTzfKmoTEwMDY0NCBwcjE2OC1maWxlcy5qc29uACQz0FvgUlMwZaRWu1m3F9gUR2zuMTAwNjQ0IHByMTY4LWhlYWQuanNvbgDDHg6NcrjxbkxI4wUx58yb5U7r5jEwMDY0NCBwcjE3NS1maWxlcy5qc29uANfCOoH3Yq5l3VszNZ88s091PRMpMTAwNjQ0IHByMTc1LWhlYWQuanNvbgBxw73GLGyehzxKj0NfzRQJf8sQCjEwMDY0NCBwcjE4MS1maWxlcy5qc29uADH6OicavbcRS9gDDG1GYwi08PSUMTAwNjQ0IHByMTgxLWhlYWQuanNvbgDzFEIi4QtVDXex/Qd2khCutlYQHDEwMDY0NCBwcjE4Mi1maWxlcy5qc29uAAStj1hL1qHQTMv6HdWrZJaD766RMTAwNjQ0IHByMTgzLWZpbGVzLmpzb24AwWmSliwlFqlwLPt1b3H9o0upROYxMDA2NDQgcHIxODUtZmlsZXMuanNvbgDdjaSQ/ujdQ9hW4qmfe2Nw/9TKrDEwMDY0NCBwcjIxMC1maWxlcy5qc29uAOtAko6AgZxTfltAQFPY2N0yD/oVMTAwNjQ0IHByMjc5LWZpbGVzLmpzb24ASom2zvdjZVivttnF6ot80T36kbwxMDA2NDQgc3RhcnRpbmctc25hcHNob3QuanNvbgAT+vNER3Yp7+KmrN/2H9/ukmMQpw==", + "type": "tree" + }, + "41a5d77265d7af867540c7d017fe3839522691d2": { + "base64": "MTAwNjQ0IHRyYW5zbGF0ZWQtcGFydGlhbC1jb21wbGV4LnRleAAbj7QZY3LFMi2o/Y2QcgmySHldew==", + "type": "tree" + }, + "4576bf9a409724dd5546d60ea07c293e958239d3": { + "base64": "MTAwNjQ0IGJvdGgtbmVnYXRpdmUtZGF0YS1wcm9maWxlLmpzb24A6xygzaFdU8jG3VD4b03BzXXQ7+oxMDA2NDQgbWFwcGVkLXBvc2l0aXZlLW5lZ2F0aXZlLWF4aXMtcHJvZmlsZXMuanNvbgCBYeEnfLcdqnEBpoDbOvX5nR8n/DEwMDY0NCBwaGFzZS1wcjM2Lmpzb24ANodX0bSGeniTHk/mcayWW8BH1Oo=", + "type": "tree" + }, + "4624310b54469acbfbb0644d627fa2d2fc5ffc6a": { + "base64": "MTAwNjQ0IHRlc3Rfcm91bmQzLnB5ADMRYILS0Ru8+gFExU3aXGuPtC4cMTAwNjQ0IHRlc3Rfcm91bmQ0LnB5AGi7A+kCJx2HxZoQLgqDIF2HzIcOMTAwNjQ0IHRlc3Rfcm91bmQ1LnB5APiORkdjGhtSX6rJFR+nbwU07f0VMTAwNjQ0IHRlc3Rfcm91bmQ2LnB5AFr4eZwsHfc9J3s8o42rwbnYtksFMTAwNjQ0IHRlc3Rfd2l0bmVzcy5weQCkQS1DFQzLdujO95R6jm988xZepQ==", + "type": "tree" + }, + "465eb9f2a653c7d0d4ca5d915fcc4f4c3236e3c2": { + "base64": "NDAwMDAgcmVzZWFyY2gAnSo5DWeAJsfNz2fq+wsXUk+6y5c=", + "type": "tree" + }, + "48f8dc0f05a723f097017bce9887ef801895182d": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAA8WGoiv90Y/rgpDY2VhxlIbXiNTTEwMDY0NCBfX2luaXRfXy5weQCFIRl7cYPYGbJPBX8sgNjGKyWT1DEwMDY0NCBmcmFtZXMucHkAJiHvgXt68k87vLkLMsM5tD1mPkUxMDA2NDQgZ2F1Z2VzLnB5AKhu9r+1UgzuJ+KDS0/FYk2CQDS5MTAwNjQ0IGdyYXBoLnB5AKRAWY30SunKpD4BiioPN5KB9SR0MTAwNjQ0IG1vZHVsZXMucHkA9ZCqft0SbIEAMiGP6VdSNcqAjaoxMDA2NDQgdmVyaWZ5LnB5AJsNa+Iz+6ot7HubQDTscH++OUSa", + "type": "tree" + }, + "49960b26a75e1f6b8497edb9f871e861cc993d4f": { + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAHbkJc2vSX8NO+5wslkoVD5fdbXqNDAwMDAgLmdpdGh1YgDLfE9UvkoalK+qhby2v+DUhQailTEwMDY0NCAuZ2l0aWdub3JlAAxe+/HUWqdKo4X1hrBTxw4XCoMkMTAwNjQ0IENJVEFUSU9OLmNmZgBLDmUzQf0oKRGoDOTYfWQSy9i97zEwMDY0NCBDT05UUklCVVRJTkcubWQAQd78kCIr4mbHEIy3tvhowkWuiOwxMDA2NDQgQ09OVFJJQlVUT1JTLm1kANSQsPPGrVpVcsH3rgVecCwEBoRPMTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTWFrZWZpbGUAZlYwi2vEyVaPnfED4bAh/KIpOrMxMDA2NDQgTk9USUNFALpe54TrKg+BGzatQl15ejuA6Y5NMTAwNjQ0IFBBVENISU5HLm1kAKAuIwJWuVkkFriMDzMt9vHExk1RMTAwNjQ0IFJFQURNRS5tZAAZFfDSWIICQdSVdtGYy2sUnZP0wDEwMDY0NCBTT1VSQ0VTLmpzb24A4mXwCXhOL1H/45gBPp6j0OThZwI0MDAwMCBhcnRpZmFjdHMAfXF6FhMg3zzeLRYitg2qINpxU380MDAwMCBjZXJ0aWZpY2F0ZXMAATx+AZ2Yv44hJRU7i83gfsuL31g0MDAwMCBkb2NzALvB05eAX/eyAq1DAiROV514S30JNDAwMDAgZm9ybWFsAHEYL44HbJQjNV/d6r9FGwyt6MWuNDAwMDAgbm90ZXMAboVQZyL19VUkmsrs2E0ujCx5kNs0MDAwMCBwYXRjaGVzAJS/+lmD/emP5dXj9YxIw+xhsqRPNDAwMDAgcmVmZXJlbmNlcwDk3uEdufw5RM5317Mt0cOtItEawDQwMDAwIHJlc2VhcmNoAJTKvoyH087Px893Ai2T9l1ijxXWNDAwMDAgc2NyaXB0cwAQkfCLForhEmO9mTWERL4r0ivAxjQwMDAwIHRlc3RzADstXX6oBrc8AtDflMHUqx0KRd2kNDAwMDAgdXBzdHJlYW0A5E05YhtY4rNR+RB7n6Fw1qjU/hw=", + "type": "tree" + }, + "4e3a6260a93f2d0e753769ea6afdfe1388c6b6ee": { + "base64": "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Xn7LcxOGt7yefh7bMTAwNjQ0IHJhdGlvbmFsX3NwYW5fZnJhbWVzLnB5AL7wKGYlmJAFuvO1gxvHexKS4Y8/MTAwNjQ0IHJhdGlvbmFsX3RlbnNvci5weQA4O61Kx1Rod3F/zkAvuzZQ+M/XljEwMDY0NCByZXNlYXJjaF9uZXR3b3Jrcy5weQDoNppBdpBOV2jzpMpkXG/8PvSazzEwMDY0NCByZXVzZV9uZXR3b3JrLnB5AFDoEKQPntyx3cZz599Wyb+ZWDisMTAwNjQ0IHJvdXRpbmdfc210LnB5ACHPN7Sixt9s0FtsPN5fbsK0DxE8MTAwNjQ0IHJ1bl9pc29sYXRlZF90ZXN0cy5weQC7Tsx807KvBRF1qrHOnQRA5crL9zEwMDY0NCBzZWFyY2hfaW5jaWRlbmNlX3BhcnRpdGlvbnMucHkAsuXIu29QKOWjXO0gPT9Blq/WvK0xMDA2NDQgc2VhcmNoX25ldHdvcmsucHkA8D1cGyyBr9bC8dO6nhfU57zTG5sxMDA2NDQgc2VhcmNoX25ldHdvcmtfdmFyaWFudHMucHkAUuWazLmAMSvkjp1idEc7p8MUU4IxMDA2NDQgc2hhcmVkX3BvaW50X2NpcmN1aXQucHkAg0egvaY/v7UbhsbG0Qp79UGBYwgxMDA2NDQgc2hhcmVkX3BvaW50X25ldHdvcmsucHkADsfnUEb+cUloxJF4zX+D6A6fnZQxMDA2NDQgc21hbGxfYmxvY2tfd2l0bmVzcy5weQB08jiX5tZKCCCadvtBVxHJBnzQEzQwMDAwIHN0b3BwZWRfcHJvZHVjdADBLCHh/hzsvE08/1rY3VFRM9IYMDEwMDY0NCBzdG9wcGVkX3Byb2R1Y3RfbmV0d29yay5weQBfNJomdkGeEAKw1BVk2M9R3S8fdTEwMDY0NCBzdG9wcGVkX3Byb2R1Y3RfcHJvZHVjZXIucHkArvyR2adztCxZqAf84yP7+89HHGI0MDAwMCBzdHJ1Y3R1cmVkX2J1bGsAdrMdDMML+bUr3ydnUnATNIqTUIAxMDA2NDQgc3RydWN0dXJlZF9idWxrX2Fzc2VtYmx5LnB5ALdvnLWkUvtjfzqK7AdI2m0tgZaKMTAwNjQ0IHN0cnVjdHVyZWRfYnVsa19uZXR3b3JrLnB5ADLLfTtzBnXlKRbeG2vhXniZ7yJ5MTAwNjQ0IHN0cnVjdHVyZWRfYnVsa19wcm9kdWNlci5weQBb2p3dbgR4a2sIrK8S1bD1mjKOZDEwMDY0NCB0ZXJuYXJ5X2Fzc2VtYmx5LnB5AA5SO9EM9onPrsQMKKEj/+qbXcpLNDAwMDAgdGhyZWVfc3RhZ2VfY292ZXIA6dwQcpN5tPtMzqMgyJjQ2j+WJPkxMDA2NDQgdGhyZWVfc3RhZ2VfY292ZXJfbmV0d29yay5weQCLoFouqxG8x2ecnPiP5db2V24ARjEwMDY0NCB0aHJlZV9zdGFnZV9jb3Zlcl9wcm9kdWNlci5weQCeeiGnWNJt7LeLBWGoxRWrDCKkKDEwMDY0NCB0dW5lX3JvdXRpbmcucHkA1Um7xv3tnTnVy8h1X3GrexGiEl4=", + "type": "tree" + }, + "4ff35c177893207a1169cddd795bcc307a9fc657": { + "base64": "MTAwNjQ0IEJsb2NrQ29tcG9zaXRpb24uc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBCbG9ja0NvbXBvc2l0aW9uLnN0ZG91dC50eHQAyrjOU7adcXryNiJ25ONB4TxWiSUxMDA2NDQgQ29uY3JldGUxNi5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IENvbmNyZXRlMTYuc3Rkb3V0LnR4dAAqWvISuxo1LjDWskM55yRi8SaJCDEwMDY0NCBEQUdSZWZpbmVtZW50LnN0ZGVyci50eHQA5p3im7LR1kNLiymud1rYwuSMU5ExMDA2NDQgREFHUmVmaW5lbWVudC5zdGRvdXQudHh0AJOALDG3OnsA+RjIX1gOBWKvfhcWMTAwNjQ0IEludGVnZXJHZW5lcmFsaXphdGlvbi5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IEludGVnZXJHZW5lcmFsaXphdGlvbi5zdGRvdXQudHh0ADqbg9KoyOV7YhYhLggO3E5EerdcMTAwNjQ0IEludGVnZXJMYXRlRGl2aXNpb24uc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBJbnRlZ2VyTGF0ZURpdmlzaW9uLnN0ZG91dC50eHQAEgMZRMCgUWIf7ku/Pm1ThYAgQg4xMDA2NDQgT3JkaW5hbFRyYW5zcG9ydC5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IE9yZGluYWxUcmFuc3BvcnQuc3Rkb3V0LnR4dADZZ5bY01ftZMAfQwf7iWHbbJAIcTEwMDY0NCBPdXRlcjQ4RGF0YS5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IE91dGVyNDhEYXRhLnN0ZG91dC50eHQA3MxGycrKDFnsU5p2EAGIxw3C15AxMDA2NDQgT3V0ZXI0OFNjaGVtZS5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IE91dGVyNDhTY2hlbWUuc3Rkb3V0LnR4dABR6ZuJGCAKXKst32yXzQqGwcQRRDEwMDY0NCBPdXRlckxpZnRpbmcuc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBPdXRlckxpZnRpbmcuc3Rkb3V0LnR4dAC/i3pHjR9FNg3Zyg2Np/2oX+G7xzEwMDY0NCBSb3Nvd3NraUV2ZW4uc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBSb3Nvd3NraUV2ZW4uc3Rkb3V0LnR4dACjptYXvuz09JjjokqY7Ap9ADHLyjEwMDY0NCBSb3Nvd3NraUxlYWY0LnN0ZGVyci50eHQA5p3im7LR1kNLiymud1rYwuSMU5ExMDA2NDQgUm9zb3dza2lMZWFmNC5zdGRvdXQudHh0AFlEHdCqrlJ3HCsjgBxsUG/4Joyk", + "type": "tree" + }, + "525f2215bacd850909c58d6ba61b0bf6853a44ac": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABFkhHQjeSRs8O+HxQhZZYuGAX6HjEwMDY0NCBhcml0aG1ldGljLXZlcmlmaWNhdGlvbi5qc29uALbzWgak8fSeiTJ5qvJ2cZKJ08jjMTAwNjQ0IGFyaXRobWV0aWMuanNvbgDWF8Fhn927Pw79Vi4dIIFWHkQDjTEwMDY0NCBnZW5lcmF0ZV9mcm9udGllcl9jYXNlLnB5ALWeZAmhKz/PCm/BBF24efHnJ/nUMTAwNjQ0IHBpbm5lZDYwLWNlcnRpZmljYXRlLmpzb24AQj4c3Kvxscsnls37OnA6nJnh2icxMDA2NDQgcmVmaW5lZDYwLWxlYW4tcmVjZWlwdC5qc29uAILAWU9wREiq11EtMGQeOsHvlMQUMTAwNjQ0IHZlcmlmeV9yZWZpbmVtZW50LnB5ALjpGWwuJPA3wRUiXsKo/row7w5PMTAwNjQ0IHdlaWdodGVkLWxlYW4taW5wdXQuanNvbgC3m0AGCHQFbVs+12Cwn92EgvVbZA==", + "type": "tree" + }, + "52dfa05e26ffd2a4cce343cd56839ae490f2f5b2": { + "base64": "MTAwNjQ0IGJpbmFyeV9pby5ocHAA8DFlUeMrHKkGYTB5Z0nnZGfjZTIxMDA2NDQgbmVnYXRpdmVfYmFzaXNfY2xhc3NpZnlfcGFpcnMuY3BwAMJJOsO0QMFOfeh1J8alYFzibuwsMTAwNjQ0IG5lZ2F0aXZlX2V4Y2VwdGlvbl9yYW5rX3VuaW9uLmNwcACiuIi/3m7A/SD3srEwCF6OEccFeTEwMDY0NCBwb3NpdGl2ZV9mcmFtZV9wcm9maWxlcy5jcHAAZsQv8/Q/grx/Wt16NM6e9z8NsLMxMDA2NDQgcG9zaXRpdmVfbmVnYXRpdmVfcHJvamVjdG9yX3Jldmlldy5weQAgGlbgfuUpIVcw8dlCyIorYT88LA==", + "type": "tree" + }, + "52f0d43b1b2e3bb2b60d9df3dbdc35d469609daf": { + "base64": "MTAwNjQ0IGNvbnN0cnVjdGlvbi1sZWRnZXIuanNvbgCS60wYhwNh7lL4t7NCQEu6tmR/Nw==", + "type": "tree" + }, + "53703423ee6930659462c7f6084dacc9b07f75ab": { + "base64": "MTAwNjQ0IGNvbXBhY3QtY29udHJvbC1ub3RlLnRleAANg39iQqPc/yxDS4Y5h/85+HV0bjEwMDY0NCByZXRhaW5lZC1jb21wbGV4LWNvbnN0cnVjdGlvbi50ZXgAlySsWJMOR+5/3kS+HGFvve/XZ8sxMDA2NDQgcmV0YWluZWQtY29tcGxleC1ub3RlLnRleAAF6tIeL0HbVor6KpRmTmgSVLqEIg==", + "type": "tree" + }, + "5416d993a68871dac91cdbf5ddf788375dea52ee": { + "base64": "NDAwMDAgZ2VvbWV0cmljLWNvbXBsZXgAgC5SFuKWmOV6rdd9MKDoJEsxhEM=", + "type": "tree" + }, + "547c16329e180fce510e32fe4d6851c3febbd9e4": { + "base64": "MTAwNjQ0IENvbW1vbi5sZWFuAGoaK0tsBzfdvzqd62ribT+9f4MVMTAwNjQ0IFBSNS5sZWFuABRGTnSPCgKKl/k+xdq0G3a18zHIMTAwNjQ0IFBSNUFuYWx5dGljLmxlYW4A/SQUQkonUDz1ExGDghbZ2g1PkZQxMDA2NDQgUFI2LmxlYW4AEL6OT+dNfTKeoctClLtxJvpePCYxMDA2NDQgUFI3LmxlYW4A69I1XDyJieoWCFkQTmkAW7Ta1Gs=", + "type": "tree" + }, + "553ade6eb93171276c1cc947e0a316be625d6af1": { + "base64": "NDAwMDAgcHI0OACcB9Spgps86FfbM5vsp4vaEeJE2TQwMDAwIHByNTMAHrmG6q9lhrV041JmImIg5BQ8LLI0MDAwMCBwcjU1AC996qzVZzvWRvc7ES6L55DMWMUENDAwMDAgcHI1OAAV1Sr2wKtCltffDk8Ff7etEITXXg==", + "type": "tree" + }, + "56b66d58297deca1d7dd130247d720e960f77a37": { + "base64": "dHJlZSBkZTVhYjQ4OWNmOWYxNGI2OWRhYjQzZWI5OGY2ZjZhYjJlMDI4ODAwCnBhcmVudCA3ODFkYjdkMTUxOTZjYzgwZDRjMjdhZDk2YzkyYWRkYmEyNWZiZDNiCmF1dGhvciBEb3VnbGFzIFIuIENvbGtpdHQgPGRvdWdsYXMuY29sa2l0dEBnbWFpbC5jb20+IDE3OTE0ODYyMzcgLTA0MDAKY29tbWl0dGVyIERvdWdsYXMgUi4gQ29sa2l0dCA8ZG91Z2xhcy5jb2xraXR0QGdtYWlsLmNvbT4gMTc5MTQ4NjIzNyAtMDQwMAoKUmV2aWV3IGFuZCBjcmVkaXQgS29zdGVycyBhbmQgQWJlIGhpc3RvcmljYWwgY2FuZGlkYXRlcwo=", + "type": "commit" + }, + "5781bac819b02934597e367313b5fed789198768": { + "base64": "MTAwNjQ0IGJpbmFyeV9pby5ocHAAnscsYpq6P2LOzKmW2R8J+FnZh7oxMDA2NDQgcGFpcmVkLnB5ALh5KTl3xHBf3EeQXNbFiQYWHaPnMTAwNjQ0IHNoYXJlZC5weQCi8BkHBNuDvY70jkbnI8SbklgE/g==", + "type": "tree" + }, + "57cb12b0174f38f44f557cae44aafa7273873445": { + "base64": "NDAwMDAgcmVzZWFyY2gArlS/MQnqpPX95musCuFTx1AsTRY=", + "type": "tree" + }, + "5940d8bd9f598a6af777b5121b9ab2a34e86a715": { + "base64": "MTAwNjQ0IF9faW5pdF9fLnB5ALqZwSUZ0Usnl1+0n8cT2fEJtlNcMTAwNjQ0IGJpbmFyeS5weQBpo5jpr+OzEY8wmWq6NuC3M/L19w==", + "type": "tree" + }, + "59549c038b2b596ac1576bf03ff52b9121832aa3": { + "base64": "MTAwNjQ0IGJpbGluZWFyX3Byb2plY3Rpb25fcmVjZWlwdC5qc29uAG6CexjA3qApdB+bTWOKkl2DZGZJMTAwNjQ0IGdhdXNzaWFuLW1hdHJpeC12ZXJpZmljYXRpb24uanNvbgCECbvfWe2FfUlLcNl+p6EeJ1Lw7DEwMDY0NCBoaWVyYXJjaGljYWwtZ2F1c3NpYW4tdmVyaWZpY2F0aW9uLmpzb24ApZVaYeQ/QQlcHZftz30iClrn3lgxMDA2NDQgaW5kZXBlbmRlbnRfbWF0Y2hpbmdfcmVjZWlwdC5qc29uANKSIJK7jC86yC76oK5/zwTtPZsVMTAwNjQ0IGluZGVwZW5kZW50X21hdHJpeF9yZWNlaXB0Lmpzb24A7R2t745h9P+EHGyL7gq7TY/MtcExMDA2NDQgbWF0cml4X3R3b19hZGljX2xpZnRfcmVjZWlwdC5qc29uAF0hN5H66KEfPcnEuRYypW8L1r6mMTAwNjQ0IHBoYXNlX2NoaWxkX2Nsb3N1cmVfcmVjZWlwdF92Mi5qc29uAB3O9u2Lu93m74UTE3fsUIrGdkD+MTAwNjQ0IHBoYXNlX29wZXJhdG9yX3JlY2VpcHQuanNvbgDOjdL3ffiPrkCpMGRaxPeMH82BijEwMDY0NCBzb3VyY2VfY2lfYXVkaXRfcmVjZWlwdC5qc29uABt7iBv/br+uqbWPUWN1gAya0sr8", + "type": "tree" + }, + "5a12adbb0045552cbc6ca198eae57d3379b4ed03": { + "base64": "MTAwNjQ0IC5naXRpZ25vcmUAKwCVJpJiolnmG8McykUj/XOGVUExMDA2NDQgQXVkaXRBbGwubGVhbgCotYMBgCPcBpKP9H+wpMiHhm9v2DEwMDY0NCBLYXBwYUNoZWNrLmxlYW4A+uEcct48oKLO3Z6xZVZxBUWQdp00MDAwMCBLYXBwYUNoZWNrADvkK9W5q4EhHIrIqaol1JnKqznUMTAwNjQ0IFBSQ2hlY2tzQS5sZWFuANTvoZRYkXUcotDKgkEVzqZI+rrgNDAwMDAgUFJDaGVja3NBAH81d0j1m2nMv9Mo/7VIr3acCAl2MTAwNjQ0IFBSQ2hlY2tzQi5sZWFuAJPOLLJgufdFZ90AJ5Q3KJGnT0UONDAwMDAgUFJDaGVja3NCAFR8FjKeGA/OUQ4y/k1oUcP+u9nkMTAwNjQ0IFBSQ2hlY2tzQy5sZWFuAEak4TXQTP2MJJAdNEdnYGGkrCxDNDAwMDAgUFJDaGVja3NDACdi2x+qVt/APbf1rdDsf+donAIsMTAwNjQ0IFJFQURNRS5tZAA52K9DEkH7eZ/RTF3C3ZMgxBTLFzEwMDY0NCBTT1VSQ0VTLm1kAPIgP7YtVGVVUhIQsnG5yjCEVnHxMTAwNjQ0IGxha2UtbWFuaWZlc3QuanNvbgA2QzvWaXzBbDn/A6z5dDE4bLDywjEwMDY0NCBsYWtlZmlsZS50b21sALar8EyTrPXsdFqgaqG1A1dbRUGGMTAwNjQ0IGxlYW4tdG9vbGNoYWluAJgHCbu64ocC7FjDaLhP32Y4CTxjMTAwNjQ0IHNvdXJjZXMucHkA7trtrTuCVBTn87xZem4SttSp6dQ=", + "type": "tree" + }, + "5ade309673e49628514c1088ce616983c264ba68": { + "base64": "MTAwNjQ0IHNoYXJlZC1yZXRhaW5lZC1jb21wbGV4Lm1kAKqD3FcESpBc/m2FToAFm9a4eA3N", + "type": "tree" + }, + "5b545e9dc364fd149c96f091832f73ab1290e243": { + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLWF1ZGl0Lmpzb24AiydRMEIw8avqwBIXGqD7iDY/SGoxMDA2NDQgYWZmaW5lLXZlY3Rvci1zY3JlZW5zLmpzb24AR+WYqz28X4edSywSPDRkSX+X6eMxMDA2NDQgYmF0Y2hlZC1uZXR3b3JrLmpzb24AS5BgNjlpyUthtneavOnYDM+v9A8xMDA2NDQgYml0LWNvbXByZXNzaW9uLWF1ZGl0Lmpzb24ALIsiGteTXUnSR5/UR2LPgpkGbRkxMDA2NDQgYmxvY2stY2FycnktYXVkaXQuanNvbgC62qdp/ZgL967C4Mk6BL7Ti8mtEDEwMDY0NCBibG9jay1jb3JlLmpzb24ADW4XeeQ3RNU847Y8JwrA8XzcWzAxMDA2NDQgYmxvY2stbGFiZWwtYXVkaXQuanNvbgAwXzC//2EEVWRyMqU+BwH8eonU9TEwMDY0NCBibG9jay1sYWJlbC10YXJnZXQuanNvbgAVuWCbZNc4mfBCMrdhGTZ9wazw9jEwMDY0NCBjYW5jZWxsYXRpb24tYXVkaXQuanNvbgAsrKFT5A+pX3N8U4J+M1n/I0dqnjEwMDY0NCBjb2RlZC1jYXJyeS1hdWRpdC5qc29uAP+OgWwrE6WW+0vOX/krHyTVA2EYMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1hdWRpdC5qc29uAEybvDD4on4Oltd2GvenovF9D9v4MTAwNjQ0IGNvbXBhY3QtY29udHJvbC1sYXllci5qc29uAKCH5HuL6Lf+HyHqLqYLH1PguHfYMTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24uanNvbgCXxL6VcbXsbNQUH65DYbw0cZ5abTEwMDY0NCBjb21wbGV4LW5ldHdvcmsuanNvbgBipgkYh6OJRTXB0FnhsMUn1VbrdjEwMDY0NCBjb250cm9sbGVkLWJpdC1yYW5rLW1vbWVudC5qc29uAAUuT+/1lkFtxyEH9AYVZ/sfh/MXMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWJpdC1heGVzLmpzb24Av7OiF+4b1d7NjPAVC47VVzwwO3IxMDA2NDQgY29waWVkLWNlbnRlcnMtY29tcGxleC1pbnB1dC5qc29uADaHV9G0hnp4kx5P5nGsllvAR9TqMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWNvcm5lci0yNS0yMy5qc29uAEIeNafAZav1qHsbdrWhoYRyIIjHMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWlucHV0Lmpzb24AgXuemzxr/tH0GclwTh0CoJuRwJ4xMDA2NDQgY29waWVkLWNlbnRlcnMtbmV0d29yay5qc29uACC7toBs4GEeSBUSiU0f1z2XwpcPMTAwNjQ0IGNvcmUtbGltaXRzLmpzb24AG6ul51EodDeu1UhhXUa0+CzJ/xwxMDA2NDQgY3ViZS1jb3JlLWZhbWlseS5qc29uAC543/zTgZaDQRcmAcfIWmUVOIY+MTAwNjQ0IGN5Y2xpYy10b3BvbG9neS1hdWRpdC5qc29uADyFws4b7MXnxFmTkh2EvW6pfEVFMTAwNjQ0IGRhZy1uZXR3b3JrLmpzb24AP5zjwYSvaZzMtDis3VtH5kWCAOAxMDA2NDQgZGlzam9pbnQtdGVuc29yLWNvbXByZXNzaW9uLmpzb24AMjpGrY/nfz1wdHuXzloND8/6qsUxMDA2NDQgZHlhZGljLWNlbnRyYWwtZmFjdG9yLmpzb24AqFy4o5UGX//JherUnLA2JTKQnJcxMDA2NDQgZWFybHktc2hhcmluZy1hdWRpdC5qc29uADRKRYKEUZBYOjXyIssCluT6H8N4MTAwNjQ0IGVuZHBvaW50LWdhdWdlLWJpdC1heGVzLmpzb24A83UQ5MPuvrD5C9eeLD3fKUA2GCUxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtY29tcGxleC1pbnB1dC5qc29uAKOdcAiK1FZSjVL3Hm5LgHIe49UvMTAwNjQ0IGVuZHBvaW50LWdhdWdlLWlucHV0Lmpzb24AlxBeaX4DJ75YKQwLEJA07ZF0lrkxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtbmV0d29yay5qc29uADmrov2Ir+2NW1/4zAaKG+UCaxerMTAwNjQ0IGZhbm8tY29tcGxldGlvbi1hdWRpdC5qc29uADLuIDRuMtmPb8KU2Hd0IvucZbxoMTAwNjQ0IGZhbm8tcGVybXV0YXRpb24tYXVkaXQuanNvbgDiXNXcxly0u0JqaPz+zKwsVGIpVjEwMDY0NCBmYXN0LWdhdXNzaWFuLmpzb24AIxkMVKBgz0vEw+w15yp0rz0spQAxMDA2NDQgZnVzZWQtYmxvY2stYXVkaXQuanNvbgDvrUaHP1uttSnWMYaJGPF3//nmKTEwMDY0NCBnYXRoZXItc2NoZWR1bGUtYXVkaXQuanNvbgA8nFs+r/pGXq84zycqCQMMu3J86jEwMDY0NCBnZW5lcmFsLW5ldHdvcmstZ3VhcmQuanNvbgCRlLOx1VkmR6HGFDQt9MBkzTeHYDEwMDY0NCBpbmNpZGVuY2UtbmV0d29yay5qc29uAKbKEo5/FfEj6TVbatv0NbGw4FhLMTAwNjQ0IGluY2lkZW5jZS1wYXJ0aXRpb24tc2NyZWVuLmpzb24AzHJmic12Tn1ltbmpTcJouEwYpZAxMDA2NDQgaW5wbGFjZS1zaWRlLmpzb24AjTJAxZwmwYOcLPepsGP9MMu+WoQxMDA2NDQgam9pbnQtZHVhbC1jb21waWxlci5qc29uAJGf/y5trDat7PirRQOg1v1lYF5hMTAwNjQ0IGpvaW50LWR1YWwta2FwcGEuanNvbgBaRKdvfFrfxJytfOERqZOxpSW8WzEwMDY0NCBqb2ludC1kdWFsLXByb2ZpbGVzLTIzLmpzb24ACbAbp6uiU7wt2M13zZifYgDRA/kxMDA2NDQgam9pbnQtZHVhbC1wcm9maWxlcy0yNS5qc29uAIukJPKgVHaYCtoGHjX0AX8NC0vtMTAwNjQ0IGpvaW50LWR1YWwtcmVwb3NpdG9yeS12YWxpZGF0aW9uLmpzb24AWBH0ayyfXU33vAbruBKka3D1NR8xMDA2NDQgam9pbnQtZHVhbC10cmFuc2l0aW9ucy0yMy5qc29uAAuOeL7Xk20O7+1yFHDdJwvZOVPAMTAwNjQ0IGpvaW50LWR1YWwtdHJhbnNpdGlvbnMtMjUuanNvbgDjylMahYeYIE570bRFw5qOicNpHjEwMDY0NCBqb2ludC1kdWFsLXZhbGlkYXRpb24uanNvbgCMCuAi57lJfs/PkE/fjZybmHUYoDEwMDY0NCBqb2ludC1kdWFsLXdvcmQtMjMuanNvbi5negAUPyaEsGnJxrwDS5H6Xes92rOr9zEwMDY0NCBqb2ludC1kdWFsLXdvcmQtMjUuanNvbi5negD8Z786V4naKTksqPgv8PvtkGry4zEwMDY0NCBqb2ludC1mcmFtZS1hdWRpdC5qc29uAOCRWKIpMrYHtCau5wUrxeDciPFXMTAwNjQ0IGpvaW50LXJldHVybi1hdWRpdC5qc29uAB17GOBEI9upvCWbawkAdLvydL7qMTAwNjQ0IGxheWVyLXByZXBhcmF0aW9uLmpzb24A3+FS0ZZQjYPdL6hBZCeRnc4YXQIxMDA2NDQgbWl4ZWQtcG9pbnQtYXVkaXQuanNvbgAfbA/sG0qWCUoW5HQSHDtLKYLpnDEwMDY0NCBuZXR3b3JrLXJlc2VhcmNoLmpzb24AwPLmj9PWoW2HO8jHpBhyYr1LDnMxMDA2NDQgbmV0d29yay1zZWFyY2guanNvbgB21ptMrNuEihY7HLVlPPreTFnNjjEwMDY0NCBuZXR3b3JrLXZhcmlhbnRzLmpzb24A/w8LiXWeTVCyEeojFAgMhDKhWzgxMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy5qc29uAAw59bQ+oJeq/kgHee8bxuXaCSHMMTAwNjQ0IHBhaXJlZC1jdWJlLWJpdC1pbnB1dC5qc29uACfWV/ABCICoHKq+I6HqDkp7n0V5MTAwNjQ0IHBhaXJlZC1jdWJlLWNvbXBsZXgtaW5wdXQuanNvbgAvb+Cue/cHuHAg50xg7FnFZBz6VTEwMDY0NCBwYWlyZWQtY3ViZS1pbnB1dC5qc29uADaNBAzQmOjT+05fHpX6DtgGz+y7MTAwNjQ0IHBhaXJlZC1jdWJlLW5ldHdvcmsuanNvbgCY2GwqMeJkywF3vpRNGsyJ0J7obDEwMDY0NCBwYWlyZWQtbmV0d29yay5qc29uACx3jS1kYL5+SdwVZCY5S6mGv0mhMTAwNjQ0IHBhcmFtZXRlcnMuanNvbgBosjV/R6wf9cTb1kJzf+PTyMsavDEwMDY0NCBwYXJpdHktc2lkZS5qc29uAK+78tO3whUmhT99t4YAccSmPEddMTAwNjQ0IHBhcnRpYWwtZ2F1Z2UtYml0LWlucHV0Lmpzb24A8BrDJBcujQv+1k4Hzk68w3DA1mkxMDA2NDQgcGFydGlhbC1nYXVnZS1jb21wbGV4LWlucHV0Lmpzb24AtASSOSi/yuCpyIQ1DAjPB3wSr8AxMDA2NDQgcGFydGlhbC1nYXVnZS1pbnB1dC5qc29uABWGAMfp01ZuA824JjYXPoAVlAe0MTAwNjQ0IHBhcnRpYWwtZ2F1Z2UtbmV0d29yay5qc29uAPrp/vZ45Ic+D31ywtlCzn6Cuf/eMTAwNjQ0IHBhcnRpYWwtc3dhcC1pbnB1dC5qc29uAPElcCd001To/QMBPcFKN1BiPKoLMTAwNjQ0IHBhcnRpYWwtc3dhcC1uZXR3b3JrLmpzb24AUgdfJGP2CvXhZXE0fyQnT85zoeoxMDA2NDQgcG9zaXRpdmUtc2lkZS1jb3JlLmpzb24AH1AnhJVO6imVp3UTCqdgqEc3CuIxMDA2NDQgcHJpbWUtZmllbGQyOC5qc29uAAxQWVTiU2IibRFsLC5SmdAgBfhfMTAwNjQ0IHByaW1lLXN1YnNldC1saW1pdHMuanNvbgC/HwhTXkLTgjRWyEsxImbx6Rk0gjEwMDY0NCBxdWFkcmF0aWMtYWZmaW5lLXZlY3RvcnMuanNvbgAYwxIwTK0AduWFgRhuxNApFsE0NDEwMDY0NCByYW5rLXByb2R1Y3QtY29yZS5qc29uAGPow/owhx9tx1X2jRZeQPE+eF6IMTAwNjQ0IHJvdXRpbmctdHVuZWQuanNvbgD4rK3MDOoki8S+AWzVb6PaECO3qjEwMDY0NCBzY3JhdGNoLXBvb2xpbmctYXVkaXQuanNvbgBX4yNyTGOYN/eJAoDPPf4jQpwQAzEwMDY0NCBzaGFyZWQtY29yZS5qc29uAGWm/VwZP9oyV6K3ql9/v3PpOC0yMTAwNjQ0IHNoYXJlZC1wb2ludC1uZXR3b3JrLmpzb24A9Kyz34lYCMehQsg81MfU+qvQaOgxMDA2NDQgc2hvcnQtZ3VhcmQtYXVkaXQuanNvbgCe8VnQ52QPfM4MC1sSxtABAllT1TEwMDY0NCBzaWduZWQtc3BhcnNlLWNvcmUuanNvbgBt9XSEI1IECTmrY1wgV+J/Ti0Z1zEwMDY0NCBzaW5nbGUtaW50ZXJzZWN0aW9uLmpzb24Au9Q5l/e9VpvH25Ci1NqYT36SYgQxMDA2NDQgc2tpcC1mcmFtZS1jb21waWxlci5qc29uACGoIS1d0+qFptaNWq7zGR5lhY4IMTAwNjQ0IHNraXAtZnJhbWUta2FwcGEuanNvbgB6/NZzzXR81Fk8/KPydAaAxVnVYzEwMDY0NCBza2lwLWZyYW1lLW1lY2hhbmlzbS1yZXZpZXcuanNvbgBJsrW5W3b7XoleU1cyDhyW449syjEwMDY0NCBza2lwLWZyYW1lLXByb2ZpbGVzLTIzLmpzb24A+cOSpHW3Je8y5wsKnoSvEPnpXyExMDA2NDQgc2tpcC1mcmFtZS1wcm9maWxlcy0yNS5qc29uAHdtcOSHh1b3srGOfwxOUCZWTmGnMTAwNjQ0IHNraXAtZnJhbWUtcmVwb3NpdG9yeS12YWxpZGF0aW9uLmpzb24Atr2RYR0ex7pvqEirMqjhMPdXDqExMDA2NDQgc2tpcC1mcmFtZS1yZXByb2R1Y3Rpb24uanNvbgDWMTVkY081UByeCufVW39SGy0vxDEwMDY0NCBza2lwLWZyYW1lLXRyYW5zaXRpb25zLTIzLmpzb24AFAoS2/W1FOxHFW7YSqxCeUCi+DUxMDA2NDQgc2tpcC1mcmFtZS10cmFuc2l0aW9ucy0yNS5qc29uAB8jP5Y9cfAJwhjmlHH4RG0Wjrd/MTAwNjQ0IHNraXAtZnJhbWUtdmFsaWRhdGlvbi5qc29uAHAPjzRZ5uz3bQWkUry/X6FIVjTVMTAwNjQ0IHNraXAtZnJhbWUtd29yZC0yMy5qc29uLmd6AG1ZpyXeQTRQv2weiLgY3xFWQAY3MTAwNjQ0IHNraXAtZnJhbWUtd29yZC0yNS5qc29uLmd6AOgCIlOACLCEBTbODNe9p2cCF9uOMTAwNjQ0IHNtYWxsLWJsb2NrLXdpdG5lc3MuanNvbgBjUQQLC0Bw5fmsts8u9VhJIyEI+DEwMDY0NCBzcGFyc2UtZnVzaW9uLWF1ZGl0Lmpzb24AWE6o1Wu8PGwShn+VUbQldk++ZT0xMDA2NDQgc3BsaXQtY2VudGVycy1hdWRpdC5qc29uAJuxEw1qVoQ4my5DsLpPT3pUfA9CMTAwNjQ0IHN0YWdlLXBhaXItYXVkaXQuanNvbgAuTUawozPysqY5B/oNkksQcLTO+jEwMDY0NCBzdGFnZS1yZXVzZS5qc29uAIQ5dY2hRbEzy3tsrczzU1ySpEyoMTAwNjQ0IHN0b3BwZWQtcHJvZHVjdC1iaXQtYXhpcy5qc29uAFgkiR3p980P87p6H8Y9ng4kXrQsMTAwNjQ0IHN0b3BwZWQtcHJvZHVjdC1jb21wbGV4LWlucHV0Lmpzb24Aex2ZxRhpqxdvTLnqSXy6lU694LQxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWlucHV0Lmpzb24A8KkQpJUKrcQ1ovT4OXvFn0Dkfp0xMDA2NDQgc3RvcHBlZC1wcm9kdWN0LW5ldHdvcmsuanNvbgCZiop+omPwxlx2VX9aCg4nNNa7qzEwMDY0NCBzdHJvbmdlci1yYW5rLXNjcmVlbnMuanNvbgC4wRFOzjdvH89tWFKUIHi4HxywJjEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstYml0LWF4ZXMuanNvbgAPLSptMD+3UzcEKun2MEgHinHvmDEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstY29tcGxleC1pbnB1dC5qc29uAGHktHSXLdgZ+fJ4BHI177PSlly3MTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1pbnB1dC5qc29uAO/N7xVwLLpwsrIE19UUHi0UvLG9MTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1uZXR3b3JrLmpzb24AJ+yGruq25qi/yxgoFkhwgShFXnAxMDA2NDQgc3RydWN0dXJlZC1idWxrLXJhbmtvbmUtZXhhY3RuZXNzLmpzb24AaQFeUezgJ5/z96PnMeh/dvZz8IMxMDA2NDQgc3RydWN0dXJlZC1idWxrLXJhbmtvbmUtcHJvZmlsZXMuanNvbgA51Wa/gXVRIvm3bCMlBa/ZyZEYnTEwMDY0NCBzdWJzZXQtY29yZS1mYW1pbHkuanNvbgCPCwl7/O5JiQkEPb4GgKOs2vYqVDEwMDY0NCB0ZXJuYXJ5LXNpZGUuanNvbgAsXJ9uqLoyAMOSg7x+AFnYAiaMcTEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1iaXQtaW5wdXQuanNvbgAZVq4OBr42/vWFOWdf+u7i6fJoVDEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1jb21wbGV4LWlucHV0Lmpzb24A0biby3GZk2XyS2tSkOFESBs2hAQxMDA2NDQgdGhyZWUtc3RhZ2UtY292ZXItaW5wdXQuanNvbgBCd8juLASer01pHPN1MrPFYH1I+DEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1uZXR3b3JrLmpzb24AX82vdCA6LgmdDN+5fouRLFIVG4c=", + "type": "tree" + }, + "5b65b9e55b947e3d58df1eb57c0fdf50fca394ef": { + "base64": "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", + "type": "tree" + }, + "5bd86bbe1fa761ab8fd9060963408af433ac716a": { + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzALrZHZF2D+10JTajxdRhjF2ua3SnNDAwMDAgLmdpdGh1YgBeZ/78rL/11aM7q9NgB3cH7rLh1jEwMDY0NCAuZ2l0aWdub3JlAAxe+/HUWqdKo4X1hrBTxw4XCoMkMTAwNjQ0IEFHRU5UUy5tZACGB2LgTpY+GxY7j6UmeFTABAqeZzEwMDY0NCBDSVRBVElPTi5jZmYAV0shCLxAtXmfWoxU+jUZ2K6lGJIxMDA2NDQgQ09OVFJJQlVUSU5HLm1kAOUUNVQ2h/G9iKsiJICC3Gic6LhTMTAwNjQ0IENPTlRSSUJVVE9SUy5tZADgHqIdF3wE3RkcFGB1sqRb03pVizEwMDY0NCBMSUNFTlNFACYe656fiytLDRGTZt2pnG/X01xkMTAwNjQ0IE1ha2VmaWxlAK/2hAkCHJ1AGm+AE7nf19vMMPKoMTAwNjQ0IE5PVElDRQBZ2ODPMQLhW9EdtDCDg2VTHi1/GDEwMDY0NCBQQVRDSElORy5tZACgLiMCVrlZJBa4jA8zLfbxxMZNUTEwMDY0NCBSRUFETUUubWQAL310YX8ld4UnzC305ZUe6ujZ5S8xMDA2NDQgU09VUkNFUy5qc29uANOR/BBmaeIoXYZgAIp9XYrM+rb/NDAwMDAgYXJ0aWZhY3RzAH1xehYTIN883i0WIrYNqiDacVN/MTAwNjQ0IGF1dG9yZXNlYXJjaC5tZACBBhHBGnWd7+UN0AYLvZa1F3uwZzQwMDAwIGNlcnRpZmljYXRlcwAJhUZzeKWeuIesAj4PICIEGG7j+DQwMDAwIGRvY3MAvx1kG4xgK1gxM6o9TnqzkoG4s+Q0MDAwMCBmb3JtYWwAcRgvjgdslCM1X93qv0UbDK3oxa40MDAwMCBub3RlcwAOIthxq95ecEfCDzBQa2mi5YXeiDQwMDAwIHBhdGNoZXMAlL/6WYP96Y/l1eP1jEjD7GGypE80MDAwMCByZWZlcmVuY2VzAOTe4R25/DlEznfXsy3Rw60i0RrANDAwMDAgcmVzZWFyY2gA3iW+AeAA1g9MztuOuF488i/nt/A0MDAwMCBzY3JpcHRzAPgbJvUr8zZMVP4uHVccqLDFZWK5NDAwMDAgdGVzdHMA8bMfq/clWfORUXQ/mKOw1Ybwxeo0MDAwMCB1cHN0cmVhbQDkTTliG1jis1H5EHufoXDWqNT+HA==", + "type": "tree" + }, + "5d23f6cb669f232ad13b76cad355d3398a772957": { + "base64": "NDAwMDAgcHIzNACmajfAI5nPpp2gwYkUq3YEim2QbTQwMDAwIHByMzUAiBngnUvax0BfRiA1FdWgzprfvhM0MDAwMCBwcjQxAHzO4OmGto6kP+umCeAkwVNc+nbWNDAwMDAgcHI0NABehp+kptTrC5Gbmaq6z5G4/FQuWg==", + "type": "tree" + }, + "5d7098743ed974e181564e14d01b120cbdbb11f5": { + "base64": "NDAwMDAgY2xpbWJlZC00OAAhDnoIV8m6QYNRG3L4s8y85eDy9jQwMDAwIGNvcGllZC1maXhlZC1yZXZlcnNlZABxmk57pJn99OKzO6sPBEiHHqRchDQwMDAwIGNvcGllZC1maXhlZADoL5O3sUT1FdUrAKjU2s2iaSm16zQwMDAwIGNvcGllZC1yZXZlcnNlZACTgQ6qxkQWtJfWi8uPV8gtpJ9CJTQwMDAwIGVubGFyZ2VkLXBvc2l0aXZlLWZyYW1lLW5ldHdvcmtzAMMLipaoF1Lq45bXfGJPxE0wzGH5NDAwMDAgZ2F1c3NpYW4tcGFyaXR5LXN5bnRoZXNpcwDs+8z54KmiDGGf8PPFa/aHoGkkmzQwMDAwIGdhdXNzaWFuLXBhcml0eQCfyoPokyVP2gA2l4nCGYbch2tN7DQwMDAwIGpvaW50LWR1YWwAK86zo2rJTlZZOpyJ+7Vx3MHMlyI0MDAwMCBtYXRyaXgtZXhwb25lbnQtc3ludGhlc2lzAKfDCxRiuG7mr383KzIkuRbMLPr+NDAwMDAgcGFpci1hc3NlbWJseQCDeS26n6jZmE/dzWTFoUu18G586jQwMDAwIHBhcmFsbGVsLWFubm91bmNlbWVudHMAIUlhL8XbfvY8R2i85NbcAiwokxo0MDAwMCBwb3NpdGl2ZS1za2lwAN1iqyjBwsBJN+g/k7LKqIsa9u2/NDAwMDAgc2tpcC1jbG9uZXMAsrAMU+jJbCIOO0zRMSYFC0uYoy40MDAwMCBza2lwLXN0cmlwcwAdXgzAt89dj25cLgWi9j/mIadrdTQwMDAwIHNraXAtc3VmZml4AG7crUvPhKk5bHvRGmLEkCkoJ0RvNDAwMDAgc3BsaXQtc2tpcAAomaMJJwlR02SAJft+QXOnhmvJ4TQwMDAwIHN3YXBuaWwtcGFyYWxsZWwAgC9GwQsviuqtUm3zrV14mjzy39Y=", + "type": "tree" + }, + "5e869fa4a6d4eb0b919b99aabacf91b8fc542e5a": { + "base64": "MTAwNjQ0IFNPVVJDRS5qc29uAMnDtREJ4NyKgwfNPmKdLM/jJZauMTAwNjQ0IG9wdGltYWxfZ3JhcGgucHkA1iiAuRmiBxgImRTTjQhKhTVkveMxMDA2NDQgb3B0aW1pemVfbWF0Y2hpbmcucHkAT501vagSqOK9CxbBrOo0KCZPWNYxMDA2NDQgcHJvZmlsZXMuY3BwACQ/DbxEF8g5WuZ/rAhC1tW4gwC8", + "type": "tree" + }, + "5f71b6044b61e30841c7fb22283b5fac72429750": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABTa5tAYE0TkVgrXobMxqrGTcI21zEwMDY0NCBmYWN0b3IucHkAmQi2leAh+QaRI+K/FQlcrxzK4zcxMDA2NDQgZnJhbWVzLnB5ADHIEwxZRldP1plqVtrCRu5oi/+xMTAwNjQ0IG1vbWVudC5weQAdDDefuEkPb1FxeIjaWQTJwRaORDEwMDY0NCB0ZXN0X2ZhY3Rvci5weQCqnwIArV/B9R7NueJX05f8s8wlwA==", + "type": "tree" + }, + "62311cf023e739e86c58f7c4149089e8babafd4b": { + "base64": "MTAwNjQ0IExJQ0VOU0UtUFIzNy50eHQAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgYWx0ZXJuYXRpdmVfcHJvZHVjZXJfY2xvbmVzLnB5AOJSuaqL+6XsE36SM7QcYjSe1QaJMTAwNjQ0IGNoZWNrX2NvbXBpbGVkX3dpdG5lc3MucHkAyL5zg3k1MjPJFcHAzN4GjAQdaGMxMDA2NDQgbW9tZW50X21hdGNoX3Jhbmtfbm9kZS5jcHAA3nMGWKgsDZHq0NZnq0a0NPCW5w0xMDA2NDQgcG9zaXRpdmVfY2xvbmVfc2VhcmNoLnB5AJqy8yAc138sG21uqSN7N33/sXpbMTAwNjQ0IHBvc2l0aXZlX2ZyYW1lX3Byb2ZpbGVzLmNwcABmxC/z9D+CvH9a3Xo0zp73Pw2wszEwMDY0NCBwcm9kdWNlcl9zZWFyY2gucHkA8o8bZtgvtqRUfhFqoL3YuEZ9dG0=", + "type": "tree" + }, + "6326fa250316661f38c22ce158d0d0fe5104be61": { + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLWF1ZGl0Lmpzb24AiydRMEIw8avqwBIXGqD7iDY/SGoxMDA2NDQgYWZmaW5lLXZlY3Rvci1zY3JlZW5zLmpzb24AR+WYqz28X4edSywSPDRkSX+X6eMxMDA2NDQgYmF0Y2hlZC1uZXR3b3JrLmpzb24AS5BgNjlpyUthtneavOnYDM+v9A8xMDA2NDQgYml0LWNvbXByZXNzaW9uLWF1ZGl0Lmpzb24ALIsiGteTXUnSR5/UR2LPgpkGbRkxMDA2NDQgYmxvY2stY2FycnktYXVkaXQuanNvbgC62qdp/ZgL967C4Mk6BL7Ti8mtEDEwMDY0NCBibG9jay1jb3JlLmpzb24ADW4XeeQ3RNU847Y8JwrA8XzcWzAxMDA2NDQgYmxvY2stbGFiZWwtYXVkaXQuanNvbgAwXzC//2EEVWRyMqU+BwH8eonU9TEwMDY0NCBibG9jay1sYWJlbC10YXJnZXQuanNvbgAVuWCbZNc4mfBCMrdhGTZ9wazw9jEwMDY0NCBjYW5jZWxsYXRpb24tYXVkaXQuanNvbgAsrKFT5A+pX3N8U4J+M1n/I0dqnjEwMDY0NCBjb2RlZC1jYXJyeS1hdWRpdC5qc29uAP+OgWwrE6WW+0vOX/krHyTVA2EYMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1hdWRpdC5qc29uAEybvDD4on4Oltd2GvenovF9D9v4MTAwNjQ0IGNvbXBhY3QtY29udHJvbC1sYXllci5qc29uAKCH5HuL6Lf+HyHqLqYLH1PguHfYMTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24uanNvbgCXxL6VcbXsbNQUH65DYbw0cZ5abTEwMDY0NCBjb21wbGV4LW5ldHdvcmsuanNvbgBipgkYh6OJRTXB0FnhsMUn1VbrdjEwMDY0NCBjb250cm9sbGVkLWJpdC1yYW5rLW1vbWVudC5qc29uAAUuT+/1lkFtxyEH9AYVZ/sfh/MXMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWJpdC1heGVzLmpzb24Av7OiF+4b1d7NjPAVC47VVzwwO3IxMDA2NDQgY29waWVkLWNlbnRlcnMtY29tcGxleC1pbnB1dC5qc29uADaHV9G0hnp4kx5P5nGsllvAR9TqMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWNvcm5lci0yNS0yMy5qc29uAEIeNafAZav1qHsbdrWhoYRyIIjHMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWlucHV0Lmpzb24AgXuemzxr/tH0GclwTh0CoJuRwJ4xMDA2NDQgY29waWVkLWNlbnRlcnMtbmV0d29yay5qc29uACC7toBs4GEeSBUSiU0f1z2XwpcPMTAwNjQ0IGNvcmUtbGltaXRzLmpzb24AG6ul51EodDeu1UhhXUa0+CzJ/xwxMDA2NDQgY3ViZS1jb3JlLWZhbWlseS5qc29uAC543/zTgZaDQRcmAcfIWmUVOIY+MTAwNjQ0IGN5Y2xpYy10b3BvbG9neS1hdWRpdC5qc29uADyFws4b7MXnxFmTkh2EvW6pfEVFMTAwNjQ0IGRhZy1uZXR3b3JrLmpzb24AP5zjwYSvaZzMtDis3VtH5kWCAOAxMDA2NDQgZGlzam9pbnQtdGVuc29yLWNvbXByZXNzaW9uLmpzb24AMjpGrY/nfz1wdHuXzloND8/6qsUxMDA2NDQgZHlhZGljLWNlbnRyYWwtZmFjdG9yLmpzb24AqFy4o5UGX//JherUnLA2JTKQnJcxMDA2NDQgZWFybHktc2hhcmluZy1hdWRpdC5qc29uADRKRYKEUZBYOjXyIssCluT6H8N4MTAwNjQ0IGVuZHBvaW50LWdhdWdlLWJpdC1heGVzLmpzb24A83UQ5MPuvrD5C9eeLD3fKUA2GCUxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtY29tcGxleC1pbnB1dC5qc29uAKOdcAiK1FZSjVL3Hm5LgHIe49UvMTAwNjQ0IGVuZHBvaW50LWdhdWdlLWlucHV0Lmpzb24AlxBeaX4DJ75YKQwLEJA07ZF0lrkxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtbmV0d29yay5qc29uADmrov2Ir+2NW1/4zAaKG+UCaxerMTAwNjQ0IGZhbm8tY29tcGxldGlvbi1hdWRpdC5qc29uADLuIDRuMtmPb8KU2Hd0IvucZbxoMTAwNjQ0IGZhbm8tcGVybXV0YXRpb24tYXVkaXQuanNvbgDiXNXcxly0u0JqaPz+zKwsVGIpVjEwMDY0NCBmYXN0LWdhdXNzaWFuLmpzb24AIxkMVKBgz0vEw+w15yp0rz0spQAxMDA2NDQgZnVzZWQtYmxvY2stYXVkaXQuanNvbgDvrUaHP1uttSnWMYaJGPF3//nmKTEwMDY0NCBnYXRoZXItc2NoZWR1bGUtYXVkaXQuanNvbgA8nFs+r/pGXq84zycqCQMMu3J86jEwMDY0NCBnZW5lcmFsLW5ldHdvcmstZ3VhcmQuanNvbgCRlLOx1VkmR6HGFDQt9MBkzTeHYDEwMDY0NCBpbmNpZGVuY2UtbmV0d29yay5qc29uAKbKEo5/FfEj6TVbatv0NbGw4FhLMTAwNjQ0IGluY2lkZW5jZS1wYXJ0aXRpb24tc2NyZWVuLmpzb24AzHJmic12Tn1ltbmpTcJouEwYpZAxMDA2NDQgaW5wbGFjZS1zaWRlLmpzb24AjTJAxZwmwYOcLPepsGP9MMu+WoQxMDA2NDQgam9pbnQtZHVhbC1jb21waWxlci5qc29uAJGf/y5trDat7PirRQOg1v1lYF5hMTAwNjQ0IGpvaW50LWR1YWwta2FwcGEuanNvbgDZL2U/5GVV4S21exA8Pz3oAqlr7DEwMDY0NCBqb2ludC1kdWFsLXByb2ZpbGVzLTIzLmpzb24ACbAbp6uiU7wt2M13zZifYgDRA/kxMDA2NDQgam9pbnQtZHVhbC1wcm9maWxlcy0yNS5qc29uAIukJPKgVHaYCtoGHjX0AX8NC0vtMTAwNjQ0IGpvaW50LWR1YWwtcmVwb3NpdG9yeS12YWxpZGF0aW9uLmpzb24AWBH0ayyfXU33vAbruBKka3D1NR8xMDA2NDQgam9pbnQtZHVhbC10cmFuc2l0aW9ucy0yMy5qc29uAAuOeL7Xk20O7+1yFHDdJwvZOVPAMTAwNjQ0IGpvaW50LWR1YWwtdHJhbnNpdGlvbnMtMjUuanNvbgDjylMahYeYIE570bRFw5qOicNpHjEwMDY0NCBqb2ludC1kdWFsLXZhbGlkYXRpb24uanNvbgCZrbTPdLygpg2tbbzPPwjfSCn05TEwMDY0NCBqb2ludC1kdWFsLXdvcmQtMjMuanNvbi5negAUPyaEsGnJxrwDS5H6Xes92rOr9zEwMDY0NCBqb2ludC1kdWFsLXdvcmQtMjUuanNvbi5negD8Z786V4naKTksqPgv8PvtkGry4zEwMDY0NCBqb2ludC1mcmFtZS1hdWRpdC5qc29uAOCRWKIpMrYHtCau5wUrxeDciPFXMTAwNjQ0IGpvaW50LXJldHVybi1hdWRpdC5qc29uAB17GOBEI9upvCWbawkAdLvydL7qMTAwNjQ0IGxheWVyLXByZXBhcmF0aW9uLmpzb24A3+FS0ZZQjYPdL6hBZCeRnc4YXQIxMDA2NDQgbWl4ZWQtcG9pbnQtYXVkaXQuanNvbgAfbA/sG0qWCUoW5HQSHDtLKYLpnDEwMDY0NCBuZXR3b3JrLXJlc2VhcmNoLmpzb24AwPLmj9PWoW2HO8jHpBhyYr1LDnMxMDA2NDQgbmV0d29yay1zZWFyY2guanNvbgB21ptMrNuEihY7HLVlPPreTFnNjjEwMDY0NCBuZXR3b3JrLXZhcmlhbnRzLmpzb24A/w8LiXWeTVCyEeojFAgMhDKhWzgxMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy5qc29uAAw59bQ+oJeq/kgHee8bxuXaCSHMMTAwNjQ0IHBhaXJlZC1uZXR3b3JrLmpzb24ALHeNLWRgvn5J3BVkJjlLqYa/SaExMDA2NDQgcGFyYW1ldGVycy5qc29uAGiyNX9HrB/1xNvWQnN/49PIyxq8MTAwNjQ0IHBhcml0eS1zaWRlLmpzb24Ar7vy07fCFSaFP323hgBxxKY8R10xMDA2NDQgcGFydGlhbC1zd2FwLWlucHV0Lmpzb24A8SVwJ3TTVOj9AwE9wUo3UGI8qgsxMDA2NDQgcGFydGlhbC1zd2FwLW5ldHdvcmsuanNvbgBSB18kY/YK9eFlcTR/JCdPznOh6jEwMDY0NCBwb3NpdGl2ZS1zaWRlLWNvcmUuanNvbgAfUCeElU7qKZWndRMKp2CoRzcK4jEwMDY0NCBwcmltZS1maWVsZDI4Lmpzb24ADFBZVOJTYiJtEWwsLlKZ0CAF+F8xMDA2NDQgcHJpbWUtc3Vic2V0LWxpbWl0cy5qc29uAL8fCFNeQtOCNFbISzEiZvHpGTSCMTAwNjQ0IHF1YWRyYXRpYy1hZmZpbmUtdmVjdG9ycy5qc29uABjDEjBMrQB25YWBGG7E0CkWwTQ0MTAwNjQ0IHJhbmstcHJvZHVjdC1jb3JlLmpzb24AY+jD+jCHH23HVfaNFl5A8T54XogxMDA2NDQgcm91dGluZy10dW5lZC5qc29uAPisrcwM6iSLxL4BbNVvo9oQI7eqMTAwNjQ0IHNjcmF0Y2gtcG9vbGluZy1hdWRpdC5qc29uAFfjI3JMY5g394kCgM89/iNCnBADMTAwNjQ0IHNoYXJlZC1jb3JlLmpzb24AZab9XBk/2jJXoreqX3+/c+k4LTIxMDA2NDQgc2hhcmVkLXBvaW50LW5ldHdvcmsuanNvbgD0rLPfiVgIx6FCyDzUx9T6q9Bo6DEwMDY0NCBzaG9ydC1ndWFyZC1hdWRpdC5qc29uAJ7xWdDnZA98zgwLWxLG0AECWVPVMTAwNjQ0IHNpZ25lZC1zcGFyc2UtY29yZS5qc29uAG31dIQjUgQJOatjXCBX4n9OLRnXMTAwNjQ0IHNpbmdsZS1pbnRlcnNlY3Rpb24uanNvbgC71DmX971Wm8fbkKLU2phPfpJiBDEwMDY0NCBza2lwLWZyYW1lLWNvbXBpbGVyLmpzb24AIaghLV3T6oWm1o1arvMZHmWFjggxMDA2NDQgc2tpcC1mcmFtZS1rYXBwYS5qc29uAHr81nPNdHzUWTz8o/J0BoDFWdVjMTAwNjQ0IHNraXAtZnJhbWUtbWVjaGFuaXNtLXJldmlldy5qc29uAEmytblbdvteiV5TVzIOHJbjj2zKMTAwNjQ0IHNraXAtZnJhbWUtcHJvZmlsZXMtMjMuanNvbgD5w5Kkdbcl7zLnCwqehK8Q+elfITEwMDY0NCBza2lwLWZyYW1lLXByb2ZpbGVzLTI1Lmpzb24Ad21w5IeHVveysY5/DE5QJlZOYacxMDA2NDQgc2tpcC1mcmFtZS1yZXBvc2l0b3J5LXZhbGlkYXRpb24uanNvbgC2vZFhHR7Hum+oSKsyqOEw91cOoTEwMDY0NCBza2lwLWZyYW1lLXJlcHJvZHVjdGlvbi5qc29uANYxNWRjTzVQHJ4K59Vbf1IbLS/EMTAwNjQ0IHNraXAtZnJhbWUtdHJhbnNpdGlvbnMtMjMuanNvbgAUChLb9bUU7EcVbthKrEJ5QKL4NTEwMDY0NCBza2lwLWZyYW1lLXRyYW5zaXRpb25zLTI1Lmpzb24AHyM/lj1x8AnCGOaUcfhEbRaOt38xMDA2NDQgc2tpcC1mcmFtZS12YWxpZGF0aW9uLmpzb24AcA+PNFnm7PdtBaRSvL9foUhWNNUxMDA2NDQgc2tpcC1mcmFtZS13b3JkLTIzLmpzb24uZ3oAbVmnJd5BNFC/bB6IuBjfEVZABjcxMDA2NDQgc2tpcC1mcmFtZS13b3JkLTI1Lmpzb24uZ3oA6AIiU4AIsIQFNs4M172nZwIX244xMDA2NDQgc21hbGwtYmxvY2std2l0bmVzcy5qc29uAGNRBAsLQHDl+ay2zy71WEkjIQj4MTAwNjQ0IHNwYXJzZS1mdXNpb24tYXVkaXQuanNvbgBYTqjVa7w8bBKGf5VRtCV2T75lPTEwMDY0NCBzcGxpdC1jZW50ZXJzLWF1ZGl0Lmpzb24Am7ETDWpWhDibLkOwuk9PelR8D0IxMDA2NDQgc3RhZ2UtcGFpci1hdWRpdC5qc29uAC5NRrCjM/KypjkH+g2SSxBwtM76MTAwNjQ0IHN0YWdlLXJldXNlLmpzb24AhDl1jaFFsTPLe2ytzPNTXJKkTKgxMDA2NDQgc3Ryb25nZXItcmFuay1zY3JlZW5zLmpzb24AuMERTs43bx/PbVhSlCB4uB8csCYxMDA2NDQgc3RydWN0dXJlZC1idWxrLWJpdC1heGVzLmpzb24ADy0qbTA/t1M3BCrp9jBIB4px75gxMDA2NDQgc3RydWN0dXJlZC1idWxrLWNvbXBsZXgtaW5wdXQuanNvbgBh5LR0ly3YGfnyeARyNe+z0pZctzEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstaW5wdXQuanNvbgDvze8VcCy6cLKyBNfVFB4tFLyxvTEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstbmV0d29yay5qc29uACfshq7qtuaov8sYKBZIcIEoRV5wMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1yYW5rb25lLWV4YWN0bmVzcy5qc29uAGkBXlHs4Cef8/ej5zHof3b2c/CDMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1yYW5rb25lLXByb2ZpbGVzLmpzb24AOdVmv4F1USL5t2wjJQWv2cmRGJ0xMDA2NDQgc3Vic2V0LWNvcmUtZmFtaWx5Lmpzb24AjwsJe/zuSYkJBD2+BoCjrNr2KlQxMDA2NDQgdGVybmFyeS1zaWRlLmpzb24ALFyfbqi6MgDDkoO8fgBZ2AImjHE=", + "type": "tree" + }, + "6333a5a7d6696651e54adc89feec7210783594d7": { + "base64": "MTAwNjQ0IHNraXBfZ3JhcGgucHkAbN1FXumknAMJ8ZJNJkQMagsL3rY=", + "type": "tree" + }, + "65968c8e8afdc7b514dc7e8b874fe17ac4572d55": { + "base64": "NDAwMDAgY29kZQBS36BeJv/SpMzjQ81Wg5rkkPL1sjEwMDY0NCBpbnB1dC1tYW5pZmVzdC5qc29uABwPgY9JDvN/9Fre2p/ebBl0+Yr9MTAwNjQ0IG5lZ2F0aXZlLWJhc2lzLXByb29mLm1kAOWaJQDFT75gD+2FpmWloo8hm57gMTAwNjQ0IHBvc2l0aXZlLWZyYW1lLWJhc2lzLXByb29mLm1kANtcrKxYFx0Z+QfFrlP5LXX+C6sNMTAwNjQ0IHJlcHJvZHVjZS5tZAC8kRS1bM5/jg27hJi8gB8yMA4ZmTQwMDAwIHJlc3VsdHMAN40VrywrlZ/9OkH5+Aaqc5a0wGg=", + "type": "tree" + }, + "65cafe193e5110c868f9f325454cdf48dc191dd2": { + "base64": "MTAwNjQ0IGFsaWduZWQtYml0LW5ldHdvcmsuanNvbgA5BtvOB/ehGU7eU2+nrp1vHUFj6TEwMDY0NCBjb21wbGV4LW5ldHdvcmsuanNvbgBipgkYh6OJRTXB0FnhsMUn1VbrdjEwMDY0NCBmYXN0LWdhdXNzaWFuLmpzb24AIxkMVKBgz0vEw+w15yp0rz0spQA=", + "type": "tree" + }, + "6775929e754f24509f8a0d44bb805374125dbca1": { + "base64": "MTAwNjQ0IGJhdGNoZWQtMjMtbm90ZS50ZXgAFLTEAWB66b4jXdfRS/l6AwaGBFIxMDA2NDQgYmF0Y2hlZC1hbGdvcml0aG1zLnRleABVfPEtfEML3eIt0/1t9E/6ldam4DEwMDY0NCBiYXRjaGVkLWFzc2VtYmx5LnRleADJJZix9bQpGMI+wpiKciO7u6WgijEwMDY0NCBiYXRjaGVkLWJpdC1yYW5rLWFjY291bnRpbmcudGV4ADEfYFW1GgyL1/arbYmWbuTv35VOMTAwNjQ0IGJhdGNoZWQtYml0LXJvd3MudGV4AMuqjLQsrR5xSh0ksWqxYK5ur2DJMTAwNjQ0IGJhdGNoZWQtY29tcGxleC1yb3dzLnRleADhO9luspvcZSbxDcMuChRrwXhIpDEwMDY0NCBiYXRjaGVkLXBhdGgtYnVkZ2V0LnRleAC+M4+W6D52neCQ1ene6AK+pkXHLDEwMDY0NCBidWxrLWNvbXBsZXgtZ3VhcmQudGV4AKN2E/BfgwEVbcoA4gLideS7Qt3PMTAwNjQ0IGNoaXJwLXNjYWxpbmctY29ycmVjdGlvbi50ZXgAp5F8VTSPtNpbCVwieDnAVTSebaoxMDA2NDQgY29tcGFjdC1jb250cm9sLWd1YXJkLnRleAC/w7O/mv/RXJcan6nntAbgj67B4jEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbGF5b3V0LnRleAAW9NIzRxp9GJFjrn55Ar7K3su6ZDEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbW92ZW1lbnQudGV4AAa2qe8kJFrHtyTFOiBGNUFbQCNXMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1ub3RlLnRleAANg39iQqPc/yxDS4Y5h/85+HV0bjEwMDY0NCBjb21wbGV4LWNpcmN1aXQtY29uc3RydWN0aW9uLnRleACliHs41MOX/o10Jr9Nbai56o4uojEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLW5vdGUudGV4AIeDFDOKTxFC7tD4t/iGFMzgNz52MTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24udGV4ABhjKFcpB8Y3NanMtAMyb/t0d3O/MTAwNjQ0IGNvbnRyb2xsZWQtcHJvamVjdG9yLWJhc2lzLnRleABzKOEpV/jO8550Je6Q2K7U+LuZkTEwMDY0NCBjb3BpZWQtY2VudGVycy1hc3NlbWJseS50ZXgAsMaRZsMEjSdRg1WZXj5bYicixpYxMDA2NDQgY29waWVkLWNlbnRlcnMtYml0LnRleAAbeiqIpJ+21hI4zed3BRQk15tyTTEwMDY0NCBjb3BpZWQtY2VudGVycy1jb21wbGV4LnRleAD93XvH8qL3SbpuraGdFTv5JD7jHDEwMDY0NCBjb3BpZWQtY2VudGVycy1sZW1tYS50ZXgAiTOq9QiqnUx1uhKQkT4C9oaNNR0xMDA2NDQgY29waWVkLWNlbnRlcnMtbm90ZS50ZXgAc5wkpH0T6bTDWXfe3+8oh2zbMT4xMDA2NDQgZGFnLWNvbnN0cnVjdGlvbi50ZXgAykac4FJfDNEYIYR5xpF/O6s/IugxMDA2NDQgZGFnLW5vdGUudGV4AJkZ7qSb+DrxxgRaRUmohYGH630GMTAwNjQ0IGRpc2pvaW50LXRlbnNvci1jb21wcmVzc2lvbi50ZXgADjytG5M/UyzYPWo+kxFMTJNh5lwxMDA2NDQgZHlhZGljLWNlbnRyYWwtZmFjdG9yLnRleACrkrnq7b5RADZ8JYOGdPMLjN9F2zEwMDY0NCBlbmRwb2ludC1nYXVnZS1hc3NlbWJseS50ZXgAGQTK4qZ39300471LR9Zl2SS4r0oxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtYmFzaXMudGV4AIu6AgOw9ZywwunimFCkJo9E14chMTAwNjQ0IGVuZHBvaW50LWdhdWdlLWNvbXBsZXgudGV4AJB6DO2o3wMX3cfytx31ryqk1H38MTAwNjQ0IGVuZHBvaW50LWdhdWdlLWNvbnN0cnVjdGlvbi50ZXgAmDCXSiWVEhq6H0dxWd1q4f+IYioxMDA2NDQgZW5kcG9pbnQtZ2F1Z2Utbm90ZS50ZXgAC4FVxqBaPteUgO3yhI2wp7M/5jIxMDA2NDQgZmFzdC1nYXVzc2lhbi1yZXNhbXBsaW5nLnRleAChAtIUKAGB/hD9vNY0MybkC3hJ+jEwMDY0NCBmaW5pdGUtYWxwaGFiZXQtdHJhbnNmZXIudGV4ALyVQLPFds8OP+6UkDDSp/qqKHnLMTAwNjQ0IGdlbmVyYWwtY2xpZmZvcmQtZnJhbWVzLnRleAADZ+6wBSmGAfKKZzhh1vcb8dDruzEwMDY0NCBnZW5lcmFsLW5ldHdvcmstZ3VhcmQudGV4ALxbg2ENR8gu3xmqQokUKEKe0UzAMTAwNjQ0IGluY2lkZW5jZS1jb25zdHJ1Y3Rpb24udGV4AOHCXuURh8Dfsb2nBXk8rSgTSMtRMTAwNjQ0IGluY2lkZW5jZS1ub3RlLnRleADp6KmduSejxA/7yMmHIvo6u5r8cTEwMDY0NCBpbmRlcGVuZGVudC1jb21wbGV4LnRleACkQp6O5rBQcv/yvXaXkl55e1F8EDEwMDY0NCBub25hZGphY2VudC1heGlzLW5vdGUudGV4AFtoT1z7Jb+m4lnoYlRCF8FMB1QsMTAwNjQ0IHBhaXJlZC1jb25zdHJ1Y3Rpb24udGV4AH/SZNS/SMuH01W9qyvZISmFent3MTAwNjQ0IHBhaXJlZC1jdWJlLWFzc2VtYmx5LnRleADUQifrVatoudBOpmG75Ib+pmGC1DEwMDY0NCBwYWlyZWQtY3ViZS1iaXQudGV4AN2EU1shkjurOIMFIx9vTHVq76zYMTAwNjQ0IHBhaXJlZC1jdWJlLWNvbnN0cnVjdGlvbi50ZXgAndHxDLdX2Hp2kmbLO5qZam96EEgxMDA2NDQgcGFpcmVkLWN1YmUtbm90ZS50ZXgAtyxn9y8gQLoLmnWkRs7vtssewaIxMDA2NDQgcGFpcmVkLWN1YmUtc2hhcmluZy50ZXgAVucpVy2Fkha4iidexTWStl9O5WsxMDA2NDQgcGFpcmVkLW5vdGUudGV4AOI+XSFb0a6Om4d5+7qZ4OuoEXnaMTAwNjQ0IHBhcmFtZXRlci1ub3RlLnRleABiTE+Pz9mtBnVHmsBrwYPhqKskNjEwMDY0NCBwYXJ0aWFsLWdhdWdlLWFzc2VtYmx5LnRleABKCfMko/6KPCOX80JEtc7evrlafDEwMDY0NCBwYXJ0aWFsLWdhdWdlLWNvbnN0cnVjdGlvbi50ZXgAFH/Fq5GJu08xeD+RFxLboRJ5l1YxMDA2NDQgcGFydGlhbC1nYXVnZS1mcmFtZXMudGV4AIZhXsozsozYCnJWZI7s0FGYjs+7MTAwNjQ0IHBhcnRpYWwtZ2F1Z2Utbm90ZS50ZXgAdZLUlwsEsVJOTke27rMkBl+iiX8xMDA2NDQgcGFydGlhbC1zd2FwLWFzc2VtYmx5LnRleAB7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", + "type": "tree" + }, + "695f984791dc1a8e99bb2229652f00a36fe760c2": { + "base64": "MTAwNjQ0IGJpbGluZWFyX3Byb2plY3Rpb24ucHkALg8YCa5T8VDzIykAw+hoztYalHgxMDA2NDQgaW5kZXBlbmRlbnRfbWF0cml4X2NoZWNrLnB5ACcKc5Hcike7OJBDxyFeIfzKVYyQMTAwNjQ0IG1hdHJpeF90d29fYWRpY19saWZ0LnB5APwCNvZYIwgsWF2v7fBUyBBG/jSgMTAwNjQ0IHBoYXNlX2NoaWxkX2Nsb3N1cmUucHkAUNy7Pu1p2zRSSzG+8kWZPUjgA0ExMDA2NDQgcGhhc2Vfb3BlcmF0b3JfYXVkaXQucHkArNQNFmwl3gJiECx+LsraXHVvNlUxMDA2NDQgc291cmNlX2NpX2F1ZGl0LnB5AKXzt5KveeQa0Iixp6EDKwSyk7fz", + "type": "tree" + }, + "6a9970a530119174507904e23592fd59ede19a5d": { + "base64": "dHJlZSAzY2NhOWNkZGVjMWI3ZWIxMDNhN2YyOGQwNTFlZTgwOTc5NmQ4MjJjCnBhcmVudCBjZjYwNDQyOTgzYzE1M2EzYTBmNTI3MmVhNDcxM2Y5OWViYTEzYzg2CmF1dGhvciBpY2VreWxpbnggPGljZWt5bGlueEBvdXRsb29rLmNvbT4gMTc5MTUxMjg3OCArMDgwMApjb21taXR0ZXIgaWNla3lsaW54IDxpY2VreWxpbnhAb3V0bG9vay5jb20+IDE3OTE1MTI4NzggKzA4MDAKClVzZSB0aHJlZS1zdGFnZSBDYXlsZXkgY292ZXJzIGZvciBrYXBwYSA9IDMuMTQ2MDExZS00Cg==", + "type": "commit" + }, + "6c2f934b725929ffe1905e08cad82092dbfc9763": { + "base64": "MTAwNjQ0IGNvcGllZC1jZW50ZXJzLWNvbXBsZXgudGV4AP3de8fyovdJum6toZ0VO/kkPuMcMTAwNjQ0IGNvcGllZC1jZW50ZXJzLWxlbW1hLnRleACJM6r1CKqdTHW6EpCRPgL2ho01HTEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstY29tcGxleC50ZXgAU4aLQbL+l5yuna4kLqDgrvVoElc=", + "type": "tree" + }, + "6d641a4565af1db22e3c237a9aee8d4305d8b58e": { + "base64": "MTAwNjQ0IGVkZ2VzLnR4dADAbJaIlz0t7xdA6RXt4sNy88DSoQ==", + "type": "tree" + }, + "6db1fa08de3de4ce90d8bd102b44648b2abc2b78": { + "base64": "MTAwNjQ0IGJhdGNoZWQtbmV0d29yay5qc29uAEuQYDY5aclLYbZ3mrzp2AzPr/QPMTAwNjQ0IGNvbnRyb2xsZWQtYml0LXJhbmstbW9tZW50Lmpzb24ABS5P7/WWQW3HIQf0BhVn+x+H8xc=", + "type": "tree" + }, + "6e85506722f5f555249acaecd84d2e8c2c7990db": { + "base64": "MTAwNjQ0IGJhdGNoZWQtMjMtbm90ZS50ZXgAFLTEAWB66b4jXdfRS/l6AwaGBFIxMDA2NDQgYmF0Y2hlZC1hbGdvcml0aG1zLnRleABVfPEtfEML3eIt0/1t9E/6ldam4DEwMDY0NCBiYXRjaGVkLWFzc2VtYmx5LnRleADJJZix9bQpGMI+wpiKciO7u6WgijEwMDY0NCBiYXRjaGVkLWJpdC1yYW5rLWFjY291bnRpbmcudGV4ADEfYFW1GgyL1/arbYmWbuTv35VOMTAwNjQ0IGJhdGNoZWQtYml0LXJvd3MudGV4AMuqjLQsrR5xSh0ksWqxYK5ur2DJMTAwNjQ0IGJhdGNoZWQtY29tcGxleC1yb3dzLnRleADhO9luspvcZSbxDcMuChRrwXhIpDEwMDY0NCBiYXRjaGVkLXBhdGgtYnVkZ2V0LnRleAC+M4+W6D52neCQ1ene6AK+pkXHLDEwMDY0NCBidWxrLWNvbXBsZXgtZ3VhcmQudGV4AKN2E/BfgwEVbcoA4gLideS7Qt3PMTAwNjQ0IGNoaXJwLXNjYWxpbmctY29ycmVjdGlvbi50ZXgAp5F8VTSPtNpbCVwieDnAVTSebaoxMDA2NDQgY29tcGFjdC1jb250cm9sLWd1YXJkLnRleAC/w7O/mv/RXJcan6nntAbgj67B4jEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbGF5b3V0LnRleAAW9NIzRxp9GJFjrn55Ar7K3su6ZDEwMDY0NCBjb21wYWN0LWNvbnRyb2wtbW92ZW1lbnQudGV4AAa2qe8kJFrHtyTFOiBGNUFbQCNXMTAwNjQ0IGNvbXBhY3QtY29udHJvbC1ub3RlLnRleAANg39iQqPc/yxDS4Y5h/85+HV0bjEwMDY0NCBjb21wbGV4LWNpcmN1aXQtY29uc3RydWN0aW9uLnRleACliHs41MOX/o10Jr9Nbai56o4uojEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLW5vdGUudGV4AIeDFDOKTxFC7tD4t/iGFMzgNz52MTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24udGV4ABhjKFcpB8Y3NanMtAMyb/t0d3O/MTAwNjQ0IGNvbnRyb2xsZWQtcHJvamVjdG9yLWJhc2lzLnRleABzKOEpV/jO8550Je6Q2K7U+LuZkTEwMDY0NCBjb3BpZWQtY2VudGVycy1hc3NlbWJseS50ZXgAsMaRZsMEjSdRg1WZXj5bYicixpYxMDA2NDQgY29waWVkLWNlbnRlcnMtYml0LnRleAAbeiqIpJ+21hI4zed3BRQk15tyTTEwMDY0NCBjb3BpZWQtY2VudGVycy1jb21wbGV4LnRleAD93XvH8qL3SbpuraGdFTv5JD7jHDEwMDY0NCBjb3BpZWQtY2VudGVycy1sZW1tYS50ZXgAiTOq9QiqnUx1uhKQkT4C9oaNNR0xMDA2NDQgY29waWVkLWNlbnRlcnMtbm90ZS50ZXgAc5wkpH0T6bTDWXfe3+8oh2zbMT4xMDA2NDQgZGFnLWNvbnN0cnVjdGlvbi50ZXgAykac4FJfDNEYIYR5xpF/O6s/IugxMDA2NDQgZGFnLW5vdGUudGV4AJkZ7qSb+DrxxgRaRUmohYGH630GMTAwNjQ0IGRpc2pvaW50LXRlbnNvci1jb21wcmVzc2lvbi50ZXgADjytG5M/UyzYPWo+kxFMTJNh5lwxMDA2NDQgZHlhZGljLWNlbnRyYWwtZmFjdG9yLnRleACrkrnq7b5RADZ8JYOGdPMLjN9F2zEwMDY0NCBlbmRwb2ludC1nYXVnZS1hc3NlbWJseS50ZXgAGQTK4qZ39300471LR9Zl2SS4r0oxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtYmFzaXMudGV4AIu6AgOw9ZywwunimFCkJo9E14chMTAwNjQ0IGVuZHBvaW50LWdhdWdlLWNvbXBsZXgudGV4AJB6DO2o3wMX3cfytx31ryqk1H38MTAwNjQ0IGVuZHBvaW50LWdhdWdlLWNvbnN0cnVjdGlvbi50ZXgAmDCXSiWVEhq6H0dxWd1q4f+IYioxMDA2NDQgZW5kcG9pbnQtZ2F1Z2Utbm90ZS50ZXgAC4FVxqBaPteUgO3yhI2wp7M/5jIxMDA2NDQgZmFzdC1nYXVzc2lhbi1yZXNhbXBsaW5nLnRleAChAtIUKAGB/hD9vNY0MybkC3hJ+jEwMDY0NCBmaW5pdGUtYWxwaGFiZXQtdHJhbnNmZXIudGV4ALyVQLPFds8OP+6UkDDSp/qqKHnLMTAwNjQ0IGdlbmVyYWwtY2xpZmZvcmQtZnJhbWVzLnRleAADZ+6wBSmGAfKKZzhh1vcb8dDruzEwMDY0NCBnZW5lcmFsLW5ldHdvcmstZ3VhcmQudGV4ALxbg2ENR8gu3xmqQokUKEKe0UzAMTAwNjQ0IGluY2lkZW5jZS1jb25zdHJ1Y3Rpb24udGV4AOHCXuURh8Dfsb2nBXk8rSgTSMtRMTAwNjQ0IGluY2lkZW5jZS1ub3RlLnRleADp6KmduSejxA/7yMmHIvo6u5r8cTEwMDY0NCBpbmRlcGVuZGVudC1jb21wbGV4LnRleACkQp6O5rBQcv/yvXaXkl55e1F8EDEwMDY0NCBub25hZGphY2VudC1heGlzLW5vdGUudGV4AFtoT1z7Jb+m4lnoYlRCF8FMB1QsMTAwNjQ0IHBhaXJlZC1jb25zdHJ1Y3Rpb24udGV4AH/SZNS/SMuH01W9qyvZISmFent3MTAwNjQ0IHBhaXJlZC1jdWJlLWFzc2VtYmx5LnRleAB3I0kMORAZx+mwCMNVhbf3O7U0GzEwMDY0NCBwYWlyZWQtY3ViZS1iaXQudGV4AN2EU1shkjurOIMFIx9vTHVq76zYMTAwNjQ0IHBhaXJlZC1jdWJlLWNvbnN0cnVjdGlvbi50ZXgAndHxDLdX2Hp2kmbLO5qZam96EEgxMDA2NDQgcGFpcmVkLWN1YmUtbm90ZS50ZXgAPK/ifXDOmo3aw8k/eqPsJMLELbcxMDA2NDQgcGFpcmVkLWN1YmUtc2hhcmluZy50ZXgAVucpVy2Fkha4iidexTWStl9O5WsxMDA2NDQgcGFpcmVkLW5vdGUudGV4AOI+XSFb0a6Om4d5+7qZ4OuoEXnaMTAwNjQ0IHBhcmFtZXRlci1ub3RlLnRleABiTE+Pz9mtBnVHmsBrwYPhqKskNjEwMDY0NCBwYXJ0aWFsLWdhdWdlLWFzc2VtYmx5LnRleABKCfMko/6KPCOX80JEtc7evrlafDEwMDY0NCBwYXJ0aWFsLWdhdWdlLWNvbnN0cnVjdGlvbi50ZXgAFH/Fq5GJu08xeD+RFxLboRJ5l1YxMDA2NDQgcGFydGlhbC1nYXVnZS1mcmFtZXMudGV4AIZhXsozsozYCnJWZI7s0FGYjs+7MTAwNjQ0IHBhcnRpYWwtZ2F1Z2Utbm90ZS50ZXgAdZLUlwsEsVJOTke27rMkBl+iiX8xMDA2NDQgcGFydGlhbC1zd2FwLWFzc2VtYmx5LnRleAB787vhWJkr56FYVAce6fcnaetNfjEwMDY0NCBwYXJ0aWFsLXN3YXAtYmFzaXMudGV4ACxUuFxCu5J0r4EYUcsIpTV/VhgyMTAwNjQ0IHBhcnRpYWwtc3dhcC1jb21wbGV4LnRleACYw0NkCvR8w/7Jpg9RRlKua4mr/DEwMDY0NCBwYXJ0aWFsLXN3YXAtY29uc3RydWN0aW9uLnRleABgxBoWjhg/V5eidcOcRo9fwFnOXjEwMDY0NCBwYXJ0aWFsLXN3YXAtbm90ZS50ZXgAV5n2of53kLJS0SDgxPc3wzOkdzsxMDA2NDQgcHJpbWUtZmllbGQyOC1jb25zdHJ1Y3Rpb24udGV4ACHOIPM2KBrMwQl7IPDHhmu9YTQEMTAwNjQ0IHByb2plY3Rvci1iYXRjaGluZy50ZXgAxOOYQ5DC27oazDbYZulYUPOlYF4xMDA2NDQgcm91dGluZy10dW5lZC1ub3RlLnRleADJTFAVHJ8haV8GvGZo+vcUJ6kKGzEwMDY0NCBzaGFyZWQtcG9pbnQtY29uc3RydWN0aW9uLnRleAA1M3QJl0KPiT3Bq6wvouZnppTJjjEwMDY0NCBzaGFyZWQtcG9pbnQtbm90ZS50ZXgALDQqTufq9eJL0zv91O6kHnbqjcsxMDA2NDQgc3RhZ2UtcmV1c2Utbm90ZS50ZXgArZCsh3n4R983dri2pI0V1lvd/goxMDA2NDQgc3RvcHBlZC1ndWFyZC50ZXgA2l6kB4WqmPYndTA4dQxWQiApjZUxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWFzc2VtYmx5LnRleAA5MtOt5d3q4SfCRq7VFeA0akDwZzEwMDY0NCBzdG9wcGVkLXByb2R1Y3QtY29tcGxleC50ZXgASpA3E3zTFY2+ym2eOxiBpZnr/LUxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWZhY3Rvcml6YXRpb24udGV4AJT3uBOX4gQGrLoyIxt+9L3CnEOpMTAwNjQ0IHN0b3BwZWQtcHJvZHVjdC1pbnRlcmZhY2UudGV4ACDETOSGb6lyzmQ2Xc82WxZZqDBQMTAwNjQ0IHN0b3BwZWQtcHJvZHVjdC1ub3RlLnRleACosjJUyIc9nCSAdQp9Q1tsurOwITEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstYXNzZW1ibHkudGV4AJvRHYjSAdaqexELwWlkjZKMOpwUMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1iaXQudGV4AP4TuHv0hlgqhyLPiB4nGjHGnUItMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1jb21wbGV4LnRleABThotBsv6XnK6driQuoOCu9WgSVzEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstY3J0LnRleAA4Xyr4qrSIS9e7Qsift1w7gdPnNjEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstbm90ZS50ZXgA3vPTxS+Jy2q7k0QUkGKZkzgzw6wxMDA2NDQgdGVybmFyeS1maXZlLXN1YnNldHMudGV4AN3AjRsThdaFYRucPW2DWOQmm3DgMTAwNjQ0IHRlcm5hcnktbm90ZS50ZXgAu8HaF4hFh27LNw1pc7RemY+KWBAxMDA2NDQgdGhyZWUtc3RhZ2UtY292ZXItYXNzZW1ibHkudGV4AJg/+2rI+5EXNgzQeXwAwF36BxydMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLWJpdC50ZXgA8FIl0h+Sz4zvIbbhJgHVtNYZkfAxMDA2NDQgdGhyZWUtc3RhZ2UtY292ZXItY29tcGxleC50ZXgAxUyz1f8TKB/iqkSsO66qx/znVGkxMDA2NDQgdGhyZWUtc3RhZ2UtY292ZXItbm90ZS50ZXgA9a0JpFDMXdMaXGqgf/CFIwZNcoExMDA2NDQgdGhyZWUtc3RhZ2UtY292ZXItcm93cy50ZXgAWQ2kuJKgi51Rgvs9ipg8YjndJ9s=", + "type": "tree" + }, + "6edcad4bcf84a9396c7bd11a62c490292827446f": { + "base64": "MTAwNjQ0IFBST09GLm1kABeZFWJk+vV/NZFG+XcU3NwSf0DbMTAwNjQ0IFNPVVJDRS5qc29uAP1ZWPHFGwU7XkqSRSBJcpjAdD0/MTAwNjQ0IGF1ZGl0LnB5ADTUmQ9mrwSKMJKvJLG53S/vYP2fMTAwNjQ0IGJhbGFuY2VkX2Fzc2VtYmx5LnB5AMf9QoZ9dBk522pBUpv9uxNvAxkbMTAwNjQ0IGNlcnRpZmljYXRlLmpzb24AMz81z1hRbrBJznUPzqqYJ51mrugxMDA2NDQgY29tcGFyaXNvbi1wcjQwLmpzb24A4LFPskOWx0Gjvy8YPbTG8ssKyrMxMDA2NDQgY29tcGFyaXNvbi1wcjQxLmpzb24A8paPsd2mggkNGj0rya2GrROqxx8xMDA2NDQgY29tcGFyaXNvbi1wcjQyLmpzb24AP0N4WA6Q/dHpuSuEfdYLoir8KI4xMDA2NDQgY29tcGFyaXNvbi1wcjQzLmpzb24AUD5KdM4mo6+Aj2Kf1f5rgnRujugxMDA2NDQgY29tcGFyaXNvbi1wcjQ0Lmpzb24AnAxBYVh5Dl1Bfk2ck+E7zz8SDgcxMDA2NDQgY29tcGFyaXNvbi1wcjQ2Lmpzb24AQnmD4uB+E6RJd7BDlzstTsk933IxMDA2NDQgY29tcGFyaXNvbi1wcjQ3Lmpzb24AvDh+jTfjQVIEOp95GSyONaTWdygxMDA2NDQgY29tcGFyaXNvbi1wcjQ4Lmpzb24AsKsxAdh1XKOxDbp+VTKYIANmVSAxMDA2NDQgZGF0YS1jb3JuZXJzLmpzb24ATLeism/Eiv0CC3lmxD/TDPIyFRQxMDA2NDQgZGF0YV9jb3JuZXJzLmNwcAAC4TRB1zgJzRv1hjxrSA9TSFph2zEwMDY0NCBkYXRhX3JlY292ZXJ5LnB5ADiXLKt+H9pgjDiY/J8vV4vyUyEaMTAwNjQ0IGxpbmtzLTIzLnVzZXMAD4OLDTFVsSlcn0fvU9HbyE89KL4xMDA2NDQgbGlua3MtMjUudXNlcwCKwW8/PhImeld8B+Ara5lqU8kKOzEwMDY0NCBvcHRpbWl6ZV9tYXRjaGluZy5weQDvW/63M6/lwXtF7fE2SWvxHalfiDEwMDY0NCBvcmlnaW5hbC0yMy5qc29uADl+eiCG57zH3AOdfvfZdBLGIuPZMTAwNjQ0IG9yaWdpbmFsLTI1Lmpzb24AM13c55jk3Cfvzw8CPIqa79sYTYExMDA2NDQgb3JpZ2luYWxfdGltZWxpbmUucHkAD7NIiW7ayCpqw+aC1hEEnLhIj/ExMDA2NDQgcHJvZHVjZXItcmVjZWlwdC5qc29uADzcCGK9stxd4JHa/I6qtYR3L+ybMTAwNjQ0IHByb2R1Y2VyLnB5AItIIEgfiw1WlGws7vpP5QyfrwZsMTAwNjQ0IHByb2ZpbGVzLTIzLmpzb24AOZw0Zq6daEWy1xHTjuPj6rMGaocxMDA2NDQgcHJvZmlsZXMtMjUuanNvbgAPtOkpvLMaM/pg2M10ev+fRpBt7DEwMDY0NCBwcm9maWxlcy5jcHAAQQ5Q9HViMYP6uN6PIR59UoWZFRo0MDAwMCByZXZlcnNlZACFDCv128dt3ga3RxK+aey8cgWbMzEwMDY0NCBzY2FsYXItMjMuanNvbgCrtK8bqe1OejVMp2EGeDO6r8nP1TEwMDY0NCBzY2FsYXItMjUuanNvbgCUwSWC9kkvcXhA/HSth+Ab58g0/zEwMDY0NCBza2lwX2dyYXBoLnB5AGzdRV7ppJwDCfGSTSZEDGoLC962MTAwNjQ0IHRpbWVsaW5lLTIzLmpzb24AHV6kVRCpf9pEufBYvXC7uykaRMAxMDA2NDQgdGltZWxpbmUtMjUuanNvbgCAOPEUMN3csM+fdfo9oJuuI5enHTEwMDY0NCB2ZXJpZnkucHkADUd5x6eU+p76d4J1gnf4JWtoeEE=", + "type": "tree" + }, + "6f36d4d4d295ca5fe7f70fef8c47fd21fb62152c": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLmpzb24Atcu2eOvbFNiAruyEzsu6gmBFkeA=", + "type": "tree" + }, + "6f56d13fb797364eba8ceb6d566162ca616bf5c3": { + "base64": "MTAwNjQ0IEF4aW9tc0IubGVhbgAGrvk5UdhZtDlqB5GBxppIdSqRrjEwMDY0NCBBeGlvbXNDLmxlYW4ASgXe5TmkyDHuAc9FStqkpeyDkdUxMDA2NDQgYXhpb21zLW91dHB1dC1CLnR4dACyDwolQUsca3VmiVty4AmDty+jMjEwMDY0NCBjaGVja19heGlvbXNfQi5weQBL1zU9FVqvJi7ne1WMaUZsyasD1A==", + "type": "tree" + }, + "701c39c0806bc392ad51156f0c4225f1d560e1af": { + "base64": "MTAwNjQ0IGpvaW50LWR1YWwta2FwcGEuanNvbgDAlbuTrTSk8qk5FpGksTaExOl+6DEwMDY0NCBqb2ludC1kdWFsLXJlcG9zaXRvcnktdmFsaWRhdGlvbi5qc29uAM5pEDL+6Co3fQG0L8F4CBfsBc/a", + "type": "tree" + }, + "71182f8e076c9423355fddeabf451b0cade8c5ae": { + "base64": "NDAwMDAgY2lyY3VpdAC6LUFK9u/lDoP3KI76zacyBrcKzjQwMDAwIGxlYW4AWhKtuwBFVSy8bKGY6uV9M3m07QM0MDAwMCBvcGVuLXBycwCsgQyMl0z6MQNtusTHubmZp1brjw==", + "type": "tree" + }, + "7133fd1c49bb28cf68374b0098c5b9f7235231da": { + "base64": "NDAwMDAgY2xpbWJlZC00OAAhDnoIV8m6QYNRG3L4s8y85eDy9jQwMDAwIGNvcGllZC1maXhlZC1yZXZlcnNlZABxmk57pJn99OKzO6sPBEiHHqRchDQwMDAwIGNvcGllZC1maXhlZADoL5O3sUT1FdUrAKjU2s2iaSm16zQwMDAwIGNvcGllZC1yZXZlcnNlZACTgQ6qxkQWtJfWi8uPV8gtpJ9CJTQwMDAwIGVubGFyZ2VkLXBvc2l0aXZlLWZyYW1lLW5ldHdvcmtzAMMLipaoF1Lq45bXfGJPxE0wzGH5NDAwMDAgZ2F1c3NpYW4tcGFyaXR5LXN5bnRoZXNpcwDs+8z54KmiDGGf8PPFa/aHoGkkmzQwMDAwIGdhdXNzaWFuLXBhcml0eQCfyoPokyVP2gA2l4nCGYbch2tN7DQwMDAwIGpvaW50LWR1YWwAt68oQF8ynTGibsFcdqOUxSE6PX80MDAwMCBtYXRyaXgtZXhwb25lbnQtc3ludGhlc2lzAKfDCxRiuG7mr383KzIkuRbMLPr+NDAwMDAgcGFpci1hc3NlbWJseQCDeS26n6jZmE/dzWTFoUu18G586jQwMDAwIHBhcmFsbGVsLWFubm91bmNlbWVudHMAIUlhL8XbfvY8R2i85NbcAiwokxo0MDAwMCBwb3NpdGl2ZS1za2lwAN1iqyjBwsBJN+g/k7LKqIsa9u2/NDAwMDAgc2tpcC1jbG9uZXMAsrAMU+jJbCIOO0zRMSYFC0uYoy40MDAwMCBza2lwLXN0cmlwcwAdXgzAt89dj25cLgWi9j/mIadrdTQwMDAwIHNraXAtc3VmZml4AG7crUvPhKk5bHvRGmLEkCkoJ0RvNDAwMDAgc3BsaXQtc2tpcAAomaMJJwlR02SAJft+QXOnhmvJ4TQwMDAwIHN3YXBuaWwtcGFyYWxsZWwAgC9GwQsviuqtUm3zrV14mjzy39Y=", + "type": "tree" + }, + "719a4e7ba499fdf4e2b33bab0f0448871ea45c84": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAD5H3h0CSzaie3anorpYfNC6wfbdjEwMDY0NCBTT1VSQ0UuanNvbgDIBU7hGkZB3qOgtH7VvwPKBGiEPTEwMDY0NCBiYWxhbmNlZF9hc3NlbWJseS5weQDH/UKGfXQZOdtqQVKb/bsTbwMZGzEwMDY0NCBjZXJ0aWZpY2F0ZS5qc29uAPt31tfONGcQys611Tw1P+BDgVneMTAwNjQ0IGZ1bGxfcHJvZmlsZXMyNS5jcHAAEI3+Q0Tu6LFDxhGl8VKOiQNC++0xMDA2NDQgZ2VvbWV0cnktY2VydGlmaWNhdGUuanNvbgDFTWtwxLq62Qq/7cw+ScIow881rTEwMDY0NCBnZW9tZXRyeS1wcm9vZi50eHQAP6RzWpCwJVoxNdLx2PYZYdCcwAIxMDA2NDQgZ2VvbWV0cnktc291cmNlLmpzb24AWDTB9bjhJcZx60AsoNW1y/0halExMDA2NDQgZ2VvbWV0cnkuY3BwALcFr+AKSJpUxbmuxxhBsUee8oYzMTAwNjQ0IGdlb21ldHJ5LnB5AFYKUXN/qCf0hZlnc4bjXxu5sPhcMTAwNjQ0IGxhYmVsLWlucHV0LTI1Lmpzb24ADdk5/bK6x4JmsYIatGRgEzOIJtExMDA2NDQgbGFiZWxfYXVkaXQuY3BwACbGWXl892zf00OsNEsQfkp8SkbxMTAwNjQ0IHByb2R1Y2VyLWlucHV0LTI1Lmpzb24AxKs5ZiT/cZHsfPOnhL0bJDMI46AxMDA2NDQgcHJvZHVjZXItc291cmNlLmpzb24AJTOwfc+xgyscCQdu4m66QnDaVmcxMDA2NDQgcHJvZHVjZXIucHkA+JG7L3uhNj/FtGzgKu3utfhYQl4xMDA2NDQgcHJvZmlsZS0yNS5qc29uAPXE2SGYpQ5sxt9+l3r0jXaMSgGFNDAwMDAgcmV2aWV3ANjYNHW5NC4H28VbqgKjAAaTwgmSMTAwNjQ0IHZhbGlkYXRpb24uanNvbgCt1hHfMLQJx9WttTL/eEVdVCGO6TEwMDY0NCB3aXRuZXNzLnB5AMWsdPzsiuW5xNA6HyRRPPyzrITv", + "type": "tree" + }, + "729bcdf88c64768e41347dd751568beafa3a386a": { + "base64": "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", + "type": "tree" + }, + "731e9f7a858be7ce0519e3d187c2cb7a7797042b": { + "base64": "MTAwNjQ0IGJhbGFuY2VkX2Fzc2VtYmx5LnB5AMf9QoZ9dBk522pBUpv9uxNvAxkbMTAwNjQ0IGNlcnRpZmljYXRlLmpzb24A+kspwG344xfEB020uDhWIunicmExMDA2NDQgY2hhbmdlZF9ncmFwaC5weQAkBwp9hYIXwOizCoEC7Pa4TQ4d+TEwMDY0NCBwcm9maWxlcy5jcHAAQQ5Q9HViMYP6uN6PIR59UoWZFRoxMDA2NDQgdmVyaWZ5LnB5ADU94DdMhoUB9EHhxlOyyWs7v9LS", + "type": "tree" + }, + "76b31d0cc30bf9b52bdf2767527013348a935080": { + "base64": "MTAwNjQ0IFJFQURNRS5tZACB6vauow6w0LVrG4KrAIyYRxSvrDEwMDY0NCBfX2luaXRfXy5weQBCP7df03/VJIKmDJlYnE5NfYFaJzEwMDY0NCBjb21wbGV4LnB5APHifGoQDGqPl093xAKckiGMn86fMTAwNjQ0IGV4YWN0bmVzcy5weQBd8Hcu/oQZsk2xjn2uPIdO1hQGWDEwMDY0NCByYW5rb25lX3Byb2ZpbGVzLmNwcABcYJd1+qP3xlpAabn61mZzEQ2FPw==", + "type": "tree" + }, + "77b85d5afb2aba8a481407796e2cdaf043eb1f6a": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAA5C7V3/U7B+ndN7ZWIfOWFWtwX5zEwMDY0NCBjb21wbGV4c2lkZS5weQBdx4X1oAdd/iPUudcAVqbMbJb5pjEwMDY0NCBleHBvcnQucHkAf5VIPxSOkCIkWzJAZZR4xm7V3wAxMDA2NDQgZ2xvYmFsLmNwcADqx+KD0q2EhNTwcYukVTBANaVEDTEwMDY0NCBsb2NhbC5weQBegVfZV+Zyk8ZvZ5ORHvd89lgRNQ==", + "type": "tree" + }, + "7ccee0e986b68ea43feba609e024c1535cfa76d6": { + "base64": "MTAwNjQ0IFNPVVJDRS5qc29uAFOkoKat3uUxg8A0FQ5YAJUcfEZpMTAwNjQ0IGNoZWNrX2NvbXBpbGVkX3dpdG5lc3MucHkAfWaILxTSr3cQ6lorTG5YHD/jQPExMDA2NDQgcG9pbnRfb3JkZXJfc2VhcmNoLnB5AKR9+VPSdfhr8/yxAMxCXKiFSHXKMTAwNjQ0IHByb2R1Y2VyX3NlYXJjaC5weQDyjxtm2C+2pFR+EWqgvdi4Rn10bQ==", + "type": "tree" + }, + "7d717a161320df3cde2d1622b60daa20da71537f": { + "base64": "MTAwNjQ0IGJhdGNoZWQtMjMtbm90ZS5wZGYA8NQtQwFZ8/Rtz0R+y134qpNV4ggxMDA2NDQgY29tcGFjdC1jb250cm9sLW5vdGUucGRmABKz+vemKoZckGnzH7Bfewm53vvfMTAwNjQ0IGNvbXBsZXgtY29tcHJlc3Npb24tbm90ZS5wZGYAYJFGUmAXrohBFAHLrCu7h6pp4AUxMDA2NDQgZGFnLW5vdGUucGRmALaLLj/BJDnkOv4MnWLOodLJt8+CMTAwNjQ0IGVuZHBvaW50LWdhdWdlLW5vdGUucGRmAEOxXvw5GEzW9+Zz/eIiWazx0sWxMTAwNjQ0IGluY2lkZW5jZS1ub3RlLnBkZgCpehH02yyY723nTPHbJ/YCockimjEwMDY0NCBub25hZGphY2VudC1heGlzLW5vdGUucGRmAFce7JqVL/7pcKuFJI7R7p7NevxqMTAwNjQ0IHBhaXJlZC1ub3RlLnBkZgADdFe4diolErmblI6sY4/XehQmtzEwMDY0NCBwYXJhbWV0ZXItbm90ZS5wZGYAid+Ni8WVLgxfN1mTAgNqqdmj+ecxMDA2NDQgcGFydGlhbC1zd2FwLW5vdGUucGRmAI257OVwAwvPGs0yprgxaADdyjlMMTAwNjQ0IHJvdXRpbmctdHVuZWQtbm90ZS5wZGYA9vt2TVlMwUvRjlbXJjRSDMt895UxMDA2NDQgc2hhcmVkLXBvaW50LW5vdGUucGRmAM2MYrnu4UH7JtWB4X+52I0Edx2kMTAwNjQ0IHN0YWdlLXJldXNlLW5vdGUucGRmAFeE/fjAKDVEZiDkHs96P2y8L3caMTAwNjQ0IHRlcm5hcnktbm90ZS5wZGYACts2sM3RjnpMGjUCd0ErNtEmhSU=", + "type": "tree" + }, + "7f357748f59b69ccbfd328ffb548af769c080976": { + "base64": "MTAwNjQ0IEF4aW9tcy5sZWFuAKUlOF06QWl/k3inFhXl19IQYXY7MTAwNjQ0IEJhc2UubGVhbgBlJxbw0OegaBqdfMP3OfyEEKlF8jEwMDY0NCBCaXQubGVhbgBUT6+k1+t1EIfXoIWhUc5ZYhe5SDEwMDY0NCBQUjMubGVhbgAWvgehvlQ0TfkwjVyAl1JmmgzTnjEwMDY0NCBQUjQubGVhbgD3wM0zb1OGB/hqNbMjpAhHJK64hzEwMDY0NCBQUjgubGVhbgCA41GPlamv3rhtA0ciebZeYZZh6A==", + "type": "tree" + }, + "802e5216e29698e57aadd77d30a0e8244b318443": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLmpzb24AcVnquIc6SBct5fqkkDZn8RNWOr0xMDA2NDQgZ2VvbWV0cmljLW5vdGUudGV4ABMBMhGrzr2aNhOouZVKyg6A4pW2", + "type": "tree" + }, + "802f46c10b2f8aeaad526df3ad5d789a3cf2dfd6": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABHRRIXj3GCd+T66dKY2w4glwB38DEwMDY0NCBTT1VSQ0UuanNvbgBhwIo0CECYiH3PD8d5eIpIlFlbbDQwMDAwIHVwc3RyZWFtAARgEW6Av9mLVMF8+sKI65Pzk1JCMTAwNjQ0IHZlcmlmaWNhdGlvbi5qc29uAAXNhfbx2pN4utGottvso+wk7M0SMTAwNjQ0IHZlcmlmeS5weQBRT0ntJDvYTikXTWJhiY9vuSFKXg==", + "type": "tree" + }, + "80c5b3126c18d39bb78836a93317f97869427acf": { + "base64": "MTAwNjQ0IGNlcnRpZnlfcmV2ZXJzZWQucHkA5zZ8skhit/QWxPNhgbbTg7pTu3wxMDA2NDQgaW5kZXBlbmRlbnRfY29udHJvbHMucHkA1VeNXFEIHKkiwaTz3DICU8ARr+Y=", + "type": "tree" + }, + "81325025f2f0872f26edcbe789ad970657c18f16": { + "base64": "MTAwNjQ0IHByaW1lLWZpZWxkMjguanNvbgAMUFlU4lNiIm0RbCwuUpnQIAX4Xw==", + "type": "tree" + }, + "81bf7977ef7678ee93bd39d5770dab99b567fffb": { + "base64": "NDAwMDAgcHJpbWUtZmllbGQtZm9sbG93dXAAEzPqZ458F5u7Voe90UlBykDjJ+8=", + "type": "tree" + }, + "83792dba9fa8d9984fddcd64c5a14bb5f06e7cea": { + "base64": "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", + "type": "tree" + }, + "83e9e6847eebc65057a1b2cf20e2e8ea8a265316": { + "base64": "NDAwMDAgcHI1NACc2Nwbdb8POAe3j70RDHud7dag2Q==", + "type": "tree" + }, + "84db6ec1551b23e60d97dfb5205c4cc9dba85451": { + "base64": "MTAwNjQ0IGV4Y2x1c2lvbl9jaXJjdWl0LnB5AKqpmYbEuBxdT74Bb9IWpIGJQLuVNDAwMDAgcGFydGlhbF9zd2FwAFeBusgZsCk0WX42cxO1/teJGYdo", + "type": "tree" + }, + "850705819ba6f51e3d121015264d14bbe911219e": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAAs1qVpwp8wGp3o5tNUDC9qh88LszEwMDY0NCBmbGF0MTZfMjIwOF9hY3R1YWxfZXhhY3RfcG9seW5vbWlhbF92ZXJpZmljYXRpb24uanNvbgDBEbUpkMsJo2b8X77TPEX8QLrjPDEwMDY0NCBmbGF0MTZfMjIwOF9pbnRlZ2VyX2NpcmN1aXQuanNvbgDtCGul9NfY3EmJVHh6c/4faxTthTEwMDY0NCBwb3J0YWJsZV9yZWdlbmVyYXRpb25fY29udGVudF9pZGVudGl0eV9hY3R1YWwuanNvbgAvjEk1lyzrkVXXsk5JM9NcFwte1zEwMDY0NCBwb3J0YWJsZV9yZXBsYXlfb3JpZ2luYWxfYWN0dWFsLmpzb24A+sCiRlela3I6AIXdbfxToZOUsSkxMDA2NDQgcG9ydGFibGVfcmVwbGF5X3JlZ2VuZXJhdGVkX2FjdHVhbC5qc29uAJc1bGn/BGqCFAVX+T7wa4t9k92H", + "type": "tree" + }, + "850c2bf5dbc76dde06b74712be69ecbc72059b33": { + "base64": "MTAwNjQ0IGdlb21ldHJ5LXNvdXJjZS5qc29uAGGJEu5JfAU+fYkca38HxVF+3q5xMTAwNjQ0IGdlb21ldHJ5LnB5AHrVQRhgn7juu7Mp2IYsjImQOak7NDAwMDAgcHIzNACAxbMSbBjTm7eINqkzF/l4aUJ6zw==", + "type": "tree" + }, + "867f93b020d0765507dca747406224a30ab066ab": { + "base64": "MTAwNjQ0IFBST09GLm1kADmlHK+CgBYPD84cpVAHS5fGMwI4MTAwNjQ0IFJFQURNRS5tZADrJ0A2n6RdjrDH7RiKClQFJyFBZjEwMDY0NCBTT1VSQ0UuanNvbgCoqaB11zFC3qxSrbv7m6brC0QxbA==", + "type": "tree" + }, + "8819e09d4bdac7405f46203515d5a0ce9adfbe13": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAABbNJNM7xIKN72xhNr4FU+CTOT2zEwMDY0NCBmaXhlZC1iYXNpcy10d28tc3RhZ2UudGV4ACxmd8gAa/CWWRmWEC3/s8gNC+PwMTAwNjQ0IHByb2R1Y2VyLnB5ACT3PfsYOp45XN348s8kXSyeC1ycMTAwNjQ0IHJhbmtvbmVfcHJvZmlsZXMuY3BwACjGz4qp25vVdrGt75THRGE7qpXv", + "type": "tree" + }, + "8a3b0fddc017a7a1cac033f51e88a09420ad781a": { + "base64": "MTAwNjQ0IGNvbXBsZXgtbmV0d29yay5qc29uAGKmCRiHo4lFNcHQWeGwxSfVVut2MTAwNjQ0IHBhaXJlZC1uZXR3b3JrLmpzb24ALHeNLWRgvn5J3BVkJjlLqYa/SaE=", + "type": "tree" + }, + "8b0720def843327d7383cbd5434d7ccb68494e64": { + "base64": "NDAwMDAgcmVzZWFyY2gAgb95d+92eO6TvTnVdw2rmbVn//s=", + "type": "tree" + }, + "8d1f31c5e4bc6e4e558d3e0cccc05a9adc082c33": { + "base64": "MTAwNjQ0IEh5YnJpZF9Db21wb3NpdGlvbl9yZXZpc2VkLmFzdC5qc29uAAHjYHuWvrmOI/QUKhhLeFntuZY0MTAwNjQ0IEh5YnJpZF9Db21wb3NpdGlvbl9yZXZpc2VkLm1kANieM6Udbd+hQBGuob3T24FHUk5eMTAwNjQ0IEh5YnJpZF9Db21wb3NpdGlvbl9yZXZpc2VkLnBkZgBd+3w7W4xmcqTb1+ptTCakMa5wCjEwMDY0NCBIeWJyaWRfQ29tcG9zaXRpb25fcmV2aXNlZC5yZXZpZXdfZHJhZnQubWQAdHgWcfBk6WmfSLLDmwrafJsv0RYxMDA2NDQgSHlicmlkX0NvbXBvc2l0aW9uX3JldmlzZWQudGV4AJlQCKTzuswEFTCJDhfnqudmLu+mMTAwNjQ0IGFjdHVhbF85X3BhZ2VfdmlzdWFsX1FBLmpzb24AfXypqchaVeC7lQMUhuaufePcW0oxMDA2NDQgY3VycmVudF9tYW51c2NyaXB0X21hbmlmZXN0Lmpzb24AkBEF7wLfnWNaCn4T3aR2yOQwqEwxMDA2NDQgbmF0aXZlX2xhdGV4X2FjdHVhbF9yZXN1bHQuanNvbgA6EHWtFkvm10dnkkli9Jw0ChAhBA==", + "type": "tree" + }, + "8da537c7152a74c5f00d69cc581afd5461e85d95": { + "base64": "MTAwNjQ0IHBhaXJlZC1uZXR3b3JrLmpzb24ALHeNLWRgvn5J3BVkJjlLqYa/SaExMDA2NDQgcmV0YWluZWQtY29tcGxleC1sYXllci5qc29uAMry/8i752mUf+Op4S6RRkp5atLo", + "type": "tree" + }, + "8e3a8880f386759c180ebb09c0cb54441ad9c539": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLmpzb24A+kspwG344xfEB020uDhWIunicmE=", + "type": "tree" + }, + "8ef2dcc6480f780eeebf196a693efbba87cd0430": { + "base64": "NDAwMDAgc2tpcC1zdWZmaXgAYzOlp9ZpZlHlStyJ/uxyEHg1lNc=", + "type": "tree" + }, + "9236d420fa28f78f7cd9138285a594e3a5806006": { + "base64": "MTAwNjQ0IC5naXRpZ25vcmUAiq6HksHhhWe1WFRa1idIprpr+p0xMDA2NDQgQ1VSUkVOVF9HVUlERS5tZACn7mUYczOJqYYFIXuLJcRtyuriPTEwMDY0NCBSRUFETUUubWQAN88HF3vWizKdfOO3BA+y3mXM90UxMDA2NDQgUkVBRE1FX0ZJTkFMX0lOVEVHRVJfRVhURU5TSU9OLm1kAARQp+PYNb31i1e3tlV6LPslVG/+NDAwMDAgY2lyY3VpdACFBwWBm6b1Hj0SEBUmTRS76REhnjQwMDAwIGV2aWRlbmNlAB78Jny7SD/EP9wMzZ5KC1UgXAlKMTAwNjQ0IGdlbmVyYXRlX2ZsYXQxNl9jaXJjdWl0LnB5AAt24GIKXUM0Tb4qynfK35tGAHO/NDAwMDAgaW5wdXQAErd1rLsdVwF3Uat1GAfyqM2eC500MDAwMCBsZWFuADWrtpP7jl12qY8DcTuhEcF21aHVNDAwMDAgbWFudXNjcmlwdACNHzHF5LxuTlWNPgzMwFqa3AgsMzEwMDY0NCBwb3J0YWJsZV9nZW5lcmF0b3JfcGF0aF9wcm92ZW5hbmNlX29ubHkuZGlmZgAmQ3ZeBtdqUXcqeCQSliTqJR+BqTEwMDY0NCBwb3J0YWJsZV9wdWJsaWNfcmVwbGF5X21hbmlmZXN0Lmpzb24ApX/3KErpDocxzy4rOrySVcO6R/YxMDA2NDQgcG9ydGFibGVfcHl0aG9uX3JlcGxheV9wcmVwYXJhdGlvbi5qc29uAA4DcEOTWoUpXc0Gm1rhc4cbTKFuMTAwNjQ0IHZlcmlmeV9mbGF0MTZfcG9seW5vbWlhbHMucHkAWwqlzFNIs2S9bSDWCT5YueZDmc4=", + "type": "tree" + }, + "93810eaac64416b497d68bcb8f57c82da49f4225": { + "base64": "MTAwNjQ0IFJFQURNRS5tZACq9x3H/nKpNvZMbfx16L7pnB7EcjEwMDY0NCBTT1VSQ0UuanNvbgCcZRDS3gTZ9dLs35132TJwkz6J9TEwMDY0NCBiYWxhbmNlZF9hc3NlbWJseS5weQDH/UKGfXQZOdtqQVKb/bsTbwMZGzEwMDY0NCBjZXJ0aWZpY2F0ZS5qc29uAPNxi0Va+WPqP2+ZBr1W99eo6/ljMTAwNjQ0IGdlb21ldHJ5LWNlcnRpZmljYXRlLmpzb24A2iBVA/bzLMGwiXFmWOahMHaeqqIxMDA2NDQgZ2VvbWV0cnktcHJvb2YudHh0APMzdP2F+Af82rLDMuE59Us4w2rAMTAwNjQ0IGdlb21ldHJ5LXNvdXJjZS5qc29uAGGJEu5JfAU+fYkca38HxVF+3q5xMTAwNjQ0IGdlb21ldHJ5LnB5AHrVQRhgn7juu7Mp2IYsjImQOak7NDAwMDAgcHIzNACAxbMSbBjTm7eINqkzF/l4aUJ6zzQwMDAwIHJldmlldwAiAcdSUGQIADrmafxkWeOyo6c1sjEwMDY0NCB2YWxpZGF0aW9uLmpzb24ArYQ4MK2Mb1tbrmzrY6QhiAmqrK8xMDA2NDQgd2l0bmVzcy5weQC+RZ1vXG1S6h/ejyUQDH0r4ADUlw==", + "type": "tree" + }, + "945c16df65b2c1b468f8543fb74266a4b4802841": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABNyd4twAdHSXAnZkSWucxnawdY5jEwMDY0NCBfX2luaXRfXy5weQDgdYxTyu63H+Bes4vGrZvvilqN2TEwMDY0NCBjb3JuZXJzLnB5AID8Q4JwvoK6Svn8mqstyk0abgApMTAwNjQ0IHBoeXNpY2FsLnB5ADHQCDOCwCnjCL3hhRfdFUx0RCRX", + "type": "tree" + }, + "948ce1510df750f4c18b96bdaef436a86f8bf834": { + "base64": "dHJlZSA5ZGE3MjA5NTBmNDcyODNlOTUxOWQ3NzA0NzYwYWRjNjQ3NTFlMGM2CnBhcmVudCA1NmI2NmQ1ODI5N2RlY2ExZDdkZDEzMDI0N2Q3MjBlOTYwZjc3YTM3CmF1dGhvciBpY2VreWxpbnggPGljZWt5bGlueEBvdXRsb29rLmNvbT4gMTc5MTUwMTA3MSArMDgwMApjb21taXR0ZXIgaWNla3lsaW54IDxpY2VreWxpbnhAb3V0bG9vay5jb20+IDE3OTE1MDE5NDYgKzA4MDAKClVzZSBzdG9wcGVkIHByb2R1Y3QtcmluZyBpbnRlcmNoYW5nZSBmb3Iga2FwcGEgPSA3Ljc5NDc2ZS01Cg==", + "type": "commit" + }, + "94bffa5983fde98fe5d5e3f58c48c3ec61b2a44f": { + "base64": "MTAwNjQ0IGJhbGFuY2VkLTE1My5wYXRjaAA9Fd0rRUkMZ5aFD5RdPKBUKpFlcjEwMDY0NCBiYXRjaGVkLTIzLnBhdGNoAAQ8dHXmOEQqOzb1sER+H6HJlid3MTAwNjQ0IGNvbXBhY3QtY29udHJvbC0zNC5wYXRjaADrGvI27q5saD2raVG3jhDx+o16FTEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLTMxLnBhdGNoALygbiwXIajcoEiHDB8nS0mvQbMhMTAwNjQ0IGNvcGllZC1maXhlZC1yZXZlcnNlZC5wYXRjaACxT7uIdCWn+AaVDg+K/tK4OflsWTEwMDY0NCBjb3BpZWQtcmV2ZXJzZWQucGF0Y2gAo7PCJ1sXwK42vmb718tRcsca38UxMDA2NDQgZnJvemVuLTE1NC5wYXRjaAD/nNlMf1wzLVuNl9VZ9LiAP1SMfDEwMDY0NCBmcm96ZW4tbm9uYWRqYWNlbnQtMTA3LnBhdGNoAEgieyeOdOgteshIbULy2eugI6nSMTAwNjQ0IGg0Ni0xMDgucGF0Y2gA63Ia8xDpjscvjtkvyUWehJMWezIxMDA2NDQgaDQ2LTEwOS5wYXRjaADoWYQQanLwvbAqSF+84gtFGP/6ZjEwMDY0NCBoNDYtMTExLnBhdGNoAKAyxuDPmTzzPbPY9kxlWedoIOUmMTAwNjQ0IGg0Ni1kYWctNjMucGF0Y2gAI1FoYpgEtvs1qjIpkuNfwC3xDt4xMDA2NDQgaDQ2LWluY2lkZW5jZS02Ny5wYXRjaAAbI+4YzHdiLSbuxdLzeHUWRUCFODEwMDY0NCBoNDYtbm9uYWRqYWNlbnQtNzYucGF0Y2gASm3+EejsGi1kmv5KC/GBCwcWUIcxMDA2NDQgaDQ2LW5vbmFkamFjZW50LTc4LnBhdGNoAGwOxeBhlppk199tebCFIxfvCCH0MTAwNjQ0IGg0Ni1yYXRpb25hbC5wYXRjaAD+Aa4WZmnzZ9yMVRaMGYlTJTmZajEwMDY0NCBoNDYtc2hhcmVkLXBvaW50LnBhdGNoAByOqzW2MQJgo6NeJN4S95j7wx/tMTAwNjQ0IGg0Ni1zaGFyZWQtc2lkZS03NS5wYXRjaACQkLVHOL8+hQC87KykNJ0Uk6CuuTEwMDY0NCBoNTAtcGFpcmVkLTU5LnBhdGNoAHhFdCqcXDOmCF56ux5W7StvtNwMMTAwNjQ0IG5vbmFkamFjZW50LWxheW91dC5wYXRjaAAqI4VQLlhGcqxFcI5UttyVVrvqCjEwMDY0NCBzYW1lLW5ldHdvcmstMTI5LnBhdGNoANe2fPZJ/OYV7K1y+LDuk2rhON3HMTAwNjQ0IHRlcm5hcnktMzAucGF0Y2gAZ+vXF0nr02XZZOTTmjoWRT/iTMs=", + "type": "tree" + }, + "94cabe8c87d3cecfc7cf77022d93f65d628f15d6": { + "base64": "NDAwMDAgY2xpbWJlZC00OAAhDnoIV8m6QYNRG3L4s8y85eDy9jQwMDAwIGNvcGllZC1maXhlZC1yZXZlcnNlZABxmk57pJn99OKzO6sPBEiHHqRchDQwMDAwIGNvcGllZC1maXhlZADoL5O3sUT1FdUrAKjU2s2iaSm16zQwMDAwIGNvcGllZC1yZXZlcnNlZACTgQ6qxkQWtJfWi8uPV8gtpJ9CJTQwMDAwIGVubGFyZ2VkLXBvc2l0aXZlLWZyYW1lLW5ldHdvcmtzAMMLipaoF1Lq45bXfGJPxE0wzGH5NDAwMDAgZ2F1c3NpYW4tcGFyaXR5LXN5bnRoZXNpcwDs+8z54KmiDGGf8PPFa/aHoGkkmzQwMDAwIGdhdXNzaWFuLXBhcml0eQCfyoPokyVP2gA2l4nCGYbch2tN7DQwMDAwIGpvaW50LWR1YWwAhn+TsCDQdlUH3KdHQGIkowqwZqs0MDAwMCBtYXRyaXgtZXhwb25lbnQtc3ludGhlc2lzAKfDCxRiuG7mr383KzIkuRbMLPr+NDAwMDAgcGFpci1hc3NlbWJseQCDeS26n6jZmE/dzWTFoUu18G586jQwMDAwIHBhcmFsbGVsLWFubm91bmNlbWVudHMAIUlhL8XbfvY8R2i85NbcAiwokxo0MDAwMCBwb3NpdGl2ZS1za2lwAN1iqyjBwsBJN+g/k7LKqIsa9u2/NDAwMDAgc2tpcC1jbG9uZXMAsrAMU+jJbCIOO0zRMSYFC0uYoy40MDAwMCBza2lwLXN0cmlwcwAdXgzAt89dj25cLgWi9j/mIadrdTQwMDAwIHNraXAtc3VmZml4AG7crUvPhKk5bHvRGmLEkCkoJ0RvNDAwMDAgc3BsaXQtc2tpcAAomaMJJwlR02SAJft+QXOnhmvJ4TQwMDAwIHN3YXBuaWwtcGFyYWxsZWwAgC9GwQsviuqtUm3zrV14mjzy39Y=", + "type": "tree" + }, + "9656bb66f437f31d047e2485ed2d3314b85e5971": { + "base64": "MTAwNjQ0IGNvbXBhY3RfYXJiaXRyYXJ5X3NvdXJjZV9yb3V0aW5nLnB5ADz9WwBB/9+Mzc9LNQgNGAdQPmocMTAwNjQ0IGRvd25zdHJlYW1fYmFuZGVkX2ludmVyc2UucHkAsXlqW4FDAEV+W9dS1nPsNjHcQTExMDA2NDQgZG93bnN0cmVhbV9ibG9ja2VkX2dhdXNzaWFuLnB5AE4QZvQKtvuMQKOX8Zd0m2xBEYQpMTAwNjQ0IGRvd25zdHJlYW1fZ2F1c3NpYW4ucHkAR83jA/MZ0koIp6ImruE6PrI0fqUxMDA2NDQgZG93bnN0cmVhbV9waGFzZV9pbnZlcnNlLnB5ABCgCXhTfU6rAoDrYdJZL8770/FwMTAwNjQ0IHJldmlld19hcmJpdHJhcnlfcm91dGluZy5weQCQE5LMIE9I2XBL/pvnogSaRLUibzEwMDY0NCByZXZpZXdfYmFsYW5jZWRfdHJhbnNmb3JtLnB5AFs30ncPpxYlCJKxYuqqhgkzUREoMTAwNjQ0IHJldmlld19iYW5kZWRfaW52ZXJzZS5weQC0cNF1ktf8Lt/w9HYXGw4OUAOg9DEwMDY0NCByZXZpZXdfYnVsa19ib3VuZGFyeV9uZWdhdGl2ZXMucHkAMtlCUfgI8OepTXV9cGccPZH7Ff8xMDA2NDQgcmV2aWV3X2J1bGtfcmVzYW1wbGluZy5weQC4XK8e2NdNoFCNg/5OxPoJhXWF2DEwMDY0NCByZXZpZXdfcGhhc2VfaW52ZXJzZS5weQAxQKe6Vjhb2VoTcIerlcaX+CWqajEwMDY0NCByZXZpZXdfc2VtYW50aWNfZ3VhcmQucHkAMcakalLfTTeb6lgrk1suchTYJJExMDA2NDQgcmV2aWV3X3dob2xlX2NvbXBsZXhfdHJhbnNmZXIucHkARE9wz7rkX8DXPSyfkzvx7ZG/YD0=", + "type": "tree" + }, + "975c3cf5d4ee0c90d5a76500d431bfc59102bb72": { + "base64": "dHJlZSA0OTk2MGIyNmE3NWUxZjZiODQ5N2VkYjlmODcxZTg2MWNjOTkzZDRmCnBhcmVudCAzOTBlMGJhZDZkYTUxN2M1YjU1MTBjNjkyZjA1YTYxYzMyMmU0YjRhCmF1dGhvciBSb2hhbiBHdXB0YSA8Z3VwdDExNTZAcHVyZHVlLmVkdT4gMTc5MTUyMjM0NSArMDAwMApjb21taXR0ZXIgUm9oYW4gR3VwdGEgPGd1cHQxMTU2QHB1cmR1ZS5lZHU+IDE3OTE1MjIzNDUgKzAwMDAKClJlZnJlc2ggam9pbnQtZHVhbCBzb3VyY2UgYmluZGluZyBhbmQgdmFsaWRhdGlvbiByZWNlaXB0cyBmb3IgUkVBRE1FLm1kIHVwZGF0ZQo=", + "type": "commit" + }, + "97b24b3906d00836f3997e90b3767c42212f7288": { + "base64": "MTAwNjQ0IExJQ0VOU0UAV7yIoVoO6CZsJZsmZ+ZGCNP34pIxMDA2NDQgTk9USUNFAA+0cPtau9Z/3JVB4PqNPiz1ZtiiMTAwNjQ0IFNPVVJDRS5qc29uAGF/3p++CqgstGmffQwMOC4iyKfFMTAwNjQ0IHBhdXJlZWwtZGlyZWN0LXRyYW5zZmVyLnRleABRBpnWX4+bJUa5sWXHCZps3r32aTEwMDY0NCB0d28tc3RhZ2UtMTYtbm90ZS50ZXgA0TdgW92GntnGhPJyF5SrbYLx1RE=", + "type": "tree" + }, + "991a582bf45a2ea5eccf45bbda3a6922aaa648ac": { + "base64": "MTAwNjQ0IGV4Y2x1c2lvbl9jaXJjdWl0LnB5AKqpmYbEuBxdT74Bb9IWpIGJQLuVMTAwNjQ0IHBhaXJlZF9leGNsdXNpb25fY2lyY3VpdC5weQA20fosAjW5swckOoc144o/v5VxEzEwMDY0NCBwYWlyZWRfdHJpcGxlX2NpcmN1aXQucHkAaxDkkLdgHCEt+Imv/gZzaSXxUoE0MDAwMCBwYXJ0aWFsX3N3YXAAWUDYvZ9Zimr3d7USG5qyo06GpxU0MDAwMCBzdHJ1Y3R1cmVkX2J1bGsAFGYclFkoqc8LY8m6qi9LmHAZDp8=", + "type": "tree" + }, + "99d1c2a224d0e57b058194c532c2fe7332c40e67": { + "base64": "MTAwNjQ0IGJlc3QtbWFwcGVkLXBvc2l0aXZlLW5lZ2F0aXZlLWNvbXBpbGVyLTE1MzUuanNvbgD4zNKMeK2ALikX6f2dfyXhCQqQMjEwMDY0NCBiZXN0LXBvc2l0aXZlLW5lZ2F0aXZlLXJlY292ZXJ5LTIzLmpzb24ADgsLCftI+OHNmSUkQ+v8+XEFXWcxMDA2NDQgYmVzdC1wb3NpdGl2ZS1uZWdhdGl2ZS1yZWNvdmVyeS0yNS5qc29uAB+vm2nXHpXFFA9XI+Z4sYX0iVBT", + "type": "tree" + }, + "9b006de4e1e7d18f9ab4118223ecb43983a45d84": { + "base64": "NDAwMDAgY29waWVkLWNlbnRlcnMAC2aV72Y3jCrGs02Ni3x3zg7uQRA0MDAwMCBjb3BpZWQtZml4ZWQAXSP2y2afIyrRO3bK01XTOYp3KVc0MDAwMCBmcmFtZS1jb21waWxlcgBVOt5uuTFxJ2wcyUfgoxa+Yl1q8TQwMDAwIHNlbWFudGljLWJ1bGsA4AlABPgPUG905hHcaMD8Tn4hUK8=", + "type": "tree" + }, + "9c07d4a9829b3ce857db339beca78bda11e244d9": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAKhHT1wx3U8LJCMq4dSidEBbW7Z3MTAwNjQ0IFNPVVJDRS5qc29uAE44403I7V7VTD5LYKiMPcRzCAAfNDAwMDAgcmVzZWFyY2gA9IlIVWNKxk5PKA58fSaSJLKohzA0MDAwMCBzY3JpcHRzAITbbsFVGyPmDZfftSBcTMnbqFRR", + "type": "tree" + }, + "9cd8dc1b75bf0f3807b78fbd110c7b9dedd6a0d9": { + "base64": "MTAwNjQ0IGNsb25lX2lvLnB5AP+KBeIFgQfFm9sf7T2sGxQXvd+nMTAwNjQ0IGNsb25lZF9ncmFwaC5weQD0/i0fsTUQh2GJyc57u3yLCWKOMg==", + "type": "tree" + }, + "9d2a390d678026c7cdcf67eafb0b17524fbacb97": { + "base64": "NDAwMDAgY29waWVkLWZpeGVkAI46iIDzhnWcGA67CcDLVEQa2cU5", + "type": "tree" + }, + "9ea72bccd909bd2ccab89a5891df8017b0f81363": { + "base64": "NDAwMDAgcHI5Ny1zdWJzZXQArPjyKgTGdhuhOd0NVQrvn+3ftqc0MDAwMCBzZWxlY3RlZC1tb2R1bGUA10z3O6tGprnD9AMKX19K1YASkKk=", + "type": "tree" + }, + "9fca83e893254fda00369789c21986dc876b4dec": { + "base64": "MTAwNjQ0IC5naXRpZ25vcmUAAjEhI5VT3rnVjJq7lC0AbXJx/lYxMDA2NDQgQXVkaXRBbGwubGVhbgCCEEYE0T9IgqjpzqwOT0hN7ue0TjEwMDY0NCBEeWFkaWNDZXJ0aWZpY2F0ZXMubGVhbgCwhSR6snP3no/hse84urDrKzEIVjEwMDY0NCBGT1JNQUxJWkFUSU9OX01BUC5tZADtUPI0T9oifj2FxXttftLzJmSTSDEwMDY0NCBHYXVzc2lhbkxhdHRpY2UubGVhbgBMyipeM7AnKYeIEko08Hx2uI7OpTEwMDY0NCBNYWtlZmlsZQDI/rPKm6M/UAnFledmyC3rtoRMUTEwMDY0NCBQUk9WRU5BTkNFLm1kAPG495gvb70pgm0K466iVBps+h8vMTAwNjQ0IFJFQURNRS5tZABXWd7+6ti2FOSARnJ1x280XpLEBjEwMDY0NCBheGlvbS1hdWRpdC5sb2cA63g4SVBZFCSeD3XbnebsgYNMUm0xMDA2NDQgZ2F1c3NpYW4tcGFyaXR5LWNlcnRpZmljYXRlcy5wZGYA1L/nadtpjUoGpH66Pb/u13w3WfcxMDA2NDQgZ2F1c3NpYW4tcGFyaXR5LWNlcnRpZmljYXRlcy50ZXgA42TP9xmhKl39UvKXXNB8wDGNpRExMDA2NDQga2VybmVsLWNoZWNrLmxvZwBepaU7dmfXuWKU53thqyxjkYjcqzEwMDY0NCBsYWtlLWJ1aWxkLmxvZwDCxsd7BnglaAJodrVL0F6fYpdyADEwMDY0NCBsYWtlZmlsZS5sZWFuAN6IpQcYoojwTX2Kt59nnM8HHkaVMTAwNjQ0IGxlYW4tdG9vbGNoYWluABhkDIsGaxghR/Mk0679juSO5FI4MTAwNjQ0IG1hbmlmZXN0Lmpzb24AVnV6eFIYCPKF7D/ppuW8fO8XZ3cxMDA2NDQgcmVwby11bml0LXRlc3RzLmxvZwBvcXR11dVb1mlTb9kf5ty1KAh6tDEwMDY0NCB2ZXJpZmljYXRpb24uanNvbgCjCYrbyEG+3eWdKuepobCQhYNdUTEwMDY0NCB2ZXJpZnkucHMxACckRSPzrHC/+ojJc9lQSN/pGLq9MTAwNjQ0IHZlcmlmeV9leGFjdC5weQCCgV6i0Xfmlu18xf2uaQirN2hmGA==", + "type": "tree" + }, + "a32af4ec9d12fc8954fe02af2a364de5d5965a87": { + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAHbkJc2vSX8NO+5wslkoVD5fdbXqNDAwMDAgLmdpdGh1YgDLfE9UvkoalK+qhby2v+DUhQailTEwMDY0NCAuZ2l0aWdub3JlAAxe+/HUWqdKo4X1hrBTxw4XCoMkMTAwNjQ0IENJVEFUSU9OLmNmZgBLDmUzQf0oKRGoDOTYfWQSy9i97zEwMDY0NCBDT05UUklCVVRJTkcubWQAQd78kCIr4mbHEIy3tvhowkWuiOwxMDA2NDQgQ09OVFJJQlVUT1JTLm1kANSQsPPGrVpVcsH3rgVecCwEBoRPMTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTWFrZWZpbGUAZlYwi2vEyVaPnfED4bAh/KIpOrMxMDA2NDQgTk9USUNFALpe54TrKg+BGzatQl15ejuA6Y5NMTAwNjQ0IFBBVENISU5HLm1kAKAuIwJWuVkkFriMDzMt9vHExk1RMTAwNjQ0IFJFQURNRS5tZADsNMTePY9yJJNHox6Iu5QdEg9iqzEwMDY0NCBTT1VSQ0VTLmpzb24A9xF/D5jE+dCGN0pWMdxIshCmYA40MDAwMCBhcnRpZmFjdHMAfXF6FhMg3zzeLRYitg2qINpxU380MDAwMCBjZXJ0aWZpY2F0ZXMAW1RencNk/RSclvCRgy9zqxKQ4kM0MDAwMCBkb2NzACCZsHyH4gbb+4nuzRx2LhEUmCyBNDAwMDAgZm9ybWFsAHEYL44HbJQjNV/d6r9FGwyt6MWuNDAwMDAgbm90ZXMAZ3WSnnVPJFCfig1Eu4BTdBJdvKE0MDAwMCBwYXRjaGVzAJS/+lmD/emP5dXj9YxIw+xhsqRPNDAwMDAgcmVmZXJlbmNlcwDk3uEdufw5RM5317Mt0cOtItEawDQwMDAwIHJlc2VhcmNoAHEz/RxJuyjPaDdLAJjFufcjUjHaNDAwMDAgc2NyaXB0cwBOOmJgqT8tDnU3aepq/f4TiMa27jQwMDAwIHRlc3RzADstXX6oBrc8AtDflMHUqx0KRd2kNDAwMDAgdXBzdHJlYW0A5E05YhtY4rNR+RB7n6Fw1qjU/hw=", + "type": "tree" + }, + "a63847333267cfa767cc820cf6cac1f4b31429e5": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAB9rpXhIk/HuuINZkc5fHa7Z8qbyjEwMDY0NCBfX2luaXRfXy5weQAHAGbQMbZHgTA0lbL1gQsvHf98HjEwMDY0NCBiaW5hcnkucHkAd1kheWy4YMgXBRMHXOkYi0pKYiAxMDA2NDQgY3ViZS5weQABhsG+2sjHgR+etqf515T2TAWRDDEwMDY0NCBpbnRlcnZhbC5weQC6ZYGwK046pR09RRAB8wKFAiXK3DEwMDY0NCBsaWZ0LnB5AFtm7BG8h16pAfQS0Y2CfWuTuZpmMTAwNjQ0IG1hdGNoLmNwcACSdaqgKZoBWDlAR/cebEFe31qTQTEwMDY0NCBzY2FsYXIucHkAkl/7TPrImNcY0fX4j/bvzpY0VTMxMDA2NDQgc2VsZWN0LnB5AAQcSRm9W6vlKSSY+1k4hxbqqIgMMTAwNjQ0IHZlcmlmeS5weQChr+/mbUTRn3KKnwOPEtwm9bECDzEwMDY0NCB3b3JkLnB5ALnpXg6ifHtFhKBumMGpBfMcajbW", + "type": "tree" + }, + "a66128e81a29fc64af7e09d48c8c9f86f19d655a": { + "base64": "MTAwNjQ0IGFubm91bmNlbWVudC5tZABGtKByMzYo3MexCGHo4qffOG4zbDEwMDY0NCBhdWRpdC5tZABwwRtQpKMRPLy3fZn0Gt9OQXg7GTEwMDY0NCBjaS12ZXJpZmljYXRpb24ubWQANsfwgvCuvY7zidmcJgSlRqWktb8xMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy1hdWRpdC5tZAAGFSWr/P5uapTn5wT2Ibyhjrz3JzEwMDY0NCBwYWNrZWQtbW92ZW1lbnQtYXVkaXQubWQAUqC84LokBGs/3slCrc8ZmOnQ72UxMDA2NDQgcHJlLWNvbW11bml0eS1yZXNlYXJjaC1yZXByb2R1Y2liaWxpdHkubWQAOCUqtHb+7fUBCfdFzzMKGQApuXYxMDA2NDQgcmVsZWFzZS1ub3Rlcy5tZADcIKbd9hhfHJ6mOXdulzTNSvcKwzQwMDAwIHJlbGVhc2VzAPJdDfbZ5ZwWAsp9Ron6Gsd8iDHDMTAwNjQ0IHJlcHJvZHVjaWJpbGl0eS5tZADkj0GQzaovJcDSajUZL2lWTUgIdzQwMDAwIHJlc2VhcmNoAMM4CWtc6TPAvBdQ9vylKkITYTyL", + "type": "tree" + }, + "a661cc26a4a2926060cd129e0c76ff16126dd7f9": { + "base64": "MTAwNjQ0IGJydWhhdDgucHkA8sTs4IwBUDqe9C9nCBs6vgqrkyExMDA2NDQgY2VydF9ydC5weQCRE++P4x9Z7URmWOhWMY4D9E8GLjEwMDY0NCBjaGVja2dtLnB5ALXdG+9jyGq5rPSekJP/9wQmfr05MTAwNjQ0IGNoZWNrc2lkZS5weQDyrD2euCwkKPHsI8igcb+8OH5K1zEwMDY0NCBjb3JuZXJzLnB5AIEBRFQfaBGyQH35S1ypXesl9v9tMTAwNjQ0IGZsYWdfZXhpc3RlbmNlLnB5AKYUPxODhd9ZuTaBTsM7S7ZhEzDsMTAwNjQ0IGZsYWdiYXNpcy5weQCYiTxaIEUTp4Tng6X9JbFlcKdfOTEwMDY0NCBnbXNpZGUucHkAaYYvV9AMZ8V15RvjI7LbNReWFyoxMDA2NDQgbW9tZW50LnB5AMUUw3IQKprkGJvVc/b7DSdvxU8eMTAwNjQ0IG9yZGVycy5weQCG3xAm806jExdqoG/iZNPmtkaYdTEwMDY0NCBydGdtLnB5AMgvRMhKzFn0rA9LLPFubCgVrL4EMTAwNjQ0IHNpZGVfY2hhaW5zLnB5ANCDd/lOqFeZoaraxq72nfRgcpf+MTAwNjQ0IHNpZGVnZW4ucHkAerSV2Hx2LPwA5IVxHV9dWNl+P8E=", + "type": "tree" + }, + "a66a37c02399cfa69da0c18914ab76048a6d906d": { + "base64": "MTAwNjQ0IEFTU0VNQkxZX1BST09GLm1kAI9EUbZ/rjSrVA6xatg2patQqJIdMTAwNjQ0IGRvd25zdHJlYW0tc2VtYW50aWMtYnVsay1hc3NlbWJseS5tZADJJi6Qig7wFGmdF1979Ceu1kaVdzEwMDY0NCByZXZpZXctYXJiaXRyYXJ5LXJvdXRpbmcubWQAsIGPaeaBdN6BlpLWi7btxpJU1JExMDA2NDQgcmV2aWV3LWJhbGFuY2VkLXRyYW5zZm9ybS5tZABaFz9OYu5Owe45ql1+791jplLkETEwMDY0NCByZXZpZXctYnVsay1yZXNhbXBsaW5nLm1kAJcxoD/behzsrdq3N1Rb76I4y5rT", + "type": "tree" + }, + "a790a9fbb81e5dea80b8a2e91538694e5957dc50": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFADs9UZysX8fg3cA4NhmUDpaKafslMTAwNjQ0IFNPVVJDRVMuanNvbgCBXXhL5cMCJPn9N5G1ZwZrfQdM2TEwMDY0NCBzZW1hbnRpYy1idWxrLTE3LW5vdGUudGV4AKvV4PLOqd4qCbwL/uhEIkqzFVUg", + "type": "tree" + }, + "a7c30b1462b86ee6af7f372b3224b916cc2cfafe": { + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAEIzy9iTOIDQ3zghG8k7QKuCYbtLMTAwNjQ0IC5naXRpZ25vcmUABj+sg7/AphMmHmEaXUr1GHRhNxQxMDA2NDQgQXVkaXRBbGwubGVhbgDOAU4GL+67qeSH0Bz8u3DWeZgznDEwMDY0NCBDb21tdXRpbmdQaGFzZXMubGVhbgAhFzG2Nvu1eSq5MG2RkM51fLU9/zEwMDY0NCBEeWFkaWNDZXJ0aWZpY2F0ZXMubGVhbgCwhSR6snP3no/hse84urDrKzEIVjEwMDY0NCBGZWFzaWJpbGl0eU5vcm1hbEZvcm0ubGVhbgBAUxpECQF/aC1WdK4r1w1s+kR/FTEwMDY0NCBGaW5pdGVSYXRpb25hbENoZWNrcy5sZWFuAAiagL7fTreOfokEnB9bsHRkZtzqMTAwNjQ0IEdhdXNzUHJvZHVjdDMubGVhbgDvj+GrgVnNGctw/8DpSvE/vhR5KTEwMDY0NCBHYXVzc2lhbkxhdHRpY2UubGVhbgBMyipeM7AnKYeIEko08Hx2uI7OpTEwMDY0NCBHYXVzc2lhblNjYWxhckNpcmN1aXRzLmxlYW4AEH3XjaQn6MOIoY9WH1rHnIIAx9sxMDA2NDQgTGF0ZVF1b3RpZW50LmxlYW4A/MG9aVz2d1WEfTMFDer6ldAIzk4xMDA2NDQgTWF0Y2hpbmdEdWFsLmxlYW4AVg1KmcrzVSSM9NN/nxJfh3Ma6PMxMDA2NDQgUkVBRE1FLm1kAKXGPOIPM4PKEzjGen98i1nv1TheMTAwNjQ0IFJlZmluZWRGcm9udGllckNlcnRpZmljYXRlLmxlYW4A1CLnnuCJLPZXEeBYyc69qCrWXQ4xMDA2NDQgU2hhcnBRdW90aWVudC5sZWFuAEQWW/iVSfXViUVXtoKtUWqlFTpHNDAwMDAgYXVkaXQAaV+YR5HcGo6ZuyIpZS8Ao2/nYMI0MDAwMCBicmlkZ2UAB1hH3J19ru69ZkVQZxuW3hNNdHo0MDAwMCBjYW5kaWRhdGUA3a8PsieUymOqlwjrc0q8nUZ+WsI0MDAwMCBjYXRhbG9ndWUAG2fBrtB3yITCOTXY5zAQm7SD6E0xMDA2NDQgZ2F1c3NpYW5fbWF0cml4LnB5AFJFotbxM8LxNVbg6L6Od3DjzRk2MTAwNjQ0IGhpZXJhcmNoaWNhbF9nYXVzc2lhbl9tYXRyaXgucHkA95celFFVwIgZ2BopJjqUxe3i4fw0MDAwMCBoaXN0b3J5ABWSCaqrgdgtMFLUJAJ9+3G1aqoSMTAwNjQ0IGxha2VmaWxlLmxlYW4AIEVU16nTACNgDf8UNB/dChyLvSYxMDA2NDQgbGVhbi10b29sY2hhaW4AVhrXEmvmwHTBAGWZOJfXXRl5YbExMDA2NDQgbWFuaWZlc3QuanNvbgAS9HygYOxEcB5fmVEfxCelpFViVjEwMDY0NCBtYXRyaXgtZXhwb25lbnQtc3ludGhlc2lzLnRleACl0joYzEUaIZgBa0LmxxkRsnqauTQwMDAwIG9wZW5tYXRoLXNvdXJjZQAGICCQA/hvEIuC99+jraSysBV1ZjEwMDY0NCBwaV9leGFjdC5weQDtmHrQU8VEdP16+Mij/7YjeDEjCTQwMDAwIHJlY2VpcHRzAFlUnAOLK1lqwVdr8D/1K5EhgyqjMTAwNjQ0IHJ1bl9jaGVja3MucHkArQuiYHj/7rB5mReJ22WoHZQUWSAxMDA2NDQgdmVyaWZ5X2dhdXNzaWFuX21hdHJpeC5weQC3egULyzCqFblY3o61lB+CeMZaoDEwMDY0NCB2ZXJpZnlfaGllcmFyY2hpY2FsX2dhdXNzaWFuLnB5AE6HFrgHQ13eyqw1oh33IVLXfS66", + "type": "tree" + }, + "aa99a40396ac48c17d465814c6f297f071f9587a": { + "base64": "MTAwNjQ0IHBhcmFsbGVsLWFubm91bmNlbWVudHMueW1sAKd9xz/kMS60vJ9TIYRZGQhxceVFMTAwNjQ0IHN3YXBuaWwtcGFyYWxsZWwueW1sALdUAu6j6Gge1PGdHhCFo+RJCQjqMTAwNjQ0IHZlcmlmeS55bWwAaxsz9aXn4spcE8d+5hcKd2oUOWU=", + "type": "tree" + }, + "abd99e7402fdbb0cdc76c84aae82e50ccfdfeada": { + "base64": "NDAwMDAgcmVzZWFyY2gAtjfKLAn9maD0OZfG4uLwhqRE77o=", + "type": "tree" + }, + "ac1d814a3983487c284a9ef43c8e6100fadb2b17": { + "base64": "NDAwMDAgY29waWVkLWZpeGVkAG821NTSlcpf5/cP74xH/SH7YhUs", + "type": "tree" + }, + "ac810c8c974cfa31036dbac4c7b9b999a756eb8f": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABcp/CHRM9/WcZ1Y4EBZTRMx9abTDQwMDAwIGF4aW9tcwBvVtE/t5c2TrqM621WYWLKYWv1wzQwMDAwIGRhdGEACot21BfAhXo6rsiBo9/OlsMDB5MxMDA2NDQgZHJpZnRfQS5weQBjsAMxtO0RohiK/uPU69vYairr6TEwMDY0NCBkcmlmdF9CLnB5ABxdhfDSelDIBvtXPeQW5GiMouMuMTAwNjQ0IGRyaWZ0X0MucHkA3HBYVtq2JFCpCOtzouhhSfaA870=", + "type": "tree" + }, + "ac934dd27f38f6513ccecf5c4af6bab6a132dcdf": { + "base64": "NDAwMDAgbWFwcGVkLXBvc2l0aXZlLW5lZ2F0aXZlLWNvbXBvc2l0aW9uABOafCWWJf9yvHVn5bBAhj/bQcGh", + "type": "tree" + }, + "acf8f22a04c6761ba139dd0d550aef9feddfb6a7": { + "base64": "MTAwNjQ0IHNlbGVjdGlvbi5qc29uAG6Wgg7r3xdR+Ui8PWxNKosiuZBq", + "type": "tree" + }, + "ae1602755a8752c534c18e1184f731d919a4593c": { + "base64": "MTAwNjQ0IGNvbXBsZXgtbmV0d29yay5qc29uAGKmCRiHo4lFNcHQWeGwxSfVVut2MTAwNjQ0IGZhc3QtZ2F1c3NpYW4uanNvbgAjGQxUoGDPS8TD7DXnKnSvPSylAA==", + "type": "tree" + }, + "ae54bf3109eaa4f5fde66bac0ae153c7502c4d16": { + "base64": "NDAwMDAgZ2VvbWV0cmljLWRpbWVuc2lvbnMAv8J2jlG/VrEwFwQgja8joF/KnO0=", + "type": "tree" + }, + "b08242d618d7fa8fa8aab7f876d9fac2b6e2b3be": { + "base64": "MTAwNjQ0IFJlZmluZWRGcm9udGllckNlcnRpZmljYXRlLmxlYW4An3RZot41LRl3ZTobFAmnEmTAtCE0MDAwMCBjYW5kaWRhdGUAvfFMMdWmvSoOlhnQF+Ix/65c9PYxMDA2NDQgbWFuaWZlc3QuanNvbgAWrGQqLhfcwSs/flIU1crDuHEPRw==", + "type": "tree" + }, + "b2401ee67cd8a30ffbc4255d9a9260eaa751bcf4": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAP0w5hCwwBOkcLOALqmNYoc1ElmoMTAwNjQ0IFBST09GLm1kACbhFmVi7/OVofu2MnUfmFWG7QePMTAwNjQ0IFNPVVJDRS5qc29uAMSn1AfgX2b6EVWQV6c7lEqKORcS", + "type": "tree" + }, + "b2b00c53e8c96c220e3b4cd13126050b4b98a32e": { + "base64": "MTAwNjQ0IFBST09GLm1kAJdb93T0VBR9GDsT0Vl3PLXokZc9MTAwNjQ0IFJFQURNRS5tZAD+2+7+YR48pOkXz2Lso+tYfJRAfDEwMDY0NCBTT1VSQ0UuanNvbgCNG7O5yBieNeXYv9+mMtdHPovg1TEwMDY0NCBjZXJ0aWZpY2F0ZS5qc29uABZ/Gik8LNsz4QMGaBV6hGmN8g8gMTAwNjQ0IGNsb25lLWpvYnMtMjMuanNvbgC6M628woiJCem6SM6GzjI2NZRQRTEwMDY0NCBjbG9uZS1qb2JzLTI1Lmpzb24APbpR3/KspKKi0Ifaaf2YMxQnX6sxMDA2NDQgY2xvbmVfaW8ucHkA/4oF4gWBB8Wb2x/tPawbFBe936cxMDA2NDQgY2xvbmVkX2dyYXBoLnB5APT+LR+xNRCHYYnJznu7fIsJYo4yMTAwNjQ0IGNvbXBhcmlzb24tcHI0OS5qc29uAH1MHx1K8p9pXa5pibTHgWK3dAqFMTAwNjQ0IGNvbXBhcmlzb24tcHI1MC5qc29uAOBvKzYN/i1uwTfrv3BWEizAVSq2MTAwNjQ0IGNvbXBhcmlzb24tcHI1MS5qc29uAG6Ko9+vKxIQ17EzaOzyB5ofN7xBMTAwNjQ0IGNvbXBhcmlzb24tcHI1My5qc29uAIoi3hBpLOYTSpibT5fxUk7Bq1ZcMTAwNjQ0IGxpbmtzLTIzLnVzZXMAAM43Opn6AHINW+ypPgd41CSTJ1QxMDA2NDQgbGlua3MtMjUudXNlcwAuP5Ilj5nPE4wjwDmntwpCPjplVjEwMDY0NCBvcmlnaW5hbC0yMy5qc29uAH34GZ0v1VWp3kZuxY1hkSG/z8IYMTAwNjQ0IG9yaWdpbmFsLTI1Lmpzb24Ayin9/BeCRMUQTi59gAKs/1MwWHUxMDA2NDQgcGFyYW1ldGVycy5qc29uADQyXLnLKTxABWVP2U35j9vDx5zIMTAwNjQ0IHBpbl9zb3VyY2VzLnB5AOvz71Fl22zJaRF6KQiUbM9emgn2MTAwNjQ0IHByb2R1Y2VyLXJlY2VpcHQuanNvbgBayjbnX1UuR4Cq8f+zNOUEdrd4FzEwMDY0NCBwcm9kdWNlci5weQD3eVNzCq6+U4UBhnmJpD304qC9DTEwMDY0NCBwcm9maWxlcy0yMy5qc29uAPzTWN32Mw5DxS8AWu5XPzT2nqdzMTAwNjQ0IHByb2ZpbGVzLTI1Lmpzb24ASCs4T4Xpy9ZCMkY0s2VZKeb++T8xMDA2NDQgcHJvZmlsZXMuY3BwAEEOUPR1YjGD+rjejyEefVKFmRUaMTAwNjQ0IHNjYWxhci0yMy5qc29uAHzjzJRvwq+FzpNx8V1dVamjfp5OMTAwNjQ0IHNjYWxhci0yNS5qc29uAEcC22oIKZcC7gp57WzYFUP9lTEQMTAwNjQ0IHRpbWVsaW5lLTIzLmpzb24Ag2ZuYHiCkqG23cq6yADWw2CmnRcxMDA2NDQgdGltZWxpbmUtMjUuanNvbgCl8y6IKzDfMORoWuq0xTf3AY1qBjEwMDY0NCB2YWxpZGF0aW9uLmpzb24A7GwRMFpCSsqArWu1iBUaX5YLgwAxMDA2NDQgd2l0bmVzcy5weQBz6hXcMvwQhmJ1yjfTz3hAejtb1w==", + "type": "tree" + }, + "b2defaec8f41ab69e08da447d2d6c77fdd83d61a": { + "base64": "NDAwMDAgcHIxMTcA3uWFFVGwkmPDzgdoe7t0g9k84kA=", + "type": "tree" + }, + "b637ca2c09fd99a0f43997c6e2e2f086a444efba": { + "base64": "NDAwMDAgYmF0Y2hlZC1mb2xsb3d1cAAjVAUdlui1msrvzgkH5OYPwgcU0Q==", + "type": "tree" + }, + "b779d664d6cf75884e59cfd04f75ac59ba78f2d7": { + "base64": "MTAwNjQ0IHByMjQtYml0LW5ldHdvcmsuanNvbgBOIS9igZbuQ0qmewmhztzY1NcuhQ==", + "type": "tree" + }, + "b7af28405f329d31a26ec15c76a394c5213a3d7f": { + "base64": "MTAwNjQ0IFBST09GLm1kADmlHK+CgBYPD84cpVAHS5fGMwI4MTAwNjQ0IFJFQURNRS5tZADrJ0A2n6RdjrDH7RiKClQFJyFBZjEwMDY0NCBTT1VSQ0UuanNvbgCSTlZKe12S81zD6We1Hy4b5eilRg==", + "type": "tree" + }, + "ba2d414af6efe50e83f7288efacda73206b70ace": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAB4cUVMgTnfFqZOErrWxI1UUpPkMDEwMDY0NCBjaGVja19wYWlyZWQucHkAdtfNFh+jtcyeQ6yo0pqtV7mTp8kxMDA2NDQgZXhwb3J0X3BhaXJlZC5weQC6hrxvfaqM9iW4c9EDdQcvIGk2WA==", + "type": "tree" + }, + "bb8f026697634957cd747a72c034a2fcc447f78f": { + "base64": "MTAwNjQ0IGJ1bGstcmVzYW1wbGluZy10YXBlLXRyYW5zZmVyLm1kAHFB+EgIYz4idg5sp2AwLsFT83cKMTAwNjQ0IGNvbXBhY3QtYXJiaXRyYXJ5LXNvdXJjZS1yb3V0aW5nLm1kADZvl0B7bIxG8SY8K7zypGvl9A3nMTAwNjQ0IGRvd25zdHJlYW0tbWljcm9ib3gtcmVzYW1wbGluZy5tZAAn+WLeNLaUOu4zzA1AuMeIPM9W8jEwMDY0NCBkb3duc3RyZWFtLXBoYXNlLWNlbGwtaW52ZXJzZS5tZADXI0WgqnSEQ8Tvzd+HqhDVJGZIQTEwMDY0NCBkb3duc3RyZWFtLXNlbWFudGljLWJ1bGstYXNzZW1ibHkubWQAySYukIoO8BRpnRdfe/QnrtZGlXcxMDA2NDQgZG93bnN0cmVhbS1zZW1hbnRpYy1jaGlsZC1ndWFyZC5tZACXCSfc+OJkR/6Vvi7dpvIAh9y6FTEwMDY0NCByZXZpZXctYXJiaXRyYXJ5LXJvdXRpbmcubWQAsIGPaeaBdN6BlpLWi7btxpJU1JExMDA2NDQgcmV2aWV3LWJhbGFuY2VkLXRyYW5zZm9ybS5tZABaFz9OYu5Owe45ql1+791jplLkETEwMDY0NCByZXZpZXctYnVsay1yZXNhbXBsaW5nLm1kAJcxoD/behzsrdq3N1Rb76I4y5rTMTAwNjQ0IHJldmlldy1jbG9zaW5nLWhhbmRvZmYubWQAv9tYt2/Dj7RoroJA1dKY9pMx9A4xMDA2NDQgcmV2aWV3LWNvbXBhY3QtY29udHJvbHMubWQAeLUMP9HT9FwoVMyipPJDFif/e+UxMDA2NDQgcmV2aWV3LXBoYXNlLWNlbGwtaW52ZXJzZS5tZAA5XquO4dWOhDU/VU3P6Uc7WRPdpTEwMDY0NCByZXZpZXctcmV1c2FibGUtYmFuZGVkLWludmVyc2UubWQA3nqRY2nMNnN/2WubAXLi70U8awMxMDA2NDQgcmV2aWV3LXNlbWFudGljLWNoaWxkLWd1YXJkLm1kAKEqbcoXWL7jhVg0wMYLF+HQDscYMTAwNjQ0IHJldmlldy13aG9sZS1jb21wbGV4LXRyYW5zZmVyLm1kAB0u4xK8ZhjH6yR5ridUTt9k4xwgMTAwNjQ0IHdob2xlLWNvbXBsZXgtY29uY2F0ZW5hdGlvbi5tZABdWvZ5atPLE2faGq5Svs+k9YC/gDEwMDY0NCB3aG9sZS1jb21wbGV4LXByZWZpeC1hbmQtd3JhcHBlci1xdWFsaWZpY2F0aW9uLm1kALJwK2/AYkqydrJ749sqMtMOJkeN", + "type": "tree" + }, + "bbc1d397805ff7b202ad4302244e579d784b7d09": { + "base64": "MTAwNjQ0IGFubm91bmNlbWVudC5tZABGtKByMzYo3MexCGHo4qffOG4zbDEwMDY0NCBhdWRpdC5tZABwwRtQpKMRPLy3fZn0Gt9OQXg7GTEwMDY0NCBjaS12ZXJpZmljYXRpb24ubWQANsfwgvCuvY7zidmcJgSlRqWktb8xMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy1hdWRpdC5tZAAGFSWr/P5uapTn5wT2Ibyhjrz3JzEwMDY0NCBwYWNrZWQtbW92ZW1lbnQtYXVkaXQubWQAUqC84LokBGs/3slCrc8ZmOnQ72UxMDA2NDQgcGFpcmVkLWN1YmUubWQAj6UN5qqM5pAM0wFiTKXGjYUlmYUxMDA2NDQgcGFydGlhbC1nYXVnZS5tZADdXGcKUSjIWTytOVu9fi4DzirFYzEwMDY0NCBwcmUtY29tbXVuaXR5LXJlc2VhcmNoLXJlcHJvZHVjaWJpbGl0eS5tZAA4JSq0dv7t9QEJ90XPMwoZACm5djEwMDY0NCByZWxlYXNlLW5vdGVzLm1kANwgpt32GF8cnqY5d26XNM1K9wrDNDAwMDAgcmVsZWFzZXMA8l0N9tnlnBYCyn1Gifoax3yIMcMxMDA2NDQgcmVwcm9kdWNpYmlsaXR5Lm1kAPEul1KhrU2Q3RqAmmVWEaLUkNAaNDAwMDAgcmVzZWFyY2gAwzgJa1zpM8C8F1D2/KUqQhNhPIsxMDA2NDQgc3RvcHBlZC1wcm9kdWN0Lm1kAFvBy8iOTo5T9C2XGObFugo1mIonMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLm1kADhVTh+zaZ5KOniuCoH4NLom3HPt", + "type": "tree" + }, + "bdf14c31d5a6bd2a0e9619d017e231ffae5cf4f6": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAB0bnMAJ6HUpf3Q0ap1PAzcpJWXLTEwMDY0NCBhcml0aG1ldGljLXZlcmlmaWNhdGlvbi5qc29uAIznXC68wk+Jc0LcfAM323cZtqw7MTAwNjQ0IGFyaXRobWV0aWMuanNvbgD/AmNX9gGNNdtgb7dYihJc6U+caTEwMDY0NCBnZW5lcmF0ZV9mcm9udGllcl9jYXNlLnB5ALWeZAmhKz/PCm/BBF24efHnJ/nUMTAwNjQ0IHBpbm5lZDU4LWNlcnRpZmljYXRlLmpzb24AwJW7k600pPKpORaRpLE2hMTpfugxMDA2NDQgcmVmaW5lZDU4LWxlYW4tcmVjZWlwdC5qc29uAPhbUe7Fhve2d83M+FuljAF4vx2DMTAwNjQ0IHZlcmlmeV9yZWZpbmVtZW50LnB5AEo0+UZ047/VOlBvIcXvS87eDn8DMTAwNjQ0IHdlaWdodGVkLWxlYW4taW5wdXQuanNvbgD+h0Naa/e4y4FpMsElZZ9P1/PLkg==", + "type": "tree" + }, + "bf1d641b8c602b583133aa3d4e7ab39281b8b3e4": { + "base64": "MTAwNjQ0IGFubm91bmNlbWVudC5tZABGtKByMzYo3MexCGHo4qffOG4zbDEwMDY0NCBhdWRpdC5tZABwwRtQpKMRPLy3fZn0Gt9OQXg7GTEwMDY0NCBjaS12ZXJpZmljYXRpb24ubWQAfzwBJQQYeRenKLn+hwQ/D8jNAGoxMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy1hdWRpdC5tZAAGFSWr/P5uapTn5wT2Ibyhjrz3JzEwMDY0NCBwYWNrZWQtbW92ZW1lbnQtYXVkaXQubWQAUqC84LokBGs/3slCrc8ZmOnQ72UxMDA2NDQgcGFpcmVkLWN1YmUubWQA8Qwzmy3/lBk2Jnyv0sfHqtfaoksxMDA2NDQgcGFydGlhbC1nYXVnZS5tZADdXGcKUSjIWTytOVu9fi4DzirFYzEwMDY0NCBwcmUtY29tbXVuaXR5LXJlc2VhcmNoLXJlcHJvZHVjaWJpbGl0eS5tZAA4JSq0dv7t9QEJ90XPMwoZACm5djEwMDY0NCByZWxlYXNlLW5vdGVzLm1kANwgpt32GF8cnqY5d26XNM1K9wrDNDAwMDAgcmVsZWFzZXMA8l0N9tnlnBYCyn1Gifoax3yIMcMxMDA2NDQgcmVwcm9kdWNpYmlsaXR5Lm1kAM5iCVSobAtmiIWadCFEH8l6PZJZNDAwMDAgcmVzZWFyY2gAdB8bdeaS2Rqqtp5rq7Z3GkmhjWQxMDA2NDQgc3RvcHBlZC1wcm9kdWN0Lm1kAFvBy8iOTo5T9C2XGObFugo1mIonMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLm1kADhVTh+zaZ5KOniuCoH4NLom3HPt", + "type": "tree" + }, + "bfc2768e51bf56b1301704208daf23a05fca9ced": { + "base64": "MTAwNjQ0IFJFQURNRS5tZACmJbgGnY+wz/EMTN5ThmDXbRdQoDEwMDY0NCByZXBvcnQuanNvbgDKbQAMncPsLHwAvyZf5YjJFt/eXw==", + "type": "tree" + }, + "c089028149b428fc2fd0e767e884cbe79fd70403": { + "base64": "NDAwMDAgY2VydGlmaWNhdGVzADpn6wHic8mcQlRJLeypJy2iVzA0", + "type": "tree" + }, + "c12c21e1fe1cecbc4d3cff5ad8dd515133d21830": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABsGL4FH9Jm8zo6z6Cn/eC/U01NbzEwMDY0NCBfX2luaXRfXy5weQD3pukGYVPjdAF6A/wabG8B0WVbWzEwMDY0NCBjb21wbGV4LnB5AO8a8lUHYzNeYLhCe6EfzNMAJdUH", + "type": "tree" + }, + "c249c402ee8d71c3a564c472534caaf05a70396a": { + "base64": "MTAwNjQ0IEJsb2NrQ29tcG9zaXRpb24uc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBCbG9ja0NvbXBvc2l0aW9uLnN0ZG91dC50eHQAyrjOU7adcXryNiJ25ONB4TxWiSUxMDA2NDQgQ29uY3JldGUxNi5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IENvbmNyZXRlMTYuc3Rkb3V0LnR4dAAqWvISuxo1LjDWskM55yRi8SaJCDEwMDY0NCBEQUdSZWZpbmVtZW50LnN0ZGVyci50eHQA5p3im7LR1kNLiymud1rYwuSMU5ExMDA2NDQgREFHUmVmaW5lbWVudC5zdGRvdXQudHh0AJOALDG3OnsA+RjIX1gOBWKvfhcWMTAwNjQ0IEludGVnZXJHZW5lcmFsaXphdGlvbi5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IEludGVnZXJHZW5lcmFsaXphdGlvbi5zdGRvdXQudHh0ADqbg9KoyOV7YhYhLggO3E5EerdcMTAwNjQ0IEludGVnZXJMYXRlRGl2aXNpb24uc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBJbnRlZ2VyTGF0ZURpdmlzaW9uLnN0ZG91dC50eHQAEgMZRMCgUWIf7ku/Pm1ThYAgQg4xMDA2NDQgT3JkaW5hbFRyYW5zcG9ydC5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IE9yZGluYWxUcmFuc3BvcnQuc3Rkb3V0LnR4dADZZ5bY01ftZMAfQwf7iWHbbJAIcTEwMDY0NCBPdXRlcjQ4RGF0YS5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IE91dGVyNDhEYXRhLnN0ZG91dC50eHQA3MxGycrKDFnsU5p2EAGIxw3C15AxMDA2NDQgT3V0ZXI0OFNjaGVtZS5zdGRlcnIudHh0AOad4puy0dZDS4sprnda2MLkjFORMTAwNjQ0IE91dGVyNDhTY2hlbWUuc3Rkb3V0LnR4dABR6ZuJGCAKXKst32yXzQqGwcQRRDEwMDY0NCBPdXRlckxpZnRpbmcuc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBPdXRlckxpZnRpbmcuc3Rkb3V0LnR4dAC/i3pHjR9FNg3Zyg2Np/2oX+G7xzEwMDY0NCBSb3Nvd3NraUV2ZW4uc3RkZXJyLnR4dADmneKbstHWQ0uLKa53WtjC5IxTkTEwMDY0NCBSb3Nvd3NraUV2ZW4uc3Rkb3V0LnR4dACjptYXvuz09JjjokqY7Ap9ADHLyjEwMDY0NCBSb3Nvd3NraUxlYWY0LnN0ZGVyci50eHQA5p3im7LR1kNLiymud1rYwuSMU5ExMDA2NDQgUm9zb3dza2lMZWFmNC5zdGRvdXQudHh0AFlEHdCqrlJ3HCsjgBxsUG/4JoykMTAwNjQ0IFNlbGVjdGVkRmluYWxBeGlvbUF1ZGl0LnN0ZGVyci50eHQA5p3im7LR1kNLiymud1rYwuSMU5ExMDA2NDQgU2VsZWN0ZWRGaW5hbEF4aW9tQXVkaXQuc3Rkb3V0LnR4dADm20dy0JNyGxmkwhd3JJtLX7SvyjEwMDY0NCBhY3R1YWxfZG93bmxvYWRfcXVhbGlmaWNhdGlvbi5qc29uAOpfnWlwv18LtaLUliFjMtIHnc9PMTAwNjQ0IGFjdHVhbF9yZXByb2R1Y3Rpb24uanNvbgCr832rfDqKY6sCBP1Zv+UDlXP6Gg==", + "type": "tree" + }, + "c30b8a96a81752eae396d77c624fc44d30cc61f9": { + "base64": "MTAwNjQ0IExJQ0VOU0UtUFIzNy50eHQAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgUkVBRE1FLm1kAPsoOMhdc5KNS7DpruVwHuQ0R1JhNDAwMDAgYWdlbnRzANEbQ+D4cZ1LRfJmTZxJl3CmhXj1NDAwMDAgY29kZQAKxVTJg6+FFV2sVL9AcY7NtwSOIzQwMDAwIGZpeHR1cmVzAEV2v5pAlyTdVUbWDqB8KT6VgjnTNDAwMDAgcmVwb3J0cwBS8NQ7Gy47srYNnfPb3DXUaWCdrzQwMDAwIHJ1bnMArJNN0n849lE8zs9cSva6tqEy3N8=", + "type": "tree" + }, + "c338096b5ce933c0bc1750f6fca52a4213613c8b": { + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLW9ic3RydWN0aW9uLm1kAIsV3wCOxOo6W9ay2Br24jQJAsRAMTAwNjQ0IGFmZmluZS12ZWN0b3Itc2NyZWVucy5tZAAT9FRHi1VECMtV/bMdUUFitcSyQTEwMDY0NCBiYXRjaGVkLXJldmlldy5tZADiz9AU4kEMB4vuISUHBbe81FktYjEwMDY0NCBiaXQtY29tcHJlc3Npb24tYXVkaXQubWQAZExlh+Q241d+Eh2rJ7+4F6bpIkkxMDA2NDQgYmxvY2stY2FycnktYXVkaXQubWQA8YJAloy40DFK1qo6f0DfnxVeW0gxMDA2NDQgYmxvY2stY29yZS5tZADuVTFxwl+jN26LNupSfeFkbi7GozEwMDY0NCBibG9jay1sYWJlbC1mZWFzaWJpbGl0eS5tZADlRTOjUDfCqMiWGW7yCo7MTK29PjEwMDY0NCBjYW5jZWxsYXRpb24tYXVkaXQubWQABzwFcks7HM2Ue/FAuqcKaxKL3pwxMDA2NDQgY29kZWQtY2FycnktYXVkaXQubWQADqhiQVpW/aOSzVye9DHi+/A5KFQxMDA2NDQgY29tbXVuaXR5LWF1ZGl0LWFyaXRobWV0aWMuanNvbgB8r9CW/sqSUTelFxfm5Gj9onlGnDEwMDY0NCBjb21tdW5pdHktZmluYWwtYXVkaXQubWQALeREKp6AW2qJ1CskN/3JLC/UzmsxMDA2NDQgY29tbXVuaXR5LWZvbGxvd3VwLWFyaXRobWV0aWMuanNvbgBVkZ9cvvlUndi8ZW7eIwp69g1E2DEwMDY0NCBjb21tdW5pdHktZm9sbG93dXAtaW50ZWdyYXRpb24ubWQAkQg1Gf5wU9eiCfW3lUgEZDzp3dUxMDA2NDQgY29tbXVuaXR5LWZvbGxvd3VwLXJldmlldy5tZACASKE4OeLRSBrDmtkfHv8On4cwyzEwMDY0NCBjb21tdW5pdHktZm9sbG93dXAtdmFsaWRhdGlvbi5qc29uAIXO924QUi+NjVyhSb74O6pWskBlMTAwNjQ0IGNvbW11bml0eS1pbnRlZ3JhdGlvbi12YWxpZGF0aW9uLmpzb24AQP1Wh3sS9e6rN4Qx+K0YduyrdA0xMDA2NDQgY29tbXVuaXR5LWludGVncmF0aW9uLm1kAD+MvLzvtJaFJvhJtSRBiuyfBDCsMTAwNjQ0IGNvbW11bml0eS1wYWlyLWFyaXRobWV0aWMuanNvbgDbiLjl4GnX8EUe69nONGen5dAMbzEwMDY0NCBjb21tdW5pdHktcm91bmQyLWFyaXRobWV0aWMuanNvbgBjeqAZnxZ8xsgxnPxzJ1sIAadAyTEwMDY0NCBjb21tdW5pdHktcm91bmQyLXJldmlldy5tZAAi9AFUVadaf2NOSWFe44/E4U54lTEwMDY0NCBjb21tdW5pdHktcm91bmQyLXR3aXR0ZXIubWQAjsd/1UNxirmqrJnFMmFAERw+OG4xMDA2NDQgY29tbXVuaXR5LXJvdW5kMi12YWxpZGF0aW9uLmpzb24ATqwww33xCXyox7x+MEULRC6GUFExMDA2NDQgY29tbXVuaXR5LXRyYW5zZmVyLXJldmlldy5tZABxXkEVQ0AnEtm+aH/TyV/4y/TnbzEwMDY0NCBjb21wYWN0LWNvbnRyb2wtYXVkaXQubWQABew+YDGPDYE1Tx0lmv+iwbp4tmAxMDA2NDQgY29tcGFjdC1jb250cm9sLXJldmlldy5tZAD2GnRlq5co/6MUSREczxDr7f7HCTEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLXJldmlldy5tZAAnIdU5Tk1TP5adudwXYODbM5MBfzEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLm1kAFHdbhopYIQTJNRTC44/nMEpiekIMTAwNjQ0IGNvbnRyaWJ1dGlvbi1yZXZpZXcubWQAJWAsaoGwuqD5P/QuAX3qSHYj9c4xMDA2NDQgY29udHJpYnV0aW9uLXNuYXBzaG90Lmpzb24AC1Fjx7T9Az01A3zpYE+Q5t3WU54xMDA2NDQgY29udHJpYnV0b3ItYW5ub3VuY2VtZW50cy5tZAD93hy3PDS0KeKWWFlTxQTV4OYqLDEwMDY0NCBjb250cmlidXRvci1zb2NpYWwtc291cmNlcy5qc29uAG0O3yEzfiafxmhJHHU4hWnOBDBBMTAwNjQ0IGNvcmUtbGltaXRzLm1kAAW64FK1wq9YdmrlwkGhXg1OYozDMTAwNjQ0IGNyb3NzLXBvaW50LXNoYXJpbmcubWQALZf2qY6DYczO3qkr8JZtJH4VE3YxMDA2NDQgY3ViZS1jb3JlLWZh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", + "type": "tree" + }, + "c4d4ddcdf2f9b33d8f6d794670252cd1fe42800e": { + "base64": "NDAwMDAgam9pbnQtZHVhbADo+b7yQVWJ+BrwIcXLvT1RHr6XCQ==", + "type": "tree" + }, + "c64d9826d080bac09b589091f525ab9efef6573b": { + "base64": "MTAwNjQ0IGNlcnQucHkAu2h5rc07Kgx4r7pp6gXtFU5LeGsxMDA2NDQgZnJhbWVzLnB5AEUSYGITbVjy1P7c9Un0DNldRWx/MTAwNjQ0IGhpc3QucHkAMPx2GBh4HogZYsurPvywVH4Rc6ExMDA2NDQgcHJvZHVjZXIucHkAENIRD5vyWoV/W3/vdruV+jZ9PqwxMDA2NDQgcnVuLnB5AP5Dj5FlbffcayNteyAAJhKCd2Io", + "type": "tree" + }, + "c8b22bc5c10dba497ac25804e27d9647d818e2ff": { + "base64": "dHJlZSBhMzJhZjRlYzlkMTJmYzg5NTRmZTAyYWYyYTM2NGRlNWQ1OTY1YTg3CnBhcmVudCA2YTk5NzBhNTMwMTE5MTc0NTA3OTA0ZTIzNTkyZmQ1OWVkZTE5YTVkCmF1dGhvciBpY2VreWxpbnggPGljZWt5bGlueEBvdXRsb29rLmNvbT4gMTc5MTUxOTUzMCArMDgwMApjb21taXR0ZXIgaWNla3lsaW54IDxpY2VreWxpbnhAb3V0bG9vay5jb20+IDE3OTE1MTk1MzAgKzA4MDAKClVzZSBwYWlyZWQgY3ViZXMgYW5kIHNoYXJlZCBjb3JlcyBmb3Iga2FwcGEgPSA0LjYwOTE2OWUtNAo=", + "type": "commit" + }, + "cb7c4f54be4a1a94afaa85bcb6bfe0d48506a295": { + "base64": "NDAwMDAgSVNTVUVfVEVNUExBVEUAFtE8M0kBwrwg+WaIjQL7YjZxksoxMDA2NDQgcHVsbF9yZXF1ZXN0X3RlbXBsYXRlLm1kAEiA3qf+WCg/h8ClaKxz1DjeSzSENDAwMDAgd29ya2Zsb3dzAKqZpAOWrEjBfUZYFMbyl/Bx+Vh6", + "type": "tree" + }, + "cc25c0c731b3a003d1ff8af9debac9dd0fec6094": { + "base64": "NDAwMDAgZmlndXJlcwAJ3it1sFZ78yITI9F0iWvRMK61uDEwMDY0NCBtYWluLnRleAALEaP+sUcUJTwcoG7lYaMd0v6GYjEwMDY0NCByZWZlcmVuY2VzLmJpYgC/AcrhJZfyd3GZyO507p9pM6G1bjQwMDAwIHNlY3Rpb25zADcDfqqe6Szarw88KbBoZoyMdH1y", + "type": "tree" + }, + "cc366a4b63922a8ff6633e15af4a5af51b37f97c": { + "base64": "MTAwNjQ0IFJFQURNRS5tZACVpdpE7SbDTTy43sWBiUqHOrWt4zEwMDY0NCBiYy5weQBT4A3il9b2k8GciEJSkmR/WU2sYzEwMDY0NCBmdWxsYmF0Y2hfY2VydC5weQAQO7t9Jxwr/QUgajWqvRSYbq+cDjEwMDY0NCBmdWxsYmF0Y2hfaGlzdC5weQBbBO1o7J+zxmvdlgJdFO09yyoUWDEwMDY0NCBsYWJlbHMucHkA7HDtE6WYUcFiAmZd009mf95UcI0xMDA2NDQgcm9sZXMucHkA0NBZTi3uc49kQB+s4AB1AcnMtLkxMDA2NDQgc2lkZS5weQAqYlcyuxAjiustDyVtq9eUsnYmKzEwMDY0NCBzb3VyY2VmcmFtZV9sYWJlbHMucHkArmpoAUrYIqCacp/Ab4miN1cwpl4xMDA2NDQgc291cmNlZnJhbWVfc2ltLnB5AMpoTsm63Z9DBdWE9HhvYELTW4fjMTAwNjQ0IHNvdXJjZWZyYW1lX3RyYWNlLnB5AJZbkQHGgWeiRbF7vfSfiEsvYtXb", + "type": "tree" + }, + "cceb8383283dda97a7da86eb22f5e31167bfa192": { + "base64": "MTAwNjQ0IG1hcHBlZC1wcm92aWRlci1sZW1tYS5tZABVBhEWdJ+LfyKHTawm226fKj1row==", + "type": "tree" + }, + "cdfc6fac5cbfeb92c08dcde7468eb60f31adc604": { + "base64": "MTAwNjQ0IExJQ0VOU0UAV7yIoVoO6CZsJZsmZ+ZGCNP34pIxMDA2NDQgTk9USUNFAGXyf+zmQlgwtSotxpGAOtVvY4VuMTAwNjQ0IFNPVVJDRS5qc29uAJOgSrgZvqHy5eV4GfD2wpMCps09MTAwNjQ0IHR3by1zdGFnZS1jb3JuZXJzLTQ3LTQ1LW5vdGUudGV4AB+Lz/7aZwMa9O23Be44Eug6+56E", + "type": "tree" + }, + "cf60442983c153a3a0f5272ea4713f99eba13c86": { + "base64": "dHJlZSBkMTkyODZhNDlmMWMyNTE4NjY1MTZhNTViMzljNmQ4ZDA0Y2UyNjI4CnBhcmVudCA5NDhjZTE1MTBkZjc1MGY0YzE4Yjk2YmRhZWY0MzZhODZmOGJmODM0CmF1dGhvciBpY2VreWxpbnggPGljZWt5bGlueEBvdXRsb29rLmNvbT4gMTc5MTUwNTUxMyArMDgwMApjb21taXR0ZXIgaWNla3lsaW54IDxpY2VreWxpbnhAb3V0bG9vay5jb20+IDE3OTE1MDU1MTMgKzA4MDAKClVzZSBwYXJ0aWFsIHNvdXJjZSBnYXVnZXMgZm9yIGthcHBhID0gOS4yNjMzNmUtNQo=", + "type": "commit" + }, + "cfef354523986174e8e1467fb7f71bd48384a2cd": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAA+dT24Mcbfm9+4iFBC8qpGTODTVjEwMDY0NCBfX2luaXRfXy5weQC6mcElGdFLJ5dftJ/HE9nxCbZTXDEwMDY0NCBiaW5hcnkucHkAaaOY6a/jsxGPMJlqujbgtzPy9fcxMDA2NDQgYmluYXJ5X2lvLmhwcABAWPDwbvBmXYrJeGgpiIEhBIK1FDEwMDY0NCBncmFwaC5weQDe1EYrnxdno7yFJW//+KcYVTOa/jEwMDY0NCBtYXRjaF9leHBvcnRlZF9kYWcuY3BwAOoSRK1EYWm2sSmRDeMWltedLhNfMTAwNjQ0IG1hdGNoX3Bvc2l0aXZlX2RhZy5jcHAAr1pvtDL1kxi7nsCLwoF+aDN6SNkxMDA2NDQgcGFpcmVkLnB5ALh5KTl3xHBf3EeQXNbFiQYWHaPnMTAwNjQ0IHBvc2l0aXZlLnB5AF0Di0JQo+56BKAFc+9manIMs5zRMTAwNjQ0IHNoYXJlZC5weQCi8BkHBNuDvY70jkbnI8SbklgE/g==", + "type": "tree" + }, + "d11b43e0f8719d4b45f2664d9c499770a68578f5": { + "base64": "NDAwMDAgZ2VvbWV0cnkAZZaMjor9x7UU3H6Lh0/hesRXLVU0MDAwMCBncmFwaADn//uYgX28L8OwLUzPYlvCmR0RDQ==", + "type": "tree" + }, + "d15b5f90de98c77856e328a7466d34f02058083d": { + "base64": "MTAwNjQ0IHBhaXJlZC1uZXR3b3JrLmpzb24ALHeNLWRgvn5J3BVkJjlLqYa/SaE=", + "type": "tree" + }, + "d542cf061617175d50666dfa37d071f0eeacac1c": { + "base64": "MTAwNjQ0IGNvbXBsZXgtY2lyY3VpdC5tZACKVkAoI4PJS2o5Zrq0zpAGSQp/Iw==", + "type": "tree" + }, + "d74cf73bab46a6b9c3f4030a5f5f4ad5801290a9": { + "base64": "MTAwNjQ0IFJFQURNRS5tZADONWK88VIvt8pn8AU8URBp/QcJWDEwMDY0NCBTT1VSQ0UuanNvbgALqSFQc7FqphME+4FW+7Ts4NvQ+TEwMDY0NCBtYXRjaGluZy1hcmNzLmpzb24A6SOCEKv7cSw+paF9VFVAAEat0cc=", + "type": "tree" + }, + "d83ecda47464d791a49e5f0df0b91cf915523785": { + "base64": "MTAwNjQ0IEJBTkstUFJPT0YubWQAn3Nsdfh4JQ1alB7pUT/TCv0taSMxMDA2NDQgQkFTRUxJTkUuanNvbgDY2mPho4zejoQ8I6LYGtQ645dQ0DEwMDY0NCBGSUxFUy5qc29uAMcnfsgZTIGkMhXz7MyU33aHfwDcMTAwNjQ0IEZSQU1FLURJU0NPVkVSWS5tZAArtXWeo69WD0Y6gUq7V29U0v8L9jEwMDY0NCBMSUNFTlNFACYe656fiytLDRGTZt2pnG/X01xkMTAwNjQ0IE5PVElDRQCIU7Gx1lOq56H6qcNO9iPlsmgNfDEwMDY0NCBQUk9PRi5tZADp9moGh9VguTSLPZJONLKWhYgn1zEwMDY0NCBSRUFETUUubWQA/e/MZiRhJHEdn5INdt6YYWgsP7AxMDA2NDQgUkVTRUFSQ0gtSURFQVMubWQAEwofcjsBKS39HMxIB7vklCUAbEAxMDA2NDQgUkVTRUFSQ0gtUkVWSUVXLm1kAFzOF0z5WhcNJt3tKwT/NH26e3leMTAwNjQ0IFNPVVJDRS5qc29uAF0lxCOMwAQXyfXJaf4XJI/+o/mYMTAwNjQ0IFVQU1RSRUFNLU5PVElDRS5tZACH3Jk8sI5POtzfoahUXmXagn0xKjEwMDY0NCBVUFNUUkVBTS1QUk9PRi5tZAAaxTlH/eKvBiPUXG4RA0mAAMesZzQwMDAwIGFyaXRobWV0aWMA+XkFWF1+2vd83WwZqJ5Ij1g4nRoxMDA2NDQgYmFzZWxpbmUtcHIxODEucGFydDAxAKiaDEWLYX8iryJbdprrcmBcVP7yMTAwNjQ0IGJhc2VsaW5lLXByMTgxLnBhcnQwMgBOkEdeSPnEgnegbKF7SpWz/JcdajEwMDY0NCBiYXNlbGluZS1wcjE4MS5wYXJ0MDMALxA8LOnwozWphusjGuqAhq38VsU0MDAwMCBiaXQADAxkz9jX4PRWqQXHtF0B+OL166AxMDA2NDQgY2VydGlmaWNhdGUuanNvbgDNHuzKY/r2CNYF7Ox+MD/H0r2StzQwMDAwIGNvbXBsZXgARQshy2575+hVVs7bb3091oNSOPw0MDAwMCByZWZlcmVuY2VzAFy2AeXkYre9Z6K78QWdBBMZoTyPNDAwMDAgc2VsZWN0ZWQAoWoXgmX8YdRmaZkbXVONnfBJQSkxMDA2NDQgdmVyaWZ5LnB5AN/uDXqBqavQ6vMyCaolFEBjtddaMTAwNjQ0IHZlcmlmeV9pbm5lci5weQD381u6o7AsmJ1QXm6cqe4CCp3RLQ==", + "type": "tree" + }, + "d8d83475b9342e07dbc55baa02a3000693c20992": { + "base64": "MTAwNjQ0IGZpeGVkMjUtY29waWVkLWNydC1hdWRpdC5qc29uAPL0geVv1Gzvb+9K/p9iwRvTGrPuMTAwNjQ0IGZpeGVkMjUtY29waWVkLWNydC1hdWRpdC50eHQA+737O5ejqrBQlFCvynbI8l0gC/QxMDA2NDQgZml4ZWQyNS1jb3BpZWQtY3J0LXBvcnRhYmxlLXJlcGxheS5qc29uAJWWqFNfpGHmMEmE0/dNK6pt+NdiMTAwNjQ0IGZpeGVkMjVfY29waWVkX2NydF9hdWRpdC5weQDa/g6h262rhFKxESLueDl10DSk+w==", + "type": "tree" + }, + "da49d3d09cddaa8b310f15e65063d4da763cb9df": { + "base64": "MTAwNjQ0IGNvbW11bml0eS1wcjQ2LWNlcnRpZmljYXRlLmpzb24Atcu2eOvbFNiAruyEzsu6gmBFkeAxMDA2NDQgY29tbXVuaXR5LXByNDgtY2VydGlmaWNhdGUuanNvbgD6SynAbfjjF8QHTbS4OFYi6eJyYTQwMDAwIG1hdGNoaW5nACrnmgbuH16Ggh5m07GGE36eJN88MTAwNjQ0IG91dGVyNDguanNvbgDLcfsrOrLBwgM3CBUagzvQjlruTg==", + "type": "tree" + }, + "da9a954e0997b603ab9b7708d8eb282e03fdb581": { + "base64": "MTAwNjQ0IGNvbXBsZXgtc291cmNlLWZyYW1lcy5wZGYAaLDc0hktPDBVtttoq0b/fP4lw/AxMDA2NDQgY29waWVkLWNlbnRyZXMucGRmAMKQvFQxOC5q+ECJXmiS+6HcFlx6MTAwNjQ0IGRhdGEtZWRnZS1iYXRjaGluZy5wZGYAy5QmhyHMcf5C61THa0P/9WZJLTcxMDA2NDQgZmluZS1maWVsZC1sZW1tYS5wZGYA/1vWIgFhEGlP95qig+JbUpU9iDIxMDA2NDQgZmxhZy1iYXNpcy5wZGYAObEoneK+3BOeu4rf2XgcqdvJtaUxMDA2NDQgcGFydGlhbC1zd2FwLWJhdGNoaW5nLnBkZgCgPzDEUaK69Zpp+NWzDRJof5/9/DEwMDY0NCByb3VuZDMtY29tYmluYXRpb24ucGRmAAcG+dEVRoypMUxHUDsZA0a+Z6DJMTAwNjQ0IHNlZ21lbnRlZC1pbnZlcnNlLnBkZgBlouF3d4VHxAKVcK7gUjfR5p3PPTEwMDY0NCBzdGFjay1ub3Rlcy5wZGYAgn8H5rW+Y9kD+PW+zBpXz5k1XbA=", + "type": "tree" + }, + "db1289b7df20e1f4207136a4743b9c35d306ba1e": { + "base64": "MTAwNjQ0IExJQ0VOU0UADiWdQsmWdC6ePLoUxncSmywbYxExMDA2NDQgTk9USUNFAFRGNPXzABxQMwQT8i3ABw4HxGc4MTAwNjQ0IFNPVVJDRS5qc29uAPGaoCodQwqzATNyfd7l9mhrSaw3NDAwMDAgY29kZQCWVrtm9DfzHQR+JIXtLTMUuF5ZcTQwMDAwIHJlcG9ydHMAu48CZpdjSVfNdHpywDSi/MRH948=", + "type": "tree" + }, + "db6ae3d101b9958f41ab977b698e66431f604bd7": { + "base64": "MTAwNjQ0IFJvdW5kNS5sZWFuACV3pV+xWKRrt8gttef1NYfFtekbMTAwNjQ0IFJvdW5kNi5sZWFuAFBRT4YCP9HpSN2b+cm+LsEdEuFmMTAwNjQ0IGR1bXAucHkA3MdPCqc4Ce7WobYLakYwlFhk6WQxMDA2NDQgZHVtcDYucHkAVk2YDdRtpwC5zvOS6Cc7svArbMQxMDA2NDQgZ2VuLnB5AAGdoErtRuh6tkFzMDI0FofUlIGNMTAwNjQ0IHJvdW5kNS1oaXN0b2dyYW1zLmpzb24A0E6LcX3aElwBDn0XF/aFMMebA6YxMDA2NDQgcm91bmQ2LWhpc3RvZ3JhbXMuanNvbgDWtYSWTq27rcEqK3m/qdyeqv3L0w==", + "type": "tree" + }, + "db6b1ba32c7a11d176529eb69c5500e37fc766a6": { + "base64": "MTAwNjQ0IGNvbXBsZXgtc291cmNlLWZyYW1lcy50ZXgAZbnpEppcTr4gXAyXH4VZpXGAi5UxMDA2NDQgY29waWVkLWNlbnRyZXMudGV4AM3MggyVyaqYSnA0YKloQhuzcYmgMTAwNjQ0IGRhdGEtZWRnZS1iYXRjaGluZy50ZXgAdskcEMlruwQy9/SZbFc05e7guVYxMDA2NDQgZmluZS1maWVsZC1sZW1tYS50ZXgAMxeJpvFsWu+Ho37t7xR6MUZFC4YxMDA2NDQgZmxhZy1iYXNpcy50ZXgAVkcCHt04HSj7tEztD497z83qpy8xMDA2NDQgcGFydGlhbC1zd2FwLWJhdGNoaW5nLnRleAAxn2RHYykkdgBH9KSdDwcKMJTeNzEwMDY0NCByb3VuZDMtY29tYmluYXRpb24udGV4AHTR+aFmc7srYlgCikJZ338L5ns1MTAwNjQ0IHNlZ21lbnRlZC1pbnZlcnNlLnRleAAJrSFczzh21gT7vqHyXncs1j6HWzEwMDY0NCBzdGFjay1ub3Rlcy50ZXgALHcAngEZEANx2VRlGfn6BuX+gU8=", + "type": "tree" + }, + "dd35f4cd476bee454ea4e45b6f8ed0a5dab6c36c": { + "base64": "MTAwNjQ0IHBhcmFsbGVsLWFubm91bmNlbWVudHMueW1sAKd9xz/kMS60vJ9TIYRZGQhxceVFMTAwNjQ0IHN3YXBuaWwtcGFyYWxsZWwueW1sALdUAu6j6Gge1PGdHhCFo+RJCQjqMTAwNjQ0IHZlcmlmeS55bWwAa9N04cpOt2+p4HV2Bql/qLP4QZk=", + "type": "tree" + }, + "dd62ab28c1c2c04937e83f93b2caa88b1af6edbf": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAAlgmwv7eci0rmioEXbf4TNBxOdcDEwMDY0NCBTT1VSQ0UuanNvbgAxAzTsyNRA/eMp6fafB5jkuvaN+TEwMDY0NCBidWlsZC5weQDI82IHq47eS5vd1KOkTrpRr+3vsjEwMDY0NCBjZXJ0aWZpY2F0ZS5qc29uAMThkLWlFwl8L9hhg449BbJailAgMTAwNjQ0IGNvbXBhcmlzb24tcHI1My5qc29uAB/cMXOxn2fYdPcs2VKWDNGhakyEMTAwNjQ0IGNvbXBhcmlzb24tcHI1NC5qc29uABwGlsaVnUDn2VZ0a8uh/ACURwXzMTAwNjQ0IGV4YWN0LXJlY2VydGlmaWNhdGlvbi5qc29uAP+7tPUGTidlINxbk0r1A5v7765FMTAwNjQ0IGxpbmtzLTIzLnVzZXMAHmNt28FVPyGQ0/Hs80yJEaezZ90xMDA2NDQgbGlua3MtMjUudXNlcwCZdiKinHgcyAgS8P96dXbVmoyUZTEwMDY0NCBwaW5zLmpzb24AyzpcWPep/fjQ51dRQiafsgZQPaY0MDAwMCBwcjUxAGIxHPAj5znobFj3xBSQiei6uv1LMTAwNjQ0IHByb2ZpbGVzLTIzLmpzb24A6+wkKwZKggOh+jsLdzQt4MqrFMoxMDA2NDQgcHJvZmlsZXMtMjUuanNvbgDYOvOM+w4qqyVTl2w/2X1Rim0uLjQwMDAwIHRvb2xzADi7XEraUz5Klghcu1ZDrOjPcQBZMTAwNjQ0IHZhbGlkYXRpb24uanNvbgBtAFkZQP3JeODoeeO+xZotGoKw3jEwMDY0NCB3aXRuZXNzLnB5AFpGqB7aHYHfxPbMJLuQNbIdZ8Cf", + "type": "tree" + }, + "ddaf0fb22794ca63aa9708eb734abc9d467e5ac2": { + "base64": "MTAwNjQ0IFJFQURNRS5tZADudpI/uVmswq1PxXjXnWvk/qdBEzEwMDY0NCBhcml0aG1ldGljLXZlcmlmaWNhdGlvbi5qc29uAGUJP6iJcfnbyouifR0mjVAQi2wuMTAwNjQ0IGFyaXRobWV0aWMuanNvbgDy/iVQynOYeZmUCtFTao5BM/5znDEwMDY0NCBnZW5lcmF0ZV9mcm9udGllcl9jYXNlLnB5ALWeZAmhKz/PCm/BBF24efHnJ/nUMTAwNjQ0IHBpbm5lZDYyLWNlcnRpZmljYXRlLmpzb24A2I0fGP6HT3yHtrkQ2tP0LAaqSb4xMDA2NDQgcmVmaW5lZDYyLWxlYW4tcmVjZWlwdC5qc29uAFdrHPdVTeu+DsfiKoCMnxky0AXcMTAwNjQ0IHZlcmlmeV9yZWZpbmVtZW50LnB5AMK956Y0e3LitsIBs5WizRRSs82PMTAwNjQ0IHdlaWdodGVkLWxlYW4taW5wdXQuanNvbgB32AwB+JXCscBTCx/5LiVbOj06RA==", + "type": "tree" + }, + "de25be01e000d60f4ccedb8eb85e3cf22fe7b7f0": { + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAC99Xxj8ak1hM1H++kbDd0IL84JQNDAwMDAgYWRkaXRpdmUtY3ljbGljLW5vLWNvbm5lY3Rvci12YWxpZGF0aW9uADguSsvLIiKZTZXVqsMlbnSU9nfmNDAwMDAgYWRkaXRpdmUtY3ljbGljLW5vLWNvbm5lY3RvcgAoyIqVTDbOGDbCIAOpEocmLevoHTQwMDAwIGFnZW50LTA3LXZlcmlmZW5nLXNlZWQ4OACNhWSWG4g7b86j3+sA1WqYZ69paTQwMDAwIGFyY2hpdGVjdHVyZS1uaW5lAHjMbu2HSOH06pwiORWV2rg7VRwRNDAwMDAgYXN5bmMtaW52ZW50b3J5LXJlY29uY2lsaWF0aW9uAA4r1lscrmfcPlFDdfgGj5eO1xiHNDAwMDAgYXVkaXQtZnJvbnRpZXI4OTAtZW5kcG9pbnQtc2VlZDczAEzG1gyrAub/jP22jPwaRzKhehjUNDAwMDAgYXVkaXQta2FwcGEtZmxvb3Itc2VlZDY3AEC0gp/sOrdB7ylY03RsU6qTbxtHNDAwMDAgYmluYXJ5LWNvbm5lY3Rvci13YWxrAKXVyKwfk7pnry6HI8Pvcl9k1m0BNDAwMDAgYmluYXJ5LXJlc2lkdWFsLWV4aGF1c3RpdmUAyw4XvcctooQBqsF0s6Ti1/TdNoE0MDAwMCBiaXQtY29tcHJlc3Npb24tcHJvdmVuYW5jZQA2eLWXJJCkmMzP5B0H4zubhY/cZTQwMDAwIGJpdC1lbGltLTE0NABwz6XM0oQXjCqoQvLCU82/CifRAjQwMDAwIGJpdC1yZXVzZS0xNDcAiSS9SsdWxxdjnR4p5//XLCquyXw0MDAwMCBiaXQtdGhyZWUtcmVnaXN0ZXItbG93ZXItYm91bmQAUzjX8YsffVtuQ/uuO0csOFbOXM40MDAwMCBiaXQ1ODktZnJhbWUtb3B0aW11bQApoNpYEbeWsv16d2yx4591+zPEgTQwMDAwIGJpdDU4OS13aWR0aC1wYWNraW5nAL7KgAkcRvlryV3iyQiBUb3PQdjlNDAwMDAgY2VudHJhbC1mYWN0b3ItcGFja2VkAG9Sn0kc94+XaBAUXLLrc57yUd3BNDAwMDAgY2stcG93ZXItZm9yZXN0LWJvdW5kAKGTR+qGXcO6LgcBWFJB25NCsJ/VNDAwMDAgY2stc2lnbi1ub3JtYWxpemF0aW9uLXNlZWQyMgC79x4o+JqvszS7pm+vy1wdECDj6jQwMDAwIGNsaWZmb3JkLXN0YXRlLXBlcmZvcm1hbmNlABzAKDdoGghWucGCptmfC6bWD703NDAwMDAgY2xpZmZvcmQtc3RhdGUtcmV1c2UAxtmVvIBcLfCE7jbt5sPMfORb1pw0MDAwMCBjbGltYmVkLTQ4ACEOeghXybpBg1EbcvizzLzl4PL2NDAwMDAgY29tbXVuaXR5LWJhdGNoMTA0Ny1hdWRpdABFrsgCVPSK41py5dUtinJYPf63bzQwMDAwIGNvbW11bml0eS1iYXRjaDEwOTktYXVkaXQA4jzrGo+tSAF9zzXVx0ntSYGEEnc0MDAwMCBjb21tdW5pdHktYmF0Y2g5MzItYXVkaXQAkiBpHEPc28fv7kOBiKUEMkzDgtI0MDAwMCBjb21tdW5pdHktYmF0Y2g5NTItYXVkaXQAyWjJO8FgyHBtbDEXKjKwChhQ7vw0MDAwMCBjb21tdW5pdHktYmF0Y2g5NzAtYXVkaXQAF3oKAEVGf1r313pEHuSdTU0mZiU0MDAwMCBjb21tdW5pdHktY2lyY3VpdHM2ODEtYXVkaXQAQv7/ZwXuPpd3GN9eIPqc47xezeU0MDAwMCBjb21tdW5pdHktY29sZDYxNy1hdWRpdACHxyvfY7FBtSM+4/tK5cxYJtQcDjQwMDAwIGNvbW11bml0eS1mYW1pbHk1MzMtYXVkaXQAXOp2hKEuVE9MGrDTvSrzbuv4edk0MDAwMCBjb21tdW5pdHktZmFtaWx5NTg4LWF1ZGl0AFd9/U0UlLBPpx4DWi75l0pKB4/UNDAwMDAgY29tbXVuaXR5LWZvcm1hbC0yMDI2MTAxMi1hdWRpdAB3RZpzNE+pQa+ZbhArw29jbfbOjTQwMDAwIGNvbW11bml0eS1mcm9udGllcjEwNDItYXVkaXQA+6vYwSUtksEhckzw6h3ml5qz4Ng0MDAwMCBjb21tdW5pdHktZnJvbnRpZXIxMDk0LWF1ZGl0ABPZVo9OLXQWzMh7r7WzaKJ6DeMjNDAwMDAgY29tbXVuaXR5LWZyb250aWVyNzQxLWF1ZGl0ANWAw5/8fsHcDOm63CqL+XWfBEZ+NDAwMDAgY29tbXVuaXR5LWZyb250aWVyNzk5LWF1ZGl0AD2Mm7YkjjwlKst/8Z5E8MJE7p2UNDAwMDAgY29tbXVuaXR5LWZyb250aWVyODkwLWF1ZGl0AJrBjvYiAj1aQnFsn4jHFm0t8FgdNDAwMDAgY29tbXVuaXR5LWZyb250aWVyOTQyLWF1ZGl0ADz5GrhhWGUpXdPOz+ZMLDm1uBUcNDAwMDAgY29tbXVuaXR5LWhpc3RvcmljYWwtZml2ZS1hdWRpdAB8PeI4j93mOtmkgny7+YrCjm/ObDQwMDAwIGNvbW11bml0eS1oeXBlcnBsYW5lNTk5LWF1ZGl0AFx0YadmqQSvI69eSvJqU8M1gOisNDAwMDAgY29tbXVuaXR5LWs0OTItYXVkaXQAYkZmuQMrtLpGQf3FHLit1Hh/v4M0MDAwMCBjb21tdW5pdHktbm90ZXMtMjAyNjEwMTEtYXVkaXQAWk/oxijkUx6P9PuEqfRjfhFKi3Q0MDAwMCBjb21tdW5pdHktcHIyNzktYXVkaXQAQtRwp/VP37vksZaTl9sGiherM6g0MDAwMCBjb21tdW5pdHktcHI1MzEtYXVkaXQA5GKYXYygdZF6x0Ih3tYJtJKNLic0MDAwMCBjb21tdW5pdHktcXVldWUtMjAyNjEwMTMAYyyMYTXrYXqp+HQrnx04M3xOSyY0MDAwMCBjb21tdW5pdHktcmVjb25jaWxpYXRpb24tbmV4dDEwMC1hdWRpdACH/J6QtQT54Yo2mhwG/36ojfQV/TQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbi10aGlyZDEwMC1hdWRpdAAVYrxOdBgqx9mw8V/zVoHD4Nv3cjQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbjkyLWF1ZGl0AKMEFyrxpW9RmpkQh34Z+aSgvqpvNDAwMDAgY29tbXVuaXR5LXJvdW5kOC1hdWRpdABfYZ3xmnI11GvPCVjhr5X1psSwETQwMDAwIGNvbW11bml0eS1yb3VuZDktYXVkaXQABMox17ioB8um808tu3Mqr00WV3k0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtYjMAz/3xdExrT8aQzlKE9e6SmT2GEGQ0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtY29uc29saWRhdGVkNjE4AP0AWA4g9GwGsCK+o/iEPUbp0zeJNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWUxAPx0EHSTC1CXGZZ3Dd4Jg+LJWrSLNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWY2ADKKgxTF3G57P1GRxGX0SaEL+UWONDAwMDAgY29tcGxleC01NzEtY29sZDE0LWoxALkI5lkoGfg4XfXcZRjssqTBgiFUNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWpwOABhX4A170u+NHKrrHrwfgnvqmWBVjQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1rNDkyLXJlcGFja2VkNjI0AP2buVnbdWg5Nv4rC7H4Y+GbEw1GNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWs0OTItcmVwYWNraW5nLWF1ZGl0ADg7Lu24No0pE1LfvCrAzAKzvKCMNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWs0OTIAj1kMV27qcynND24QjqMdoR5jpzk0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtazQ5MmIAwtp4i0kpsr7jqLTSf4a9+O9UEVI0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtazQ5MmMAcBy/6MOj3F71C0m5bN6IluKkFsc0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtcjEAnjq2duHDAEwGT4dNOvkdun3RBOY0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtcmVwYWNraW5nLWF1ZGl0AK0J/eph8/1pXBv2iYA1Y9TL8UJpNDAwMDAgY29tcGxleC01NzEtY29sZDE0AFUCJu5piidvyUPX+HOwvLlSQq4xNDAwMDAgY29tcGxleC01NzEtZnJlZTRmAEK9xKx/yxOQ9jJwTlxXbyy1KdLwNDAwMDAgY29tcGxleC01NzEtZnJlZTRmYwDn4lZhNBV6cqmFJ8mCr86ITu4hGDQwMDAwIGNvbXBsZXgtNTcxLWZyZWU0ZmM4AK+Y+SPqgOf8Ognc9qYDIGBXw3UHNDAwMDAgY29tcGxleC01NzEtaHBlNDYtdmFsaWRhdGlvbgBIVHUTEFpNgTYZsFlf/0COJAopaDQwMDAwIGNvbXBsZXgtNTcxLWhwZTQ2AAm0VzsCbCfP32x05me9WUtBxcaoNDAwMDAgY29tcGxleC01NzEtaHBlbTQ2ACai77ik0UA8L2UFeYyaguWrTplRNDAwMDAgY29tcGxleC01NzEtaHBlbTQ2YwA7FgTwwtP1iJLTmW0YoOnyzfCnYjQwMDAwIGNvbXBsZXgtNTcxLWhwZXExABj4IC8n52jl0xYXiPFfGCeqECfPNDAwMDAgY29tcGxleC01NzEtaHBlcTQAr2WgeX9yqTM4UtfUz8YlZC1jQFE0MDAwMCBjb21wbGV4LTU3MS1ocGVxNQBKGsLGOuz2JClkodvVCnhTsYsY7TQwMDAwIGNvbXBsZXgtNTcxLWhwZXE2ABgCDfaQzkJrlJkm3DFmKaOy1Vw+NDAwMDAgY29tcGxleC01NzEtcGxhaW44AN8207wfGVXT3ucyzACx1emszNEgNDAwMDAgY29tcGxleC01NzEtdGhyZWUtcHJvdmlkZXItZjEA4Qc1DjieiZcJBhcxqFtKcG+o8IA0MDAwMCBjb21wbGV4LTU3MS10aHJlZS1wcm92aWRlcgDqYu69xhQi7W3MZjlq5PoYv6+hjTQwMDAwIGNvbXBsZXgtYWxsY29sZC12YWxpZGF0aW9uAB3lU/wo1DPxxbzNJDhm8wMJQAxyNDAwMDAgY29tcGxleC1hbGxjb2xkAA+VtW9LzFThwEoXmtIXshCBr4/TNDAwMDAgY29tcGxleC1jay10YXJnZXQtZm9yZXN0AESyiJhP5Z0ad103a+nhmX2JwysMNDAwMDAgY29tcGxleC1jay10d28tc2lkZWQAAsYPWZJl86iTh51HI0D8S7xvBhQ0MDAwMCBjb21wbGV4LWNvbGQtb3duZXItcmVwYWlyLXZhbGlkYXRpb24AnL4YiWRvQG+ASKLLD4qt13F1znU0MDAwMCBjb21wbGV4LWNvbGQtb3duZXItcmVwYWlyAM4YRfO6ZAMmZXmx6VUyRfq5oqzFNDAwMDAgY29tcGxleC1kZWNvZGVyLWZpZWxkLWV4dGVuc2lvbi1zZWVkNDQA3XlZFaYZGU6CNlctfoABndGiUyQ0MDAwMCBjb21wbGV4LWRlbGl2ZXJ5LW1hcC1vcGVuLWFsbG9jYXRvcgBAvAanQwgaBApTbozVgGA8Ez/2xDQwMDAwIGNvbXBsZXgtZG91YmxlLXJlcGxpY2Etb3duZXJzLXZhbGlkYXRpb24AugD0pkBISnoQChSh+9YQORCkAVk0MDAwMCBjb21wbGV4LWRvdWJsZS1yZXBsaWNhLW93bmVycwAOK2xklhqhghWp3H57BopknkRLXjQwMDAwIGNvbXBsZXgtZG91YmxlY29sZC12YWxpZGF0aW9uALC4AeolwrDCeU6dO8qC1cAf5JRfNDAwMDAgY29tcGxleC1kb3VibGVjb2xkAIfdBblMgucumByG5cMHE+hH+9fdNDAwMDAgY29tcGxleC1keWFkaWMtbG93ZXJpbmcAfW+D1W0jAZDqvyqKWckfZll64d00MDAwMCBjb21wbGV4LWZhY3Rvcnktc2NhbGUtZnJvbnRpZXIyNwB2KIzpXXTa2tO9hgt/k3XbElrE3DQwMDAwIGNvbXBsZXgtZmFjdG9yeTUtcmVzeW50aGVzaXMAGgYzj3qIRVqfB9e6cLaq64J1DLw0MDAwMCBjb21wbGV4LWZyYW1lLXBhaXItZGVjb2RlcnMAkur3rcc0NW7pTOIO3l0zCTclHD00MDAwMCBjb21wbGV4LWluc2VydC1zbGlkZXMtc2VlZDIwALZtquY96Gd2y1pm91Aw3ThX8JXiNDAwMDAgY29tcGxleC1qb2ludC1wcmVmaXgtdmFsaWRhdGlvbgAMVarICT1xlFK5oBNGfDDbD+GtsTQwMDAwIGNvbXBsZXgtam9pbnQtcHJlZml4ALULYt/BgfGjlVdpY8Wlzi7YuCC1NDAwMDAgY29tcGxleC1rNDkyLW93bmVyLXJlcGFpci12YWxpZGF0aW9uAC1bzKPR24FYsowfxFHaVda5wzoWNDAwMDAgY29tcGxleC1rNDkyLW93bmVyLXJlcGFpcgAL7JauaoxYU12rCbxvAfp3VBLZHzQwMDAwIGNvbXBsZXgtbWl4ZWQtMDQ4LXZhbGlkYXRpb24Am73Z0WE7wGZ/r+shYPnd7cGYTcg0MDAwMCBjb21wbGV4LW1peGVkLTA0OAA1btlSL38OcuqXYGWmQWikudrwmzQwMDAwIGNvbXBsZXgtbWl4ZWQtY29sZGtlcm5lbC12YWxpZGF0aW9uABvX5LW9eRlmpPNBICWGmSL+IvnBNDAwMDAgY29tcGxleC1taXhlZC1jb2xka2VybmVsAFHEz5wYSYdY6UqaF6TddHITZ5ExNDAwMDAgY29tcGxleC1tdWx0aWNvbGQAgWzQkVNwG6hqqbcLiBRPPbNp37M0MDAwMCBjb21wbGV4LXBhcml0eS1mcmFtZXMtc2VlZDM1AIAgC0CPTRDG5CsQuvbtb786nNAINDAwMDAgY29tcGxleC1wcjYxNS1jZWlsaW5nLXZhbGlkYXRpb24AspTn/mVVFSiiO+XxmIum3piNfyU0MDAwMCBjb21wbGV4LXByNjE1LWNlaWxpbmcAbUvaLxxkILub/JxI9PI8rr+Kd4E0MDAwMCBjb21wbGV4LXJhbms1LXBpdm90czgtdmFsaWRhdGlvbgC6687A2RF/RGIGQFopXWer6qZFTjQwMDAwIGNvbXBsZXgtcmFuazUtcGl2b3RzOAB629pkrxjy0qM9c99K8mGnPJCBzTQwMDAwIGNvbXBsZXgtcmFuazctZW5kLXBhaXIAnsI/DJ8QZ/pxD+j7zVNQBmvbJBc0MDAwMCBjb21wbGV4LXN3NC1mcmFtZTgtdmFsaWRhdGlvbgCHNHT//H1nF8JtirqDGqKv4UbvMDQwMDAwIGNvbXBsZXgtc3c0LWZyYW1lOABCm1+9JLxtwBxwsGxhHrzk2MGESjQwMDAwIGNvbXBsZXgtc3dhcC1ydW5zLXNlZWQzNwD27HcZ2LlJ99JSa8lKk4SkIpkzXjQwMDAwIGNvbXBsZXgtdDE2LW5ldXRyYWwtZXhjaGFuZ2VzALps2deJI/kKFtPbypv/R/R/GfPNNDAwMDAgY29tcGxleC10MTYtb3duZXItZXhjaGFuZ2VzAALVd1VqaleapSJZVjOmyVNNuruWNDAwMDAgY29tcGxleC10MTYtcmFyZS1wYXR0ZXJuLWV4Y2hhbmdlcwA4IRedNN2P6V6sMDP2bjKVr9BcHTQwMDAwIGNvbXBsZXgtdDE2LXRhcmdldGVkLXJlcGFja2luZwBMnghLyY8Q4OUF2O5OyeliKBWXBzQwMDAwIGNvbXBsZXgtdDIxLW93bmVyLWJvdW5kAEr9bNE+pOWjJvIxfMpFayUUaaGYNDAwMDAgY29tcGxleC10MjEtb3duZXJzLXZhbGlkYXRpb24AQ0SSHw8EN2wEoo2sbA4hJXF+Cw40MDAwMCBjb21wbGV4LXQyMS1vd25lcnMAV4rDbha29aMz72gAS6vVpOYsnY80MDAwMCBjb21wbGV4LXQzNy1pbmRlcGVuZGVudC1zZWVkMzkAGbLOs7Oi+Be/yKcp91GQf4dEnOM0MDAwMCBjb21wbGV4LXQzNy1vd25lcnMAgYSRmoHx7lSJed18CPTwCU+BEHg0MDAwMCBjb21wbGV4LXQzNy12YWxpZGF0aW9uAP0WZCVkMsuBhuM5+b5pqgd9rPJONDAwMDAgY29tcGxleC10cmFjZS1qb2ludC1yZXRpbWluZwAmEIVN3MKW2SgtQctjSB+u1Y5CgDQwMDAwIGNvbXBsZXgtdHJhY2UtcmFuazUtcmVwbGF5ACPrvC58Ds9PpoUfnRL1OBhkP5wiNDAwMDAgY29tcGxleC10cmFjZS1yYW5rNQBFYIe3wSANRqD3bnPrI0p+U/l1HjQwMDAwIGNvbXBsZXgtdTEwLXQzNwAykEe1OzJBbFwbQcRIDpXQpDLTxzQwMDAwIGNvbXBsZXgteDQtY29tcGVuc2F0aW9uLXBhaXJzAOghNppdME9d7ad5b+VJf3ft825lNDAwMDAgY29tcGxleC14NC1keWFkaWMtZm9yZXN0LXNlZWQzMQBjYmu07HXlGEAVIysF+SPxhZYedjQwMDAwIGNvbXBsZXgteDQtZnJhbWUtYm91bmQAnijbdtNZJiie6GfoYoPoNrVZCxQ0MDAwMCBjb21wbGV4LXg0LXNjYWxlZC1wYWlycwDI3N8d0e+SNSBKGPtH7GQk/ouG6TQwMDAwIGNvbXBsZXgteDQtdGFyZ2V0LWZvcmVzdABnBEv3UsN0YTiUITluVx2+9xcV3zQwMDAwIGNvbXBsZXg3NDEtcGFyYWxsZWwtcmVwbGF5AAlqh4dGulMuRBa0KiYNMjGL5igDNDAwMDAgY29tcHV0YXRpb24tZnVzaW9uLW5pbmUA97rsR5Nm9x6yh7hOWV9eny+kw5Q0MDAwMCBjb250ZXh0dWFsLXByb3ZpZGVyLXBvb2xpbmcAT/vDy7S4fLQ5znuhQ2cXJ0e3Nww0MDAwMCBjb29yZGluYXRlZC1mcmFtZXMtYW5kLWVudHJhbmNlLWJhbmtzANg+zaR0ZNeRpJ5fDfC5HPkVUjeFNDAwMDAgY29waWVkLWZpeGVkLXJldmVyc2VkAHGaTnukmf304rM7qw8ESIcepFyENDAwMDAgY29waWVkLWZpeGVkAOgvk7exRPUV1SsAqNTazaJpKbXrNDAwMDAgY29waWVkLXJldmVyc2VkAJOBDqrGRBa0l9aLy49XyC2kn0IlNDAwMDAgY3ViaWMtY3ljbGljLWludmVyc2UtdmFsaWRhdGlvbgCtI2jZJNEyL57EBM7hRwspw2rFwjQwMDAwIGN1YmljLWN5Y2xpYy1pbnZlcnNlAEapIdbjRIIGGu62DSXRMUVFhAZcNDAwMDAgZGF0YS1jb3JuZXItcGVyZm9ybWFuY2UAzR8XKZXNX1Kyv/XesMhB2ftekuY0MDAwMCBkaXJlY3QtZGVsaXZlcnk1MDQtZ2xvYmFsADx3jxS+KaPKOjC0eBkdW2QGzEWRNDAwMDAgZGlyZWN0LXNlbGVjdGVkLXhvcgASjLPMpymJnuQ1Q2Rh5qa+QUUVjTQwMDAwIGRpcmVjdDUwNC1rZXJuZWw5Mi1saWZ0cy12YWxpZGF0aW9uAIJJkJ++8Naxna4dToqDABW7r1GsNDAwMDAgZGlyZWN0NTA0LWtlcm5lbDkyLWxpZnRzANz8I4vLtcUuiXmK6uzaQX+5xuxUNDAwMDAgZGlyZWN0NTA0LWtlcm5lbDkyLXZhbGlkYXRpb24AfqvMN4pACBH1MMjfWkjYCJKdXBU0MDAwMCBkaXJlY3Q1MDQta2VybmVsOTIAhVIbDR+H0hevbSGh3XckspC2c1s0MDAwMCBkaXJ0eS1jdWJpYy1wcmVjaXNpb24tdmFsaWRhdGlvbgDQ46gkjkapyXuzVM/WdKHHr+yiJDQwMDAwIGRpcnR5LWN1YmljLXByZWNpc2lvbgAy0XhKharBOC8XHTFZzB2gtU9itDQwMDAwIGRpcnR5LXByZWZpeC1wcmVjaXNpb24AJcW65/Hw6pdfu7P6FbpVNwJk06A0MDAwMCBkeWFkaWMtY2VudGVyLWFuY2hvci1ib3VuZABIoJYoBhW9MaFg9SXKmffrzzCFMDQwMDAwIGR5YWRpYy1jZW50ZXItdHdvLXNoZWFyAM1hBsCLCqvZhM+APf9sxUyWD6gtNDAwMDAgZHlhZGljLWZyYWN0aW9uYWwtZ3JpZAC7x1WcRnLhce30OrgLgAgMJUzkkTQwMDAwIGR5YWRpYy1ob3JuZXItZGlyZWN0aW9uADn/smqDVdB1GRdTY2Ozo76UQyGPNDAwMDAgZHlhZGljLXF1ZXJ5LXJ1bnMAejeC/udf4fTGtqz/M7FtVxZFbYU0MDAwMCBlOC1iaXQtY2Fycmllci1za2VsZXRvbgAAdFguNYsQgtL28qHQFLY5KE2hpzQwMDAwIGU4LWJpdC1wMTExLXR1bmVkAJ1mu8WGQ5A4sRRV6pxdMqfyP6L+NDAwMDAgZTgtYml0LXAxMTEAYyXYrVkxixiPAIQC+/JqfJnTrSE0MDAwMCBlOC1iaXQtcjQyMADUIPdvnd/t4M0v39aQQE6XCBzoBDQwMDAwIGU4LWNvbXBsZXgtZ2F1Z2Uta2VybmVsANkY7lxO13Y88Q7rPGeOqHPgi/wjNDAwMDAgZTgtZGVjb2Rlci1mbG9vcnMtYW5kLWNvbGQxNC1ub3RlcwDZMO0e21zZFDGQ3vrujkBpd6wWvzQwMDAwIGU4LWVhcmx5LXJlc2V0LWtlcm5lbADwhPQjAfjCDsS1sG/NLJifZnhjVzQwMDAwIGU4LWVhcmx5LXJlc2V0LXJldXNlALs+0cWOF7Lu32g7eJOnlCy9JWJbNDAwMDAgZTgtZmlyc3QtcmFuay1kcm9wALPdJS+vvMG9Rfhpvj3hP+m/sPyiNDAwMDAgZTgtam9pbnQtcmVhZGVyLWJvdW5kAJTBRAPbhg83lZESeHU/8ItbnyRFNDAwMDAgZTgtbGVtbWEtYS1sZWFuAG2LfOPTpEHrCD3RI0WsonjxqvBVNDAwMDAgZTgtbGVtbWEtZy1sZWFuAAGpAKLya3NvCsUjGxV+jqXy07YxNDAwMDAgZTgtcHVuY3R1cmVkMTExLXN0YXIAAaa9pBeNdFbdq9ZFDRMq9NDzUOk0MDAwMCBlOC1yNDgwLWRlYWQtdG90YWxzAF7CE9dXhLnIu8SZ14ws8g3495BVNDAwMDAgZTgtcjQ4MC1uaW5lLXN0YWdlAA69afuSemzsdkxKZENQWVB+3eIWNDAwMDAgZTgtcmFuazUtYm91bmRhcnkA5cx7KtpAhzWpL1QkR36U+8ygSso0MDAwMCBlbmxhcmdlZC1wb3NpdGl2ZS1mcmFtZS1uZXR3b3JrcwDDC4qWqBdS6uOW13xiT8RNMMxh+TQwMDAwIGV4cGVyaW1lbnQtbG9nAPHjDUoh8HdsfoTpfXM5Xmx1YTIvNDAwMDAgZmlsdGVyZWQtc3VwcGxpZXItcmVnaXN0cnkAFhZatj3fn8hO42rnl8/LtpBrhzA0MDAwMCBmaWx0cmF0aW9uLXdhdmVmcm9udABvPDeZhmOBf8B5S3KQzkhe81BiGDQwMDAwIGZpdmUtY3ViZS1jb2RlZC1jb3B5LXNlZWQ0MgC+QCAD6hfCIW5Fxi7X+bdKxfvssTQwMDAwIGZpdmUtcG9ydC1xdWFkcmF0aWMtZGVjb2RlcgBwhcTGHRpPNUiwgvehkt7lQA0GaTQwMDAwIGZpdmUtc3RhZ2UtZ2VuNC1iYW5rcwBw2Fmcx/hAJRpCmBBa2iPdJzCjxzQwMDAwIGZpdmUtc3RhZ2Utc291cmNlNTI3LWJhbmtzALNKvs2HCj1UROzyOZISoyrd23meNDAwMDAgZm9ybWF0LWxpbWl0cy1jb3JyZWN0ZWQAGrLwsbcsDIUGtN/Ap2tPe/m2uUA0MDAwMCBmb3JtYXQtbGltaXRzADh0ocBzr7uMbJ/CONA26G9QROFbNDAwMDAgZm91cmllci1ib3VuZGFyeS1mdXNpb24AEZCpJqCYZPPUMqVTWtdjBwUhK6s0MDAwMCBmcmFtZS1jb21wbGV0aW9uLXNlZWQ0NwAx6DRuUODjMRF0HQnwib2uNllK7zQwMDAwIGZyYW1lLWRvbWFpbi1jZWlsaW5nLXZhbGlkYXRpb24Agsmh3LSqkPnGBIoWRsq5PtdTSsQ0MDAwMCBmcmFtZS1kb21haW4tY2VpbGluZwBTFndhVxLmoK/YzBmUbkkDNV2BmzQwMDAwIGZyYW1lLXBhaXItZW51bWVyYXRpb24tZmFzdC1zZWVkOTMAthqSUz7blXegiXz9SHxBuGL50RA0MDAwMCBmcmFtZS1zYTUwNAD89BtVoiNSTdrFuiMZR0nDmL5UqDQwMDAwIGZyb250aWVyNzQxLXJlY2VpcHQtY292ZXJhZ2UtYXVkaXQAFAWXhybvPfrxa2EeWHVWRD1MSw40MDAwMCBnYXVnZS1yZWN5Y2xpbmcACXZKGgWy7/tcvJHTxE9V3QxvOGs0MDAwMCBnYXVnZTQ0LWJhcmNoLXQxNgDP7oia0NP5IpIOxXZdZHK+JisAvjQwMDAwIGdhdWdlNDQtYmFyY2gA2cX3+J+MUiF12gmboVzpn2vcHEs0MDAwMCBnYXVnZTQ0LWZyYW1lcy14AHOAOHXcZdnFLt+6o0E+WCfbKt0tNDAwMDAgZ2F1Z2U0NC1sZWF2ZXIAwAGP906tWIAWN1mQ2c18Qsl3O9A0MDAwMCBnYXVnZTQ0LWxlYXZlcjgAIiwhkJ7Ry/eGswWP7VKm1LCorT40MDAwMCBnYXVnZTQ0LXNsb3RzLXQxNgAUoC/6bkSYqay7ltUotA70eF2rSDQwMDAwIGdhdWdlNDQtc2xvdHMAjRcDON5wCO/x71dp19DePJ7fKqo0MDAwMCBnYXVzc2lhbi1wYXJpdHktc3ludGhlc2lzAOz7zPngqaIMYZ/w88Vr9oegaSSbNDAwMDAgZ2F1c3NpYW4tcGFyaXR5AJ/Kg+iTJU/aADaXicIZhtyHa03sNDAwMDAgZ2VvbWV0cnktY2lyY3VpdC1kaXNjb3ZlcnkApYloEEg9z5RMyMteoms92h8Ry0k0MDAwMCBncmFkZWQtYm94LWNvbnZvbHV0aW9uLXZhbGlkYXRpb24AbU8/fXNeDPq6WugLR/7SfC7z8+g0MDAwMCBncmFkZWQtYm94LWNvbnZvbHV0aW9uABRTSIiW7+mx+gYmfzd7FeD+ZKxpNDAwMDAgZ3JhbS1wcmVmaXgtcGVyZm9ybWFuY2UAR2odVy6Kfla7WW5xh1NDzVA7Io40MDAwMCBncm91cGVkLWRpcnR5LWN5Y2xpYy12YWxpZGF0aW9uALv9x+1H0EtbEXgaD8Kp42CVqwC6NDAwMDAgZ3JvdXBlZC1kaXJ0eS1jeWNsaWMAfmWlOSA3cS8NVeIG0y5hkYXVPcQ0MDAwMCBnemlwLWNvbnRhaW5lci1yZXByb2R1Y2liaWxpdHkAGhnGofU2Cmno1zsWoIX13Amm90k0MDAwMCBoZXRlcm9nZW5lb3VzLW93bmVyLWFzc2VtYmx5AOjBQr/WDYg48m2HllNvlFK5FRVANDAwMDAgaHlicmlkLWNsZWFuLWRlc2lnbgAbzj9vcwXyWHYjUDAYm4vkpz7iWjQwMDAwIGh5cGVyY3ViZS1kZWNvZGVyLXBhcml0eQDNT21k8dbcWQfM6MY6zlUt2TzmDDQwMDAwIGh5cGVycGxhbmUtZW5kLWxlYW4AY02ddugCbyTpNz5rHaKpdukkQQQ0MDAwMCBpZGxlLWF4aXMtaG9zdGluZwDiF2tXiIWxccUENSphMcgpXIOIpjQwMDAwIGpvaW50LWR1YWwAI6AH0LLsW+gKCkISrZ9oU4F966s0MDAwMCBqb2ludC1mcmFtZS1tb2R1bGFyLXNjcmVlbgDHKDKfsG5Tf8VmaQhzXpC0nSXvezQwMDAwIGpvaW50LXByZWZpeC1rZXJuZWwtcGFja2luZy12YWxpZGF0aW9uAK/F8mq4kbjxZrD8j3bg9dwNKYZvNDAwMDAgam9pbnQtcHJlZml4LWtlcm5lbC1wYWNraW5nAD6zZNnLQCn/b2+uMF9PSnwqWs3JNDAwMDAganA4LWNsZWFuLXdvcmsAKbR+aBSdkh3Qm2ViYKsM658wFS80MDAwMCBqcDgtZ3JpZC1ib3VuZGVkLXN5bnRoZXNpcwDH8QoOucoVLIjtv2qZCWEzpFs3iTQwMDAwIGs4LXJhbms3LWNvbXBvc2l0aW9uAA1RIIx39EW1t9tsuspCg4282bK+NDAwMDAga2FwcGEtbmluZQBskJftn3YXr6z7rElaJ3WnEQEVmTQwMDAwIGtlcm5lbC1mcmFtZS1jb2FsZXNjaW5nLXZhbGlkYXRpb24AYVVUnqC+CBuX0HG0+mmIO0T0bRk0MDAwMCBrZXJuZWwtZnJhbWUtY29hbGVzY2luZwBSiqHw1cezVSaSKLM1lJducEmYMjQwMDAwIGtlcm5lbDkyLWZyYW1lLWNvbXBvc2l0aW9uAG75vPl43skPl9FCsft7yzUl9Jq4NDAwMDAgbGFyZ2VyLWdhaW4AFY6AuhxEybyfgfe1HJGktTpYRnE0MDAwMCBsYXllci1lbmQtY29udHJvbHMtcGFyYWxsZWwAAlen1rX/ndTYEl26yrQ8STMttMw0MDAwMCBsZWFuLWNvbXBsZXRlLWJhbmstZW5kcG9pbnQAiIC87EH4MCgVeG4m6n4OlKi88n80MDAwMCBsZWFuLWN1cnJlbnQtcjQyMC1ib3VuZGFyeS1pbnRlcmZhY2VzAOhiPO0xMaE7KbPqVqQ2kk/Jj0CRNDAwMDAgbGVhbi1jdXJyZW50NTg4LW5hdGl2ZS1tb21lbnQAp3vhDQ1s7HLVCj8OK8YQ226G9ao0MDAwMCBsZWFuLWRpcnR5LWVjaG8tYnVkZ2V0AHhTmAe2aa63wJ2A7lYMzdWH1Wg9NDAwMDAgbGVhbi1ub25saW5lYXItY29tbXV0YXRvcgAO7XccpdmmbN78banV+woa0gVFHTQwMDAwIGxlYW4tc2VxdWVudGlhbC1iYW5rLWJpbmRpbmdzAIkkEdf6ibMy99RXqM9KgK99zi2tNDAwMDAgbGVhdmVyLWNlbGwtYXVkaXQtc2VlZDY1AA/XmCyCFN+JUrLdWW5lkuVy36N6NDAwMDAgbGVkZ2VyLWRlY2lzaW9uLWJpbmRpbmcA8SmRYWiI2kkh3LfXOknjj0QJjNU0MDAwMCBsZWVjaC1sYXR0aWNlAPkP10VN+THk3djPmuGu7O9B6rFNNDAwMDAgbWFjaGluZS10cmFuc2Zlci12ZXJpZmljYXRpb24AK7FnnU/477t/3CJcA4hhQQ4qSGw0MDAwMCBtYXRyaXgtZXhwb25lbnQtc3ludGhlc2lzAKfDCxRiuG7mr383KzIkuRbMLPr+NDAwMDAgbWVjaGFuaXNtLXByZXAAiSwXCXZM2wxgijwXD0JaShUhs8w0MDAwMCBtaXhlZC1wcmVmaXgtZm91cndheS12YWxpZGF0aW9uAEJhwLHJ0+Jl8vzgqnTefFNRZj9jNDAwMDAgbWl4ZWQtcHJlZml4LWZvdXJ3YXkAKzFkf27emC/SD81ZL4QFD2XDhFg0MDAwMCBtdWx0aWNvbGQtd2lkdGg3LXZhbGlkYXRpb24AlrfhddEXRr17t/Hj8KE2DWqJzwM0MDAwMCBtdWx0aWNvbGQtd2lkdGg3AK9NvptQh8exC8BX+qr24m6vjfz3NDAwMDAgbmF0aXZlLWNvbXBsZXgtbW9tZW50NTUyABOBfrivFsdlzGy5+hEBAaF92ur3NDAwMDAgbmllbWVpZXItbGF0dGljZXMAciqYoBTlqHNXgREKOwIPdqIAhTc0MDAwMCBuaW5lLXN0YWdlLXByZWZpeC1hdWRpdC1zZWVkNzAAfO/TpubpTsl5tV4JUH4zKzC4woQ0MDAwMCBvdXRlci1iZXJuc3RlaW4tY2VydGlmaWNhdGUALoIsvehk0Ak2d9kWBn1wH/QQ4jc0MDAwMCBvdmVybmlnaHQtcHItcmV2aWV3LTIwMjYxMDA5AOse9YgEVVPJZZdbvmmogHwQ/pjENDAwMDAgb3duZXItYm91bmRhcnktYXVkaXQAacoqZCw8qX6hVqWLQvPqdT9N1NM0MDAwMCBvd25lci1mb290cHJpbnQtYml0c2V0cwDQUv9kzVhP9T1qLNiE4tqRH432MjQwMDAwIG93bmVyLXByb2ZpbGUtdW5pZm9ybQDQH6mJBlBCCUecUMzd0h2OgzU8SjQwMDAwIHAxMTEtbWlucmFuay1wcm9vZi1yZWNvbmNpbGlhdGlvbgDZbYV43EgqAaZ4ReVJuBG+QcLtODQwMDAwIHAxMTEtcmVjZWl2ZXItY2Vuc3VzANqk0z9qKQAq8TFPbPuF6e//a3tXNDAwMDAgcDExMS10ZW5zb3Itc2hlYXItc2VlZDQ3ACequyEXahQKSzFXbW3yObZFfp7nNDAwMDAgcDExMi1jb21wbGV4LXNpbmdsZS1saWZ0AJZqDRY+y0dd/MCkK7LtyaspEjfkNDAwMDAgcDExMi1mcmVlLXNpbmstYXVkaXQ5NwBWMbNFFTzv+Mz0UwM8Imz9deC+8zQwMDAwIHAxMTItZ3JhbS1zdXBwb3J0LXNlZWQ4MAAc/9MgbskVTCxSFCb+ldvnys4g0TQwMDAwIHAxMTItc2luZ2xlLWxpZnQA3/y5o/h1LBKtNrGZFwnzwccCrM40MDAwMCBwYWlyLWFzc2VtYmx5AAkmZlpUCokzwaa9qlzkFrSp19QxNDAwMDAgcGFpcmVkLWN1YmUtYml0LWZhc3QAu0lZ3vhQ3ZO9owcNV4rzR172BXY0MDAwMCBwYWlyZWQtc3Rhci1yYW5rANu1uT2tQen92dXk4MPdBNlSoQP9NDAwMDAgcGFyYWxsZWwtYW5ub3VuY2VtZW50cwAhSWEvxdt+9jxHaLzk1twCLCiTGjQwMDAwIHBlbmRpbmctY2xhaW1zLWluZGVwZW5kZW50LXByaWNpbmcAd85Ue6WSNAX6fPeQ8njl0Jlmoys0MDAwMCBwaGFzZS1yZWNpcGVzLXBhcmFsbGVsAJ/WV93RrqjKAj4r9CfT9o8zCWfsNDAwMDAgcG9vbGVkLWNsb25lLWVwb2NocwA/CniIIDu7Ig2sAW4LJABzgn1LAzQwMDAwIHBvc2l0aXZlLXNraXAA3WKrKMHCwEk36D+Tssqoixr27b80MDAwMCBwb3N0LWNlbnRlci1yYW5rNC1nbG9iYWwAgL2azyWe/crlbyEK556HTQdLEzo0MDAwMCBwci1yZWNvbmNpbGlhdGlvbi0yMDI2MTAxMgBBaBRZUHMwzZqMYorB9ah/aYp+0zQwMDAwIHByLXJlY29uY2lsaWF0aW9uMTAwLTIwMjYxMDEzANsfM9GV2JjS6f5b6pInmmeKI75QNDAwMDAgcHItcmV2aWV3LTIwMjYxMDA5AO4qBBRfjMe5tfY6qKXm0300pT2MNDAwMDAgcHItcmV2aWV3LWJhdGNoZXMA8oI8NibBCNBiX/4gel1SO9OV43I0MDAwMCBwcjIxMC1oZWFkLXJlY29uY2lsaWF0aW9uAHUbOmih+wxpTtizxoLomqPogl84NDAwMDAgcHIyMzYtaW5kZXBlbmRlbnQtY29tbWFuZC1hdWRpdABhxE6OAUvwnlK2Ai+VzOOVLQD+QjQwMDAwIHByMjc5LXRhcmdldC1wcmVmaXgtcmVjb25jaWxpYXRpb24AQOvF99LDQJQdXti32bo1Vb3AGyI0MDAwMCBwcjYyNi1uYXRpdmUtcGF5bG9hZC1iaW5kaW5nAOZMkbb65L83VlY9rTdCi2YLi0UHNDAwMDAgcHI2OTUtZGlnZXN0LWF1ZGl0AKePvd+ahYwgbOvvkNjr6cSwR8FINDAwMDAgcHI2OTktZnJhbWUtcmV0aW1pbmctdmFsaWRhdGlvbgChc6s7cGw6p0cXR0GClZT3l0F5/zQwMDAwIHByNjk5LWZyYW1lLXJldGltaW5nAJOpxQn3mi8cC0rwiuSo8DnbobnyNDAwMDAgcHI5NDYtcGluLW1pZ3JhdGlvbgAGdK4Xls/4YCvHNU2eGFdB8g/RSzQwMDAwIHByZXNjcmliZWQtc3Rhci10cmlwbGVzAHc5H/KhhyukEh8Qd8rfU4Se+fniNDAwMDAgcHJlc2NyaWJlZC10aHJlZS1wb3J0LWRlY29kZXJzAKZ/zHLBDi9CSiwLKiKNMwhk8L1lNDAwMDAgcHJlc2NyaWJlZC10cmlwbGUtZGVjb2RlcgC/u0r9F1qSxoZ8liAJOCfwwB7dGjQwMDAwIHByaW1lLXBvd2VyLWN5Y2xpYy1pbnZlcnNlAAXG+PvEVRlGmFgJ7rVKRMHr7WNONDAwMDAgcHJvamVjdGlvbi1jdXQtdG9vbGtpdAAU1XFROCzW3iODKmghQqUXHCs/HTQwMDAwIHByb21vdGVkLWtlcm5lbC1jb2FsZXNjaW5nLXZhbGlkYXRpb24A1eoAvt1lwJNwD+9TUSlrhnfBC4g0MDAwMCBwcm9tb3RlZC1rZXJuZWwtY29hbGVzY2luZwDimxYT2HwamMqhv3uzU3rIf7g4cTQwMDAwIHBydW5lZC10cmFjZS1yZXNwb25zZQAkZBGE2T8h1ebMHsHt+RIjPRtb+zQwMDAwIHB1bmN0dXJlZDExMi1nbG9iYWwAdblIL9OSLeH773qBeS2GgKjvfJw0MDAwMCByNDIwLWNvbXBlbnNhdGlvbi1iYXNpcwCVxlYqwqOtB12dOleOkYmyPqDvYzQwMDAwIHI0MjAtZGVjb2Rlci1zaGFyaW5nAHezFsxcq+42/GrMMng741wjvhuMNDAwMDAgcjQyMC1nZW9tZXRyeS1jYWNoZQBqxVrWKNIaxnrRCVM8K7JuoWrfQzQwMDAwIHI0MjAtbGVhbi1zb3VyY2UtYmluZGluZwA+wp1qulpQ1IWE2RcUM1ziRUFsIzQwMDAwIHI0MjAtcXVhZDEzAGZANyuEV//gXMz03GCiD6ScoNzJNDAwMDAgcjQyMC1ycmVmLXBlcmZvcm1hbmNlAAqleWK59ZZMoxnqoW1zU1deAvPuNDAwMDAgcjQyMC1zY2F0dGVyLWxpZmVjeWNsZQDdw72mCITkLjM+fD3PWls0/pFmGTQwMDAwIHI0MjAtc3RhdGljNDQtY29tcG9zaXRpb24ACZPiGfa7Y5i8BdG2xPgbG/oMPOA0MDAwMCByNDIwLXRhcmdldC1iYXNpcwDe/Pe63ETC9bBUXGFKiYm5QuyPjTQwMDAwIHI0MjAtdHdvLWJsb2NrLWNvbXBvc2l0aW9uAOHBoAhuz27y3NWqMGjFGaKTn4ptNDAwMDAgcjQzOS1ibG9jazEtc2NoZWR1bGUADw+bkG9L5d72Kvuvx4Bew+YPjNg0MDAwMCByNDM5LWJsb2NrNTA4LXNjaGVkdWxlAPYIht0kOgFlyQa+k8kyxB/NHQUvNDAwMDAgcjQzOS1ibG9jazUyMS1mYWN0b3IAU6rWQVjMSCeBpiJ3eJzX+mGzREs0MDAwMCByNDM5LWJsb2NrNTIyLWZhY3RvcgCYlPzB0qkI/m89PVV2IwdSXmE+QTQwMDAwIHI0MzktYmxvY2s4LWludGVnZXItZmFjdG9yAFpPR71xtFMYanWU/ii5eJah/PFeNDAwMDAgcjQzOS1ic2VjdGlvbi1zdGFycy1zZWVkMDEA3Ph7rkUpYCmfdYYKlXOpavZ5k8s0MDAwMCByNDM5LWJzZWN0aW9uLXN1cnZleQCqRyMXlNUwf3iMRBO9YH99PgqT3jQwMDAwIHI0MzktY29weS1wYXRoLXNoYXJpbmctYmFycmllcgD4g7nYQ6kDg0hnp2zhMlQ7cI2eLDQwMDAwIHI0MzktZml2ZS13aXJlLXByZWZpeAD+QRcq8tTFX2VtHs0/f1WeXMs+qDQwMDAwIHI0MzktZm91ci1ibG9jay1jb21wb3NpdGlvbgDNJX74pm0EfqcDoqlc+pSvbYo02jQwMDAwIHI0MzktZm91ci13aXJlLXByZWZpeADfYsMkvyqiOkjCP4WeC3B2+cKpdjQwMDAwIHI0MzktZnJhbWUyNjctc2VlZDAxAHQxzS3hPNSi81hE3m2pDt86YucgNDAwMDAgcjQzOS1mcmFtZTI3Mi1zZWVkMDYAA/OCvZgrytuFbiJo8S/iSBDFli00MDAwMCByNDM5LWZyYW1lMjgxLXNlZWQxNQD4vqpjbfDDbVXwfpDI25p4znZBdjQwMDAwIHI0MzktZnJhbWU1MDYtdHdvLWZhY3RvcgDq0RD9Sy16dh3xE+MHGov0LdWM9zQwMDAwIHI0MzktZnJhbWU1MDktc2VlZDA4AJXaLZzbB69uY7qB07Iel7kDtmrKNDAwMDAgcjQzOS1mcmFtZTUxOS1zZWVkMDIAjw80Uw56VvIUs7hMiqOONVggYdw0MDAwMCByNDM5LWZyYW1lNTIwAEab1j0dPS8JIwKoAJwW5A5jUxlGNDAwMDAgcjQzOS1mcmFtZTUyNC1zZWVkMTMAcz0GkaTAewwtvTmPplleuCspMBo0MDAwMCByNDM5LWdsb2JhbC1wcmVmaXgtYWRtaXNzaW9uAOvGJZhLx3nl8HkSezncbO9mUmDPNDAwMDAgcjQzOS1oZWxwZXItbWF0Y2hpbmcASM0wj8xnsB3wzXX8hIl5mbfV0FE0MDAwMCByNDM5LWhlbHBlci1xdWFydGV0cy1zZWVkMDcAWA7tpfL/XvkckWOJkJdHUFJroEE0MDAwMCByNDM5LWhlbHBlci1zdGFycy1zZWVkMTkA8chg5M1T+OgqFLGzz0Wg52WeyG00MDAwMCByNDM5LWhlbHBlci10cmlwbGVzAFVP541hJpBieJhGKkr9yngCYgEsNDAwMDAgcjQzOS1vbWlzc2lvbi1hdGxhcy1zZWVkODEAaoZYebfr9MExhP5WiXs48hm4O+E0MDAwMCByNDM5LXBvc3QtaGVscGVyLXNoZWFyLXNlZWQwMwCHGf4QlBUqXpYRMRRQwY5t6TUyoTQwMDAwIHI0MzktcmVzeW50aC1mcmFtZS1zZWVkMTAAKBRvq9hVXBSnyeu7y7xmgVKI4VI0MDAwMCByNDM5LXNpeC13aXJlLWJvb2xlYW4Ao3juiNbeOTJWuTNmcVp3CWWNrMk0MDAwMCByNDM5LXRhcmdldC1jb21wZW5zYXRpb24AMJshNQQsOciuGssw3RRf1wAA4ck0MDAwMCByNDM5LXRhcmdldC1yZXR1bmUtc2VlZDE0ANje+Ehr5/nor/spW9d077yLWFa2NDAwMDAgcjQzOS10d28tc2lkZWQtY29tcGVuc2F0aW9uAPqieWfc7Y9FFOurJJoCQTSvH3AoNDAwMDAgcjQ4MC1xbm9kZS1zZWVkMDIAJwjB3gm/siUNLjkTvgOaTiiT6Ew0MDAwMCByNDgwLXFub2RlNS1zZWVkMDUAinHRtA9S/SPAOvz6bgBBt+w/kd00MDAwMCByNDgwLXF1YWQxMi1leGFjdC1zZWVkMTIAJLRYZSLC+M1nicwZtpGSphYq5hw0MDAwMCByNDgwLXNoYXJwLWNoYXJnZTUzNQAMVJ+6lAtI1Z/YlclbqDajpS6zjTQwMDAwIHI0ODAtc2xpY2VkLW1pbmltYWwtZnJhbWVzAFOeuwgo4pi4ttAyEp4va6zQ7F61NDAwMDAgcmFua2VkLXBhaXItdmVyaWZpY2F0aW9uAOqyFGeAjsL7pZYRa7Gz7UGoOyfENDAwMDAgcmVjeWNsZWQtYml0LWludGVncmF0aW9uAAff9DeSGs5xpzs6uDqrWdNzxaU7NDAwMDAgcmVxdWlyZWQtcmVwbGF5LWNvdmVyYWdlAKOcp7DwSVfcdmWvuHmgjmVcirYhNDAwMDAgcm9vdC1wYWlyLWZpcnN0LWRyb3Atc2VlZDQ4ABuI6QugMfg0IwDwTChX9Wu5dl9MNDAwMDAgc2NhbGFyLWZ1c2VkLWR5YWRpYwAKZWuMUqfNfXWzl0WT4Nt1THioAjQwMDAwIHNlbGVjdGVkLXByb29mLWJpbmRpbmcAJbLRHP0d5rTEczUfdL1navywzqs0MDAwMCBzZWxlY3RlZC1yZXBsYXktZmFzdHBhdGgAlut4bXpvBOciopwuIor/WTzl/l80MDAwMCBzZWxlY3RlZC1zb3VyY2UtY292ZXJhZ2UtYXVkaXQAJhJ95cxvKAJR+bL+oP9n9QXE8/g0MDAwMCBzZWxlY3RlZDYyNi1saW51eC1yZWNvbmNpbGlhdGlvbgAvHCTm4l0u0PIg/2mAXpD+Ew/1ATQwMDAwIHNoYXJlZC1hZ2dyZWdhdGUtZm9sbG93dXAA+nHxMPPgzEwnuXSH4a54/cVMhQ00MDAwMCBzaGFyZWQtY2VudGVyLWZlYXNpYmlsaXR5AGkRvWviYkvyO/OxarAjkci8WmGkNDAwMDAgc2lnbmVkLWNvbm5lY3Rvci1vYnN0cnVjdGlvbgASEE4TaOhok0F7IeE2b0sXQdArSDQwMDAwIHNpbmdsZS1pbnRlcnNlY3Rpb24tc3BlY3RydW0tYXVkaXQACYYz4sCS+6Nehk99wUXV3+yPd0Y0MDAwMCBza2lwLWNsb25lcwCysAxT6MlsIg47TNExJgULS5ijLjQwMDAwIHNraXAtc3RyaXBzAB1eDMC3z12PblwuBaL2P+Yhp2t1NDAwMDAgc2tpcC1zdWZmaXgAbtytS8+EqTlse9EaYsSQKSgnRG80MDAwMCBzcGFyc2UtZnVzaW9uLW9yYml0cwC1WL5dSyavUT+6Tg+XttqyKXYPnTQwMDAwIHNwbGl0LWNlbnRyZXMtZ2xvYmFsAJKt60LJqm15BzWGnjIaHn257kBINDAwMDAgc3BsaXQtc2tpcAAomaMJJwlR02SAJft+QXOnhmvJ4TQwMDAwIHN0YXRpYzQ0LXBhY2tpbmctY2VpbGluZy12YWxpZGF0aW9uAF2QbRDlAky5hMr/7zEyjhkkfS+6NDAwMDAgc3RhdGljNDQtcGFja2luZy1jZWlsaW5nAKWjbIaAHFp0FS54c/lCefLN8BhQNDAwMDAgc3RhdGljNDQtcjQ4MC1jb21wb3NpdGlvbgATPnP4HYco3CjvLP8Y7457zfZG/jQwMDAwIHN0YXRpYzQ0LXNlbGVjdGl2ZS12YWxpZGF0aW9uAP+gBkzG8z09uYycZ/QGxn5IT5YXNDAwMDAgc3RhdGljNDQtc2VsZWN0aXZlABVrnwpGYrL9G+6p/G4vSybQMB46NDAwMDAgc3RyZWFtZWQtcmVjb25jaWxpYXRpb24AdThGC0LaW2R8d5pK/bPqn1EQQJI0MDAwMCBzdHJ1Y3R1cmFsLWdhaW4AVgYnAVulvKYJAOVLfI4MBypA8e80MDAwMCBzdWJzcGFjZTE2LXI0MjAtdmFsaWRhdGlvbgBUMU+035mPx8JV8XXmh4Dnpon42TQwMDAwIHN1YnNwYWNlMTYtcjQyMABA/QY96Qn1QF+jbxzVw1IerRT+DjQwMDAwIHN1cHBsaWVyLWNpcmN1aXQtY29uc29saWRhdGlvbgDICs98L0F+vxwqg0dM97MlvprWRDQwMDAwIHN3NC1vd25lci1vcHRpbWFsaXR5LXZhbGlkYXRpb24AsimzHckwmm3lsoAUfH0XDjd2uR40MDAwMCBzdzQtb3duZXItb3B0aW1hbGl0eQC30CEdzHPmG7/xg7HwMi1AD13agTQwMDAwIHN3YXBuaWwtcGFyYWxsZWwAgC9GwQsviuqtUm3zrV14mjzy39Y0MDAwMCBzeW50aGV0aWMtbGF5b3V0LWluZGVwZW5kZW50AJoITxhyfOvH6WPugJFsu0w0ET66NDAwMDAgdDE2LW93bmVyLWF1ZGl0LXNlZWQ2NwC5xtJfa+ZO5g3pn94plPD/DuXrITQwMDAwIHQyMS1iaW5vbWlhbC1hdWRpdAA31ZLjdfSygolHwgKY6wthZP1RSTQwMDAwIHQzNy1iaW5vbWlhbC1lbmRwb2ludC1hdWRpdC1zZWVkNzgArtiA0LaE/kMetmeoz1cU2SkBkJY0MDAwMCB0MzctYm9vdHN0cmFwLWRlcHRoLXNlZWQ2MABP5OxRx4xKTJIxWB98sqgDRa3JVjQwMDAwIHQzNy1lbmRwb2ludHMtaW5kZXBlbmRlbnQA3hQxZmSZR0ZiZocjxeesgd3hwxU0MDAwMCB0MzctaW50ZWdyYWxpdHktYXVkaXQAYS2m7mlYWYcWe/cpC0dYamM5olQ0MDAwMCB0MzctcmF0aW9uYWwtcmVmaW5lbWVudAAhselDLpVm6w6J0/PqmmphoBP0oTQwMDAwIHQzNy1zbGljZS1iaXRtYXBzAI3xXwHhOU4YQjGgKSz8mEW2p/ZRNDAwMDAgdDM3LXN1cHBvcnQtYXVkaXQtc2VlZDY2AJiWbdF9oxBgZRwIG72HHxJaZNETNDAwMDAgdDM3LXN1cHBvcnQtaW50ZXJ2YWwA7fO0Lh/lPSICUpodD7JApMyKFnk0MDAwMCB0aW50YWdlbC1zb3VyY2UtbG9va3VwAMCnrj9C7oDmfMUTAygjBcFQ8lrHNDAwMDAgdHJhY2UtY3VydmF0dXJlLXByZWxvYWQAgkwad73dfw9TB99z1HIhrsot0Zo0MDAwMCB0dXJ5bi1jb2RlLXNwYWNlAPJgMmP6PmPMaqT+LaWzQCWUpCHZNDAwMDAgdHVyeW4tcG9ydC1sYWJlbHMAJkCUpcGZTFhlG3XqGxc6GDUzj/s0MDAwMCB1OC1lNC1nYXAtZmlsbABd1NdzKtPa6pjzfRRFuSzyyH8CUDQwMDAwIHU4LWluZGVwZW5kZW50LXhjaGVjawAbWNq/R6cQ5W19Q0WWKKWiP0SzqDQwMDAwIHU4LXN1cHBvcnRpbmctdW5pZm9ybQB2dBQsMdQcgxhJbXUyX+wIIeIaFjQwMDAwIHU4LXRlcm1pbmFsLWNvbmUtY2Vuc3VzAATylnpYNBzJJMubKcQp349l7ODzNDAwMDAgdW5pdmVyc2FsLWNvbm5lY3Rvci1ib3VuZGFyeQCXOqJUWMqkxNIdLSY/iTaIVmskXzQwMDAwIHdlaWdodGVkLXNpZ25lZC1jb25uZWN0b3Itc2VlZDU4AB2/lz6RkGWmNeCRWYu+w1lRVAPnNDAwMDAgd2l0bmVzcy1zcGVjLXRvb2xzAOxOdoc7bTvqDoq3N5SXFTuJ2uf4NDAwMDAgeDQtZ2Fpbi1hZGRpdGl2aXR5LWF1ZGl0ADa842bN1b60dmoSGURBrdLV32oeNDAwMDAgeDQtam9pbnQtaG9ybmVyLXNlZWQyOQAbNcdOMbpMhJ/k3YaRensqzMxz+DQwMDAwIHg0LXByZWNvbmRpdGlvbi1zZWVkMjIAUelcAenC7LuCPeFcDNW4FXq97e00MDAwMCB4NC1wcmltaXRpdmUtYWRtaXNzaW9uAAc8rLK9OvanMbBeWsz+qm/fzBRP", + "type": "tree" + }, + "de5ab489cf9f14b69dab43eb98f6f6ab2e028800": { + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAEGu8pD9DPGDjLDLoo4EqXtQboaSNDAwMDAgLmdpdGh1YgD+gO6CB2mjX/3rgkAwZbJ/pGOtnDEwMDY0NCAuZ2l0aWdub3JlAAxe+/HUWqdKo4X1hrBTxw4XCoMkMTAwNjQ0IENJVEFUSU9OLmNmZgBLDmUzQf0oKRGoDOTYfWQSy9i97zEwMDY0NCBDT05UUklCVVRJTkcubWQAQd78kCIr4mbHEIy3tvhowkWuiOwxMDA2NDQgQ09OVFJJQlVUT1JTLm1kANSQsPPGrVpVcsH3rgVecCwEBoRPMTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTWFrZWZpbGUAhP6CkPNT81NaATEZXDXsoDwolgkxMDA2NDQgTk9USUNFALVlY3dYjylBDOQn9qNF7sNj1/h5MTAwNjQ0IFBBVENISU5HLm1kALYPPxAbvSM6UES3ohI+VQSk6AFhMTAwNjQ0IFJFQURNRS5tZAADXCWbaPSkzdhLNEUw6RjKBdSmwTEwMDY0NCBTT1VSQ0VTLmpzb24AYJbVr/kO3v1DgGr25HD8VNenedU0MDAwMCBhcnRpZmFjdHMAfXF6FhMg3zzeLRYitg2qINpxU380MDAwMCBjZXJ0aWZpY2F0ZXMAYyb6JQMWZh84wizhWNDQ/lEEvmE0MDAwMCBkb2NzAKZhKOgaKfxkr34J1IyMn4bxnWVaNDAwMDAgZm9ybWFsAHEYL44HbJQjNV/d6r9FGwyt6MWuNDAwMDAgbm90ZXMANv93/GSdOYgtn0mfY6I/TBZIeVM0MDAwMCBwYXRjaGVzAJS/+lmD/emP5dXj9YxIw+xhsqRPNDAwMDAgcmVmZXJlbmNlcwCbAG3k4efRj5q0EYIj7LQ5g6RdhDQwMDAwIHJlc2VhcmNoAF1wmHQ+2XThgVZOFNAbEgy9uxH1NDAwMDAgc2NyaXB0cwBym834jGR2jkE0fddRVovq+jo4ajQwMDAwIHRlc3RzADstXX6oBrc8AtDflMHUqx0KRd2kNDAwMDAgdXBzdHJlYW0A5E05YhtY4rNR+RB7n6Fw1qjU/hw=", + "type": "tree" + }, + "dee5851551b09263c3ce07687bbb7483d93ce240": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgTk9USUNFAPc0OhYonuJpHn28WS5MJxeeuoTqMTAwNjQ0IFNPVVJDRS5qc29uAEY6G6ZWNyIkYVl9wHxYbxPJmGVoMTAwNjQ0IGRhZy5qc29uLmd6AKWwWY5MMorO8RuqoyhSrNv8l+7vMTAwNjQ0IHJlcGxheWVkLnB5AGc/u7pw/YC0kNeZC/PExoLjTjhd", + "type": "tree" + }, + "e0094004f80f506f74e611dc68c0fc4e7e2150af": { + "base64": "MTAwNjQ0IE1BTklGRVNULmpzb24AmD4G0+K63Dv8/VSHUFT5NeNE5BYxMDA2NDQgUkVBRE1FLm1kAFKKnYWnUfJzOR/1ux46C3L0Ln2+NDAwMDAgcHIyMQBBpddyZdevhnVAx9AX/jg5UiaR0jQwMDAwIHByMjMAp5Cp+7geXeqAuKLpFThpTllX3FA0MDAwMCByYWQyMADbEom33yDh9CBxNqR0O5w10wa6Hg==", + "type": "tree" + }, + "e04bf44bba1a05fbeba29bf1cf32657412dd26e3": { + "base64": "MTAwNjQ0IFJlZmluZWRGcm9udGllckNlcnRpZmljYXRlLmxlYW4A9nCf/0zV22m+RPmVnGy5YZNFmU40MDAwMCBjYW5kaWRhdGUAUl8iFbrNhQkJxY1rphsL9oU6RKwxMDA2NDQgbWFuaWZlc3QuanNvbgBjBvK6GcYg/Q+zMnvu6uPRSqnvnQ==", + "type": "tree" + }, + "e215641860b42e9d5d1f3f113742c0b1177eb52f": { + "base64": "MTAwNjQ0IGZyYW1lLWNlcnRpZmljYXRlLmpzb24AWGElRrl5TcgACiGoWW9QK1pCOxgxMDA2NDQgZnJhbWUtY29tcGlsZXIuanNvbgCrjN5ZXLyM3IzHnTdnaB1BX/jIYzEwMDY0NCBmcmFtZS1wcm9maWxlcy0yMy5qc29uAOsbPqCfAx8HnCJgRCDVAHdSfepVMTAwNjQ0IGZyYW1lLXByb2ZpbGVzLTI1Lmpzb24Av1KEHSgASvNOXLnHwSzQcbbtzIExMDA2NDQgZnJhbWUtdHJhbnNpdGlvbnMtMjMuanNvbgCxXx5pKh9gpMjNYIqz5g8mJjmpRTEwMDY0NCBmcmFtZS10cmFuc2l0aW9ucy0yNS5qc29uAMGB8ZDGdLVqOfslWogyt/3ZU9C9MTAwNjQ0IGZyYW1lLXdvcmQtMjMuanNvbi5negDgQfCPdyTv6dc6VgHPIVq3F5SNHzEwMDY0NCBmcmFtZS13b3JkLTI1Lmpzb24uZ3oAAAzUefRkKqy/tZVUgTBkWv3znV8xMDA2NDQgZnJhbWVfY29tcGlsZS5weQAyXirqP88D8wrlGvtBCpBe5Vo2DjEwMDY0NCBmcmFtZV92ZXJpZnkucHkA1Hwcs9+XEiltQ4jSztASVDoksrs=", + "type": "tree" + }, + "e2c4aa434c356229bbb51fb06a2b9de933c17df1": { + "base64": "MTAwNjQ0IGNvbXBhY3QtY29udHJvbC1ub3RlLnRleAANg39iQqPc/yxDS4Y5h/85+HV0bg==", + "type": "tree" + }, + "e44d39621b58e2b351f9107b9fa170d6a8d4fe1c": { + "base64": "MTAwNjQ0IExJQ0VOU0UAJh7rnp+LK0sNEZNm3amcb9fTXGQxMDA2NDQgUkVBRE1FLm1kAMjLPDhXkHvzRlAXuffvGt1N9cKbNDAwMDAgYnVpbGQAzCXAxzGzoAPR/4r53rrJ3Q/sYJQxMDA2NDQgZm9ybWFsaXphdGlvbi55YW1sAOBYTUmT3wHsCCM6s0TrwbEDm/f3MTAwNjQ0IG1hbmlmZXN0Lmpzb24AAcMJ4002zzZpxD2Jxd+yXNwxuK8=", + "type": "tree" + }, + "e4dee11db9fc3944ce77d7b32dd1c3ad22d11ac0": { + "base64": "NDAwMDAgY29waWVkLWNlbnRlcnMAC2aV72Y3jCrGs02Ni3x3zg7uQRA0MDAwMCBjb3BpZWQtZml4ZWQAXSP2y2afIyrRO3bK01XTOYp3KVc0MDAwMCBmcmFtZS1jb21waWxlcgBVOt5uuTFxJ2wcyUfgoxa+Yl1q8TQwMDAwIHBhaXJlZC1jdWJlAJ6nK8zZCb0syriaWJHfgBew+BNjNDAwMDAgcGFydGlhbC1nYXVnZQDmlLYG2ID3jhOZ6nl552kOSTGu3DQwMDAwIHNlbWFudGljLWJ1bGsA4AlABPgPUG905hHcaMD8Tn4hUK80MDAwMCB0aHJlZS1zdGFnZS1jb3ZlcgCy3vrsj0GraeCNpEfS1sd/3YPWGg==", + "type": "tree" + }, + "e5b5c0eb6030b71241938791cb220e6f212a69c9": { + "base64": "NDAwMDAgc2tpcC1zdHJpcHMALaLfrLjthOYNRdoLPCsUiX4tGQg=", + "type": "tree" + }, + "e694b606d880f78e1399ea7979e7690e4931aedc": { + "base64": "NDAwMDAgcHI2MgCyQB7mfNijD/vEJV2akmDqp1G89DQwMDAwIHByOTcAAwMdCWto8/+/tU+3vbZwMeo61KI=", + "type": "tree" + }, + "e721bf694bd4e6246802acda64bfc6646a129a4d": { + "base64": "NDAwMDAgZXh0ZXJuYWwAt3nWZNbPdYhOWc/QT3WsWbp48tcxMDA2NDQgaWRlbnRpdGllcy5qc29uAKh/lp00HgT6YP1I7/fL1jm9qVWxMTAwNjQ0IHdpdG5lc3MuanNvbgCUM5rDgbOj7qP17fsGOLvQbWFygg==", + "type": "tree" + }, + "e7fffb98817dbc2fc3b02d4ccf625bc2991d110d": { + "base64": "NDAwMDAgY29kZQDz++uhVMU6q2iNubiIZKZvDLMvEzEwMDY0NCBpbnB1dC1tYW5pZmVzdC5qc29uABwRZuVUn7I2MIt5CiRtyeqUmjYSNDAwMDAgcmVwb3J0cwDM64ODKD3al6fahusi9eMRZ7+hkjQwMDAwIHJlc3VsdHMAmdHCoiTQ5XsFgZTFMsL+czLEDmc=", + "type": "tree" + }, + "e82f93b7b144f515d52b00a8d4dacda26929b5eb": { + "base64": "MTAwNjQ0IFBST09GLm1kAP+96EG9DwwQlFElE3w+tTztwkDfMTAwNjQ0IFNPVVJDRS5qc29uALdyIEJPNmpL2iEDwZPkJuOHf/xfMTAwNjQ0IGF1ZGl0LnB5ADTUmQ9mrwSKMJKvJLG53S/vYP2fMTAwNjQ0IGJhbGFuY2VkX2Fzc2VtYmx5LnB5AMf9QoZ9dBk522pBUpv9uxNvAxkbMTAwNjQ0IGNlcnRpZmljYXRlLmpzb24AKOKdmYKwxno0l23xf2xAO+Jk1+MxMDA2NDQgY2hhbmdlZF9ncmFwaC5weQAkBwp9hYIXwOizCoEC7Pa4TQ4d+TEwMDY0NCBjb21wYXJpc29uLXByNDAuanNvbgDgsU+yQ5bHQaO/Lxg9tMbyywrKszEwMDY0NCBjb21wYXJpc29uLXByNDEuanNvbgDylo+x3aaCCQ0aPSvJrYatE6rHHzEwMDY0NCBjb21wYXJpc29uLXByNDIuanNvbgA/Q3hYDpD90em5K4R91guiKvwojjEwMDY0NCBjb21wYXJpc29uLXByNDMuanNvbgBQPkp0ziajr4CPYp/V/muCdG6O6DEwMDY0NCBjb21wYXJpc29uLXByNDQuanNvbgCcDEFhWHkOXUF+TZyT4TvPPxIOBzEwMDY0NCBjb21wYXJpc29uLXByNDYuanNvbgBCeYPi4H4TpEl3sEOXOy1OyT3fcjEwMDY0NCBjb21wYXJpc29uLXByNDcuanNvbgC8OH6NN+NBUgQ6n3kZLI41pNZ3KDEwMDY0NCBkYXRhLWNvcm5lcnMuanNvbgBMt6Kyb8SK/QILeWbEP9MM8jIVFDEwMDY0NCBkYXRhX2Nvcm5lcnMuY3BwACUfbIfMpCYZoMG22DcF31ytDpwzMTAwNjQ0IGRhdGFfcmVjb3ZlcnkucHkAOJcsq34f2mCMOJj8ny9Xi/JTIRoxMDA2NDQgbGlua3MtMjMudXNlcwCTVJxaPNXQGR/xnPIwpty+9vCRPDEwMDY0NCBsaW5rcy0yNS51c2VzADKyp0YYWxVcnZKZdLW2TGuQZr2UMTAwNjQ0IG9yaWdpbmFsLTIzLmpzb24AXEKYomgsthkZd0Vjr0s7VSee2gcxMDA2NDQgb3JpZ2luYWwtMjUuanNvbgBsV/FkfVU5Gj3R5KselbqoBP/cOzEwMDY0NCBvcmlnaW5hbF90aW1lbGluZS5weQAPs0iJbtrIKmrD5oLWEQScuEiP8TEwMDY0NCBwcm9kdWNlci5weQCje3il/LFloM14voltSXCxBM/aUTEwMDY0NCBwcm9maWxlcy0yMy5qc29uAA+O7zSo5xn/GaJQTdPpiHgP8m5UMTAwNjQ0IHByb2ZpbGVzLTI1Lmpzb24AetvTRdiY1gO33NYBKoU9sSJnf2gxMDA2NDQgcHJvZmlsZXMuY3BwAEEOUPR1YjGD+rjejyEefVKFmRUaNDAwMDAgcmV2ZXJzZWQAhQwr9dvHbd4Gt0cSvmnsvHIFmzM0MDAwMCByZXZpZXcA8UeGnNJcG2wvdTCMacS3S+AmjGMxMDA2NDQgc2NhbGFyLTIzLmpzb24A3nmcdyV6IUThhpJDb96XIha0TngxMDA2NDQgc2NhbGFyLTI1Lmpzb24AJ2DzMy7KzwZQ+gU+L8JYKLCqImoxMDA2NDQgc2VhcmNoLXJlY29yZC5qc29uADWmon9slwB5ASw2FzrE/RmXv6D4MTAwNjQ0IHRpbWVsaW5lLTIzLmpzb24Abuy3qIVKJOUItoqS2nIq77XiOBExMDA2NDQgdGltZWxpbmUtMjUuanNvbgBmVFjTYmrwh0z+iC14GCmotP9F7jEwMDY0NCB2YWxpZGF0aW9uLmpzb24Aj2X5iLkwfjowebQT4k2mT1cSVvQxMDA2NDQgdmVyaWZ5LnB5ADU94DdMhoUB9EHhxlOyyWs7v9LS", + "type": "tree" + }, + "e8f9bef2415589f81af021c5cbbd3d511ebe9709": { + "base64": "MTAwNjQ0IFBST09GLm1kAMetPbSor5Xf624yK5GqPrSaY+8XMTAwNjQ0IFJFQURNRS5tZAACQGsLUDrL5d8GPjct0DeCq1HUCzEwMDY0NCBTT1VSQ0UuanNvbgBhAqRvXIrtQSPANWJt8/NFhehedA==", + "type": "tree" + }, + "e9dc10729379b4fb4ccea320c898d0da3f9624f9": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAB0zNwx4jArHwqcK+LoudQsOgD+cjEwMDY0NCBfX2luaXRfXy5weQBUaqGwNyruLYNzcNfqeYqA8XZ0MjEwMDY0NCBsaWZ0LnB5ACRRf2H5nEoq3UadSbf6W6v+rdogMTAwNjQ0IHNlbGVjdC5weQDX53qQLVsRO3w+RNnkyNbwNImlizEwMDY0NCB2ZXJpZnkucHkAqlrsqWYJgrqGwBFh9WAXwGnmnV4=", + "type": "tree" + }, + "ea739bd9a40b79b52703c764f97d5a7481971920": { + "base64": "NDAwMDAgaDIzLWcyLXRhaWwwLWIyLXByNDctZXZlbgBtZBpFZa8dsi48I3qa7o1DBdi1jg==", + "type": "tree" + }, + "ecfbccf9e0a9a20c619ff0f3c56bf687a069249b": { + "base64": "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", + "type": "tree" + }, + "ef22569e4f7a361dddc5abab967af9ae5dfb22aa": { + "base64": "MTAwNjQ0IFJFQURNRS5tZAChncFrZsj1dvH1jUoDIke+zzDNVTEwMDY0NCBfX2luaXRfXy5weQCqolIwQMrXb2fYUbmeW7/qHg2ElzEwMDY0NCBiaXQucHkATGLYOm9NYycOw0WCaWzOu9RyvooxMDA2NDQgY29tcGxleC5weQBxJ4M8QzlUyW54Fdui22L3EBbCGDEwMDY0NCBtYXRjaF9jb21wbGV4X2dlbmVyYWwuY3BwAEjfG/6i6lNozGEmVcvYJ1J7ueaY", + "type": "tree" + }, + "ef5f39403610d231a0c27e8a6b4f08c10209bcd6": { + "base64": "dHJlZSA1YmQ4NmJiZTFmYTc2MWFiOGZkOTA2MDk2MzQwOGFmNDMzYWM3MTZhCnBhcmVudCA5MmRhNGQ3MThmMWQ0Y2Y4ZGU0ZTZlZTk0N2RkYzdiMTgwY2UxYzMxCmF1dGhvciBEb3VnbGFzIFIuIENvbGtpdHQgPGRvdWdsYXMuY29sa2l0dEBnbWFpbC5jb20+IDE3OTE5NDE2MTIgLTA0MDAKY29tbWl0dGVyIERvdWdsYXMgUi4gQ29sa2l0dCA8ZG91Z2xhcy5jb2xraXR0QGdtYWlsLmNvbT4gMTc5MTk0MTYxMiAtMDQwMAoKUmVjb3JkIDk4IFBSIGNsb3N1cmVzIGFuZCB0d28gZXhwbGljaXQgcmVwbGF5IGJsb2NrZXJzCg==", + "type": "commit" + }, + "f147869cd25c1b6c2f75308c69c4b74be0268c63": { + "base64": "MTAwNjQ0IHByMzQtYmFsYW5jZWQtYXNzZW1ibHktYXVkaXQudHh0AImMpgDvNp9WGyLqvqqJd1iEStT+", + "type": "tree" + }, + "f25d0df6d9e59c1602ca7d4689fa1ac77c8831c3": { + "base64": "MTAwNjQ0IGNvbW11bml0eS1rYXBwYS0xNS5tZACQ5/+aGYRAq2tqZnSBioHyZ/rGdQ==", + "type": "tree" + }, + "f2efc35bcc4959e5bb3495e28e94d24847f068b7": { + "base64": "MTAwNjQ0IGNvbXBsZXgtY2lyY3VpdC1jb25zdHJ1Y3Rpb24udGV4AKWIezjUw5f+jXQmv01tqLnqji6iMTAwNjQ0IGNvbXBsZXgtY2lyY3VpdC1ub3RlLnRleABszldcuEkbcESwsXskhoAR6eB3+A==", + "type": "tree" + }, + "f3fbeba154c53aab688db9b88864a66f0cb32f13": { + "base64": "MTAwNjQ0IGFsdGVybmF0aXZlX3Byb2R1Y2VyX2Nsb25lcy5weQDiUrmqi/ul7BN+kjO0HGI0ntUGiTEwMDY0NCBiaW5hcnlfaW8uaHBwAJ7HLGKauj9izsypltkfCfhZ2Ye6MTAwNjQ0IGNoZWNrX2NvbXBpbGVkX3dpdG5lc3MucHkAyL5zg3k1MjPJFcHAzN4GjAQdaGMxMDA2NDQgZnJhbWVfbWF0Y2hfZW52ZWxvcGUuY3BwAGZLQV/wiL4r/NHw7BR3x7vhXNAQMTAwNjQ0IG1vbWVudF9tYXRjaF9wb3NpdGl2ZS5jcHAA4Hj7qpMExpT+umU2dfMt5DiElR8xMDA2NDQgbW9tZW50X21hdGNoX3Jhbmtfbm9kZS5jcHAA3nMGWKgsDZHq0NZnq0a0NPCW5w0xMDA2NDQgcG9zaXRpdmVfY2xvbmVfc2VhcmNoLnB5AJqy8yAc138sG21uqSN7N33/sXpbMTAwNjQ0IHByb2R1Y2VyX3NlYXJjaC5weQDyjxtm2C+2pFR+EWqgvdi4Rn10bTEwMDY0NCByZWJ1aWxkX2FsdGVybmF0aXZlX3NlbGVjdGVkLnB5AED/qZcdElS3l9UCgRD33+eudi0FMTAwNjQ0IHJlYnVpbGRfc2VsZWN0ZWQucHkA2e97yG+6Rpa7IOiEq2rMmti/fww=", + "type": "tree" + }, + "f4894855634ac64e4f280e7c7d269224b2a88730": { + "base64": "NDAwMDAgY29waWVkLWZpeGVkAHMen3qFi+fOBRnj0YfCy3p3lwQr", + "type": "tree" + }, + "f4b0d2359b6827eb2e154f7dce0bf38ba24f070f": { + "base64": "NDAwMDAgY2VydGlmaWNhdGVzAIo7D93AF6ehysAz9R6IoJQgrXgaNDAwMDAgZG9jcwAXPG7CxcIbcnvJbF8OmN3MrOA31TQwMDAwIG5vdGVzAPLvw1vMSVnluzSV4o6U0khH8Gi3", + "type": "tree" + }, + "f81b26f52bf3364c54fe2e1d571ca8b0c56562b9": { + "base64": "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MTAwNjQ0IHZlcmlmeV9jb21wbGV4NzQxX3BhcmFsbGVsLnB5AFbVnD4WOZwYiCK32rSOo4zmS/dHMTAwNjQ0IHZlcmlmeV9mcm9udGllcjEwNDIucHkA5PEpsFcIZTMOOa4R6vr+cWf343QxMDA2NDQgdmVyaWZ5X2Zyb250aWVyMTA5NC5weQCW5sE4a9BSubyvE22TRAbz8MP3dzEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI1MzEucHkAqZAibx+lxiar/ahveJ46J2/YPTsxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNTMxX2JpbmRpbmdzLnB5AO4+4k7WuHVymgsi+wRnTGQC+RNcMTAwNjQ0IHZlcmlmeV9mcm9udGllcjUzMV93cmFwcGVyX3N3YXAucHkAYrW6Mg6NqqJm/j0FDCcgzPRFmP8xMDA2NDQgdmVyaWZ5X2Zyb250aWVyNTM1LnB5AH4HNVUDVuGFTezIBZD52C/tcfGLMTAwNjQ0IHZlcmlmeV9mcm9udGllcjUzNV9iaW5kaW5ncy5weQChi1BaLF8DUg0Ya3N9b/6sFIW5zjEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI1ODgucHkA3uLU9yQvQdEe/eb0H7ofI6hyvQgxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNTg4X2JpbmRpbmdzLnB5AIiJhz9DG7QfvJt3a+x1lodRecvsMTAwNjQ0IHZlcmlmeV9mcm9udGllcjU5Ni5weQBfoe5gJ+V4DGPjj/0HzXVJ0vlQBDEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI1OTZfYmluZGluZ3MucHkAY/o+24SaKsTdUBRVmnLQgUOviHMxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNjE3LnB5APo3Jf+wbkSVkpb6+PZ/N6JLZS23MTAwNjQ0IHZlcmlmeV9mcm9udGllcjYxN19iaW5kaW5ncy5weQAV9Nrnr7Bd693obFwhfBj+2BYeCDEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI2MjYucHkA16mikLjeZtoKMv/UO3Qa+QMFrCgxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNjI2X2JpbmRpbmdzLnB5AB5R1TEwFWIOqklj2Qb5Fcqd+23MMTAwNjQ0IHZlcmlmeV9mcm9udGllcjc0MS5weQA+W4VaJG1hh1fZbPxLSB7Gmf2O9jEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI3NDFfYmluZGluZ3MucHkA3LQCmuqv5g9NhSoZdbAeAkOFlfwxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNzQxX2JyaWRnZV9jb3ZlcmFnZS5weQBNaAzotd4W5vPethqRTMnKR36ebTEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI3OTkucHkAwNiw0MnFLtF603y/fciIONrqIDoxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNzk5X2JpbmRpbmdzLnB5AP+QJAbHrMdgyzq1yc9zJ2i93hYgMTAwNjQ0IHZlcmlmeV9mcm9udGllcjg5MC5weQC6gyQ7jWJmL4ahd47ik4A0Vn2p6zEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI5NDIucHkA6zOaIaGd3U6d/0Ear3nSsAa4VuwxMDA2NDQgdmVyaWZ5X2Zyb250aWVyX2NvbXBsZXRlLnB5AJOGA3DMaltja8R/gYeqg0S2ZqebMTAwNjQ0IHZlcmlmeV9mcm9udGllcl9yZXBsYXkucHkAHSPT7WaYC93HWVzMsHqzE+pC55MxMDA2NDQgdmVyaWZ5X2hwZTYwOC5weQCXwiJAo1ppnFoUukspswcISvfaiTEwMDY0NCB2ZXJpZnlfaHBlX2xlYW5fYmluZGluZy5weQDSlbAo7cUx37+qAjNwqVKLraNVcjEwMDY0NCB2ZXJpZnlfcGFyYWxsZWwucHkA/Bpy4VHnSR0RQrhareQnfQ7WGusxMDA2NDQgdmVyaWZ5X3ByX3JlY29uY2lsaWF0aW9uLnB5AEXkR0smiWz1KZG4voYj3q3z0aZZMTAwNjQ0IHZlcmlmeV9yZXBsYXlfY292ZXJhZ2UucHkAZsmk6Y1fv8gqny3+YRfFrwIVpbMxMDA2NDQgdmVyaWZ5X3NlbGVjdGVkX3Jlc3VsdC5weQDHVbduDUS6SReqlEQOvlTa785bKjEwMDY0NCB2ZXJpZnlfc3VwcGxpZXJfY29uc29saWRhdGlvbi5weQBhmguq0Jq8DGqEGc21UpA0nTZ/5w==", + "type": "tree" + }, + "f8e3094e80248c43750f0cd85f8e896045db051e": { + "base64": "NDAwMDAgY2VydGlmaWNhdGVzANFbX5DemMd4VuMop0ZtNPAgWAg9NDAwMDAgbm90ZXMA4sSqQ0w1Yim7tR+waiud6TPBffE0MDAwMCByZXNlYXJjaABUFtmTpohx2skc2/Xd94g3XepS7g==", + "type": "tree" + }, + "fa9e623c876c4ac052ed9d250530d21c343a2280": { + "base64": "MTAwNjQ0IGNlcnRpZmljYXRlLnB5AHHHQ6WKPXAnuGVXL4uyxfav6MnbMTAwNjQ0IGNlcnRpZmljYXRlX3JvdW5kMy5weQDFqfpCm9iPcTTq31yF63zjnFc+KDEwMDY0NCBjZXJ0aWZpY2F0ZV9yb3VuZDQucHkAX2ssaRBWO/U09D0wjVdnmpDxADMxMDA2NDQgY2VydGlmaWNhdGVfcm91bmQ1LnB5AHNAN4iTO9BbPT0RegmjjKUZyFSCMTAwNjQ0IGNlcnRpZmljYXRlX3JvdW5kNi5weQCus+b2xEkKCX6CdjUXAFUZ7Z+6PTEwMDY0NCBjaGVja19maW5lX2ZpZWxkLnB5ABPSMW7lv5oBUUhVJn3uVK5YMRGkMTAwNjQ0IGNoZWNrX2dzX3BhdGgucHkAseQoHHM9w5UVXEVH/8UKezqH/SoxMDA2NDQgY2hlY2tfaWRlbnRpdGllcy5weQC0xIE1CtiJDUef3PlU95oEwVzVSDEwMDY0NCBjaGVja19yZXVzZV9pbnZlcnNlLnB5AER0GKy0Ma9hELEPYvlYE3jPJPG/MTAwNjQ0IGNoZWNrX3NlZ21lbnRlZF9pbnZlcnNlLnB5AAicvsK9MNxdU4S4jPH9K/LlWUocMTAwNjQ0IGNoZWNrX3N1YmJsb2NrX2ludmVyc2UucHkAqYdsn8AcoHfcrxOwlQGTV1YP/Ww=", + "type": "tree" + }, + "fc8e281e672dc17d78f9f69530b21993ba00af02": { + "base64": "NDAwMDAgY2VydGlmaWNhdGVzAK4WAnVah1LFNMGOEYT3MdkZpFk8", + "type": "tree" + }, + "fcbee3787b3c8851a23c8afe6190a71e71df1a75": { + "base64": "MTAwNjQ0IFJFQURNRS5tZABV7uGY//S5p584Uv26S8if+tbIDzQwMDAwIGNlcnRpZmljYXRlcwCNpTfHFSp0xfANacxYGv1UYehdlTQwMDAwIGRvY3MANlQxlYvfzI6xgY5MoK74vebV+vc0MDAwMCBub3RlcwBTcDQj7mkwZZRix/YITazJsH91qzQwMDAwIHBhdGNoZXMAEK0TC06h2wcQGY3D6sS9WQZ4aVo=", + "type": "tree" + }, + "fe80ee820769a35ffdeb82403065b27fa463ad9c": { + "base64": "NDAwMDAgSVNTVUVfVEVNUExBVEUAFtE8M0kBwrwg+WaIjQL7YjZxksoxMDA2NDQgcHVsbF9yZXF1ZXN0X3RlbXBsYXRlLm1kAEiA3qf+WCg/h8ClaKxz1DjeSzSENDAwMDAgd29ya2Zsb3dzAN019M1Ha+5FTqTkW2+O0KXatsNs", + "type": "tree" + } + }, + "schema_version": 1 +} diff --git a/research/pr148-source-retention/VERIFY.json b/research/pr148-source-retention/VERIFY.json new file mode 100644 index 0000000000..a63f9eb973 --- /dev/null +++ b/research/pr148-source-retention/VERIFY.json @@ -0,0 +1,130 @@ +{ + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "checks": "Authenticate Git objects, both complete diffs, every retained payload, original notices, and exact replay inputs; compare the deterministic receipt.", + "timeout_seconds": 120 + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/test_verify.py" + ], + "checks": "One positive receipt and 25 rejection cases in nine groups, with assertions disabled.", + "timeout_seconds": 180 + } + ], + "inputs": [ + "PATCHING.md", + "certificates/paired-cube-bit-input.json", + "certificates/paired-cube-complex-input.json", + "certificates/partial-gauge-bit-input.json", + "certificates/partial-gauge-complex-input.json", + "certificates/partial-gauge-input.json", + "certificates/partial-gauge-network.json", + "certificates/stopped-product-bit-axis.json", + "certificates/stopped-product-complex-input.json", + "certificates/stopped-product-input.json", + "certificates/stopped-product-network.json", + "certificates/three-stage-cover-bit-input.json", + "certificates/three-stage-cover-complex-input.json", + "certificates/three-stage-cover-input.json", + "certificates/three-stage-cover-network.json", + "docs/partial-gauge.md", + "docs/stopped-product.md", + "docs/three-stage-cover.md", + "notes/general-clifford-frames.tex", + "notes/paired-cube-bit.tex", + "notes/paired-cube-sharing.tex", + "notes/partial-gauge-assembly.tex", + "notes/partial-gauge-construction.tex", + "notes/partial-gauge-frames.tex", + "notes/partial-gauge-note.tex", + "notes/stopped-product-assembly.tex", + "notes/stopped-product-complex.tex", + "notes/stopped-product-factorization.tex", + "notes/stopped-product-interface.tex", + "notes/stopped-product-note.tex", + "notes/three-stage-cover-assembly.tex", + "notes/three-stage-cover-bit.tex", + "notes/three-stage-cover-complex.tex", + "notes/three-stage-cover-note.tex", + "notes/three-stage-cover-rows.tex", + "references/paired-cube/pr97-subset/selection.json", + "references/paired-cube/selected-module/README.md", + "references/paired-cube/selected-module/SOURCE.json", + "references/paired-cube/selected-module/matching-arcs.json", + "references/partial-gauge/pr62/LICENSE", + "references/partial-gauge/pr62/NOTICE", + "references/partial-gauge/pr62/PROOF.md", + "references/partial-gauge/pr62/SOURCE.json", + "references/partial-gauge/pr97/LICENSE", + "references/partial-gauge/pr97/NOTICE", + "references/partial-gauge/pr97/PROOF.md", + "references/partial-gauge/pr97/README.md", + "references/partial-gauge/pr97/SOURCE.json", + "references/partial-gauge/pr97/bit-ledger-result.json", + "references/partial-gauge/pr97/check_frames.py", + "references/partial-gauge/pr97/check_lifted.py", + "references/partial-gauge/pr97/deferred-readout.tex", + "references/partial-gauge/pr97/deferred.py", + "references/partial-gauge/pr97/deferred_23.json.gz", + "references/partial-gauge/pr97/linalg.py", + "references/partial-gauge/pr97/round7_literal_frame_ledger.py", + "references/partial-gauge/pr97/witness_23.json.gz", + "references/three-stage-cover/pr117/LICENSE", + "references/three-stage-cover/pr117/NOTICE", + "references/three-stage-cover/pr117/SOURCE.json", + "references/three-stage-cover/pr117/dag.json.gz", + "references/three-stage-cover/pr117/replayed.py", + "research/coordinated-frames-and-entrance-banks/BASELINE.json", + "research/coordinated-frames-and-entrance-banks/baseline-pr181.part01", + "research/coordinated-frames-and-entrance-banks/baseline-pr181.part02", + "research/coordinated-frames-and-entrance-banks/baseline-pr181.part03", + "research/pr-reconciliation-20261012/content-comparison.json", + "scripts/paired_cube/README.md", + "scripts/paired_cube/__init__.py", + "scripts/paired_cube/frames.py", + "scripts/paired_cube/gauges.py", + "scripts/paired_cube/graph.py", + "scripts/paired_cube/modules.py", + "scripts/paired_cube/verify.py", + "scripts/paired_cube_producer.py", + "scripts/partial_gauge/README.md", + "scripts/partial_gauge/__init__.py", + "scripts/partial_gauge/binary.py", + "scripts/partial_gauge/cube.py", + "scripts/partial_gauge/interval.py", + "scripts/partial_gauge/lift.py", + "scripts/partial_gauge/match.cpp", + "scripts/partial_gauge/scalar.py", + "scripts/partial_gauge/select.py", + "scripts/partial_gauge/verify.py", + "scripts/partial_gauge/word.py", + "scripts/partial_gauge_bit.py", + "scripts/partial_gauge_network.py", + "scripts/partial_gauge_producer.py", + "scripts/stopped_product/README.md", + "scripts/stopped_product/__init__.py", + "scripts/stopped_product/complex.py", + "scripts/stopped_product_network.py", + "scripts/stopped_product_producer.py", + "scripts/three_stage_cover/README.md", + "scripts/three_stage_cover/__init__.py", + "scripts/three_stage_cover/lift.py", + "scripts/three_stage_cover/select.py", + "scripts/three_stage_cover/verify.py", + "scripts/three_stage_cover_network.py", + "scripts/three_stage_cover_producer.py" + ], + "python": "3.12", + "requirements": [], + "schema_version": 1, + "status": "ready" +} diff --git a/research/pr148-source-retention/collect.py b/research/pr148-source-retention/collect.py new file mode 100644 index 0000000000..f3c8a5ac63 --- /dev/null +++ b/research/pr148-source-retention/collect.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +"""Authoring only: collect the pinned Git proof and recover the missing originals. + +Thiago Goulart (@Tuafo), with substantial OpenAI Codex assistance. Apache-2.0. +Requires the original PR148 head in the local object database. Does not fetch. +""" +import base64 +import hashlib +import io +import json +from pathlib import Path +import subprocess +import zipfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +MAIN = "ef5f39403610d231a0c27e8a6b4f08c10209bcd6" +HEAD = "975c3cf5d4ee0c90d5a76500d431bfc59102bb72" +COMPARISON = "56b66d58297deca1d7dd130247d720e960f77a37" +PARENT = "c8b22bc5c10dba497ac25804e27d9647d818e2ff" +HISTORY = "research/pr-reconciliation-20261012/content-comparison.json" +ARCHIVE = "research/coordinated-frames-and-entrance-banks" + + +def git(*args): + return subprocess.check_output(["git", *args], cwd=ROOT) + + +def dump(path, obj): + path.write_text(json.dumps(obj, indent=2, sort_keys=True) + "\n", encoding="utf-8") + + +def main(): + objects = {} + + def remember(kind, oid): + if oid not in objects: + raw = git("cat-file", kind, oid) + objects[oid] = {"type": kind, "base64": base64.b64encode(raw).decode("ascii")} + return base64.b64decode(objects[oid]["base64"]) + + def remember_tree(oid): + raw = remember("tree", oid) + offset = 0 + while offset < len(raw): + end = raw.index(b"\0", offset) + mode, _ = raw[offset:end].split(b" ", 1) + child = raw[end + 1:end + 21].hex() + if mode == b"40000": + remember_tree(child) + offset = end + 21 + + def inventory(revision): + result = {} + for line in git("ls-tree", "-rz", revision).split(b"\0"): + if line: + header, name = line.split(b"\t", 1) + mode, kind, oid = header.decode().split() + if kind != "blob": + raise ValueError("non-blob inventory entry") + result[name.decode()] = {"mode": mode, "blob": oid} + return result + + chain = git("rev-list", "--first-parent", HEAD, "^" + COMPARISON).decode().splitlines() + for commit in (MAIN, COMPARISON, *chain): + raw = remember("commit", commit) + if commit in (HEAD, COMPARISON, PARENT): + remember_tree(raw.splitlines()[0].split()[1].decode()) + ht, mt, bt, pt = map(inventory, (HEAD, MAIN, COMPARISON, PARENT)) + old = json.loads((ROOT / HISTORY).read_bytes())["148"] + historical = {r["path"]: r["blob"] for r in old["matched"] + old["unresolved"]} + changes = {p: ht.get(p) for p in ht.keys() | bt.keys() if ht.get(p) != bt.get(p)} + if historical != {p: r["blob"] for p, r in changes.items()}: + raise ValueError("published comparison is not the complete pinned Git delta") + direct = sorted(p for p in ht.keys() | pt.keys() if ht.get(p) != pt.get(p)) + baseline = json.loads((ROOT / ARCHIVE / "BASELINE.json").read_bytes()) + archive = b"".join((ROOT / ARCHIVE / r["file"]).read_bytes() for r in baseline["parts"]) + if hashlib.sha256(archive).hexdigest() != baseline["archive_sha256"]: + raise ValueError("archive drift") + rows = [] + inputs = {HISTORY, ARCHIVE + "/BASELINE.json"} + inputs.update(ARCHIVE + "/" + r["file"] for r in baseline["parts"]) + with zipfile.ZipFile(io.BytesIO(archive)) as z: + for name, entry in sorted(changes.items()): + matches = [p for p, value in mt.items() if value == entry] + if matches: + path = name if name in matches else min(matches, key=lambda p: (len(p), p)) + storage = {"kind": "main-file", "path": path} + inputs.add(path) + elif name in z.namelist() and hashlib.sha1( + b"blob " + str(len(z.read(name))).encode() + b"\0" + z.read(name)).hexdigest() == entry["blob"]: + storage = {"kind": "pr181-archive", "member": name} + else: + path = HERE / "original" / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(git("cat-file", "blob", entry["blob"])) + storage = {"kind": "recovered", "path": "original/" + name} + rows.append({"path": name, **entry, "direct_change": name in direct, "storage": storage}) + for name in ("LICENSE", "NOTICE"): + (HERE / "original" / name).write_bytes(git("cat-file", "blob", ht[name]["blob"])) + + # Authenticate each live main path through its exact enclosing Git trees. + for name in sorted(inputs): + parts = name.split("/") + for index in range(len(parts)): + spec = MAIN + (":" + "/".join(parts[:index]) if index else "^{tree}") + remember("tree", git("rev-parse", spec).decode().strip()) + dump(HERE / "TREE-PROOF.json", {"schema_version": 1, "objects": objects}) + dump(HERE / "COVERAGE.json", {"schema_version": 1, "main_commit": MAIN, + "head_commit": HEAD, "comparison_base": COMPARISON, "direct_base": PARENT, "rows": rows}) + sources = json.loads((HERE / "SOURCES.json").read_bytes()) + sources["files"] = [r for r in sources["files"] if r["usage"] == "provenance"] + for name in sorted(inputs): + raw = (ROOT / name).read_bytes() + if raw != git("show", MAIN + ":" + name): + raise ValueError("input differs from the research base: " + name) + sources["files"].append({"path": name, "usage": "input", "git_blob": mt[name]["blob"], + "sha256": hashlib.sha256(raw).hexdigest()}) + dump(HERE / "SOURCES.json", sources) + manifest = json.loads((HERE / "VERIFY.json").read_bytes()) + manifest["inputs"] = sorted(inputs) + dump(HERE / "VERIFY.json", manifest) + print(json.dumps({"paths": len(rows), "direct_changes": len(direct), "tree_objects_and_commits": len(objects), + "storage": {kind: sum(r["storage"]["kind"] == kind for r in rows) + for kind in ("main-file", "pr181-archive", "recovered")}}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/research/pr148-source-retention/original/LICENSE b/research/pr148-source-retention/original/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/pr148-source-retention/original/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/pr148-source-retention/original/NOTICE b/research/pr148-source-retention/original/NOTICE new file mode 100644 index 0000000000..ba5ee784eb --- /dev/null +++ b/research/pr148-source-retention/original/NOTICE @@ -0,0 +1,387 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Stopped product-ring extension, 9 October 2026 +Copyright 2026 icekylinx + +The opposite-bank generic projector factorization, componentwise atom-ring +adapters, stopped recurrence and outer ordinary-interchange conversion, +aligned pair-star producer with rational centers, exact denominator-21 +grid and selected (23,23)/(24,24) composition are contributed by icekylinx +with substantial OpenAI GPT-6 Astra and Codex assistance. This extension +builds on merged PR #36, 11817ccacb564bb7f98789c20dc11d3fece207e3, and is +integrated on upstream main 56b66d58297deca1d7dd130247d720e960f77a37. + +The retained ordinary leaf uses the preceding projector, corner and +copied-center proofs. The selected two-stage topology retains Aurel Prosz +(Paureel), Swapnil Jain and Zhihao Chen's credits; the semantic assembly +retains PR #21/#23 and RaD's attribution. Paired producers, carrier matching, +original source notices and each imported license remain unchanged. + +Partial-gauge extension, 9 October 2026 +Copyright 2026 icekylinx + +The pair-first cube assembly, compatible backward frame enlargement, +partial source-gauge schedule and stopped whole-projector composition are +contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance, extending PR #104 at 948ce1510df750f4c18b96bdaef436a86f8bf834. + +The physical deferred bit word, reflected event accounting, fan-order +clarification and signed two-stage endpoint are adopted from Zhihao Chen +(jacklightChen), PR #97, e15350b66e4bf796153a68c240a6cc1b788abe3e, with +Codex assistance. Its deferred readouts, V leaves, lifted frames and frozen +witness originate in Swapnil Jain's 741e7aa078392553815df7926ee17ac5e25a8c38, +with the original Claude disclosure retained. Cyclic interval and core-aware +pair primitives build on Avi Eisenberg (ikeboy), PR #62, +ad0f25ff7b23cff7f08ad237c2254e6ecf74257e, with Anthropic Claude assistance. +Prior two-stage, copied-center, ordinary-leaf, semantic/bulk, routing and +precision credits remain in force. Imported source notices and licenses +are preserved under references/partial-gauge/; see SOURCES.json. + +Three-stage cover extension, 9 October 2026 +Copyright 2026 icekylinx + +The arbitrary-subspace Clifford frame theorem, three-stage Cayley geometry, +weighted q-adic GL cover, unit-lower weighted compiler, charged local-ring +fallback, uniform batching, internal row borrowing and exact composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra assistance. This +repository integration uses Codex assistance and extends +PR #115, cf60442983c153a3a0f5272ea4713f99eba13c86. + +The selected local complex DAG and support/label replay are adopted from +Copyright 2026 eumemic, PR #117, cbb05ce504d571546d9b7794c186a613c659c3bf, +with its original Apache-2.0 terms and Claude assistance disclosure. +The unchanged bit physical word retains Zhihao Chen (jacklightChen), +PR #97, and Swapnil Jain's underlying witness and assistance notices. +The prior opposite-bank, stopped ordinary-leaf, copied-center, topology, +semantic/bulk, precision and analytic credits remain applicable. +Original source notices and license bytes are preserved in +references/three-stage-cover/pr117/ and references/partial-gauge/. + +Paired-cube and shared-core extension, 9 October 2026 +Copyright 2026 icekylinx + +The paired-coordinate triple-cube identity, signed overlap channels, +original-source involution, coordinate-star centers, concrete frame/carrier +compiler, chronological source gauges, PR97 gauge-subset selection, +orthogonal cross-stage routing and exact supplier/assembly integration +are contributed by icekylinx with substantial OpenAI GPT-6 Astra assistance. +Repository integration uses Codex assistance and extends PR #130 at +6a9970a530119174507904e23592fd59ede19a5d. + +The substantial completed-core workspace-sharing principle is credited to +an664, PR #128, 530588a019b4a74f09180680c9e3961bf649ec89, with its reported +OpenAI Codex assistance. No source code, partition or serialized witness +from that PR is imported. The new routing and paired-motif integration +are described separately and claim no exclusive priority for broad sharing, +paired-coordinate, Fourier or carrier-matching ideas. + +Selected coarse queries restrict the retained eumemic PR #117 positive DAG; +its original Apache-2.0 and Claude assistance notices remain unchanged. +The bit word and original frames retain Zhihao Chen's PR #97 and Swapnil +Jain's frozen witness, notices and historical assistance disclosures. +Earlier generalized Clifford, three-stage, uniform weighted recursion, +ordinary-leaf, semantic/bulk, precision and analytic credits remain in force. +Source-specific license bytes are preserved under references/. diff --git a/research/pr148-source-retention/original/README.md b/research/pr148-source-retention/original/README.md new file mode 100644 index 0000000000..1915f0d258 --- /dev/null +++ b/research/pr148-source-retention/original/README.md @@ -0,0 +1,258 @@ +# A sharper exponent for integer multiplication + +**Community research maintained by Douglas Colkitt — conditional on the original +OpenAI #109 framework.** + +## Paired-cube and shared-core extension + +The construction contributed by **icekylinx**, extending +[PR #130](https://github.com/CrocSwap/integer-mult-bounds/pull/130), gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=\frac{4611281}{10000000000}=4.611281\times10^{-4}. +$$ + +A signed paired-cube producer and coordinate-star centers complete the +identity using the original source registers. Completed dirty cores reuse +one auxiliary bank across three orthogonal blocks, adopting an664's PR #128 +sharing principle. The bit branch selects certified gauges from the retained +PR #97 / Swapnil word. All local transitions, copied centers, complement +calls, finite routers and rare-class fallback remain charged. The analytic, +uniform-recursion and fixed-tape hypotheses are retained. + +[Proof source](notes/paired-cube-note.tex) · +[Exact certificate](certificates/paired-cube-network.json) · +[Incremental reproduction](docs/paired-cube.md) + +```sh +make paired-cube-verify +``` + +## Three-stage cover extension + +The construction contributed by **icekylinx**, extending +[PR #115](https://github.com/CrocSwap/integer-mult-bounds/pull/115), gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=\frac{3146011}{10000000000}=3.146011\times10^{-4}. +$$ + +Three signed shears on a regular Cayley cover align all interstage data +frames. The complex branch combines eumemic's PR #117 local DAG with +arbitrary-subspace Clifford frames; the bit branch retains the PR #97 / +Swapnil physical word and uses a batched weighted q-adic cover. Local +transitions, copied centers, rare-class fallback, finite routers and +internal row borrowing are charged. The retained analytic and fixed-tape +hypotheses still apply. + +[Proof source](notes/three-stage-cover-note.tex) · +[Exact certificate](certificates/three-stage-cover-network.json) · +[Incremental reproduction](docs/three-stage-cover.md) + +```sh +make three-stage-cover-verify +``` + +## Partial-gauge extension + +The construction contributed by **icekylinx**, extending +[PR #104](https://github.com/CrocSwap/integer-mult-bounds/pull/104), gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=\frac{7237}{78125000}=9.26336\times10^{-5}. +$$ + +It applies the stopped whole-projector bit interface to the physical deferred +word of Zhihao Chen's PR #97, based on Swapnil Jain's witness. The new complex +producer combines cyclic interval contractions, pair-first cube assembly, +compatible frame enlargement and partial source gauges. Every residual, +endpoint correction and target-data transition is charged. The bound retains +the analytic and fixed-tape hypotheses of the preceding construction. + +[Proof source](notes/partial-gauge-note.tex) · +[Exact certificate](certificates/partial-gauge-network.json) · +[Incremental reproduction](docs/partial-gauge.md) + +```sh +make partial-gauge-verify +``` + +## Stopped product-ring extension + +The new construction contributed by **icekylinx**, extending merged +[PR #36](https://github.com/CrocSwap/integer-mult-bounds/pull/36), gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=\frac{194869}{2500000000}=7.79476\times10^{-5}. +$$ + +It combines a stopped product-ring bit interchange on `(23,23)` with an +all-disjoint rational-center complex network on `(24,24)`. The new generic +opposite-bank factorization pays one reversed child per projector rank; +atom adapters, ordinary leaves, endpoint copies and the exact denominator-21 +grid are included in the proof. The bound retains the original analytic +and fixed-tape hypotheses. + +[Proof source](notes/stopped-product-note.tex) · +[Exact certificate](certificates/stopped-product-network.json) · +[Incremental reproduction](docs/stopped-product.md) + +```sh +make stopped-product-verify +``` + +The maintainer-reviewed community checkpoint below remains its own result +and validation record. + +## Reviewed community checkpoint + +The reviewed community witness gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\boxed{\kappa=\frac{25508460085039}{500000000000000000} +=5.1016920170078\times10^{-5}>2^{-15}}. +$$ + +This is **23.71% above the preceding PR #49 release** and remains below 2^-14. +It is an improvement in the asymptotic exponent saving, not a measured runtime +speedup. The model and general reduction are inherited from OpenAI's +[*Integer multiplication below n log n*](https://github.com/openai/math/tree/adc7f1241b42e322a6451854ab7e4b4c146bf78a/preprints/Integer-multiplication-below-n-log-n-September-23-2026). + +**[Maintainer review and contribution ledger](docs/research/community-round2-review.md)** · +[Finite circuit proof](research/pair-assembly/PROOF.md) · +[Selected parameter certificate](research/matrix-exponent-synthesis/candidate/arithmetic.json) · +[Independent arithmetic check](docs/research/community-pair-arithmetic.json) + +## What changed + +**Avi Eisenberg's interval strips and core-aware pair assembly (#62)** arrange +additions to allow more physical wire reuse. Combined with **eumemic's joint +frame compiler (#57)**, this yields the strongest finite network in this batch. +**Alejandro Zarzuelo Urdiales's exact parameter refinement and scoped Lean +certificate (#61)** supply the selected numerical value. + +The bit network has m=575 and 137,151,806 physical roles; its certified recursive +saving is 102039046058023/2000000000000000000. The complex network retains saving +717/10^7. All recursive children, workspace restoration, copied centers and +endpoint costs remain charged. The seven final exponent margins are strictly positive. + +The preceding combination of Avi's skip-prefix strips (#53), **Rohan Gupta's +dual-suffix layout (#55)**, eumemic's compiler and **Chafik Boukhalfa's composition +and ranked reclamation (#58/#60)** is also fully retained and reviewed. + +Other reviewed contributions are retained even when their numerical witnesses +are superseded: **RaD's enlarged-frame and clone machinery (#51)**, **Rohan Arun's +positive-frame composition and order searches (#52/#56)**, **Rohan Gupta's parallel +order search (#50)**, **Chafik's original-envelope clones (#54)**, and **Rohan Garg's +split-pair recursion (#59)**. The review records the exact validation scope of each. + +## Attribution + +The names below identify GitHub contributors; they are not verified Twitter handles. + +- **[Avi Eisenberg (ikeboy)](https://github.com/ikeboy):** skip-prefix and interval strips, core-aware pair assembly ([#53](https://github.com/CrocSwap/integer-mult-bounds/pull/53), [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62)). +- **[Rohan Gupta (gupt1156)](https://github.com/gupt1156):** dual-suffix strips and parallel order improvements ([#50](https://github.com/CrocSwap/integer-mult-bounds/pull/50), [#55](https://github.com/CrocSwap/integer-mult-bounds/pull/55)). +- **[eumemic](https://github.com/eumemic):** joint frame compilation and paid reclamation ([#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57)); earlier complex circuits, Gaussian resampling and source frames. +- **[Chafik Boukhalfa (chafreaky)](https://github.com/chafreaky):** exact recovery, independent checkers, reordered sums, paid clones and joint-compiler composition/refinement ([#43/#46/#48/#54/#58/#60](docs/research/community-round2-review.md)). +- **[Rohan Arun (rohanarun)](https://github.com/rohanarun):** corner geometry, fixed-basis composition, weighted matching, order searches and positive-frame composition ([#49](https://github.com/CrocSwap/integer-mult-bounds/pull/49), [#52](https://github.com/CrocSwap/integer-mult-bounds/pull/52), [#56](https://github.com/CrocSwap/integer-mult-bounds/pull/56)). +- **[Rohan Garg (rohangar1)](https://github.com/rohangar1):** split-pair recursion, order refinement and paid-clone composition ([#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59)). +- **[Alejandro Zarzuelo Urdiales (alejandrozu)](https://github.com/alejandrozu):** Gaussian parity and finite tensor proofs, matrix/search tools, exact refinement and scoped Lean arithmetic ([#45](https://github.com/CrocSwap/integer-mult-bounds/pull/45), [#61](https://github.com/CrocSwap/integer-mult-bounds/pull/61)). +- **[RaD project (hipotures)](https://github.com/hipotures):** semantic precision, routing, phase-cell inversion, bulk resampling, alternating producers, physical compiler and enlarged-frame/clone machinery ([#41](https://github.com/CrocSwap/integer-mult-bounds/pull/41), [#51](https://github.com/CrocSwap/integer-mult-bounds/pull/51)). +- **icekylinx:** recursive batching, partial swaps, fixed projector profiles, copied retained centers and the selected complex construction. +- **Zhihao Chen (jacklightChen):** controlled bases, translated frames, semantic/bulk compatibility and two-stage integration. +- **James Chang (jamesyc):** reversed two-stage geometry and exact controls. +- **Aurel Prosz (Paureel) and Swapnil Jain:** attributed two-stage development and paid copied-stream endpoints. +- **Dominik Scholz:** dimension, parameter and fixed-basis refinements. +- **Ryan S (princezuda):** historical Lean certificates, algebraic contracts and independent circuit checks ([#26](https://github.com/CrocSwap/integer-mult-bounds/pull/26)). +- **Andrew Barnes (Bortlesboat) and David Leen (dleen):** aligned pairing, retained totals and sharing. + +The [full contribution record](CONTRIBUTORS.md) credits incorporated, parallel, +superseded and pending work separately. Douglas Colkitt maintains the project, +original research, review and integration, with OpenAI Codex assistance. +OpenAI's original manuscript and Harvey–van der Hoeven's analytic work retain +their attribution. Contributor-specific AI disclosures remain in [NOTICE](NOTICE). + +## Evidence and limits + +The [round-two review](docs/research/community-round2-review.md) extends the +[previous follow-up audit](docs/research/community-followup-review.md) and +[PR #39 transfer review](docs/research/community-final-audit.md). The original +#109 framework and retained all-size interfaces remain assumptions. This is not +full formal verification, independent human peer review, a worldwide priority +claim, or a practical multiplication benchmark. + +Fresh checks cover complete emitted words and dirty basis vectors, physical +frame transitions, exact fixed-basis profiles, all 4,073,300 data pairs for the +retained geometry, and independent rational recurrence/assembly arithmetic. +The formal packages verify their stated finite/arithmetic contracts. PR #61's +integrated axiom audit contains 169 distinct declarations, including 11 concrete +frontier theorems; its input rows are bound to the replayed finite profile. +They do not formalize the whole multiplication algorithm. + +The [review receipt](docs/research/community-round2-validation.json) distinguishes +fresh maintainer checks from contributor-supplied evidence. Earlier witnesses, +patches and attribution remain available. Submissions after #62 are outside this checkpoint's review; exact reviewed heads +are recorded in the ledger. + +## Reproduce + +```sh +make verify-pair +make verify-joint +make verify-positive +make formal-matrix-verify +# Complete arithmetic, producer, historical and unit-test suite: +make verify +``` + +Python 3.11+, a C++17 compiler and Boost headers are required for the full +arithmetic suite. The formal targets use their pinned Lean versions. See +[reproduction details](docs/reproducibility.md) and [CI layout](docs/ci-verification.md). + +## Historical witnesses and independent patches + + +Each patch applies independently to the **unmodified** pinned source; they are +alternatives, not a sequence to apply together. The +[result history](docs/research/result-history.md) records the earlier mechanisms +and scoped ceilings. The [preserved research index](docs/research/preserved-research.md) +collects the intermediate compression, routing, Fano, and core searches, including +scoped negative results and reproducible certificates. + +| Patch | Conditional saving | Scope | +| --- | --- | --- | +| [frozen-154](patches/frozen-154.patch) | `2^-154` | Original network and recurrence exponents | +| [balanced-153](patches/balanced-153.patch) | `2^-153` | Balanced assembly parameters | +| [same-network-129](patches/same-network-129.patch) | `2^-129` | Original network, sharper recurrence comparison | +| [h46-111](patches/h46-111.patch) | `2^-111` | Smaller network, dyadic parameters | +| [h46-109](patches/h46-109.patch) | `2^-109` | Rational recurrence saving, strict final margin | +| [h46-108](patches/h46-108.patch) | `2^-108` | Variable stopping exponent | +| [h46-rational](patches/h46-rational.patch) | `5.8e-33` | Strongest supplied parameter-only witness | +| [nonadjacent-layout](patches/nonadjacent-layout.patch) | Original parameters retained | Routing proof and revised layout cost only | +| [frozen-nonadjacent-107](patches/frozen-nonadjacent-107.patch) | `2^-107` | Direct routing, original network and recurrence exponents | +| [h46-nonadjacent-78](patches/h46-nonadjacent-78.patch) | `2^-78` | Direct routing with the h = 46 network | +| [h46-nonadjacent-76](patches/h46-nonadjacent-76.patch) | `2^-76` | Direct routing with tuned dimension and stopping parameters | +| [h46-shared-side-75](patches/h46-shared-side-75.patch) | `2^-75` | Stage-1/stage-3 side-role sharing, routing, and parameter tuning | +| [h46-incidence-67](patches/h46-incidence-67.patch) | `2^-67` | Rectangle incidence circuits, full auxiliary sharing, routing, and parameter tuning | +| [h46-dag-63](patches/h46-dag-63.patch) | `2^-63` | Shared intermediate sums and reversible role allocation | +| [h46-shared-point](patches/h46-shared-point.patch) | `13*2^-66` | Cross-group sharing | +| [h50-paired-59](patches/h50-paired-59.patch) | `2^-59` | Paired sums, stopped guard and tighter Gaussian setup | +| **[compact-control-34](patches/compact-control-34.patch)** | **`83/10^12 > 2^-34`** | **Compact controls, complete reservations, local repair and separate complex arity** | +| [complex-compression-31](patches/complex-compression-31.patch) | `2^-31` | Weighted complex circuits, binary phase frames and complete auxiliary sharing | +| **[ternary-30](patches/ternary-30.patch)** | **`2^-30`** | **Ternary five-subset circuit, rational frames and fixed-alphabet interchange** | + +## Citation and license + +Use [CITATION.cff](CITATION.cff), cite the individual contributions used and +include the repository version or commit. [CONTRIBUTORS.md](CONTRIBUTORS.md), +[NOTICE](NOTICE) and source-specific manifests preserve the dependency credits. + +The project is [Apache-2.0](LICENSE). Bundled RaD sources retain their separate +CC0 license and notices. The pinned original OpenAI manuscript remains unchanged +under `upstream/`; its source hashes are in [upstream/manifest.json](upstream/manifest.json). +This project is not an official OpenAI release or endorsement. diff --git a/research/pr148-source-retention/original/SOURCES.json b/research/pr148-source-retention/original/SOURCES.json new file mode 100644 index 0000000000..e265f00978 --- /dev/null +++ b/research/pr148-source-retention/original/SOURCES.json @@ -0,0 +1,504 @@ +{ + "package": "integer-mult-batched-23", + "date_utc": "2026-10-08", + "headline": { + "kappa": "6149999/50000000000000", + "dyadic_corollary": "2^-23", + "framework": "conditional fixed finite-alphabet, fixed-tape integer multiplication" + }, + "retained_pr7": { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/7", + "commit": "6725c6a17b17871a35353fd29157f4ed851bc114", + "contributor": "Zhihao Chen (jacklightChen)", + "role": "Ternary five-subset network, paired complex producer, frame schedules, and finite counts" + }, + "repository_main": { + "url": "https://github.com/CrocSwap/integer-mult-bounds", + "commit": "6e564879f51ae16f23d392e9e196c605f36d90df", + "contributor": "Douglas Colkitt", + "role": "Repository framework and compact controls" + }, + "upstream": { + "url": "https://github.com/openai/math", + "commit": "adc7f1241b42e322a6451854ab7e4b4c146bf78a", + "paper": "preprints/Integer-multiplication-below-n-log-n-September-23-2026", + "manifest": "upstream/manifest.json", + "license": "upstream/LICENSE", + "role": "Retained multiplication theorem, machine model, transforms, analytic estimates, and rounding interfaces" + }, + "preceding_contributions": [ + { + "pr": 2, + "contributor": "Bortlesboat", + "role": "Aligned pair groups", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/2" + }, + { + "pr": 3, + "contributor": "eumemic", + "role": "Compressed complex producer", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/3" + }, + { + "pr": 4, + "contributor": "dleen", + "role": "Retained totals and stage sharing", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/4" + }, + { + "pr": 5, + "contributor": "eumemic", + "role": "Fast Gaussian resampling", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5" + }, + { + "pr": 6, + "contributor": "eumemic", + "role": "Aligned bit circuit and cheaper centers", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/6" + } + ], + "new_contribution": { + "provenance": "Developed by icekylinx with substantial OpenAI GPT-6 Astra assistance; review corrections and repository integration with OpenAI Codex assistance.", + "components": [ + "Large-projector middle-block batching", + "Simultaneous controlled tensor basis and aligned corner batching", + "Arbitrary integer widths and bounded outer row padding", + "Whole-residual complex recursion", + "Dependency-path numerical guard", + "Exact final assembly beyond 2^-23", + "Corrected shifted chirp input error enclosure, retaining P=34p" + ], + "contributor": "icekylinx" + }, + "license": "Apache-2.0; original LICENSE and NOTICE retained", + "integration": { + "retained_source": "upstream/ remains unchanged", + "manuscript_patch": "patches/batched-23.patch", + "instructions": "PATCHING.md" + }, + "proof": "artifacts/batched-23-note.pdf", + "exact_certificate": "certificates/batched-network.json", + "algorithm_specification": "notes/batched-algorithms.tex", + "provided_archive": { + "filename": "integer_mult_batched_23.zip", + "sha256": "6aad9cc551c5fa5cf14e8708e6f2802b33f6233b169c742b205d0b2b74a44e8b", + "status": "Preserved separately; this repository contains a curated, corrected derivative." + }, + "review_corrections": [ + { + "source": "notes/fast-gaussian-resampling.tex", + "change": "Use F=2^ceil(1.14 alpha^2) for magnitude and shifted absolute error; prove P=34p remains sufficient." + }, + { + "source": "Makefile", + "change": "Include new batched certificates and manuscript patch in make verify." + } + ], + "curation": "Retain required producer/generator dependencies, construction sources and certificates. Omit duplicate notes, obsolete alternative batching witness, archive manifests, incremental self-patch, redundant dependency-only manuscript patches, historical standalone PDFs, imported historical tests and local audit outputs. Existing main-branch files are preserved.", + "partial_swap_extension": { + "contributor": "icekylinx", + "parent_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/10", + "parent_commit": "62691e395a0458ce089a1c7b5d89e74291e95e29", + "archive": "integer_mult_partial_swap_25_23_57_complete.zip", + "archive_sha256": "1414e879aef46d84e9c768750fd70d82aef15d0ebdc4a0148cc61192ebdae64f", + "proof": "artifacts/partial-swap-note.pdf", + "certificate": "certificates/partial-swap-network.json", + "producer": "scripts/partial_swap_producer.py", + "scope": "Partial-swap construction with kappa=942293/500000000000; inherits the corrected analytic and tape interfaces from PR #10.", + "curation": "Import selected producer sources, exact data and proof; regenerate large binaries, omit exploratory alternatives and duplicate baseline snapshot.", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance." + }, + "endpoint_gauge_extension": { + "contributor": "icekylinx", + "parent_commit": "f2ab41aebad47861caf6316282c1793e5513845e", + "archive": "integer_mult_endpoint_gauge_3_176x_complete.zip", + "archive_sha256": "1c2e8fa0d80597d6f0b02d707651a3b0477ff99d799614cf30b24931969def84", + "proof": "artifacts/endpoint-gauge-note.pdf", + "certificate": "certificates/endpoint-gauge-network.json", + "producer": "scripts/endpoint_gauge_producer.py", + "scope": "Conditional kappa=119723/20000000000; inherits the partial-swap construction and corrected PR #10 analytic and tape interfaces.", + "curation": "Selected producers, counts and proof only; large graphs are regenerated. Omit exploratory variants, duplicate previous-round snapshot and obsolete comparison claims.", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance." + }, + "structured_bulk_extension": { + "contributor": "icekylinx", + "parent_commit": "ed90fd940279c336ebc45968631bdebfb087b505", + "archive": "integer_mult_round3_2_092x_complete.zip", + "archive_sha256": "764afde67ec81608bcdfdd82da1efae834558daebdf2a0714c55e3e26aa0895c", + "proof": "notes/structured-bulk-note.tex", + "certificate": "certificates/structured-bulk-network.json", + "producer": "scripts/structured_bulk_producer.py", + "scope": "Conditional kappa=2504683/200000000000 from selected finite networks and attributed semantic/bulk interfaces.", + "adopted": [ + { + "contributor": "Zhihao Chen (jacklightChen)", + "pr": 23, + "commit": "661ebabc1076c9f525d7ce4967c876b203fa9827", + "role": "Semantic compatibility, scalar charge, product row stock and assembly" + }, + { + "contributor": "Zhihao Chen (jacklightChen)", + "pr": 21, + "commit": "5ba6cf0bfb68f2be8d15610e7972207c50254d6a", + "role": "Translated complex endpoints" + }, + { + "contributor": "RaD project (hipotures)", + "repository": "https://github.com/hipotures/rad", + "commit": "45d9b60355872041f9275f77c057514def0d45bc", + "pr20_commit": "4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e", + "role": "Semantic completed-child bounds, coordinate routing, phase-cell inverse and bulk transfer", + "license": "CC0" + } + ], + "dependency_manifest": "references/semantic-bulk/MANIFEST.json", + "curation": "Selected construction, exact data and necessary proof dependencies only. Omit exploratory alternatives, historical dependency tests, raw graph dumps and duplicate repository snapshots.", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "parent_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/24", + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + } + ] + }, + "copied_centers_extension": { + "contributor": "icekylinx", + "parent_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/32", + "parent_commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52", + "kappa": "384569/10000000000", + "archive": "integer_mult_round4_kappa_3_84569e-5_complete.zip", + "archive_sha256": "92faf75a96db227c5c49c2399f2a36502667e58951444c4bf1b23ee932ed8f83", + "proof": "notes/copied-centers-note.tex", + "certificate": "certificates/copied-centers-network.json", + "producer": "scripts/copied_centers_producer.py", + "dependency_manifest": "references/copied-centers/MANIFEST.json", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "scope": "Conditional on retained analytic and fixed-tape interfaces; exact finite moments and assembly.", + "curation": "Selected finite inputs, reproducible checks and necessary proof sources. Excludes alternatives, terminal-eligibility research metadata, raw graph dumps and duplicate history.", + "adopted": [ + { + "contributor": "Aurel Prosz (Paureel)", + "commit": "c82d09eb4781b68435e3fa3eb6beea72fa900fab", + "role": "Two-stage topology and paid endpoint-copy interface" + }, + { + "contributor": "Swapnil Jain", + "commit": "ae405eb474d1486b2d8aef90139869f927f4836a", + "role": "Linked two-stage development credited by PR29; no source code imported" + }, + { + "contributor": "Zhihao Chen (jacklightChen)", + "pr": 29, + "commit": "9d963275075fa98f1da821e27757b238dafd6b3c", + "role": "Unequal two-stage compatibility, common basis, gauges and physical accounting" + }, + { + "contributor": "Rohan Arun", + "pr": 31, + "commit": "02f68f95369c39955c5ffcfddbd75cd83e26b305", + "role": "Corner incidence method, symbolic zero partitions and rational pivot witnesses" + }, + { + "contributor": "Dominik Scholz", + "pr": 33, + "commit": "a499a345c040aa15b68e984a0904eadc485c7a7e", + "role": "Parameterized corner generator specialized to (25,23)" + } + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + } + ], + "continuing_analytic_dependencies": "See structured_bulk_extension.adopted and references/semantic-bulk/MANIFEST.json." + }, + "stopped_product_extension": { + "contributor": "icekylinx", + "base_commit": "56b66d58297deca1d7dd130247d720e960f77a37", + "proof_predecessor_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/36", + "proof_predecessor_commit": "11817ccacb564bb7f98789c20dc11d3fece207e3", + "predecessor_merged": true, + "archive": "integer_mult_round5_kappa_7_79476e-5_complete.zip", + "archive_sha256": "714cbffa0cccba3c18f046a63e62d6981683cb386b5d5cd09761be7b70f0b0be", + "kappa": "194869/2500000000", + "proof": "notes/stopped-product-note.tex", + "certificate": "certificates/stopped-product-network.json", + "producer": "scripts/stopped_product_producer.py", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "scope": "Conditional on the retained analytic and fixed-tape framework; new product-ring and exact rational-grid arguments supplied as written proofs.", + "continuing_dependencies": [ + "copied_centers_extension", + "structured_bulk_extension" + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + }, + { + "pr": 36, + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + } + ], + "curation": "Selected h23/h24 inputs, generator, exact certificate and proofs only; excludes raw graphs, research alternatives and recursive predecessor copies." + }, + "partial_gauge_extension": { + "contributor": "icekylinx", + "predecessor_pr": 104, + "predecessor_commit": "948ce1510df750f4c18b96bdaef436a86f8bf834", + "archive": "integer_mult_round6_kappa_9_26336e-5_complete.zip", + "archive_sha256": "e701a98b10864dc4b1414d9fcb1fc7c67b28e2363cb2a2292f9fed577a081d2d", + "kappa": "7237/78125000", + "proof": "notes/partial-gauge-note.tex", + "certificate": "certificates/partial-gauge-network.json", + "producer": "scripts/partial_gauge_producer.py", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "adopted": [ + { + "pr": 97, + "contributor": "Zhihao Chen (jacklightChen)", + "commit": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "role": "Actual deferred bit word, reflected physical ledger, fan-order clarification, gauged exits and signed endpoint correction" + }, + { + "contributor": "Swapnil Jain", + "repository": "Swapnil-jain/integer-mult-kappa", + "commit": "741e7aa078392553815df7926ee17ac5e25a8c38", + "role": "Underlying deferred readouts, V leaves, lifted frames and frozen witness" + }, + { + "pr": 62, + "contributor": "Avi Eisenberg (ikeboy)", + "commit": "ad0f25ff7b23cff7f08ad237c2254e6ecf74257e", + "role": "Cyclic interval and core-aware pair primitives" + } + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + }, + { + "pr": 36, + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + { + "pr": 104, + "commit": "948ce1510df750f4c18b96bdaef436a86f8bf834" + } + ], + "continuing_dependencies": [ + "stopped_product_extension", + "copied_centers_extension", + "structured_bulk_extension" + ], + "curation": "Selected generators, exact counts, proof sources and pinned dependencies; excludes alternatives, large generated graphs and recursive handoff copies.", + "scope": "Conditional on retained analytic and fixed-tape framework; finite verification and written proofs have separate scopes." + }, + "three_stage_cover_extension": { + "contributor": "icekylinx", + "predecessor_pr": 115, + "predecessor_commit": "cf60442983c153a3a0f5272ea4713f99eba13c86", + "archives": [ + { + "filename": "integer_mult_round7_kappa_1_080522e-4_incremental.zip", + "sha256": "ba7a7d10be57f614fdb4df4074ec5ffd2feddeac583f1fdf2da12ae7c02f6058" + }, + { + "filename": "integer_mult_round8_kappa_3_146011e-4_incremental.zip", + "sha256": "8e730754c2076bf3ee7ff1bd320486172ef6ab1c9897ddd633aef02a9ce5257a" + } + ], + "kappa": "3146011/10000000000", + "proof": "notes/three-stage-cover-note.tex", + "general_subspace_proof": "notes/general-clifford-frames.tex", + "certificate": "certificates/three-stage-cover-network.json", + "producer": "scripts/three_stage_cover_producer.py", + "assistance": "Construction supplied with substantial OpenAI GPT-6 Astra assistance; repository integration with Codex assistance.", + "adopted": [ + { + "pr": 117, + "contributor": "eumemic", + "commit": "cbb05ce504d571546d9b7794c186a613c659c3bf", + "role": "Pinned positive h24 local DAG and its exact support/label replay; original Claude disclosure retained", + "dag_sha256": "3c034d0aae388ef567a454826f4f48b26fd8a94c71e8ffed4835271b349a783b" + }, + { + "pr": 97, + "contributor": "Zhihao Chen (jacklightChen)", + "commit": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "role": "Retained physical deferred bit word and reflected ledger" + }, + { + "contributor": "Swapnil Jain", + "commit": "741e7aa078392553815df7926ee17ac5e25a8c38", + "role": "Underlying deferred word, lifted frames and frozen witness" + } + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + }, + { + "pr": 36, + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + { + "pr": 104, + "commit": "948ce1510df750f4c18b96bdaef436a86f8bf834" + }, + { + "pr": 115, + "commit": "cf60442983c153a3a0f5272ea4713f99eba13c86" + } + ], + "continuing_dependencies": [ + "partial_gauge_extension", + "stopped_product_extension", + "structured_bulk_extension" + ], + "scope": "Conditional on retained analytic, precision, ordinary-leaf and fixed-tape contracts. New general Clifford frames, weighted routing, local-ring fallback and internal row borrowing supplied as written proofs.", + "curation": "Selected round7 PR117 input and frame theorem plus round8 three-stage cover only. Excludes PR112 reclaim, two-stage alternatives, half-sign motif, research screens, raw generated graphs and PDFs." + }, + "paired_cube_extension": { + "contributor": "icekylinx", + "predecessor_pr": 130, + "predecessor_commit": "6a9970a530119174507904e23592fd59ede19a5d", + "archive": "integer_mult_round9_kappa_4_609169e-4_incremental.zip", + "archive_sha256": "a1f7c33704ba7973290096538f181a1d7530f108c2585724b1abc4a732508631", + "kappa": "4611281/10000000000", + "proof": "notes/paired-cube-note.tex", + "certificate": "certificates/paired-cube-network.json", + "producer": "scripts/paired_cube_producer.py", + "bit_reconstruction": "scripts/paired_cube_bit.py", + "assistance": "Developed with substantial OpenAI GPT-6 Astra assistance; repository integration with Codex assistance.", + "adopted": [ + { + "pr": 128, + "contributor": "an664", + "commit": "530588a019b4a74f09180680c9e3961bf649ec89", + "assistance": "OpenAI Codex, as reported by the source", + "role": "Substantial conceptual dependency: completed-core workspace sharing. No partition, source code or serialized witness imported." + }, + { + "pr": 117, + "contributor": "eumemic", + "commit": "cbb05ce504d571546d9b7794c186a613c659c3bf", + "role": "Already adopted positive DAG; exact zero restrictions supply the selected coarse query modules. Original Claude disclosure retained." + }, + { + "pr": 97, + "contributor": "Zhihao Chen (jacklightChen)", + "commit": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "role": "Certified physical bit word and rational frames; this round selects a subset of its entrance gauges." + }, + { + "contributor": "Swapnil Jain", + "commit": "741e7aa078392553815df7926ee17ac5e25a8c38", + "role": "Underlying deferred word and frozen scalar/frame witness" + } + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + }, + { + "pr": 36, + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + { + "pr": 104, + "commit": "948ce1510df750f4c18b96bdaef436a86f8bf834" + }, + { + "pr": 115, + "commit": "cf60442983c153a3a0f5272ea4713f99eba13c86" + }, + { + "pr": 130, + "commit": "6a9970a530119174507904e23592fd59ede19a5d" + } + ], + "continuing_dependencies": [ + "three_stage_cover_extension", + "partial_gauge_extension", + "stopped_product_extension", + "structured_bulk_extension" + ], + "scope": "Conditional on retained analytic, uniform-recursion and fixed-tape contracts; complete local paired-cube schedule, exact core sharing and scalar charge supplied in the proof.", + "curation": "Selected paired-coordinate cube only, compact frozen carrier arcs and bit subset, exact suppliers and assembly. Excludes fallback shared_core results, paired-five motifs, other candidate graphs, search screens and PDFs." + } +} diff --git a/research/pr148-source-retention/original/certificates/joint-dual-kappa.json b/research/pr148-source-retention/original/certificates/joint-dual-kappa.json new file mode 100644 index 0000000000..539f79b184 --- /dev/null +++ b/research/pr148-source-retention/original/certificates/joint-dual-kappa.json @@ -0,0 +1,894 @@ +{ + "assembly": { + "absorption_gap": "7401662048960220224568349/2500119118508849761762982300000000000000", + "constraints": { + "K_dominates_log": "70069711455672143807544257786481/1470658305005205742213519000000000000", + "K_geometry": "18751191185094747617629823/25001191185088497617629823000000000000", + "a_below_b": "1202629823/50000000000000", + "a_positive": "2382370177/50000000000000", + "alpha_below_one": "49999999999975001191185088497617629823/50002382370176995235259646000000000000", + "alpha_below_one_fourth": "12498213222342254764740353997617629823/50002382370176995235259646000000000000", + "alpha_positive": "2382370201994044074557502382370177/50002382370176995235259646000000000000", + "artificial_boundary": "1400076235845938851101863937492852889469/200009529480707980941038584000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "24998808814905252382370177/25000000000000000000000000", + "c_positive": "1191185094747617629823/25000000000000000000000000", + "cell_above_band": "49999999999924998808814911502382370177/100004764740353990470519292000000000000", + "compact_leaf": "511689911502382370177/25000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "1191185113497617629823/25001191185088497617629823", + "epsilon_positive": "24999999999975000000000000/25001191185088497617629823", + "g1_above_kappa": "2507520780557809981987550649/2500119118508849761762982300000000000000", + "g2_above_kappa": "227017/100000000000000", + "g3_above_kappa": "7401662048960220224568349/2500119118508849761762982300000000000000", + "g4_above_kappa": "227017/100000000000000", + "g5_above_kappa": "1889892662979557761771373423/5000238237017699523525964600000000000000", + "g6_above_kappa": "4390011781488407523534355723/5000238237017699523525964600000000000000", + "g7_above_kappa": "2499880881488657759017575509981987550649/2500119118508849761762982300000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "1191185113497617629823/25001191185088497617629823", + "lambda_above_internal": "2382370177/50000000000000000000000000", + "lambda_above_sigma": "1202629823002382370177/50000000000000000000000000", + "lambda_above_tau": "2382370177/50000000000000000000000000", + "lambda_prime_above_lambda": "2382370177/50000000000000000000000000", + "lambda_prime_below_one": "1191185088497617629823/25000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "1905896156594997022628302382370177/40001905896141596188207716800000000000", + "phase_leaf_above_bit": "1023379823/50000000000000", + "phase_local": "9529480882979749853495502382370177/200009529480707980941038584000000000000", + "prime_interval_packing": "1191185113497617629823/25001191185088497617629823", + "q_below_internal": "2382370177/25000000000000000000000000", + "q_below_leaf": "511689911502382370177/25000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "1191185088497617629823/25000000000000000000000000", + "record_suffix": "1191185113497617629823/25001191185088497617629823", + "row_product_gap": "6548/25", + "short_record_fallback": "1249940437906481169876170023160259011329/1250059559254424880881491150000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 150167598, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "1191185113497617629823/25001191185088497617629823", + "g2": "2382370177/50000000000000", + "g3": "1191185088496426444734502382370177/25001191185088497617629823000000000000", + "g4": "2382370177/50000000000000", + "g5": "1905896156594997022628302382370177/40001905896141596188207716800000000000", + "g6": "9529480882979749853495502382370177/200009529480707980941038584000000000000", + "g7": "24999999999975000000000000/25001191185088497617629823" + }, + "minimum_margin": "1191185088496426444734502382370177/25001191185088497617629823000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "2382370177/50000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "2382370201994044074557502382370177/50002382370176995235259646000000000000", + "beta": "1/20", + "c": "1191185094747617629823/25000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "24999999999975000000000000/25001191185088497617629823", + "h": "1/1000000000000", + "kappa": "4764513337/100000000000000", + "lambda_": "49997617629823002382370177/50000000000000000000000000", + "lambda_prime": "24998808814911502382370177/25000000000000000000000000", + "q": "1191185088497617629823/25000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "49997617629823/50000000000000" + }, + "recurrence": { + "internal": "49997617629823/50000000000000", + "leaf": "199986377/200000000", + "reservations": "24998808814905252382370177/25000000000000000000000000" + }, + "scoped_limit": "2382370177/50002382370177" + }, + "bit": { + "L": 2226400, + "N": 4073300, + "W": 150167598, + "axes": [ + { + "R": 30688, + "blocks": [ + 0, + 295165, + 23116, + 14929, + 8678, + 7127, + 5614, + 5667, + 3833, + 3467, + 2468, + 2252, + 1541, + 1251, + 796, + 569, + 351, + 170, + 88, + 0, + 6, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 6119, + "distinct_matrices": 59806, + "field_prime": 2305843009213693951, + "frames": 36628, + "h": 23, + "loss": 506, + "rank_sum": 706330, + "v": 1771 + }, + { + "R": 40338, + "blocks": [ + 0, + 392264, + 31696, + 17641, + 10483, + 10153, + 8131, + 7789, + 5284, + 5101, + 3815, + 3775, + 2524, + 2199, + 1587, + 1270, + 833, + 615, + 403, + 158, + 86, + 0, + 6, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 8164, + "distinct_matrices": 80519, + "field_prime": 2305843009213693951, + "frames": 48677, + "h": 25, + "loss": 600, + "rank_sum": 1009050, + "v": 2300 + } + ], + "child_multiplicities": { + "1": 1467264944, + "10": 12432765, + "11": 11865125, + "12": 8014304, + "13": 6771729, + "14": 4641377, + "15": 3557870, + "16": 2282543, + "17": 9626765, + "18": 916113, + "19": 279818, + "2": 109300416, + "20": 166106, + "21": 16346100, + "22": 10626, + "23": 78773275, + "25": 71438598, + "3": 65578911, + "4": 38524793, + "481": 8146600, + "5": 34373063, + "525": 71438598, + "529": 70582400, + "6": 27312201, + "7": 26828419, + "8": 18173864, + "9": 17007971 + }, + "deficit": 1846900, + "excluded_above_lower": "12013407840000034617567119163331256900156106920131838221089028243144481748920822043062786157678234846850265579427770519315398464959457497921/12013407840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "m": 575, + "maxchild": 529, + "moment": { + "exponent": "49997617629823/50000000000000", + "logarithms": { + "1": { + "lower": "3177185020398675220004135749131/500000000000000000000000000000", + "upper": "6354370040797350440008271498263/1000000000000000000000000000000" + }, + "10": { + "lower": "2025892473901652377995140021789/500000000000000000000000000000", + "upper": "4051784947803304755990280043579/1000000000000000000000000000000" + }, + "11": { + "lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "upper": "1978237383999489947973163960149/500000000000000000000000000000" + }, + "12": { + "lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "upper": "483682923876168766222320252303/125000000000000000000000000000" + }, + "13": { + "lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "upper": "1894710341667906851977392028349/500000000000000000000000000000" + }, + "14": { + "lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "upper": "1857656355591045912742843316681/500000000000000000000000000000" + }, + "15": { + "lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "upper": "1823159919847570187006133464057/500000000000000000000000000000" + }, + "16": { + "lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "upper": "358178131855756920233934301243/100000000000000000000000000000" + }, + "17": { + "lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "upper": "352115669674113435975873688039/100000000000000000000000000000" + }, + "18": { + "lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "upper": "43299978536264821847506861287/12500000000000000000000000000" + }, + "19": { + "lower": "1704965530815454989999622033187/500000000000000000000000000000", + "upper": "27279448493047279839993952531/8000000000000000000000000000" + }, + "2": { + "lower": "1415305715059351282647759844201/250000000000000000000000000000", + "upper": "1132244572047481026118207875361/200000000000000000000000000000" + }, + "20": { + "lower": "83965944181083986164326198053/25000000000000000000000000000", + "upper": "3358637767243359446573047922121/1000000000000000000000000000000" + }, + "21": { + "lower": "413730950384240930438459189737/125000000000000000000000000000", + "upper": "3309847603073927443507673517897/1000000000000000000000000000000" + }, + "22": { + "lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "upper": "81583189685975864663227394971/25000000000000000000000000000" + }, + "23": { + "lower": "804718956217050187300379666613/250000000000000000000000000000", + "upper": "3218875824868200749201518666453/1000000000000000000000000000000" + }, + "25": { + "lower": "313549421592914969080675283181/100000000000000000000000000000", + "upper": "3135494215929149690806752831811/1000000000000000000000000000000" + }, + "3": { + "lower": "262787887606462037430651313067/50000000000000000000000000000", + "upper": "5255757752129240748613026261341/1000000000000000000000000000000" + }, + "4": { + "lower": "2484037839838729910586903627673/500000000000000000000000000000", + "upper": "4968075679677459821173807255347/1000000000000000000000000000000" + }, + "481": { + "lower": "35700554138317851917337677133/200000000000000000000000000000", + "upper": "89251385345794629793344192833/500000000000000000000000000000" + }, + "5": { + "lower": "1186233032090812516351878041259/250000000000000000000000000000", + "upper": "4744932128363250065407512165037/1000000000000000000000000000000" + }, + "525": { + "lower": "22742944551431673576538712861/250000000000000000000000000000", + "upper": "18194355641145338861230970289/200000000000000000000000000000" + }, + "529": { + "lower": "41690804469525529197382917321/500000000000000000000000000000", + "upper": "83381608939051058394765834643/1000000000000000000000000000000" + }, + "6": { + "lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "upper": "2281305285784647719597897069941/500000000000000000000000000000" + }, + "7": { + "lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "upper": "220422994587101856745145937741/50000000000000000000000000000" + }, + "8": { + "lower": "66795757798711164246196486467/15625000000000000000000000000", + "upper": "4274928499117514511756575133889/1000000000000000000000000000000" + }, + "9": { + "lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "upper": "2078572731730565528608890512209/500000000000000000000000000000" + } + }, + "lower": "62569832499999899392275603731346766293953892347319528338377823689752779896809682699447926388641079802045017133374639615259668355101510629421/62569832500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "saving": "2382370177/50000000000000", + "strict_gap": "11248867897494845154891616121507648616029613798440244185600293734158263471617895676562393874205254253352374095904292375982443200389619751303283058885104343049812602560376157687920356349498145019467835124267960389791949480785895219534410086752610528496134981522766250605114200251247969178843023677633856349737858770092708283505242367600087389364016809162679682458221432506278877797422951185004774111384821544516902846815234697572379959639575748613883959126826966162116613130203803323770502839316680667407764292282559257298313634149693862264726732391016108266044220827816842982914767591124205865555732949411372727996669364946168248395305817029141575234927075027601369437530312274421681476392032478597100484064587308366564085204755540290294812766390136319278613531681584095568938797541348129806431224326074338320940219050008521642096161157760090511466937206498307246648019142090943579110089990942176492580691186069735381757561740899141495335329988406298036751085645385267568665135857509434544222774840769081484278851183254316788634771117029868233066945076374751682789648696704418170063047301632250489972041706333573467636583496462339503300059359507449846849085637706753621681105559375517879190265604985785301/7050475645855995397025483461334456166981237862846688196471908484762912208008806020683917988298778241533610179304376114677682493311558334116187495793656825188715429015995328839820256326968903045866574892756408694428082170705820435817293637840564169558735565723764467285553252163860919946593506200786792091475161832030913828716223573529590557555706373324456970673381354988972608732444407003283260500452980328336627387325938246083357180980042422170879181796262719216857978142285190365015473768076339250172763941264273951943209448095547763578705649431386152540772394084295310824464899755119870728403759576423382217762396079827245331057707978205396706742444461439537569722671077298352299420691971976875381381069063781241162303496177416827419420810821194231108853454341880715317843591148089909389441183600491563517314289610544194921141807691944224364000661563194585266717981805641123189055036121883003314772817119623816812367109358126179032965274056696625280360755536918776214113298628832007250770173939148554039327367458738263836709977430218558546568129230209383274676654149524170503299996024654761763663441726531600935892812764509314700488044567006537928183588756592093308675253000000000000000000000000000000000000000000000", + "upper": "7050475645855984148157585966489301275365116355198072166858110044518726607715071862420446370403101679139735974050122762303586589019182351672987106173905521905656543911652279027217695950811215125510225394611389226592957902745430643867812851945344635148648813113235971150571729397610314832393254952817613248451484198174564090857453480821307052313338773237067606656572192309290150511011900724405463077501795323562516002504393729180510365745344849790919542220514105332898851315319028248402343564273015479669924624583606544178917165536290465265071499737523887814040003068187044780244071938276887813636168452217516662029446668454517334388343032037148311436627432297962334795596049696982861890379697555193904989036585184140678238908869050263334216055280903936296087064205561436704311909563994340450643642252361757086089963536205873980922757683422582267839503803104073799780775307333876541035894030939424204682826177447324231675923288390797275403533157555129945030767130620739463027653243564438585634316429714009816552526689656779557858794175901769911797012200341150207731577774772487713651299320236591700616140094281110963851106430935847063904548104667034628124229249142246459589615293246378318894440624482120809734395014214699/7050475645855995397025483461334456166981237862846688196471908484762912208008806020683917988298778241533610179304376114677682493311558334116187495793656825188715429015995328839820256326968903045866574892756408694428082170705820435817293637840564169558735565723764467285553252163860919946593506200786792091475161832030913828716223573529590557555706373324456970673381354988972608732444407003283260500452980328336627387325938246083357180980042422170879181796262719216857978142285190365015473768076339250172763941264273951943209448095547763578705649431386152540772394084295310824464899755119870728403759576423382217762396079827245331057707978205396706742444461439537569722671077298352299420691971976875381381069063781241162303496177416827419420810821194231108853454341880715317843591148089909389441183600491563517314289610544194921141807691944224364000661563194585266717981805641123189055036121883003314772817119623816812367109358126179032965274056696625280360755536918776214113298628832007250770173939148554039327367458738263836709977430218558546568129230209383274676654149524170503299996024654761763663441726531600935892812764509314700488044567006537928183588756592093308675253000000000000000000000000000000000000000000000" + }, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 70582400, + "529": 70582400 + }, + "exterior_25": { + "25": 71438598, + "525": 71438598 + }, + "internal_23": { + "1": 678879500, + "10": 5676400, + "11": 5179600, + "12": 3544300, + "13": 2877300, + "14": 1830800, + "15": 1308700, + "16": 807300, + "17": 391000, + "18": 202400, + "2": 53166800, + "20": 13800, + "21": 52900, + "3": 34336700, + "4": 19959400, + "5": 16392100, + "6": 12912200, + "7": 13034100, + "8": 8815900, + "9": 7974100 + }, + "internal_25": { + "1": 694699544, + "10": 6756365, + "11": 6685525, + "12": 4470004, + "13": 3894429, + "14": 2810577, + "15": 2249170, + "16": 1475243, + "17": 1089165, + "18": 713713, + "19": 279818, + "2": 56133616, + "20": 152306, + "22": 10626, + "23": 44275, + "3": 31242211, + "4": 18565393, + "5": 17980963, + "6": 14400001, + "7": 13794319, + "8": 9357964, + "9": 9033871 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 86344521950, + "words": [ + { + "R": 30688, + "copied_centers": 23, + "distinct_transitions": 116867, + "frames": 36628, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 52653, + "10": 2566, + "11": 385, + "12": 2901, + "13": 115, + "14": 3245, + "15": 544, + "16": 1935, + "17": 187, + "18": 8185, + "19": 4473, + "2": 32919, + "21": 27, + "22": 23, + "3": 6306, + "4": 18054, + "5": 8192, + "6": 4437, + "7": 1089, + "8": 3900, + "9": 331 + }, + "rank_mass": 706330, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "c83396d1ea5427eed332c45931d59ed0c8ea5eae23d16e0ea909854d41796d1e" + }, + { + "R": 40338, + "copied_centers": 25, + "distinct_transitions": 155235, + "frames": 48677, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 68402, + "10": 3073, + "11": 85, + "12": 3381, + "13": 310, + "14": 3389, + "15": 113, + "16": 4218, + "17": 630, + "18": 2510, + "19": 369, + "2": 43162, + "20": 10763, + "21": 5705, + "23": 39, + "24": 25, + "3": 8295, + "4": 24232, + "5": 10287, + "6": 4330, + "7": 1843, + "8": 5262, + "9": 860 + }, + "rank_mass": 1009050, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "6f6dca829728cb01e6c425ada5878884b13bc6362e0ae2144347bde8a5852dbf" + } + ] + }, + "bit_saving": "2382370177/50000000000000", + "bit_saving_excluded_above": "952948071/20000000000000", + "comparison": { + "absolute_gain_pr57": "47535473/50000000000000", + "absolute_gain_pr58": "13777647/100000000000000", + "next_dyadic_reached": false, + "next_kappa_grid_rejected": true, + "pr48_kappa": "411862541/10000000000000", + "pr53_kappa": "140567/3125000000", + "pr54_claimed_kappa": "141532521/3125000000000", + "pr57_exclusion_lower": "37373865926770942159707184306911595810153068533362487492202378826323366811849201648233884715609887474608142528318795265032041655488927125257/37373850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pr57_kappa": "4669442391/100000000000000", + "pr58_commit": "bc2f7ed4c20dc18898305ab17165c0c995cbb804", + "pr58_exclusion_lower": "352953457772844733624423882261598145683419237923805904604166830371689327798919104195102399813801144393990139677678408846728723011183623070513/352953435937500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pr58_kappa": "475073569/10000000000000", + "ratio_pr53": "4764513337/4498144000", + "ratio_pr54": "4764513337/4529040672", + "ratio_pr57": "4764513337/4669442391", + "ratio_pr58": "4764513337/4750735690" + }, + "dependencies": { + "data_profile": "Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries", + "geometry": "Unchanged fixed-I+J original-envelope projector and CRT formulas", + "producer": "Unchanged PR55 dual-skip graph; PR58 joint compilation with descending current frame rank for retired-slot selection; complete serialized physical words", + "proof_scope": "Ordered affine residual compiler, fixed-tape recursion, finite scalar overhead, balanced transfer, analytic/routing/recovery interfaces remain inherited." + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 7048609937, + "compact": 28194439745, + "geometry": 3999936474164, + "guard": 4659448, + "log_p": 25, + "normalization": 14000000000000, + "period": 56388879489, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 667016056, + "rhs": 112000000167976, + "rhs_bits": 47 + }, + "compact": { + "exponent": 667016056, + "rhs": 448000000671840, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 667016056, + "rhs": 224000000335880, + "rhs_bits": 48 + }, + "rows": { + "exponent": 667016056, + "rhs": 112000000167976000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1334032112, + "rhs": 224000000167976, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1334032112, + "rhs": 896000000671840, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1334032112, + "rhs": 448000000335880, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1334032112, + "rhs": 224000000167976000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2668064224, + "rhs": 448000000167976, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2668064224, + "rhs": 1792000000671840, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2668064224, + "rhs": 896000000335880, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2668064224, + "rhs": 448000000167976000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5336128448, + "rhs": 896000000167976, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5336128448, + "rhs": 3584000000671840, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5336128448, + "rhs": 1792000000335880, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5336128448, + "rhs": 896000000167976000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 10672256896, + "rhs": 1792000000167976, + "rhs_bits": 51 + }, + "compact": { + "exponent": 10672256896, + "rhs": 7168000000671840, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 10672256896, + "rhs": 3584000000335880, + "rhs_bits": 52 + }, + "rows": { + "exponent": 10672256896, + "rhs": 1792000000167976000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 21344513792, + "rhs": 3584000000167976, + "rhs_bits": 52 + }, + "compact": { + "exponent": 21344513792, + "rhs": 14336000000671840, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 21344513792, + "rhs": 7168000000335880, + "rhs_bits": 53 + }, + "rows": { + "exponent": 21344513792, + "rhs": 3584000000167976000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "exactness": [ + { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + } + ], + "finite_bridge": { + "bit": { + "W": 150167598, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "kappa": "4764513337/100000000000000", + "local_source_sha256": { + "scripts/experiments/binary_frame_compiler.py": "bc6910c8bbe8224285164323d3c06e9035ad3eaa55416abc2867ae0066454a0c", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_compiler.py": "853d3fc4a740c5b74c23b3a6af5d4dc9b41fb38e9b55678539a7e0ee71947c13", + "scripts/experiments/joint_dual_compose.py": "741900aa6f69c0e3458700f3b534334269004ad80c50405ecfeda18e6d3f2800", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_joint_dual_sources.py": "4d31cc0e38b7902709ca5f8f714cba109760d2592346dd7f8dc0b900a2d9fe00", + "scripts/experiments/verify_joint_dual.py": "7a31bba1e9c0ded32ae285df2ca9bc91ef20c330f6789fdba361876f3c7a1985" + }, + "source_manifest_sha256": "8516e98650c0e1e03f729cd1835f611301b7c04c0e3183e83670c338395c2ec3", + "sources": [ + { + "files": { + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "head": "b7194b8586844956904b33e9fe18f0c75606c11b", + "scope": "Unmodified producer inputs for experimental frame compiler; attribution retained in each file", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/48" + }, + { + "author": "Rohan Gupta / gupt1156 with Anthropic Claude assistance", + "commit": "03e991aa79f9df1a935726213bb6a8631cd0d823", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "40a3066696e0de23e46b565460d19e85b435990ba837da5c1ca925335f4ba829", + "research/skip-suffix/skip_graph.py": "7c4781dcc3c134befd8abf295d1e71a99fbbe932112fb56bd5d36e79896ca5f7" + }, + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "upstream": "https://github.com/CrocSwap/integer-mult-bounds/pull/55" + }, + { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "bc2f7ed4c20dc18898305ab17165c0c995cbb804", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "42190595687521b47eb45231d85e3dcb09ae6359d8a232bc7250824d5076ccc9", + "README.md": "da14f42ddaad466799dd8944e2a05cf8f8f4ced392513d0198553e1f587fa7ef", + "certificates/joint-dual-kappa.json": "c05631d319c71ca6c91e8422cee9d617d9b0056ebf971db8282b041613b09025", + "certificates/joint-dual-repository-validation.json": "a8caabfc0a475a6c2deaeafec5b141825d1359fb9cebb35939ef97c7a1315cd6", + "research/joint-dual/PROOF.md": "dccf893d6f6e8be7d40192b7976aa6712a32d7573e382c16056b703c29780b0d", + "research/joint-dual/README.md": "0f991088d65eb1d528b986568c3ddfe0f072d1f53837e046de8148dfb098e561", + "research/joint-dual/SOURCE.json": "7af117467d06baf9b073a081e62f928e4a06b074c1274f2479587e3400b428d8" + }, + "repository_validation_commit": "96c52fb81cab6e714768e00ca33ca7f004ebcac4", + "scope": "Complete byte-identical PR58 comparison certificate and source/proof provenance at the tested construction commit; repository-validation receipt from the separately pinned receipt-only head. Historical source and physical-word closure remains available at the ancestor construction commit.", + "upstream": "https://github.com/CrocSwap/integer-mult-bounds/pull/58" + } + ], + "status": "Conditional exact fixed-basis moment and balanced assembly; inherited transfer hypotheses remain assumed" +} diff --git a/research/pr148-source-retention/original/certificates/joint-dual-validation.json b/research/pr148-source-retention/original/certificates/joint-dual-validation.json new file mode 100644 index 0000000000..a6cfd1fb73 --- /dev/null +++ b/research/pr148-source-retention/original/certificates/joint-dual-validation.json @@ -0,0 +1,237 @@ +{ + "axes": { + "23": { + "profile": { + "R": 30688, + "blocks": [ + 0, + 295165, + 23116, + 14929, + 8678, + 7127, + 5614, + 5667, + 3833, + 3467, + 2468, + 2252, + 1541, + 1251, + 796, + 569, + 351, + 170, + 88, + 0, + 6, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 6119, + "distinct_matrices": 59806, + "field_prime": 2305843009213693951, + "frames": 36628, + "h": 23, + "loss": 506, + "rank_sum": 706330, + "v": 1771 + }, + "replay": { + "elementary_xors": 112534, + "full_basis_vectors": 34230, + "h": 23, + "histogram": { + "0": 121045, + "1": 42027, + "2": 38232, + "3": 6306, + "4": 18054, + "5": 8192, + "6": 4437, + "7": 1089, + "8": 3900, + "9": 331, + "10": 2566, + "11": 385, + "12": 2901, + "13": 115, + "14": 3245, + "15": 544, + "16": 1935, + "17": 187, + "18": 8185, + "19": 4473, + "21": 27, + "22": 23 + }, + "output_roles": 5336, + "rank_mass": 706330, + "roles": 30688, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 474930 + }, + "transitions": { + "R": 30688, + "copied_centers": 23, + "distinct_transitions": 116867, + "frames": 36628, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 52653, + "2": 32919, + "3": 6306, + "4": 18054, + "5": 8192, + "6": 4437, + "7": 1089, + "8": 3900, + "9": 331, + "10": 2566, + "11": 385, + "12": 2901, + "13": 115, + "14": 3245, + "15": 544, + "16": 1935, + "17": 187, + "18": 8185, + "19": 4473, + "21": 27, + "22": 23 + }, + "rank_mass": 706330, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "c83396d1ea5427eed332c45931d59ed0c8ea5eae23d16e0ea909854d41796d1e" + } + }, + "25": { + "profile": { + "R": 40338, + "blocks": [ + 0, + 392264, + 31696, + 17641, + 10483, + 10153, + 8131, + 7789, + 5284, + 5101, + 3815, + 3775, + 2524, + 2199, + 1587, + 1270, + 833, + 615, + 403, + 158, + 86, + 0, + 6, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 8164, + "distinct_matrices": 80519, + "field_prime": 2305843009213693951, + "frames": 48677, + "h": 25, + "loss": 600, + "rank_sum": 1009050, + "v": 2300 + }, + "replay": { + "elementary_xors": 148820, + "full_basis_vectors": 44938, + "h": 25, + "histogram": { + "0": 159745, + "1": 54602, + "2": 50062, + "3": 8295, + "4": 24232, + "5": 10287, + "6": 4330, + "7": 1843, + "8": 5262, + "9": 860, + "10": 3073, + "11": 85, + "12": 3381, + "13": 310, + "14": 3389, + "15": 113, + "16": 4218, + "17": 630, + "18": 2510, + "19": 369, + "20": 10763, + "21": 5705, + "23": 39, + "24": 25 + }, + "output_roles": 6925, + "rank_mass": 1009050, + "roles": 40338, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 627480 + }, + "transitions": { + "R": 40338, + "copied_centers": 25, + "distinct_transitions": 155235, + "frames": 48677, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 68402, + "2": 43162, + "3": 8295, + "4": 24232, + "5": 10287, + "6": 4330, + "7": 1843, + "8": 5262, + "9": 860, + "10": 3073, + "11": 85, + "12": 3381, + "13": 310, + "14": 3389, + "15": 113, + "16": 4218, + "17": 630, + "18": 2510, + "19": 369, + "20": 10763, + "21": 5705, + "23": 39, + "24": 25 + }, + "rank_mass": 1009050, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "6f6dca829728cb01e6c425ada5878884b13bc6362e0ae2144347bde8a5852dbf" + } + } + }, + "bit_saving": "2382370177/50000000000000", + "certificate_sha256": "66de08b4a858867225ff87bc129fda13f9653c154b1d866e08aacc89082a4153", + "kappa": "4764513337/100000000000000", + "margins": 7, + "producer_words_regenerated_and_matched": true, + "scope": "Finite conditional witness; unchanged data geometry and general transfer proofs are inherited dependencies.", + "source_binding": "Source manifests, inherited manifest digest, compiler receipt source, both word digests, and all local compiler/verifier sources are bound by the exact composition certificate.", + "status": "PASS complete serialized-word replay, actual CRT profiles, exact recurrence and balanced assembly", + "strict_constraints": 47 +} diff --git a/research/pr148-source-retention/original/certificates/paired-cube-input.json b/research/pr148-source-retention/original/certificates/paired-cube-input.json new file mode 100644 index 0000000000..5d521f8080 --- /dev/null +++ b/research/pr148-source-retention/original/certificates/paired-cube-input.json @@ -0,0 +1,66 @@ +{ + "absorption_gap": "162320373182864259926389355983/1000923107880453381493189210570000000000", + "assembly_minimum": "46155393330338167781078943/100092310788045338149318921057", + "bit_child_multiplicities": { + "1": 193950, + "10": 474, + "11": 1365, + "12": 585, + "13": 1059, + "14": 330, + "15": 2580, + "16": 3180, + "17": 4935, + "18": 3246, + "19": 9987, + "2": 200588, + "20": 7161, + "21": 1242, + "22": 75, + "3": 40116, + "4": 33642, + "48": 72, + "5": 18126, + "51": 131, + "54": 806, + "57": 3871, + "6": 4875, + "60": 1307, + "63": 1596, + "66": 1760, + "7": 2250, + "8": 3489, + "9": 1482 + }, + "bit_moment_gap": "9683053551624097783276572314019807322107841/67308782636558677514166530014945948467200000000000000", + "complex_child_multiplicities": { + "1": 79374, + "10": 5829, + "11": 3261, + "12": 3291, + "13": 2028, + "14": 6972, + "15": 2478, + "16": 6789, + "17": 4794, + "18": 1194, + "19": 11760, + "2": 81787, + "20": 11880, + "21": 2640, + "22": 2712, + "3": 34704, + "4": 29763, + "5": 22455, + "6": 8535, + "60": 4840, + "7": 7929, + "8": 7881, + "9": 3603 + }, + "complex_group_order": 18646466226026462592952011788951531754110931481867826045386715225513339911071134170601952718216417488289150428632052202980863033609242977381747250264990084715296201847651908198681766675753160791649285107510691238985963706255089989456699920961342595095228775420538279717562788772643958616644258216248819271553295126895131993564379512367852197664617342277934678865080413621612751262266453859055432749295232782952753053108052418519375708005607816485667984223061786810719121526682978029691520838623314161409960947186213220855798991391576957539912643800234313922722815599751095827998877881904497464356201696239917156093128550867728502903876632148399699575860894114797305318253105534652030783324407335764468260764573859627847585742189622249940283054201241600000000000000000000, + "complex_moment_gap": "35983219312333093839004994137969/179068943294158619192045723836257040072704", + "kappa": "4611281/10000000000", + "row_coefficient": 20445, + "row_degree": 70000 +} diff --git a/research/pr148-source-retention/original/certificates/paired-cube-network.json b/research/pr148-source-retention/original/certificates/paired-cube-network.json new file mode 100644 index 0000000000..882f860552 --- /dev/null +++ b/research/pr148-source-retention/original/certificates/paired-cube-network.json @@ -0,0 +1,337 @@ +{ + "assembly": { + "absorption_gap": "162320373182864259926389355983/1000923107880453381493189210570000000000", + "margins": { + "Gaussian_arithmetic": "55386772457959738794661850681078943/80073848630436270519455136845600000000", + "bulk_exposure": "9231078943/20000000000000", + "compact_phase_layer": "46155393330338167781078943/100092310788045338149318921057", + "coordinate_movement": "9231078943/20000000000000", + "dimension": "99999999000000000000000000000/100092310788045338149318921057", + "original_prefix": "4615639425344604823446043618921057/10009231078804533814931892105700000000", + "scalar_work": "73849330343959731409798696281078943/80073848630436270519455136845600000000" + }, + "minimum_margin": "46155393330338167781078943/100092310788045338149318921057", + "parameters": { + "C0": 2438297895238238078067153532774181517056757432347400101541316073462367574449073751020171780970576171154380735349271706038418996519245086247004593397209902684996163494963732874750837636031053333525559200351056474142919252944749147040985298113590026172650453601280416999010128730562642065096829826644992014749847188208921286993983067267835787953271628714200716747799129805127712034843634550832571657687100605940054554623925618316554564301453094049482732078439324249796023560257760641690077705747388611516217811026366050937813701604705309307081591330936839307264040416270832161185190910697871624314344508259872270741758998055212093026443282609318243232272217242654867245130373643305989027208560077852923762835488465765556716018170140096638971586369905683742568733384341630531184310184490034884632229164765076191834141506309797060192741568479707255856401197821841964061476704867524340979660005439639873543181712968007476652199361610255241432080130256573361140534301784674493015159823345635681191176891722063584872653196913097048339655095396909788602701083355075451797743471939962441796436641484198240345566878033021225790461139622858846209744886306410735906740427982410179221210903617690195421664309168568529447224284167172585567796503885189855962177602952126058535248977013010462587305744899947243392531883824246767090984294068115700621890166712154552335401981355652610153737356845755324733339650995526159274863347154160528547138530493882286731129799901852419564500606122460849703381860542347979393300339393333686064845010136901320943976051864021724109943723655668001065486776480333398640482109711803557792129999042618991947413310970433429688463893200654402255859845335550629418132508092160851328789548765764467107449421344809095221131472967130689090631392173930899990577603675663895883374287183943404707788773274506411222037777903140343343923706239600463638319388459497332645282124305816214922832353195056346071743514210674612762620519962890338101971320803948820985493961492541306267557170967614776245337184289754661833049821025098346061549953430864856635260492847299732451643763324035988414376540252876751756199989229946705088415817975504678395881853846464481170411390105890185362749257198746652566280299362166121260451725721343439647014442167063988898844564971428220793280764857628474764958348750790268587797528075962064010030397675481206040211656837949005124944767476058114700325973428517820020140479890647131233758055014766110030754139613797292753311689057341112872602924543366696262115832868394534998314834414003080663285457993691292931547219134308358057604620161498164969080166205025164637612352877803150808034837041703245203996519802062681587332674980756943912672103253409975292183104316292474801733932664495262489454944408791200251699702081142049467615773443463524311026448747681802229211640444471841161492846902645740134861538575827741883070469537450794888700098602754988395257933781726445800215020487604516801930599757674357640660897780419176223301329235888546870863963454024387678034904648600465687829097838971971757076158456058133288937981803662500396328970883284929021666215043418697687480445604824251453739165319718493991763085775533275001785086791933493863569504895962743458783842063822635234568278575852047183990875307288105059226187461895040899586801972787667139938183125575979831659717741979838487096265811368210775155033456903855792813638327023389728951250652983157026413954419564249744129826574562878271247955172887207068855433338954263595747509599229241954361647521959741738272610814740379482694175765818384316944728198617438497232255738836145273219367076424375853873519074638681510139147251353654844049714602947445649190425338131052584282704672832151001747859022247208814085492068028634452139423467371943963589818457623822322111952599211215246751035865476535665863947377644522103086086026461175500540464893194576973858982881460649363248739124112579549202022667882859879560487874320335804206225167210483675245153541218131523629135129122794376484624918843696831910952228420095370936570435060436769279601776465966956835121565362855486539350193086801398801543715656157953734792692774101710986472600917096536861901432836106428842077310611562682851948420929609762475425795848384810410037838978203481220790502059909357509659467851051933535814778906660794882298358685174702860123493677255656918160138299677047576165944610522360615025545053955094247884235752555581108560149168681562368018765524528053069141303599583074812019240525564187208476060202959754505048585536677311615486173552618475823094991812177525297636580670121676784431080846892974899651386216736909951799304217098887505036465239884273129539089730484352236395062574898503596192614631699063290636485688299332269767653212066339919388038015477913949559909030240490418296143544838476097031168475861476943243455128707985670461752223666255606233065439533870589455857358654085579747160846095377776855367336320953813126604257651773965374242308954053246267193818904690785460156189654365431578654947353918880552459360257693678702689590553056466216439793633674485225902256339583637639116565446522127461992780400733143302473009686480370350746971806888420225391556129104236144477169090904720634999772231046564941756306582310600272375287951807656658449620766783678909831442394484962167996848630286325177298522488541494919422713893438872149245712380830823121484420089757935500099244737367860348360106319002647859431282272016624794143457090747671799955721849330556767480653894026783274299493111135897487613429107916481212981861337148830597835927030845303609794804787699469390521595792292853455747099559808427966815810053438917071917487420134216559391067302786643898676512430597985654214655652345569398659841927589282906698038022287795574357887976614612068583138939033975030569675076908924590974913120938119003740633881236457178038566311212468610413243099145557470012067710079954779378066997795586573804472409909042507469556769081975541717809799371830864649327607303067505525127843414131081669323257683651525793177596781575566966967691900505281946569268685554733005110588400604281359226952521944735914221992449772073743373474859040462652751692032686532373772817470686489874389538619507613525099765348974798232387090807583239869483552552612383558226845054983486608694912735530353537237525080820034498713335151706938234351193773757586829016491274672421640591717552843642587296819730299670670983969589854055248297937132748104224252778159243159575345943460498996688262409245025417019350864859637790239421836992971448496237009745185994649334080254860619323754726868681869249856444595378996702146935959404545307892129108096282944668460709772086550997284315252831376944968004622139858689209468595564262779229625643968471127925014478669190078406139534516986414883504595277316485872082795563795334920568572621111085326247596981148926235480843797954806351963870213060754695736487371970078258905316147862475168632458836107720155791513858399141396362884749355294496954291287395151697046459845437775652724926056106319241299605402834012284609386297744224462997829645921667804726137161044583606194001114713139175842038505551567682378197948640174158085369894681776751555637467075732973354567960170637737398196379825543689224436658016303377662397514335946013371414207538972315705739402329636593596510180772504518615985060420070917535377461957405376047575573431170636097144501733022676714026303964148970788262174983410012535669216724942154995771463841221943879626961857562326765011315782452106811450259883993482211053193424102576734541167764875598727136633698059880988988019723381943963375500259088714459356351111124604279931739943167473706909687775941432656240388069934380532644776088452052783177389648139202044460191486621235301411043942937653994273002471595368985216034015858221023451049386189547982082357551487855218115483599260499769537414667989514420826269144490360517260282915850063101625806708259231716273169136844614708091282298426087986641278622920161891884624764739790919619667740011274192898812698367651874560198658548645782025529560786143585100517779123560684084765314506330088253933488758836361805539852703642909655626176482064508329882908127731266624559710715744554904468511434199254356518389833135302011595220734980434684276499550699607927094464143120756546583101617186050975464846541536050038871232378309577767381852023282590070010166856152127551933832787254320771601437209236185495862167920567017681938222015881464149446724061346467555018856293392072527934547985199337645563019122872448150744876510212611593522855986953422973175651158876903126420579550204130157748675782117933921215494995109632230406625270882240226768266838620370574058091210106085724372794403002879147625330367524105628681552808222353727599296439563116454045252759603430704657560191271047680415713216235975855388980612239915230442865177785042419274201956992828730540667245415545631441875720907277343445097054861989043657216295483507866143922002532945378412989409192085200268649561147336822009411898827704834913137719160525092442632039279933672204531430797777681315875679496143335339008299234285883408496157317343723638077723602119328382396319769524832601650134788229160224533935283001461119620810351959615206984223562601722791860372941161135538237575287135931286093760310135230042924154150891582578249318979229931627624861667071516590152479444998372275364770648826337935226562228683610034340811348908301922733167246171689843662113223368152446424923597594023158860886569076546471982748099205724589805885320723410829143761866647877696583635713106055739071774600491766186616218503804506107647542422474957495206826158334434704585869195181830129651454512048095043330003331078511007057583470705543878478339473456952797239530495303062861921125488511188840372782679257878963660586911492011000253058688013676903079552640733159787918525729283216392229433947262969912847339182875821084930912643982106960118658658320198167303822920623752130744021997753324325166270927302939211382631963757455450568313708621020487062672735130552969910550872695345373758454711091016976818082472960235114723700516490871004195144338575727670187283186785184655068574781483697234679806248552191307698724813315853397646826783251826004257499120379149797239514703676460568010708619152945159254912071049794325753554239725381396965608913256514622092943947514474557156288852160462180067114244136217748987545020353131071263580820396285194680700376758129660434090340076389501825610452732854980672723989930607926329491964938925679361096244528900967270140710188736132763611952165965901992125552984688971082289935697104885045919372628810862227268177784143685251823721732540677971434662436272578527410396310578004876248981705806545757541549786208821858143433874390838325715400253161533382635906783049979328580663334189685048841221495414232685794910292848588909459268809296983109820862304226574095808779726142137770557484573699836456496266195341097725924590096765737450102420465264898811905465266269185207445060785462242805028903320125532119446362278828870436608909619979578785167557699907636978376097008484626420527488405924254063032557661368377488146543411652259387710375015017230088757735323483402702198193955078709490618133437706120345121280994106657754232703440445058403517540408320977100673490235072641888229822310433276656871801750237897376467911410765785672061950627148548422750196829611859831359341864457928476414045296595554896447212025898411794252154838236759151970232455580320754966664281748214798349123249776633235468959486306308088335886947282835736548611538943064351444251293701444362640369758061483297356782293601492843917471488318198558137311834215488084671837883166670800733981350139946453935063907578451481688799820016975607705048491126355512231855883907964115533761448151135028907776782064776307762150698842660948977901488886936074202154127495828828447920090764392963127200506991296723698996948795051828580428066811288664603958452553430979332122765746895230465407435333700357013935815950556684315640480059970547497284989376133109499056839485875471095923311617567579907098856507574036291407040438040584292662297401017008222909933550318060725841907486956759212439128806766743481732917779804816656029376232904969949369035585073729766219853350210883820634722268403094491597985408114708659673291026855622278822277368102793166407343660630204872729856012769691611035403997455704782156143479928012083478424938511308231300877524005737936755696824892091795189183429418597670749599033825701275471377937848654992733009343176145990639879931970806030828639747814283841735309444030924382955963400900062706900741344897739137262247131086498544581757797615357336500844957002094893513718937553308690115782325290966788446921405542688724876502360002423869768468326046771715088531540760384925088019026478550852810038431516523502505887095013536576170252221647389563145118842517473700426073042223833745084886896863804260259465798148502439577130756531501952033993366096143105697779476611496685255498706777768196944446332358359538526788922950095045775698606323687157652024680842558846852062658862174732630085395496833395240699741308143282693109515732728325695109739002848268341404261941915838714505169929124194487333961968854730280284260715956891372733821053726696227155833933763394213488963745627997539668817725244580704524384759418566907907796432698245474051587935319442374432858593567423521546304564961863668987697848518777386151183963591617380960909346132550002485481292495238752524613233471572476500142235396743158123314720548585172609410858282869694664800958078643760203301622057274343452125481975897312151429266049707696198898401112503036947466964236119376224601101967576427632109171618049876520076855385979649369633780017890217918716203305867290022988418408389071480440825717842716839139833065284411201246394260709670056708218940070100032396314815673753376368940338592588193603786223500153659963269662424644616355905008195873177318950031389863409162816319990978895615312760937488082394334861629555613312132416626609704101501483659026178024161017600908762970369655919778365742863701415337887463491218801235767789415244874623625069555462018402601226887757824, + "C1": 1, + "a_bit": "9231078943/20000000000000", + "a_complex": "4856569/10000000000", + "actual_bit_saving": "9231078943/20000000000000", + "alpha_squared_power": "69233590687838158550000000/100092310788045338149318921057", + "beta": "1/1000000", + "c": "46155394253446043618921057/100000000000000000000000000000", + "delta": "1/800000000", + "epsilon": "99999999000000000000000000000/100092310788045338149318921057", + "eta": "1/100000000", + "kappa": "4611281/10000000000", + "lambda_": "1999076892114931078943/2000000000000000000000", + "lambda_prime": "999538446062081078943/1000000000000000000000", + "q": "461553937918921057/1000000000000000000000", + "sigma": "9995143431/10000000000", + "tau": "19990768921057/20000000000000" + }, + "recurrence": { + "internal": "19990768921057/20000000000000", + "leaf": "9995143435856569/10000000000000000", + "reservations": "99953844605746553956381078943/100000000000000000000000000000" + }, + "strict_constraints": { + "Gaussian_arithmetic_above_kappa": "461561769482976479973487259805685541/2001846215760906762986378421140000000000", + "K_dominates_log": "4615539379189210108446062081078943/10009231078804533814931892105700000000", + "K_geometry": "4615639425344604823446043618921057/10009231078804533814931892105700000000", + "alpha_below_one": "100023077197357499990768921057/100092310788045338149318921057", + "alpha_below_one_fourth": "99815376425293985515118921057/400369243152181352597275684228", + "alpha_positive": "69233590687838158550000000/100092310788045338149318921057", + "artificial_boundary": "560609252301283853360210893461081078943/80073848630436270519455136845600000000", + "beta_below_one": "999999/1000000", + "beta_positive": "1/1000000", + "bit_positive": "9231078943/20000000000000", + "bulk_exposure_above_kappa": "8516943/20000000000000", + "c_below_one": "99953844605746553956381078943/100000000000000000000000000000", + "c_positive": "46155394253446043618921057/100000000000000000000000000000", + "cell_above_band": "99976920802642500009231078943/200184621576090676298637842114", + "compact_leaf": "24102476424178943/1000000000000000000000", + "compact_phase_layer_above_kappa": "162320373182864259926389355983/1000923107880453381493189210570000000000", + "compact_reservations": "461553937918921057/100000000000000000000000000000", + "complex_above_bit": "482059057/20000000000000", + "complex_below_one_over32": "307643431/10000000000", + "coordinate_movement_above_kappa": "8516943/20000000000000", + "delta_below_one_eighth": "99999999/800000000", + "delta_positive": "1/800000000", + "dimension_above_kappa": "999538436229016991505053470496389355983/1000923107880453381493189210570000000000", + "epsilon_below_one": "92311788045338149318921057/100092310788045338149318921057", + "epsilon_positive": "99999999000000000000000000000/100092310788045338149318921057", + "gamma_sublinear": "23078197357499990768921057/100092310788045338149318921057", + "guard_width": "92311788045338149318921057/100092310788045338149318921057", + "lambda_above_internal": "9231078943/2000000000000000000000", + "lambda_above_sigma": "48205914931078943/2000000000000000000000", + "lambda_above_tau": "9231078943/2000000000000000000000", + "lambda_prime_above_lambda": "9231078943/2000000000000000000000", + "lambda_prime_below_one": "461553937918921057/1000000000000000000000", + "leaf_saving_above_bit": "241024671931/10000000000000000", + "literal_scalar_guard": "32531354368216600227512879385747201538766692520724487452857024390628281444216905316995799500013579759631782797251132303442294425462561655407367524313611018350253109536400540155487893395958594914320630079624240507771717926758376533091719157472156113998042146889910840221394651912528384844611737944816829094299403450141209650601935845929956083042765575223213819674241055613188458323966082177693399435575245693114664673858221564555397392109780241767411765078779691554938575663160633620333042053391728268976455119353383572190696711486600173375193110317619994839271317942572577696867265120798908955641148076827176014770204837785735646491529927406154329718702380766035534239626230661758154006513989207579684538598647442911935796622652484996047158586150735990956325159978647334051992435984062226128606891569702714900395210927028082448680734699243723008457914513732085897964382514209122604928099849768874565782284717745762825692947427297788449905632510009326520703816047142001949060989435768137028178747842393568933454307238623196150858847591191761895343720986756584180877915128467837443101534425948418800022456143554539062545609859764460760534478812979312455552991215241015653906492863575884462244010459550197710269730343174849490898836787613863265071047145035903669555692012586377800138712754263358839017762183658263876653361936073544980881618970479746243198423220456341886525995112585259532178506328264817330647631511334915310317829896246433840281005827911549310239209573271678050284109239346117644319392878391723563131357710737057050217233758581478774994836163769811937856682252963873622106405970827378390254107575940276876035175451158460301349647172169461907783856388685366682944182362779216098265174591163265033373150428195998161335139548868645132211651385692470069955141898927733941850511685375532449530285765808515520564298759440353922982682471707422863169339094406412197161257918694477679432511264294574545718777488617000041089221215759427341123182107277352129596982293614954384688360153899603551775220011243896923949436857735369871560709839611694590473103629052410280101721824416467721046830822155713029932152786612633393456801414122916045085174008626623400865554414048357189501175937687089018611377554025718944984791791400562827158579298813761300283244181663757142583592282626024981988748479196826802321414704486408421165239282609324855079302388057334310486818433778770878307077224045886931513494348081649118423708015265546327949541059849238610128608860981041771106513861085263766801863362330960335556909069368617120916726404794873751037440549304738576265563097721210366949330424815611076388310364552169006089139235937391749309331235217441643542162922924322208635105328348937085775067059789748645687424337179151097117915512438159092516970917469740534732474795881784893061966587784816113974434770735367909088139619906220844017270129878712546491373526443360785464149435233145755521737502615751258861322537196619106690883559428558929087504289621908181020784685409445784934819523781240707056050834898450313263431385128663013226287378208817387367185096992541094516545218019588679618896923935170084000263267167614661940198349509920085354422095390635342907883634300171291699680163243973496934624989106253189831978110116065418442564696734264845151234183067277311427843288366909916263807498253040048509679468717637170157571344802215381373538729843118797748156473866292979000531219112475885245734097406514189618047791360206095215041056911386913566100770253944881654794558499048470273688276765228846245600247301947188984617573216417893243831117920207512825183271442644242069344411551095131533670550248635583619825247269775802307802652879648331867931845404887667305932104773133423196017457372237054815181902164882446951350494486381187141120586575191302761108598400852224406074600641508746666077173681797924035686817274015174374168214522926010892188440931823750909053681105378609382456962880469439705529620441533812798553280825348471642726213394325096354638254300242374895068446136203583740169882502305221386470757178983556402733741976037757633589578653544408729126954997363372492255458868036576382045542246473823007888625214924967524441307985448629092768114818592098084527920833348421193961486856610152511675403913932538751933930663968710166948113418581406114068134930051104918895157735725487381490617745195993208204580577090966769323282876699170969270324428243912089808315362492073173948838426818383129475802490211153672760103234938665729100559150598355762980041040301469223079502563209145288484759658884235395359556485447198530888607950645349036917800279633241633905016732643950083630032560578083585818380747438135932603647982879115733880410010949650448876677609601679562507165119258366709655868331040084518600636894812579413901081118074626815459378973679143621928776795141156650308516230648974944773444215229834076209952010150750620929864393011679022575113880365752564700090892720505508424816551122407182561613739659019946174982567180315088579203128331389395714525548347749432796011746091000314562057338509161467703579357157079481065092991223190943295244486971019334155405942913283835632167867362688047866571583726977516611175443230778267258371898547935735874287474070637851128786579036686374114156693761716898956153502783057388358657967336010358518128603476713366173725228793728716322188987313729012644146287470163224118093244276091738695119649244570771288738733047356147108397169650283326717486389380017404322994089998798010406859630003030310706456223635650653290650544293290516744072749427053206068277036573835014519846717980264816509783223683247092234376907931046478666198782875704416877993738410497866045618285984935306674447270172179994661236697668707228813113418419746356548899621713394104206067400272585673149060587266370373171239481978751243619440138884264452368664105252800321692367264307261885372069000596378150104595609332547314108853472572730985592698475844091063819541667894890573786859130833381531678670384241774512278478641561855323299278242763248737738642261361978887978723058710763301938723624171247937080497595258690699702050656384703492016639913990084070998796750194926127310241572190043392079224054673831237007405479285590181048055580974024254730732906354392089271542384925212063246057118719070068153481359982136683583151127652975230221933752561184530013787418177761992187253101452937512698576770769586735268446438057795118114184344258484583440766782073098887809134055761108955935481281186432280951557373358267687866926907153826105250739868376388587657604661092669121042116727183545497033896567572349664208871089536316441530779099928394887279932998657058567297195041205171344581292802369806038455258409988877061463810896308668422378506489094350148163380684573521410371448802911051280413300908136338086859829755513062922962774063660628015681792048591635074575819709198793323216439493565302423148762405333548186446671019423737738105735960446958136877147218714492012271656777215941298526284694522756821278970693933111557390115183506329387378182747777389233913142854823581955970722370110014520525861391676", + "original_prefix_above_kappa": "10171551451987398074858281461683/1000923107880453381493189210570000000000", + "phase_boundary": "55386772457959738794661850681078943/80073848630436270519455136845600000000", + "phase_local": "73849330343959731409798696281078943/80073848630436270519455136845600000000", + "prime_interval_packing": "92311788045338149318921057/100092310788045338149318921057", + "q_below_internal": "9231078943/1000000000000000000000", + "q_below_leaf": "24102476424178943/1000000000000000000000", + "q_below_reservations": "461553937918921057/100000000000000000000000000000", + "q_positive": "461553937918921057/1000000000000000000000", + "record_suffix": "92311788045338149318921057/100092310788045338149318921057", + "row_product_gap": "141461/5", + "scalar_work_above_kappa": "923125716632976295351908399805685541/2001846215760906762986378421140000000000", + "short_record_fallback": "1999076019977528262942880507518039247997249/2001846215760906762986378421140000000000000", + "small_field_exposure": "46156394714999981537842114/100092310788045338149318921057" + } + }, + "bit": { + "added_bad_moment_upper": "250086396087176408068814279467692677892159/67308782636558677514166530014945948467200000000000000", + "atom_exponent": "1/2000", + "bad_fraction": "1/10000000000000000", + "coarse": { + "exponent": "1249422793/1250000000", + "log_upper_bounds": { + "1": "5628092903045690774122945787520664993/1329227995784915872903807060280344576", + "10": "1283716167380495647207296169730161819/664613997892457936451903530140172288", + "11": "1220371687740894297695991898219712437/664613997892457936451903530140172288", + "12": "2325085417235377274594108013345743861/1329227995784915872903807060280344576", + "13": "1109345204668642272486871655318194831/664613997892457936451903530140172288", + "14": "265023002254963557127057704802014929/166153499473114484112975882535043072", + "15": "126779797609353856910299218018927371/83076749736557242056487941267521536", + "16": "485672588161761388304392139207687777/332306998946228968225951765070086144", + "17": "1862106408094767381413498702434099211/1329227995784915872903807060280344576", + "18": "893064922112023845372151581094129071/664613997892457936451903530140172288", + "19": "1714262180057299458633847387593028093/1329227995784915872903807060280344576", + "2": "2353371132723014734448300739924093261/664613997892457936451903530140172288", + "20": "1646081697161329989188248031787845167/1329227995784915872903807060280344576", + "21": "1581228445028378873166656787258633713/1329227995784915872903807060280344576", + "22": "1519392737882127290165639488766946403/1329227995784915872903807060280344576", + "3": "4167786692434699885046796628690700803/1329227995784915872903807060280344576", + "4": "1892695813923184081835128586087854025/664613997892457936451903530140172288", + "48": "241192071018027332070709699000393459/664613997892457936451903530140172288", + "5": "3488782972360652599640936647132802109/1329227995784915872903807060280344576", + "51": "200900098741888246168674771802067511/664613997892457936451903530140172288", + "54": "325823633613056801668154003358293969/1329227995784915872903807060280344576", + "57": "15872248090394285597356139297691495/83076749736557242056487941267521536", + "6": "811609013708759644955113080254555583/332306998946228968225951765070086144", + "60": "92887743275169550056049436478940497/664613997892457936451903530140172288", + "63": "30230558604346996022626907107167385/332306998946228968225951765070086144", + "66": "29543263635568200544745164968491115/664613997892457936451903530140172288", + "7": "3041534655639369762242805946088597903/1329227995784915872903807060280344576", + "8": "2864040990246706858443912864503229579/1329227995784915872903807060280344576", + "9": "1353740240911854497985323734930368307/664613997892457936451903530140172288" + }, + "moment_upper": "5384702610130043005316420465888044949897/5384702610924694201133322401195675877376", + "rounding_denominator": 1329227995784915872903807060280344576, + "saving": "577207/1250000000", + "strict_gap": "794651195816901935307630927479/5384702610924694201133322401195675877376" + }, + "coarse_saving": "577207/1250000000", + "counts": { + "W_per_vertex": 32408, + "child_multiplicities": { + "1": 193950, + "10": 474, + "11": 1365, + "12": 585, + "13": 1059, + "14": 330, + "15": 2580, + "16": 3180, + "17": 4935, + "18": 3246, + "19": 9987, + "2": 200588, + "20": 7161, + "21": 1242, + "22": 75, + "3": 40116, + "4": 33642, + "48": 72, + "5": 18126, + "51": 131, + "54": 806, + "57": 3871, + "6": 4875, + "60": 1307, + "63": 1596, + "66": 1760, + "7": 2250, + "8": 3489, + "9": 1482 + }, + "deficit_per_vertex": 2024, + "edge_count": 544280, + "local_dimension": 23, + "m": 69, + "maxchild": 66, + "rank_per_vertex": 2234128 + }, + "effective_saving": "9231078943/20000000000000", + "fallback_children_per_edge": 152352, + "ordinary_leaf_saving": "384599/10000000000", + "rank_mass_upper_per_vertex": "17454125000064782927/7812500000000", + "row_stock": "O(w log e) internally borrowed radix-q digits; retained stopped wrapper restores them", + "strict_gap": "9683053551624097783276572314019807322107841/67308782636558677514166530014945948467200000000000000" + }, + "complex": { + "N": 32817780557806574163595540748554695887235239408087373839880618796903478243485196140259436784060894779388904754392411877246318939152267640191875160466382549098921315251867358429679909349325562993302741789218816580615296123008958381443791860891962967367602644740147372302910508239853367165293894460597921917933799423335432308673307941767419867889726522409165034802541527974038442221588958791937561638759609697996845373470172256594101246089869757014775652232588744786865653886962041332257076675977032924081531267047735268706206224849175445270246253088412392503992155455561928657278025072151915537266914985382254194723906249527202165110822872581183471253515173642043257360125465740987574178650956910945464138945649992945011750906253735159894898175394185216000000000000000000000, + "W": 558219259408554210645204376925842006122818955772677108320742093706192856917736543665310658525244890346912296381957746800638096637159907013877367431183008166121822394713155175743936048972022374619604648263547563621522795474158629014365225533819713269365863849764654479904677207486642189106479158219840902532490996213859566491336829461756391241485649375774530481183912342590220934538470829178542490215651383823256568150895765253214550570563881202131442443685800711752498341144308313274875059345866156050130000875913665192760054405289639377872364817447614655904552930609748555802802407150574940590431610180334399901959989427327188191433354736626641806202547587114686929312543220390877845560382782410780886322509047635678873174363930721296462253793622569779200000000000000000000, + "counts": { + "W_per_vertex": 29937, + "child_multiplicities": { + "1": 79374, + "10": 5829, + "11": 3261, + "12": 3291, + "13": 2028, + "14": 6972, + "15": 2478, + "16": 6789, + "17": 4794, + "18": 1194, + "19": 11760, + "2": 81787, + "20": 11880, + "21": 2640, + "22": 2712, + "3": 34704, + "4": 29763, + "5": 22455, + "6": 8535, + "60": 4840, + "7": 7929, + "8": 7881, + "9": 3603 + }, + "deficit_per_vertex": 1936, + "edge_count": 346499, + "local_dimension": 24, + "m": 72, + "maxchild": 60, + "rank_per_vertex": 2153528 + }, + "deficit": 36099558613587231579955094823410165475958763348896111223868680676593826067833715754285380462466984257327795229831653064970950833067494404211062676513020804008813446777054094272647900284258119292633015968140698238676825735309854219588171046981159264104362909214162109533201559063838703881823283906657714109727179365668975539540638735944161854678699174650081538282795680771442286443747854671131317802635570667796529910817189482253511370698856732716253217455847619265552219275658245465482784343574736216489684393752508795576826847334092989797270878397253631754391371001118121523005827579367107090993606483920479614196296874479922381621905159839301818378866691006247583096138012315086331596516052602040010552840214992239512925996879108675884387992933603737600000000000000000000, + "exponent": "9995143431/10000000000", + "group_order_bits": 2556, + "log_upper_bounds": { + "1": "5684664334020965693831331240677363777/1329227995784915872903807060280344576", + "10": "1312001882868133107061488896308511211/664613997892457936451903530140172288", + "11": "2497314806457063515100369249596123659/1329227995784915872903807060280344576", + "12": "2381656848210652194302493466502442645/1329227995784915872903807060280344576", + "13": "1137630920156279732341064381896544223/664613997892457936451903530140172288", + "14": "272094431126872922090605886446602277/166153499473114484112975882535043072", + "15": "130315512045308539392073308841221045/83076749736557242056487941267521536", + "16": "499815445905580118231488502496862473/332306998946228968225951765070086144", + "17": "479669459767510575280471038897699499/332306998946228968225951765070086144", + "18": "1842701275199322610452688615344956943/1329227995784915872903807060280344576", + "19": "885416805516287189171116420374863439/664613997892457936451903530140172288", + "2": "2381656848210652194302493466502442653/664613997892457936451903530140172288", + "20": "1702653128136604908896633484944543951/1329227995784915872903807060280344576", + "21": "818899938001826896437521120207666249/664613997892457936451903530140172288", + "22": "1575964168857402209874024941923645187/1329227995784915872903807060280344576", + "3": "4224358123409974804755182081847399587/1329227995784915872903807060280344576", + "4": "3841963058821643083378642625332406835/1329227995784915872903807060280344576", + "5": "1772677201667963759674661050144750447/664613997892457936451903530140172288", + "6": "825751871452578374882209443543730279/332306998946228968225951765070086144", + "60": "121173458762807009910242163057289889/664613997892457936451903530140172288", + "7": "3098106086614644681951191399245296687/1329227995784915872903807060280344576", + "8": "730153105305495444538074579414982091/332306998946228968225951765070086144", + "9": "1382025956399491957839516461508717707/664613997892457936451903530140172288" + }, + "moment_upper": "179068943258175399879712629997252045934735/179068943294158619192045723836257040072704", + "rounding_denominator": 1329227995784915872903807060280344576, + "saving": "4856569/10000000000", + "strict_gap": "35983219312333093839004994137969/179068943294158619192045723836257040072704", + "total_rank": 40155687118802315934874760043837214275367006052283855687869562066169291872009197428148082033355165120720357544271126116580972007042445810594959392368663567156762398972570118559290747625701352853318901659007283882510964448404111434814708067388038196130237834273840960443603557379974398911784676107921887268229624548032219811836711082510516007532288055881116113106958892985724465000326151846183927977724264064606676376953677908749194129709900589820747602727921803626914328343114540310325521488558788499392870378672031385083147090333519942217012995977831001593373419632900777896278767487262028615420082326500156313326922941893077627401579635877278908228204559581251211327406973855828118548751044280974183804667811214776639355628206132824669397885147891420364800000000000000000000, + "vertices_per_stage": 18646466226026462592952011788951531754110931481867826045386715225513339911071134170601952718216417488289150428632052202980863033609242977381747250264990084715296201847651908198681766675753160791649285107510691238985963706255089989456699920961342595095228775420538279717562788772643958616644258216248819271553295126895131993564379512367852197664617342277934678865080413621612751262266453859055432749295232782952753053108052418519375708005607816485667984223061786810719121526682978029691520838623314161409960947186213220855798991391576957539912643800234313922722815599751095827998877881904497464356201696239917156093128550867728502903876632148399699575860894114797305318253105534652030783324407335764468260764573859627847585742189622249940283054201241600000000000000000000 + }, + "finite_bridge": { + "bit_uniform": { + "atom_beta": "1/2000", + "coarse_saving": "577207/1250000000", + "external_stock": "The q-adic group-size factor is not inserted into external polynomial row stock", + "old_atom_saving": "384599/10000000000", + "ordinary_saving": "9231078943/20000000000000", + "selector_stock": "O(w log e) internal borrowed rows; retained stopped wrapper restores them" + }, + "complex": { + "N": 32817780557806574163595540748554695887235239408087373839880618796903478243485196140259436784060894779388904754392411877246318939152267640191875160466382549098921315251867358429679909349325562993302741789218816580615296123008958381443791860891962967367602644740147372302910508239853367165293894460597921917933799423335432308673307941767419867889726522409165034802541527974038442221588958791937561638759609697996845373470172256594101246089869757014775652232588744786865653886962041332257076675977032924081531267047735268706206224849175445270246253088412392503992155455561928657278025072151915537266914985382254194723906249527202165110822872581183471253515173642043257360125465740987574178650956910945464138945649992945011750906253735159894898175394185216000000000000000000000, + "W": 558219259408554210645204376925842006122818955772677108320742093706192856917736543665310658525244890346912296381957746800638096637159907013877367431183008166121822394713155175743936048972022374619604648263547563621522795474158629014365225533819713269365863849764654479904677207486642189106479158219840902532490996213859566491336829461756391241485649375774530481183912342590220934538470829178542490215651383823256568150895765253214550570563881202131442443685800711752498341144308313274875059345866156050130000875913665192760054405289639377872364817447614655904552930609748555802802407150574940590431610180334399901959989427327188191433354736626641806202547587114686929312543220390877845560382782410780886322509047635678873174363930721296462253793622569779200000000000000000000, + "auxiliary_banks_after_sharing": 1, + "coefficient_bound": 28, + "coefficient_denominator_divides": 6, + "finite_group_router_upper": 7980695182156349383405243897748612016710851157704344752387478967796122046006819098795144341849129352869066562133661108460833223447129569627155878985187077244413945014039237105793349824012638695429514956307363011555312557880303886534693850746023902804738327213003227078400475798802914890752078339668745545223041775278602829140758120234085481067583283819551181601717620742775404795239383623615814118934023767750211110681568888530073533214020008384432598067475020537960961380251388333250641336465214224019282954581283946880841578904391305574411708931284842792837752267770290059686292054784022176610159630401679099878912126937700608419786185282696874944205032940222975232497689695644619045011694598807355669832336232974144468818464328689155303976023785348613651706029466921730111274594356378344384571018482980973656999806970179424377511962063645886179783536349731346663118898632415273963517906124371445341116565793240187641813515917775583712296244644254322853005941716999285472456683476970626636148979479592125047803531390523022260168029414947814287107839780383099535446280557376064821330189986597793289491537828029431513870246464276191983884624239282680786875364898529736565889882269400048705494638747389224631594029842715639326364358150604476186798800745948019959666826638678876954889163961871383720642631353226138627532389331280878635169157920474814566350625222415862875956414296096872189487828992306752004987279074875891529088024851295822993053130827865538070317726244959567529310511061164007936362678576199543295492812051258779713221346330135806150287905478947061984230248531125695799249051502101848664257981721968985037730973715684578952711806751675934831767610376093738106751326908691876565486773201960055562178137654354080733864980334334937983176396252304827912708551672865964224907137642221640765953729037579046584910070238749446142063486905046101062004156346205535407975709114133482114899640775811282855375258271420165643895089541286833882834188747648108468231857762159304352979348316930308999173804340163596371422142458249624626427807259979257855451806278527628792107695096853241511721551235503988052612875060629225089963934281281693433238902198461293074198217501316813582335173371389355021927378969683288569212139959538157566522880279279141798087621574186345558779127223063580871370146581767378133730866076057600000000000024897088, + "halving_degree": 4, + "invocations_per_stage": 18646466226026462592952011788951531754110931481867826045386715225513339911071134170601952718216417488289150428632052202980863033609242977381747250264990084715296201847651908198681766675753160791649285107510691238985963706255089989456699920961342595095228775420538279717562788772643958616644258216248819271553295126895131993564379512367852197664617342277934678865080413621612751262266453859055432749295232782952753053108052418519375708005607816485667984223061786810719121526682978029691520838623314161409960947186213220855798991391576957539912643800234313922722815599751095827998877881904497464356201696239917156093128550867728502903876632148399699575860894114797305318253105534652030783324407335764468260764573859627847585742189622249940283054201241600000000000000000000, + "local_group_upper": 18389275589940, + "logical_group_upper": 1028685306951962604076888723020819886965875524819498986400778345662704157368942550324339681555176742515764155227670685947326656560589143055568041890723990679762990067104069689771136260035863082467348716000560780764558112208123104196337553949184489613801853840459000636905644427848387234718376295864605653931837704101096267559313860605756042762233671391760454161998649276688500073700818368934199695170367788506265567108979461746766166819735289279134413126185483806116008802021955588818566305213582281153201684368102953892743335624424221574531047748965211683924061734903549016056819103775685028884130643239401735817635307995104667194286135123145738231894614157471166806431030799294131945105837593243619411341230374989559396319043270183499102319948564476481017531596800000000000000000000, + "m": 72, + "maxchild": 60, + "original_X_involution_scalar_group_upper": 56320, + "routing_charge": "64*(m+1)^3*(K+1)*(W+1)^2; one full W-role permutation per logical group overcharged", + "s": 40155687118802315934874760043837214275367006052283855687869562066169291872009197428148082033355165120720357544271126116580972007042445810594959392368663567156762398972570118559290747625701352853318901659007283882510964448404111434814708067388038196130237834273840960443603557379974398911784676107921887268229624548032219811836711082510516007532288055881116113106958892985724465000326151846183927977724264064606676376953677908749194129709900589820747602727921803626914328343114540310325521488558788499392870378672031385083147090333519942217012995977831001593373419632900777896278767487262028615420082326500156313326922941893077627401579635877278908228204559581251211327406973855828118548751044280974183804667811214776639355628206132824669397885147891420364800000000000000000000, + "scalar_group_upper": 7980695182156349383405243897748612016710851157704344752387478967796122046006819098795144341849129352869066562133661108460833223447129569627155878985187077244413945014039237105793349824012638695429514956307363011555312557880303886534693850746023902804738327213003227078400475798802914890752078339668745545223041775278602829140758120234085481067583283819551181601717620742775404795239383623615814118934023767750211110681568888530073533214020008384432598067475020537960961380251388333250641336465214224019282954581283946880841578904391305574411708931284842792837752267770290059686292054784022176610159630401679099878912126937700608419786185282696874944205032940222975232497689695644619045011694598807355669832336232974144468818464328689155303976023785348613651706029466921730111274594356378344384571018482980973656999806970179424377511962063645886179783536349731346663118898632415273963517906124371445341116565793240187641813515917775583712296244644254322853005941716999285472456683476970626636148979479592125047803531390523022260168029414947814287107839780383099535446280557376064821330189986597793289491537828029431513870246464276191983884624239282680786875364898529736565889882269400048705494638747389224631594029842715639326364358150604476186798800745948019959666826638678876954889163961871383720642631353226138627532389331280878635169157920474814566350625222415862875956414296096872189487828992306752004987279074875891529088024851295822993053130827865538070317726244959567529310511061164007936362678576199543295492812051258779713221346330135806150287905478947061984230248531125695799249051502101848664257981721968985037730973715684578952711806751675934831767610376093738106751326908691876565486773201960055562178137654354080733864980334334937983176396252304827912708551672865964224907137642221640765953729037579046584910070238749446142063486905046101062004156346205535407975709114133482114899640775811282855375258271420165643895089541286833882834188747648108468231857762159304352979348316930308999173804340163596371422142458249624626427807259979257855451806278527628792107695096853241511721551235503988052612875060629225089963934281281693433238902198461293074198217501316813582335173371389355021927378969683288569212139959538157566522880279279141798087621574186345558779127223063580871370146581767378133730866076057600000000000024897088, + "stages": 3, + "wire_bits": 2571 + }, + "conservative_old_coarse_row_reserve": 9909, + "ordinary_leaf_row_degree": 252, + "rows": { + "coefficient": 20445, + "complex_coefficient": 10284, + "contract": "Finite complex role stock plus unchanged conservative bit reserves; q-adic selectors internally borrowed and restored; one prefix and one padding; sequential reuse", + "degree": 70000, + "degree_gap": "141461/5", + "suffix_slope": 280000 + }, + "semantic": { + "B": 32531354368216600227512879385747201538766692520724487452857024390628281444216905316995799500013579759631782797251132303442294425462561655407367524313611018350253109536400540155487893395958594914320630079624240507771717926758376533091719157472156113998042146889910840221394651912528384844611737944816829094299403450141209650601935845929956083042765575223213819674241055613188458323966082177693399435575245693114664673858221564555397392109780241767411765078779691554938575663160633620333042053391728268976455119353383572190696711486600173375193110317619994839271317942572577696867265120798908955641148076827176014770204837785735646491529927406154329718702380766035534239626230661758154006513989207579684538598647442911935796622652484996047158586150735990956325159978647334051992435984062226128606891569702714900395210927028082448680734699243723008457914513732085897964382514209122604928099849768874565782284717745762825692947427297788449905632510009326520703816047142001949060989435768137028178747842393568933454307238623196150858847591191761895343720986756584180877915128467837443101534425948418800022456143554539062545609859764460760534478812979312455552991215241015653906492863575884462244010459550197710269730343174849490898836787613863265071047145035903669555692012586377800138712754263358839017762183658263876653361936073544980881618970479746243198423220456341886525995112585259532178506328264817330647631511334915310317829896246433840281005827911549310239209573271678050284109239346117644319392878391723563131357710737057050217233758581478774994836163769811937856682252963873622106405970827378390254107575940276876035175451158460301349647172169461907783856388685366682944182362779216098265174591163265033373150428195998161335139548868645132211651385692470069955141898927733941850511685375532449530285765808515520564298759440353922982682471707422863169339094406412197161257918694477679432511264294574545718777488617000041089221215759427341123182107277352129596982293614954384688360153899603551775220011243896923949436857735369871560709839611694590473103629052410280101721824416467721046830822155713029932152786612633393456801414122916045085174008626623400865554414048357189501175937687089018611377554025718944984791791400562827158579298813761300283244181663757142583592282626024981988748479196826802321414704486408421165239282609324855079302388057334310486818433778770878307077224045886931513494348081649118423708015265546327949541059849238610128608860981041771106513861085263766801863362330960335556909069368617120916726404794873751037440549304738576265563097721210366949330424815611076388310364552169006089139235937391749309331235217441643542162922924322208635105328348937085775067059789748645687424337179151097117915512438159092516970917469740534732474795881784893061966587784816113974434770735367909088139619906220844017270129878712546491373526443360785464149435233145755521737502615751258861322537196619106690883559428558929087504289621908181020784685409445784934819523781240707056050834898450313263431385128663013226287378208817387367185096992541094516545218019588679618896923935170084000263267167614661940198349509920090328130860595616115991410892132695549974850836079095441222025282996998801971315057398276620042666057558981645819697792547973852294546378518189556098176585305400476399445310148094180718380562693513427097130574619466097344246818028301235461856997341873044937225853618895188621062726773358850509271734884020618447331306896089425236647050086484479044469568864048396809457326715458314267029469986891490860195384386067036442681637449631559347166432384133324426385296087991238633671884614066203176859838415585018332863061715672062565874848243325796457046873511654753740701831425579160745800716205995193267903000147484362866264037461707455661283753801788846512166674886762495152832390424279588787136591937444051012684292325069490337109771775385847108774883870062919111628030075523385158688558905730049867021788706586023868038327894956722104535757835490319120475905457202581344747352223768308196183531148543885001643930223411277354033398117241846708323261877418137480913118596204334939753545454627239591923822312696516620557790712459583511068514358984743029629997242348459028439676439911348369696571816058413425579129824733948253050198379564957164707228444658171175172387537468299581788413660793098153343094047863729446915457143070611820024652443120263861437508279404914142455749593973806961858826506656548497297173524857347973112350597441901519578479569506632932590287193166590388850777885039693309421188469535466840995553171956677572412898774929198970683940204055855933181546310511586344162449130686605556049655730878046991986782615111107996574297976507108535137735566735607300768966804584573380333496257269616727636728050632348788034448548047961165208659560885000143948483853129670967775483418688520768543482458072672237002826329854322478219015360677117953198362719721223226558452426565674316724092144469714010976598345128591746749606564993264909725330738687434830333078268849443682766016499746532542717820145440187504922705021734417610934022531719368854717813012291292339624300475165339575337183457900260648548913507401021582906307534586545737098308344993620144788418694993721700732083950655491536907080168767233290739377893718748318383558293226605689329627588323113159734660956461211495388217601006552788935274497615501691929426192774038078609895736525005784082315596582986928491167200599123802093258537177383937626222698978473943944386528914863254628484729291701994324515803224704955554537213080060047032065500670431878782289087381570601762188383046481710878062311274297565968497720523873399656655605573910727855660032807077164681913622480295851364494428718574005743430876580267032149836252532210682911206284519112324984933372842586813917980495815492410440447792362400286077063005863519045649474200414232188079289454472048044047228342497817020986639239968893647477419384453000464566594717442705498203621491986458392626701528446664075731665747517937443829643690753802446822780137088004736155878692735548973108213334253148148214748017427334800736233997100426316405095831709257756704782595742592537097926762351592586104211580553806033038853117586837782522700854251515391537730545034723671997326004655175910563601669276742068719553654193665236088761373269499611936760715038567070091628816333911826153366687962399283525816222053253644817023717409794996888857032944085385589104335507776492135980297994226010465458882986038096718013646199531586489344733894886979948752164120449451075811901706441516327980677545690478656117489797365565558106567559761878393867215985836711228629532450297250753830341464386654245224924628099509122093640551544715863388133291195553324109312980981883791841320771152828994310807989532505438902774863737671203422814303061616687333834381928303032697376072543657290857181318714460815019153903865369215930670793777525668117662435480119458336676855549356309421134792739084556562878908095291100293332983230844942875750558758477856074705253563461483784770110014520525861393984, + "C0": 2438297895238238078067153532774181517056757432347400101541316073462367574449073751020171780970576171154380735349271706038418996519245086247004593397209902684996163494963732874750837636031053333525559200351056474142919252944749147040985298113590026172650453601280416999010128730562642065096829826644992014749847188208921286993983067267835787953271628714200716747799129805127712034843634550832571657687100605940054554623925618316554564301453094049482732078439324249796023560257760641690077705747388611516217811026366050937813701604705309307081591330936839307264040416270832161185190910697871624314344508259872270741758998055212093026443282609318243232272217242654867245130373643305989027208560077852923762835488465765556716018170140096638971586369905683742568733384341630531184310184490034884632229164765076191834141506309797060192741568479707255856401197821841964061476704867524340979660005439639873543181712968007476652199361610255241432080130256573361140534301784674493015159823345635681191176891722063584872653196913097048339655095396909788602701083355075451797743471939962441796436641484198240345566878033021225790461139622858846209744886306410735906740427982410179221210903617690195421664309168568529447224284167172585567796503885189855962177602952126058535248977013010462587305744899947243392531883824246767090984294068115700621890166712154552335401981355652610153737356845755324733339650995526159274863347154160528547138530493882286731129799901852419564500606122460849703381860542347979393300339393333686064845010136901320943976051864021724109943723655668001065486776480333398640482109711803557792129999042618991947413310970433429688463893200654402255859845335550629418132508092160851328789548765764467107449421344809095221131472967130689090631392173930899990577603675663895883374287183943404707788773274506411222037777903140343343923706239600463638319388459497332645282124305816214922832353195056346071743514210674612762620519962890338101971320803948820985493961492541306267557170967614776245337184289754661833049821025098346061549953430864856635260492847299732451643763324035988414376540252876751756199989229946705088415817975504678395881853846464481170411390105890185362749257198746652566280299362166121260451725721343439647014442167063988898844564971428220793280764857628474764958348750790268587797528075962064010030397675481206040211656837949005124944767476058114700325973428517820020140479890647131233758055014766110030754139613797292753311689057341112872602924543366696262115832868394534998314834414003080663285457993691292931547219134308358057604620161498164969080166205025164637612352877803150808034837041703245203996519802062681587332674980756943912672103253409975292183104316292474801733932664495262489454944408791200251699702081142049467615773443463524311026448747681802229211640444471841161492846902645740134861538575827741883070469537450794888700098602754988395257933781726445800215020487604516801930599757674357640660897780419176223301329235888546870863963454024387678034904648600465687829097838971971757076158456058133288937981803662500396328970883284929021666215043418697687480445604824251453739165319718493991763085775533275001785086791933493863569504895962743458783842063822635234568278575852047183990875307288105059226187461895040899586801972787667139938183125575979831659717741979838487096265811368210775155033456903855792813638327023389728951250652983157026413954419564249744129826574562878271247955172887207068855433338954263595747509599229241954361647521959741738272610814740379482694175765818384316944728198617438497232255738836145273219367076424375853873519074638681510139147251353654844049714602947445649190425338131052584282704672832151001747859022247208814085492068028634452139423467371943963589818457623822322111952599211215246751035865476535665863947377644522103086086026461175500540464893194576973858982881460649363248739124112579549202022667882859879560487874320335804206225167210483675245153541218131523629135129122794376484624918843696831910952228420095370936570435060436769279601776465966956835121565362855486539350193086801398801543715656157953734792692774101710986472600917096536861901432836106428842077310611562682851948420929609762475425795848384810410037838978203481220790502059909357509659467851051933535814778906660794882298358685174702860123493677255656918160138299677047576165944610522360615025545053955094247884235752555581108560149168681562368018765524528053069141303599583074812019240525564187208476060202959754505048585536677311615486173552618475823094991812177525297636580670121676784431080846892974899651386216736909951799304217098887505036465239884273129539089730484352236395062574898503596192614631699063290636485688299332269767653212066339919388038015477913949559909030240490418296143544838476097031168475861476943243455128707985670461752223666255606233065439533870589455857358654085579747160846095377776855367336320953813126604257651773965374242308954053246267193818904690785460156189654365431578654947353918880552459360257693678702689590553056466216439793633674485225902256339583637639116565446522127461992780400733143302473009686480370350746971806888420225391556129104236144477169090904720634999772231046564941756306582310600272375287951807656658449620766783678909831442394484962167996848630286325177298522488541494919422713893438872149245712380830823121484420089757935500099244737367860348360106319002647859431282272016624794143457090747671799955721849330556767480653894026783274299493111135897487613429107916481212981861337148830597835927030845303609794804787699469390521595792292853455747099559808427966815810053438917071917487420134216559391067302786643898676512430597985654214655652345569398659841927589282906698038022287795574357887976614612068583138939033975030569675076908924590974913120938119003740633881236457178038566311212468610413243099145557470012067710079954779378066997795586573804472409909042507469556769081975541717809799371830864649327607303067505525127843414131081669323257683651525793177596781575566966967691900505281946569268685554733005110588400604281359226952521944735914221992449772073743373474859040462652751692032686532373772817470686489874389538619507613525099765348974798232387090807583239869483552552612383558226845054983486608694912735530353537237525080820034498713335151706938234351193773757586829016491274672421640591717552843642587296819730299670670983969589854055248297937132748104224252778159243159575345943460498996688262409245025417019350864859637790239421836992971448496237009745185994649334080254860619323754726868681869249856444595378996702146935959404545307892129108096282944668460709772086550997284315252831376944968004622139858689209468595564262779229625643968471127925014478669190078406139534516986414883504595277316485872082795563795334920568572621111085326247596981148926235480843797954806351963870213060754695736487371970078258905316147862475168632458836107720155791513858399141396362884749355294496954291287395151697046459845437775652724926056106319241299605402834012284609386297744224462997829645921667804726137161044583606194001114713139175842038505551567682378197948640174158085369894681776751555637467075732973354567960170637737398196379825543689224436658016303377662397514335946013371414207538972315705739402329636593596510180772504518615985060420070917535377461957405376047575573431170636097144501733022676714026303964148970788262174983410012535669216724942154995771463841221943879626961857562326765011315782452106811450259883993482211053193424102576734541167764875598727136633698059880988988019723381943963375500259088714459356351111124604279931739943167473706909687775941432656240388069934380532644776088452052783177389648139202044460191486621235301411043942937653994273002471595368985216034015858221023451049386189547982082357551487855218115483599260499769537414667989514420826269144490360517260282915850063101625806708259231716273169136844614708091282298426087986641278622920161891884624764739790919619667740011274192898812698367651874560198658548645782025529560786143585100517779123560684084765314506330088253933488758836361805539852703642909655626176482064508329882908127731266624559710715744554904468511434199254356518389833135302011595220734980434684276499550699607927094464143120756546583101617186050975464846541536050038871232378309577767381852023282590070010166856152127551933832787254320771601437209236185495862167920567017681938222015881464149446724061346467555018856293392072527934547985199337645563019122872448150744876510212611593522855986953422973175651158876903126420579550204130157748675782117933921215494995109632230406625270882240226768266838620370574058091210106085724372794403002879147625330367524105628681552808222353727599296439563116454045252759603430704657560191271047680415713216235975855388980612239915230442865177785042419274201956992828730540667245415545631441875720907277343445097054861989043657216295483507866143922002532945378412989409192085200268649561147336822009411898827704834913137719160525092442632039279933672204531430797777681315875679496143335339008299234285883408496157317343723638077723602119328382396319769524832601650134788229160224533935283001461119620810351959615206984223562601722791860372941161135538237575287135931286093760310135230042924154150891582578249318979229931627624861667071516590152479444998372275364770648826337935226562228683610034340811348908301922733167246171689843662113223368152446424923597594023158860886569076546471982748099205724589805885320723410829143761866647877696583635713106055739071774600491766186616218503804506107647542422474957495206826158334434704585869195181830129651454512048095043330003331078511007057583470705543878478339473456952797239530495303062861921125488511188840372782679257878963660586911492011000253058688013676903079552640733159787918525729283216392229433947262969912847339182875821084930912643982106960118658658320198167303822920623752130744021997753324325166270927302939211382631963757455450568313708621020487062672735130552969910550872695345373758454711091016976818082472960235114723700516490871004195144338575727670187283186785184655068574781483697234679806248552191307698724813315853397646826783251826004257499120379149797239514703676460568010708619152945159254912071049794325753554239725381396965608913256514622092943947514474557156288852160462180067114244136217748987545020353131071263580820396285194680700376758129660434090340076389501825610452732854980672723989930607926329491964938925679361096244528900967270140710188736132763611952165965901992125552984688971082289935697104885045919372628810862227268177784143685251823721732540677971434662436272578527410396310578004876248981705806545757541549786208821858143433874390838325715400253161533382635906783049979328580663334189685048841221495414232685794910292848588909459268809296983109820862304226574095808779726142137770557484573699836456496266195341097725924590096765737450102420465264898811905465266269185207445060785462242805028903320125532119446362278828870436608909619979578785167557699907636978376097008484626420527488405924254063032557661368377488146543411652259387710375015017230088757735323483402702198193955078709490618133437706120345121280994106657754232703440445058403517540408320977100673490235072641888229822310433276656871801750237897376467911410765785672061950627148548422750196829611859831359341864457928476414045296595554896447212025898411794252154838236759151970232455580320754966664281748214798349123249776633235468959486306308088335886947282835736548611538943064351444251293701444362640369758061483297356782293601492843917471488318198558137311834215488084671837883166670800733981350139946453935063907578451481688799820016975607705048491126355512231855883907964115533761448151135028907776782064776307762150698842660948977901488886936074202154127495828828447920090764392963127200506991296723698996948795051828580428066811288664603958452553430979332122765746895230465407435333700357013935815950556684315640480059970547497284989376133109499056839485875471095923311617567579907098856507574036291407040438040584292662297401017008222909933550318060725841907486956759212439128806766743481732917779804816656029376232904969949369035585073729766219853350210883820634722268403094491597985408114708659673291026855622278822277368102793166407343660630204872729856012769691611035403997455704782156143479928012083478424938511308231300877524005737936755696824892091795189183429418597670749599033825701275471377937848654992733009343176145990639879931970806030828639747814283841735309444030924382955963400900062706900741344897739137262247131086498544581757797615357336500844957002094893513718937553308690115782325290966788446921405542688724876502360002423869768468326046771715088531540760384925088019026478550852810038431516523502505887095013536576170252221647389563145118842517473700426073042223833745084886896863804260259465798148502439577130756531501952033993366096143105697779476611496685255498706777768196944446332358359538526788922950095045775698606323687157652024680842558846852062658862174732630085395496833395240699741308143282693109515732728325695109739002848268341404261941915838714505169929124194487333961968854730280284260715956891372733821053726696227155833933763394213488963745627997539668817725244580704524384759418566907907796432698245474051587935319442374432858593567423521546304564961863668987697848518777386151183963591617380960909346132550002485481292495238752524613233471572476500142235396743158123314720548585172609410858282869694664800958078643760203301622057274343452125481975897312151429266049707696198898401112503036947466964236119376224601101967576427632109171618049876520076855385979649369633780017890217918716203305867290022988418408389071480440825717842716839139833065284411201246394260709670056708218940070100032396314815673753376368940338592588193603786223500153659963269662424644616355905008195873177318950031389863409162816319990978895615312760937488082394334861629555613312132416626609704101501483659026178024161017600908762970369655919778365742863701415337887463491218801235767789415244874623625069555462018402601226887757824, + "C1": 1, + "E": 32531354368216600227512879385747201538766692520724487452857024390628281444216905316995799500013579759631782797251132303442294425462561655407367524313611018350253109536400540155487893395958594914320630079624240507771717926758376533091719157472156113998042146889910840221394651912528384844611737944816829094299403450141209650601935845929956083042765575223213819674241055613188458323966082177693399435575245693114664673858221564555397392109780241767411765078779691554938575663160633620333042053391728268976455119353383572190696711486600173375193110317619994839271317942572577696867265120798908955641148076827176014770204837785735646491529927406154329718702380766035534239626230661758154006513989207579684538598647442911935796622652484996047158586150735990956325159978647334051992435984062226128606891569702714900395210927028082448680734699243723008457914513732085897964382514209122604928099849768874565782284717745762825692947427297788449905632510009326520703816047142001949060989435768137028178747842393568933454307238623196150858847591191761895343720986756584180877915128467837443101534425948418800022456143554539062545609859764460760534478812979312455552991215241015653906492863575884462244010459550197710269730343174849490898836787613863265071047145035903669555692012586377800138712754263358839017762183658263876653361936073544980881618970479746243198423220456341886525995112585259532178506328264817330647631511334915310317829896246433840281005827911549310239209573271678050284109239346117644319392878391723563131357710737057050217233758581478774994836163769811937856682252963873622106405970827378390254107575940276876035175451158460301349647172169461907783856388685366682944182362779216098265174591163265033373150428195998161335139548868645132211651385692470069955141898927733941850511685375532449530285765808515520564298759440353922982682471707422863169339094406412197161257918694477679432511264294574545718777488617000041089221215759427341123182107277352129596982293614954384688360153899603551775220011243896923949436857735369871560709839611694590473103629052410280101721824416467721046830822155713029932152786612633393456801414122916045085174008626623400865554414048357189501175937687089018611377554025718944984791791400562827158579298813761300283244181663757142583592282626024981988748479196826802321414704486408421165239282609324855079302388057334310486818433778770878307077224045886931513494348081649118423708015265546327949541059849238610128608860981041771106513861085263766801863362330960335556909069368617120916726404794873751037440549304738576265563097721210366949330424815611076388310364552169006089139235937391749309331235217441643542162922924322208635105328348937085775067059789748645687424337179151097117915512438159092516970917469740534732474795881784893061966587784816113974434770735367909088139619906220844017270129878712546491373526443360785464149435233145755521737502615751258861322537196619106690883559428558929087504289621908181020784685409445784934819523781240707056050834898450313263431385128663013226287378208817387367185096992541094516545218019588679618896923935170084000263267167614661940198349509920090328130860595616115991410892132695549974850836079095441222025282996998801971315057398276620042666057558981645819697792547973852294546378518189556098176585305400476399445310148094180718380562693513427097130574619466097344246818028301235461856997341873044937225853618895188621062726773358850509271734884020618447331306896089425236647050086484479044469568864048396809457326715458314267029469986891490860195384386067036442681637449631559347166432384133324426385296087991238633671884614066203176859838415585018332863061715672062565874848243325796457046873511654753740701831425579160745800716205995193267903000147484362866264037461707455661283753801788846512166674886762495152832390424279588787136591937444051012684292325069490337109771775385847108774883870062919111628030075523385158688558905730049867021788706586023868038327894956722104535757835490319120475905457202581344747352223768308196183531148543885001643930223411277354033398117241846708323261877418137480913118596204334939753545454627239591923822312696516620557790712459583511068514358984743029629997242348459028439676439911348369696571816058413425579129824733948253050198379564957164707228444658171175172387537468299581788413660793098153343094047863729446915457143070611820024652443120263861437508279404914142455749593973806961858826506656548497297173524857347973112350597441901519578479569506632932590287193166590388850777885039693309421188469535466840995553171956677572412898774929198970683940204055855933181546310511586344162449130686605556049655730878046991986782615111107996574297976507108535137735566735607300768966804584573380333496257269616727636728050632348788034448548047961165208659560885000143948483853129670967775483418688520768543482458072672237002826329854322478219015360677117953198362719721223226558452426565674316724092144469714010976598345128591746749606564993264909725330738687434830333078268849443682766016499746532542717820145440187504922705021734417610934022531719368854717813012291292339624300475165339575337183457900260648548913507401021582906307534586545737098308344993620144788418694993721700732083950655491536907080168767233290739377893718748318383558293226605689329627588323113159734660956461211495388217601006552788935274497615501691929426192774038078609895736525005784082315596582986928491167200599123802093258537177383937626222698978473943944386528914863254628484729291701994324515803224704955554537213080060047032065500670431878782289087381570601762188383046481710878062311274297565968497720523873399656655605573910727855660032807077164681913622480295851364494428718574005743430876580267032149836252532210682911206284519112324984933372842586813917980495815492410440447792362400286077063005863519045649474200414232188079289454472048044047228342497817020986639239968893647477419384453000464566594717442705498203621491986458392626701528446664075731665747517937443829643690753802446822780137088004736155878692735548973108213334253148148214748017427334800736233997100426316405095831709257756704782595742592537097926762351592586104211580553806033038853117586837782522700854251515391537730545034723671997326004655175910563601669236586381600751338258790476044924158994132605884476859350697508025459524461902628725218605929044118405095864508982518700442745402752551078262073551716722021947573108803922017421007246600309112605564084379089434131135235083182377909919186819591910556033882615177234851458102884136353581765761014370734230221567741017525886755723050795883351208453548655347513419343338357768105876464060502399040996650375245057486964174591037954638939161485652734288565378253961988214406442809714454000482468043946650403381993358999172037731155971283167391617368932325201695782699124024390079285039946973552990538483783042715774357466854583775040035033900483581057768627344796728169923465332110700734760359344246819319149178563033728099111203130271723250035855678313592364405310014520525861393984, + "exact_grid": "One common dyadic grid times 3^(-K), K=G*(D_complex+1); no child rounding", + "fixed_odd_divisor": 3, + "induction_gap": 748221150468981805232796225872185635391633927976663211415711560984450473216988822290903388500312334471531004336776042979172771785638918074369453059213053422055821519337212423576221548107047683029374491831357531678749512315442660261109540621859590621954969378467949325092076993988152851426069972730787069168886279353247821963844524456388989909983608230133917852507544279103334541451219890086948187018230650941637287498739095984774140018524945560650470596811932905763587240252694573267659967228009750186458467745127822160386024364191803987629441537305259881303240312679169287027947097778374905979746405767025048339714711269071919869305188330341549583530154757618817287511403305220437542149821751774332744387768891186974523322321007154909084647481466927791995478679508888683195826027633431200957958506103162442709089851321645896319656898082605629194532033815837975653180797826809819913346296544684115012992548508152544990937790827849134347829547730214509976187769084266044828402757022667151648111200375052085469449066488333511469753494597410523592905582695401436160192047954760261191335291796813632400516491301754398438549026774582597492293012698524186477718797950543360039849335862245342631612240569654547336203797893021538290673246115118855096634084335825784399780916289486689403190393348057253297408530224140069163027324529691534560277236321034163593563734070495863390097887589460969240105645550090798604895524760703052137310087613667978326463134041965634135501820185248595156534512504960705819346036203009641952021227346952312154996376447374011824881231766705674570703691818169093308447337329029702975844474246626368148809035376644586931041884959897623879028696939763433707716194343921970260099015596755095767582459848507957710708209623978838040867981870926811608968263675337880662561768763637246339196572613595856972978871467128140228601696849270725852894799171347480534708932129972986626947759078775214551531882238191000945052087962466828845833188467379098980730592753143950847832283539690881690830060258609629250837047727913507045896326311068975580881383468205436442339601961578757584077108909581399688439514092090568049506432524827069036959002198412338219907751523112215358527046566803047428061683742591535734650211202212945024647323872716509906514616178266414279422622500398574585741215021527016453392538203187393686800503500014471666823954925318689141196823976911730201062776153055399424810370005877929723745284351107565542839444376532488032958003802563960735449818804961066636442857333612087717808908595478193781084707310282096273861132634008987254107951247587838439834599770759054756931138384699887140050202426560010234114618410001157801469747227259410798607422552025552972826542375164218850810759755120475233712056786077659127890331101804032298846920305281052540425231519050770621411999726913461909027211257843079412397212987210388569301591108197298065675437010362352376999962560162278953810418355522239453890321866856855369012598661303888163478047764417253053500849046968536262289169202664357205058921857959249304204609698802799909445257230828445173880540014450539631234629250508911932006055144855137224624562038728162077547009793699170667802450519051997649421569229819195148106581508930972445340246320160362260981319323856577853853049228603398602774566705918359790258061462024210957187242133406166156522752941950808823234003216247720238917676814650928415622710938863080033556194633234589338284442715787253561713249902332474224288620058610056780442882151989143018022800083873113126617518514455541228141677809698504289784493840879541838181677661341525864984827944835066461806861810023798488574453346123522673067776283558455421655850419460457439015121509596493318512078090768059336036142122788320697153416472737889445161769003392140345924072861619271480209526337441143469779833522395537388515144979758430542104141614561213173291738723476598277753524750833874483501822329011447139567444691737037858649836854831791146941501140251478548964881541584004608404322430216277339770945825515659370929189101146671088512221216416509355037810395138459379142768156696562474291435023180617162061001727712699703614331545456426510614247913192019882272829186386570420754575830256649089681489936574014557654112558117961012503021151769343508788319985968880809820154562729994014788266254227137937028964913361770890381133514198241257526891163100865777279055514290624071860567006191766068813062690426313025276482240661397560122753009653100615437834991071719003381584063741163734950305030098652557449576605442831578943567891355912946116687334799315737342897722955003584165496671823371576325730624693284686463175565141766485915736330005791927789142081810195080815696000147555483921208853459663496308167918034918967917686236505445187747670413917201184735644745164544022124792316605103106799799169900355003310815128621982432258836118629835977676500096535671461451065005586649416999037353295573712923562342553588134210844405811010509284654119322803422252461761937957610175240950994845092923682606989811001097660800183537204703618379494170248482509863345124312613222215499891605051482518229545483658509699282699723811358910928802810232755219531705994916625010670223496406845073295490551953261091934853263330133629984855599116837930865076305348862843881646365687005691555531211322821840744211930854581434531431602673897201998607864393929004823150714145511313445156538914376802433802875808027601940075133033893258721408699355296845613779847448144946355079830565403122076504900710720890165041854856455148773709145869463863474168213977754355900841381081737506515419933211992649009776123840530332810069079350195433159308844017275447572049088192103078928199946740680180754562774787684013317046804581383371860527202132098910161346141739446233808240845706957744543939583474653467575379496720113551403756325440130299224335206579772449134860938049937906609527340325823657452857105013086251877449791482692702519284553891980645842419010685031678501182226458683294315688543030414135154273273741828312192912561208081804887337456276923943153024108931585209932917626381488906687822407408939204400828700416933381933309805277317204129312928404209999702079628353252315534086629480396866352737538759893621704497268998022119647784854005367802535798644455938498107069045942962838393365067580549734046454300430041511585198491074545496445887042612107462775679972001527433823135183521093773107224833830791545500425284928443711757713963868549399716678859319127546853867198240705554308678876224514313862589226489254928879582400538821299774770337374743673739248154875543555583550881009090702265339408007836451053874523203058945967674244358258479246356836767338097853680893047640173266446288709808153732685528464857927065697497726454514198562583327212350377736515066869148583759247625094763821865966437678724728970417183808678190784350969752039649668504117689715170330432598745440539788903491966405428256883090366706236016042747541743567677635195116686100232998944800946214886191695306746658614309433686142262851444990689718220831959614127049712530333972094812061632, + "literal_charge": 4973708765204980773083527257832524258275170672835121944287400293890745612139336947282211201600101360824716800668463609480696540866703090151279639834369087052360427889765841430457010560809217891298045723591844776347299596090344162008256461325778229397159691491756212380999003014935413152755294230677972633704881230536642144543581852491587436008770781292098819550563857079413511125282411896770473597616364266465859523617498366006987317277822020833038192892714745839355655013846637344290400869057185535936686464931216310784395259942743470192373261029416139417698925519929260696713794450221719614006126782413572293060105155439060855231255209153160280099846089501204964571117145573150264414412968377414518040120495851393245739428056090670007237726317920989593479406098409633989572360135278080381578224295575312260927513400073594714347209467311699286735380306022954897359958276595044784751793449789172506127368054351569866868624906443119878474216067803009381561098867576349730511931864920239702272067482514327247887527789675893867485426540593525636321835668510385738306516764272525978809617762641152089703258631016406152542138982063449513852245812070708932683793681769792272306373583833083702131384019811171164558477645132714826699730216337080628190687488669852586531012979947103762653289098723271717882768196614374258992210132309557140432296498977006297487644105527534282354993491221399592494778532580518890117804077752892323435938507882042285248887053907643477772347363165563073450411558801147807489822169245719928396543110105005509428434067132857248741825481867235695522782168329909771993966432415139194989912177349076953205166105671752906804514900143330236025199175039637899836891565531408537770147613618065060993214427712449488569913518924467956612444773546168598816043996838686906654370549109577289398922397395216797202351035081016645515476929318992596434515771020930340282215062437142589453061652727154216996561627460534763398276778616588806085019085645144928604291757728891438362058726008014669482381290541608853085847032020060515907885969521765956933770674262001232004801775930447872434148548422201431222932221249290242034952209833064432876973007438601009384147090514668991048271270124356730461050240154848370930920640687459726681931501498566874722457364829207202969524168173110600325791686398907174353626919766475342823290653735984621572737884411979864648788256238766650869941034690495099795230522282276987184786547912179450524123095989600170777294000068572863799699922879434538938092982208335401730733194423335138369935868800204060549494815594807005179901537363476307681359000775665265840309739966802540361081365493233958322361549316390562692088748080528055138400704994005267140895544878591081684873970435981899317058454529866653725957167097572074003073690560253619618932887924333200930985925142850424603069327423285683415337993023486155958555850920632043039144884056512916756799075381097476858273406162677868444656198108103437250729737437246905500189094854259519214364625558541068761300090521283066002405056155999579781778308120211232445693251158469326303328291673426315653603843844644673039226980450541583611151378817585697605946031136740816370613697223757897759995326882753692315893456772167871249000290911520250497935259675963329653663269128017790607766086466291922371641065863633888332621245678656930552984183391266858694594720305258094150470868439306699069680200954890530534472144710676224697929203451121639346130245953757065992228586156167248377310766220616973532319312847466475183440935230100341706822678980475080240889791258254587964242362839762467202681574913498306471627594170726954981023687629318332730983490245682564336208591571908170139001985256289133821601241316879706398787106319519060045304610038397019896446897892816319408471309400991411403498201885228942575289421764066426232689429203965672233646349916363425741037810107181032096357621642035200000000000000002308, + "strict_literal_gap": 32531354368216600227512879385747201538766692520724487452857024390628281444216905316995799500013579759631782797251132303442294425462561655407367524313611018350253109536400540155487893395958594914320630079624240507771717926758376533091719157472156113998042146889910840221394651912528384844611737944816829094299403450141209650601935845929956083042765575223213819674241055613188458323966082177693399435575245693114664673858221564555397392109780241767411765078779691554938575663160633620333042053391728268976455119353383572190696711486600173375193110317619994839271317942572577696867265120798908955641148076827176014770204837785735646491529927406154329718702380766035534239626230661758154006513989207579684538598647442911935796622652484996047158586150735990956325159978647334051992435984062226128606891569702714900395210927028082448680734699243723008457914513732085897964382514209122604928099849768874565782284717745762825692947427297788449905632510009326520703816047142001949060989435768137028178747842393568933454307238623196150858847591191761895343720986756584180877915128467837443101534425948418800022456143554539062545609859764460760534478812979312455552991215241015653906492863575884462244010459550197710269730343174849490898836787613863265071047145035903669555692012586377800138712754263358839017762183658263876653361936073544980881618970479746243198423220456341886525995112585259532178506328264817330647631511334915310317829896246433840281005827911549310239209573271678050284109239346117644319392878391723563131357710737057050217233758581478774994836163769811937856682252963873622106405970827378390254107575940276876035175451158460301349647172169461907783856388685366682944182362779216098265174591163265033373150428195998161335139548868645132211651385692470069955141898927733941850511685375532449530285765808515520564298759440353922982682471707422863169339094406412197161257918694477679432511264294574545718777488617000041089221215759427341123182107277352129596982293614954384688360153899603551775220011243896923949436857735369871560709839611694590473103629052410280101721824416467721046830822155713029932152786612633393456801414122916045085174008626623400865554414048357189501175937687089018611377554025718944984791791400562827158579298813761300283244181663757142583592282626024981988748479196826802321414704486408421165239282609324855079302388057334310486818433778770878307077224045886931513494348081649118423708015265546327949541059849238610128608860981041771106513861085263766801863362330960335556909069368617120916726404794873751037440549304738576265563097721210366949330424815611076388310364552169006089139235937391749309331235217441643542162922924322208635105328348937085775067059789748645687424337179151097117915512438159092516970917469740534732474795881784893061966587784816113974434770735367909088139619906220844017270129878712546491373526443360785464149435233145755521737502615751258861322537196619106690883559428558929087504289621908181020784685409445784934819523781240707056050834898450313263431385128663013226287378208817387367185096992541094516545218019588679618896923935170084000263267167614661940198349509920085354422095390635342907883634300171291699680163243973496934624989106253189831978110116065418442564696734264845151234183067277311427843288366909916263807498253040048509679468717637170157571344802215381373538729843118797748156473866292979000531219112475885245734097406514189618047791360206095215041056911386913566100770253944881654794558499048470273688276765228846245600247301947188984617573216417893243831117920207512825183271442644242069344411551095131533670550248635583619825247269775802307802652879648331867931845404887667305932104773133423196017457372237054815181902164882446951350494486381187141120586575191302761108598400852224406074600641508746666077173681797924035686817274015174374168214522926010892188440931823750909053681105378609382456962880469439705529620441533812798553280825348471642726213394325096354638254300242374895068446136203583740169882502305221386470757178983556402733741976037757633589578653544408729126954997363372492255458868036576382045542246473823007888625214924967524441307985448629092768114818592098084527920833348421193961486856610152511675403913932538751933930663968710166948113418581406114068134930051104918895157735725487381490617745195993208204580577090966769323282876699170969270324428243912089808315362492073173948838426818383129475802490211153672760103234938665729100559150598355762980041040301469223079502563209145288484759658884235395359556485447198530888607950645349036917800279633241633905016732643950083630032560578083585818380747438135932603647982879115733880410010949650448876677609601679562507165119258366709655868331040084518600636894812579413901081118074626815459378973679143621928776795141156650308516230648974944773444215229834076209952010150750620929864393011679022575113880365752564700090892720505508424816551122407182561613739659019946174982567180315088579203128331389395714525548347749432796011746091000314562057338509161467703579357157079481065092991223190943295244486971019334155405942913283835632167867362688047866571583726977516611175443230778267258371898547935735874287474070637851128786579036686374114156693761716898956153502783057388358657967336010358518128603476713366173725228793728716322188987313729012644146287470163224118093244276091738695119649244570771288738733047356147108397169650283326717486389380017404322994089998798010406859630003030310706456223635650653290650544293290516744072749427053206068277036573835014519846717980264816509783223683247092234376907931046478666198782875704416877993738410497866045618285984935306674447270172179994661236697668707228813113418419746356548899621713394104206067400272585673149060587266370373171239481978751243619440138884264452368664105252800321692367264307261885372069000596378150104595609332547314108853472572730985592698475844091063819541667894890573786859130833381531678670384241774512278478641561855323299278242763248737738642261361978887978723058710763301938723624171247937080497595258690699702050656384703492016639913990084070998796750194926127310241572190043392079224054673831237007405479285590181048055580974024254730732906354392089271542384925212063246057118719070068153481359982136683583151127652975230221933752561184530013787418177761992187253101452937512698576770769586735268446438057795118114184344258484583440766782073098887809134055761108955935481281186432280951557373358267687866926907153826105250739868376388587657604661092669121042116727183545497033896567572349664208871089536316441530779099928394887279932998657058567297195041205171344581292802369806038455258409988877061463810896308668422378506489094350148163380684573521410371448802911051280413300908136338086859829755513062922962774063660628015681792048591635074575819709198793323216439493565302423148762405333548186446671019423737738105735960446958136877147218714492012271656777215941298526284694522756821278970693933111557390115183506329387378182747777389233913142854823581955970722370110014520525861391676 + } + }, + "kappa": "4611281/10000000000", + "predecessor_commit": "6a9970a530119174507904e23592fd59ede19a5d", + "scope": "Exact inventories, supplier moments, full fallback/router charge and semantic assembly. Local scalar/frame verification is separate; paired source scheduling, completed-core sharing and inherited uniform-recursion/analytic/tape contracts are written proof dependencies.", + "source_sha256": { + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "certificates/paired-cube-bit-input.json": "23461b66f3a87d4dc87ef209105df4de41d2ef076568ff29b9ea0a0747f01d96", + "certificates/paired-cube-complex-input.json": "11894aa8fd4d5e258ec534726eba5fc9c9fa7b826f993e229425c31ee2ad2440", + "certificates/paired-cube-input.json": "76f52fad6de108efff2d3194fcb2f06d0d7dcd65d22f42e1403dcaf9357a967c", + "certificates/partial-gauge-bit-input.json": "367b9844db23f8fa64002637903bcc5ce28ffc8879d274b5c54c0390fb0234e4", + "certificates/three-stage-cover-network.json": "bfca1f225394c8b50f3360b71920652baf9bd885ce84f9c0a9184c3ba7dd35ab", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/paired-cube-assembly.tex": "1929c46e24925b795431f62ad53025e149b4c48dbd2c9a668f240498b3abb54e", + "notes/paired-cube-bit.tex": "bed3841c349b1b897cab338b9800dc6030afcdcff0bc7cfdb437501e84fdcd19", + "notes/paired-cube-construction.tex": "fb478cda034c1934c62230487008c0a753867e1b153b7d0088878d6fa06856b4", + "notes/paired-cube-note.tex": "2f7eb4c667ff6a220f974ac630fed92efc2d41bc971f4128c7074f1542799987", + "notes/paired-cube-sharing.tex": "57fd2290d98528bce00f2ed51b1988e917748f43b2ec25acceacaf2beae1d7e2", + "references/paired-cube/pr97-subset/selection.json": "5a41dee894702cb880385d826648a3e759b85a6de6824ecbef63b73b8c6e1354", + "references/paired-cube/selected-module/README.md": "bd3f5176ef31bbf78240066fd5a5dae52dc31dd734273409671440a568d18155", + "references/paired-cube/selected-module/SOURCE.json": "51739341346433c85f1c01f4bfbdf8d5f8971dd640899da854b5deb7dc740646", + "references/paired-cube/selected-module/matching-arcs.json": "22c90ed078d765e58ac824d6f9558cc4620961b48644a32c0115bdb9852de771", + "references/partial-gauge/pr97/SOURCE.json": "68fb539abcd6df21d142e4e204b6e9482eb7f9cd3907650f54bd058070266596", + "scripts/paired_cube/README.md": "bf2adf1d1c5a412730be66e019bd73a08826ef8dcd6ffc833b9d1656b755dfb2", + "scripts/paired_cube/__init__.py": "b5fb17c79fd41a75c0648e7a5f99076f9f42a619857d5e34e71699bf00ef0c91", + "scripts/paired_cube/frames.py": "7d897418dbfee47de0723ea4983098a982610ccba45e1bac9000a79626d8421c", + "scripts/paired_cube/gauges.py": "8a501c66e1330f054e0e11a35e9321d2deea7b51cd03ca56b6a41765e43fe061", + "scripts/paired_cube/graph.py": "c757d47997f2fa42a95c16f6e6855cf8b125216ae3335b3891e305cf1da82855", + "scripts/paired_cube/modules.py": "18a1ad8af0a7832b7c5c4791f5b95f76386cfa7e82ad52bfd2758c081ada68c4", + "scripts/paired_cube/verify.py": "e13747916a58b631f10c36eaae230b91b63b427d0a80aa3a530dd9dd90159147", + "scripts/paired_cube_bit.py": "306b3100b97885c0e8b8439a425deac77915d25a7f5bea5bc30d1ee837709efc", + "scripts/paired_cube_network.py": "085662de3b011275dcb0966ae1fd83d646aaf933466de68ea6f8f0e237742b53", + "scripts/paired_cube_producer.py": "c84ea3e3ce3eb9563906b6ee4b7411d93dcddfed4bdbc2d4e39936642261cab2", + "scripts/partial_gauge_bit.py": "7d58e86061da2d73991531e9bc431589019359391adea866c61c7dd1f99ac855", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d", + "scripts/three_stage_cover_network.py": "7e0ad6fd1921b6905a53ce1eeaa03d3bb3a8a8bbaa0382516ea98b636f46335e" + }, + "status": "Conditional paired-cube multiplication witness" +} diff --git a/research/pr148-source-retention/original/docs/paired-cube.md b/research/pr148-source-retention/original/docs/paired-cube.md new file mode 100644 index 0000000000..8fa50de6aa --- /dev/null +++ b/research/pr148-source-retention/original/docs/paired-cube.md @@ -0,0 +1,76 @@ +# Paired-cube and shared-core reproduction + +This extension inherits PR #130 at +`6a9970a530119174507904e23592fd59ede19a5d` and gives the conditional saving +`4611281/10000000000 = 4.611281e-4`. + +From the repository root with Python 3.11+: + +```sh +make paired-cube-verify +``` + +The selected incremental target uses only the Python standard library. +CI runs it in its own `paired-cube` matrix group. The checks are: + +- Rebuild the selected signed H-channel graph from exact zero restrictions of + the pinned PR #117 positive DAG. Replay the frozen 6,074 carrier arcs, + coordinate frames, full backward intersections, signed physical mixer, + center closure and 4,840 rank-20 partial gauges. Independent checks cover + every scalar coefficient of `H+K+B=I`, the original-source K involution and + inverse, actual frame containment and reverse target chains. +- Reconstruct the bit subset from the existing PR #97 witness and readout + order. Check the retained 9,543 and omitted 2,022 slots, moved zero-frame + dirty reads, changed first transitions and target subsequences. Unchanged + complete-basis and rational-frame suites remain inherited checks. +- Rebuild both shared-core child lists and certify strict moments, full + rare-class fallback, stopped bit saving, actual finite group/router charge, + semantic guard, row stock, 47 strict inequalities and seven assembly margins. + +For arithmetic and the selected bit reconstruction alone: + +```sh +make paired-cube-certificate +``` + +The new [proof](../notes/paired-cube-note.tex) supplies the original-source +schedule, complete dirty cores, orthogonal sharing and paid final corrections. +The completed core excludes the old independent-bank exterior tail; replacing +that tail is justified by the exact core operator, not by subtracting a rank +histogram term. The general Clifford, uniform weighted bit and restored-row +proofs from PR #130 are retained. + +The complex cover is specified mathematically and not materialized by the +verifier. Its full group order and finite routing allowance remain in the +certificate. The new signed dirty-response matrix is charged by a numerator +bitlength bound and binary expansion, without a positivity assumption. +Finite checks do not formalize the all-size analytic/tape theorem. + +To save a compact report and retain generated local files outside the repo: + +```sh +python3 scripts/paired_cube_producer.py --output /tmp/paired-cube-verification.json --work-dir /tmp/paired-cube-work +``` + +The compatible matching is frozen because different maximum-matching +implementations may choose different optima. No SciPy dependency or matching +optimality claim is needed. Only compact arcs, source pins and generators are +submitted; raw graph/frame dumps and unselected research are excluded. + +The contribution map in `SOURCES.json` and `NOTICE` explicitly credits an664's +PR #128 sharing principle, eumemic's PR #117 DAG and the PR #97 / Swapnil word. +Their source-specific legal and assistance notices remain unchanged. Proof +sources are included without a PDF. + +## Shared source bindings + +The final `Makefile`, `README.md` and `NOTICE` changes also update the inherited +joint-dual manifest. Explicitly refresh its hashes, regenerate joint arithmetic +and update the validation receipt's certificate digest. Its mathematical +fields and previous complete replay payload must remain equal when their +producer/verifier inputs are unchanged. The complete affected replay command, +when needed, is `make verify-joint`. + +Stage the final artifacts before the deterministic certificate regeneration +and require `git diff --exit-code` to remain clean. CI checks the committed +hashes and never silently refreshes source pins. diff --git a/research/pr148-source-retention/original/docs/reproducibility.md b/research/pr148-source-retention/original/docs/reproducibility.md new file mode 100644 index 0000000000..f12e9752a1 --- /dev/null +++ b/research/pr148-source-retention/original/docs/reproducibility.md @@ -0,0 +1,276 @@ +# Reproducing the result + +For the paired-cube/shared-core extension, run `make paired-cube-verify`. +The [incremental guide](paired-cube.md) covers the signed producer, selected +bit gauges, exact moments and assembly. + +For the three-stage cover extension, run `make three-stage-cover-verify`. +The [incremental guide](three-stage-cover.md) covers the new PR #117 local +word, cover moments and exact assembly. + +For the partial-gauge extension, run `make partial-gauge-verify`. Its +[incremental guide](partial-gauge.md) separates the pinned PR #97 bit input, +new complex producer and exact assembly. + +For the new stopped product-ring extension, run `make stopped-product-verify`. +Its [incremental reproduction guide](stopped-product.md) covers the h24 +rational-center producer, new moments, stopping parameters and assembly. +The community checkpoint and historical targets below retain their own scope. + +The selected release is documented in the [joint-frame community review](research/community-round2-review.md) +and [current status](research/current-status.md), with the +[selected parameter certificate](../research/matrix-exponent-synthesis/candidate/arithmetic.json). +The bound is conditional on the retained original #109 framework. Earlier notes, +patches, and the [preserved research](research/preserved-research.md) are historical +reproduction targets. Run `make verify-research` to regenerate its certificates; +the expanded tests also run in `make verify-tests`. + +## Requirements + +The verification path needs Python 3.11 or newer, Git, Make, and a C++17 compiler supporting +unsigned 128-bit integers and OpenMP (GCC, or Clang with libomp), with no +third-party Python packages. The enlarged-frame profiler additionally needs Boost +multiprecision headers (`libboost-dev` on Ubuntu); the ordinary joint-frame +witness does not use Boost. Run commands from the repository root. All input +source files are bundled, so verification runs without network access. + +The local preparation checks used Python 3.14.6 and Tectonic 0.16.9. The supplied +GitHub workflow targets Python 3.11, 3.13, and 3.14 on Ubuntu 24.04; a workflow +configuration is not a claim that those hosted runs have already passed. + +## Arithmetic, identities, and patches + +```sh +make verify +``` + +This command performs these steps: + +1. `scripts/certify.py` checks the pinned source hashes and parameter inequalities, + then writes `certificates/parameters.json`. +2. `scripts/search_network.py` encloses logarithms with exact rational arithmetic, + checks finite candidates and the infinite tail, and writes + `certificates/network-search.json`. +3. `scripts/make_patch.py` regenerates seven parameter-only patches against the + unchanged upstream files. + `scripts/nonadjacent.py` and `scripts/make_nonadjacent_patch.py` additionally + generate the follow-up routing certificate and three scheduling patches. + `scripts/tune_routing.py` generates the tuned 2^-76 certificate and combined patch. + `scripts/reuse_network.py` and `scripts/make_reuse_patch.py` generate the + stage-sharing 2^-75 certificate and standalone combined patch. + `scripts/incidence_network.py` and `scripts/make_incidence_patch.py` generate + the incidence-circuit 2^-67 certificate and standalone combined patch, including + exhaustive verification of the underlying ordered-pair rectangle partition. + `scripts/dag_network.py` and `scripts/make_dag_patch.py` generate the + shared-computation 2^-63 certificate and standalone combined patch. They + check the exact symbolic linear map and both support-frame directions of + the reversible circuit compiled by `scripts/exclusion_circuit.py`. + `scripts/shared_point_network.py` and `scripts/make_shared_point_patch.py` + generate the cross-group sharing certificate and independent patch for + kappa=13*2^-66. They check exact supports and both frame directions in the + global graph compiled by `scripts/shared_point_circuit.py`. + `scripts/paired_network.py` and `scripts/make_paired_patch.py` generate the + h=50 paired-network certificate and independent patch for kappa=2^-59. They + also check the stopped guard constants and revised Gaussian inequalities; + these proof models are selected explicitly in the parameter checker. + `scripts/prepare_layers.py` records generalized guard and unequal-exponent + recurrence estimates, the independent complex-family search, and clearly + marked hypothetical sparse-primitive targets in `layer-preparation.json`. + This preparation pass does not change the published 2^-59 witness. + `scripts/audit_sparse_fusion.py` records finite phase identities, a bounded + central-frame screen, and the cost targets for future sparse primitives. + Its output is a research audit, not a stronger multiplication certificate. + `scripts/audit_fused_block.py` checks a complete parity-butterfly sandwich + and records the cut-rank obstruction for coordinate-child/pointwise-only + recursion. Its exact identity does not supply a faster multiplication bound. + `scripts/audit_short_guards.py` records logarithmic working guards and a + reduction to a still-unproved fast gathering routine. Exact address tests + check the reduction's maps, not a new tape-time or multiplication bound. + `scripts/audit_gather_schedules.py` checks a reversible merge tree, scoped + interval-schedule obstructions, and optimistic round-reuse accounting. + It does not rule out coded gatherers or certify a new multiplication bound. + `scripts/audit_coded_carries.py` checks an exact but linear carry code and + small controls for a scoped flat affine-circuit obstruction. The bounded + attempt supplies no sublinear recurrence or new kappa. + `scripts/audit_cancellation.py` checks the first cancellation circuit's + scalar map and dirty-scratch restoration, then records nonorthogonal-path + bounds rejecting two topologies under the retained data-stage frames. + `scripts/audit_joint_frames.py` reproduces a complete small bit invocation's + edge ranks and checks rational controls for the fixed-boundary local + optimality proof. It does not certify a stronger multiplication bound. + `scripts/audit_compact_controls.py` checks the compact dirty-control address + maps, inverses and exceptional repair. `scripts/compact_control_layer.py` + records the new conditional `83/10^12 > 2^-34` witness, with reservations, + the revised recurrence, independently sized complex motif, generalized + guards and all assembly margins. Its general tape claims depend on the + written [compact-control proof](../notes/compact-control-note.tex). + `scripts/make_compact_control_patch.py` generates the independent combined + patch, including the changed global exceptional-stream accounting. + `scripts/complex_compression.py` records the follow-up weighted complex + circuit, binary phase-frame audit and conditional `2^-31` witness. + `scripts/make_complex_compression_patch.py` integrates that interface and + all downstream constants into an independent complete upstream patch. + The earlier compact-control certificate and source patch remain unchanged; + see the [construction and integration boundary](research/complex-compression.md). + `scripts/research_networks.py` and `scripts/search_network_variants.py` + record scoped family bounds and clearly marked exploratory scores. +4. The standard-library unittest suite checks certificate boundaries, selected + finite identities, network counts, patch dependencies, and search bounds. +5. Git checks that each alternative patch applies to the pinned source. + +The generators overwrite their output certificates and patches. To confirm +that the checked-in outputs reproduce exactly, run on a clean checkout: + +```sh +git diff --exit-code -- certificates patches +``` + +The compact-control note builds with `make compact-note`. Its statement remains +conditional on the identified upstream interfaces and supplied written +extensions. See the +[current research status](research/current-status.md) before treating older +research pages or preparation certificates as current conclusions. + +The theorem certificates and all-h bound comparisons use `fractions.Fraction`; +no floating-point result controls their acceptance. The separate exploratory +higher-subset screen uses floating point to select candidates, then encloses +their scores exactly; it certifies neither a new construction nor optimality. +Sampled finite identity tests use fixed random seeds. +Passing these checks does not prove the full multiplication-machine theorem. + +## Apply one patch for review + +The following creates a fresh local review directory and refuses to reuse an +existing one. It leaves the bundled source untouched: + +```sh +mkdir -p build +mkdir build/review +cp -R upstream/build build/review/build +git apply --directory=build/review patches/ternary-30.patch +``` + +Read `build/review/build/main.tex` and its included sections. The other patches +are alternatives based on the same original manuscript, not successive commits. + +## Build the note + +With Tectonic installed: + +```sh +make ternary-note +``` + +The result is `artifacts/ternary-note.pdf`. Build the preceding +compact-control note with `make compact-note`. Build the earlier +parameter-only note with `make note`, producing `artifacts/parameter-note.pdf`. +Build the separate routing audit +with `make audit-note`, producing `artifacts/nonadjacent-axis-note.pdf`. +Build the tuning note with `make tuned-note`, producing +`artifacts/routing-tuned-note.pdf`. Build the preserved stage-sharing note with +`make reuse-note`, producing `artifacts/stage-reuse-note.pdf`. +Build the rectangle-circuit note with `make incidence-note`, producing +`artifacts/incidence-note.pdf`. +Build the shared-computation note with `make dag-note`, producing +`artifacts/dag-note.pdf`. +Build the cross-group and paired notes with `make shared-point-note` and +`make paired-note`, producing `artifacts/shared-point-note.pdf` and +`artifacts/paired-note.pdf`, respectively. +Build the local complex-network follow-up with `make complex-note`, producing +`artifacts/complex-compression-note.pdf`. +The first run may download fonts +and TeX packages; the numerical verification does not use them. PDF builds may +differ in metadata or typesetting across TeX environments. The exact-byte +reproducibility check covers JSON certificates and patches, not the PDF. + +Full patched-manuscript previews were also compiled during preparation. With +Tectonic, the original pdfTeX-only metadata commands `pdfinfoomitdate`, +`pdftrailerid`, and `pdfsuppressptexinfo` must be commented out in a disposable +copy. Those preview-only edits are not included in the mathematical patches. + +## Source provenance + +The pinned upstream revision is +`adc7f1241b42e322a6451854ab7e4b4c146bf78a`. +[The manifest](../upstream/manifest.json) records each source URL and SHA-256 +hash. `make fetch` downloads that exact revision and refuses to overwrite +changed source files. Fetching is optional and requires network access. + +## Automation + +[The verification workflow](../.github/workflows/verify.yml) runs `make verify` +and rejects changes to regenerated certificates or patches. It uses immutable +commit pins for the official [checkout](https://github.com/actions/checkout) +and [setup-python](https://github.com/actions/setup-python) actions, with +read-only repository permissions. The PDF is supplied for readers and can be +rebuilt locally using the command above. + +Build the latest note with `make ternary-note`. The earlier notes and +patches remain available as independent witnesses. + +## Ternary construction + +The full `audit_ternary_side.py` constructs about 21 million addition nodes +and uses multiple gigabytes of memory. It verifies exact support keys, +pruning and role counts, and independently expands complete h=8,9 controls. +`make_ternary_patch.py` checks the certificate's source hashes before generating +the independent patch. Its twelve focused tests are in `test_prime_core.py`, +`test_ternary_side.py`, and `test_ternary_patch.py`. The source-hash manifest +includes the standalone exact Kronecker-product helper used by the compiler. + +No exploratory overnight search is required by this release. All prior +certificates, patches and bundled upstream files are preserved unchanged. + +## Imported candidate reproduction (pending maintainer review) + +The following contributor instructions are retained from PR #39 at +`70ae24129649f6d6d4ec6360962a80c3c42a38f1`; their past validation statements +describe contributor runs, not this integration run. See +[the integration ledger](research/community-integration.md) for maintainer results. + +# Reproducing the current result + +Run from the repository root with Python 3.11+, a C++17 compiler supporting +unsigned 128-bit integers (GCC or Clang), Git, and Make. No third-party +Python package or network access is required. + +```sh +make copied-centers-verify +``` + +The incremental target: + +- Matches the unchanged positive-label bit producers at h25 and h23 to + the previously verified partial-swap certificate. +- Recomputes all 47 rational corner pivots and verifies all 315 symbolic + zero-minor partitions using 630 exact integer-rank calculations. +- Regenerates the new h28, d19 mixed-center complex producer, checking its + scalar supports, center coefficients, binary frames, matching and histogram. +- Applies the copied-center histogram replacement, reconstructs both complete + child lists and checks both strict moments, the semantic precision guard, + product row stock, seven margins and 47 strict assembly constraints. + +The copied-center scheduling and simultaneous rational-basis arguments are +written proofs. The finite checks establish their selected arithmetic inputs. +Unchanged historical producers and suites are skipped. Intermediate graphs +and compiled tools are temporary; `--work-dir PATH` retains them if needed: + +```sh +python3 scripts/copied_centers_producer.py --work-dir /tmp/copied-centers-producers +``` + +For arithmetic alone, use `make copied-centers-certificate`. `make verify` +also runs inherited checks, including the previous structured-bulk target. + +## Proof and dependencies + +The proof is supplied as [LaTeX source](../notes/copied-centers-note.tex). +No PDF is generated for this submission. The selected +[two-stage and corner sources](../references/copied-centers/README.md) and +[semantic/analytic sources](../references/semantic-bulk/README.md) retain +original licenses, notices and hash manifests. + +[SOURCES.json](../SOURCES.json) pins the archive, parent and contribution +sources. Raw graphs, alternatives, terminal-eligibility experiments and +recursive copies of predecessor archives remain outside the submission. +The [historical manuscript patch](../PATCHING.md) retains the #10 result. diff --git a/research/pr148-source-retention/original/notes/paired-cube-assembly.tex b/research/pr148-source-retention/original/notes/paired-cube-assembly.tex new file mode 100644 index 0000000000..7723490c39 --- /dev/null +++ b/research/pr148-source-retention/original/notes/paired-cube-assembly.tex @@ -0,0 +1,130 @@ +\subsection{Strict suppliers and full finite group} +The selected local complex profile has +\[ + h=24,\quad v=1760,\quad c=24767,\quad q_{\rm roots}=7724, + \quad |\mathcal M|=6074,\quad R=26417,\quad\ell=528. +\] +The exact signed graph, frozen carrier arcs, coordinate frames and +chronological gauge list are reconstructed by +\path{scripts/paired_cube_producer.py}. Its complete shared inventory has +$m_c=72$, $w_c=29937$, $s_c=2153528$, deficit 1936 and largest child 60. +For $a_c=4856569/10^{10}$ the rational moment satisfies +\[ + \frac1{w_c}\sum_r n_r(r/72)^{1-a_c} + <1-2.0094617553\times10^{-10}. +\] +The bit subset has $m_b=69$, $w_b=32408$, $s_b=2234128$ and deficit 2024. +At coarse saving $a_0=4617656/10^{10}$ its moment includes the entire +$32\cdot69^2$-child local-ring fallback on a fraction $10^{-16}$ of every +ideal edge. Its gap exceeds $1.4386017949\times10^{-10}$; the rank moment +also contracts. With the tightened atom exponent $5\times 10^{-4}$, +\[ + a_b=\left(1-\frac1{2000}\right)a_0+\frac1{2000}\frac{384599}{10^{10}} + =\frac{46155394715}{10^{14}}. +\] +Both adapter and internally borrowed-row tolls are lower order since +$a_b<5\times 10^{-4}<1-a_b$. The weighted compiler, residue bound, full fallback +and ordinary outer wrapper are retained from +\path{notes/three-stage-cover-bit.tex} and +\path{notes/three-stage-cover-rows.tex}, now with ambient dimension 69. +Sharing routers are fixed right multiplications, batched on the same +complete high matrix field; the fresh-selector contract is unchanged. + +For the complex cover $V=|O(72,2)|$ the retained even-dimensional group +formula gives +\[ + V=2^{1296}\prod_{i=1}^{35}(2^{2i}-1). +\] +It has 2,556 bits, and full role stock $W=Vw_c$ has 2,571 bits. +Its full rank is $s=Vs_c$ and $N=Vv$. +The least halving degree for $72\to60$ is four, contributing 10,284 to +the row coefficient. Including the conservative preceding bit reserves, +\[ + 10284+9909+252=20445,\qquad + 70000-\frac{51}{25}\,20445=\frac{141461}{5}>0. +\] +Thus the fixed external reserve $p^{70000}$ suffices. The q-adic bit +selector stock is borrowed and restored internally, not multiplied into +this external polynomial reserve. + +\subsection{Literal charge, sharing routers and exact precision} +Let $M=49424$ be the actual local mixer-operation count. Put +\[ + L=4(c+v)+10v+4hv+4h^2+8h+8+2h + +8Rv(M+16)+32v. +\] +The last term pays both original-source involutions and their inverses. +Every mixer update has signed unit coefficients. Starting from the identity, +each entry of its exact matrix is therefore bounded by $2^M$. +There are $q_{\rm roots}=7724$ decoder roots; after clearing denominator +six, their scatter coefficients have absolute numerator at most three. +Thus each numerator of $6JM$ is bounded by +$3q_{\rm roots}2^M<2^{M+15}$. Including the sign, $M+16$ bits suffice. +Binary expansion pays each direct dirty readout inside the displayed +$8Rv(M+16)$ allowance. No positivity or small-coefficient claim is made +for the full dirty-response matrix. The remaining elementary coefficients, +including the original-source blocks, are bounded by $h+4$ with +scalar denominators dividing six. +Charge every logical group and completed-core sharing permutation by +\[ + K=3VL+8W+4N+8m_cRV,\qquad + G=64(m_c+1)^3(K+1)(W+1)^2. +\] +A full $W$-role permutation costs at most $W^2$ elementary exchanges; +the polynomial factor also pays its fixed binary matrix and phase +adapters. This finite charge is not removed by normalization. +Define +\[ + E=64(W+m_c+G+1)^3,\quad B=s+E,\quad C_0=32m_cB^2. +\] +The exact receipt proves +\[ + 2GW^2+8s+4W+4+32m_ca$, so the actual bit saving is available without further +weakening. All 47 strict constraints hold. The seven final savings are +\[ + 1-\epsilon(1+c_0),\ a,\ g,\ a,\ + \min(1-\epsilon-\delta,r-\delta),\ 1-\epsilon-\delta,\ \epsilon. +\] +Their minimum $g$ exceeds $4611281/10^{10}$ by more than +$1.6217067215\times10^{-10}$. +\begin{theorem} +Under the retained analytic, semantic-precision, exact-recovery, +uniform-recursion and fixed-tape interfaces, the selected construction gives +\[ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \boxed{\kappa=\frac{4611281}{10000000000}=4.611281\times10^{-4}}. +\] +\end{theorem} +\begin{proof} +The source schedule completes the paired-cube identity shear with arbitrary +dirty restoration. The shared cores and their paid corrections give the +completed full tensor on every role. The selected bit word supplies the +ordinary interchange with its restored internal rows. The literal finite +guard and external reserve satisfy the unchanged precision and row +contracts. Substitution into the retained semantic/bulk transfer gives the +seven savings above; their strict excess absorbs its fixed logarithmic +overheads and proves the conditional bound. +\end{proof} diff --git a/research/pr148-source-retention/original/notes/paired-cube-construction.tex b/research/pr148-source-retention/original/notes/paired-cube-construction.tex new file mode 100644 index 0000000000..9dd1f10cb7 --- /dev/null +++ b/research/pr148-source-retention/original/notes/paired-cube-construction.tex @@ -0,0 +1,140 @@ +\subsection{The selected paired-cube identity} +Let $h=2p$ and partition the binary address coordinates into $p$ pairs. +A port $S$ selects one coordinate from each of three distinct pairs; +thus $v=8\binom p3$. Its address $q_S=\chi_S$ has norm one. +Ports with the same three pair labels form an eight-port cube. +Define the rational scalar matrix +\[ + B_{T,S}=\frac{|T\cap S|-1}{2},\qquad + B_{\rm block}=\bigoplus_{\text{cubes }I}B|_I,\qquad + K=I-B_{\rm block},\quad H=B_{\rm block}-B. +\] +Consequently $K+H+B=I$. If distinct addresses are not orthogonal, +their intersection has size one, and $B_{T,S}=0$; also $B_{S,S}=1$. +Thus the side terms $K,H$ use only orthogonal source--target pairs. + +Within a cube let $P$ be antipodal permutation and $A$ distance-one +adjacency. Directly from intersection sizes, $K=(P-A)/2$. +Its Walsh eigenvalue in degree $d$ is +$((-1)^d-(3-2d))/2$, namely $-1,-1,1,1$ for $d=0,1,2,3$. +Hence $K^2=I$; its two opposite-parity $4\times4$ blocks are signed +Hadamard matrices divided by two. + +\subsection{A scalar producer with actual geometric supports} +For an input cube $I$ with selector $\epsilon$, form its total $F_I$, +its six half-cube sums $A_{I;i,a}$, and its twelve two-input edge sums +$E_{I;i,j;a,b}$. Use six signed channels +\[ + G_{I;i,j;0}=E_{I;i,j;0,0}-E_{I;i,j;1,1},\qquad + G_{I;i,j;1}=E_{I;i,j;0,1}-E_{I;i,j;1,0}. +\] +These require 25 binary additions per cube before sharing: twelve for +$E$, six for $A$, six for $G$, and one for $F$. +For a distinct target cube $J$ with selector $\eta$, the contribution of +$I$ to $H$ is respectively +\[ + \frac12F_I\quad(|I\cap J|=0),\qquad + \frac12A_{I;i,1-\eta_i}\quad(I\cap J=\{i\}),\qquad + \frac{2\eta_i-1}{2}G_{I;i,j;\eta_i\oplus\eta_j} + \quad(I\cap J=\{i,j\},\ i 0, 'Nonpositive inherited target coefficient') + increment = rank-current[target] + require(increment >= 0, 'Selected target chain retreats') + if increment: + result[increment] += 1 + current[target] = rank + for rank in current: + require(0 <= rank <= schedule.h-1, 'Target exceeds output frame') + if rank < schedule.h-1: + result[schedule.h-1-rank] += 1 + require(sum(r*n for r,n in result.items()) == schedule.v*(schedule.h-1), + 'Target chain rank mass differs') + return result + + +def child_histogram(h, v, aux, source, target, gauges): + children = Counter() + for local in (aux, source, target, Counter({h-1: h})): + children.update({r: 3*n for r,n in local.items() if r and n}) + children.update({3*r: n for r,n in gauges.items() if r and n}) + children[2] += 2*v + return children + + +def reconstruct(input_path=INPUT): + record = json.loads(Path(input_path).read_text()) + folder, provenance = frozen_sources(record) + selection_path = ROOT / record['selection_file'] + require(sha256(selection_path.read_bytes()).hexdigest() == record['selection_sha256'], + 'Selected finite slot list changed') + selection = json.loads(selection_path.read_text()) + spec = importlib.util.spec_from_file_location('paired_cube_pinned_deferred', folder/'deferred.py') + deferred = importlib.util.module_from_spec(spec) + spec.loader.exec_module(deferred) + with gzip.open(folder/'witness_23.json.gz', 'rt') as stream: + witness = json.load(stream) + with gzip.open(folder/'deferred_23.json.gz', 'rt') as stream: + data = json.load(stream) + schedule = deferred.Schedule(witness, data) + ledger = json.loads((folder/'bit-ledger-result.json').read_text()) + for flag in ('complete_forward_F2', 'complete_reflected_F2', + 'reflected_frame_continuity', 'all_scalar_gates_equal_frame_keys', + 'histogram_matches_external'): + require(ledger[flag] is True, 'Inherited physical ledger lacks '+flag) + selected = selection['retained_readout_order'] + omitted = selection['omitted_readout_order'] + chosen, skipped = set(selected), set(omitted) + require(len(chosen) == len(selected) == 9543 and len(skipped) == len(omitted) == 2022, + 'Selected gauge counts differ') + require(chosen.isdisjoint(skipped) and chosen | skipped == schedule.sel, + 'Selection does not partition the inherited gauges') + require(len(schedule.sel) == 11565, 'Inherited gauge count differs') + for slots, subset in ((selected, chosen), (omitted, skipped)): + require(slots == [s for s in schedule.readout if s in subset], + 'Gauge order is not the inherited subsequence') + h, v, R = schedule.h, schedule.v, schedule.R + require((h,v,R) == (23,1771,28866), 'Inherited dimensions differ') + old_aux = deferred.chain_ranks(schedule) + require(encoded(old_aux) == ledger['rank_histograms']['aux'], + 'Inherited auxiliary chain receipt differs') + source = Counter(r for path in schedule.xdata() for r in path if r) + require(sum(r*n for r,n in source.items()) == v*(h-1), 'Source chain mass differs') + adjoint = schedule.adjoint() # exact scalar coefficients, not producer bitset unions + old_target = target_histogram(schedule, adjoint, schedule.readout) + target = target_histogram(schedule, adjoint, selected) + aux = Counter(old_aux) + changed = Counter() + dirty_reads = odd_dirty_reads = 0 + for slot in omitted: + first = schedule.dim(schedule.start_key(slot)) + gauge = schedule.f[slot] + require(0 < gauge <= first, 'Omitted gauge does not fit first-use frame') + if first-gauge: + aux[first-gauge] -= 1 + aux[first] += 1 + changed[(first-gauge, first)] += 1 + # The exact same old-value coefficient is emitted in the initial + # prelude, before any slot or target frame grows from zero. Thus its + # source/target frame keys are both ('0',), for arbitrary dirty inputs. + dirty_reads += len(adjoint[slot]) + odd_dirty_reads += sum(c & 1 for c in adjoint[slot].values()) + schedule.sel = chosen + require(encoded(deferred.chain_ranks(schedule)) == encoded(aux), + 'Direct modified frame chains differ from transition deltas') + require(all(n >= 0 for n in aux.values()), 'Negative changed auxiliary count') + gauges = Counter(schedule.f[s] for s in selected) + children = child_histogram(h,v,aux,source,target,gauges) + values = dict(h=h,v=v,R=R,m=3*h,W_per_vertex=2*v+R,loss=h*(h-1), + deficit_per_vertex=2*v-3*h*(h-1),selected_roles=len(selected), + omitted_roles=len(omitted),rank_per_vertex=sum(r*n for r,n in children.items())) + for key, value in values.items(): + require(record[key] == value, 'Selected profile differs: '+key) + for key, value in (('auxiliary_histogram', aux), ('source_data_histogram', source), + ('target_data_histogram', target), ('selected_rank_histogram', gauges), + ('copied_center_histogram', Counter({h-1:h})), ('child_histogram', children)): + require(histogram(record[key]) == +value, 'Selected profile differs: '+key) + require(values['W_per_vertex']*values['m']-values['rank_per_vertex'] == 2024, + 'Shared-core rank deficit differs') + require(all(0 < r < 3*h and n > 0 for r,n in children.items()), 'Invalid child') + result = dict(record) + result['checks'] = dict(source_hashes_equal=True, selected_slot_partition_equal=True, + target_chains_inherited_subsequences=True, positive_integer_support=True, + omitted_dirty_reads_at_zero=True, changed_chain_histograms_equal=True, + selected_profile_equal=True, full_upstream_audits_repeated=False) + result['changed_transition_histogram'] = [dict(old_rank=a,new_rank=b,count=n) + for (a,b),n in sorted(changed.items())] + result['zero_prelude_receipt'] = dict(omitted_slots=len(omitted), + positive_support_reads=dirty_reads,odd_F2_reads=odd_dirty_reads, + source_frame=['0'],target_frame=['0'],scalar_coefficients='exact inherited adjoint', + placement='before every positive-rank local operation') + result['provenance'] = dict(pr97=provenance['pr97'], underlying=provenance['underlying']) + result['scope'] = ('Incremental selected-gauge rank and zero-prelude check; actual nested ' + 'subspaces and unchanged complete scalar word remain inherited. ' + 'Strict rational supplier moments are checked by paired_cube_network.py.') + return result + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--input', type=Path, default=INPUT) + parser.add_argument('--output', type=Path) + args = parser.parse_args() + result = json.dumps(reconstruct(args.input), indent=2, sort_keys=True)+'\n' + if args.output: + args.output.write_text(result) + else: + print(result, end='') + + +if __name__ == '__main__': + main() diff --git a/research/pr148-source-retention/original/scripts/paired_cube_network.py b/research/pr148-source-retention/original/scripts/paired_cube_network.py new file mode 100644 index 0000000000..db609dedd7 --- /dev/null +++ b/research/pr148-source-retention/original/scripts/paired_cube_network.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python3 +"""Exact paired-cube suppliers and shared-core semantic assembly. + +Copyright 2026 icekylinx. Apache-2.0. +Developed with substantial OpenAI GPT-6 Astra assistance; integrated with +Codex assistance. Sharing principle: an664 PR128; local words: eumemic +PR117 and Zhihao Chen/Swapnil Jain PR97. See NOTICE and SOURCES.json. +""" +import argparse +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from math import prod +from pathlib import Path +import json +import sys + +from certify import require +from paired_cube_bit import reconstruct +from three_stage_cover_network import log_upper, exp_upper +from structured_bulk_assembly import assembly, halving, js + +if hasattr(sys,'set_int_max_str_digits'): + sys.set_int_max_str_digits(0) + +ROOT = Path(__file__).resolve().parents[1] +AC = Q(4856569,10**10) +COARSE = Q(4617656,10**10) +ATOM = Q(1,2000) +OLD = Q(384599,10**10) +AB = (1-ATOM)*COARSE+ATOM*OLD +BAD = Q(1,10**16) +PHASE_STOP = Q(1,10**6) +ASSEMBLY_BIT = min(AB,(1-PHASE_STOP)*AC-Q(1,10**10)) +KAPPA = Q(4611281,10**10) + + +def clean(hist): + return dict(sorted((int(r),n) for r,n in hist.items() if int(r) and n)) + + +def shared_profile(row,complex_word): + h,v,R,ell = (row[k] for k in ('h','v','R','loss')) + m,W,H = 3*h,2*v+R,Counter() + selected = {int(r):n for r,n in row['selected_rank_histogram'].items()} + require(sum(selected.values()) == row['selected_roles'],'Selected gauge count') + for r,n in selected.items(): + require(0 < r < h and n > 0,'Proper local gauges') + H[3*r] += n + if complex_word: + require((h,v,R,ell) == (24,1760,26417,528),'Paired-cube local dimensions') + require(R == row['c']+row['q']-row['matched'],'Compatible carrier roles') + require(selected == {20:4840},'Selected rank20 gauges') + for r,n in enumerate(row['remaining_internal_histogram']): + H[r] += 3*n + parts = ('source_data_histogram','target_data_histogram') + else: + require((h,v,R,ell) == (23,1771,28866,506),'Retained bit local dimensions') + parts = ('auxiliary_histogram','source_data_histogram','target_data_histogram','copied_center_histogram') + for name in parts: + for r,n in row[name].items(): + H[int(r)] += 3*n + H[2] += 2*v + H = clean(H) + require(all(0 < r < m and n > 0 for r,n in H.items()),'Proper shared-core children') + mass = sum(r*n for r,n in H.items()) + require(H == clean(row['child_histogram']),'Saved complete child histogram') + require((m,W,mass,W*m-mass) == (row['m'],row['W_per_vertex'],row['rank_per_vertex'],row['deficit_per_vertex']), + 'Saved sharing dimensions and rank') + require(W*m-mass == 2*v-3*ell,'Shared-core telescoping deficit') + return dict(m=m,local_dimension=h,W_per_vertex=W,rank_per_vertex=mass, + deficit_per_vertex=W*m-mass,child_multiplicities=H,maxchild=max(H),edge_count=sum(H.values())) + + +def exact_moment(p,saving): + m,W = p['m'],p['W_per_vertex'] + logs = {r:log_upper(Q(m,r)) for r in p['child_multiplicities']} + upper = sum(Q(n*r,W*m)*exp_upper(saving*logs[r]) for r,n in p['child_multiplicities'].items()) + require(upper < 1,'Strict ideal characteristic') + return dict(saving=saving,exponent=1-saving,moment_upper=upper,strict_gap=1-upper, + log_upper_bounds=logs,rounding_denominator=1 << 120) + + +def bit_certificate(row): + p = shared_profile(row,False) + exact = exact_moment(p,COARSE) + m,W = p['m'],p['W_per_vertex'] + fallback = 32*m*m + added = BAD*Q(fallback*p['edge_count'],W*m)*exp_upper(COARSE*log_upper(Q(m))) + rank_upper = Q(p['rank_per_vertex'])+BAD*fallback*p['edge_count'] + require(1-exact['moment_upper']-added > 0 and rank_upper < W*m,'Both contaminated moments') + require(Q(2*m**3,2**80) < BAD,'Fixed prime bad-class allowance') + require(ATOM > AB and ATOM < 1-AB,'Subordinate adapter and row tolls') + return dict(counts=p,coarse=exact,coarse_saving=COARSE,effective_saving=AB, + atom_exponent=ATOM,ordinary_leaf_saving=OLD,bad_fraction=BAD, + fallback_children_per_edge=fallback,added_bad_moment_upper=added, + strict_gap=1-exact['moment_upper']-added,rank_mass_upper_per_vertex=rank_upper, + row_stock='O(w log e) internally borrowed radix-q digits; retained stopped wrapper restores them') + + +def complex_certificate(row): + p = shared_profile(row,True) + exact = exact_moment(p,AC) + m = p['m'] + n = m//2 + vertices = 2**(m-1+(n-1)**2)*prod(2**(2*i)-1 for i in range(1,n)) + return dict(counts=p,**exact,vertices_per_stage=vertices,N=vertices*row['v'], + W=vertices*p['W_per_vertex'],total_rank=vertices*p['rank_per_vertex'], + deficit=vertices*p['deficit_per_vertex'],group_order_bits=vertices.bit_length()) + + +def finite_bridge(c,b,row): + m,W,s,N,V = c['counts']['m'],c['W'],c['total_rank'],c['N'],c['vertices_per_stage'] + h,v,R = (row[k] for k in ('h','v','R')) + original_X = 32*v + local = 4*(row['c']+v)+10*v+4*h*v+4*h*h+8*h+8+2*h + local += 8*R*v*(row['total_M_operations']+16)+original_X + logical = 3*V*local+8*W+4*N+8*m*R*V + G = 64*(m+1)**3*(logical+1)*(W+1)**2 + E = 64*(W+m+G+1)**3 + charge = 2*G*W*W+8*s+4*W+4+32*m + B,C0,r = s+E,32*m*(s+E)**2,c['counts']['maxchild'] + require(charge < E and 2*B*(m-r) >= s+E and 2*B+18 < C0,'Finite semantic guard') + dc,wc = halving(m,r),W.bit_length() + old_coarse,old_atom = 9909,252 + coefficient,degree = dc*wc+old_coarse+old_atom,70000 + require(Q(degree) > Q(51*coefficient,25),'External row reserve') + return dict(bit_uniform=dict(coarse_saving=COARSE,atom_beta=ATOM,old_atom_saving=OLD, + ordinary_saving=AB,selector_stock='O(w log e) internal borrowed rows; retained stopped wrapper restores them', + external_stock='The q-adic group-size factor is not inserted into external polynomial row stock'), + conservative_old_coarse_row_reserve=old_coarse,ordinary_leaf_row_degree=old_atom, + complex=dict(m=m,W=W,s=s,N=N,maxchild=r,invocations_per_stage=V,stages=3, + auxiliary_banks_after_sharing=1,halving_degree=dc,wire_bits=wc, + original_X_involution_scalar_group_upper=original_X,local_group_upper=local, + logical_group_upper=logical,finite_group_router_upper=G,scalar_group_upper=G, + routing_charge='64*(m+1)^3*(K+1)*(W+1)^2; one full W-role permutation per logical group overcharged', + coefficient_bound=h+4,coefficient_denominator_divides=6), + semantic=dict(E=E,literal_charge=charge,strict_literal_gap=E-charge,B=B,C0=C0,C1=1, + induction_gap=2*B*(m-r)-s-E,fixed_odd_divisor=3, + exact_grid='One common dyadic grid times 3^(-K), K=G*(D_complex+1); no child rounding'), + rows=dict(coefficient=coefficient,complex_coefficient=dc*wc,degree=degree, + suffix_slope=4*degree,degree_gap=Q(degree)-Q(51*coefficient,25), + contract='Finite complex role stock plus unchanged conservative bit reserves; q-adic selectors internally borrowed and restored; one prefix and one padding; sequential reuse')) + + +def certificate(): + require(not sys.flags.optimize,'Run without -O') + def read(name): + return json.loads((ROOT/'certificates'/name).read_text()) + expected = read('paired-cube-input.json') + bit_row = reconstruct() + row = read('paired-cube-complex-input.json') + bit,phase = bit_certificate(bit_row),complex_certificate(row) + bridge = finite_bridge(phase,bit,row) + require(Q(read('copied-centers-network.json')['bit']['saving']) == OLD,'Retained ordinary leaf') + result = assembly(ASSEMBLY_BIT,AC,bridge,KAPPA,beta=PHASE_STOP) + result['parameters']['actual_bit_saving'] = AB + require(ASSEMBLY_BIT <= AB,'Supported bit interface') + for actual,key in ((bit['strict_gap'],'bit_moment_gap'),(phase['strict_gap'],'complex_moment_gap'), + (result['minimum_margin'],'assembly_minimum'),(result['absorption_gap'],'absorption_gap')): + require(actual == Q(expected[key]),'Saved exact '+key) + require(js(bit['counts']['child_multiplicities']) == expected['bit_child_multiplicities'],'Saved bit children') + require(js(phase['counts']['child_multiplicities']) == expected['complex_child_multiplicities'],'Saved complex children') + require(phase['vertices_per_stage'] == expected['complex_group_order'],'Group order') + require(bridge['rows']['degree'] == expected['row_degree'] and bridge['rows']['coefficient'] == expected['row_coefficient'],'Saved row stock') + require(KAPPA == Q(expected['kappa']) and len(result['strict_constraints']) == 47 and len(result['margins']) == 7,'Complete assembly') + sources = sorted(p for p in (ROOT/'certificates').glob('paired-cube-*.json') + if p.name != 'paired-cube-network.json') + sources += sorted((ROOT/'scripts').glob('paired_cube*.py')) + sources += sorted(p for folder in ('scripts/paired_cube','references/paired-cube') + for p in (ROOT/folder).rglob('*') if p.is_file() and '__pycache__' not in p.parts) + sources += sorted((ROOT/'notes').glob('paired-cube-*.tex')) + sources += [ROOT/p for p in ('scripts/three_stage_cover_network.py','scripts/structured_bulk_assembly.py', + 'scripts/partial_gauge_bit.py','certificates/partial-gauge-bit-input.json', + 'references/partial-gauge/pr97/SOURCE.json','certificates/copied-centers-network.json', + 'certificates/three-stage-cover-network.json','notes/general-clifford-frames.tex')] + return dict(status='Conditional paired-cube multiplication witness',kappa=KAPPA,bit=bit,complex=phase, + finite_bridge=bridge,assembly=result,predecessor_commit='6a9970a530119174507904e23592fd59ede19a5d', + source_sha256={str(p.relative_to(ROOT)):sha256(p.read_bytes()).hexdigest() for p in sources}, + scope='Exact inventories, supplier moments, full fallback/router charge and semantic assembly. ' + 'Local scalar/frame verification is separate; paired source scheduling, completed-core sharing ' + 'and inherited uniform-recursion/analytic/tape contracts are written proof dependencies.') + + +def main(): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument('--output',type=Path,default=ROOT/'certificates/paired-cube-network.json') + args = p.parse_args() + args.output.write_text(json.dumps(js(certificate()),indent=2,sort_keys=True)+'\n') + print('PASS kappa=4611281/10000000000 = 4.611281e-4; both moments, shared cores, finite router and 47 strict constraints') + + +if __name__ == '__main__': + main() diff --git a/research/pr148-source-retention/test_verify.py b/research/pr148-source-retention/test_verify.py new file mode 100644 index 0000000000..4a4f7c877d --- /dev/null +++ b/research/pr148-source-retention/test_verify.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +"""Positive source proof and deliberate false-retention controls. Apache-2.0.""" +import base64 +import copy +import json +from pathlib import Path +import sys +import unittest + +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import verify as v + + +class RetentionTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.proof = json.loads(v.read_file(v.HERE, "TREE-PROOF.json")) + cls.coverage = json.loads(v.read_file(v.HERE, "COVERAGE.json")) + manifest = json.loads(v.read_file(v.HERE, "VERIFY.json")) + cls.repo = {p: v.read_file(v.ROOT, p) for p in manifest["inputs"]} + names = {r["storage"]["path"] for r in cls.coverage["rows"] if r["storage"]["kind"] == "recovered"} + cls.package = {p: v.read_file(v.HERE, p) for p in names | {"original/LICENSE", "original/NOTICE", "VERIFY.json"}} + cls.result = json.loads(v.read_file(v.HERE, "RESULT.json")) + + def check(self, proof=None, coverage=None, repo=None, package=None): + return v.verify_data(self.proof if proof is None else proof, + self.coverage if coverage is None else coverage, + (self.repo if repo is None else repo).__getitem__, + (self.package if package is None else package).__getitem__) + + def test_positive_complete_receipt(self): + self.assertEqual(self.check(), self.result) + + def test_omitted_duplicate_and_foreign_paths(self): + for mutation in ("omit", "duplicate", "foreign"): + with self.subTest(mutation=mutation): + coverage = copy.deepcopy(self.coverage) + if mutation == "omit": + coverage["rows"].pop() + elif mutation == "duplicate": + coverage["rows"][-1] = copy.deepcopy(coverage["rows"][0]) + else: + coverage["rows"][-1]["path"] = "not-in-the-pr.txt" + with self.assertRaisesRegex(ValueError, "coverage"): + self.check(coverage=coverage) + + def test_false_blob_mode_and_author_delta(self): + for key, value in (("blob", "0" * 40), ("mode", "100755"), ("direct_change", True)): + with self.subTest(field=key): + coverage = copy.deepcopy(self.coverage) + coverage["rows"][0][key] = value + with self.assertRaisesRegex(ValueError, "source entry|author-delta"): + self.check(coverage=coverage) + + def test_wrong_endpoints(self): + for field in ("head_commit", "main_commit", "comparison_base", "direct_base"): + with self.subTest(field=field): + coverage = copy.deepcopy(self.coverage) + coverage[field] = "0" * 40 + with self.assertRaisesRegex(ValueError, "pinned endpoint"): + self.check(coverage=coverage) + + def test_missing_and_damaged_authenticated_objects(self): + for mutation in ("missing-head", "damaged-commit", "missing-tree"): + with self.subTest(mutation=mutation): + proof = copy.deepcopy(self.proof) + if mutation == "missing-head": + del proof["objects"][v.HEAD] + elif mutation == "damaged-commit": + entry = proof["objects"][v.HEAD] + entry["base64"] = base64.b64encode(base64.b64decode(entry["base64"]) + b"x").decode() + else: + del proof["objects"][v.Proof(proof).commit(v.HEAD)[0]] + with self.assertRaisesRegex(ValueError, "Git object"): + self.check(proof=proof) + + def test_false_locations_and_path_escape(self): + mutations = (("main-file", "path", "../README.md"), + ("main-file", "path", "LICENSE"), + ("pr181-archive", "member", "README.md"), + ("recovered", "path", "original/NOTICE")) + for kind, key, value in mutations: + with self.subTest(kind=kind, value=value): + coverage = copy.deepcopy(self.coverage) + row = next(r for r in coverage["rows"] if r["storage"]["kind"] == kind) + row["storage"][key] = value + with self.assertRaises(ValueError): + self.check(coverage=coverage) + + def test_changed_live_and_recovered_bytes(self): + row = next(r for r in self.coverage["rows"] if r["storage"]["kind"] == "main-file") + main_name = row["storage"]["path"] + mutations = (("repo", main_name), ("repo", v.ARCHIVE + "/baseline-pr181.part01"), + ("repo", v.HISTORY), ("package", "original/README.md"), + ("package", "original/LICENSE"), ("package", "original/NOTICE")) + for where, name in mutations: + with self.subTest(where=where, name=name): + data = dict(self.repo if where == "repo" else self.package) + data[name] += b"changed" + with self.assertRaises(ValueError): + self.check(**{where: data}) + + def test_missing_recovered_original(self): + package = dict(self.package) + del package["original/README.md"] + with self.assertRaises(KeyError): + self.check(package=package) + + def test_incomplete_replay_invalidation(self): + package = dict(self.package) + manifest = json.loads(package["VERIFY.json"]) + manifest["inputs"].pop() + package["VERIFY.json"] = json.dumps(manifest).encode() + with self.assertRaisesRegex(ValueError, "CI invalidation"): + self.check(package=package) + + +if __name__ == "__main__": + unittest.main(verbosity=2) diff --git a/research/pr148-source-retention/verify.py b/research/pr148-source-retention/verify.py new file mode 100644 index 0000000000..4f6cc32895 --- /dev/null +++ b/research/pr148-source-retention/verify.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python3 +"""Offline source-retention proof; does not execute the historical construction. + +Thiago Goulart (@Tuafo), with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import base64 +import hashlib +import io +import json +from pathlib import Path, PurePosixPath +import re +import zipfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +MAIN = "ef5f39403610d231a0c27e8a6b4f08c10209bcd6" +HEAD = "975c3cf5d4ee0c90d5a76500d431bfc59102bb72" +COMPARISON = "56b66d58297deca1d7dd130247d720e960f77a37" +PARENT = "c8b22bc5c10dba497ac25804e27d9647d818e2ff" +HISTORY = "research/pr-reconciliation-20261012/content-comparison.json" +ARCHIVE = "research/coordinated-frames-and-entrance-banks" +HEX40 = re.compile(r"[0-9a-f]{40}\Z") + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def oid(kind, raw): + return hashlib.sha1(kind.encode("ascii") + b" " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest() + + +def relative(name): + require(isinstance(name, str) and name and "\\" not in name, "invalid relative path") + path = PurePosixPath(name) + require(bool(path.parts) and not path.is_absolute() and path.as_posix() == name + and not any(p in (".", "..") or ":" in p for p in path.parts), "invalid relative path") + return path.parts + + +def read_file(root, name): + path = root + for part in relative(name): + path = path / part + require(not path.is_symlink(), "symlink input: " + name) + require(path.is_file() and path.resolve().is_relative_to(root.resolve()), "missing input: " + name) + return path.read_bytes() + + +class Proof: + def __init__(self, document): + require(document["schema_version"] == 1, "unsupported Git proof") + self.objects = {} + for key, row in document["objects"].items(): + require(HEX40.fullmatch(key) and row["type"] in ("commit", "tree"), "invalid Git object") + raw = base64.b64decode(row["base64"], validate=True) + require(oid(row["type"], raw) == key, "Git object digest mismatch") + self.objects[key] = (row["type"], raw) + + def get(self, kind, key): + require(key in self.objects and self.objects[key][0] == kind, "missing/wrong Git object: " + key) + return self.objects[key][1] + + def commit(self, key): + headers = self.get("commit", key).split(b"\n\n", 1)[0].splitlines() + trees = [line[5:].decode("ascii") for line in headers if line.startswith(b"tree ")] + parents = [line[7:].decode("ascii") for line in headers if line.startswith(b"parent ")] + require(len(trees) == 1 and HEX40.fullmatch(trees[0]), "invalid commit tree") + require(all(HEX40.fullmatch(p) for p in parents), "invalid parent") + return trees[0], parents + + def tree(self, key): + raw, offset, entries = self.get("tree", key), 0, {} + while offset < len(raw): + end = raw.find(b"\0", offset) + require(end >= 0 and end + 21 <= len(raw), "truncated Git tree") + mode, name = raw[offset:end].split(b" ", 1) + name, mode = name.decode("utf-8"), mode.decode("ascii") + require(len(relative(name)) == 1 and name not in entries, "duplicate/invalid tree name") + require(mode in ("40000", "100644", "100755", "120000"), "unsupported Git tree mode") + entries[name] = {"mode": mode, "blob": raw[end + 1:end + 21].hex()} + offset = end + 21 + return entries + + def inventory(self, commit): + result = {} + + def walk(key, prefix): + for name, entry in self.tree(key).items(): + path = prefix + name + if entry["mode"] == "40000": + walk(entry["blob"], path + "/") + else: + result[path] = entry + + walk(self.commit(commit)[0], "") + return result + + def lookup(self, commit, name): + parts = relative(name) + key = self.commit(commit)[0] + for index, part in enumerate(parts): + entries = self.tree(key) + require(part in entries, "path absent from pinned main: " + name) + entry = entries[part] + if index < len(parts) - 1: + require(entry["mode"] == "40000", "non-directory in Git path") + key = entry["blob"] + return entry + + +def changed(before, after): + return {p: after.get(p) for p in before.keys() | after.keys() if before.get(p) != after.get(p)} + + +def verify_data(proof_data, coverage, repo_read, package_read): + proof = Proof(proof_data) + require(coverage["schema_version"] == 1, "unsupported coverage") + for field, expected in (("main_commit", MAIN), ("head_commit", HEAD), + ("comparison_base", COMPARISON), ("direct_base", PARENT)): + require(coverage[field] == expected, "changed pinned endpoint: " + field) + + # Authenticate the two author commits and the inherited comparison history. + chain, cursor = [], HEAD + while cursor != COMPARISON: + require(cursor not in chain and len(chain) < 10, "unexpected commit ancestry") + chain.append(cursor) + parents = proof.commit(cursor)[1] + require(len(parents) == 1, "expected a linear historical chain") + cursor = parents[0] + require(len(chain) == 6 and chain[2] == PARENT, "incorrect direct-change base") + original = proof.inventory(HEAD) + full_delta = changed(proof.inventory(COMPARISON), original) + direct_delta = changed(proof.inventory(PARENT), original) + require(len(full_delta) == 114 and len(direct_delta) == 11, "unexpected Git delta") + require(all(value is not None for value in full_delta.values()), "unaccounted deletion") + + inputs = {} + + def main_bytes(name): + if name not in inputs: + entry = proof.lookup(MAIN, name) + require(entry["mode"] in ("100644", "100755"), "non-regular main input") + raw = repo_read(name) + require(oid("blob", raw) == entry["blob"], "main input drift: " + name) + inputs[name] = raw + return inputs[name] + + history = json.loads(main_bytes(HISTORY))["148"] + historical_rows = history["matched"] + history["unresolved"] + require(history["total"] == 114 and len(historical_rows) == 114 + and len({r["path"] for r in historical_rows}) == 114, "invalid historical comparison") + require({r["path"]: r["blob"] for r in historical_rows} + == {p: v["blob"] for p, v in full_delta.items()}, "historical comparison differs from Git") + baseline = json.loads(main_bytes(ARCHIVE + "/BASELINE.json")) + pieces = [] + for row in baseline["parts"]: + require(len(relative(row["file"])) == 1, "invalid archive part") + raw = main_bytes(ARCHIVE + "/" + row["file"]) + require(len(raw) == row["bytes"] and hashlib.sha256(raw).hexdigest() == row["sha256"], "archive part drift") + pieces.append(raw) + archive = b"".join(pieces) + require(hashlib.sha256(archive).hexdigest() == baseline["archive_sha256"], "archive concatenation drift") + rows = coverage["rows"] + require(len(rows) == 114 and len({r["path"] for r in rows}) == 114, "omitted/duplicate coverage row") + require({r["path"] for r in rows} == set(full_delta), "coverage is not the complete Git delta") + counts = {"main-file": 0, "pr181-archive": 0, "recovered": 0} + recovered = [] + with zipfile.ZipFile(io.BytesIO(archive)) as z: + members = z.namelist() + for row in rows: + name = row["path"] + require({k: row[k] for k in ("mode", "blob")} == full_delta[name], "wrong source entry: " + name) + require(type(row["direct_change"]) is bool and row["direct_change"] == (name in direct_delta), + "wrong author-delta classification: " + name) + storage, kind = row["storage"], row["storage"]["kind"] + require(kind in counts, "unknown storage class") + counts[kind] += 1 + if kind == "main-file": + require(proof.lookup(MAIN, storage["path"]) == full_delta[name], "wrong retained mode/blob") + raw = main_bytes(storage["path"]) + elif kind == "pr181-archive": + require(storage["member"] == name and members.count(name) == 1, "wrong/duplicate archive member") + info = z.getinfo(name) + require(not info.is_dir() and ((info.external_attr >> 16) & 0o170000) in (0, 0o100000), + "non-regular archive member") + raw = z.read(name) + else: + require(storage["path"] == "original/" + name, "wrong recovered path") + raw = package_read(storage["path"]) + recovered.append(name) + require(oid("blob", raw) == row["blob"], "retained payload differs: " + name) + require(counts == {"main-file": 96, "pr181-archive": 4, "recovered": 14}, "wrong coverage partition") + require(set(recovered) == {r["path"] for r in history["unresolved"]}, "recovery does not close the recorded gaps") + for name in ("LICENSE", "NOTICE"): + require(oid("blob", package_read("original/" + name)) == original[name]["blob"], "missing original license/notice") + declared = json.loads(package_read("VERIFY.json"))["inputs"] + require(len(declared) == len(set(declared)) and set(declared) == set(inputs), "incomplete CI invalidation inputs") + return {"status": "PASS_PR148_SOURCE_RETENTION", "main_commit": MAIN, "head_commit": HEAD, + "comparison_base": COMPARISON, "direct_base": PARENT, "authenticated_commits": 8, + "authenticated_objects": len(proof.objects), "comparison_changed_paths": len(full_delta), + "direct_changed_paths": sorted(direct_delta), "inherited_changed_paths": len(full_delta) - len(direct_delta), + "coverage": counts, "recovered_paths": sorted(recovered), "live_inputs": len(inputs), + "scope": "Exact historical source retention and author-delta classification only. No fresh mathematical replay, new kappa, PR disposition or selected-frontier change."} + + +def verify(): + return verify_data(json.loads(read_file(HERE, "TREE-PROOF.json")), + json.loads(read_file(HERE, "COVERAGE.json")), + lambda name: read_file(ROOT, name), lambda name: read_file(HERE, name)) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--write", action="store_true", help="explicitly regenerate the deterministic receipt") + args = ap.parse_args() + result = verify() + if args.write: + (HERE / "RESULT.json").write_text(json.dumps(result, indent=2, sort_keys=True) + "\n", encoding="utf-8") + else: + require(json.loads(read_file(HERE, "RESULT.json")) == result, "saved receipt differs") + print(result["status"] + ": 114 paths = 96 main + 4 archive + 14 recovered; 11 direct changes") + + +if __name__ == "__main__": + try: + main() + except (ValueError, KeyError, OSError, TypeError, zipfile.BadZipFile) as exc: + raise SystemExit("FAIL_PR148_SOURCE_RETENTION: " + str(exc)) from exc