From bb72fcd413b1c070e1cb037b73c00ca4088991aa Mon Sep 17 00:00:00 2001 From: Marius Ciepluch <11855163+norandom@users.noreply.github.com> Date: Thu, 17 Sep 2026 18:17:31 +0200 Subject: [PATCH] test(m3): Python transfer detects all three declared targets (M3 13.1) Generalized the replay instrument so the case family is an argument rather than a hard-coded target, since a harness that only knows one language cannot say whether the design transfers. Targets, pins and expectations come from the committed inputs, so Python is asked exactly the way Node was, through the same core, ranker, comparison and admission. VAmPI-SQLI models/user_model.py:73:get_user detected, answered VAmPI-BOLA api_views/users.py:187:update_password detected, answered VAmPI-BOLA-BOOKS api_views/books.py:51:get_by_title detected, answered 35 of 35 questions complete on every case, nothing reported new, zero admitted defects. Two results stand out. The SQL injection is the evidence the milestone spec names as previously unresolved. And two of the three targets are access control, the family that could not complete a question on any repository before group 12, so this is the first time broken object-level authorization has been asked on Python at all, and it answered on both endpoints. VAmPI has the same revision on both sides, so the regression mode establishes detection and completion, never novelty. It asserts that directly: with nothing changed, a target reported new would be a comparison defect, and none was. That tests the novelty logic from the opposite side to the NodeGoat case. Identical revisions cannot show novelty, and VAmPI is inspected teaching data that cannot qualify production Python support. No capability enabled, no latency claim. 1,407 tests passed, nine skipped. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo --- .kiro/specs/pre-push-safety-net/tasks.md | 17 + .../2026-09-17-m3-python-transfer.json | 477 ++++++++++++++++++ .../2026-09-17-m3-python-transfer.json.gz | Bin 0 -> 115944 bytes benchmarks/push/transfer_replay.py | 309 ++++++++++++ 4 files changed, 803 insertions(+) create mode 100644 benchmarks/measurements/2026-09-17-m3-python-transfer.json create mode 100644 benchmarks/measurements/2026-09-17-m3-python-transfer.json.gz create mode 100644 benchmarks/push/transfer_replay.py diff --git a/.kiro/specs/pre-push-safety-net/tasks.md b/.kiro/specs/pre-push-safety-net/tasks.md index 4bfc1f7..0700fa3 100644 --- a/.kiro/specs/pre-push-safety-net/tasks.md +++ b/.kiro/specs/pre-push-safety-net/tasks.md @@ -440,6 +440,23 @@ Preserve all completed task evidence below. - _Depends: 12.3_ - _Requirements: 2.1, 2.2, 8.1_ + +- [ ] 13. Show the shared design transfers across languages (release milestone M3) +- [x] 13.1 Replay the declared Python family through the shared core + - Generalize the replay instrument so a case family is an argument rather than a hard-coded target: a harness that only knows one language cannot say whether the design transfers. Targets, pins and expectations come from the committed inputs. + - VAmPI is a regression snapshot with the same revision on both sides, so it can establish detection and completion but never novelty. The mode asserts that too: with nothing changed, a target reported new would be a comparison defect rather than a finding. + - _Verified 2026-09-17:_ all three declared targets detected at their declared lines with their questions answered, 35 of 35 questions complete on every case, nothing reported new, zero admitted defects. The SQL injection at `models/user_model.py:73` is the evidence the milestone names as previously unresolved. Two of the three are access control, the family that could not complete a question anywhere before group 12, so this is the first time broken object-level authorization has been asked on Python. Evidence: `benchmarks/measurements/2026-09-17-m3-python-transfer.json`. + - _Limits:_ identical revisions establish detection, not novelty; VAmPI is inspected teaching data and cannot qualify production Python support. + - _Boundary: Evaluation harness, full-run integration_ + - _Requirements: 6.2, 6.3, 8.1, 8.2_ +- [ ] 13.2 Replay the declared PHP pair through the shared core + - PMPro 2.9.7 against 2.9.8 with its upstream prepare fix, plus a comment-only benign variant. A different language, a different mechanism and a fix this project did not author. + - The first attempt selected one case of three, because the manifest labels a case by what it is while the case id says what the comparison does; the harness now maps label to role explicitly. That run also exhausted a 900-second budget on the single case it ran. + - Done when all three comparisons complete with their declared target evidence recorded, or the budget they need is stated as a finding rather than reported as a pass. + - _Boundary: Evaluation harness, full-run integration_ + - _Depends: 13.1_ + - _Requirements: 6.2, 6.3, 8.1, 8.2_ + ## Implementation Notes - Task5.2 measured PMPro timing out after both snapshots were materialized but before change context/graph analysis. Group6 must account for compatible snapshot/discovery reuse as well as graph reuse; identical-tip hits cannot substitute for the later representative changed-code latency gate. No new detector, scope heuristic or incremental CPG mutation is implied. diff --git a/benchmarks/measurements/2026-09-17-m3-python-transfer.json b/benchmarks/measurements/2026-09-17-m3-python-transfer.json new file mode 100644 index 0000000..a5c9fdd --- /dev/null +++ b/benchmarks/measurements/2026-09-17-m3-python-transfer.json @@ -0,0 +1,477 @@ +{ + "schema_version": 1, + "label": "EXPERIMENTAL recorded-veto evaluation (release milestone M1a). Listed vetoes were recorded, not applied. Nothing in this section is an alert, an admitted defect, a capability or a comparison result; the production result and admission above remain authoritative.", + "milestone": "M3", + "family": "VAmPI", + "language": "python", + "flag": "--experimental-record-vetoes", + "development_budget_seconds": 900.0, + "budget_note": "Explicitly named development budget; this run cannot satisfy or measure the hook latency gate.", + "expectations": { + "introduce": "raw finding at the declared target lines; recorded novelty new", + "repair": "fixed twin analyzed and quiet at the target; base-only findings retained", + "benign": "backlog unchanged at the target; never new or worsened", + "regression": "declared target still detected and its question answered; never new, because nothing changed" + }, + "pins": { + "vampi-regression": "f16052dce83f05847133ec98f01c5193a41de7d8" + }, + "targets": { + "VAmPI-SQLI": { + "path": "models/user_model.py", + "function": "get_user", + "family": "injection", + "lines": [ + 73 + ] + }, + "VAmPI-BOLA": { + "path": "api_views/users.py", + "function": "update_password", + "family": "access_control", + "lines": [ + 187 + ] + }, + "VAmPI-BOLA-BOOKS": { + "path": "api_views/books.py", + "function": "get_by_title", + "family": "access_control", + "lines": [ + 51 + ] + } + }, + "source_receipts": { + "vampi-regression": { + "path": "models/user_model.py", + "bytes": 3642, + "sha256": "4ce47b9850812e47140b2d2f2e20c08ae4b5338d168ce72f23e3127986ef6e1b" + } + }, + "provenance": { + "repository": "/results/m3-python/objects.git", + "engine_runtime": "7213365694f836758cb5fe2b05504cbbb735b8c2f0dea5d5dd19546a1f5fd43d", + "engine": "joern-4.0.625", + "facts": "32edb6e1a78f1afb08ac4248cd436be16663e0d90dc1b3aaf948f2ce49a5a8f0", + "graph_layout": "403dda8d804c6109800ab95677f1c9a7c6158b9c83e58a65e2e6baa5132eefa8", + "queries": "deab634299983517c7e31903ed152f42345bb33e19841b4be86e3707a5372dcc", + "policy": "638f149e8d1e7e2f3a221f9a0b5cd5a70acee7954671f1fde94f4d30dd2b2b0b", + "core": "04ebc048a81554f16cdedcade0b055836bf44b6ded49e2491e12684bfc6d69fb", + "semantics": "4e2f7d24c98742124b4ea655c376e36c6af7fa0937d0e98fde81983b1e8dddb4", + "ranking_mode": "evidence", + "model": "disabled", + "capabilities": "9f0d85961ed49526a3131e71ec3f7e01aeca752da74ba7d74650168853781c9c", + "cache": "cold_no_reuse" + }, + "hardware": { + "platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.39", + "cpu_affinity": [ + 0, + 1, + 2, + 3 + ] + }, + "instrument_sha256": "aa615f9184a997c764148b2f0742b69fd09e3c9142e15a1e2a493ff75203e179", + "cases": [ + { + "case_id": "VAmPI-SQLI", + "label": "regression", + "role": "regression", + "base_oid": "f16052dce83f05847133ec98f01c5193a41de7d8", + "head_oid": "f16052dce83f05847133ec98f01c5193a41de7d8", + "exit_code": 0, + "elapsed_seconds": 130.73618572601117, + "terminal": "No actionable defects reported; analysis is incomplete.\nNotice: Some checks are not enabled for normal alerts. Review capability coverage in the details.\nExperimental: recorded-veto evaluation retained 4 raw finding(s) with 16 recorded veto(es), 0 base-only finding(s) and 0 change-attributed evaluation finding(s) in the detailed result; recorded, not applied; not an alert.\nDetails: /results/m3-python/VAmPI-SQLI.json\n", + "provenance_matches": true, + "outcome": { + "expected": "declared target still detected and its question answered; never new, because nothing changed", + "identical_revisions": true, + "declared_target": { + "path": "models/user_model.py", + "function": "get_user", + "family": "injection", + "lines": [ + 73 + ] + }, + "findings_at_target": 1, + "finding_sites": [ + "models/user_model.py:73:get_user" + ], + "target_lines_hit": [ + 73 + ], + "target_questions": [ + { + "function": null, + "status": "completed", + "reason": "query_answered_and_arbitrated" + } + ], + "target_questions_answered": true, + "questions_completed": 35, + "questions_total": 35, + "base_questions_completed": 35, + "census": [ + { + "language": "python", + "files": 11 + } + ], + "production_result": [ + "none", + "incomplete" + ], + "recorded_status": "evaluated", + "recorded_at_target": [ + { + "site": "models/user_model.py:73:get_user", + "production": [ + "unknown", + "witness_identity_unresolved" + ], + "recorded": [ + "unknown", + "witness_identity_unresolved" + ], + "admission": [ + "capability_unavailable", + "comparison_unknown", + "witness_unresolved" + ], + "unlifted_vetoes": [ + [ + "comparison", + "witness_identity_unresolved" + ], + [ + "admission", + "capability_unavailable" + ], + [ + "admission", + "comparison_unknown" + ], + [ + "admission", + "witness_unresolved" + ], + [ + "admission", + "dependency_unresolved" + ] + ] + } + ], + "evaluation": [], + "base_only_findings": 0, + "coverage_reasons": [ + "capability_unavailable", + "comparison_unknown", + "witness_unresolved", + "eligibility:eligibility_provenance_mismatch", + "witness_identity_unresolved", + "dynamic_external_or_depth_context_unresolved:contributor-scan:5fd8c7c2cb3416fe25b4c1437ea95ffba902e60407139a6b5d5c9d0a898beb17", + "dynamic_external_or_depth_context_unresolved:contributor-scan:d3df6b543c4f932ffc44880f53a20d8e2a39b01aaed423c81c06fe8dff906acb", + "dynamic_external_or_depth_context_unresolved:contributor-scan:98d5d6114cd938cf0b0a384d35d279d5754c2aea55804b3dbb24a915753924b2", + "dynamic_external_or_depth_context_unresolved:contributor-scan:3aabf2177b0762d91115354177297f9b7fe6f3452c9c17ca2ff5a2cb03ecf98c", + "dynamic_external_or_depth_context_unresolved:contributor-scan:68865c15daec49375f4bfb2f0acf7e48f45fd56909f137b1574b5ebf09d01095", + "dynamic_external_or_depth_context_unresolved:contributor-scan:72b8e224c83e4e007aa6cab72f158df9b99f892db8994c65407e16ca4c929401", + "dynamic_external_or_depth_context_unresolved:contributor-scan:b61225a697d36ca5907ae4c3100b8f155ec5a24c9039353d0688d37797cb5806" + ], + "admitted_defects": 0, + "timings": { + "deadline_seconds": 900.0, + "cancellation_allowance_seconds": 2.0, + "resolution_seconds": 0.020111914025619626, + "provenance_seconds": 0.3533190260641277, + "snapshot_seconds": 0.10452717612497509, + "discovery_seconds": 0.8253818270750344, + "preparation_seconds": 0.9375425560865551, + "head_seconds": 110.84975008293986, + "base_seconds": 17.11559215700254, + "admission_seconds": 0.008097915910184383, + "recorded_vetoes_seconds": 0.769000818952918, + "cleanup_seconds": 0.0012579129543155432, + "total_seconds": 130.09027444501407 + } + } + }, + { + "case_id": "VAmPI-BOLA", + "label": "regression", + "role": "regression", + "base_oid": "f16052dce83f05847133ec98f01c5193a41de7d8", + "head_oid": "f16052dce83f05847133ec98f01c5193a41de7d8", + "exit_code": 0, + "elapsed_seconds": 6.416815093019977, + "terminal": "No actionable defects reported; analysis is incomplete.\nNotice: Some checks are not enabled for normal alerts. Review capability coverage in the details.\nExperimental: recorded-veto evaluation retained 4 raw finding(s) with 16 recorded veto(es), 0 base-only finding(s) and 0 change-attributed evaluation finding(s) in the detailed result; recorded, not applied; not an alert.\nDetails: /results/m3-python/VAmPI-BOLA.json\n", + "provenance_matches": true, + "outcome": { + "expected": "declared target still detected and its question answered; never new, because nothing changed", + "identical_revisions": true, + "declared_target": { + "path": "api_views/users.py", + "function": "update_password", + "family": "access_control", + "lines": [ + 187 + ] + }, + "findings_at_target": 1, + "finding_sites": [ + "api_views/users.py:187:update_password" + ], + "target_lines_hit": [ + 187 + ], + "target_questions": [ + { + "function": "delete_user", + "status": "completed", + "reason": "query_answered_and_arbitrated" + }, + { + "function": "me", + "status": "completed", + "reason": "query_answered_and_arbitrated" + }, + { + "function": "update_email", + "status": "completed", + "reason": "query_answered_and_arbitrated" + }, + { + "function": "update_password", + "status": "completed", + "reason": "query_answered_and_arbitrated" + } + ], + "target_questions_answered": true, + "questions_completed": 35, + "questions_total": 35, + "base_questions_completed": 35, + "census": [ + { + "language": "python", + "files": 11 + } + ], + "production_result": [ + "none", + "incomplete" + ], + "recorded_status": "evaluated", + "recorded_at_target": [ + { + "site": "api_views/users.py:187:update_password", + "production": [ + "unchanged", + "same_supported_mechanism" + ], + "recorded": [ + "unchanged", + "same_supported_mechanism" + ], + "admission": [ + "capability_unavailable", + "unchanged" + ], + "unlifted_vetoes": [ + [ + "admission", + "capability_unavailable" + ], + [ + "admission", + "unchanged" + ], + [ + "admission", + "dependency_unresolved" + ] + ] + } + ], + "evaluation": [], + "base_only_findings": 0, + "coverage_reasons": [ + "capability_unavailable", + "comparison_unknown", + "witness_unresolved", + "eligibility:eligibility_provenance_mismatch", + "witness_identity_unresolved", + "dynamic_external_or_depth_context_unresolved:contributor-scan:5fd8c7c2cb3416fe25b4c1437ea95ffba902e60407139a6b5d5c9d0a898beb17", + "dynamic_external_or_depth_context_unresolved:contributor-scan:d3df6b543c4f932ffc44880f53a20d8e2a39b01aaed423c81c06fe8dff906acb", + "dynamic_external_or_depth_context_unresolved:contributor-scan:98d5d6114cd938cf0b0a384d35d279d5754c2aea55804b3dbb24a915753924b2", + "dynamic_external_or_depth_context_unresolved:contributor-scan:3aabf2177b0762d91115354177297f9b7fe6f3452c9c17ca2ff5a2cb03ecf98c", + "dynamic_external_or_depth_context_unresolved:contributor-scan:68865c15daec49375f4bfb2f0acf7e48f45fd56909f137b1574b5ebf09d01095", + "dynamic_external_or_depth_context_unresolved:contributor-scan:72b8e224c83e4e007aa6cab72f158df9b99f892db8994c65407e16ca4c929401", + "dynamic_external_or_depth_context_unresolved:contributor-scan:b61225a697d36ca5907ae4c3100b8f155ec5a24c9039353d0688d37797cb5806" + ], + "admitted_defects": 0, + "timings": { + "deadline_seconds": 900.0, + "cancellation_allowance_seconds": 2.0, + "resolution_seconds": 0.01914159976877272, + "provenance_seconds": 0.294802316930145, + "snapshot_seconds": 0.09776705387048423, + "discovery_seconds": 0.01528664818033576, + "preparation_seconds": 0.120669448049739, + "head_seconds": 3.001164474990219, + "base_seconds": 1.547726898919791, + "admission_seconds": 0.00981250498443842, + "recorded_vetoes_seconds": 0.7769495439715683, + "cleanup_seconds": 0.0011470450554043055, + "total_seconds": 5.799134210916236 + } + } + }, + { + "case_id": "VAmPI-BOLA-BOOKS", + "label": "regression", + "role": "regression", + "base_oid": "f16052dce83f05847133ec98f01c5193a41de7d8", + "head_oid": "f16052dce83f05847133ec98f01c5193a41de7d8", + "exit_code": 0, + "elapsed_seconds": 6.3836759477853775, + "terminal": "No actionable defects reported; analysis is incomplete.\nNotice: Some checks are not enabled for normal alerts. Review capability coverage in the details.\nExperimental: recorded-veto evaluation retained 4 raw finding(s) with 16 recorded veto(es), 0 base-only finding(s) and 0 change-attributed evaluation finding(s) in the detailed result; recorded, not applied; not an alert.\nDetails: /results/m3-python/VAmPI-BOLA-BOOKS.json\n", + "provenance_matches": true, + "outcome": { + "expected": "declared target still detected and its question answered; never new, because nothing changed", + "identical_revisions": true, + "declared_target": { + "path": "api_views/books.py", + "function": "get_by_title", + "family": "access_control", + "lines": [ + 51 + ] + }, + "findings_at_target": 1, + "finding_sites": [ + "api_views/books.py:51:get_by_title" + ], + "target_lines_hit": [ + 51 + ], + "target_questions": [ + { + "function": "add_new_book", + "status": "completed", + "reason": "query_answered_and_arbitrated" + }, + { + "function": "get_by_title", + "status": "completed", + "reason": "query_answered_and_arbitrated" + } + ], + "target_questions_answered": true, + "questions_completed": 35, + "questions_total": 35, + "base_questions_completed": 35, + "census": [ + { + "language": "python", + "files": 11 + } + ], + "production_result": [ + "none", + "incomplete" + ], + "recorded_status": "evaluated", + "recorded_at_target": [ + { + "site": "api_views/books.py:51:get_by_title", + "production": [ + "unchanged", + "same_supported_mechanism" + ], + "recorded": [ + "unchanged", + "same_supported_mechanism" + ], + "admission": [ + "capability_unavailable", + "unchanged" + ], + "unlifted_vetoes": [ + [ + "admission", + "capability_unavailable" + ], + [ + "admission", + "unchanged" + ], + [ + "admission", + "dependency_unresolved" + ] + ] + } + ], + "evaluation": [], + "base_only_findings": 0, + "coverage_reasons": [ + "capability_unavailable", + "comparison_unknown", + "witness_unresolved", + "eligibility:eligibility_provenance_mismatch", + "witness_identity_unresolved", + "dynamic_external_or_depth_context_unresolved:contributor-scan:5fd8c7c2cb3416fe25b4c1437ea95ffba902e60407139a6b5d5c9d0a898beb17", + "dynamic_external_or_depth_context_unresolved:contributor-scan:d3df6b543c4f932ffc44880f53a20d8e2a39b01aaed423c81c06fe8dff906acb", + "dynamic_external_or_depth_context_unresolved:contributor-scan:98d5d6114cd938cf0b0a384d35d279d5754c2aea55804b3dbb24a915753924b2", + "dynamic_external_or_depth_context_unresolved:contributor-scan:3aabf2177b0762d91115354177297f9b7fe6f3452c9c17ca2ff5a2cb03ecf98c", + "dynamic_external_or_depth_context_unresolved:contributor-scan:68865c15daec49375f4bfb2f0acf7e48f45fd56909f137b1574b5ebf09d01095", + "dynamic_external_or_depth_context_unresolved:contributor-scan:72b8e224c83e4e007aa6cab72f158df9b99f892db8994c65407e16ca4c929401", + "dynamic_external_or_depth_context_unresolved:contributor-scan:b61225a697d36ca5907ae4c3100b8f155ec5a24c9039353d0688d37797cb5806" + ], + "admitted_defects": 0, + "timings": { + "deadline_seconds": 900.0, + "cancellation_allowance_seconds": 2.0, + "resolution_seconds": 0.017571233911439776, + "provenance_seconds": 0.28969555580988526, + "snapshot_seconds": 0.09667836595326662, + "discovery_seconds": 0.013358874013647437, + "preparation_seconds": 0.11729397182352841, + "head_seconds": 3.0182085398118943, + "base_seconds": 1.5452590121421963, + "admission_seconds": 0.010044088121503592, + "recorded_vetoes_seconds": 0.7472286818083376, + "cleanup_seconds": 0.0009872759692370892, + "total_seconds": 5.772516693919897 + } + } + } + ], + "verdict": { + "targets_detected": { + "VAmPI-SQLI": 1, + "VAmPI-BOLA": 1, + "VAmPI-BOLA-BOOKS": 1 + }, + "all_targets_detected": true, + "all_target_questions_answered": true, + "nothing_reported_new": true, + "all_recorded": true, + "no_admitted_defects": true, + "note": "Identical revisions on both sides: this establishes detection and completion, not novelty. A target reported new here would be a comparison defect." + }, + "bundle": { + "path": "2026-09-17-m3-python-transfer.json.gz", + "sha256": "b027bd653d33a2bcc760d02f57746f3a06cf76cd348b049a4c189e8dfcacfe20", + "files": 12 + }, + "finding": "All three declared Python targets are detected at their declared lines with their questions answered, and 35 of 35 questions complete on every case. Two of the three are access control, the family that could not complete a question anywhere before group 12, so this is the first time it has answered on Python. The SQL injection at models/user_model.py:73 is the VAmPI evidence the milestone spec names as previously unresolved.", + "limits": [ + "Identical revisions on both sides, so this establishes detection and completion, never novelty.", + "VAmPI is an inspected teaching application and cannot qualify production Python support.", + "No capability enabled, no admitted defect, no latency claim." + ] +} diff --git a/benchmarks/measurements/2026-09-17-m3-python-transfer.json.gz b/benchmarks/measurements/2026-09-17-m3-python-transfer.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..f17a0c0748ad48d29e22786ad061c76e31ded90b GIT binary patch literal 115944 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%0DIuX6Npsw<@$!(oh=>w9mS`&KYdvcsKi!r3_k zRzTBdqqki;;0ksziK+Z^whOvC_v?IZ@ToC9db{goFjl-*a1!Cuev6f$YNL0{M;xNQ zq2Rb#?CAP(XgP*Qmxu3=mp78_lV{>Hwb|(S_-RG{ zz)k|=Sf}f4?xkDIW|nz_uh^-T5wM572A2P6Guu_&!*ye$ab7mGZU^BxpBbeW_g5(=q#f2g~c#ka>L zDKMCj%hGLPk-|>q91Ru1<$D}eNQl1V1y))gY2l7Qn0VY-%ZG{4>~*^;Ib~YMZ?bBz ztQOD^C&wsG40J2=R{Y4KUSPp(Y9c9Zy6sj!*dwAJS(IQ?e%WVXYzddPKr&PkjsWI_ZHS=+m7`TG9e^{~ElBg9I^hYwm=kqdZW0e}pQsC;T zi+gJ_fWDH@PpR~WSYyC+n=w z1Cd$HlHqWG_db*_zPO%RS{s@Bi4hXWF&O_g=m0bLSu~Zw+(PTCcMS^R|66W#*B^Mc zx@XgH$}Oprlg|j#`iRqBcyRB%sgwyX#@C9mN|#ZsCPX?qwDEF1nfBUy({eI6DaVPt zyZQIZM(Pi(uQ2;rC);8G|gw*c9~28n{?q{9Ovi>e|6E1BpJ@^p=L;43{TAU zf9)!M*d2Ljmz?D`PQdI%9mH@^tBWxL?qjEGIDCQ)#;WS-92tS!TW?vN0yZz&+bMK= z80>8RczD4F>b?Mb8&uDQshlW$D{XbH?h+6%t8$9|!c^0u;DdT#EOv#)=Fd!$CSzFi z1%Sv%gk(9j`O2=hi=tQz*H5GwXMY#|!j-xC^I*+F)6R+Y@TqR0_}-hem#5J;Jbe}bL0+wQEX$XeDuq!7Jr@y03b@Hm&>T{(gF} z@TsIF#6qw%(&H(z?MT`0vlwYqL`b~K9W=r7N{=>M^bzOvQp^MmRjelVydZS~?qLe{ zVNfsbeDx%3ZJ$f`h8napV6tx5-Db2H{c_Rw*`&<5rOn=Znmk&5c)GxxNku#?-Io32 z57?CRepl0yW;&0hyr`_{eYDeL!gZOswxLhfd4ZVYKM2f9{>6D=_c*{CBo*{W)8z72SR|I`dICD_7s<%m z4y&Hg4=K31MTBj8=pV6KA_LnK`cBimIrVH8F_q%puPdJs z`9*?Cz11@^aGyfR9XpqrT7%o-{Bvoo%g_3!4RtTA*r$@fZ`O>$$w&YDhzKV8#lVI2 zRj0sM_|GLXebZ{uTp@-NzhUQzcdo+QhfjX9!|2n`kv+3mX9#R*3KhQG;3@;lNMn->=ZrIsci8UNo zPcR5`r zoz-$VonAb9f?BjebloYHC42&VlaurqZ6hd^axHW$WzrF4pjK8YDUy*)@9{S2Fq(er zVCnudXD(pp&2eu*b3Z=Y%J|!`{o}?7(ID?^#;zK)lk(oKH}JQag-^;qClc1_*#sze zdgO-orbgJrgZXPuUz^ikjG2{@b~*Xl-+k{YUJ8D-QM-wpKr75_kas4ah%#6{8;N$GsBW~h&yEi)C5wz!Y z)j~b9^GNP;`3B54S6hhGC33bDv-?X`^RY9cF>^bsR@2VL9D;3F{(W&`;d=IoF)OzT zvFYKhf)l!TYqxh9h8acAbCXVBy*mF(p+vyvyk3_zQhu6FO<-QFv2mL>_8G0FmNM|0 z)nogu6Rmn}bKBvO)Jyf`-Iu{<>M*z0=C*J8&dKq13gz-;)Q>0g>lEgzZFA64~2S@JHK~`A{0w-EDGk;ur|?C-627e9Ijz=%jheJSl$= z{$a7|QXSE-2`ZZ~uZ~cfIM`7`JCo%&^}nRmu%~T~mE$%us@4$Kt$-0NO^ZT~Nu~k! zwS97EE_@3@O!jovK<@z?jap(?(*i+cW{ICiBe0ie_p~xB=cQ&yi_w4?)o6x1<+tMT zj2uY|640O()oGTDmpxO6kw4|*S(UO2h+;CGnYY&RT4o?Ktu~w>R|l7#2FclIPYK8G zo=l&uKPx9=I@YPDYz|z;+X43`Gg7Qxw6scGhi6XmgwjF?+oH%)tXDnXE=< zkRXkq8}JwBfH;+QjA<>E;j+G6D;a~^nAeFiA?0Nam!=H3nPMSz7Siia$M=|{0KB@_ zp%%m7BotH>pnwyDmOLi^hoKopAW%*k@n@YXmayg41ecO*_=HloaC;w(OO1I!JUEbIKvc}iUYdcwwGpY}=ddyy@+8MeT!qvE^>}oY6i#3qcA;P6P?-!>RZv7u z5=*m!0SO+*u>Mpc_oTgB$Lcc2*Ww*e-VNfX8qUOeF0ha3hcNT*tKZ9I7~Sd;dEK8?t)upZ~_!mBO?`|biaMX{HYVktrQ3%=MD z3o!6%#FaoXKkH?YclX?$O6|!p<@!zB(MHf)X)E13-5|6%aAFvWo6Vj?nTuPsv%W}k z8`}^|;uwP$BnP?@eG|C>sa5VDsmAzGa-q9$PSjx0e!CGo+E05=bKc;!QeaSK&Wl8z zKPmRpSkbK?6~5Uxqrz@O{|>C_q2^Hpcee6q`TT`Vf)!X}j1jTfRuFW@PKCUFa1|iv zBxQb2A)sHwk3nFB0@ttW%0YXGpF-jOt3W0iogMS7z3^|L!QJ~J#5@md1OLV^V54x$-PItn2eR_7l{=ELvsMCc$wYA5RVoU&UV4L46k1LIUH0S z-zHE`xn&52J-}_0v>Q1MXX7udX8QP(KIrN$jPY7m# zRP>%I1592@gCfdvS|6seLZ{|xx`S}cOM0}@@yAOwRIQX{(7UTEKF z-7<*%WEP3k)ke9>%(G6hvjgcMxNk4pG-mLU9%nhh>pA|!l3Y~OxQW5(AP#cR#T=c1 zu85Zk)c?JSp$aG`WO3V^XYE7hC&Cs4t5u2D*+_^eSY}Cbyo+<4Of{Z~vHEnStiX;j zIU-j#3`l{BDfB60*9?M^8hDi7Bey7gAiUCz8EN9%76>KlY$FX!0-9z1MW-sw6S1J7 zJ7K_n-HsB>koPr)gtVq$Jq989dQKI$TWoDFJen~QUSueP z@&km0vb&G3W+!Zs66_FRxbE$EEAJLG(lYH9MEhY&cahXww2dCCJ^n~hd%!eNBn$-C zWa4Y1Y8-tlj)Azd2Gi?o1p}et%33Im)`D2|ybiL*2DrqCN_+s-G}vL$BMNl5bk?}p zQ}(v1x*v0M)GBQWe#3Rq?%LSC_Sm*0)uncV!W458trm6S4G;z-P-OaXuGpIJ}!9S=jDo-E@id zvcql24VSyR9<;e1#9m+ko&>#|{2}k%Y|YegjankW^=cAEnlyfJ*k3v9Z?Y-BDd#KT zm&mn^5q-apw&UA;?l(eH&*SdNpr0Y>N(GdW+puxY5HX_rBpVeevBE+kZm`4x)S~YM0Wd|I)_M zGvKSk_b&Kj{<&j^k0ZC`GO@w=o$GR=MR75=;{tY-dWQqf`fGhdXQL$WLhsDaR&Vjw z(;Y`mO?P|5WisbV;YgxZGr|@C^l)(LwKLe+{W!Ve-$l@56m!WX;O!szvQ~W&F%5f( zgXF%mwOE?7@0R;~!)Mnc0I6cA+p)8mjDcG|L*Jv};+ke^_S1>rs|(5bqaEnmB=>mbSSzC7d0Qhoh zFm`<3_5o`k1^IVcSzZPo!wj~#0+=1l=CwEOlk0+I%52raB}|)Lyv-*+58^Y$z34p+ z-5QB2lDBpk?Vi4OuVwb~I8?b`jeclR5$p_1(*CUHk`uSwI(TCog+1vWnaKR#b-(Uh zk7~P{+>Ok>Oo7;#pYl$w8Fo;-nDMyL+Fk54299qtS5M-GLjk!<-FB|=yOa+3)Kt9+ z3TmCCj<^wx0KOiAz$Pu(PN5n>Bk}XL|BpB@3g~w=vg>-jOC+viN=X87z|opJ%EvjY zl4Q0$&1$E|<5ke!b<2euUH!4WT{^2M*Ws4+wy|~J>@VPfycB;OtR1g? z6PJhlPZ7Rc!eIPhH*@G2pa;)nBBFqZwGJMy=>2*RUtw&Pp&++wPUP%db$;LGOI}5Q z->mFQhpi!KB83?|kW9aOA7vhZ#eE;>YFh+Kc-qQMsUHdSKt zJ$_IJQ7ow!ISWb-tQ2yhXG`N^wCq)h{PY)Dhj+As2o(vM;zQU!KeJgP$_z!`i9eBi zbt45-$VrHhPJ7<4s`(1m*#*P%oP883u7xWsP$R=chYFkwkdqtAlVp)d zpt@;-$^v8q!hVR*af4$h?qvXp0FeN7|2q;lXKavXl#BYE9pxuILJr$T3oFZ!9SCz1 z;pIjrP^8Wz68Y~-iI7zxp+QcLktvpZVfl_JTNWiNK|+R{FoPngGF~FZQ6Kih8HTRF zkYk+m@1+LCi9A^EBRPb9yI;pENZ{}f?-SAYpiA3#dp{%XLu28sd0(+3xcV?8-Ok8DyB3=X#_-u^ivMyObZ6Zg=0g0;YQE(t9O{@mQxRAXg`E0}b$Te!ql7vx-pm_+Oap&K%<%iA* zpSTO0a2+|a0Wt?rY+Gv$-w3|Az15d3YM>=&b4W-5B{UN!QL0w%BTmP?u4E;IoPPqR z=$xTyg(429yM;Hh1!&beXyG8@fw{M#IcoLBaOolP{e@GX=HFgt14Wc&$?k`RiHLCH zlK^4~2pkS`rYyg>Yi(XmOY8V3=hvA`m3tlWL%_ zh((nwid!Ui-5g$(IEqu@{{|!|*(G8CMn*S zC7SHSVMzB8Pz6%#;l%%qp)QsKhlH_R_iOH!I} z6Zi~zyR_iy+b&ky1|d8n42B>k_v)mMQ^CC*KyU8BRLdRAv+G{$_-q_ME*K-3eP1oL zfC13-O;fE=sHKKw>4n6T+Y(y9YOSLCSry@w;qZ?F!@186Sz%{7e~`3lO&zw&POzxI z$0bOrGKyA9QXl_VW`Ro4K^A-+bAuwMB~CmD&);KM{gVz&O^`3SZITUtOk={RQ$g22 zls%zjX5hV|R!JrVt;thTFvSdm&O3Ux0E<41oIxfWrfP3R+9+l`%eAUR+eOq>&A+ZG zlPnc^h}ue>N9fYW#G2;$z<{4GIl@(ly2_PQ)CG_W{U|J>E3%AqRPA4Hx|vdEun~DG zE0eB*gBVU<6*o^nM}{C(acn3XNQ3V$LaHv)9yIj2@8M>2bl$EsW;^e)*UnGC)MfSw zq7WSnp6hqZB=?c@WUDA6<1(7h*XSUFL&NF&hy7stFZ;ng-3SgZs`Fp=L+SspA7q77 z|7Aa1|Hpo?1h5~NiTYF(s%}+uW(q_QOONe~RV??h%BiAhL@}Rz&@(iKl^~FW{K7Th zo|$=PjB^`M$s?&m6Z+6x?HLP&m9UuS7SW<}pr=M~NHT_{qw9mfB)~Lc47TM4O>Kfr z$kLcuDb)A+`>3Rwxv)U38u|0yU}OY3&olg0zXcvl5P~KXn+|6i(?BM3CDM#$1?`RW zjWB1i^p^z(IuUQKOrUo)njSExVJWJ`8cJ(s7&cWhkvCDXUkUNh3F*M#AqO4k6|-lu zA{3%%=i#D55*DeCnxmkF1gaiqXxqa%f*~i5np;bWiGZ=@!`*>g4jc9Pl7%Re{lFD# z^urQ2S5gIPa25NLr$5e+an4ptlFx}0fy|=65Uf!OS0zvnq)+`@q+)p_Z4Eg?MQIo9Y3<=4CCMLKn4D(clXT>SpC)lUiuxeF7I17RT=rzBc0(%UaP;x76 zBUC&Vq8haD8Z^y5#53lMLs~4Xn@EkbB+_4Da}ayg+P5n=yL+d_-<#N5rQtG^xiPum zv@Gafn0XmSBmAkDeuD{ysDaUAoo}6<;~T;&*xm?GXUk(yU5B}W9DbLGLE&=?qUg_7 zp1-zq|L92pN;7zNiu!n(UTz?iQ#r+Fz0Dh{@?jGQr)r-MvfrKn4d2t^YTgv6|OJCLs_ z0*`H|6a>d%XpFrb*y7ZN3RlBF($}0s#){Pzu1NgH@&L;kipiedj=7$wSLH-H*I!z~ z!K|uLsh?Un`V_0|5HH35zWE1MR1+QzyaircAcj3C;PEBQ*fEWhq+bCD1C_GUSaI8k zUd$XBaiJ4%o8T=*!J*i9Wex?(24v56tJQg9?Z1z&mN7U~xc0KaAIBNN~T` z`Jt?SM_Ney%YH!pjGD@1okN+MgJ}Sw!~9L94PZZ5>ocW^IsR6$QU|af@-bfLp}rML z%1ZxbKX|0mzCzB6elNij_7rwDCtJsY`iK2+nb!~>`49Wy@L%>r(?9G7a{&8+%77Eo zo{9{?ss;;blK3}({qPMq_8;~GG9FrjU=wSd<>A(@*bwX`$6a*_Jf{#N$ew^7OTvbHlFZ&^$m8dwJ{ttlt5c8GV?P^g&%hkaC1yfC-&XU-${~^&?(U0#e z-(j{@m;#3(Pa#F*Hy~Wz)$n@t@dBI%CW!<#-YpmhXOtnbZ=H3)GvNKANl-uNfTd5Z zuA)^HeU9<~#ONY)Lp%pP%4a{`>7x&_yM3MlT30X8hFCySfscyNv6Ab=FGkv{t{+bU~63d=TUkS)37OxaSSIEQf;efb&SeO2N zNCsCY>`*7Q^Kk-vZ|CrPLe7)^AM^J1c37_ZX|ivHeNRCH30u}=p`r&oU^6D~uzctR zs0|zV`!+yuY8E5V;v1k~UIX2d?bFc!4{VhrFbIHmNRy{uACm({q5JNSMX2rIaF3-TLo6jpxnrvGmLH^ZP@NST4U)J} zX%P}Tps6@RTDBDx{v2ZYVlW#dV?q4b$|wkBe92_pRBbPAB9>J z|6`(033F!BjoG!XMBwmQVuv_OpP}rUPt3xPiJgrvaNd$T@!HueOrV%qwf`4Z z30D}Ombc%rMISp@9rbRgr;1z@-HOmBZ3|jcXow(=z?pO7Z??5!D!U|2tz0fg!BpkW z8xYPto&{QhPQy*X9uD!Sc~hQb^KOYr8=kuewIiN=u*VqS>z?7CIS$%||@eN5wbmYs8oofuDQ(7FffXhS3uK)C|Xp%)b-qg2cAJA7C~ ztB2f+V@<04nZ|(UjHwMm5SY3C3oWs6ut{!U44#KX1mn++L2NQIb;s14nMi${A6pS( z(yzhpc)aO29yVkQIt9{)1c`|=ne_gutgU=6kmD%u(ADKA|HNG>|LL=crMsl%Qm z~mGtP)TzGr_fY&js>ZPI+>=s8tcRh}+LoXS{zM|vd}%*UXxq0EY^ z!==GGaJuvKT7sH*;CQ?L*)Qrm>PjG0HJPH5#4aV^ z1`vnx^2BskCg^7Tf~07oW}QMpJ~A(`v?sFbxY%m{gycE(A2RpiJQG><?S9Vx7Id4q19DHmM8%9$;5vMh9%MQn;v4J@_=%;9vO7@#?U~ zc!FpPbxLvpG_uuu%JX^KLgdwXha>iDsbEPLz#!x*R!}zZ@55Fncw>mAnIw?OQwu$>Da4^Nj5(-_tT%*L z`z}yXeYg&cZeeI7Om99$pvYY+$a-#wq8}}Y`pnt^?kIMlhSn}96n`y)z|J9&1Y0~T zH!^;hr4dr44OHnVF{wdEN(4?O-T*~!364v%iw+{Uk)%8ykseicsU{kPnHE6uGWOW6 z^Aqk7XmweU0|@CQY+@ZjYRE-V)T?io7aBhQ^sYg-07@lnAGvB-~H>Al?&BiArbFB|nU%{u*Ep1?Rw(vgG>&A*mAq23UvL zqMV}QAMK%dK>Gg~U|Sntp?xG64lLi$7f+iI0WjwNBA#11vMri_HqXq^7XUDe2+6!5k)SzZV z7A2H7JlB~4Zs(6H5`BVS=o-*tHJJo3z|Ln71zpo>Z4sQn1K$7)uw}F=oBtSKL(raG z1Bjyj8esW^&BFvnng`SY23QlJr(E}J@xyiMa zQ+leqqEHIy_O5PQk4O%n$>sY_KR;lnYaGd_uGZiNaJl|3%*s;|g;A@rT79-p17Ea8NZXfB`lf7hr(B`X2*q<60*A z0Mk7lzyRAO*=c`8eYyxRz+zD8Xi=hb-f zjQ-IYOfHl_XUEECI(o=DFFCm^@~oHAZNL%bKzAo$JjFKt^>YmZlq2Dm&qCVu_w*=C z_Wh!KaTIJ3pF5Y>_Hafr9&a+;Q2gcY5m$Wv(+}H~sl>(WB7gvv&4FyPsGZU=6b3&W zGl{MW<-YK2b1sp?Q>&lm`I_L;2Fei`2-*g=b6Kq%M%uDLf59uIqtoZ{>MnGohw@wOF zGV@flV%(po%EU#@$bQT38^>Xw`SHAil(2IRWDJb=-wq=B)CD&Ly z<`lZRpQ*2W{Dt9TBC8VdoyOA&{443+(!Sp)Y(_JZ5{T0YVmlw_}q0o z`07la0-Kdy^(Md9KIxhI4An!&@-ppRDncKVW_Rs!)Iuh8*}}^dj~ml{w5Xc>4_8a>vM0A ziQfZmWJBJ~({PBmU`DQIW7I2TrgPMYpV8MFH768Qn*cZG=24zxn3KXgcUG)~%8}yPl|MMvoZ)SY_fY&5+4?1maNF}b)%-%?!VxP< zNq$6;(5b1i@W7{0b-!+Y-;|{o>gCTf;Eh79&xhAkJD-Ec+nwIq8NQuu=bPGAvGVIG zq2=u}BZs+V^`o3m3_@*1Z#$Huxi7@pqffkxStaK;Kl|RcluNDNuiN==-9pS!Z*7OQ zqw1w`zqS6jcRKA2=YAaopGUq7?v;GG@GunQbtaTNcK+tj{G_`jj78V~Q}@r!_=k?sHuwf4#TQPb-iOcH(Tn-$ z-ShTZ4kj1~$oW-l$8)^mhviropr#7dqd5B(9bnF;>%;2`8 z`bM~3ws00e!(TpF`et>%-s79=W@V>cdmo314;*VTOU)RGX!R$CrOj7inXU`IPKRrI zucI07BPS0$NCY4pU&q^?2agE#k|G_PmQNTz?OhEXnYlXG(Eikw|0!^K2nF>r5%8)W z90N`k-X^tP<|vk?Dj$ywDn{o!M2g%M$Z52DL-8iF(gT?iPhCAeHp6TXctj}SCo%at z`v~*t?tcXR7~{{!U8B4wc^mRrpseli(R8`@F6-dbduUW2Ej{|Ke%bzvN*LD9&Cdsy zwEE=ryi)b?u=9zjcfaT#{>c_AZ#*dRae;Vy(Mo)SS#~^}P56Ej`?P&q61-~DsabGf z($1;8Q{gA9zlB(3XL$HWAu5%Tx9Ow^ws~+A@jbEO-S|8J;cJ71OXS%WbSC~E{65CB19jgKeVw(psc6x6+ zv4-QZe+ZuA&Alrw{bQrnX2aIyqc;#A5Z{A-eaL+CAo6*N*p-ji8x^~WB^b>`8ILtD zZ!Nm;S$GU|87ft1Av_w14ap*RNFDMPLwSn1eU3LiI}@GBb%_x0_1fq+Q%~Oc{EhoS z)9R(rvmQIK%9FYJdB4B>ycpTJVMLH`)_8x8;}d|bhC>viXf3-PToahJY-H7_=24eI z98KJq)oW|?Ac&x|;7-T)_A+^r+jw)7F0l@oa|%yB(k)P9@uk;u$_MfEhBKw7+x29_KUvAw!@&*kJ|JM5$m&6CD{j8?`@t;Zm}BUL=~rB{rjjO? z`yD+?VYkCidc=h|6 z45zp^+r%nDd9oMaM33^&>DlPJ_SU+x2nDkafXcIh4AzsiP!2+W3cn8NEh2a*{HbIzztHVC$x; zB$w)~%jR5??Hk;}mhMbZi|Nd7?Sw#m8|I2qgNSL>Q>75+?nH__m_X%R)=CA$Me5cB)e`q-ajz-;aCWW@ZDcmT021Hb z4Go-r-Sb}yHi@H{2gbi~FUtd(&c^lClTlSW@v!imMb?2B+M1e7&><5{VI@1e$cK{G zv*pyd2|*@|fOr5ALh5Y}WnR*La2x#cJ6IU16a&pk1n+__3hYvw?w^V@b zv!qIrytyR8t7XZ!*Ym*z)9JT3 z4higMG8Xmel;*lSLue(A%~%5y&atAL9Z?$QqOxdh{QH4Jsf6wRwD1xdY>vAx3W{|x zuuIfp)6$+-$V7*F)WlQ#Zt?pXWN{wB-M6&0kjl|t&95hms8MH%UJCq{kfZlk;`@u4 zNE$^W=@al5H0i;!cb|T(VIz zX^#4pvboa4!OM&@PAx2{MP_lk)^~5ZB|~Ig(@!W;Lk=6WUU2`*UjR*E#&&#Pzk%yz z6D5e+)NcNl&WnX|btpt@%OUi^3O9;b9Yoa<7Zi|+{x2Kzhyc=nL*}+~ZHTU{KMH8* z)dV!;|w<)l};1TvXw!+;e1;N~e~sM)_4`#lsf2<*0Ig(qg`d zn$`28vRJ(&+umwCae7b-fpJh}1a`&>8}4)+VnM=gL~${tEdlnso?loPi7avod>Nv9 zD2Mn-&;63@cUWKXd`s{NKHt%)J6ORzzrwNK^X14qvx_9llhUe;vMbG9rC;*i+tq zq{WiB!{dG8@ZmHxsNco7vuQaah|MUmq=<0AyU@L1E|X7+%2!iL%uzk2=S$;(npNuk zzkz@G`!*Se`*d<<;Ra(%_F*o3o-<;P_*o-*$;Y>i* zKu(}rP=?@l5E;gcX*V2|l}SD>mP_>NSb;!cRu~%?6_>Ig09PGG{0VQ42S03fKCuyE zCN_qyrFR(a^ckDlT|QUMj~|cq79vVVVi5!^CP+t&M$$z^yu=So{#{IHts-Ny!M3o# zS`?-{jeFKK(+A=zo)a2UjZb~Ya~F*7G4MFd@x!5kHfn`49k`#99{elu9f|FLs*y(4 z0!VzF`v4N(1kJ(5qR<0BVM#(kAooeUA_!fesKJsOAPWuE>O>4jjt->pPzKkFWY___ zaYZuntNwxcqQcD*vVM-lU2~9D)C!5m`glClXmQ3t{cA#J$uKzy6W0a5NT60JP1`*Q zEr>>WIUIz$u)g$j9RLpB z^aW8U?SCA;tPArDw(04TuXQDTWdANFDCmEFV-#A(5Bf2pa{3;w4OfUdBS{1I*WnBI z`yYp|-@gvup)K`@V!Fn+(SPiaRar~M#jBhKM!3Q#L;nIBisjpnOUI2@#sQH*f(VSb|WGz3Y3 z{7R@z%7^#C<(?`QzBi&|(~obS^nujpR1b1i&2PrG_2^4iE22KwMQ#~N*2t6WIn{NR zQ6A9bq!#u7yae$F4Ua`N5tg(cYgF+cOg91+!SGnP!?Mj0u^HR0m&1 z`nsw%CnHCiwQ;FPOOyn`LbebGYm11c-xp;AFm^`TL>5D05NaLv(j(&QDzxvAC=7YR z`|&mTP)Jx{mM)Wu*hE21;+g&C?AelTb*w{)3u$HgQgD-aLkZRVeYI?PSVb?|eX}i9 zWLO$-K`QFjRQB%hMyv$U=cdW@U>brjX#-qDI~GeZG30TH_TCs zc7ll@{XDevGX0*#V}gC~RlIhmwA^ps8Zj?nYQ9ku3rC9NQk*)<4-8iSwfMFG5|I>pIV{7@gvZ{zod7@-?WNrv?<&p$rBYGJ+jJJ@_E}fb>=9wWn9@3#q z47ylsfAR!eYY-bAzh-9!3!CKu7i1KGQ<#&IZ053bEjM+x%_iQ?^O}VuS;~`hw`z@i z+11+|XOA#M8)R8#hCxKrH91v=E2B*bF%aM7Atg4-4dER~w$m<(Dzh1~Ks&Ac<}zw5 zx>CxN-QN2SdM{Cl3brRZ+!j|-Npz;3zA>*M+)O_R9K3j-V=p=7;7c}j^i2m2Iuzeg zxs=yoEG!(imU6YHMQ|#)IC3me+Yw#Yxw)`o&Op)bH?|w}s?<`uw3vQ4fuwtoD~i9q z3Wc$q1#~&9C{>0aeuucbr{onRQdQ^$bvy>&&S#rOSx<*x3QFPJ-VM(GgNZd9UpDSc7Fuu>4Tx zg3P%q{76#fi;+Y_1|$+IJy!sn0&e}d34YsOPT@Q3WD$T)29YKEw;`VY{N ztsMT#w2RuHShq-n>Ins_f3^YnW8shm;5jEXWE zRW^e*xa%&06ELFc!LyLsnX#8sqZx-dVT3wtxF8h^^M$AV@*sLHvP($R!Tz9#8wJY+U1wdWFIe#;FTg_1OFArxQKbCd3urbPs;+-*p!EW77TWZFRe z?GC?n-K-N7M?&r?udLg()(LqzBmPX30SuWh2z~df_KHyF&P<*5G7UAZ5p}=0a1BVb zfv9aU!lp`1eYa0N*BIM0zaCqeLby;eyf?0mFt>uv69#PEDL_#59GsXn5m_E8Um|`w z2vm^W*pHP`vs{`p@d)8p#zZ+ts;T*FGS{eRMTPX_XHYK&A*|J2+|5ndiPRFJE-GSv zldyiH_yvN?H_M3@yZvUKUNBwn`LKR7$!G|@jhh(!PBSA1oi99OhfqvH`?vBz{X%)D zmJKIWBRKhPO-}zIiL4-arNcHuj;Pt`{#&{5-x-y_OVGC=no;E5i7h6M%F|_V1`J^G zuw50JHxN#)i(!LIUKAc3;^G__CIdjgAi9q;6Ak$rfp|SHkm&#}TL3-p! zFO+0!f^SSmVQ&XH)jb9j)tgoAG#4$@t*9UsLVP&y@@&Q3zH4goPStWs7+FnQXkr9z zj478VO?@zpE8i5`b3DXJ^7%zz%{At+HW45#W8v^dz+YRL6iGU70T{z*J6i4>M~ z-J_-Fv7lEhrY#;1N!Bru`EIm~nhphFdTWJfIgu1I&EmCYz-|yDzETz&)Mpkfo8=p_ z`=-d07*^P=nFby9g4F20m)=O#k`=$4xzgrrUSyr1lB$A@q&yO25YZVXL`~RU*#fVY zPus>zzQInHjJ{#~Shbt4RN8|bDVci5E#ju~U^(CQos1zTk~l+#H!kr3mRUB#E(T~p zvM;+apXYwxIJo=uv_yFrd_KNYmGHWBQra$48a+T#;$}N@G*g@2*y?D&(nC5%#V4sX z_ONvm1+zw2f*70(#slp7gqy=9b!uC^7Gk@tXahSyEzDIIrk}V;t-N139rYn&MwwxG zQZasO7v)PK((o5;MO3cOPJGRScytt(kdjew8Sq1`4nw2h6Q9gy4((#pO4D;DA7x?! z9_Irik~W8Ky7DmNH*p~?7JAufOFD=OV9gv7_<-db*c4iuapa0lpxs=+%k#-`a(tvo zrbz@{0f}i_m`}~#(2#;B1_Z99gOo|!MVRz3D%_^Y+6c&5$Xzm3@WvlEPan^R9}U?p z>ARy@*WG_!Yu>kSeU9OdFCCZC-_r%p_<`h{YJ_h z(pQEKzk7Q0=U!id0`uFh`t*uj9-0BJF~dO7c2SaVAK29Ptsx2 zITXWQzTWeBSFh7|d~JS0K&O*3WKVp9y{l-_%>)HY$KP<9J0Q$eagd`}q;BoeTcaTH6tBRZo8$ zYDE{mn{R90k$*ECyUbxTd(vNEE4u3QX@PEaL>FMfbv-QDf4OGfe_VXLiH;i7%=C&8 zG#{PfJ{t05uj>L#smv!slqZ)h1pIWmZ2%R-T=NMl((JZ6!)QpL4=~wX7G_%CHST6t zf({(UoNpFmupWZ&-c}b^U$myFY5B2%gNIABKIK?Q@9!gn5H;`|LPf@NsOf`3mfWBfMAsh<~>~EzPkX!tg#m-tkg! z@Xd|%aUXi)qUH4&%%;$Be+eT~=)Sl?^3FC}+9eV9A*1*jb&Id5_j>Znjys_~}=G z8?$l(Mq>#)7ZMkq*ejo5NctY zA=u39Ec*+5erbE2m+W|IuY5eb+y4&D`LR%=I_Jgw?Sol6yEgvOB>L5~nO6?{oQCTn z^jVg_t>;HFl|oC|(^%JIgRE!#WuyL>20<>i!c}FC`2@<{JcawpOv9mN>WPNaYC*yN z!hS_TK}{#^&6t_ZWpR#8FF*bpz&y#!@wvYIygND^ui1;p@i@2rxJI#WFPib)tLj;u z;lKT{@s2LsGnz)Mk8#Jp6K>0Ub${Jcbnn}ZrhgHd^YeVG`Px@4^g{=y*>Pm1>m45F zIeQyT;CZ-%YftF?=Vw%5j`48u)e9HI#qT(PsV@J@_56j~^D#R|?KC~4#IsMsaLrX9 zf(L)h_>{%M{;)f8{W06+oITNDp8v7JHmrxArLVJ-{p;@Oc|2B62d{@KX1`CxU4Hy@ z;v7JW9c10_05%wX_NewGDjCjtiqRoYc>R(S2yPLmZ+^D)4#3w4^envd%@zG(wDoae z{zOmba0cKJdUKiam@LYTTgQUGxL#e(&cK{&i0+auS zq$7O+kTgTrUr2gM$+a^^!)J}Fuvx)wzY;gVZYp!Cjg$go!$?(O05zjxz6jQmf>Kur z&8&pqTs^O`y-kSAbtiDS`q4%uqrBWG;e6Ts^zov=eJW9@Q(;_f!uXnyKMznsbi-H>V2F`k?TXcla-wXyoO#3JbEa*ieqrZ!C@3 zr*PG9HZk?&tFwnIP7)jEaf&1b@QS_ODPj0pvM1#vBFy~BvLMTT%Q#P>ea8xUD5s}h z)}$6cWwORA0)`oizRcqGRTouG$IZwQ98V6xtV$YAi)4q*TObUWvhxniCAXA(A4x8xOUqQwa;YL} zMwcbC#KKTz4@#__hh1j&FWxns+#j`ir_6xANh1Hz&H16hT}56~Vi^erm2%)mf`FC) z^Wvid?&n0E#%^BOR51mIU1cfaGz01#U`2;bycLUIuOXUvK3R}q2WCkw5@2iFtn?sB z2T5&vy-4)zcfOnnu^%6BwZ*0*n(mN+m3XjjP-vMt8*6r8;RfRYzbb|0^{wPc6Y51C zA`8BL-?dCAomkU4MBUWtW5qejC8{MDmYH_IqLb+9=n3KwY7g%%(rd>H97@XY#>J8j zBY{3`6(3ZZJZ~A*XTDgK?dqbl1u#12uFT+|7j@qerVs2KVL)~RC{uBptcfl+@!d61m9v!@P%hJK9@>t^GV*v$VwNc2EK~*s zTiHzgxz2ZOWEPr}+whWAcMHW@2w73KV<_Df} zj%3B*?xz+3!=ds7r{=qY8KpJZB1CHKBT;T5IiljQ;lgS{OgsFiHu5CFE{&^2U&F^X;$0|i&50!D_Lu<>I%hjPMDiz6|UJ~(mNb0 zOpi2eWK_;Wy29U^HD3sGVnUrCQjV4c#VnG@btuks;|B%`ZPMh&P>?G$ft>Zwy0J}Y zD_q0%#)_<%N}Y^2XM%_fxmJ}y3!*-;vy_*|c7Wu#1}T4f))07BE9K6*(}-4zwH6(Z z`As8%-I%)@lNSR0HME^!A6BRC8 zk~y90`lFhM$2|75LpIZC?$XO++>^A=e)QN~U z?uIXclIk~ZidOn2?W}egM7WxyGRdEC83}I1pvB}>?7;Vz&S}^l-+lqn$Cyjjv|437 z7&XoXOS-wXS=Zd94;w0R-~M3Yxxx#tozr-2cmmS)GQ)Tc%rlw0t&YD4D$2Ui-Y8cvcc{xT>HO3vbRLeB|P2e=&IV^}=g zITph$YboP-Ti)VD5jT943~BW7;)vLxSdqJOp_IZTlTH2&5sKet{+0`K<+J-iz4QscD*Pb>?!Eyv9BfDjK*4EU}T zYs;(l<~^?R1Q?zU^0gj>S;@O`R7nfu^2F%#9WrJ)EO2~MNI|03w?iWnxW5I)qG1up ziVvu78C_J-3>RtBZQ&5>`@lYstr<*7Ffii{Nx}yQC^f*bK_Q^lH=OCiV(y zUQ6Cw%&x<7MB&NN%yYTk5N_Bx-djBBHoL!xPc@HawzY+cMHo z!F9pUpL=+hxFLa@H%Lq!YoS3Sc2RD@)b-2Q^U_Rjr&dcRH_Y#64Vo#+L=oX_;E>|g z@q{<^BVmz165S^F=h53F*Tq*~L-z=SKuX5-7Pc`cL)sxr@B9dY2qWf0F=y10Ge`cq zgk>sW4WWL)6k+{#YgU0!%L$hVaVm&)({outAdaq-_kbn??Ik<_A0;u-q3N7Hi0=|8 zl?8g1BYsI~E6lIylzYjeI$Ie(q@ODfGA2oe9V4ulXz=as8x+C-gO^E4(ZW0G?hz)> z-*xV`0>aq5W~4yq4_IT!cRGM|?qk@1<=%jG?xnefNz;QSutlS$y(sB~_SYi+Kbw8T;t3idquoeyxyC48GKg<56BZfz%{FT@9}M{0bWw8URf z`j;%eR}KJ_b`6Dslf)1~q2(BuT!jiA*zsek05xl}gEFeRQ-5og5(+U4ZIdVzZqPt&sGVQuKvj+Q7+H&Ku!-|9ZBN zNMm77QmS|KE|f>l-oI5@aUx%EZ?##e7b7>YSU{(i!aod1Bwv?MuaILUR{&Ew<%#tH zD=TaM-BiF{Z|-kG;u!GI6eCqSyNKP53TH*DiVQh!1DoP2CAjirs4v_UVz7KeXp#nM z1=Q^!C~e~7j$%%&Lp(u5nnpgktO@SZmgpA7d`H$@U_v2;$2Xx)Um<&R8{s@B^J}y> zGCW*|C026SJEU&qSNx<`XcPQx>~}WFRf*KJjF?^T`f0y(~phTlY8|Lp?cp&Z3 zR=Gd9q6fPB!s%9l`bwMQmA;u2{0fGH%gu8VJ<5b2s|^$aVmXrSojySyg>TZHTZT{) zHDcjfTqTsEPekWwBTLXV!>S(!3bSKCHLv6CLiNM7Bx)>0vnlaYfMm8+kr$&mV$9Fc zM&r^o01am)*;sa4Em{GkRhQ6=rC5#&Yrcnjq5z!DM3IKv530HN!&8@Q#c6m=j*cVrg2I(p|b*Z-#TpBa&HOF zkA=V$Sv0$;9uW{yBvKPY{iK(;MWfxgjTptszOiSRjarY|gd5^J-j>T^U=U505Gf?p zM7DaZyw97KITL}mr%0u6<)%1n=sq-&Yb*55pbr8z5Vy!}sQc=;_bKo-kYzBGAc3{B zW(h0GkQkx>e%-uraSOdBYSDt;3KUWU)CFszSuB2$Nv2{napuINs=AF7x${GOvOTM zvnKS|YJNebE*Z+UprpW$8JbyMp`VNO6`Sk?AYPg}ZNdtn$#hrf3gV%uUkiUHz&efu!1gJc@5ea|!ty1)~8n z!ipYb=!Hv)D`LGShu+Gz^HZ+6yxZ@q0a4m*Ltq80fl5qp&1p`~wu&aqN{C$FXioU@ z5f+zvTH1-lJEusI0E+^`&J7qbWS@At#mK}&oPuxfgCh|+cVDQj3kEf#tZQY-kyO|o zr?z^576`~amAJ1Se z_yu?_eFi+PKQCGo_*!kukN2}V>KMjPcSeTh1crw)R!T+$Vh$NYQ+_6|%*Slxj0i*{ zw7lF4Ja{LMUOS)eM!jt8ba%aV$=JVVP2fylUM#hBO3?Ka;^^z; zZ8SC$bF%C8&ck^%=*-$bcW8kjB0uKw{Pw5&cs1ZYV!t6`V@?TBWTx7K#qb%I z=l0D71Vpmr5m=;V{PuKd?wo;#o3DeL`uLb)q-rq%fp7Ct2v~Nk^<$#v>utqd z0pj;Jfr&r7Z^2(Z<56F4R}mj~Yz=xZ2at@ zF6kK)u-EBMih$wb75!nIoG{_|Tq4mEefR9n->*df!~6Y;W8d4w$BT6O_6e|pKce$~ zV1J=!2ixmD41-~54(h}~Nq)Ocmn*XSLw4u88}s-nS+SHC6~(pQHmN{YH0RjcPfpx} zJN=dYy%vEle&l!!1Pw9om*)!qgr}XK3Y}-O29o*r3NbCSKJCFZ(@P51(+l#;zHcv& zZwqAA61APpw+Pqpr!2S&frboUcf!NTf4uJzeO^`;wz5yjGwo)8xw)*b`4%oEN(yv3 zUk`c&5>18Pds-2EJbK@HQgc3}TRKX#pB1ZQev za^j4p@~b1-t3B4Gp}y9tJ+y8c_bg!^kCWdzD!#TqY`g(Kv`dK-;I$fN&8n5_c3eS!oJ00#9HQ-FpU3acidc@wpE(l~y&cBH@e-auo z5I5k(%^}obrUlryW`Fk1Z9cCw{OT+iVBqVMp3C{1|0YA=Q<3+$3wpK_L)&@M$|oio zjHX1B|05`@ee0Mh+RHb*HJqkeUFQ=q1N*IXg&~Kya2~o0O<7=)pJ+}kRNpIncATbB z-Qp85&-EX~Uo89#=2*0{y^QucqEhMr6SPJn?n}1KzG(L@L{Rm!$uCixq z{JM{)>PY-7JG|rS;wu~oFGo|ODQBNna}-+&FDEcL51u?Qrn%D3u9*+7MAM|HcN^98 z6k86jBp|NW-+%lO9E1RS~&FTE>$P%H11V=7&PtOZ71A6ZA3qR9IU7W&6DHM zO+pu;NzeG2|4s;5BIluN)OT#!JEIv~D#^sZFEmV2|6W!5#^kb;Fs!Ec_e@3<0DCvS za&>vAoIc+%$q3d%Y9c-xBR(5G%~3-=MH8b5@2;XeJ1h@V;GJnSQ5UT8dus+cYmS+0 zfTif@w+vq3z>*JLe`UFFK2jI03TxkIbpP|(;{G=M%rr7IbjI_?4)v+8X=Fa6lDAu8 zeTXup#-8fl^`U2EXpN6UJF5QrGSRKXbxuO7=yLX5l5h20vT9pG+i(NHb@r*me|qh4 z>Gg3bV^=q~LD1ZP8YD|s==dlZ#u9y=wop^Dfnr_zfM5u*Dvg z3_TrSsOn;`AnqhI7n;5g$lPD}gKO(Qh2lSj^Ih|ML+z2oK)M=%-h-LYbU-FWP^KD{ z9%qAt+3w^vXM@!+j0gG+?eEul6huc*Vmq~PjDIfPUlXhL#L)k!_5)a?o>Hs zP52E+Iyh?w=u|ljgHglZpQ`|l!!yKc5;h2$X~b%>?FDngxT2r=+|~{FE}o}U@OI{! z2~7p09|N;hFn3Z9z!;+sU;JXKpzJ)E3`hrOQvhPC!0)^<-JR%9>AEpZ3c&bH+pFo< zAoY!#tLo@Rrh@ceR|I4pgL74|c1jPxSfelVf-hGh-{y0`IH4c#5*<`3-}a{kv%r`? z4X3Fw>-9GHnFG&YfX)dczLmfc~2o>o=e^;k0087}F=QG&M@S+6DvjzUlW`m6_?U zFN;;GtX1qD{4oY!V^^a`m32h>ZPCa7Gzs;aH-`Hb0hFymu`~AQn^^j>Duv#n8Spen z<~6QEw^x=&-sInwceuuRd$?}{vcP#@+`8FT<3#Mv>?KlvFstWz{QWUF=M0nsz()Hw z{%Zu509z^JpVzQ|kN;OI@A;F|s0^!`0RN8hS6>zK-%sj4g;{x#egEF})T3Uk4W}}4 zs#s<*HfdWm(e`S9Su1{S^`{XanXCJH%%y{Kz}RI&+NryG7*6)51~YjZO_swk%xeCf zC4tU%cEx+zyeS@Z5>tdaLX24Tdf(_w=5v#O-z`9rUXeb|qF+m@t zja@@CQBU*8n-*yH zBPjx7mA2LsxmFWxU(5mhh<4IbdQwwtADk7&0)6%Zp0&cRGuE7FMmU>i)cNas<7-aM z^xNauON@QBq|Nf{(YeokFw+j!FmFnJt)|=wdMmBNYj^LVCz?Nozb0k_HFOWPe{Yqqi^#XcY4x4?hrs& zx^1BU>tPm%^kX#`y}^Ie`5MbUTS(W#e-b1OoOy?3ly?OC_HQ4&62`a@OS@Si`%z!HRAs?QPQ6Qu>VeR|H*2?2I;}SQ=E2jZLct0ja1KC z`JWdeotk2MO)(z8Qy}SE{$^;uFzWtgjp_ z>+I$0bXS!WiZNe#SPIUzL$S!4F@8f0%MhuFd9Q0U$wC9oz}@gSkvv1O&E)-ezPLuw z&o-s{Pt5DXIjpap^8RQW@A;e1Xgxf?ZtA7GD-JpwOn1kZTkFR=BbsSFG;iurIxFX| z`V)hxU{v&~ov!|N3yg^yNSa=Cxa`^b>VG=h9>r2U&K=DYV~{p%4arEo%RMeFm=(tI zNg`eCP4}k$w`t#m{7rp%@8653?QDzSsF}uGa%~;>uT<16m8psLTMbwbr~$}~!%y>Z zN6Z9$nl^I{$6Wo<-G2fk1)Tm|Ff^F`U*17mUuL>*KEljqnp-8^Q9i6yHfdIMpA&}{Cm@D5&s@=YowE%^$~c? zWZBKlYe*qx+h=9wt{`IH3y$&gwLWPf z=kua$$V{tAK9no6rrOecpK@(RQ%2nk>=1PzL8i3(J-LILs)V~d`nqj61$)spXLES% z$n2l8N7~9uJMzpj)yP?`J#j9pj_$OWk>`=C0lH{u3U0jY9lz17$~e1 zwIgPmO-1~cpGw2FW~nuvO`v71)ry^CG+DW1j!7LY@D%XqQRV*8d%)=&!9YZ!ob#pi4V;6;_8yDfJnEa*2*N-7%C%cL_LTUqh+jzrWwt#D{W_R9%esd1$$ zE;u+S)58leSK{&hUk24fx|(YyQLYBCt|VZj1EA|!sR!tKrr^qjaQ0$I=-S;*m5 zD%H!$Bku~B#5VQTY`QMPi7wfPakYo4`kz!nWE6NlPlmwka0_b2TMcb(F^3%bRDhE*j2907G+bd`%9wMSe;dE9gJUu8Wr}{T*_Sub5V6@ zn3pyrH2;cv#5tDI|7ZHtTs1u0H91_#Yf?+XvRAmy*tj|O{AGv$e zT!xIQ6v9(w1>4BFPc=T-QOHz8@>J_ZU;->XB!wvkG;(z__Y`O+GvIM(x2G&5yED6( z37J$U9yFR)RhItuy&M|Qc$vw1X5Df%JBLMMG29p*!Ua@$lSP<|h}Wndl2SEGj9ojD zm02$;3fBguS0OrBQnUM6taq=gwS1tXl+g1PHa)WTs2K!V8#^ZQ2O{?TWUR^mmN(6N z08-D$Q%l4C^QeP@BlLZgaDX{-7{|!o&R#K_Q19@^*84Jzq$G5pbjPBTY`ck(H!NjZ zke14gREF|WYs3Ba*=0fH$`~rFPODH$ZJtNL&E0{wya}2C&s|OvRg2_}IdcXujb!H% zvsVU=C{WApuOmr2Y))68Y#CdVV1Sq>*SWfHBOFKD>8zA4x|Daa&@al(dl)isdh9qk z*ObYdhp=f}A;W5ktkpm!`^LA5qz;mxPdzJ8Pz=0(>j;ACJ5?JYL`v3#V77`R&t3bH z$bifwEndEb^f#z9l_7J+mO*F6svqxEC~0$Oc6e5<2kHdz{qB%|NVP~8{pDREjj#Mj z{#VvCZ1#W8nu3~P_fIz;DN3y0$4tR7Hy5k=VGMpRQ~w64kE#d}%~wgVwb_78FHw+4 zG&9iG=c=0_QV@A5F&b?b!OoXQ6W+wFeli@iCbMjdueXSL(8lcMU^~%U>dzWL6BqG+ zAWfr}OB4i=eoBZ~gR_I6Y{$Lz*`m1h66uma1z0NL*Cl0sU$SZ>Gz-Fk5CIAy=dF8E z{$^CCFdV{bL`b~hY-JHF!OQ|~)_Q`gkYzAadWLMaEF{RYgxcUX<`+d2tV5hRG^pw> zS?%iwP>c9@Frz7nEQODQr4fy1Iu&4g2nGOy*K75rD9z@Y{<1S^2ozcm(sO>WB+X@1 zqb158BP2zv*XGa!t4!{p0TuNeCE2S-%Csox{J(LgQp6TZxvoNHBulL(??}oCI^`-@ zB0-u!7$QlNc9pjHzX<&Ebd(J1*zY74L0uN1z(W_w!CFR$uHT3@0-YK(f|DsWo}f%k z!$--AQo{tP@vrM|*v$ZJiO8X*%vSf?T%+j)OnrB#{2g&r^E4rFlyu%ySXcZdZuDe+ zE?BL!(|5tFq@b~lP(EO|f|u(m*5wZfzJH5m0K9q&>(|B>uV|Y$cHJP_5ZrhTxc0=f^H$&HQ2E{|kcHv`wY(81 zP+{NS>yno4v7uOje6s(agee(URsrdvQ4|o-MVZ+cjxC`ywUf6ut`(wHTTwZLG-mJ{ zC2a&DQo6CM6dmCMtMYZ@L4zU?s3Ng^1(Ru!~wfE>|%ta)uBcTZoH|y`sXn zJF0as39~q&@E!%Ii0&$_@la)7I5F@sSfQjrdS?h~Kt^s!3qc-m{^INdta!z#Y=2J{ z(NW^CA~=C@*b(8j%_A^+iT^xeZ@%9jTm4VQ`Y`CCn(xZ9DA;Zmyjt5+=?kP!xj3?C zxQc&Rtt2c_?#ALlZFlkl%#vuoKwOa}#i{2!Q19}=cwz-4JurXFk#y)7MyUj47+-Ya z|A=hO3|aL2ey{MKTvao)-|Goagla16`^jI}N|UT}H%F8K$TT z=^KirE?#iLERutSCR{$J$n5~&<;2BVMUrPl)oKMJ7I}%ws#r833Y^?Rks*DU(KmH8 zSRksC$+5k?<9CYT3a=S`#G&L-l@igcOgge^VeT^Vi4vr2K@t+}$t=rEZ+;Aa(u>Q6@EU2_}DZ&n4%Lnffco8O_q%1+Hm zYotyx5~3W%O8+^0SrGZMq=~ReoToOD2NHAy901sDPYOjDJZ;h@)*&mb9HI~MsHtYNJsa2jbuI~N$`Lx~CQb*c>{=wf9 zaKexTZelj_9_Pk3n|*GL*>dSU64M8y3r?J!=Au-X9y2M=an>`l9*Qcaj4CEoC@QsU zrD1x9i!XjLvTl7HhN8W6){7no-tQY8t0*sSkRauFV1XOx)U8|w+=vV&rWkb&)?u6| z!5pGLh%ipd)Crl1sw~VvD9k(C&p@N9fB^N&7wvZ&BSk{N?Go-zDH0`U!6gF~@z61N zp^PzQ8i_;@7>E-BXjFd=Nc_rKkn)g*miHkQsjCkTvmUiEj3kW&?h42*{wu_OI*9=$ zTzlB0q!LrJaSb|_9k7N7L_S&W=?f?|S~1~Rn8$-2u}3mkb}_W9xO#wO`KpB0T5f%m zNWZ@q$$BnihrXS6niDs>o|pc=_AVSeB-31RAd z*xGeulzelbG4XI?oj6r^5VZ2lKn6{Jn@LeHL=&?j%9=n>7rdRzz+cL}Xgg39N9K_xDmm{%I3^e^(9s7wjNgFa{`x8)P_4PrF1mh~hx ze|@1Q@da|FtOJgkLWVSME5@ra;6siDV+<1W9yGYJ)+m=t5)M_aCl2QQ(KwTI6xoY~ zv7r#><%y;WftGpO(rCV zCi|V73zD=*)IR`r5|;z>;1BXGLYS*h5^z)zx#TWkok3j~6nbApfUe)R7ASYWh0sjj zEaw+6R}IzjU}r^5~G=T68-65!c{;y^0gT@tfA!w%P$>{KvJZnVg209^(5s(0TTH7!tB^$ zGZf84hJE3iFxe%y4Vt8WekHsjoG_||Z1tEz?|nPc`JX2v=8>w2;ZS)*y=|3aX-hyf zLLV)-P&QOt15+##?Kz2gbOyf|{a+Fy&t4?q!t<)?1al^1lh6`aW#Yobfoj|cfyu&f zL2>c+P;R(JSp(uw$t|rfZYP+el<6SLm=YCH^DATno_eIT{GJRVp@HeC`Yhp)c;k}` z$htNS>FCOHeov+7;0j~*N}|#z8{)np5&K&aQmClc0!h|JmPjwL`;iLz<}HmY)aInS zB~27Y33baB;|eLjl+axvCr9#%a^BRB#vVuzazWr%B^!M7+NwW7ZR!CT8+0{F9>;aH ze>W5zrRg8^fNmCHa9K?2GdyNNzI zSYKr_c7vzY`>;kN&6p5Zk0maX?QkF8rZ5U$w89LM(d!apzX)O{*SJlj0B(O6Uk8bv zXkkcVsi5WrpT*_HkxTr|pTLN>5lj0DoF19cHzvbVYp!*Z=>v-qWRK8|9M&k3ksw0C7n1gE{i zM8Uczbmr^W;Jf;aUiQ}3hNvw_vur_oX0b@j2v zj~@T9eNT8YP5m9cwnx;{C6L9xn9M)8`!;&J-zaaMX4lY zTcK-hh-~0zwOUAoK#Y8`(5(|2C#J913l@Vy@>&E>g*HOY!5K}#K##99V`$7q$zA8>>E=YV{uOJ?$s~gqr2E!-kC9kKXpNng!69+CoCc809}sP6 zePLYK6o{oS#FDv{*H+|QV^xp{{U zatQ7p`5}OJq9_RSSs}ytuQ1EpeBGfcyI&}Q>aiqnV+QaLJ^Q)?b|Flv{(3=Wacr3} zQRYV|W^EscqCEJpQ|)%$@d%iE=UeXKw7&)~+k>LGcf9Q^s_1;3-Lmpy5LIF*x^QQ? zE={-Hx;K0sh?_T@1VOwfKU$;4 zs*0bZ#$u?AH*`~FE^Zj(ojRIuy0B+($g1M8|GaT!mp1RHX>6K1URV>ujD%MKOhqB9 zaxbXzc3l1GP(*Qok>Xm6x@!ZaS?hK$DsRzhm{B=%1|jo-+v7fqzUTCQy?}mp>u$g? z|HaVEcU6~?n$5C$jau2Z?-{9jU$3F3yk9pHuI~j^d++du+sa-T-s(Uch3_}(@9Tco zdNQj_1J4MranBQX@cN5TU|-IkVb$_CxfI*SGOfnUSzR4p%v&v(({tjkH4M0YI;7r> zZ6BcY*SI%MX-B>>__N<&;V|~Eo9&*RQ-fm&g|C0Kc7F`SOy%me3#CcmEKZ4iXRiB3 zuZ_>|H1%8)G;$3?(p5ua^ZkztyXO0E!=tZJPwd+h&urHqMVOVjdI;|At+)zPY8EAD)mm*~G^8m+V~MTa(GFxP;la+w1HtzMM;&hqFBd zfoz|EWW3MAc8SjK?k}yM*|0{o5;M-0hc8!yOW9a63@n$YqKMeA`eEjd=GU1srm6Bh zQ53IIdeOZ8yMS zz>UJr4$NmaXo(vXN5+w|A+7sw<2JKZq9DS&us(@{V|W$Q*f=tZiT%HgY^+aj#( zn`_=0M~ka4(7H0(v-Nd9zkqrcu3J)srd3p6{Mj!vOWaBikOmrAIlQngRnpV-g3`GI zw%?Ep4OV`>nigDs7}z)fBvy=l*o40L*$>;SdLJsH=aIlpM47`7 z%QzLsdgjZ-L*?WHT~l7mD^o>YjEt?2!uDmpLrw%ubGyTulmQ`OBSzd3#=)Wq!lVQoP8ESjhVu`0(cc>ATHGT( zOb$!bDr!SVqQ^3C93M$~Cp9r)-H|u#1J@uI9ZtV#L?jY?&2C&}EaOCab%bnsOH`2Z z(d<08UiAHnZx?0@tHB-d;TyK z+QS#NOWqFiyFKgGVIQk6RKg5n{NBg?!#6kQZWf+H@&Ieg2OE8V&RUz6)dejk}@zy&LNTdNT4j}7SPoH7!V z9FSFuZ&R(^#{6$Jo?kxBI_K^|r!^gR-{tB5AI{z}y3%NC7mRJ&wry2ZQN=cPY*%dC zwo|cfI~CiulTMxU-P?Ec=>F6H=6E;OnrmY3sb|53%x7StIw3G>cwOurvZt=OC1UEm znqL&>9t9X&+OGHR58+4DO&#LzKJr2Zv{$Eds;G4-SFXCv7Zvs7(s%edr& zF3=<1uBpxHb)MqNb^5%6M42b@ZUK2h)O%T4$JiRK$_h^2(hc&j(n^7s$INqG@xb0n z^{cSjXw_x<>o9>|!QqMNeEFx+F(xPr@*Ju4A$3`cbksY=!-nC}sXr5LD51!y3G{sO z@5hmjsCue!j`9cU52Q{08HUKG8iFOlD6;|0kN`9iljt?Q7n5O0s@rpo2Y-0^vBigv zac$dG*(InRZ~A>u!J@Fpp#)gX6QBVd{+p6P(|PgBbQv57P5q8cQfJu>jwx`y_l|)* zfiQjRr{g-E4*=-#?G>iM{fEc0IZOid4vTk1@J>Ue&+3 zX&}dDM^oTM6(VGTUJ7XEs{Hut_`2oUkqD*tYb2ut2b}@i;0zRX9I6#!X6_>(ozR#y>K~PtQa(HG?BV{ga`SRYbB1 z@dR%C64$xEI-QN~ztQ-8pIx(*!7CVeA7a~|ruy3WwG=NK94WY8v1yb{2=kG9gV@6k zv;S_5ghBl?DWgL(^lVDbI4!*tt>p=Vx?@fL2EICS zsOT?mK+%ylIxgeEiPQgec^{$v4ppIkUSO%}Fr|9yMi)0Jt!oNwEl>NfXA}ldy*;hk zzfsT6NXiUKTJJ>sa(`U3n}^$H#~s;29^e3V4+~oIz6gwoA*se5wd9N+CJnQdxV??s z-<7Jv?oGGuP+D_ivw_;Q+B;Yo!uKADjv=aQdVT%(opXQ+#%1Y8r&4Z#%!b?345q|k zQt66XftoyR0sx*Tj|tuuO|+6K`Xo)Zlk=ez{XUhmN_9pU-vPxDWh2ru-9ETOEG0Yg zmh3*CtnrtH@$|jnyJC2G2ljA(q|uhW>$EXa2lfCf&VU~!oX0TQA z&3m%_5qI&lG2ZC|&hUj9l`RM8%iZJPi@8$q-p+FT+nQPXri+8Us|_>0I#2fW+;cvj zoxqLEnX>28O?(ye_W1H@l^I8t#`4P)v)XWSWi;oBK$rc%oc?_Y(s=E@&lLjaCfB{W zxsG1Xj08|N*V-J5<%(P$`*F3PoIt(c1s}Spz4IL(?(4Y^ zLh$l%_c>pI<;ROp8_z<}r^&y_r1ir$rIA%zb@>~I-2KA`eyPwKo1(?2$^Ldy>OQaO zo)}?yxD#Q}g2$sJ`n=!SX}~Dzvf%#+JP?D{{@(+S(OtHusGTi=A|1-m&i`lF;jz)V zeY#VTfuY_SYCDhKGuPdwD@BYDEYtFOQN&)|bw)Mo`Bb&pjeR`fc9M^b%s%)`3D9fe zbGu6^dPL+rzBvdc$8B{n34zwjX?N&fP<{HKtoAvlctvjRezTv9muClfZkN7ABm_-a zoIfIj+4>Gm0u#cxQDz5vERbP<)R-i1e;iO3Uj8kB=rE;lW-3G#+kJAasLl|4_}`(% zomWCY67=Lmm15OCAgp%s%!$sq2Jm|9WxwT>C1{r?y}>Ztmf-%6O~!FvFGWhE z=jjL1HlE&qY_}Z7o#;`g$II7or!7OS@Bj0iU3OrOap$v#w}>qrjy>Zh=}-I~J-bj_ zHt!ot7XqE@cgSML8;Hv(KF@!!7i2i8?#u()TA^ep9(zp2`+rowd?sBlGA}$i1;L-? zOi@@8@=dH0a?6tv@K4uABLQ}JUOVt!%?msLAzhZF3!)plk5GT+f8bnMmyNAd37((G z&io4&*i2WHl1vr;6GO%ByDVb9WQo0EjBEAoq08FoS#82lmji- zbwmYSL9b%U51kWmLst=gU9N20txQSOFnnI`jZ&Jg%<5Hp4n#PA$HP~nL`yFBd?~8Y zS901HX*Uv2u_-$m>nprR^#HwVG{zsNI9baavAQ0{+HP0W{Q@8pB7ehWqbTTLWKW`6}$v4XODNW%dF)04u`OCjjSU7 zFc1B2!mNleij6?WG9|-qxs$=;PUle>!3gRm)-I?X0$`QV8jme zs~Y)ti@EXraERc`Zgjs#iHU@IbKB0D7gzpcBq8P9Y&+u~H9k+rYwuI%W#LYa$9=$+ z=f;W6Gw#Q(mfQIDV%kN80DYasnYj2>arKef^5@Xvg-Ptu(t=3tPu`<4d>Z!wCi=-J zU5U5E;$qCa;^^Gw-(t8`=RPauyxplGTh8rq?5KJzaD4KBG;kBleli6+>|3t`*8 zrZ-yJC^mFbjtXe~=A2#jJQx~fZ8~`fe;%bI_AuDCgkWaM>8~}lsOgJbrTmRPt5Gnv z)G2?IIYThuFREP9emadApKkl2d&j=Z=?P&DS6;e)JlaZ{HKRdtuK%jBPm2^NjX5ts z_8$JDzCsFnMw)cJ$y?U?vq|zYjV{enF)3Dhn95{llbS$MLCm;sHR_TeCgq6w0}8ln0E^_jkgWRZGJ(w~mo^awQ-lTil@MKO$Jf_59g{qdIk zn3F)}Pahv*K{~6mr#;Cf){p133CD*)h7LM2?$lr|ZBPpjtL9R0Jj&nAEmaQvY^Exi zm9o4h+@{%l1H%c2x)6hoe^xHMCQ?vt0|@JDgFlUcqGGpW~ z53P#Fufh>%rPSw@>8+=519s(`d|OfyVc<_|01U-*0$5O1ZOVPc7SPR!eOI8 zu27oY7EKLS$i`%d{Pl+-A*$v~GbcF$NTaYQjplFcq=<01Dl~(#GI+t9l;+<8DGFsR z(7QQPRiYDZJUUeg1lS4ga_6X^*_wdaqiAnB0^KeYQfU)!xgCeuGWP>20z;QoT)BYd zKCn@8tBe$~3i`;9c>kcK02SuHR!OswxJTQR2q-^s5#{xg1wYu~ARGGP-umrf`acUN zMzKz&wvwNL1A6RAaJPYj%*q*mMPkP|xX!XZ##MblP_W@KwDAY+*u6&ysCVmCZosGD zARcXWTDoq#uR9JlJ}rGiS)ngab%``i+Cpt3pvL1eVynGs<`md*f3Rd*^KWTc(#_9l zq{7b}9)4trwXMCJlB~CqN^CX%s0d<};J!>vTusNsjJ)?6$F4Y;~ZrjZN8pi2YE3cH^Ey?LPd{) zuj3zAkbyN6Gq>R5m3=i%44JgOutP2OOD5eXTkcgCr3aHo9;U1b_O<%IvwJBsli%df zZ?{l4fTQbrGt~UF;K=TcUj8lQ)3E6nh?NV+DUzNsw4v94dB(T<75pbz3i18j@kGbh zdz$h9M%iZw6nML$u`LU>5Hl# znEGpP4s!Xzo3s-M?fn5ozHke+A3g>**bQCw^XBVK@ax(3>z(oIx#sI;`1^$vL2g7HJ_Q|GMP5^TzMXg*5l z`Nfm%ows5@^4#CRsiQ!aZtM$2RJ`(bDbJLR&7UwLn?LPA`~JF#D}Q{YFJ-_YL@=in zINjY(Dubw-c@z=CAaJ?g#xkTEdX1x<597@^fow$yN+uV3IP9Fx0+)lC|8i}h<4cHf z_gb5Jx{4VbARYUo^Q0Iz4PM)nkMMx$<&#=_p!ev-P2j>+C-fk)qpiLBiFuN|^E?3YH+%r`A3rTZ5uGm{zOF4!f?L|G@2d<356<5%aWUH=Zbi)! zx?_6kei3$yYe5Bn+yoM^zs+^y^m;9D_b*4mxm-XCy+krr?cP}Hjex7i@y6l5XGQbO zV$NX}!kMra_nI#z*&SWLDrWU+0x?F()mQkj?gDMTlikLi-)Oe0Q z0%~n9Bapd4o*Tq`AfS@V^DdBq~Q7CJL27i~a^xY*OyqGtH9HmUTtiwAf>AT??2 z&D^K%cD_99^bj-7-dp$0Fb8B=zlHqyJCAS8gqw7tR8w)G{-5jzl1#71GLpv?RpdjZ z*VZ1&d9k*f&-!Z=t?)&uTlE#%nrCD8I&R%radeb!P-B*>_PpOGl%EfmmbACPt25hY z6a8Id`|^c5b@``C(hEn;rdv}8vzpQ&`XpqZQ`Tf}a33Yd|)@&n#{C;w_rMYj5 zVAgMQOv(e(AQ;Z8O@C1a=oDONtMCVu`xtz4*rKmwnH9Qjb{?m`AH9E zuXKw`7=~%yeqNpH!Rc!ZF!w{LOPZDL?gXcE4InKu0?sGG-*fNtRl`_q1BkUZLc64S{<9nnrS;d*8^b45z7rTpZ( zm>aO0?rl1L&8@kwdR-k_l6U@SFlZspID0o-o49l;{k+)P z$SGL|scJSu)k^eEizZ0!l8yWOpjOfK!JZ*#a9PJO^ma(vPT9;#%54W2mi^%pb7i3v zIn;=l`e_XV0J|qgovGk|{g>E!>=b?K0r`7~ipiJw8^DO1-?@A{@_Ut`?>&$H;W_M zJVc{B#NSoktr+7MF*zPkpjlkq@j&gEcQrY)OJ-}YR$4jMXZ7?f%?~RQBH0mvR<;-C zefw@~@0(kHc^=0fFLx`{C{uE~y_XGtv04jkx$ixgHgzI3^S7MAZ)*uQcQM+5gN|eJ z|0dY+>Gu5cna%2c^Z9bS@%en|7ks}G{J7b3N**`%uX(q58ocq6!2EJvhs{#uaZ*1A zF0sCjFh0HVFhC35D)GgB-2zOX59j>&cCqkEFAHx^%yU*iHm}aBi+k07D4tH;{JZ5D zdLr83kLF`KeP|PJszv`MfnoA4TEH2z{dyk|thR>ya(Xj;f%f)$Jg?X!^J@3^Dn}G~ z)$>@d>{`9Z@KGxk?7I3xkk$vu67*m@gW$5HwU0p9XT^a%z`gRFhp5`)JyifV($FpWbTdhmp;Spx&_;lZvr`P?X-e%D4r3)g|@YMTzJE0)an;W%G}T8 z`6}GOrFFF$`=`vLDZd`%H1%wk;#3&}?S~?jILDm=z8F59y_-@)m)26c!SW^@kXRNK zKsv>-wU;U(iqTkAL_OH=P?Vp7)0KKls2mGj-<1yL)RWy5ni)zq$yqErRE9LH153xu ztHPDW_O?{f&VF*7AlxL;wIr?npvs+>Rkx$@$i9>)mf)3^%Fd4ocn zgG?dX_5?J@vWQby0*mzstBJk~fQeGC%6t%C;ZI)YI}EeT^5;ie<_n&TTzGFn0hKnD zEaIw)lGw1xHnU zxte%~zxxG0D7}sH`3e7mImTZ%Hv7=eANvO%tQM0HTI>(@=u$aa)5J8rTw^&8U z!VsJ!EUtj%a0lr7BhoQL<{Vz@YgHMIid~SbmvR~O_ZKFi`3cO(?QOY^gi(%0D1Zm& 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 literal 0 HcmV?d00001 diff --git a/benchmarks/push/transfer_replay.py b/benchmarks/push/transfer_replay.py new file mode 100644 index 0000000..424784a --- /dev/null +++ b/benchmarks/push/transfer_replay.py @@ -0,0 +1,309 @@ +"""M3: replay a declared vulnerable/fixed/benign family in any supported language. + +The NodeGoat instrument hard-codes its target and its three comparisons, which was right for M1 +and is wrong for a transfer claim: a harness that only knows one language cannot say whether the +design transfers. This one takes the case family as an argument and reads its target, pins and +expectations from the committed inputs, so PHP and Python are asked exactly the way Node was. + +What it records per revision is the same: the raw findings at the declared target, whether the +target question completed, the production comparison verdict, the recorded veto list, and the +census and source receipts. Expectations are written before the first scan. + +Development evidence under a named budget. It is not independent qualification, it enables no +capability, and it makes no latency claim. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import platform +import subprocess +import sys +import time +from pathlib import Path +from typing import Any + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from measure import git, pin_snapshot # noqa: E402 + +from openultrasast.model.scan import ScanBudget # noqa: E402 +from openultrasast.push.policy import CapabilityAdmission, CapabilityKey # noqa: E402 +from openultrasast.push.runner import _provenance # noqa: E402 +from openultrasast.push.vetoes import FLAG, LABEL # noqa: E402 +from openultrasast.push_inputs import validate_manifest # noqa: E402 +from openultrasast.repos import checkout_path, load_repo_recipe # noqa: E402 + +# What each declared comparison is expected to show, stated before anything runs. `introduce` +# reintroduces the reviewed operation, `repair` removes it, `benign` changes something else. +EXPECTATIONS = { + "introduce": "raw finding at the declared target lines; recorded novelty new", + "repair": "fixed twin analyzed and quiet at the target; base-only findings retained", + "benign": "backlog unchanged at the target; never new or worsened", + # A regression snapshot has the same revision on both sides, so there is no change and no + # novelty to claim. What it can show is whether the declared target is still detected and + # whether its question completes. Anything reported as new here would be a defect in the + # comparison, not a finding, so the verdict checks for exactly that. + "regression": "declared target still detected and its question answered; never new, because nothing changed", +} + + +# The manifest labels a case by what it IS (vulnerable, fixed, benign, regression); the case id +# says what the comparison DOES (introduce, repair, benign). Selecting on one and keying +# expectations by the other silently ran a single case and called the rest missing. +ROLES = {"vulnerable": "introduce", "fixed": "repair", "benign": "benign", "regression": "regression"} + + +def role_of(case: dict[str, Any]) -> str | None: + return ROLES.get(str(case.get("label", ""))) + + +def write(path: Path, data: object) -> None: + path.write_text(json.dumps(data, indent=2, allow_nan=False, default=str) + "\n") + + +def declaration_for(semantics: str, language: str, family: str, symbols: tuple[str, ...]) -> list[dict[str, Any]]: + """An unreviewed declaration so the evaluation explanation renders. Never enabled, never PASS.""" + key = CapabilityKey(language, "unspecified", "unspecified", family, "taint", "unreviewed", semantics) + declaration = CapabilityAdmission( + key, + "unreviewed-m3-transfer-v1", + "experimental://m3-transfer", + "experimental", + "A request value reaches {operation}, which interpolates it into a statement the runtime executes ({context} capability).", + "Bind the value at {operation} through the platform's parameterised form instead of interpolating it ({context} capability).", + operation_symbols=symbols, + ) + assert not declaration.enabled and declaration.verdict != "PASS", "the transfer declaration must stay unqualified" + return [declaration.to_payload()] + + +def summarize(case: dict[str, Any], target: dict[str, Any], artifact: dict[str, Any]) -> dict[str, Any]: + experimental = artifact.get("experimental") or {} + head = [record["scan"] for record in artifact["scans"] if record["side"] == "head"] + base = [record["scan"] for record in artifact["scans"] if record["side"] == "base"] + at_target = [ + finding + for scan in head + for finding in scan["findings"] + if finding["family"] == target["family"] and finding["site"].startswith(target["path"] + ":") + ] + questions = [ + outcome + for scan in head + for outcome in scan["question_outcomes"] + if outcome["identity"]["path"] == target["path"] and outcome["identity"]["family"] == target["family"] + ] + answered = bool(questions) and all(q["raw_rows_json"] is not None for q in questions) + findings = experimental.get("findings") if isinstance(experimental.get("findings"), list) else [] + recorded = [f for f in findings if f["family"] == target["family"] and f["site"].startswith(target["path"] + ":")] + return { + "expected": EXPECTATIONS[role_of(case) or "introduce"], + "identical_revisions": case["base"] == case["tip"], + "declared_target": target, + "findings_at_target": len(at_target), + "finding_sites": [f["site"] for f in at_target][:8], + "target_lines_hit": sorted({int(f["site"].split(":")[1]) for f in at_target if f["site"].split(":")[1].isdigit()}), + "target_questions": [{"function": q["identity"]["function"], "status": q["status"], "reason": q["reason"]} for q in questions], + "target_questions_answered": answered, + "questions_completed": sum(1 for s in head for q in s["question_outcomes"] if q["status"] == "completed"), + "questions_total": sum(len(s["question_outcomes"]) for s in head), + "base_questions_completed": sum(1 for s in base for q in s["question_outcomes"] if q["status"] == "completed"), + "census": [{"language": p.get("language"), "files": len(p.get("paths", ()))} for s in head for p in s.get("partitions", ())], + "production_result": [artifact["result"]["finding_status"], artifact["result"]["coverage_status"]], + "recorded_status": experimental.get("status"), + "recorded_at_target": [ + { + "site": f["site"], + "production": [f["production_novelty"], f["production_reason"]], + "recorded": [f["recorded_novelty"], f["recorded_reason"]], + "admission": f["production_admission"], + "unlifted_vetoes": [[v["stage"], v["veto"]] for v in f["vetoes"] if not v["lifted"]], + } + for f in recorded + ], + "evaluation": experimental.get("evaluation", []), + "base_only_findings": len(experimental.get("base_only_findings", []) or []), + "coverage_reasons": artifact["admission"]["coverage_reasons"][:12], + "admitted_defects": len(artifact["admission"]["defects"]), + "timings": {k: v for k, v in artifact["timings"].items() if k.endswith("_seconds")}, + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--manifest", type=Path, required=True) + parser.add_argument("--cache", type=Path, required=True) + parser.add_argument("--out", type=Path, required=True) + parser.add_argument("--family", required=True, help="case id prefix, for example pmpro or nodegoat") + parser.add_argument("--language", required=True) + parser.add_argument("--symbols", default="", help="comma-separated operation symbols for the unreviewed declaration") + parser.add_argument("--deadline", type=float, default=900.0) + args = parser.parse_args() + args.out.mkdir(parents=True, exist_ok=False) + out = args.out.resolve() + + manifest = json.loads(args.manifest.read_bytes()) + targets = json.loads((args.manifest.parent / "diagnostic-config-v1.json").read_text())["targets"] + validation = validate_manifest(args.manifest, cache_root=args.cache, fetch=False) + write(out / "input-validation.json", validation) + ready = {s["id"] for s in validation["snapshots"] if s["status"] == "ready"} + prefix = args.family if args.family.endswith("-") else args.family + "-" + cases = [c for c in manifest["cases"] if c["id"].startswith(prefix) and role_of(c) is not None] + if not cases: + raise SystemExit(f"no vulnerable/fixed/benign cases for {args.family}") + snapshots = {s["id"]: s for s in manifest["snapshots"]} + missing = [c["id"] for c in cases if c["base"] not in ready or c["tip"] not in ready] + if missing: + raise SystemExit(f"inputs not ready: {missing}") + + recipe = load_repo_recipe(args.manifest.parent / snapshots[cases[0]["base"]]["recipe"]) + bare = out / "objects.git" + bare.mkdir() + git(bare, "init", "--bare") + alternates = set() + pins: dict[str, str] = {} + for case in cases: + for sid in (case["base"], case["tip"]): + if sid in pins: + continue + snapshot = snapshots[sid] + source = checkout_path(load_repo_recipe(args.manifest.parent / snapshot["recipe"]), args.cache) + objects = git(source, "rev-parse", "--path-format=absolute", "--git-path", "objects").decode().strip() + alternates.add(objects) + (bare / "objects/info/alternates").write_text("\n".join(sorted(alternates)) + "\n") + pins[sid] = pin_snapshot(bare, snapshot.get("commit", recipe.commit), snapshot) + + settings = ScanBudget(max_model_calls=0, max_regions=500, order_by_evidence=True) + installed = _provenance(bare, settings) + family = next((targets[c["id"]]["family"] for c in cases if c["id"] in targets), "injection") + symbols = tuple(s.strip() for s in args.symbols.split(",") if s.strip()) + declarations = out / "experimental-declarations.json" + write(declarations, declaration_for(installed["semantics"], args.language, family, symbols)) + + record: dict[str, Any] = { + "schema_version": 1, + "label": LABEL, + "milestone": "M3", + "family": args.family, + "language": args.language, + "flag": FLAG, + "development_budget_seconds": args.deadline, + "budget_note": "Explicitly named development budget; this run cannot satisfy or measure the hook latency gate.", + "expectations": EXPECTATIONS, + "pins": pins, + "targets": {c["id"]: targets.get(c["id"]) for c in cases}, + "source_receipts": { + sid: { + "path": targets[cases[0]["id"]]["path"], + "bytes": len(git(bare, "cat-file", "blob", f"{oid}:{targets[cases[0]['id']]['path']}")), + "sha256": hashlib.sha256(git(bare, "cat-file", "blob", f"{oid}:{targets[cases[0]['id']]['path']}")).hexdigest(), + } + for sid, oid in pins.items() + }, + "provenance": installed, + "hardware": {"platform": platform.platform(), "cpu_affinity": sorted(os.sched_getaffinity(0))}, + "instrument_sha256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + "cases": [], + } + write(out / "transfer-record.json", record) + + for case in cases: + target = targets.get(case["id"]) + if target is None: + record["cases"].append({"case_id": case["id"], "status": "no_declared_target"}) + write(out / "transfer-record.json", record) + continue + artifact = out / (case["id"] + ".json") + command = [ + sys.executable, + "-m", + "openultrasast.cli", + "pre-push", + str(bare), + "--base", + pins[case["base"]], + "--head", + pins[case["tip"]], + "--artifact", + str(artifact), + "--deadline", + str(args.deadline), + "--cancellation-allowance", + "2", + "--max-regions", + "500", + "--cache-dir", + str(out / "cache"), + FLAG, + "--experimental-declarations", + str(declarations), + ] + started = time.monotonic() + process = subprocess.run(command, capture_output=True, text=True, timeout=args.deadline + 60) # noqa: S603 + elapsed = time.monotonic() - started + (out / (case["id"] + ".stdout")).write_text(process.stdout) + (out / (case["id"] + ".stderr")).write_text(process.stderr) + entry: dict[str, Any] = { + "case_id": case["id"], + "label": case["label"], + "role": role_of(case), + "base_oid": pins[case["base"]], + "head_oid": pins[case["tip"]], + "exit_code": process.returncode, + "elapsed_seconds": elapsed, + "terminal": process.stdout, + } + if artifact.is_file(): + data = json.loads(artifact.read_text()) + entry["provenance_matches"] = all( + data["provenance"].get(k) == installed[k] for k in ("engine", "facts", "queries", "policy", "core", "semantics") + ) + entry["outcome"] = summarize(case, target, data) + else: + entry["outcome"] = {"instrument_error": "missing_artifact"} + record["cases"].append(entry) + write(out / "transfer-record.json", record) + print(json.dumps({"case": case["id"], "elapsed": round(elapsed, 1), "exit": process.returncode}), flush=True) + + outcomes = {c["case_id"]: c.get("outcome", {}) for c in record["cases"]} + regressions = [(c["case_id"], c.get("outcome", {})) for c in record["cases"] if c.get("role") == "regression"] + if regressions: + record["verdict"] = { + "targets_detected": {cid: o.get("findings_at_target", 0) for cid, o in regressions}, + "all_targets_detected": all(o.get("findings_at_target") for _, o in regressions), + "all_target_questions_answered": all(o.get("target_questions_answered") for _, o in regressions), + "nothing_reported_new": not any( + f["recorded"][0] in ("new", "worsened") for _, o in regressions for f in o.get("recorded_at_target", []) + ), + "all_recorded": all(o.get("recorded_status") == "evaluated" for _, o in regressions), + "no_admitted_defects": all(o.get("admitted_defects") == 0 for _, o in regressions), + "note": ( + "Identical revisions on both sides: this establishes detection and completion, not novelty. " + "A target reported new here would be a comparison defect." + ), + } + write(out / "transfer-record.json", record) + print(json.dumps(record["verdict"]), flush=True) + return 0 if all(v for k, v in record["verdict"].items() if k not in ("note", "targets_detected")) else 1 + by_role = {c.get("role"): c.get("outcome", {}) for c in record["cases"]} + introduce, repair, benign = by_role.get("introduce", {}), by_role.get("repair", {}), by_role.get("benign", {}) + record["verdict"] = { + "raw_witness_present": bool(introduce.get("findings_at_target")), + "fixed_twin_quiet": bool(repair.get("target_questions_answered")) and repair.get("findings_at_target") == 0, + "unchanged_not_new_regression": bool(benign.get("target_questions_answered")) + and not any(f["recorded"][0] in ("new", "worsened") for f in benign.get("recorded_at_target", [])), + "all_recorded": all(o.get("recorded_status") == "evaluated" for o in outcomes.values() if o), + "no_admitted_defects": all(o.get("admitted_defects") == 0 for o in outcomes.values() if o), + "note": "Development transfer evidence. Silence from a failure is not a pass; an unanalyzed fixed twin fails.", + } + write(out / "transfer-record.json", record) + print(json.dumps(record["verdict"]), flush=True) + return 0 if all(v for k, v in record["verdict"].items() if k != "note") else 1 + + +if __name__ == "__main__": + raise SystemExit(main())